NLP mit R Teil 1: Themenmodellierung an Identifizieren von Themen in Restaurantbewertungen

Veröffentlicht

(Jurriaan Nagelkerke) ( 13. November 2020)

Diese Geschichte wurde von und geschrieben. Es ist Teil unserer NLP mit R series ( Verarbeitung natürlicher Sprache für Vorhersagezwecke mit R ) , wobei Themenmodellierung, Worteinbettungen, Transformatoren und BERT verwendet werden.

In einer Sequenz In Artikeln vergleichen wir verschiedene NLP-Techniken, um Ihnen zu zeigen, wie wir wertvolle Informationen aus unstrukturiertem Text erhalten. Vor ungefähr einem Jahr haben wir Bewertungen zu niederländischen Restaurants gesammelt. Wir haben uns gefragt, ob „die Weisheit der Menge“ – Bewertungen von Restaurantbesuchern – verwendet werden kann, um vorherzusagen, welche Restaurants am wahrscheinlichsten einen neuen Michelin-Stern erhalten. Lesen Sie diesen Beitrag , um zu sehen, wie das funktioniert hat. Wir haben Themenmodellierung als unser primäres Werkzeug verwendet, um Informationen aus den Überprüfungstexten zu extrahieren, und diese mit Vorhersagemodellierungstechniken kombiniert, um unsere Vorhersagen zu erhalten.

Wir haben viel Aufmerksamkeit mit unseren Vorhersagen und auch Fragen darüber bekommen, wie wir den Teil der Textanalyse durchgeführt haben. Um diese Fragen zu beantworten, werden wir unseren Ansatz in den kommenden Artikeln näher erläutern. Wir haben jedoch nach unserer Veröffentlichung nicht aufgehört, NLP-Techniken zu erforschen, und wir möchten auch Erkenntnisse über das Hinzufügen neuerer NLP-Techniken austauschen. Insbesondere werden zwei Arten von Worteinbettungen verwendet – ein klassisches Word2Vec-Modell und ein GLoVe-Einbettungsmodell – Wir verwenden Transferlernen mit vorgefertigten Worteinbettungen und BERT . Wir vergleichen den Mehrwert dieser fortschrittlichen NLP-Techniken mit unserem Basisthemenmodell für denselben Datensatz. Indem wir zeigen, was wir getan haben und wie wir es getan haben, hoffen wir, andere anzuleiten, die Textdaten für ihre eigenen datenwissenschaftlichen Bemühungen verwenden möchten.

In einem (vorherigen Artikel) haben wir gezeigt, wie wir es getan haben bereitete unsere Daten für verschiedene NLP-Techniken vor. Hier beginnen wir unsere Artikelserie über NLP-Techniken mit der Einführung von Themenmodellierung und zeigen Ihnen, wie Sie Themen identifizieren und das Themenmodell visualisieren Ergebnisse. In einem (späteren Artikel) zeigen wir Ihnen, wie Sie die Ergebnisse des Themenmodells in einem Vorhersagemodell verwenden.

Was ist Themenmodellierung?

Um die Themen zu ermitteln, die Restaurantkritiker schreiben in ihren Restaurantbewertungen darüber, dass wir Topic Modeling verwenden. Aber was ist ein Themenmodell? Beim maschinellen Lernen und bei der Verarbeitung natürlicher Sprachen ist ein Themenmodell eine Art statistisches Modell, mit dem die abstrakten Themen ermittelt werden können, die in einer Sammlung von Dokumenten vorkommen. Es gibt eine Reihe von Algorithmen zum Extrahieren von Themen aus einer Textsammlung, aber die Latent Dirichlet Allocation ist einer der beliebtesten Algorithmen, da sie effizient ist und zu Ergebnissen führt hoch interpretierbare Themen. Die Interpretierbarkeit von Themen ist ein wichtiges Merkmal eines Themenmodells, da wir nicht nur statistisch relevante Wortgruppen finden möchten, sondern auch die identifizierten Themen mit einem Themennamen kennzeichnen möchten, auf den sich andere beziehen können. Daher weist die Themenmodellierung einige Ähnlichkeiten mit Clustering-Techniken wie KMeans auf, bei denen die Interpretation ebenso wichtig ist wie statistische Metriken, um zu bestimmen, was eine „gute“ Lösung ist. Die Funktionsweise von Themenmodellierung / LDA wird von Blei wie folgt dargestellt:

Wie die Abbildung zeigt:

  • Jede Thema ist eine Verteilung über Wörter
  • Jedes Dokument ist eine Verteilung über Themen

