Photo by Mikechie Esparagoza
Jeden Tag haben wir die meiste Zeit mit unbeschriftetem Text zu tun und überwachte Lernalgorithmen können überhaupt nicht verwendet werden, um Informationen aus den Daten zu extrahieren. Ein Teilgebiet der natürlichen Sprache kann die zugrunde liegende Struktur in großen Textmengen offenbaren. Diese Disziplin heißt Topic Modeling und ist darauf spezialisiert, Themen aus Texten zu extrahieren.
In diesem Zusammenhang haben herkömmliche Ansätze wie die latente Dirichlet-Zuweisung und die nicht negative Matrixfaktorisierung gezeigt, dass sie die Beziehungen zwischen Wörtern nicht gut erfassen, da sie auf Bag-of-Word basieren.
Aus diesem Grund konzentrieren wir uns auf zwei vielversprechende Ansätze, Top2Vec und BERTopic, die diese Nachteile beheben, indem sie vortrainierte Sprachmodelle nutzen, um Themen zu generieren. Lass uns anfangen!
Top2Vec ist ein Modell, das automatisch Themen aus dem Text erkennen kann, indem es vortrainierte Wortvektoren verwendet und aussagekräftige eingebettete Themen, Dokumente und Wortvektoren erstellt.
Bei diesem Ansatz kann das Verfahren zum Extrahieren von Themen in verschiedene Schritte unterteilt werden:
- Semantische Einbettung erstellen: gemeinsam eingebettete Dokument- und Wortvektoren werden erstellt. Die Idee ist, dass ähnliche Dokumente näher im Einbettungsraum sein sollten, während unterschiedliche Dokumente voneinander entfernt sein sollten.
- Reduzieren Sie die Dimensionalität der Dokumenteinbettung: Die Anwendung des Dimensionsreduktionsansatzes ist wichtig, um die Variabilität der Einbettung von Dokumenten weitestgehend zu erhalten und gleichzeitig den hochdimensionalen Raum zu reduzieren. Darüber hinaus ermöglicht es die Identifizierung dichter Bereiche, in denen jeder Punkt einen Dokumentenvektor darstellt. UMAP ist der typische Dimensionsreduktionsansatz, der in diesem Schritt gewählt wird, da er in der Lage ist, die lokale und globale Struktur der hochdimensionalen Daten beizubehalten.
- Identifizieren Sie Cluster von Dokumenten: HDBScan, ein dichtebasierter Clustering-Ansatz, wird angewendet, um dichte Bereiche ähnlicher Dokumente zu finden. Jedes Dokument wird als Rauschen zugewiesen, wenn es sich nicht in einem dichten Cluster befindet, oder als Label, wenn es zu einem dichten Bereich gehört.
- Berechnen Sie Schwerpunkte im ursprünglichen Einbettungsraum: Der Schwerpunkt wird unter Berücksichtigung des hochdimensionalen Raums anstelle des reduzierten Einbettungsraums berechnet. Die klassische Strategie besteht darin, das arithmetische Mittel aller zu einem dichten Bereich gehörenden Dokumentenvektoren zu berechnen, die im vorherigen Schritt mit HDBSCAN erhalten wurden. Auf diese Weise wird für jeden Cluster ein Themenvektor erzeugt.
- Finden Sie Wörter für jeden Themenvektor: die Wortvektoren, die dem Dokumentvektor am nächsten sind, sind semantisch am repräsentativsten.
Beispiel für Top2Vec
In diesem Tutorial werden wir die negativen Bewertungen von McDonald's aus einem verfügbaren Datensatz analysieren daten.welt. Das Identifizieren der Themen aus diesen Bewertungen kann für den multinationalen Konzern wertvoll sein, um die Produkte und die Organisation dieser Fast-Food-Kette an den durch die Daten bereitgestellten Standorten in den USA zu verbessern.
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()
In einer einzigen Codezeile werden wir alle Schritte des zuvor erläuterten top2vec ausführen.
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"},
)
Die Hauptargumente von Top2Vec sind:
- docs_bad: ist eine Liste von Strings.
- universal-sentence-encoder: ist das gewählte vortrainierte Einbettungsmodell.
- deep-learn: ist ein Parameter, der die Qualität des erzeugten Dokumentenvektors bestimmt.
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)
Am meisten
Aus den Wortwolken können wir ableiten, dass es bei Thema 0 um allgemeine Beschwerden über den Service bei McDonalds geht, wie „langsamer Service“, „schrecklicher Service“ und „falsche Bestellung“, während sich Thema 1 bzw. 2 auf das Frühstück beziehen ( McMuffin, Keks, Ei) und Kaffee (Eiskaffee und Tassenkaffee).
Jetzt versuchen wir, Dokumente mit zwei Schlüsselwörtern zu durchsuchen, falsch und langsam:
( 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()
Ausgang:
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 ist eine Themenmodellierungstechnik, die Transformer und c-TF-IDF nutzt, um dichte Cluster zu erstellen, die leicht interpretierbare Themen ermöglichen, während wichtige Wörter in den Themenbeschreibungen beibehalten werden.“
Wie der Name schon sagt, verwendet BERTopic leistungsstarke Transformer-Modelle, um die im Text enthaltenen Themen zu identifizieren. Ein weiteres Merkmal dieses Themenmodellierungsalgorithmus ist die Verwendung einer Variante von TF-IDF, die als klassenbasierte Variation von TF-IDF bezeichnet wird.
Wie Top2Vec muss es die Anzahl der Themen nicht kennen, sondern extrahiert die Themen automatisch.
Darüber hinaus handelt es sich ähnlich wie bei Top2Vec um einen Algorithmus, der verschiedene Phasen umfasst. Die ersten drei Schritte sind gleich: Erstellung von Einbettungsdokumenten, Dimensionsreduktion mit UMAP und Clustering mit HDBScan.
Die aufeinanderfolgenden Phasen beginnen von Top2Vec abzuweichen. Nachdem die dichten Bereiche mit HDBSCAN gefunden wurden, wird jedes Thema in eine Bag-of-Words-Darstellung tokenisiert, die berücksichtigt, ob das Wort im Dokument vorkommt oder nicht. Nachdem die zu einem Cluster gehörenden Dokumente als eindeutiges Dokument betrachtet werden, wird TF-IDF angewendet. Also identifizieren wir für jedes Thema die relevantesten Wörter, die den höchsten c-TF-IDF haben sollten.
Beispiel für BERTopic
Wir wiederholen die Analyse mit demselben Datensatz.
Wir werden die Themen aus den Bewertungen mit BERTopic extrahieren:
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()
Die vom Modell zurückgegebene Tabelle enthält Informationen zu den 14 extrahierten Themen. Thema entspricht der Themenkennung, mit Ausnahme aller ignorierten Ausreißer, die mit -1 gekennzeichnet sind.
Nun kommen wir zum interessantesten Teil bezüglich der Visualisierung unserer Themen in interaktiven Grafiken, wie der Visualisierung der relevantesten Begriffe für jedes Thema, der intertopischen Distanzkarte, der zweidimensionalen Darstellung des Einbettungsraums und die Themenhierarchie.
Beginnen wir damit, die Balkendiagramme für die Top-Ten-Themen anzuzeigen. Für jedes Thema können wir die wichtigsten Wörter beobachten, sortiert in absteigender Reihenfolge basierend auf dem c-TF-IDF-Score. Je relevanter ein Wort ist, desto höher ist die Punktzahl.
Das erste Thema enthält allgemeine Wörter wie Lage und Essen, Thema 1 bestellen und warten, Thema 2 am schlechtesten und Service, Thema 3 Ort und schmutzig usw.
Nachdem Sie die Balkendiagramme visualisiert haben, ist es an der Zeit, einen Blick auf die intertopische Distanzkarte zu werfen. Wir reduzieren die Dimensionalität des c-TF-IDF-Scores auf einen zweidimensionalen Raum, um die Themen in einem Diagramm zu visualisieren. Unten befindet sich ein Schieberegler, mit dem Sie das Thema auswählen können, das rot eingefärbt wird. Wir können feststellen, dass die Themen in zwei verschiedene Cluster gruppiert sind, einen mit generischen Themen wie Essen, Hühnchen und Ort und einen mit unterschiedlichen negativen Aspekten wie schlechtester Service, schmutzig, Ort und Kälte.
Die nächste Grafik erlaubt es, die Beziehung zwischen den Bewertungen und den Themen zu sehen. Insbesondere kann es hilfreich sein zu verstehen, warum eine Rezension einem bestimmten Thema zugeordnet und mit den relevantesten gefundenen Wörtern abgeglichen wird. Zum Beispiel können wir uns auf den roten Cluster konzentrieren, der Thema 2 entspricht, mit einigen Worten über den schlechtesten Service. Die Dokumente in diesem dichten Bereich scheinen ziemlich negativ zu sein, wie „Schrecklicher Kundenservice und noch schlechteres Essen“.
Auf den ersten Blick haben diese Ansätze viele Gemeinsamkeiten, wie das automatische Finden der Anzahl von Themen, keine Notwendigkeit der Vorverarbeitung in den meisten Fällen, die Verwendung von UMAP, um die Dimensionalität von Dokumenteinbettungen zu reduzieren, und dann wird HDBSCAN verwendet modellieren diese reduzierten Dokumenteinbettungen, unterscheiden sich aber grundlegend in der Art und Weise, wie sie die Themen den Dokumenten zuordnen.
Top2Vec erstellt Themendarstellungen, indem es Wörter findet, die sich in der Nähe des Schwerpunkts eines Clusters befinden.
Anders als Top2Vec berücksichtigt BERTopic nicht den Schwerpunkt des Clusters, sondern betrachtet alle Dokumente in einem Cluster als ein einzigartiges Dokument und extrahiert Themendarstellungen unter Verwendung einer klassenbasierten Variante von TF-IDF.
Top2Vec | BERThema |
Die Strategie zum Extrahieren von Themen basierend auf den Zentroiden des Clusters. | Die Strategie zum Extrahieren von Themen basierend auf c-TF-IDF. |
Dynamische Themenmodellierung wird nicht unterstützt. | Es unterstützt die dynamische Themenmodellierung. |
Es erstellt Wortwolken für jedes Thema und bietet Suchwerkzeuge für Themen, Dokumente und Wörter. | Es ermöglicht die Erstellung interaktiver Visualisierungsplots, die eine Interpretation der extrahierten Themen ermöglichen. |
Die Themenmodellierung ist ein wachsendes Feld der Verarbeitung natürlicher Sprache und es gibt zahlreiche mögliche Anwendungen, wie Rezensionen, Audio- und Social-Media-Beiträge. Wie gezeigt wurde, bietet dieser Artikel einen Überblick über Topi2Vec und BERTopic, zwei vielversprechende Ansätze, die Ihnen helfen können, Themen mit wenigen Codezeilen zu identifizieren und die Ergebnisse durch Datenvisualisierungen zu interpretieren. Wenn Sie Fragen zu diesen Techniken haben oder andere Vorschläge zu anderen Ansätzen zur Erkennung von Themen haben, schreiben Sie es in die Kommentare.
Eugenia Anello ist derzeit wissenschaftlicher Mitarbeiter am Institut für Informationstechnik der Universität Padua, Italien. Ihr Forschungsprojekt konzentriert sich auf kontinuierliches Lernen in Kombination mit Anomalieerkennung.
- SEO-gestützte Content- und PR-Distribution. Holen Sie sich noch heute Verstärkung.
- Platoblockkette. Web3-Metaverse-Intelligenz. Wissen verstärkt. Hier zugreifen.
- Quelle: 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
- Fähig
- Über uns
- Konto
- Ad
- Adresse
- Nach der
- Algorithmus
- Algorithmen
- ausgerichtet
- Alle
- Zuteilung
- Zulassen
- erlaubt
- Beträge
- Analyse
- analysieren
- und
- Anomalieerkennung
- Ein anderer
- Anwendung
- Anwendungen
- angewandt
- Ansatz
- Ansätze
- Bereich
- Bereiche
- Argumente
- Artikel
- Aspekte
- zugewiesen
- Audio-
- Im Prinzip so, wie Sie es von Google Maps kennen.
- verfügbar
- Badewanne
- Bar
- basierend
- weil
- zwischen
- Boden
- Frühstück
- Building
- baut
- Berechnung
- namens
- kann keine
- fähig
- Erfassung
- Fälle
- Kette
- Merkmal
- Charts
- gewählt
- Stadt
- klassisch
- Menu
- näher
- Cluster
- Clustering
- Code
- Kaffee
- kombiniert
- Bemerkungen
- gemeinsam
- Beschwerden
- betrachtet
- Berücksichtigung
- enthält
- Kontext
- konventionellen
- Dazugehörigen
- entspricht
- erstellen
- erstellt
- schafft
- Erstellen
- Schaffung
- Tasse
- Zur Zeit
- Kunde
- Kundenservice
- technische Daten
- Tag
- Behandlung
- weisen nach, dass
- Abteilung
- Entdeckung
- entschlossen
- anders
- Abstand
- Entfernt
- Divergieren
- Dokument
- Unterlagen
- Tut nicht
- Nachteile
- Antrieb
- durchfahren
- dynamisch
- jeder
- leicht
- anderswo
- eingebettet
- Entwicklung
- Sogar
- Beispiel
- Außer
- erklärt
- Extrakt
- KONZENTRAT
- äußerst
- FAST
- Kerl
- wenige
- Feld
- Finden Sie
- Suche nach
- Vorname
- Setzen Sie mit Achtsamkeit
- konzentriert
- Nahrung,
- gefunden
- für
- grundlegend
- Allgemeines
- erzeugen
- erzeugt
- bekommen
- Global
- Go
- gehen
- Graph
- Graphen
- persönlichem Wachstum
- Hilfe
- Hierarchie
- High
- höher
- höchste
- HTTPS
- Idee
- Login
- Kennzeichnung
- identifizieren
- Identifizierung
- importieren
- wichtig
- zu unterstützen,
- in
- Information
- beantragen müssen
- interaktive
- interessant
- Interpretation
- IT
- Italien
- KDnuggets
- Aufbewahrung
- Wissen
- Label
- Sprache
- grosse
- lernen
- Hebelwirkungen
- Line
- Linien
- Liste
- aus einer regionalen
- located
- Standorte
- Standorte
- aussehen
- suchen
- Main
- viele
- Karte
- Matrix
- MCDONALD
- sinnvoll
- Medien
- Modell
- Modellieren
- Modellieren
- für
- mehr
- vor allem warme
- multinationalen
- Name
- Natürliche
- Natürliche Sprache
- Verarbeitung natürlicher Sprache
- Need
- Negativ
- weiter
- Lärm
- Anzahl
- und viele
- beobachten
- erhalten
- EINEM
- Auftrag
- Organisation
- Original
- Andere
- Pandas
- Parameter
- Teil
- besondere
- Prozentsatz
- ausführen
- Sätze
- Ort
- Plato
- Datenintelligenz von Plato
- PlatoData
- Points
- möglich
- BLOG-POSTS
- größte treibende
- Gegenwart
- früher
- vorher
- Verarbeitung
- Produziert
- Produkte
- Projekt
- aussichtsreich
- vorausgesetzt
- bietet
- Qualität
- Fragen
- Grund
- Rot
- Veteran
- Reduziert
- Reduzierung
- in Bezug auf
- Beziehung
- Beziehungen
- relevant
- wiederholen
- Darstellung
- Vertreter
- representiert
- Forschungsprojekte
- Die Ergebnisse
- zeigen
- Überprüfen
- Bewertungen
- gleich
- Suche
- Suche
- Auswahl
- sollte
- erklären
- gezeigt
- Sehenswürdigkeit
- ähnlich
- Ähnlich
- da
- Single
- Schieber
- langsam
- So
- Social Media
- Social Media
- Social Media Beiträge
- einige
- Raumfahrt
- spezialisiert
- spezifisch
- gespalten
- Schritt
- Shritte
- Strategie
- Struktur
- so
- Schlägt vor
- überwachtes Lernen
- Support
- Unterstützt
- Tabelle
- Nehmen
- nimmt
- Techniken
- zehn
- AGB
- Das
- Dort.
- nach drei
- Durch
- Zeit
- zu
- Tokenisiert
- Werkzeuge
- Top
- Top Ten
- Thema
- Themen
- Transformer
- Lernprogramm
- typisch
- zugrunde liegen,
- verstehen
- einzigartiges
- Universität
- USA
- -
- wertvoll
- Werte
- Variante
- Visualisierung
- warten
- welche
- während
- Während der
- werden wir
- .
- Word
- Worte
- Wurst
- schreiben
- Falsch
- Zephyrnet