alt

Pour cette expérimente, nous avons utilisé le même Dataset définie dans l'article précédent en conservant les mêmes prétraitements effectués. Mais il fallait d’annoter le Dataset à nouveau, cette fois pour identifier les entités de tweets et leurs aspects. Les entités sont étiquetés dans l'un des aspects : {food, activities, location, goodies, xhubteam, devoxmaa, technologies, speakers}

Où :

  • Food : vocabulaire des aliments comme : tagine, couscous… Location : vocabulaire pour présenter les localisations comme : Marrakech, Agadir, Sahara, Riyad, Morocco…
  • Activities : vocabulaire des activities durant la conférence comme : keynote, conference, talk…
  • Goodies : vocabulaire des produits dérivés comme : t-shirt, xhub t-shirt…
  • Xhubteam : vocabulaire des membres de l’équipe de xhub.
  • Devoxxma : vocabulaire pour présenter la conférence en général comme : devoxxma conference, devoxxma trip, devoxxma camel ride…
  • Technologies : vocabulaire des technologies informatiques comme : Java, Hadoop, Docker…
  • Speakers : vocabulaire pour présenter les conférenciers.
  • Audience : vocabulaire pour présenter l’audience comme : crowd, people…

Annotation de tweets

Pour annoter les tweets afin d’identifier les entités et pour préparer le Dataset pour les algorithmes de classification, nous avons utilisé encore une fois l'API de langage naturel de Google. Après nous avons utilisé un outil fourni par le package SpaCy qui permet de faire la correspondance manuellement entre les entités et leurs aspects. Ce qui a donné le Dataset dans sa version – à base d’aspects :

alt

Extraction d’aspects

Le modèle global de l’approche d’extraction d’aspects est montré dans la figure. D’abord une étape de représentation de caractère est réalisée à l’aide d’un réseau CNN. Ensuite, la représentation de caractère est combinée avec la représentation de mots à l’aide d’un b-LSTM. Enfin, le texte d’opinion est étiqueté en utilisant un CRF.

alt

Représentation niveau caractère

Afin d’extraire les informations morphologiques (telles que le préfixe et le suffixe de mots), nous proposons d’apprendre une représentation profonde de caractères en utilisant un CNN. En effet, il s’agit de générer un nouveau vecteur représentatif d’un mot en entrée en employant une couche de convolution suivie par une couche de max-regroupement (voir Figure). Pour ce faire, nous utilisons 30 filtres de taille 3 et 50 unités cachées.

Combinaison de représentation niveau mot et niveau caractère

La représentation sémantique de mots est apprise à l’aide d’une méthode basée sur les n-grammes. L’avantage de cette méthode est qu’elle permet de rajouter des informations sur les sous-mots offrant ainsi une représentation robuste des nouveaux mots qui n’apparaissent pas dans le corpus d’apprentissage. Nous utilisons ici des vecteurs de taille 100.

Cette représentation de mots est combinée avec la représentation niveau caractères à l’aide d’un b-LSTM permettant de représenter séparément la séquence de mots en avant et en arrière pour capturer les informations passées et futures, puis de les concaténer pour former la sortie finale (voir Figure 25). Nous utilisons ici un b-LSTM de taille 200.

Étiquetage de séquence de mots

Nous proposons d’étiqueter le texte d’opinion en entrée par les entités correspondantes aux catégories d’aspects en utilisant l’API de Google. Pour ce faire, nous utilisons un modèle CRF qui permet de prendre en compte les relations entre les entités voisines dans l’étiquetage de la séquence de mots dans le texte d’opinion.

Classification

Pour la classification de sentiments, Nous avons comparé plusieurs approches de classification de sentiments à base d’aspects basées sur les LSTM. Nous utilisons un réseau à mémoire d’attention pour associer un sentiment (positif, négatif ou neutre) à une expression d’aspect donnée.

Pour l’analyse d’aspects dans un texte d’opinion étant donné une expression d’aspect, nous proposons d’utiliser un réseau à mémoire d’attention (voir Figure), Ce réseau est composé d’une séquence de blocs, où chaque bloc est composé d’une couche d’attention et d’une couche linéaire. La couche d’attention permet de donner plus d’importance à certains mots de contexte que d’autres par rapport à un mot d’aspect en se basant sur la relation sémantique et de position entre mots.

alt

L’entrée du réseau est la concaténation de la représentation sémantique des mots de contexte (les mots à gauche et droite de l’expression d’aspect) dans le texte et celle du mot d’aspect (la moyenne dans le cas d’une expression d’aspects ayant plusieurs mots). Nous employons ici la même représentation utilisée dans l’étape d’extraction d’aspects. La sortie représente la polarité de sentiment associé à l’expression d’aspect fournie par la fonction softmax. La succession de blocs permet d’augmenter le niveau d’abstraction. Le nombre de blocs est fixé empiriquement à 5. La descente de gradient est optimisée à l’aide de l’algorithme du gradient stochastique sous 150 itérations

Résultats d’expérimentation

Nous avons testé notre approche sur le jeu de données définie précédemment dans lequel neuf types d’aspects sont considérés pour ce corpus : food, location, activities, technologies, goodies, speakers, audience, devoxxma et xhubteam.

alt

Les résultats d’extraction d’aspects sont reportés dans la table ci-dessus, Ces résultats montrent également l’intérêt de l’apprentissage de la représentation niveau caractère et de l’emploi du modèle CRF pour l’étiquetage de séquences. Les cas d’échecs sont essentiellement dus à des erreurs orthographiques ou à un champ lexical très variable pour certains types d’expressions d’aspects.

alt

Les résultats d’extraction d’aspects sont reportés dans la table ci-dessus. Ce dernier montre que les meilleures performances sont obtenues en précision (92.40%), rappel (73.83%) et F1-mesure (82.08%) avec la configuration CNN+b-LSTM+CRF

alt

Nous avons comparé notre approche de classification de sentiments à base d’aspects avec des méthodes de la littérature basées sur les LSTM. Les résultats en taux de classification sont reportés dans la table ci-dessus et montrent la généricité des approches testées. De plus, ces résultats montrent que le réseau à mémoire d’attention maximise les taux de classification (84%) et confirment l’intérêt du mécanisme de mémoire d’attention