Nachdem wir mit der Themenmodellierung unserer Bewertungen fertig sind:

  • sollten wir wissen, in welchen Themen oder Themen Rezensenten schreiben
  • wir wissen, welche Token oder Wörter in diesen Themen am wichtigsten sind, und
  • wir können für jede einzelne Bewertung sagen, inwieweit es um die identifizierten Themen und dies geht kann eine Mischung sein – 80\% zu Thema X und 20\% zu Thema Y .

Schritt 0: Einrichten unseres Kontexts

Zuerst Wir richten unsere Arbeitsmappenumgebung mit den erforderlichen Paketen ein, um die Themenmodellierung durchzuführen.

In unserem (Blog zur Vorbereitung) In Bezug auf die Textdaten haben wir bereits kurz Tidyverse und Tidytext eingeführt.Hier fügen wir der Liste einige andere Pakete hinzu:

  • topicmodels ist ein Paket zum Schätzen von Themenmodellen mit LDA und Builds Bei Datenstrukturen, die mit dem tm-Paket erstellt wurden
  • tm ist ein leistungsstarkes, generisches Paket mit allen Arten von Text Mining-Funktionen, darunter das Erstellen von Dokumenten Termmatrizen, die wir für die Themenmodellierung benötigen
  • ldavis ist ein großartiges Paket zur Visualisierung und Interpretation des Themenmodells und sehr hilfreich beim Beschriften Themen

Schritt 1. Vorverarbeitete Daten laden

Vorher Wir beschäftigen uns mit der analytischen Seite der Dinge, wir brauchen einige vorbereitete Textdaten. Wie alle echten Datenwissenschaftler wissen, nimmt die ordnungsgemäße Datenaufbereitung den größten Teil Ihrer Zeit in Anspruch und ist für die Qualität der Analyseergebnisse, die Sie am Ende erhalten, von entscheidender Bedeutung. Das Vorbereiten von Textdaten ist eine weitere Sache im Vergleich zum Vorbereiten strukturierter numerischer oder kategorialer Daten. In diesem Blog liegt unser Fokus auf der Textanalyse. Wir möchten Ihnen jedoch zeigen, wie wir die gesammelten Daten bereinigt und aufbereitet haben. In diesem (vorherigen Blog) erklären wir ausführlich, wie wir die Daten vorverarbeitet haben. Daraus resultieren die folgenden 5 Dateien, die wir in unserer NLP-Analyse verwenden können:

  • reviews.csv: Eine CSV-Datei mit originalen und vorbereiteten Überprüfungstexten – der Treibstoff für unsere NLP-Analysen. (enthaltener Schlüssel: restoreviewid, daher die eindeutige Kennung für eine Überprüfung)
  • labels.csv : a CSV-Datei mit 1/0 Werten, die angibt, ob es sich bei der Bewertung um eine Bewertung für ein Michelin-Restaurant handelt oder nicht (enthaltener Schlüssel: restoreviewid)
  • restoid.csv : Eine CSV-Datei mit Restaurant-IDs, um festzustellen, welche Bewertungen zu welchem ​​Restaurant gehören (enthaltener Schlüssel: restoreviewid)
  • trainids.csv : Eine CSV-Datei mit 1/0 Werten, die angibt, ob die Überprüfung für Schulungen oder Tests verwendet werden soll. Wir haben die Überprüfungen bereits in train / aufgeteilt. Test, um die Wiederverwendung derselben Beispiele für faire Vergleiche zwischen Techniken zu ermöglichen (enthaltener Schlüssel: restoreviewid)
  • features.csv : Eine CSV-Datei mit anderen Funktionen in Bezug auf die Überprüfungen (enthaltener Schlüssel: restoreviewid)

Diese Dateien mit th Die bereinigten und relevanten Daten für NLP-Techniken werden Ihnen über den öffentlichen Blob-Speicher zur Verfügung gestellt, damit Sie den gesamten von uns präsentierten Code ausführen und sehen können, wie die Dinge detaillierter funktionieren. Für unser Themenmodell benötigen wir drei dieser Dateien:

Schritt 2: Bereiten Sie Daten für das Thema vor Modellierung

Ausgehend von den bereinigten Überprüfungstexten müssen wir einige Dinge tun, bevor wir unsere Themenmodelle schätzen können:

  1. Tokenisieren Sie unseren vorbereiteten Text (einschließlich Bigrams)
  2. Beispielbewertungen für das Training unseres Themenmodells
  3. Relevante Token filtern
  4. Dokumenttermmatrix erstellen

2.1. Tokenisieren Sie unseren vorbereiteten Text (einschließlich Bigrams).

