Wie verwende ich eine Worteinbettung, um ein Dokument einem Feature-Vektor zuzuordnen, der für die Verwendung mit überwachtem Lernen geeignet ist?
Ein Wort Einbettungs bildet jedes Wort auf einen Vektor v ∈ R d , wobei d einige nicht allzu große Anzahl (zB 500). Beliebte Wort Einbettungen sind word2vec und Handschuh .
Ich möchte betreutes Lernen anwenden, um Dokumente zu klassifizieren. Momentan ordne ich jedes Dokument einem Merkmalsvektor mithilfe der Wortsackdarstellung zu und wende dann einen Standardklassifizierer an. Ich möchte den Merkmalsvektor der Wortsammlung durch etwas ersetzen, das auf einer vorhandenen vorgeübten Worteinbettung basiert, um das semantische Wissen zu nutzen, das in der Worteinbettung enthalten ist. Gibt es eine Standardmethode dafür?
Ich kann mir einige Möglichkeiten vorstellen, aber ich weiß nicht, ob es etwas gibt, das am sinnvollsten ist. Kandidatenansätze, über die ich nachgedacht habe:
Ich könnte den Vektor für jedes Wort im Dokument berechnen und alle mitteln. Dies scheint jedoch eine Menge Informationen zu verlieren. Zum Beispiel kann der Klassifizierer bei der Darstellung in Wortsäcken leicht lernen, dass es einige Wörter gibt, die für die Klassifizierungsaufgabe von hoher Relevanz sind und die meisten Wörter irrelevant sind. Wenn ich die Vektoren für alle Wörter im Dokument mittle, hat der Klassifikator keine Chance.
Das Verketten der Vektoren für alle Wörter funktioniert nicht, da dies nicht zu einem Merkmalsvektor mit fester Größe führt. Es scheint auch eine schlechte Idee zu sein, da es übermäßig empfindlich auf die spezifische Platzierung eines Wortes ist.
Ich könnte die Worteinbettung verwenden, um das Vokabular aller Wörter in eine feste Menge von Clustern zu gruppieren, beispielsweise 1000 Cluster, wobei ich die Kosinusähnlichkeit auf den Vektoren als Maß für die Wortähnlichkeit verwende. Dann könnte ich anstelle eines Wortbeutels einen Clusterbeutels haben: Der Merkmalsvektor, den ich dem Klassifizierer zuführe, könnte ein 1000-Vektor sein, bei dem die te Komponente die Anzahl der Wörter in dem Dokument zählt, das dies ist sind Teil von Cluster i .
Mit einem gegebenen Wort lassen mich diese Worteinbettungen einen Satz der 20 ähnlichsten Wörter w 1 , … , w 20 und ihre Ähnlichkeitswerte s 1 , … , s 20 berechnen . Ich könnte den wortreichen Merkmalsvektor damit anpassen. Wenn ich das Wort sehen w , zusätzlich zum Inkrementieren des Elements zu Wort entspricht w von 1 konnte ich auch das Element inkrementieren Wort entspricht , w 1 von s 1 , inkrementieren das Element zu Wort entspricht w 2 durch und so weiter.
Gibt es einen speziellen Ansatz, der sich für die Klassifizierung von Dokumenten eignet?
Ich suche nicht nach paragraph2vec oder doc2vec. Diese erfordern Training auf einem großen Datenkorpus, und ich habe keinen großen Datenkorpus. Stattdessen möchte ich eine vorhandene Worteinbettung verwenden.