Zuhause / Überblick über Linux / N-Gramm. Verbesserung der internen Optimierung mit Hilfe von Wettbewerbern Programm mit Buchstabe n Gramm

N-Gramm. Verbesserung der internen Optimierung mit Hilfe von Wettbewerbern Programm mit Buchstabe n Gramm


Definition Beispielanwendungen Erstellen eines n-Gramm-Sprachmodells Berechnen der n-Gramm-Wahrscheinlichkeit Eliminieren der Trainingskorpus-Spärlichkeit o Add-One-Glättung o Witten-Bell-Diskontierung o Good-Turing-Diskontierung o Katzs-Backoff o Deleted-Interpolation Schätzung eines n-Gramm-Sprachmodells unter Verwendung von Entropieinhalten


N-Gramm (engl. N-gram) eine Unterfolge von N Elementen einer Folge. Betrachten Sie Wortfolgen. Unigramme Katze, Hund, Pferd,... Digramme kleine Katze, großer Hund, starkes Pferd,... Trigramme kleine Katze frisst, großer Hund bellt, starkes Pferd rennt,... Definition


Beispiele für angewandte Aufgaben Spracherkennung. Einige Wörter mit unterschiedlicher Schreibweise werden gleich ausgesprochen. Die Aufgabe besteht darin, das richtige Wort im Kontext auszuwählen. Erstellung von Texten zu einem bestimmten Thema. Beispiel: Yandex.Abstracts. Suche nach semantischen Fehlern. Er versucht zu klären - in Bezug auf die Syntax stimmt es, in Bezug auf die Semantik nicht. Er versucht es herauszufinden - richtig. Das Herausfinden kommt in englischen Texten viel häufiger vor als das Herausfinden, was bedeutet, dass Sie, wenn Statistiken verfügbar sind, diese Art von Fehlern finden und beseitigen können


Erstellen eines Sprachmodells von N-Grammen Um die aufgelisteten angewandten Probleme zu lösen, ist es notwendig, ein Sprachmodell von N-Grammen zu erstellen. Um ein Modell zu erstellen, müssen Sie: 1. die Wahrscheinlichkeiten von N-Grammen im Trainingskorpus berechnen. 2. Beheben Sie das Hull-Sparsity-Problem mit einer der Anti-Aliasing-Methoden. 3. Bewertung der Qualität des resultierenden Sprachmodells von N-Grammen unter Verwendung von Entropie.


Berechnung der Wahrscheinlichkeit von N-Grammen (1) Im Trainingskorpus treten bestimmte N-Gramme mit auf andere Frequenz. Für jedes N-Gramm können wir zählen, wie oft es im Korpus vorkommt. Basierend auf den erhaltenen Daten kann ein probabilistisches Modell erstellt werden, das dann verwendet werden kann, um die Wahrscheinlichkeit von n-Grammen in einigen Testkorpussen abzuschätzen.


Berechnung der Wahrscheinlichkeit von N-Grammen (2) Betrachten Sie ein Beispiel. Lassen Sie den Korpus aus einem Satz bestehen: Sie picknickten am Pool, legten sich dann zurück ins Gras und schauten zu den Sternen. Wählen wir n-Gramme aus. Unigrams: Sie picknickten, von, … Digrams: Sie picknickten, picknickten von, von, … Trigrams Sie picknickten von, picknickten von, am Pool, …


Berechnung der Wahrscheinlichkeit von N-Gramm (3) Jetzt ist es möglich, N-Gramm zu zählen. Alle ausgewählten Bi- und Trigramme kommen einmal im Korpus vor. Alle Unigramme, mit Ausnahme des Wortes the, kommen auch einmal vor. Das Wort das kommt dreimal vor. Da wir nun wissen, wie oft jedes N-Gramm vorkommt, können wir ein probabilistisches Modell von N-Gramm erstellen. Im Fall von Unigrammen kann die Wahrscheinlichkeit des Wortes u mit der Formel berechnet werden: Zum Beispiel ist die Wahrscheinlichkeit für das Wort 3/16 (weil es 16 Wörter im Korpus gibt, von denen 3 das Wort das sind) . Anzahl der Vorkommen des Wortes u im Trainingskorpus Sie picknickten am Pool, legten sich dann zurück ins Gras und betrachteten die Sterne


1 wird die Wahrscheinlichkeit etwas anders betrachtet. Betrachten Sie den Fall von Bigrammen: Lassen Sie es notwendig sein, die Wahrscheinlichkeit des Bigramms für den Pool zu berechnen. Wenn wir jedes Bigramm-Wort als irgendein Ereignis betrachten, dann glauben wir" title="(!LANG:N-Gramm-Wahrscheinlichkeitsberechnung (4) Für n-Gramme, wo n > 1, wird die Wahrscheinlichkeit etwas anders berechnet. Betrachten Sie den Fall von Bigrammen : Lassen Sie es notwendig sein, das Diagramm zu berechnen, den Pool Wenn wir jedes Wort des Diagramms als ein Ereignis betrachten, dann glauben" class="link_thumb"> 9 !} Berechnung der Wahrscheinlichkeit von N-Grammen (4) Für n-Gramme mit n>1 wird die Wahrscheinlichkeit etwas anders berechnet. Betrachten Sie den Fall von Bigrammen: Lassen Sie es notwendig sein, die Wahrscheinlichkeit des Bigramms für den Pool zu berechnen. Wenn wir jedes Bigramm-Wort als irgendein Ereignis betrachten, dann kann die Wahrscheinlichkeit einer Menge von Ereignissen durch die Formel berechnet werden: Somit ist die Wahrscheinlichkeit des Bigramms der Pool:, wo 1 wird die Wahrscheinlichkeit etwas anders betrachtet. Betrachten Sie den Fall von Bigrammen: Lassen Sie es notwendig sein, die Wahrscheinlichkeit des Bigramms für den Pool zu berechnen. Wenn wir jedes Bigramm-Wort als ein Ereignis betrachten und glauben, dass "> 1, wird die Wahrscheinlichkeit etwas anders betrachtet. Betrachten Sie den Fall von Bigrammen: Lassen Sie es notwendig sein, die Wahrscheinlichkeit des Bigramm-Pools zu berechnen. Wenn wir jedes Bigramm-Wort als betrachten irgendein Ereignis, dann kann die Wahrscheinlichkeit einer Menge von Ereignissen durch die Formel berechnet werden: Somit ist die Wahrscheinlichkeit des Bigramms der Pool:, wobei "> 1, die Wahrscheinlichkeit etwas anders berechnet wird. Betrachten Sie den Fall von Bigrammen: Lassen Sie es notwendig sein, die Wahrscheinlichkeit des Bigramms für den Pool zu berechnen. Wenn wir jedes Bigramm-Wort als irgendein Ereignis betrachten, dann glauben wir" title="(!LANG:N-Gramm-Wahrscheinlichkeitsberechnung (4) Für n-Gramme, wo n > 1, wird die Wahrscheinlichkeit etwas anders berechnet. Betrachten Sie den Fall von Bigrammen : Lassen Sie es notwendig sein, das Diagramm zu berechnen, den Pool Wenn wir jedes Wort des Diagramms als ein Ereignis betrachten, dann glauben"> title="Berechnung der Wahrscheinlichkeit von N-Grammen (4) Für n-Gramme mit n>1 wird die Wahrscheinlichkeit etwas anders berechnet. Betrachten Sie den Fall von Bigrammen: Lassen Sie es notwendig sein, die Wahrscheinlichkeit des Bigramms für den Pool zu berechnen. Wenn wir jedes Wort des Digramms als ein Ereignis betrachten, dann glauben"> !}


