2009-02-23 7 views
11

Binarisierung ist der Akt der Umwandlung von bunten Merkmalen einer Entität in Vektoren von Zahlen, meistens binäre Vektoren, um gute Beispiele für Klassifikatoralgorithmen zu bilden.Binarisierung in natürlicher Sprachverarbeitung

Wenn wir den Satz "Die Katze fraßen den Hund" digitalisieren, könnten wir damit beginnen, jedem Wort eine ID zuzuordnen (zum Beispiel Katze-1, Katze-2, Katze-3, Hund-4) und dann einfach Ersetzen Sie das Wort durch seine ID mit dem Vektor < 3,1,2,3,4>.

Mit diesen IDs könnten wir auch einen binären Vektor erzeugen, indem wir jedem Wort vier mögliche Slots geben und den Slot für ein bestimmtes Wort auf eins setzen, was den Vektor < 0,0,1,0,1,0 ergibt , 0,0,0,1,0,0,0,0,0,1>. Die letztere Methode wird, soweit ich weiß, allgemein als Bag-of-words-Methode bezeichnet.

Nun meine Frage, was sind die beste Digitalisierungsverfahren, wenn es Funktionen für die Verarbeitung natürlicher Sprache im Allgemeinen beschreiben kommt, und Transition-basierte Abhängigkeit (mit Nivres Algorithmus) insbesondere Parsen?

In diesem Zusammenhang wollen wir nicht den ganzen Satz kodieren, sondern den aktuellen Zustand der Analyse, zum Beispiel das oberste Wort auf dem Stapel und das erste Wort in der Eingabewarteschlange. Da die Reihenfolge sehr wichtig ist, schließt dies die Bag-of-words-Methode aus.

Mit besten, ich beziehe mich auf die Methode, die die Daten des meisten verständlich für den Klassifikator macht, ohne unnötigen Speicher zu verbrauchen. Zum Beispiel möchte ich nicht, dass ein Wort Bigramm 400 Millionen Features für 20000 einzelne Wörter verwendet, wenn nur 2% der Bigramme tatsächlich existieren.

Da die Antwort auch vom jeweiligen Klassifikator abhängt, interessiere ich mich vor allem für maximale Entropiemodelle (liblinear), Support Vector Machines (libsvm) und Perceptrons, aber auch Antworten auf andere Modelle sind willkommen.

+1

Ich weiß nicht, was Binarisierung ist, und ich bin mir sicher, dass viele andere Leute im selben Boot sind, also wäre es schön, wenn Sie erklären könnten, was Sie für diejenigen von uns bedeuten, die NLP nicht kennen (wenn nicht, um uns zu helfen, zumindest um das Thema zu verstehen). –

+0

Das gleiche hier - können Sie bitte Binarisierung definieren? –

+0

Vielleicht könnten Sie definieren, was Sie mit "am besten", d. H. Am effizientesten, am effizientesten, am beschreibendsten meinen. – scotta

Antwort

4

Das ist eigentlich eine wirklich komplexe Frage. Die erste Entscheidung, die Sie treffen müssen, ist ob lemmatize Ihre Eingabe-Token (Ihre Wörter). Wenn Sie dies tun, verringern Sie drastisch Ihre Anzahl von Typen und Ihr Syntax-Parsing wird viel weniger kompliziert. Es erfordert jedoch viel Arbeit, ein Token zu lemmatisieren. Jetzt, in einer Computersprache, wird diese Aufgabe stark reduziert, da die meisten Sprachen Schlüsselwörter oder Variablennamen mit einem gut definierten Satz von Symbolen wie Leerzeichen oder einem Punkt oder ähnlichem trennen.