Latent Dirichlet Allocation (LDA), die Technik, die wir für die Themenmodellierung verwenden, ist eine „Bag of Words“ -Technik. Dies bedeutet, dass die NLP-Technik bei der Analyse des Textes nicht die Reihenfolge der Token berücksichtigt. Daher wird nicht berücksichtigt, wo sich das Token im Text befindet und welche anderen Token sich in der Nähe des Tokens befinden (vorhergehende / nachfolgende Token) innerhalb des Dokuments . Es ist so, als würden alle Token aus dem Dokumenttext in eine Tasche geworfen, um sie zu verwechseln, aber die Information beizubehalten, dass sich die Token im selben Dokument befinden. Infolgedessen könnten wichtige Informationen fehlen, wenn der Text viele interessante Kollokationen – häufige Kombinationen von Token – enthält. Beliebte Beispiele sind Namen von Personen (Donald Trump, Jonnie Boer) oder Orten (USA, Den Haag), aber auch kontextspezifische Wortkombinationen könnten wichtig sein, um sie in unser Themenmodell aufzunehmen: witte wijn ( Weißwein ), ritt wijn ( Rotwein ), gaan eten ( geh essen ). Um sicherzustellen, dass wir diese wichtigen Kollokationen nicht verpassen, fügen wir die vorbereiteten Bigrams hinzu, die in unserem Text vorhanden sind. Denken Sie daran, dass wir bereits Stoppwörter und Interpunktionen in unserem Datenbericht entfernt haben.

Nachdem wir den geladenen, bereinigten Texten Bigrams hinzugefügt haben, teilen wir die Texte erneut auf, um einen Datenrahmen zu erhalten, in dem jede Zeile eine Kombination aus Überprüfung und Token ist. Wir filtern zu kurze Bewertungen heraus (5 Token), nachdem wir Stoppwörter entfernt haben. In diesem Format sind wir für unsere letzten Vorbereitungen bereit, bevor wir mit der Modellierung von Themen beginnen können.

2.2 Beispielprüfungen für das Training unseres Themenmodells

In unserem nächsten Schritt filtern wir die relevantesten Token, die in die Dokumenttermmatrix und anschließend in die Themenmodellierung aufgenommen werden sollen.Aber zuerst müssen wir herausfinden, welche Dokumente (Überprüfungen) für uns am wichtigsten sind. Aus bestimmten Gründen möchten wir nicht alle Überprüfungen als Eingabe für unser Themenmodell verwenden:

  • Am Ende möchten wir die Themen in einem Vorhersagemodell verwenden, um Michelin-Sterne vorhersagen. Es wird empfohlen, einen Testsatz beiseite zu legen, bevor wir das Themenmodell erstellen und seine Ergebnisse in der nachgelagerten Vorhersageaufgabe verwenden. Auf diese Weise bauen wir sowohl unser Themenmodell als auch unsere Vorhersage auf Zugdaten auf und lassen Testdaten bis zur Auswertung unsichtbar.
  • Wie unten gezeigt, sind nicht mehr als 3\% aller Bewertungen Michelin-Bewertungen. Durch Erhöhen des Anteils der Michelin-Bewertungen in dem Zugsatz, den wir für die Themenmodellierung verwenden, ist es wahrscheinlicher, dass bestimmte Themen identifiziert werden, die in Michelin-Bewertungen behandelt werden.

Aus diesen Gründen werden wir Der Rest der Vorbereitung konzentriert sich auf unser Themenmodell und die Schätzung der Themenmodelle auf eine Teilmenge der Überprüfungen. Diese Untergruppe enthält nur Überprüfungen, die bereits in unserem Notizbuch zur Datenaufbereitung als Schulungsfälle angegeben sind. Innerhalb dieser Untergruppe nehmen wir alle Michelin-Bewertungen (ca. 3.000) und ergänzen sie mit Nicht-Michelin-Bewertungen, um ungefähr 10.000 Bewertungen zu erhalten:

# A tibble: 2 x 3
ind\_michelin n pct

1 0 141554 97\%
2 1 4313 3\%
# A tibble: 5 x 5
# Groups: train\_smpl, train [3]
train\_smpl train ind\_michelin n\_reviews n\_tokens

1 0 0 0 40997 433179
2 0 0 1 1290 35129
3 0 1 0 88505 773887
4 1 1 0 7181 111435
5 1 1 1 2971 70548
[1] "10152 unique reviews and 163137 unique tokens selected to train topic model"

2.3 Filter-Token

