fastText und wie verwende ich es für die Textanalyse?

Wir alle nutzen Facebook und Sie müssen irgendwann erfahren haben, dass Sie einen Beitrag verfasst haben und Facebook beginnt, Ihnen Anzeigen zu schalten, die genau mit dieser Sache zusammenhängen.

Wenn Sie zum Beispiel einen Facebook-Beitrag verfassen, der besagt, dass Sie Ihren Job kündigen, um ein neues Unternehmen zu gründen, und Facebook plötzlich beginnt, Ihnen Anzeigen wie diese zu zeigen.

Woher weiß Facebook genau, was zu zeigen ist?

Nun, es ist die Magie seiner NLP-Bibliothek - fastText.

FastText ist eine Open-Source-Bibliothek, die kostenlos und unkompliziert ist und kürzlich von Facebook geöffnet wurde. FastText ist eine Bibliothek, die vom Facebook-Forschungsteam zum effizienten Lernen von Wortrepräsentationen und Satzklassifikationen erstellt wurde.

Diese Bibliothek hat in der NLP-Community viel Aufmerksamkeit auf sich gezogen, da sie in verschiedenen NLP-Domänen hervorragende Ergebnisse auf dem neuesten Stand der Technik zeigt.

Wie benutzt man es?

In diesem Artikel werde ich Ihnen erklären, wie man es für die Textklassifizierung verwendet.

Schritt 1: Versetzen Sie Ihre Daten in das richtige Format

Für fastText ist es sehr wichtig, dass die Daten in einem vorgeschriebenen korrekten Format vorliegen.

Das Format:

_label_0 your_text

Hier muss "_label_" so verwendet werden, wie es ist.

"0" gibt Aufschluss über Ihre Beschriftung (der Wert in der Beschriftungsspalte für diese bestimmte Zeile).

‘Your_text’ ist der Text, mit dem Sie Ihren Klassifikator trainieren möchten.

In dem oben angegebenen Code habe ich gezeigt, wie Sie eine neue Datei "train.txt" zum Schreiben öffnen und Ihren Datenrahmen darin schreiben.

Schritt 2: Klonen des Repos

Als nächstes müssen wir das fastText-Repo in unser Notizbuch klonen, um dessen Funktionen nutzen zu können.

Repo-ID: https://github.com/facebookresearch/fastText.git

Nach dem Klonen folgen Sie diesen Schritten:

Stellen Sie sicher, dass sich Ihre train.txt-Datei im fastText-Ordner befindet, der durch Klonen des Repos erstellt wurde.

Schritt 3: Mit den Befehlen herumspielen

Jetzt kann Ihr Modell trainiert werden. Geben Sie den folgenden Befehl ein, um Ihren Klassifikator zu trainieren.

./fasttext supervised -input train.txt -output

-label __label__ -lr 0.1 -epoch 40

Die folgenden Argumente sind obligatorisch:

  • -input Trainingsdateipfad
  • Ausgabedateipfad

Sie können mit diesen Parametern experimentieren, um Ihr Modell zu optimieren (verwenden Sie unbedingt einen Bindestrich (-), bevor Sie ein Argument verwenden).

Argument ohne Bindestrich!

Verwendungszweck:

Die folgenden Argumente sind optional:

  • Ausführlichkeitsstufe [2]

Die folgenden Argumente für das Wörterbuch sind optional:

  • -minCount minimale Anzahl von Wortvorkommen [1]
  • -minCountLabel minimale Anzahl von Label-Vorkommen [0]
  • -wordNgrams maximale Länge des Wortes ngram [2]
  • Anzahl der Eimer [2000000]
  • -minimale Länge des Zeichens [0]
  • -maxn maximale Länge des Zeichens ngram [0]
  • -t Abtastschwelle [0,0001]
  • -label labels Präfix [__label__]

Die folgenden Argumente für das Training sind optional:

  • -lr Lernrate [0.1]
  • -lrUpdateRate Ändert die Aktualisierungsrate für die Lernrate. [100]
  • -dim Größe der Wortvektoren [100]
  • -ws Größe des Kontextfensters [5]
  • -epochenzahl der Epochen [40]
  • -negative Anzahl der untersuchten Negative [5]
  • Verlustfunktion {ns, hs, softmax, one-vs-all} [softmax]
  • Anzahl der Threads [12]
  • -pretrainedVectors trainierte Wortvektoren für überwachtes Lernen []
  • -saveOutput ob Ausgabeparameter gespeichert werden sollen [false]

Die folgenden Argumente für die Quantisierung sind optional:

  • Cutoff-Anzahl der Wörter und Ngramme, die beibehalten werden sollen [0]
  • -Retrain, ob Einbettungen bei Anwenden eines Cutoffs fein abgestimmt werden [true]
  • -qnorm ob die Norm separat quantisiert wird [false]
  • -qout ob der Klassifikator quantisiert ist [false]
  • -dsub Größe jedes Untervektors [2]

Schritt 4: Vorhersage mit gespeichertem Modell

Der folgende Befehl testet das Modell anhand eines mit Anmerkungen versehenen Testdatensatzes und vergleicht die Originaletiketten mit den vorhergesagten Etiketten und generiert Bewertungsergebnisse in Form von Genauigkeits- und Rückrufwerten.

Die Genauigkeit ist die Anzahl der korrekten Beschriftungen unter den von fastText vorhergesagten Beschriftungen. Der Rückruf ist die Anzahl der Etiketten, die erfolgreich vorhergesagt wurden.

./fasttext test   k

Stellen Sie sicher, dass die Testdatei auch dasselbe Format hat wie die Zugdatei.

So prognostizieren Sie neue Labels:

./fasttext predict   k> 

Dabei bedeutet k, dass das Modell die Top-k-Bezeichnungen für jede Überprüfung vorhersagt.

Die für die obigen Überprüfungen vorhergesagten Labels lauten wie folgt:

__label__2
__label__1
__label__2
__label__2
__label__2
__label__2
__label__2
__label__2
__label__1
__label__2
__label__2

Die Vorhersagedatei kann dann für weitere detaillierte Analyse- und Visualisierungszwecke verwendet werden.

fastText hat auch in anderen Bereichen, wie Wortrepräsentationen usw., hervorragende Ergebnisse gezeigt, die in den kommenden Artikeln behandelt werden sollen.

Vielen Dank für das Lesen dieses Artikels.