Visão geral do projeto
Extração de entidade + opinião (aspecto) das revisões de atendimento ao cliente, juntamente com uma avaliação em relação aos rótulos verdadeiros anotados.
Conjunto de dados:
- Descrição: Revisões de restaurantes de atendimento ao cliente do Yelp
- Nome:
train.csv - Conteúdo: o arquivo CSV contém duas colunas (revisão, rótulo de sentimento/opinião/aspecto)
- Nota: Somente as revisões brutas foram analisadas. O rótulo de sentimento/opinião foi desconsiderado como o objetivo do código era encontrar maneiras aprimoradas de extraí -lo.
- Nota: Este arquivo foi usado apenas para fins EDA.
Rótulos verdadeiros
- O conjunto de dados não passou por anotação humana para gerar rótulos verdadeiros.
- Um arquivo
sample_review.csv (contendo uma única revisão anotada) foi criada para uma comparação POC de etiquetas True-VS-PRED.
Peças do projeto:
Parte I - EDA
Parte II - Extração de tupla de opinião da entidade
Este módulo está preocupado com a extração da entidade que está sendo revisada (por exemplo, 'comida') ao lado da opinião do revisor sobre a entidade (por exemplo, 'um pouco saborosa').
Parte III - Avaliação
Este módulo está preocupado com a avaliação da extração de tupla da entidade-opinion contra as anotações da verdade do solo.
EDA: Insights iniciais e gerais
- Número da revisão: 1121
- Sentimento: ~ 60% (POS); ~ 20% (neutro); ~ 20% (neg) A maioria das pessoas mostra emoções positivas em relação à sua experiência gastronômica.

- Comprimento da palavra: aprox. 50% das revisões têm 6 a 15 fichas de comprimento. A maioria das pessoas não dedica um tempo para escrever uma revisão "muito completa".

- Extended EDA - Additional NLP techniques that can be used for gaining insights: Q&A model, WordCloud, N-gram frequency count (after stopwords removal), fuzzy matching, exact/partial matching (stopwords, morphological prefixes and suffixes), clustering algorithms (lexicosyntactic, semantic), sentiment, polarity, aspect and sentiment combined, NER, distinction Em alimentos/bebidas, distinção em tipos de refeições (café da manhã, almoço, jantar), distinção binária baseada em POS de tokens (adjetivos versus descanso), análise intensificadora de adverbial, análise de dependência sintática, distribuição de pontuações (tipos, binária, combinação com sentimento).
Código
- EDA - Veja o arquivo
EDA.ipynb - Extração de opinião da entidade + TRUE-VS-PRED EVAL. - Projeto (módulos
.py )
Instruções
Execute o módulo main.py
Notas:
- Certifique -se de criar um arquivo
.env para armazenar sua chave de API do OpenAI. - Use o seguinte formato:
OPENAI_API_KEY = "your_openai_api_key"
Implementação e alternativas:
EDA
Abordagens simplistas (rápidas, fornecem apenas uma visualização macro inicial dos dados)
- Distribuição da contagem de palavras (absoluta e normalizada) para medir a duração geral das revisões.
- Nuvem de palavras
Um entendimento mais aprofundado
Movendo de lexicosyntactic para uma abordagem de interface semântica-pregmática
- Modelagem de tópicos com bertopic
Extração de entidade-opinion
- Os modelos NER são confinados a um conjunto de entidades treinadas que não refletem todo o espectro de entidades possíveis em todos os domínios (por exemplo, análises de restaurantes). Eles exigem um processo tedioso de anotações, revisão e treinamento.
- Os modelos de perguntas e respostas são treinados principalmente em um conjunto específico de perguntas e conjuntos de dados e podem ter mais erros do tipo I e II do que o LLMS.
Engenharia rápida
A ênfase foi colocada no seguinte:
- Berço (cadeia de pensamento)
- Aprendizagem de poucos tiros
- Distinção do Sistema/Usuário/Assistente
- Tranquilizando o modelo
Abordagem de avaliação: Extração de LLM contra anotações da verdade no solo
Bert frase-transformadores para medir a similaridade textual semântica usando similaridade de cosseno.
Após testar várias variações linguísticas de entidades e opiniões reais-Vs-Vs (aspectos), um limiar de 0,85 foi definido para aceitar a previsão do modelo em produção.
Alternativas de avaliação
Transformadores de frases juntamente com soluções baseadas em regras
Combinando abordagens sofisticadas (como transformadores de frases) com abordagens tradicionais baseadas em regras, a fim de fortalecer a validade dos resultados.
Por exemplo, soluções baseadas em transformador combinadas com análise sintática de dependência, PDV e NER (características linguísticas) poderiam ajudar a garantir que o "restaurante" e "o restaurante" sejam considerados o mesmo (com/out o determinante), em oposição ao exemplo "saboroso" e "um pouco saboroso" do acima.
Métricas de classificação tradicionais (recall, precisão, escore F1, precisão)
As métricas de classificação mais tradicionais (recall, precisão, escore F1, precisão) são menos relevantes neste caso.
Muitos dos componentes da matriz de confusão são irrelevantes em uma tarefa de classificação binária de apenas uma palavra/frase fora de uma revisão inteira (uma vez para reconhecimento de entidades e uma vez por aspecto). Isso torna impossível calcular algumas dessas métricas.
Além disso, essas métricas não capturam completamente a semântica minuciosa influenciada pela inclusão/remoção dos modificadores adjetivos/substantivos e intensificadores adverbiais. Tomemos, por exemplo, "saboroso" vs "um pouco saboroso".
Além disso, isso levanta a questão de levar em consideração versus desconsiderar correspondências parciais como essas ao usar recall, precisão, escore F1 e precisão.
Métricas tradicionais baseadas em n-gramas (similaridade lexicossintática)
Acredito, no entanto, que as métricas tradicionais baseadas em n-gramas possam ser empregadas para estabelecer uma linha de base:
- Bleu (focado na precisão)
- Rouge (focado em recall)
- Meteor (calcula a média harmônica de precisão e recall, juntamente com as penalidades para a ordem das palavras e as diferenças de frase)
Viabilidade da solução na produção
Embora exija testes mais completos, a abordagem de similaridade de cosseno usada para medir a similaridade textual semântica entre as incorporações de Bert Frensformers, juntamente com um limiar relativamente rigoroso (que deve levar em consideração a presença/ausência de modificadores adjetivos/substantivos e intensificadores adverbiais), poderia funcionar em um ambiente de produção.
Também existem considerações adicionais para um ambiente de produção, como latência, tempo de computação, hospedagem de modelos pesados em servidores e custos adicionais.