Die zweite entscheidende Entscheidung ist, was Sie mit den Daten post-facto machen werden. Die "Bag-of-words" -Methode, in der binären Form, die Sie präsentiert haben, ignoriert die Reihenfolge der Wörter, die völlig in Ordnung ist, wenn Sie summarization of a text oder vielleicht eine Google-Stil-Suche machen, wo Sie nicht kümmern wo die die Wörter erscheinen, solange sie erscheinen. Wenn Sie dagegen etwas wie einen Compiler oder Parser erstellen, ist die Reihenfolge sehr wichtig. Sie können den Token-Vektor-Ansatz verwenden (wie in Ihrem zweiten Absatz), oder Sie können den Bag-of-Word-Ansatz so erweitern, dass jeder Nicht-Null-Eintrag im Vektorbeutel die lineare Indexposition des Tokens enthält in der Phrase.

Schließlich, wenn Sie parse trees bauen werden, gibt es offensichtliche Gründe, warum Sie mit dem Token-Vektor-Ansatz gehen möchten, da es ein großer Aufwand ist, Unterwort-IDs für jedes Wort in der Bag-of-Word-Vektor, aber sehr einfach "Untervektoren" in einem Token-Vektor zu machen. In der Tat, Eric Brill verwendet eine Token-ID-Sequenz für seine part-of-speech tagger, die wirklich ordentlich ist.

Haben Sie etwas dagegen, wenn ich fragen, welche spezifische Aufgabe Sie arbeiten?

+0

Vielen Dank für einen guten Start einer Antwort! :) Ich werde sicherlich die Details der Brills-Token-ID-Sequenz überprüfen. Über die Verwendung der BOW-Repräsentation mit einer Ganzzahl zur Darstellung des linearen Token-Indexes, glaubst du wirklich, dass dies mit einem SVM-Klassifizierer funktionieren würde (gute Leistung bringen)? –

+0

Die spezifische Aufgabe ist eine Implementierung von Nivres lineare Zeit, Übergang-basierte Parsing-Algorithmus zusammen mit dem maximalen Entropie-Klassifikator von Liblinear. –

+0

@sganslandt: Für SVM-Klassifikatoren könnten Sie anstelle von Token die Verwendung von N-Grammen (Bigramme, Trigramme usw.) in Betracht ziehen. Dadurch bleibt die lokale Kontextordnung erhalten, die globale Reihenfolge wird jedoch ignoriert. Sie können dann einen normalen alten Text verwenden und trotzdem einige Kontextinformationen beibehalten. – Mike

0

[Keine direkte Antwort] Alles hängt davon ab, was Sie versuchen zu parsen und dann zu verarbeiten, aber für allgemeine kurze menschliche Phrasenverarbeitung (z. B. IVT) ist eine andere Methode, neuronale Netze zu verwenden, um die Muster zu lernen. Dies kann für kleinere vocubularies sehr acurate seine

3

Binarization ist der Akt des Umwandlung bunte Merkmale von ein Unternehmen in Vektoren von Zahlen, am häufigsten binären Vektoren, gute Beispiele für Klassifikator Algorithmen zu machen.

Ich habe meist über numerische Funktionen kommen, die Werte zwischen0 und 1 nehmen (nicht binär, wie Sie beschreiben), die Relevanz der jeweiligen Funktion in dem Vektor, der (zwischen 0% und 100%, wobei 1 repräsentiert 100%). Ein übliches Beispiel hierfür sind tf-idf Vektoren: In dem Vektor, der ein Dokument (oder einen Satz) darstellt, haben Sie einen Wert für jeden Begriff im gesamten Vokabular, der die Relevanz dieses Ausdrucks für das dargestellte Dokument angibt.

Wie Mike bereits in his reply gesagt hat, ist dies ein komplexes Problem in einem weiten Bereich. Zusätzlich zu seinen Zeigern können Sie es nützlich finden, in einige information retrieval Techniken wie die , vector space classification und latent semantic indexing als Startpunkte zu suchen. Auch das Feld word sense disambiguation beschäftigt sich sehr mit feature Darstellungsprobleme in NLP.

Verwandte Themen