Analyse des sentiments de la cible dans les articles

Sep 05 2020

Le but est le suivant: j'ai un gros article et je veux définir le sentiment du mot particulier. Par exemple, l'article décrit les avantages et les inconvénients des vélos et des voitures et je veux trouver le sentiment du mot voiture.

Dans un tel exemple, je ne peux pas utiliser la SA au niveau du document car l'article lui-même peut être positif alors que la voiture a été mentionnée de manière négative.

J'ai donc étudié des articles liés à l'analyse des sentiments basée sur l'aspect, mais ma constait est l'absence de données pour la formation des NN. Par conséquent, je me suis concentré sur les approches qui n'impliquent fondamentalement pas de processus de formation. L'une de mes tentatives était de créer un outil d'analyse des sentiments en utilisant word2vec et K-Means afin que chaque cluster corresponde à l'un des trois sentiments (pos, neg et neu). Cela fonctionnait très bien, mais j'ai trouvé que pour une raison quelconque, un mot peut être à deux groupes en même temps. De plus, cela ne donne généralement pas de sentiment pour un mot-clé spécifique mais pour tous les aspects trouvés dans le texte.
Un autre problème est que fondamentalement, ne peut pas tester l'exactitude de la sortie si ce n'est pour lire le texte par moi-même et vérifier si le mot-clé appartenait au cluster correct ou non.
Je suis donc venu à la décision de faire d'abord un résumé de l'article, puis d'appliquer une analyse des sentiments (comme sentiwordnet ou similaire).

Question 1
Existe-t-il des moyens d'améliorer l'approche word2vec + KMeans? Est-ce encore pire de s'améliorer?
Question 2
Est-ce une bonne idée de passer par la synthèse de texte avant l'analyse des sentiments?
Question 2
Existe-t-il un meilleur moyen de trouver le sentiment du mot particulier sans processus d'apprentissage (en raison de l'absence de données d'entraînement et d'une petite quantité de données non étiquetées)?

Réponses

Erwan Sep 06 2020 at 21:46

Je ne suis pas sûr d'avoir complètement compris l'idée, mais il me semble que ce qui vous intéresse réellement est le sentiment d'un mot dans un contexte particulier : un mot de contenu tel que "voiture" peut ne pas véhiculer un sentiment stable en lui-même , mais son utilisation dans un contexte spécifique pourrait.

Je vous suggère donc une méthode comme celle-ci: pour tout mot cible, vous extrayez soit la phrase, soit une fenêtre contextuelle, c'est-à-dire N mots à gauche et N mots à droite du mot cible. Vous pouvez ensuite utiliser des outils d'analyse de sentiment prédéfinis pour extraire une valeur de sentiment pour cette instance. À partir de là, vous pouvez:

  • mesurer le sentiment moyen pour un mot en faisant la moyenne des instances
  • comparer la distribution du sentiment ou le sentiment moyen pour deux mots différents
Elyas Sep 15 2020 at 22:56

Je ne suis pas sûr de ce que vous demandez exactement, donc si vous cherchez à déterminer le sentiment général de la voiture tout au long du texte, vous devez d'abord vous occuper de la "résolution d'Anaphora", car le premier obstacle que vous rencontrerez est de savoir quoi le "ça, c'est, elle, elle ..." faisant référence, peut-être à la voiture, peut-être à autre chose. une autre façon de surmonter ce problème "si c'est le cas", si votre document est petit vous pouvez extraire manuellement les phrases qui font référence à la voiture.

Après cela, vous pouvez utiliser un module NLTK pour l'analyse des sentiments appelé Vader "https://towardsdatascience.com/sentimental-analysis-using-vader-a3415fef7664" vous donnez simplement les phrases une par une, ou si vous voulez le score global combinez-les ensemble et appuyez sur RUN :)