Photo par Mikechie Esparagoza
Chaque jour, nous traitons la plupart du temps avec du texte non étiqueté et les algorithmes d'apprentissage supervisé ne peuvent pas du tout être utilisés pour extraire des informations des données. Un sous-domaine du langage naturel peut révéler la structure sous-jacente dans de grandes quantités de texte. Cette discipline s'appelle Topic Modeling, qui est spécialisée dans l'extraction de sujets à partir d'un texte.
Dans ce contexte, les approches conventionnelles, comme l'allocation de Dirichlet latente et la factorisation matricielle non négative, ont démontré qu'elles ne capturaient pas bien les relations entre les mots puisqu'elles sont basées sur le sac de mots.
Pour cette raison, nous allons nous concentrer sur deux approches prometteuses, Top2Vec et BERTopic, qui remédient à ces inconvénients en exploitant des modèles de langage pré-entraînés pour générer des sujets. Commençons!
Top2Vec est un modèle capable de détecter automatiquement des sujets à partir du texte en utilisant des vecteurs de mots pré-formés et en créant des sujets, des documents et des vecteurs de mots intégrés significatifs.
Dans cette approche, la procédure d'extraction des sujets peut être divisée en différentes étapes :
- Créer une intégration sémantique: des vecteurs de document et de mot incorporés conjointement sont créés. L'idée est que les documents similaires doivent être plus proches dans l'espace d'intégration, tandis que les documents dissemblables doivent être distants entre eux.
- Réduire la dimensionnalité de l'incorporation de documents: L'application de l'approche de réduction de dimensionnalité est importante pour préserver la majeure partie de la variabilité de l'incorporation des documents tout en réduisant l'espace de grande dimension. De plus, il permet d'identifier des zones denses, dans lesquelles chaque point représente un vecteur de document. UMAP est l'approche typique de réduction de la dimensionnalité choisie dans cette étape car elle est capable de préserver la structure locale et globale des données de grande dimension.
- Identifier des groupes de documents: HDBScan, une approche de regroupement basée sur la densité, est appliquée pour trouver des zones denses de documents similaires. Chaque document est affecté en tant que bruit s'il n'est pas dans un cluster dense, ou une étiquette s'il appartient à une zone dense.
- Calculer les centres de gravité dans l'espace d'intégration d'origine: Le centre de gravité est calculé en considérant l'espace de grande dimension, au lieu de l'espace d'encastrement réduit. La stratégie classique consiste à calculer la moyenne arithmétique de tous les vecteurs de documents appartenant à une zone dense, obtenue à l'étape précédente avec HDBSCAN. De cette manière, un vecteur de thème est généré pour chaque cluster.
- Trouver des mots pour chaque vecteur de sujet: les vecteurs mots les plus proches du vecteur document sont sémantiquement les plus représentatifs.
Exemple de Top2Vec
Dans ce tutoriel, nous allons analyser les avis négatifs de McDonald's à partir d'un jeu de données disponible sur données.monde. L'identification des sujets à partir de ces revues peut être précieuse pour la multinationale afin d'améliorer les produits et l'organisation de cette chaîne de restauration rapide aux États-Unis. Les emplacements fournis par les données.
import pandas as pd
from top2vec import Top2Vec file_path = "McDonalds-Yelp-Sentiment-DFE.csv"
df = pd.read_csv( file_path, usecols=["_unit_id", "city", "review"], encoding="unicode_escape",
)
df.head()
docs_bad = df["review"].values.tolist()
En une seule ligne de code, nous allons effectuer toutes les étapes du top2vec expliquées précédemment.
topic_model = Top2Vec( docs_bad, embedding_model="universal-sentence-encoder", speed="deep-learn", tokenizer=tok, ngram_vocab=True, ngram_vocab_args={"connector_words": "phrases.ENGLISH_CONNECTOR_WORDS"},
)
Les principaux arguments de Top2Vec sont :
- docs_bad : est une liste de chaînes.
- universal-sentence-encoder : est le modèle d'intégration pré-entraîné choisi.
- deep-learn : est un paramètre qui détermine la qualité du vecteur de document produit.
topic_model.get_num_topics() #3
topic_words, word_scores, topic_nums = topic_model.get_topics(3) for topic in topic_nums: topic_model.generate_topic_wordcloud(topic)
L'inspection automobile
À partir des nuages de mots, nous pouvons déduire que le sujet 0 concerne les plaintes générales concernant le service chez McDonald, comme "service lent", "service horrible" et "erreur de commande", tandis que les sujets 1 et 2 se réfèrent respectivement à la nourriture du petit déjeuner ( McMuffin, biscuit, œuf) et café (café glacé et tasse de café).
Maintenant, nous essayons de rechercher des documents en utilisant deux mots-clés, faux et lent :
( documents, document_scores, document_ids,
) = topic_model.search_documents_by_keywords( keywords=["wrong", "slow"], num_docs=5
)
for doc, score, doc_id in zip(documents, document_scores, document_ids): print(f"Document: {doc_id}, Score: {score}") print("-----------") print(doc) print("-----------") print()
Sortie :
Document: 707, Score: 0.5517634093633295
-----------
horrible.... that is all. do not go there.
----------- Document: 930, Score: 0.4242547340973836
-----------
no drive through :-/
----------- Document: 185, Score: 0.39162203345993046
-----------
the drive through line is terrible. they are painfully slow.
----------- Document: 181, Score: 0.3775083338082392
-----------
awful service and extremely slow. go elsewhere.
----------- Document: 846, Score: 0.35400602635951994
-----------
they have bad service and very rude
-----------
"BERTopic est une technique de modélisation de sujets qui exploite les transformateurs et c-TF-IDF pour créer des clusters denses permettant des sujets facilement interprétables tout en conservant les mots importants dans les descriptions de sujets."
Comme son nom l'indique, BERTopic utilise de puissants modèles de transformateurs pour identifier les sujets présents dans le texte. Une autre caractéristique de cet algorithme de modélisation thématique est l'utilisation d'une variante de TF-IDF, appelée variation basée sur les classes de TF-IDF.
Comme Top2Vec, il n'a pas besoin de connaître le nombre de sujets, mais il extrait automatiquement les sujets.
De plus, à l'instar de Top2Vec, il s'agit d'un algorithme qui implique différentes phases. Les trois premières étapes sont les mêmes : création de documents d'intégration, réduction de la dimensionnalité avec UMAP et clustering avec HDBScan.
Les phases successives commencent à diverger de Top2Vec. Après avoir trouvé les zones denses avec HDBSCAN, chaque sujet est symbolisé dans une représentation en sac de mots, qui prend en compte si le mot apparaît dans le document ou non. Ensuite, les documents appartenant à un cluster sont considérés comme un document unique et TF-IDF est appliqué. Ainsi, pour chaque sujet, nous identifions les mots les plus pertinents, qui devraient avoir le c-TF-IDF le plus élevé.
Exemple de sujet BER
Nous répétons l'analyse sur le même jeu de données.
Nous allons extraire les sujets des revues en utilisant BERTopic :
model_path_bad = 'model/bert_bad'
topic_model_bad = train_bert(docs_bad,model_path_bad)
freq_df = topic_model_bad.get_topic_info()
print("Number of topics: {}".format( len(freq_df)))
freq_df['Percentage'] = round(freq_df['Count']/freq_df['Count'].sum() * 100,2)
freq_df = freq_df.iloc[:,[0,1,3,2]]
freq_df.head()
Le tableau renvoyé par le modèle fournit des informations sur les 14 thèmes extraits. Le sujet correspond à l'identifiant du sujet, à l'exception de toutes les valeurs aberrantes ignorées qui sont étiquetées comme -1.
Nous allons maintenant passer à la partie la plus intéressante concernant la visualisation de nos sujets dans des graphiques interactifs, comme la visualisation des termes les plus pertinents pour chaque sujet, la carte des distances inter-sujets, la représentation bidimensionnelle de l'espace d'enchâssement et la hiérarchie thématique.
Commençons par afficher les graphiques à barres pour les dix principaux sujets. Pour chaque sujet, nous pouvons observer les mots les plus importants, triés par ordre décroissant en fonction du score c-TF-IDF. Plus un mot est pertinent, plus le score est élevé.
Le premier sujet contient des mots génériques, comme emplacement et nourriture, sujet 1 commande et attente, sujet 2 pire et service, sujet 3 endroit et sale, etc.
Après avoir visualisé les graphiques à barres, il est temps de jeter un œil à la carte des distances inter-sujets. Nous réduisons la dimensionnalité du score c-TF-IDF dans un espace bidimensionnel pour visualiser les sujets dans un graphique. En bas, il y a un curseur qui permet de sélectionner le sujet qui sera coloré en rouge. Nous pouvons remarquer que les sujets sont regroupés en deux groupes différents, l'un avec des thématiques génériques comme la nourriture, le poulet et l'emplacement, et l'autre avec différents aspects négatifs, tels que le pire service, la saleté, l'endroit et le froid.
Le graphique suivant permet de voir la relation entre les avis et les sujets. En particulier, il peut être utile de comprendre pourquoi un avis est attribué à un sujet spécifique et est aligné sur les mots les plus pertinents trouvés. Par exemple, nous pouvons nous concentrer sur le cluster rouge, correspondant au sujet 2 avec quelques mots sur le pire service. Les documents au sein de cette zone dense semblent assez négatifs, comme "Service client épouvantable et nourriture encore pire".
A première vue, ces approches ont de nombreux aspects en commun, comme la recherche automatique du nombre de sujets, l'absence de nécessité de pré-traitement dans la plupart des cas, l'application d'UMAP pour réduire la dimensionnalité des incorporations de documents et, ensuite, HDBSCAN est utilisé pour modélisant ces incorporations de documents réduites, mais elles sont fondamentalement différentes en ce qui concerne la manière dont elles attribuent les rubriques aux documents.
Top2Vec crée des représentations thématiques en trouvant des mots situés à proximité du centroïde d'un cluster.
Contrairement à Top2Vec, BERTopic ne prend pas en compte le centroïde du cluster, mais il considère tous les documents d'un cluster comme un document unique et extrait les représentations de sujet à l'aide d'une variante basée sur les classes de TF-IDF.
Top2Vec | Sujet BER |
La stratégie d'extraction des sujets basée sur les centroïdes du cluster. | La stratégie d'extraction de sujets basée sur c-TF-IDF. |
Il ne prend pas en charge la modélisation dynamique des sujets. | Il prend en charge la modélisation dynamique des sujets. |
Il crée des nuages de mots pour chaque sujet et fournit des outils de recherche de sujets, de documents et de mots. | Il permet de construire des parcelles de visualisation interactives, permettant d'interpréter les sujets extraits. |
La modélisation thématique est un domaine en plein essor du traitement du langage naturel et il existe de nombreuses applications possibles, telles que des critiques, des publications audio et sur les réseaux sociaux. Comme il a été montré, cet article donne un aperçu de Topi2Vec et BERTopic, qui sont deux approches prometteuses, qui peuvent vous aider à identifier des sujets avec quelques lignes de code et à interpréter les résultats à travers des visualisations de données. Si vous avez des questions sur ces techniques ou si vous avez d'autres suggestions sur d'autres approches pour détecter les sujets, écrivez-le dans les commentaires.
Eugénie Anello est actuellement chargé de recherche au Département d'ingénierie de l'information de l'Université de Padoue, en Italie. Son projet de recherche est axé sur l'apprentissage continu combiné à la détection d'anomalies.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- Platoblockchain. Intelligence métaverse Web3. Connaissance Amplifiée. Accéder ici.
- La source: https://www.kdnuggets.com/2023/01/topic-modeling-approaches-top2vec-bertopic.html?utm_source=rss&utm_medium=rss&utm_campaign=topic-modeling-approaches-top2vec-vs-bertopic
- 1
- 10
- 100
- 7
- a
- Capable
- Qui sommes-nous
- Compte
- Ad
- propos
- Après
- algorithme
- algorithmes
- aligné
- Tous
- allocation
- Permettre
- permet
- quantités
- selon une analyse de l’Université de Princeton
- il analyse
- ainsi que le
- Détection d'une anomalie
- Une autre
- Application
- applications
- appliqué
- une approche
- approches
- Réservé
- domaines
- arguments
- article
- aspects
- attribué
- acoustique
- automatiquement
- disponibles
- Mal
- barre
- basé
- car
- jusqu'à XNUMX fois
- Bas et Leggings
- Petit Déjeuner
- Développement
- construit
- le calcul
- appelé
- ne peut pas
- capable
- capturer
- cas
- chaîne
- caractéristique
- Charts
- choisi
- Ville
- classiques
- Fermer
- plus
- Grappe
- regroupement
- code
- Café
- combiné
- commentaires
- Commun
- plaintes
- considéré
- considérant
- contient
- contexte
- conventionnel
- Correspondant
- correspond
- engendrent
- créée
- crée des
- La création
- création
- Coupe
- Lecture
- des clients
- Service à la clientèle
- données
- journée
- traitement
- démontré
- Département
- Détection
- détermine
- différent
- distance
- Loin
- Diverge
- document
- INSTITUTIONNELS
- Ne fait pas
- désavantages
- motivation
- traverser
- Dynamic
- chacun
- même
- ailleurs
- intégré
- ENGINEERING
- Pourtant, la
- exemple
- Sauf
- expliqué
- extrait
- Extraits
- extrêmement
- RAPIDE
- compagnon
- few
- champ
- Trouvez
- trouver
- Prénom
- Focus
- concentré
- nourriture
- trouvé
- de
- fondamentalement
- Général
- générer
- généré
- obtenez
- Global
- Go
- aller
- graphique
- graphiques
- Croissance
- vous aider
- hiérarchie
- Haute
- augmentation
- le plus élevé
- HTTPS
- idée
- Identification
- identifiant
- identifier
- identifier
- importer
- important
- améliorer
- in
- d'information
- plutôt ;
- Interactif
- intéressant
- l'interprétation
- IT
- Italie
- KDnuggetsGenericName
- en gardant
- Savoir
- Libellé
- langue
- gros
- apprentissage
- les leviers
- Gamme
- lignes
- Liste
- locales
- situé
- emplacement
- emplacements
- Style
- recherchez-
- Entrée
- de nombreuses
- Localisation
- Matrice
- MCDONALD
- significative
- Médias
- modèle
- modélisation statistique
- la modélisation
- numériques jumeaux (digital twin models)
- PLUS
- (en fait, presque toutes)
- multinational
- prénom
- Nature
- Langage naturel
- Traitement du langage naturel
- Besoin
- négatif
- next
- Bruit
- nombre
- nombreux
- observer
- obtenu
- ONE
- de commander
- organisation
- original
- Autre
- pandas
- paramètre
- partie
- particulier
- pourcentage
- effectuer
- les expressions clés
- Place
- Platon
- Intelligence des données Platon
- PlatonDonnées
- Point
- possible
- Poteaux
- solide
- représentent
- précédent
- précédemment
- traitement
- Produit
- Produits
- Projet
- prometteur
- à condition de
- fournit
- qualité
- fréquemment posées
- raison
- Rouge
- réduire
- Prix Réduit
- réduire
- en ce qui concerne
- relation amoureuse
- Les relations
- pertinent
- répéter
- représentation
- représentant
- représente
- un article
- Résultats
- révéler
- Avis
- Avis
- même
- Rechercher
- recherche
- la sélection
- service
- devrait
- montrer
- montré
- Vue
- similaires
- De même
- depuis
- unique
- curseur
- lent
- So
- Réseaux sociaux
- réseaux sociaux
- Publications sur les réseaux sociaux
- quelques
- Space
- spécialisé
- groupe de neurones
- scission
- étapes
- Étapes
- de Marketing
- structure
- tel
- Suggère
- enseignement supervisé
- Support
- Les soutiens
- table
- Prenez
- prend
- techniques
- Dix
- conditions
- Les
- Là.
- trois
- Avec
- fiable
- à
- tokenisé
- les outils
- top
- Top dix
- sujet
- Les sujets
- transformateurs
- tutoriel
- débutante
- sous-jacent
- comprendre
- expérience unique et authentique
- université
- États-Unis
- utilisé
- Précieux
- Valeurs
- Variante
- visualisation
- attendez
- qui
- tout en
- Si l’achat
- sera
- dans les
- Word
- des mots
- pire
- écrire
- faux
- zéphyrnet