Berechnung der Wahrscheinlichkeit von N-Grammen (5) Betrachten Sie nun die Berechnung der Wahrscheinlichkeit eines beliebigen N-Gramms (oder eines Satzes der Länge n). Wenn wir den Fall von Bigrammen erweitern, erhalten wir die Wahrscheinlichkeitsformel für n-Gramme Somit reduziert sich die Berechnung der Wahrscheinlichkeit eines Satzes auf die Berechnung der bedingten Wahrscheinlichkeit der N-Gramme, aus denen dieser Satz besteht:




Eliminierung der Korpusspärlichkeit (1) Das Problem eines einfachen (ungeglätteten) Sprachmodells von N-Grammen: Für einige N-Gramme kann die Wahrscheinlichkeit stark unterschätzt (oder sogar Null) werden, obwohl sie in Wirklichkeit (im Testkorpus) diese sind N-Gramme können recht häufig vorkommen. Grund: begrenztes Schulungskorpus und seine Spezifität. Lösung: Indem Sie die Wahrscheinlichkeit einiger N-Gramme verringern, erhöhen Sie die Wahrscheinlichkeit jener N-Gramme, die im Trainingskorpus nicht vorkamen (oder ziemlich selten angetroffen wurden).




Korpussparsity-Eliminierung (3) Die folgenden Konzepte werden in Sparsity-Eliminationsalgorithmen verwendet: Typen – verschiedene Wörter (Wortfolgen) im Text. Token sind alle Wörter (Wortfolgen) im Text. Sie picknickten am Pool, legten sich dann zurück ins Gras und betrachteten die Sterne – 14 Typen, 16 Marken





Add-One-Glättung (4) Die Methode provoziert einen starken Fehler in den Berechnungen (zum Beispiel wurde auf der vorherigen Folie gezeigt, dass für das Wort Chinesisch die Anzahl der Bigramme um das 8-fache reduziert wurde). Tests haben gezeigt, dass das ungeglättete Modell oft genauere Ergebnisse liefert. Daher ist die Methode nur aus theoretischer Sicht interessant.


Witten-Bell-Diskontierung (1) Basiert auf einer einfachen Idee: Verwenden Sie Daten zu N-Grammen, die im Trainingskorpus vorkommen, um die Wahrscheinlichkeit fehlender N-Gramme abzuschätzen. Die Idee der Methode stammt von Komprimierungsalgorithmen: Es werden zwei Arten von Ereignissen betrachtet - sie haben ein neues Zeichen (Typ) getroffen und sie haben ein Zeichen (Token) getroffen. Wahrscheinlichkeitsformel für alle fehlenden N-Gramme (d. h. die Wahrscheinlichkeit, ein N-Gramm im Testkorpus zu treffen, das nicht im Trainingskorpus enthalten war): N ist die Anzahl der Tokens im Trainingskorpus, T ist die Anzahl der Typen die bereits im Schulungskorpus angetroffen wurden






