Dokument-ähnlichkeit: Vector Einbettung versus Tf-Idf-Leistung?
Habe ich eine Sammlung von Dokumenten, wobei jedes Dokument ist schnell wachsenden, mit der Zeit. Die Aufgabe ist zu finden, ähnliche Dokumente zu jedem Zeitpunkt fest. Ich habe zwei mögliche Ansätze:
-
Einen Vektor embedding (word2vec, Handschuh oder fasttext), Mittelung über Wort-Vektoren in einem Dokument, und mit Kosinus-ähnlichkeit.
-
Bag-of-Words: tf-idf oder seine Varianten wie BM25.
Wird eine dieser Ausbeute zu einem bedeutend besseren Ergebnis? Hat jemand getan, einen quantitativen Vergleich der tf-idf versus durchschnittlich word2vec für Dokument-ähnlichkeit?
Ist es ein weiterer Ansatz, der erlaubt, dynamisch verfeinern der Dokument-Vektoren, sobald mehr text Hinzugefügt wird?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laut Artikel, die Leistung doc2vec oder paragraph2vec ist schlecht für die kurz-lang-Dokumente. [Lernen Semantischer Ähnlichkeit für Sehr Kurze Texte, 2015, IEEE]
Wenn Sie wollen, vergleichen Sie die ähnlichkeit zwischen kurz-Dokumente, möchten Sie vielleicht zu Vektorisieren Sie das Dokument über word2vec.
Zum Beispiel, Sie können bauen ein Dokument-Vektor mit einem gewichteten durchschnittlichen Vektor mit tf-idf.
Zusätzlich empfehle ich die Verwendung von ts-ss statt Cosinus oder euklidische für ähnlichkeit.
Entnehmen Sie bitte den folgenden Artikel oder die Zusammenfassung in github unten.
"Ein Hybrid-Geometrischen Ansatz für die Messung der Ähnlichkeit Ebene Zwischen Dokumenten und Dokumenten-Clustering"
https://github.com/taki0112/Vector_Similarity
danke
Haben Sie, es zu versuchen: die Antwort kann variieren, basierend auf dem Korpus und Anwendungs-spezifische Wahrnehmung von 'ähnlichkeit'. Wirksamkeit kann besonders variieren basierend auf typischen Dokument Längen, so dass, wenn "schnell" wachsen "mit Zeit" bedeutet auch "wachsen beliebig lang", dass könnte einen großen Einfluss auf das, was funktioniert über die Zeit (erfordert Anpassungen für mehr docs).
Beachten Sie auch, dass ' Absatz Vektoren " – wo ein Vektor ist co-trainiert wie ein Wort Vektors repräsentieren, der eine Reihe von text – übertreffen kann eine einfache Durchschnitt-für-Wort-Vektoren als input für die ähnlichkeit/Tarifierung Aufgaben. (Viele Verweise auf die 'Doc2Vec' konkret 'Absatz Vektoren', obwohl der Begriff 'Doc2Vec' ist manchmal auch für einen anderen Weg, aus einem Dokument in einen Vektor, wie ein einfacher Durchschnitt von Wort-Vektoren.)
Möglicherweise möchten Sie auch zu schauen "Word-Mover ' s-Distanz" (MVW), ein Maß für die ähnlichkeit zwischen zwei Texten verwendet, Wort-Vektoren, jedoch nicht über eine einfache Durchschnitt. (Jedoch, kann es teuer werden, um zu berechnen, insbesondere für längere Dokumente.) Für die Einstufung gibt es eine neuere Verfeinerung genannt "Überwacht Word-Mover ' s-Distanz" die reweights/wandelt word-Vektoren, um Sie empfindlicher auf die bekannten Kategorien. Mit genug evaluation/tuning Daten darüber, welche Ihrer Dokumente sollte näher sein als andere, einen Analog-Technik könnte wahrscheinlich werden angewandt, um generische ähnlichkeit Aufgaben.
Könnten Sie auch prüfen, versuchen Jaccard ähnlichkeit, die verwendet basic-set-algebra zu bestimmen, die verbale überlappung in zwei Dokumenten (obwohl es ist etwas ähnlich wie ein BOW-Ansatz). Ein nettes intro, es kann gefunden werden hier.