fastText als Bibliothek zum effektiven Lernen von Wortdarstellungen und Satzcharakterisierung. Es ist in C++ geschrieben und unterstützt Multiprocessing bei der Vorbereitung. Mit FastText können Sie verwaltete und ungestützte Darstellungen von Wörtern und Sätzen vorbereiten. Diese Darstellungen (Einbettungen) können für verschiedene Anwendungen vom Informationsdruck, als Hervorhebungen in zusätzliche Modelle, zur Konkurrenzbestimmung oder als Initialisierer für das Bewegungslernen verwendet werden.

Darstellung

FastText kann eine großartige Ausführung für Wortdarstellungen und Satzgruppierungen erreichen, und zwar allein aufgrund ungewöhnlicher Wörter durch die Verwendung von Daten auf Zeichenebene.

Jedes Wort wird ungeachtet des Wortes selbst als ein Sack von Zeichen n-Gramm gesprochen, so dass z.B. für das Wort Materie, mit n = 3, die FastText-Darstellungen für die Zeichen n-Gramm <ma, tangle, att, tte, ter, er>. < und > als Grenzbilder hinzugefügt werden, um das n-Gramm eines Wortes aus einem Wort selbst zu erkennen, so dass z.B., wenn das Wort tangle ein Teil des Jargons ist, es als <mat> gesprochen wird. Dies hilft, die Bedeutung von kürzeren Wörtern, die als Ngramme verschiedener Wörter erscheinen können, zu retten. Unverzichtbarerweise können Sie auf diese Weise auch die Bedeutung von Postfixen/Präfixen erfassen.

Die Länge der von Ihnen verwendeten n-Gramm-Banner kann durch die Banner – minn und – maxn für die geringste und extremste Anzahl von Zeichen eingeschränkt werden, die einzeln verwendet werden können. Diese steuern den Umfang der Qualitäten, für die Sie n-Gramm erhalten. Das Modell wird als “Pack of Words”-Modell betrachtet, da abgesehen von dem gleitenden Fenster der n-Gramm-Bestimmung keine innere Struktur eines Wortes vorliegt, die für die Featurisierung in Betracht kommt, d.h. solange die Zeichen unter das Fenster fallen, macht die Anfrage nach den Zeichen n-Gramm keinen Unterschied. Sie können n-Gramm-Einbettungen auch ganz ausschalten, indem Sie beide auf 0 setzen. Dies kann wertvoll sein, wenn die “Wörter” in Ihrem Modell keine Wörter für eine bestimmte Sprache sind und n-Gramm-Zeichen nicht gut ankommen würden. Der bekannteste Anwendungsfall ist der Punkt, an dem Sie in ids als Ihre Wörter setzen. Während der Modellaktualisierung lernt fastText für jedes einzelne der n-Gramme Lasten genauso wie für das ganze Wort, um Informationen zu verstehen

Während die Vorbereitung für FastText mehrreihig ist, erfolgt die Einsicht in die Informationen durch eine einzelne Zeichenfolge. Das Parsen und die Tokenisierung werden beim Durchsehen der Information durchgeführt. Wir sollten uns vergegenwärtigen, wie dies im Einzelnen geschieht:

FastText nimmt einen Datensatz-Handle mittels – Eingabekonkurrenz für Eingabeinformationen. Die Einsicht in Informationen von stdin wird nicht aufrechterhalten. FastText installiert ein paar Vektoren zur Überwachung der Informationsdaten, innerhalb derer word2int_ und words_ genannt werden. word2int_ wird auf dem Hash der Wortzeichenkette aufgelistet und speichert eine aufeinanderfolgende int Datei in den words_ Cluster (std:: Vektor), je nach Wert. Der words_ cluster wird ständig in die Anforderung eingegeben, dass interessante Wörter beim Durchsehen der Informationen auftauchen, und speichert als Wert den Strukturabschnitt, der alle Daten über das Wort Token typisiert. passage enthält die begleitenden Daten:

Ein paar Dinge, die hier zu beachten sind, das Wort ist die String-Darstellung des Wortes, der Tally ist der absolute Einschluss des einzelnen Wortes in der Infozeile, entry_type ist einer von {Wort, Label} mit einer Markierung, die nur für den verwalteten Fall verwendet wird. Alle Informationsmerkmale, die entry_type wenig Beachtung schenken, werden in einer ähnlichen Wortreferenz abgelegt, was das schnellste Ausdehnen auf verschiedene Arten von Substanzen wesentlich einfacher macht (ich werde in einem letzten Beitrag verstärkt darauf eingehen, wie dies zu tun ist). Schließlich ist subwords ein Vektor aller Wort-n-Gramme eines bestimmten Wortes. Diese werden ebenfalls gemacht, wenn die Info-Information durchgesehen wird und zum Vorbereitungsschritt geht.

Der word2int_-Vektor hat die Größe MAX_VOCAB_SIZE = 30000000; Diese Zahl ist fest codiert. Diese Größe kann bei der Vorbereitung auf einen riesigen Korpus einschränkend sein und kann erfolgreich erweitert werden, während man sich um die Ausführung kümmert. Die Liste für den word2int_ cluster ist die Schätzung einer Zeichenkette zu int hash und ist eine bemerkenswerte Zahl unter 0 und MAX_VOCAB_SIZE. Für den Fall, dass es zu einem Hash-Absturz kommt und dem Hash gerade eine Passage hinzugefügt wurde, wird der Wert erhöht, bis wir eine einzigartige Id finden, die wir einem Wort zuweisen können.