Nachdem wir den Token Bigrams hinzugefügt und unsere Texte neu getoken haben, stehen für unser Themenmodell immer noch viele, viele einzigartige Token zur Verfügung . Es wird empfohlen, den langen Schwanz seltener Begriffe loszuwerden. Schauen wir uns zunächst an, wie die Verteilung der Token-Häufigkeit aussieht. Denken Sie daran, dass wir in unserem (Datenvorbereitungs-Blog) bereits alle Stoppwörter aus den Texten entfernt haben, einschließlich 128 benutzerdefinierter Hochfrequenz-Stoppwörter, die wir anhand der Token-Häufigkeit bei der Datenvorbereitung angegeben haben.

Die obige Darstellung zeigt deutlich, dass eine große Menge der eindeutigen Token in allen Überprüfungen selten vorkommt, 75\% nur einmal.

Konzentrieren Sie sich auf Token, die fünfmal oder einmal vorkommen mehr im Zugkorpus

Wie wir anhand der Token-Frequenz sehen können, gibt es viele Token, die nur einmal oder einige Male vorkommen: Rund 92\% aller eindeutigen Token kommen in unserem weniger als fünfmal vor Korpus von Bewertungen. Diese Niederfrequenz-Token wirken sich auf die Themenmodellanalyse aus. Um sich auf häufig verwendete Token zu konzentrieren, wählen wir Token aus, die in den vorbereiteten Zugdaten mindestens fünfmal vorkommen. Dies ist hoffentlich genug, um Themen aus Token zu lernen, die zusammen in denselben Überprüfungen vorkommen. Bei der Optimierung unseres Themenmodells können wir die Mindesthäufigkeit variieren, um die Auswirkungen auf die Ergebnisse zu bewerten.

Warum nicht TF-IDF?

Nachdem Sie einige Textanalyse-Tools gelesen haben, fragen Sie sich möglicherweise: Warum verwenden wir TF-IDF nicht, um die relevantesten Token auszuwählen? TF-IDF steht für Term Frequency – Inverse Document Frequency. Diese Metrik kombiniert den Begriff Häufigkeit – wie oft ist das Token in einem Dokument vorhanden? – mit der Umkehrung der Dokumenthäufigkeit – in wie vielen eindeutigen Dokumenten ist der Begriff vorhanden? Obwohl die TF-IDF häufig eine gute Wahl für die Auswahl der relevantesten Token ist, ist dies in unserem Kontext nicht der Fall, in dem die Dokumentgröße begrenzt ist und das Wiederauftreten desselben Tokens im selben Text gering ist. Nicht oft hat ein Token eine Termhäufigkeit über 1. Daher ist nur der Teil Inverse Document Frequency entscheidend, und dies begünstigt die Token, die nur in einer oder zwei Überprüfungen auftreten. Aus diesem Grund verwenden wir hier kein TF-IDF, sondern betrachten die Gesamthäufigkeit, um relevante Token für die Themenmodellierung auszuwählen. Auch weil wir die benutzerdefinierte Liste der Stoppwörter bereits aus unserem Text entfernt haben, werden bereits zu häufige Token entfernt.

Durch Filtern der seltenen Token haben wir die Anzahl der zu berücksichtigenden Token verringert in unserer LDA dramatisch, indem wir uns auf die 12K (8\%) häufigsten Token konzentrieren und die 146K (92\%) Token entfernen, die im Korpus zu selten sind. Diese ausgewählten Token machen jedoch immer noch 73\% aller Token in den Dokumenten aus:

# A tibble: 2 x 5
min\_5\_freq n\_unique\_tokens n\_tokens pct\_unique\_tokens pct\_all\_tokens

1 token frequency: 2 token frequency: >=5 12525 518146 8\% 73\%

2.4 DTM erstellen

Nach dem Filtern der Token, die wir zum Erstellen unseres Themenmodells verwenden möchten, können wir die Eingabe für LDA. Dies erfordert eine document-term-matrix oder DTM, daher eine Matrix mit in den Zeilen alle unsere Dokumente (Überprüfungen) und in den Spalten alle Begriffe (die relevante Token). Beachten Sie, dass wir die Gesamt-Token-Häufigkeit für den Parameter value verwenden.Sie können hier die Häufigkeit von dokumentenspezifischen Begriffen erwarten. Wir verwenden jedoch die Gesamthäufigkeit von Token, um Begriffe, die im Allgemeinen häufiger vorkommen, stärker zu betonen. Angesichts der kurzen Länge der Überprüfungen (im Vergleich zu Büchern oder Artikeln, die häufig in der Themenmodellierung verwendet werden) ist die Wahrscheinlichkeit, dass ein einzelnes Token häufiger in der Überprüfung auftritt, begrenzt.

