Ich frage mich nur, was n-gramm (n & gt; 3) (und ihre Häufigkeit des Auftretens) unter Berücksichtigung des Berechnungsaufwands bei deren Berechnung ist. Gibt es Anwendungen, bei denen Bigramme oder Trigramme einfach nicht ausreichen?
Wenn ja, was ist der Stand der Technik bei der N-Gram-Extraktion? Irgendwelche Vorschläge? Mir ist folgendes bekannt:
Ich bin nicht vertraut mit einem guten Teil der hier aufgeführten Tags, aber N-Gramm (das abstrakte Konzept) sind oft nützlich im Zusammenhang mit statistischen Modellen. Daher gibt es hier einige Anwendungen, die nicht nur auf Bigramme und Trigramme beschränkt sind:
Das sind die Dinge, die mir auf den Kopf gefallen sind, aber auf Wikipedia gibt es viel mehr .
Soweit "State-of-the-Art" N-Gram-Extraktion, keine Ahnung. N-Gramm "Extraktion" ist ein Ad-hoc-Versuch, bestimmte Prozesse zu beschleunigen, während die Vorteile der N-Gram-Stilmodellierung erhalten bleiben. Kurz gesagt, "State-of-the-Art" hängt davon ab, was Sie zu tun versuchen. Wenn Sie sich für Fuzzy-Matching oder Fuzzy-Gruppierung interessieren, hängt es davon ab, welche Art von Daten Sie zuordnen / gruppieren. (Z. B. Straßenadressen werden sich sehr von Fuzzy-Übereinstimmungen unterscheiden als Vornamen.)
Eine (unkonventionelle) Möglichkeit, über N-Gramme höherer Ordnung nachzudenken, kann man machen, indem man die Verbindung zu einer unnormalisierten Autokorrelationsfunktion , dh die Korrelation eines Signals mit sich selbst. Ein 2-Gramm-Korpus würde die Korrelation eines Wortes mit einem "Zeit" -Lag eines einzelnen Wortes messen, während 3 Gramm uns die Information für eine "Zeit" -Lage von zwei Schritten geben könnten. N-Gramme höherer Ordnung geben ein Maß für die Wahrscheinlichkeitsverteilung eines bestimmten Korpus (sei es
Ich denke nicht, dass Ihre Frage richtig gestellt ist: Ngrams sind ein Werkzeug, kein Problem, das es zu lösen gilt, also gibt es keinen "Stand der Technik" in Nigrammen. Wie @Hooked herausstellte, ist ein Ngram eine Art Autokorrelationsfunktion (oder "autoregressive Funktion"). Was Sie wirklich wissen wollen, ist, ob es irgendwelche Probleme gibt, für die die neuesten Lösungen mit langen Fehlern verbunden sind.
Für numerische Anwendungen wie die Anpassung von Finanz- oder Wettermodellen oder die Spracherkennung würden Sie Vektoren der Dimension & gt; 3 . Zum Beispiel passen autoregressive Hidden-Markov-Modelle zu einer stückweisen Funktion der letzten n Messungen, wobei n moderat groß sein kann, wenn vergangene Zustände für die Vorhersage der Zukunft relevant sind.
Aber alle deine Beispiele betreffen Wort-Ngramme, und ich kann mir keine Arbeit vorstellen, die n & gt; 3 , um in dieser Domäne nützlich zu sein. Ich denke nicht, dass es eine Frage des Rechenaufwands oder des Findens von genügend Trainingsdaten ist: Oberflächliche Autokorrelation in der Sprache scheint nach 3 Wörtern oder so zu verschwinden. Zufälliges Beispiel: In diesem Artikel wird versucht, das Zipf-Gesetz in Bezug auf ngram neu zu interpretieren Informationsgehalt. Sie betrachten n bis zu 4, erhalten aber die höchsten Gesamtkorrelationen für die Trigramm-Anzahl.
Ich will damit nicht sagen, dass n & gt; 3 ist nicht nützlich; aber Ihre Beobachtung, dass es nicht viel zu kommen scheint, ist begründet.
Beachten Sie jedoch, dass die Komplexität des Zählens von Ngrammen in einem Text kein Problem ist: Wenn Sie ein Token-Korpus der Länge L haben, könnten Sie alle Ngramme des Korpus wie folgt sammeln:
%Vor%Wie Sie sehen, erfordert dies nur O (L) Schritte, d. h. es ist linear bezüglich der Größe des Korpus und wächst nicht mit n . Also ist das Sammeln von Ngrammen jeglicher Dimension kein Thema. Aber die Anzahl der möglichen Ngrams Pilze schnell. Zur Veranschaulichung: Wenn Sie 32-Buchstaben-Token (Buchstaben und einige Interpunktionsklassen) unterscheiden, gibt es 1024 Buchstaben-Bigramme, aber 1048576 Tetragramme. Um genug davon zu finden, um Ihre Häufigkeitstabellen zu füllen, benötigen Sie exponentiell mehr Text.
Bei Wort-Ngrammen ist das Sparsity-Problem noch schlimmer, da Sie nicht nur viel mehr als 32 verschiedene Wortmarken haben, sondern die Wortschatzgröße (langsam) mit der Korpusgröße steigt: der berühmte " Long Tail "Eigenschaft. So werden Ihre Daten spärlich sein (sogar für kleine n ), egal wie groß ein Korpus ist, den Sie sammeln. Sie müssen dann komplizierte statistische Modelle anpassen, deren Berechnungskosten von der Anzahl der verschiedenen Ngramme abhängen.
Folglich ist Sparsity immer ein Problem in Word-Ngram-Anwendungen (daher ist normalerweise "Glätten" notwendig). Wenn Sie "ngram sparsity" googlen, werden Sie eine Menge Referenzen finden.
Zusätzlich zu Kaganars Antwort:
Jede Art von stylometrischer Analyse (z. B. Autorprofilierung basierend auf Schreibstilen oder Versuch, die Epoche von ein Text) erfordert längere N-Gramm für seichtes syntaktisches Parsing. In der Regel werden solche Ansätze durch tiefgreifendes syntaktisches Parsen basierend auf PCFG , TAG , usw.
Tags und Links nlp nltk n-gram data-mining