Witten-Bell Diskontierung (4) =>=> =>"> =>"> =>" title="(!LANG:Witten-Bell Diskontierung (4) =>=>"> title="Witten-Bell Diskontierung (4) =>=>"> !}




Good-Turing-Diskontierung (1) Idee: Für n-Gramme, die nullmal (c-mal) vorkommen, ist die Punktzahl proportional zur Anzahl der n-Gramme, die einmal vorkommen (c + 1-mal). Betrachten Sie ein Beispiel: Angenommen, es wurden 18 Fische gefangen. Total erwischt verschiedene Typen– 6, und bei drei Arten wurde nur ein Vertreter gefangen. Wir müssen die Wahrscheinlichkeit finden, dass der nächste Fisch zu einer neuen Art gehört. Es gibt insgesamt 7 mögliche Arten (6 Arten wurden bereits gefangen).








Katzs Backoff (2) Der Koeffizient α ist notwendig für die korrekte Verteilung der Restwahrscheinlichkeit von N-Grammen gemäß der Wahrscheinlichkeitsverteilung von (N-1)-Grammen. Wenn Sie α nicht eingeben, ist die Schätzung fehlerhaft, weil die Gleichheit wird nicht erfüllt: Die Berechnung von α ist am Ende des Berichts angegeben. Bewertung eines Sprachmodells unter Verwendung von Entropie (1) Entropie ist ein Maß für Unsicherheit. Mit Hilfe der Entropie kann man das am besten geeignete Sprachmodell von N-Grammen für eine gegebene angewandte Aufgabe bestimmen. Binäre Entropieformel: Beispiel: Berechnen Sie die Entropie eines Münzwurftests. Antwort: 1 Bit, sofern die Ergebnisse des Experiments gleich wahrscheinlich sind (beide Seiten fallen mit einer Wahrscheinlichkeit von 1/2 aus).




Bewertung des Sprachmodells anhand der Entropie (3) Cross-Entropie dient dem Vergleich verschiedener Sprachmodelle: Je näher der Wert der Cross-Entropie H(p,m) an der realen Entropie H(p), desto besser das Sprachmodell: In unserem Fall ist H(p) die Entropie des Testkorpus. m(w) – Sprachmodell (z. B. N-Gramm-Modell)


Bewertung eines Sprachmodells unter Verwendung von Entropie (4) Es gibt eine andere Methode zur Bewertung der Qualität eines Sprachmodells, basierend auf der sog. Konnektivitätsanzeige (Ratlosigkeit). Idee: Berechne die Wahrscheinlichkeit des gesamten Testkorpus. Ein besseres Modell zeigt eine höhere Wahrscheinlichkeit. Perplexitätsformel: Je kleiner also die Perplexität, desto besser das Modell. Ratlosigkeit kann als die durchschnittliche Anzahl von Wörtern interpretiert werden, die nach einem bestimmten Wort kommen können (d. h. je größer die Ratlosigkeit, desto höher die Ambiguität und desto schlechter das Sprachmodell). Zusammenhang zwischen Ratlosigkeit und binärer Entropie:


Schätzung eines Sprachmodells unter Verwendung von Entropie (5) Betrachten Sie als Beispiel die Perplexitätswerte für einige Korpusse, die mit trainierten Modellen von Unigrammen, Bigrammen und Trigrammen erhalten wurden: Bei Trigrammen ist die Perplexität am kleinsten, weil Die Begriffsklärung wird durch die längste Verlaufslänge aller Modelle (gleich 2) bei der Berechnung der bedingten Wahrscheinlichkeiten von Trigrammen erleichtert. UnigramBigramTrigram Ratlosigkeit


Semantischer Kern

Um die Site in modernen Realitäten erfolgreich weiterzuentwickeln und die Sichtbarkeit zu erhöhen, ist es notwendig, den semantischen Kern ständig zu erweitern. Eine der besten Möglichkeiten, um zu wachsen, besteht darin, Keywords von Mitbewerbern zu sammeln.

Heutzutage ist es nicht schwer, die Semantik von Konkurrenten zu bekommen, weil. Es gibt viele Dienste, sowohl kostenpflichtige als auch kostenlose.

Kostenlose Liste:

— megaindex.ru — Website-Sichtbarkeitstool

- xtool.ru - ein bekannter Dienst, der auch die Keywords anzeigt, für die die Website rankt

Liste der bezahlten:

— spywords.ru — geeignet für Yandex und Google

- semrush.ru - konzentriert sich nur auf Google

— prodvigator.ua — Ukrainisches Analogon von spywords.ru

Neben Diensten können Sie auch eine manuelle Methode verwenden, die auf der Aufteilung des Titels und der Beschreibung in N-Gramme basiert, wodurch am Ausgang eine zusätzliche Liste von Phrasen erhalten wird.

N-Gramm - eine Folge von n Elementen. In der Praxis ist das N-Gramm häufiger als eine Reihe von Wörtern. Eine Folge von zwei aufeinanderfolgenden Elementen wird oft genannt Diagramm, wird eine Folge von drei Elementen aufgerufen Trigramm. Mindestens vier oder mehr Elemente werden als N-Gramm bezeichnet, wobei N durch die Anzahl der aufeinanderfolgenden Elemente ersetzt wird.

Betrachten Sie diese Technik Schritt für Schritt:

- Laden Sie den Titel (Beschreibung) der Wettbewerber hoch. Kann mit Screaming Frog SEO durchgeführt werden.

- In einem Texteditor bereinigen wir die resultierende Liste von Wortarten, Satzzeichen und anderem Müll. Ich verwende die Funktion "Suchen und Ersetzen" im Texteditor von sublime text ( Hotkey Strg+H) mit regulären Ausdrücken:

- Wählen Sie das gewünschte N-Gramm aus und stellen Sie die Häufigkeit auf mindestens eins ein. Die beste Option sind Trigramme und 4-Gramm:

- Wir erhalten folgendes Ergebnis:

SpalteAnzahlzeigt die Anzahl der Wiederholungenn-Gramm, SpalteFrequenz — Frequenzn-Gramm.

Nachdem wir eine Liste mit Phrasen erhalten haben, müssen wir diese analysieren und die passenden Schlüsselwörter auswählen, um den semantischen Kern zu erweitern. Weitere Details finden Sie im entsprechenden Abschnitt unseres Blogs.

Anfragen gruppieren

Es ist sehr wichtig zu verstehen, wie der semantische Kern der Konkurrenten gruppiert ist, denn dies hilft dabei, Schlüsselphrasen auf den Seiten der Website richtig zu verteilen.

Dafür haben wir uns gebildet volle Liste Anfragen müssen wir relevante Seiten und Positionen von Wettbewerbern abrufen (Sie können den Dienst seolib.ru nutzen) und dann mit unserer Gruppierung vergleichen. Wenn klar ist, dass der Wettbewerber in guten Positionen ist und gleichzeitig seine Gruppierung von unserer abweicht (z.B. werden die Anfragen des Wettbewerbers in verteilt verschiedene Seiten, und wir haben die gleichen Anfragen auf einem), müssen Sie darauf achten und die Zielseiten auf Ihrer Website überarbeiten.

Betrachten wir ein kleines Beispiel für den Vergleich der Gruppierung einer bedingten Site und ihres Konkurrenten.

Wie Sie der Tabelle entnehmen können, hat site.ru eine Zielseite für alle Keywords. Bei einem Wettbewerber werden unterschiedliche Seiten für die gleichen Suchanfragen gerankt und belegen TOP- oder nahe TOP-Positionen. Daraus können wir schließen, dass die Gruppierung auf site.ru überarbeitet werden muss, insbesondere muss eine separate Seite für Schlüsselphrasen mit dem Wort „Fassade“ erstellt werden.

Textqualität

Das Erste und Wichtigste, worauf man bei der Analyse von Mitbewerbertexten achten sollte, ist nicht die quantitative Komponente (Anzahl der Vorkommen, Textlänge etc.), sondern die qualitative bzw. semantische – wie nützlich die Informationen sind, was der Mitbewerber anbietet und wie er es macht.

Schauen wir uns ein paar Beispiele an.

Angenommen, Sie sind ein Blumenlieferunternehmen und Startseite im Text garantieren Sie deren Frische. Zum Beispiel so:

Blumen LieferserviceSeite? ˅. engarantiert die Sicherheit von Blumensträußen auch in der kalten Jahreszeit.

Hier ist ein Beispiel von einem der Wettbewerber:

Es lohnt sich, Duftkompositionen bei uns zu bestellen, denn wir garantieren eine 100%ige Geld-zurück-Garantie, wenn die Frische der Blumen zweifelhaft ist.

Die Garantie eines Konkurrenten ist mit Geld hinterlegt, was wichtiger ist als eine abstrakte Garantie.

Betrachten Sie ein anderes Beispiel - den Text auf der Seite der Kategorie "Keramikfliesen" eines Online-Shops:

Dieser Text trägt keine nützliche semantische Ladung, festes Wasser. Höchstwahrscheinlich möchte die Person, die auf die Website kam und eine Kaufentscheidung trifft, die Vorteile des Produkts und mögliche Konfigurationen kennenlernen, stattdessen erhält sie einen bedeutungslosen Zeichensatz.

Schauen wir uns nun den Text eines Mitbewerbers an:

Dieser Text ist nützlicher, weil vermittelt kurz und bündig die Unterschiede zwischen den Kacheln und hilft Ihnen zu verstehen, wie Sie die richtige auswählen.

Wenn Sie also die Texte von Mitbewerbern mit Ihren eigenen vergleichen, können Sie viele nützliche Informationen erhalten, die Textern beim Erstellen von TOR helfen.

Relevanz von Texten

Um das Thema der Qualität von Texten fortzusetzen, kommt man nicht umhin, ihre Relevanz zu berühren. Damit der Text relevant ist, reicht es heute nicht mehr aus, nur Schlüsselwörter anzugeben. Um die Relevanz der Seite zu erhöhen und gleichzeitig den Text nicht spammig zu machen, müssen Sie themenbezogene Wörter verwenden.

Bei der Bewertung der Relevanz eines Textes für eine Suchanfrage analysiert die Suchmaschine nicht nur das Vorhandensein von Schlüsselwörtern, sondern auch zusätzliche Wörter und ermittelt so die Bedeutung des Textes. Wenn wir zum Beispiel einen Text über einen Elefanten schreiben, dann kommen die verwandten Wörter in Betracht: „Rüssel“, „Stoßzähne“, „Natur“, „Zoo“. Wenn der Text über die Schachfigur „Elefant“ lautet, dann lauten diese Wörter: „Figur“, „Schach“, „Dame“ usw.

Sie können die für Ihre Bedürfnisse am besten geeignete Wortliste in den Texten der Mitbewerber erhalten. Dazu müssen Sie die folgenden Schritte ausführen:

— Wir kopieren alle Texte aus den TOP-10 für die gewünschte hochfrequente Anfrage in verschiedene Textdateien.

- Wir entfernen Service-Wortteile, Satzzeichen und Zahlen aus Texten (vorher betrachtet).

- Wörter in einer Zeile aneinanderreihen - Verwenden Sie die "Suchen und Ersetzen"-Funktion mit Reguläre Ausdrücke. Leerzeichen durch \n ersetzen.

- Als nächstes müssen Sie alle Wortformen in die normale Wörterbuchform (Lemma) bringen. Dazu können Sie den Dienst https://tools.k50project.ru/lemma/ verwenden. Geben Sie in das Feld eine Liste mit Wörtern aus jeder Datei separat ein und klicken Sie auf die Schaltfläche "Lemmetisieren und als CSV-Tabelle ausgeben". Das Ergebnis sollten 10 Dateien mit lemmetisierten Wörtern sein.

- In jeder Datei entfernen wir doppelte Wörter.

- Kombinieren Sie Wörter aus Dateien in einer Liste.

— Jetzt müssen wir ein Frequenzwörterbuch erstellen. Fügen Sie dazu die resultierende Liste zum Dienst https://tools.k50project.ru/lemma/ hinzu und klicken Sie auf "Erstellen Sie ein Frequenzwörterbuch in Form von CSV".

- Unsere Wortliste ist fertig:

Wenn die Häufigkeit 10 ist, dann wurde dieses Wort auf allen 10 Seiten verwendet, wenn 8, dann nur auf 8 usw. Wir empfehlen, die häufigsten Wörter zu verwenden, aber unter seltenen Wörtern können interessante Lösungen gefunden werden.

so was auf einfache Weise Sie können eine Liste mit thematischen Wörtern zum Kompilieren von TOR für Texter erhalten.

Wie Sie sehen können, sind Mitbewerber eine sehr wichtige Informationsquelle, die Ihnen helfen kann, Ihre Websites besser zu optimieren. In diesem Artikel habe ich bei weitem nicht alle Aspekte abgedeckt und werde auch in Zukunft darüber schreiben, was sinnvoll ist und wie Sie von Ihren Mitbewerbern lernen können.

Newsletter abonnieren Diese Algorithmen sind darauf ausgelegt, nach bisher unbekanntem Text zu suchen, und können beispielsweise in verwendet werden Texteditoren, Dokumentbetrachter oder Webbrowser, um die Seite zu durchsuchen. Sie erfordern keine Vorverarbeitung von Text und können mit einem kontinuierlichen Datenstrom arbeiten.

Lineare Suche

Eine einfache sequentielle Anwendung einer bestimmten Metrik (z. B. der Levenshtein-Metrik) auf Wörter aus dem Eingabetext. Wenn Sie eine Metrik mit einem Limit verwenden, können Sie mit dieser Methode eine optimale Leistung erzielen. Aber gleichzeitig umso mehr k, je länger die Laufzeit zunimmt. Asymptotische Zeitschätzung - O(kn).

Bitap (auch bekannt als Shift-Or oder Baeza-Yates-Gonnet und seine Modifikation von Wu-Manber)

Algorithmus bitap und seine verschiedenen Modifikationen werden am häufigsten für die Fuzzy-Suche ohne Indizierung verwendet. Seine Variante wird beispielsweise im Unix-Dienstprogramm agrep verwendet, das ähnliche Funktionen wie das Standard-grep ausführt, jedoch Fehler in der Suchanfrage unterstützt und sogar eingeschränkte Möglichkeiten zur Verwendung regulärer Ausdrücke bietet.

Zum ersten Mal wurde die Idee dieses Algorithmus von Bürgern vorgeschlagen Ricardo Baeza-Yates Und Gaston Gonnet, veröffentlichte 1992 einen verwandten Artikel.
Die ursprüngliche Version des Algorithmus befasst sich nur mit Zeichenersetzungen und berechnet tatsächlich die Entfernung Hamming. Aber etwas später Sonne wu Und Udi Manber schlug eine Modifikation dieses Algorithmus vor, um die Entfernung zu berechnen Levenshtein, d.h. brachte Unterstützung für Einfügungen und Löschungen und entwickelte darauf basierend die erste Version des Dienstprogramms agrep.






Ergebniswert

Woher k- Anzahl der Fehler, J- Zeichenindex, S x - Zeichenmaske (in der Maske befinden sich einzelne Bits an Positionen, die den Positionen des gegebenen Zeichens in der Anforderung entsprechen).
Eine Übereinstimmung oder Nichtübereinstimmung mit der Abfrage wird durch das allerletzte Bit des resultierenden Vektors R bestimmt.

Die hohe Geschwindigkeit dieses Algorithmus wird durch die Bitparallelität der Berechnungen gewährleistet – in einer Operation ist es möglich, Berechnungen mit 32 oder mehr Bits gleichzeitig durchzuführen.
Gleichzeitig unterstützt die triviale Implementierung die Suche nach Wörtern mit einer Länge von nicht mehr als 32. Diese Einschränkung wird durch die Breite der Standardschrift bestimmt int(auf 32-Bit-Architekturen). Sie können auch Typen mit großen Dimensionen verwenden, dies kann den Algorithmus jedoch etwas verlangsamen.

Trotz der Tatsache, dass die asymptotische Laufzeit dieses Algorithmus O(kn) ist das gleiche wie die lineare Methode, es ist viel schneller bei langen Abfragen und der Anzahl der Fehler küber 2.

Testen

Der Test wurde an einem Text von 3,2 Millionen Wörtern durchgeführt, die durchschnittliche Wortlänge betrug 10.
Genaue Suche
Suchzeit: 3562 ms
Suchen Sie mit der Levenshtein-Metrik
Suchzeit um k=2: 5728 ms
Suchzeit um k=5: 8385 ms
Suche mit dem Bitap-Algorithmus mit Wu-Manber-Modifikationen
Suchzeit um k=2: 5499 ms
Suchzeit um k=5: 5928 ms

Offensichtlich ist eine einfache Suche mit der Metrik im Gegensatz zum Bitap-Algorithmus stark von der Anzahl der Fehler abhängig. k.

Wenn es jedoch darum geht, große Mengen unveränderten Textes zu durchsuchen, kann die Suchzeit durch eine Vorverarbeitung eines solchen Textes, auch genannt, erheblich reduziert werden Indizierung.

Fuzzy-Suchalgorithmen mit Indizierung (Offline)

Ein Merkmal aller Fuzzy-Suchalgorithmen mit Indizierung ist, dass der Index gemäß einem aus dem Quelltext zusammengestellten Wörterbuch oder einer Liste von Datensätzen in einer Datenbank aufgebaut wird.

Diese Algorithmen verwenden unterschiedliche Ansätze, um das Problem zu lösen – einige von ihnen verwenden die Reduktion auf exakte Suche, andere verwenden die Eigenschaften der Metrik, um verschiedene räumliche Strukturen aufzubauen, und so weiter.

Zunächst wird im ersten Schritt aus dem Ausgangstext ein Wörterbuch aufgebaut, das Wörter und ihre Positionen im Text enthält. Außerdem können Sie die Häufigkeit von Wörtern und Ausdrücken zählen, um die Qualität der Suchergebnisse zu verbessern.

Es wird angenommen, dass der Index, wie das Wörterbuch, vollständig in den Speicher geladen ist.

Taktische und technische Merkmale des Wörterbuchs:

  • Quelltext - 8,2 Gigabyte Material aus der Moshkov-Bibliothek (lib.ru), 680 Millionen Wörter;
  • Wörterbuchgröße - 65 Megabyte;
  • Anzahl der Wörter - 3,2 Millionen;
  • Die durchschnittliche Wortlänge beträgt 9,5 Zeichen;
  • Root Mean Square Wortlänge (kann bei der Bewertung einiger Algorithmen nützlich sein) - 10,0 Zeichen;
  • Alphabet - Großbuchstaben Buchstaben A-Z, ohne Å (um einige Operationen zu vereinfachen). Wörter, die nicht alphabetische Zeichen enthalten, werden nicht in das Wörterbuch aufgenommen.
Die Abhängigkeit der Wörterbuchgröße vom Textvolumen ist nicht streng linear - bis zu einem bestimmten Volumen wird ein grundlegender Wortrahmen gebildet, der von 15% bei 500.000 Wörtern bis 5% bei 5 Millionen reicht, und dann nähert sich die Abhängigkeit linear , langsam abnehmend und bei 680 Millionen Wörtern 0,5 % erreichen. Die spätere Aufrechterhaltung des Wachstums wird größtenteils durch seltene Worte sichergestellt.

Beispiel für einen Expansionsalgorithmus

Dieser Algorithmus wird oft in Rechtschreibprüfungssystemen (d. h. Rechtschreibprüfern) verwendet, wo die Größe des Wörterbuchs klein ist oder wo Geschwindigkeit nicht das Hauptkriterium ist.
Es basiert auf der Reduzierung des Fuzzy-Suchproblems auf das exakte Suchproblem.

Aus der ursprünglichen Abfrage wird ein Satz "fehlerhafter" Wörter aufgebaut, für die dann jeweils eine exakte Suche im Wörterbuch durchgeführt wird.

Seine Laufzeit hängt stark von der Anzahl k der Fehler und der Größe des Alphabets A ab und beträgt im Falle einer binären Wörterbuchsuche:

Wann zum Beispiel k = 1 und Wörter der Länge 7 (z. B. "Krokodil") im russischen Alphabet wird der Satz fehlerhafter Wörter etwa 450 groß sein, dh es müssen 450 Wörterbuchabfragen durchgeführt werden, was durchaus akzeptabel ist.
Aber schon bei k = 2 Die Größe eines solchen Satzes wird mehr als 115.000 Optionen betragen, was einer vollständigen Aufzählung eines kleinen Wörterbuchs oder 1/27 in unserem Fall entspricht, und daher wird die Laufzeit ziemlich groß sein. Gleichzeitig sollte man nicht vergessen, dass für jedes dieser Wörter eine genaue Übereinstimmung im Wörterbuch gesucht werden muss.

Besonderheiten:
Der Algorithmus kann leicht modifiziert werden, um "fehlerhafte" Varianten nach willkürlichen Regeln zu erzeugen, und erfordert außerdem keine Vorverarbeitung des Wörterbuchs und dementsprechend keinen zusätzlichen Speicher.
Mögliche Verbesserungen:
Es ist möglich, nicht den gesamten Satz "fehlerhafter" Wörter zu generieren, sondern nur diejenigen von ihnen, die am wahrscheinlichsten in einer realen Situation vorkommen, beispielsweise Wörter, die häufige Rechtschreib- oder Tippfehler berücksichtigen.

Diese Methode gibt es schon seit langem und sie ist die am weitesten verbreitete, da ihre Implementierung extrem einfach ist und sie eine ziemlich gute Leistung bietet. Der Algorithmus basiert auf dem Prinzip:
„Wenn Wort A bei mehreren Fehlern mit Wort B übereinstimmt, dann haben sie mit hoher Wahrscheinlichkeit mindestens einen gemeinsamen Teilstring der Länge N.“
Diese Teilketten der Länge N werden N-Gramme genannt.
Während der Indexierung wird das Wort in solche N-Gramme aufgeteilt, und dann wird dieses Wort in die Listen für jedes dieser N-Gramme aufgenommen. Während der Suche wird die Abfrage auch in N-Gramme unterteilt, und für jedes von ihnen wird sequentiell eine Liste von Wörtern durchsucht, die einen solchen Teilstring enthalten.

Am weitesten verbreitet in der Praxis sind Trigramme - Teilstrings der Länge 3. Die Wahl eines größeren Wertes von N führt zu einer Einschränkung der minimalen Wortlänge, bei der bereits eine Fehlererkennung möglich ist.

Besonderheiten:
Der N-Gramm-Algorithmus findet nicht alle möglichen falsch geschriebenen Wörter. Nehmen wir zum Beispiel das Wort VOTKA und zerlegen es in Trigramme: IN T KA → VO TÜBER T ZU T KA - Sie können sehen, dass sie alle den Fehler T enthalten. Daher wird das Wort "VODKA" nicht gefunden, da es keines dieser Trigramme enthält, und wird nicht in die entsprechenden Listen aufgenommen. Je kürzer also ein Wort ist und je mehr Fehler es enthält, desto höher ist die Wahrscheinlichkeit, dass es nicht in die Listen fällt, die N-Grammen der Abfrage entsprechen, und nicht im Ergebnis vorhanden ist.

Währenddessen lässt die N-Gramm-Methode vollen Spielraum für die Verwendung eigener Metriken mit beliebigen Eigenschaften und Komplexität, aber Sie müssen dafür bezahlen - wenn Sie sie verwenden, müssen Sie immer noch etwa 15% des Wörterbuchs sequentiell aufzählen, was eine ziemliche Menge ist viel für große Wörterbücher.

Mögliche Verbesserungen:
Es ist möglich, die Hash-Tabellen von N-Grammen nach der Länge der Wörter und nach der Position des N-Gramms im Wort aufzuteilen (Modifikation 1). Wie sich die Länge des gesuchten Wortes und der Suchanfrage nicht um mehr als unterscheiden darf k, und die Positionen eines N-Gramms in einem Wort können sich um nicht mehr als k unterscheiden. Somit ist es notwendig, nur die Tabelle zu prüfen, die der Position dieses N-Gramms im Wort entspricht, sowie k Tabellen links und k Tabellen rechts, d. h. Gesamt 2k+1 nebenstehende Tische.

Sie können die Größe des zum Scannen benötigten Satzes weiter verringern, indem Sie die Tabellen nach Wortlänge aufteilen und auf ähnliche Weise nur benachbarte Tabellen durchsuchen. 2k+1 Tabellen (Modifikation 2).

Dieser Algorithmus ist in dem Artikel von L. M. Boytsov beschrieben. Signatur-Hashing. Es basiert auf einer ziemlich offensichtlichen Darstellung der "Struktur" eines Wortes in Form von Bits, die als Hash (Signatur) in einer Hash-Tabelle verwendet werden.

Während der Indexierung werden solche Hashes für jedes der Wörter berechnet, und die Entsprechung der Liste von Wörterbuchwörtern zu diesem Hash wird in die Tabelle eingetragen. Dann wird bei der Suche ein Hash für die Anfrage berechnet und alle Nachbar-Hashes, die sich nicht mehr als k Bit vom ursprünglichen unterscheiden, werden aussortiert. Für jeden dieser Hashes wird die Liste der entsprechenden Wörter durchsucht.

Der Prozess der Berechnung eines Hashs – jedem Bit des Hashs wird eine Gruppe von Zeichen aus dem Alphabet zugeordnet. Bit 1 auf Position ich in einem Hash bedeutet, dass das ursprüngliche Wort ein Zeichen von enthält i-ten Alphabetische Gruppen. Die Reihenfolge der Buchstaben im Wort ist völlig irrelevant.

Das Entfernen eines Zeichens ändert entweder den Hash-Wert nicht (wenn es noch Zeichen aus derselben Alphabetgruppe im Wort gibt), oder das Bit, das dieser Gruppe entspricht, ändert sich auf 0. Wenn es eingefügt wird, ändert sich eines der beiden Bits auf die gleiche Weise auf 1 gesetzt werden, sonst gibt es keine Änderungen. Beim Ersetzen von Zeichen ist alles etwas komplizierter - der Hash kann entweder überhaupt unverändert bleiben oder sich an 1 oder 2 Stellen ändern. Beim Permutieren treten überhaupt keine Änderungen auf, da die Reihenfolge der Zeichen beim Erstellen eines Hashs, wie bereits erwähnt, nicht berücksichtigt wird. Um k Fehler vollständig abzudecken, müssen Sie also mindestens ändern 2k etwas in den Hasch.

Die Laufzeit im Durchschnitt mit k "unvollständigen" Fehlern (Einfügungen, Löschungen und Transpositionen sowie ein kleiner Teil von Ersetzungen):

Besonderheiten:
Aufgrund der Tatsache, dass sich beim Ersetzen eines Zeichens zwei Bits gleichzeitig ändern können, wird ein Algorithmus, der beispielsweise eine Verzerrung von nicht mehr als 2 Bits gleichzeitig implementiert, aufgrund des Fehlens von nicht die volle Menge an Ergebnissen liefern ein signifikanter (je nach Verhältnis der Hash-Größe zum Alphabet) Teil der Wörter mit zwei Ersetzungen (und je größer die Hash-Größe, desto häufiger führt eine Zeichenersetzung zu einer Verzerrung von zwei Bits auf einmal und desto weniger vollständig das Ergebnis wird sein). Außerdem erlaubt dieser Algorithmus keine Präfixsuche.

BK-Bäume

Bäume Burkhard Keller Metrische Bäume sind, basieren die Algorithmen zum Konstruieren solcher Bäume auf der Eigenschaft der Metrik, die Dreiecksungleichung zu erfüllen:

Diese Eigenschaft ermöglicht es Metriken, metrische Räume beliebiger Dimension zu bilden. Solche metrischen Räume sind nicht notwendigerweise Euklidisch, also zum Beispiel die Metriken Levenshtein Und Damerau-Levenshtein bilden nicht euklidisch Platz. Basierend auf diesen Eigenschaften können Sie eine Datenstruktur aufbauen, die in einem solchen metrischen Raum, nämlich den Barkhard-Keller-Bäumen, sucht.

Verbesserungen:
Sie können die Fähigkeit einiger Metriken nutzen, um die Entfernung mit einer Einschränkung zu berechnen, indem Sie eine Obergrenze festlegen, die gleich der Summe der maximalen Entfernung zu den Nachfolgern des Scheitelpunkts und der resultierenden Entfernung ist, was den Prozess etwas beschleunigt:

Testen

Die Tests wurden auf einem Laptop mit Intel Core Duo T2500 (2 GHz/667 MHz FSB/2 MB), 2 GB RAM, Betriebssystem – Ubuntu 10.10 Desktop i686, JRE – OpenJDK 6 Update 20 durchgeführt.

Getestet wurde mit der Damerau-Levenshtein-Distanz und der Fehlerzahl k = 2. Die Indexgröße wird zusammen mit dem Wörterbuch angegeben (65 MB).

Indexgröße: 65 MB
Suchzeit: 320ms / 330ms
Vollständigkeit der Ergebnisse: 100 %

N-Gramm (Original)
Indexgröße: 170 MB
Indexerstellungszeit: 32 s
Suchzeit: 71ms / 110ms
Vollständigkeit der Ergebnisse: 65 %
N-Gramm (Modifikation 1)
Indexgröße: 170 MB
Indexerstellungszeit: 32 s
Suchzeit: 39ms / 46ms
Vollständigkeit der Ergebnisse: 63 %
N-Gramm (Modifikation 2)
Indexgröße: 170 MB
Indexerstellungszeit: 32 s
Suchzeit: 37ms / 45ms
Vollständigkeit der Ergebnisse: 62 %

Indexgröße: 85 MB
Indexerstellungszeit: 0,6 s
Suchzeit: 55ms
Vollständigkeit der Ergebnisse: 56,5 %

BK-Bäume
Indexgröße: 150 MB
Indexerstellungszeit: 120 s
Suchzeit: 540 ms
Vollständigkeit der Ergebnisse: 63 %

Gesamt

Die meisten indizierten Fuzzy-Suchalgorithmen sind nicht wirklich sublinear (d. h. haben eine asymptotische Laufzeit O(log n) oder niedriger), und ihre Betriebsgeschwindigkeit hängt normalerweise direkt davon ab n. Dennoch ermöglichen zahlreiche Verbesserungen und Verfeinerungen, auch bei sehr großen Volumina an Wörterbüchern eine ausreichend kurze Laufzeit zu erreichen.

Es gibt auch viel vielfältigere und ineffizientere Methoden, die unter anderem auf der Anpassung verschiedener Techniken und anderer Techniken beruhen, die bereits an anderer Stelle verwendet werden, auf ein bestimmtes Fachgebiet. Zu diesen Methoden gehört die Anpassung von Präfixbäumen (Trie) an Fuzzy-Search-Probleme, die ich aufgrund ihrer geringen Effizienz unbeachtet gelassen habe. Es gibt aber auch Algorithmen, die auf originellen Ansätzen basieren, zum Beispiel der Algorithmus Maass-Novak, das zwar eine sublineare asymptotische Laufzeit hat, aber aufgrund der riesigen Konstanten, die sich hinter einer solchen Zeitschätzung verbergen und sich in Form einer riesigen Indexgröße manifestieren, äußerst ineffizient ist.

Praktische Anwendung von Fuzzy-Suchalgorithmen in der Realität Suchmaschinen eng verwandt mit phonetischen Algorithmen, lexikalischen Stammalgorithmen - Hervorhebung des Basisteils verschiedener Wortformen desselben Wortes (z. B. wird eine solche Funktionalität von Snowball und Yandex Mystem bereitgestellt) sowie Rangfolge basierend auf statistischen Informationen oder Verwendung komplexer raffinierter Algorithmen Metriken.

  • Levenshtein-Distanz (mit Clipping- und Präfix-Option);
  • Distanz Damerau-Levenshtein (mit Clipping- und Präfix-Option);
  • Bitap-Algorithmus (Shift-OR / Shift-AND mit Wu-Manber-Modifikationen);
  • Beispielexpansionsalgorithmus;
  • N-Gramm-Methode (Original und mit Modifikationen);
  • Signatur-Hashing-Methode;
  • BK-Bäume.
Ich wollte den Code leicht verständlich und dennoch effizient genug gestalten praktische Anwendung. Den letzten Saft aus der JVM zu pressen gehörte nicht zu meinen Aufgaben. Viel Spaß.

Es ist erwähnenswert, dass ich während des Studiums dieses Themas einige eigene Entwicklungen entwickelt habe, die es mir ermöglichen, die Suchzeit aufgrund einer moderaten Vergrößerung des Indexes und einer gewissen Einschränkung in um eine Größenordnung zu verkürzen die freie Wahl der Metriken. Aber das ist eine ganz andere Geschichte.

Verwendung von N-Gramm

Allgemeine Verwendung von N-Grammen

  • Extraktion von Daten, um eine Reihe von Satellitenbildern der Erde aus dem Weltraum zu clustern, um dann zu entscheiden, welche spezifischen Teile der Erde auf dem Bild zu sehen sind,
  • Suche nach genetischen Sequenzen,
  • im Bereich der Genetik werden verwendet, um festzustellen, von welcher bestimmten Tierart DNA-Proben entnommen werden,
  • bei der Computerkomprimierung,
  • Unter Verwendung von N-Grammen werden in der Regel klangbezogene Daten indiziert.

N-Gramme werden auch häufig in der Verarbeitung natürlicher Sprache verwendet.

Verwenden von N-Grammen für die Verarbeitung natürlicher Sprache

Auf dem Gebiet der Verarbeitung natürlicher Sprache werden N-Gramme hauptsächlich für Vorhersagen basierend auf probabilistischen Modellen verwendet. Das N-Gramm-Modell berechnet die Wahrscheinlichkeit des letzten Wortes des N-Gramms, wenn alle vorherigen bekannt sind. Bei der Verwendung dieses Ansatzes zum Modellieren einer Sprache wird angenommen, dass das Erscheinen jedes Wortes nur von den vorherigen Wörtern abhängt.

Eine weitere Anwendung von N-Grammen ist die Erkennung von Plagiaten. Zerlegt man den Text in mehrere kleine Fragmente, dargestellt durch n-Gramme, lassen sich diese leicht miteinander vergleichen und erhalten so den Ähnlichkeitsgrad kontrollierter Dokumente. N-Gramme werden oft erfolgreich verwendet, um Text und Sprache zu kategorisieren. Darüber hinaus können sie verwendet werden, um Funktionen zu erstellen, die es Ihnen ermöglichen, Wissen aus Textdaten zu gewinnen. Unter Verwendung von N-Grammen kann man effizient Kandidaten finden, um falsch geschriebene Wörter zu ersetzen.

Google-Forschungsprojekte

Google-Forschungszentren haben N-Gramm-Modelle für eine Vielzahl von Forschungs- und Entwicklungszwecken verwendet. Dazu gehören Projekte wie statistische Übersetzung von einer Sprache in eine andere, Spracherkennung, Rechtschreibkorrektur, Informationsextraktion und mehr. Für die Zwecke dieser Projekte wurden Korporatexte mit mehreren Billionen Wörtern verwendet.

Google hat beschlossen, ein eigenes Bildungsgebäude zu schaffen. Das Projekt heißt Google Teracorpus und enthält 1.024.908.267.229 Wörter, die von öffentlichen Websites gesammelt wurden.

Methoden zum Extrahieren von N-Grammen

Aufgrund der häufigen Verwendung von N-Grammen zur Lösung verschiedener Probleme wird ein zuverlässiger und schneller Algorithmus benötigt, um sie aus dem Text zu extrahieren. Ein geeignetes N-Gramm-Extraktionstool sollte in der Lage sein, mit unbegrenzter Textgröße zu arbeiten, schnell zu arbeiten und verfügbare Ressourcen effizient zu nutzen. Es gibt mehrere Methoden zum Extrahieren von N-Grammen aus Text. Diese Methoden basieren auf unterschiedlichen Prinzipien:

Anmerkungen

siehe auch


Wikimedia-Stiftung. 2010 .

  • n-tv
  • N-Cadherin

Sehen Sie, was "N-Gramm" in anderen Wörterbüchern ist:

    GRAMM- (Französisches Gramm, vom griechischen Gramma-Merkmal). Französische Einheit. Gewicht \u003d Gewicht von 1 Kubikzentimeter destilliertem Wasser \u003d 22,5 Russisch. Anteile. Wörterbuch der in der russischen Sprache enthaltenen Fremdwörter. Chudinov A.N., 1910. GRAM Gewichtseinheit in Frankreich ... Wörterbuch der Fremdwörter der russischen Sprache

    Gramm- Gramm, Gattung. pl. Gramm und zulässige (in der mündlichen Rede nach Ziffern) Gramm. Einhundert Gramm (Gramm). Zur Verteidigung der neuen Form der Gattung. Fall Pl. Anzahl Gramm wurde von einem Kenner des russischsprachigen Schriftstellers K. Chukovsky gemacht. Hier ist, was er in dem Buch "Living as Life" geschrieben hat: ... ... Wörterbuch der Aussprache- und Betonungsschwierigkeiten im modernen Russisch

    GRAMM- GRAM, Gram, Ehemann. (von griech. Grammazeichen, Buchstabe). Die grundlegende Gewichtseinheit im metrischen System, die dem Gewicht von 1 Kubikzentimeter Wasser entspricht. Ein Gramm wiegt etwa 1/400 Pfund. ❖ Grammatom (phys.) die Anzahl Gramm einer Substanz, die ihrem Atomgewicht entspricht. ... ... Erklärendes Wörterbuch von Ushakov

    Gramm-Röntgen- Gramm Röntgen / n, Gramm Röntgen / an, Stab. pl. Grammröntgen und Grammröntgen... zusammengeführt. Ein Teil. Durch einen Bindestrich.

    Gramm- Gram, dieses einfache Wort hätte nicht in das Fehlerwörterbuch aufgenommen werden können, wenn nicht zwei Umstände gewesen wären; Erstens, wenn Sie mit einer absolut korrekten Sprache angeben möchten, betäuben Sie den Verkäufer, nachdem Sie in den Laden gekommen sind, mit der richtigen: Wiegen Sie mich zweihundert Gramm (nicht ... ... Wörterbuch der russischen Sprachfehler

    GRAM-ATOM- GRAM ATOM, die Menge eines Elements, dessen Masse in Gramm gleich seiner ATOMMASSE ist. Es wurde durch die SI-Einheit Mol ersetzt. Beispielsweise entspricht ein Gramm eines Wasserstoffatoms (H, Atommasse = 1) einem Gramm. b>GRAMMÄQUIVALENT, das Gewicht in Gramm davon… … Wissenschaftliches und technisches Lexikon

    GRAMM- GRAM, ah, Gattung. pl. Gramm und Gramm, Ehemann. Eine Masseneinheit im dezimalen Maßsystem, ein Tausendstel Kilogramm. Nicht eine Unze (nicht) von irgendetwas (umgangssprachlich) überhaupt nicht, überhaupt nicht. Dieser Mann (hat) kein Gewissen. | adj. Gramm, oh, oh. Erklärend ... ... Erklärendes Wörterbuch von Ozhegov

    Gramm- aber; pl. Gattung. Gramm und Gramm; m. [Französisch. Gramm] Eine Masseneinheit im metrischen System, ein Tausendstel Kilogramm. ◊ Da ist kein einziges Gramm. Überhaupt nicht, überhaupt nicht. In wem l. kein Gramm Falschheit. Niemand hat ein Gewissen. * * * Gramm (Französisch ... Enzyklopädisches Wörterbuch

    Gramm Zenob Theophilus- (Gramme) (1826 1901), Elektroingenieur. In Belgien geboren, in Frankreich gearbeitet. Erhielt ein Patent für einen praktischen elektrischen Generator mit ringförmigem Anker (1869). Er begründete die industrielle Fertigung elektrischer Maschinen. * * * GRAM Zenob… … Enzyklopädisches Wörterbuch

    Gramm Atom- die Menge einer Substanz in Gramm, numerisch gleich ihrer Atommasse. Der Begriff wird nicht zur Verwendung empfohlen. In SI wird die Menge eines Stoffes in Mol ausgedrückt. * * * GRAM ATOM GRAM ATOM, die Menge einer Substanz in Gramm, numerisch gleich ihrer Atommasse (siehe ... Enzyklopädisches Wörterbuch

    Gramm Molekül- die Menge eines Stoffes in Gramm, numerisch gleich seinem Molekulargewicht. Der Begriff wird nicht zur Verwendung empfohlen. In SI wird die Menge eines Stoffes in Mol ausgedrückt. * * * GRAM MOLECULE GRAM MOLECULE, die Menge einer Substanz in Gramm, numerisch gleich ihrer ... ... Enzyklopädisches Wörterbuch

,

Betrachtet n-Gramme als Mittel zur Fixierung sprachlicher Wirklichkeit und als Modellkonstrukt. Die Beziehung des Modells n-Gramme und formale Grammatiken. Es wird auf die Mängel und Widersprüche hingewiesen, die mit der Verwendung probabilistischer Modelle verbunden sind.

Einführung

Beginnen wir mit einer formalen Definition. Gegeben sei ein endliches Alphabet VT={wi), wo wi- ein separates Symbol. Die Menge von Ketten (Strings) endlicher Länge, bestehend aus alphabetischen Zeichen VT, wird die Sprache im Alphabet genannt VT und bezeichnet L(VT). Eine separate Kette von der Sprache L(VT) wird in dieser Sprache als Aussage bezeichnet. Wiederum, n- ein Gramm im Alphabet VT wird als Kettenlänge bezeichnet n. n-gram kann mit einer Anweisung übereinstimmen, sei es ihre Teilzeichenfolge, oder überhaupt nicht enthalten sein L(VT).

Hier sind einige Beispiele n-Gramm.

3. , n-Gramm der russischen Sprache. // Echte Sammlung.

4. Glanz S. Medizinisch-biologische Statistik. Pro. aus dem Englischen. ed. Und. M., 1999.

5. Beschreibende Linguistik. Vorwort zu G. Gleasons Buch "Introduction to Descriptive Linguistics". M, 1959.

6. Theoretische und angewandte Linguistik. M., 1968.

8. , Pause während der automatischen Sprachsynthese. // Theorie und Praxis der Sprachforschung. M. 1999.

9. Minsky M. Witz und Logik des kognitiven Unbewussten. // Neu in der Fremdsprachenwissenschaft. Problem. XXIII. M., 1988.

10. Slobin D., Green J. Psycholinguistik. M., 1976

11. Wahrscheinlichkeitstheorie. M., 1972.

12. Fu K. Strukturelle Methoden in der Mustererkennung. M., 1977.

13. Harris T. Theorie der Verzweigung zufälliger Prozesse. M., 1966.

14. Brill E. et al. außerhalb n-grams: Kann linguistische Raffinesse die Sprachmodellierung verbessern?

15. Stand T. Wahrscheinlichkeitsdarstellung formaler Sprachen. // IEEE Annual Symp. Schalt- und Automatentheorie. 1969.

16. Jelinek F. Selbstorganisierte Sprachmodellierung für die Spracherkennung. // Lesungen in der Spracherkennung. 1989.

17. JeLinie F., Lafferty J. Berechnung der Wahrscheinlichkeit der anfänglichen Teilstring-Erzeugung durch stochastische kontextfreie Grammatik. // Computerlinguistik, vol.

18. Harris Z.S. Methode in der Strukturlinguistik. Chicago, 1951.

19. Lashley K. Das Problem der seriellen Ordnung im Verhalten. // Psycholinguistik: Ein Lesebuch, N. Y. 1961.

20. Schlesinger E. Satzbau und Leseprozess. Mouton. 1968.

21. Scheiber S. Beweise gegen die Kontextfreiheit natürlicher Sprache. // Sprachwissenschaft und Philosophie, Bd.

22. Sola-Pool I. Trends in der Inhaltsanalyse heute. // Psycholinguistik: Ein Lesebuch, N. Y. 1961

23. Stolcke A., Segal J. Präzise n-Gramm-Wahrscheinlichkeiten aus stochastischen kontextfreien Grammatiken. // Tagungsband der 32. Jahrestagung des ACL. 1994.