DTM dimensions: 
Documents (10152) x Tokens (12525) (average token frequency: 702.3)

Schritt 3: Entwickeln des Themenmodells

Jetzt haben wir eine DTM, wir sind bereit, mit der Themenmodellierung zu beginnen! Bisher haben wir bereits einige Entscheidungen getroffen, die sich auf unser Analyseergebnis auswirken: Welche minimale Überprüfungslänge muss verwendet werden, welche Stoppwörter müssen ausgeschlossen werden, welche n -gramme enthalten, die minimale Token-Häufigkeit für die Verwendung von Token … Und es müssen noch einige weitere Entscheidungen getroffen werden.

LDA verfügt über eine Reihe von Parametern, die sich auf das Ergebnis auswirken. Die wichtigsten sind:

  • k : Die Anzahl der Themen! Ja, dies ist ein Parameter und kein Ergebnis. Ähnlich wie bei Clustering-Techniken wie KMeans müssen Sie angeben, wie viele Cluster / Themen Sie identifizieren möchten ify.
  • Methode : Das Themenmodellpaket ermöglicht verschiedene Optimierungsmethoden, VEM algorithm oder Gibbs sampling, Standard ist VEM.
  • control : Liste der Steuervariablen zur Steuerung der Schätzung – relevante Parameter hängen von der gewählten Methode VEM oder Gibbs ab. Die wichtigsten sind jedoch:
  • nstart : Die Anzahl der Läufe, die mit denselben Einstellungen, aber unterschiedlichen Startwerten ausgeführt werden sollen.
  • Startwert : Zur Reproduzierbarkeit kann ein zufälliger Startwert festgelegt werden. Wenn nstart> 1 ist, müssen Sie mehrere Seeds angeben, 1 pro nstart (z. B. c (123, 234 „, 345“))
  • best : Wenn TRUE (Standard), wird nur der Lauf mit dem am besten passenden Ergebnis beibehalten, von set, wenn FALSE eine Liste aller Läufe zurückgegeben wird, damit Sie alle untersuchen können

Eine vollständige Übersicht aller verfügbaren Parameter und Einstellungen finden Sie in der Themenmodell-Paketvignette .

LDA-Themenmodell schätzen

Der wirkungsvollste Parameter ist k : die Zahl von Themen zu identifizieren. Wie wähle ich einen Wert für k aus? Dies ist teilweise ein Ergebnis der Diskussion (wie viele Themen erwarten wir in diesem Zusammenhang?) Und des Versuchsfehlers & (versuchen Sie verschiedene Werte von k, bewerten Sie die Ergebnisse). Einige Datenwissenschaftler mögen dies möglicherweise nicht, sie ziehen es vor, Statistiken zu betrachten, um sie in diesem Prozess zu unterstützen, aber für diejenigen, die mit anderen unbeaufsichtigten datenwissenschaftlichen Techniken wie KMeans vertraut sind, ist dies nicht so neu. Clustering und auch Themenmodellierung sind zum Teil mehr Kunst als Wissenschaft. Anhand statistischer Techniken und Maßnahmen entwickelt ein Datenwissenschaftler eine Lösung zur Themenmodellierung, die den (Geschäfts-) Anforderungen entspricht. Falls Sie einen Startpunkt für k mit einem statistischen Hintergrund benötigen, können Sie diesen Ansatz oder dies versuchen Ansatz.

Beginnen wir mit einem Themenmodell, um drei Themen zu identifizieren und das Ergebnis zu untersuchen. Wir haben zu diesem Zeitpunkt keinen Grund, andere Standardeinstellungen zu ändern.

Themenmodell auswerten

Das Themenmodell ist angepasst. Lassen Sie uns das untersuchen!

Das angepasste lda-Objekt enthält eine Reihe von Matrizen:

  • phi : Matrix mit Verteilung von Token (in Zeilen) über Themen (in Spalten)
  • theta : Matrix mit Verteilung von Dokumenten (daher: Überprüfungen, in Zeilen) über Themen (in Spalten)

Sowohl für phi als auch für Theta, die Summe über alle Spalten ist gleich 1, was bedeutet:

  • Für Phi beträgt die Summe aller Token-Bewertungen innerhalb eines Themas 1 – höhere Bewertungen bedeuten eine höhere Bedeutung dieses Tokens innerhalb des Themas
  • Für Theta beträgt die Summe aller Themenbewertungen in einem Dokument 1 – höhere Bewertungen bedeuten, dass das Thema in diesem Dokument mehr vorhanden ist.