In diesem Sinne kann sich die Ausführung erheblich verschlechtern, wenn die Größe des Jargons MAX_VOCAB_SIZE erreicht ist. Um dem vorzubeugen, beschneidet fastText den Jargon jedes Mal, wenn die Größe des Hashes mehr als 75% von MAX_VOCAB_SIZE erreicht. Zum Schluss wird zunächst die Grundgesamtheitsgrenze für ein Wort erhöht, um es als Teil des Jargons einzustufen, und das Lexikon für alle Wörter, die eine geringere Gesamtanzahl als diese haben, beschnitten. Die Überprüfung der 75%-Grenze erfolgt bei der Aufnahme jedes neuen Wortes, so dass diese programmierte Beschneidung in jeder Phase des Dokumentenverständnisses erfolgen kann.

Neben der programmierten Beschneidung bedeutet die Basis, dass Wörter, die ein Teil des Jargons sind, durch die individuelle Verwendung der – minCount und – minCountLabel-Banner für Wörter und Marken (die für eine geregelte Vorbereitung verwendet werden) eingeschränkt werden. Die von diesen Bannern abhängige Beschneidung erfolgt, nachdem das gesamte Vorbereitungsdokument bearbeitet wurde. Möglicherweise wird Ihr Lexikon auf einen höheren Mindestwert begrenzt, der physisch angezeigt wird, wenn die Überzahl aller bemerkenswerten Wörter in Ihrem Lexikon die zuvor festgelegte programmierte Beschneidung auslöst. Die Schwellenwertbegrenzung auf den vordefinierten minCount wird ohnehin durchgehend erfolgen, wodurch erfolgreich garantiert wird, dass Wörter mit einer niedrigeren Überprüfung es nicht zu einem Hauptaspekt Ihrer Informationen machen.

Für negative Inspektionsunglücke wird dann eine Tabelle mit negativen Wörtern der Größe NEGATIVE_TABLE_SIZE = 10000000 erstellt. Beachten Sie, dass dies ⅓ von der Größe der MAX_VOCAB_SIZE ist. Die Tabelle wird durch Zeichnen der Wiederholung jedes Wortes, d.h. Ken, aus einer unigrammförmigen Auflage des quadratischen Fundaments erstellt.

Dies garantiert, dass die Gelegenheiten, bei denen jedes Wort in der Negativtabelle auftaucht, einfach die relative Quadratbasis seiner Wiederholung ist. Diese Tabelle wird dann neu geordnet, um eine Randomisierung zu garantieren.

Als nächstes wird eine Prüftabelle entwickelt, um aufeinanderfolgende Wörter als Plot in Segment 2.3 des ersten word2vec Expansionspapiers zu entsorgen. Dahinter steht der Gedanke, dass Wörter, die sehr viel aufbereitet werden, weniger Daten liefern als Wörter, die ungewöhnlich sind, und dass sich ihre Darstellung nicht wesentlich ändert, nachdem man zuvor zahlreiche Gelegenheiten eines ähnlichen Wortes beobachtet hat.

Das Papier zeichnet die begleitende Entsorgungstechnik nach: Das Vorbereitungswort wird mit der Wahrscheinlichkeit entsorgt, dass

Die Standardkante kann physikalisch mit Hilfe des – t arg geändert werden. Die Randeinschätzung, t hat in fastText nicht die gleiche Bedeutung wie im ersten word2vec Papier und sollte auf Ihre Anwendung abgestimmt werden.

Ein Wort wird nur dann entsorgt, wenn während der Vorbereitungsphase eine willkürliche Entnahme aus einer einheitlichen Aneignung irgendwo im Bereich zwischen 0 und 1 stärker ins Gewicht fällt als die Wahrscheinlichkeit der Entsorgung. Es folgt eine Darstellung der Zirkulation für Werte von 0-1 für die Standardkante. Wie aus der Darstellung hervorgeht, ist die Wahrscheinlichkeit einer Auslosung bemerkenswerter als die P-Inkremente, da die Wiederholung zunimmt, und entlang dieser Linien ist es die Wahrscheinlichkeit, dass Inkremente entsorgt werden, wie es die Wiederholung ebenfalls tut. Dies gilt nur für ununterstützte Modelle. Wörter werden bei einem verwalteten Modell nicht entsorgt.

Für den unwahrscheinlichen Fall, dass wir die Vorbereitung mit einem Banner mit vortrainierten Vektoren einleiten, werden die Qualitäten aus dem Informationsdatensatz genutzt, um die Vektoren der Informationsebene einzuführen. Für den Fall, dass dieser vage ist, wird ein Maßgitter MxN mit M = MAX_VOCAB_SIZE + bucket_size, N = verkleinern erstellt. bucket_size vergleicht die absolute Größe des Exponats, die für alle ngram-Token zugeteilt wird. Sie wird über das -bucket-Flag gesetzt und ist standardmäßig auf 2000000 gesetzt. Ngrams werden durch einen numerischen Hash (die äquivalente Hash-Kapazität) des ngram-Inhalts und Einpassen des Moduls dieser Hash-Nummer auf das instituierte Gitter an einer Position im Vergleich zu MAX_VOCAB_SIZE + Hash eingeführt. Beachten Sie, dass es zu Abstürzen im ngramm-Raum kommen kann, während Auswirkungen bei eindeutigen Wörtern unrealistisch sind. Dies könnte auch die Modellausführung beeinflussen.

Diminish spricht das Element der verborgenen Schicht bei der Vorbereitung an, und auf diese Weise das Element der Einbettungen, und wird mit Hilfe des – Diminish-Banners gesetzt. Dieses wird selbstverständlich auf 100 gesetzt. Das Netzwerk wird mit einer einheitlichen echten Aneignung irgendwo im Bereich von 0 und 1/ Diminish instanziiert und ist einheitlich in der Einheit 3D-Quadrat.