Um unser Themenmodell zu erkunden, schauen wir uns zunächst die wichtigsten Token pro Thema an. Dazu müssen wir angeben, wann ein Token für ein Thema wichtig ist. Wir könnten argumentieren, dass das Token für das Thema wichtig ist, wenn es mit hoher Wahrscheinlichkeit innerhalb eines Themas p(token|topic) auftritt. Lassen Sie uns sehen, wie dies für unser 3-Themen-Themenmodell aussieht. Wir werden eine übersichtliche Funktion des tidytext -Pakets verwenden, mit deren Hilfe die Themenmodelldaten für die Visualisierung der wichtigsten Token vorbereitet werden können pro Thema: tidy().

Mit dieser Darstellung erhalten wir einen ersten Eindruck davon, was die Themen in unserem ersten Themenmodell darstellen. Wie aus der Darstellung ersichtlich ist, hat die Betrachtung der Token-Wahrscheinlichkeit pro Thema den Nachteil, dass Token mit einer hohen Gesamthäufigkeit eine höhere Wahrscheinlichkeit haben, bei mehreren Themen in den Top-10 zu erscheinen. Zum Beispiel wird Restaurant in den Top 10 der verschiedenen Themen angezeigt. Nur ein Blick auf die Gesamtwahrscheinlichkeiten des Themas kann verbergen, dass bestimmte, etwas weniger häufige Token sehr stark mit einem bestimmten Thema zusammenhängen. Um dies zu analysieren, können wir die Token-Häufigkeit im Thema relativ zur Gesamthäufigkeit des Tokens festlegen: p(token|topic)/p(token). Dies zeigt, welche Token unabhängig von der Token-Häufigkeit stark mit dem Thema verbunden sind.

Wenn Sie (nur) den letzteren Ansatz wählen, hat dies seinen eigenen Nachteil und hebt wichtige Token hervor, die möglicherweise nicht vorkommen so viele Bewertungen. Der beste Ansatz könnte irgendwo in der Mitte liegen: Um ein Themenmodell zu bewerten, ist es am wertvollsten, das Themenmodell aus beiden Perspektiven zu untersuchen – absolute Termwahrscheinlichkeit und relative Termwahrscheinlichkeit – und vielleicht sogar eine Mischung aus beiden. Aus diesem Grund ist das Paket LDAvis so wertvoll, weil es Ihnen ermöglicht, genau das zu tun! LDAvis benötigt einen JSON mit Informationen zu Ihrem Themenmodell und Vokabular:

Eine Randnotiz hier: Das LDAvis R-Paket kann von R oder RStudio aus verwendet werden, jedoch nicht direkt von einer Notebook-Umgebung wie Jupyter oder Databricks. Daher haben wir den pyLDAvis-Port für das LDAvis-Paket verwendet, da dies das Einfügen des wunderbaren LDAvis-Tools in ein Notebook erleichtert. In einigen Browsern funktioniert pyLDAvis jedoch nicht ordnungsgemäß. In diesem Fall sehen Sie sich bitte ein Beispiel unten an. Fühlen Sie sich frei, dieses Notizbuch herunterzuladen und das LDAvis selbst auszuprobieren.

Um LDAvis lokal mit R oder RStudio auszuführen, können Sie serVis(json) ausführen. Informationen zum interaktiven LDAvis anhand des folgenden Siebdrucks finden Sie unter unter diesem Link .

Das Diagramm auf der linken Seite zeigt die Größe von Themen ( Wie viele Dokumente werden dem Thema zugeordnet?) sowie der Abstand zwischen den Themen ( Welche Themen sind mehr oder weniger miteinander verbunden? ). Auf der rechten Seite werden die wichtigen Token für das ausgewählte Thema angezeigt (oder die insgesamt wichtigsten Token im Themenmodell, wenn kein Thema ausgewählt ist). Mit dem Schieberegler oben rechts können wir Lambda ändern, wobei Lambda entscheidet, wie sehr wir die absolute Token-Wahrscheinlichkeit innerhalb des Themas (p(token|topic), Lambda = 1) betrachten oder das relative Token bevorzugen Wahrscheinlichkeit innerhalb des Themas (p(token|topic)/p(token), Lambda = 0). Das Herumspielen mit dieser Visualisierung ist oft der beste Weg, um sich mit den identifizierten Themen vertraut zu machen. Und – was am wichtigsten ist – für jedes Thema ein geeignetes Themenetikett zu finden! Dies ist auch eine große Hilfe bei der Entscheidung, ob das aktuelle Themenmodell für Ihre nachgelagerte Aufgabe ausreicht oder ob Sie einige Einstellungen (k, Methode, Startwert, …) oder sogar die Daten (ausgewählte Dokumente oder Token ändern) ändern möchten ein besseres Ergebnis.

Iterationen in Richtung Ihres erfolgreichen Themenmodells

Wir haben es bereits gesagt: topic modeling ist – genau wie Clusteranalyse und andere unbeaufsichtigte Techniken des maschinellen Lernens – mehr Kunst als Wissenschaft! Daher werden Sie wahrscheinlich einige Zeit damit verbringen, Ihr Themenmodell zu optimieren, bevor Sie Ihr „bestes“ Themenmodell erhalten. Wir setzen hier „am besten“ in Anführungszeichen, da das, was „am besten“ ist, stark von den Anwendungen abhängt, die Sie mit Ihrem Themenmodell und Ihrer Kreativität im Auge haben! Das ist also ziemlich subjektiv! Während Sie Ihr „bestes“ Themenmodell finden, haben Sie wahrscheinlich einige Momente, in denen Sie glauben, keine Lösung zu finden, und andere Momente, in denen Sie die Ekstase erleben, diese intrinsischen Themen zu erleben Token, die es dominieren.Hier sind Ihre wichtigsten Werkzeuge, um Ihr optimales Themenmodell zu erstellen:

  • Ändern Sie k – Die Anzahl der Themen
  • schließt zusätzliche „zu dominante (häufige)“ Token aus (diese können noch bestehen zu dominant sein und das Finden interessanterer Subdomains in Ihrem Text unterdrücken)
  • Erhöhen Sie die minimale Token-Frequenz auf Konzentrieren Sie sich auf die dominanteren Token
  • Beispieldokumente , um sich auf die relevantesten Dokumente zu konzentrieren und wichtige Themen zu finden Wir könnten die Stichprobenstrategie ändern.

Abgesehen von diesen Parametern haben Sie auch einige LDA-Parameter, die Sie variieren können. Nach unserer Erfahrung sind die oben genannten Parameter jedoch die wichtigsten. Während das Erhöhen oder Verringern von k nur bedeutet, dass Sie Ihre LDA neu schätzen müssen, bedeutet das Ändern der Stichprobe von Bewertungen oder der zu berücksichtigenden Token, dass Sie auch Ihre DTM neu erstellen müssen.

Was haben wir getan? Nach viel Schweiß, einigen Flüchen und dem Erforschen vieler Lösungen haben wir Folgendes getan:

  • ändere k auf 7 Themen.
  • Füge einige Token zusammen und schließe einige zu häufige aus Token
  • Untersuchen Sie mehrere Seed-Ergebnisse (mit nstart und best=FALSE), um das am besten interpretierbare Themenmodell zu finden **
  • Wählen Sie abschließend den besten Startwert aus und setzen Sie best=TRUE, um nur das beste LDA-Modell beizubehalten.

** Die ermöglicht die Ausführung mehrerer Läufe durch Angabe des Parameters nstart zum Festlegen der Anzahl der Läufe und mit seed die Samen, um diese Läufe zu führen. Wenn Sie best=TRUE festlegen, bleibt nur die Lösung mit der besten Protokollwahrscheinlichkeit erhalten. Wenn Sie best=FALSE festlegen, können Sie alle Themenmodelle (die Das zurückgegebene Objekt ist jetzt eine Liste aller Themenmodelle.

Das Iterieren und Vergleichen der Ergebnisse führte zu 7 Themen, die wir gut mit Themennamen von Themen kennzeichnen konnten, über die Rezensenten bei der Überprüfung von Restaurants sprechen. Hier ist unsere Lösung für die Themen mit den bereits hinzugefügten Beschriftungen:

DTM dimensions: 
Documents (10152) x Tokens (12496) (average token frequency: 416.26)

Um das interaktive LDAvis anhand des folgenden Siebdrucks zu erkunden, gehen Sie zu diese HTML-Datei .

Obwohl einige Themen immer noch eine Mischung aus Dingen sind, verwenden wir diese Lösung gerne zur Vorhersage von Michelin-Sternen. Wir sehen einige klare Unterschiede zwischen den identifizierten Themen und erwarten, dass die Übersetzung des Rohtextes jeder Überprüfung in einen Vektor von Wahrscheinlichkeiten für diese Themen bei der Vorhersage von Michelin-Sternen hilfreich ist. Hier ist eine Übersicht über die Themen mit den Labels, die wir ihnen geben, und ihre häufigsten Token:

Themenmodellierung – Zusammenfassung

In einem Artikel haben wir Ihnen gezeigt, wie Sie ein Themenmodell erstellen können, um die latenten Konstrukte oder Themen zu identifizieren, über die Rezensenten in ihren Restaurantbewertungen sprechen. Wie Sie gesehen haben, müssen einige Entscheidungen getroffen werden, bevor wir unser endgültiges „bestes“ Themenmodell haben, und einige dieser Entscheidungen sind nicht einfach zu treffen, da Leitstatistiken nicht immer verfügbar sind. Denken Sie daran, was wir zuvor gesagt haben: Themenmodellierung ist eine unbeaufsichtigte Technik, und dies macht sie zu „mehr Kunst als Wissenschaft“. Für viele Anwendungsfälle ist es wichtig, dass Sie Themen erhalten, die Sie interpretieren und erklären können, da Sie die hier erstellten Funktionen interpretieren müssen, während Sie sie in nachgelagerten Aufgaben verwenden. Mit unserem 7-Themen-Modell sind wir zuversichtlich, dass wir dies tun können!

Vorteile

Eine großartige Sache bei der Themenmodellierung – und insbesondere bei der LDA – ist, dass alle Optimierungen und Probleme auftreten Wenn Sie fertig sind, werden Sie wahrscheinlich eine überschaubare Anzahl gut interpretierbarer Themen haben. Auf diese Weise können Sie für jedes Dokument die Verteilung über diese Themen hinzufügen. Da die Themenwahrscheinlichkeiten 1 ergeben und numerische Werte sind, haben Sie die unstrukturierten Texte unterschiedlicher Länge in nur wenigen neuen, einfach zu verarbeitenden Features zusammengefasst. Funktionen, die bei nachgelagerten Aufgaben wie Vorhersagemodellierungs- oder Segmentierungsaufgaben von großem Wert sein können.

Nachteile

Der größte Nachteil der Themenmodellierung ist höchstwahrscheinlich die Subjektivität bei der Suche nach dem „besten“ Modell . Daher kann es einige Zeit und Mühe dauern, bis Sie eine geeignete Lösung für das Themenmodell gefunden haben. Möglicherweise gibt es mehrere statistisch äquivalente Lösungen, die sich in den resultierenden Themen erheblich unterscheiden können.Wenn Sie die Analyse mit geringfügig anderen Daten oder Einstellungen wiederholen, besteht daher immer die Möglichkeit, dass sich die Interpretation des Modells dramatisch ändert. Insbesondere wenn in Ihren Textdaten keine dominante Themenlösung vorhanden ist, kann jeder Lauf zu unterschiedlichen Ergebnissen führen. Vergewissern Sie sich, dass Sie frühere Läufe im Auge behalten, indem Sie die verwendeten Seeds und Datensätze sichern, damit Sie nicht frustriert sind, eine schöne Themenmodelllösung zu finden, die Sie gut interpretieren und beschreiben können, und sie dann verlieren, um sie nie wieder wiederherzustellen.

Mit Blick auf die Zukunft

Zuvor haben wir unser Ziel festgelegt: Vorhersagen, welche Restaurants einen Michelin-Stern haben. In einem unserer (nächsten Blogs) verwenden wir daher die Verteilung auf Themen in den Bewertungstexten, um vorherzusagen, ob es sich bei der Bewertung um eine Michelin-Bewertung handelt oder nicht. Wir aggregieren diese Vorhersagen auch über alle Bewertungen, die ein Restaurant bewerten musste, inwieweit wir Michelin-Sterne vorhersagen können. Abgesehen davon werden wir (andere Techniken) (word2vec, GloVe, BERT) verwenden, um die Überprüfungstexte in Funktionen zusammenzufassen, mit denen wir Michelin-Sterne vorhersagen können, und wir werden zeigen, welcher Ansatz am besten funktioniert. Wir beginnen mit der Einführung von Worteinbettungstechniken (word2vec, GloVe) in unserem nächsten Blog und zeigen Ihnen, wie Sie unsere Überprüfungstexte in Einbettungen umwandeln und diese interpretieren und visualisieren.

Dieser Artikel ist Teil unseres NLP mit R -Serie. Eine Übersicht aller Artikel innerhalb der Reihe finden Sie (hier zu finden).

  • Zurück in dieser Reihe: (Datenvorbereitung für die Verarbeitung natürlicher Sprache)
  • Weiter in dieser Reihe : (Training Word Embedding Model und Visualisierung der Ergebnisse)

Möchten Sie dies selbst tun? Sie können das Databricks-Notizbuch oder das R-Skript von der Seite gitlab herunterladen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.