Ich bin auf der Suche nach einer effizienten Möglichkeit, einen Ähnlichkeitsvektor eines einzelnen Satzes gegen eine Liste von Sätzen zu erstellen.Finde Ähnlichkeit zwischen einem Satz zu einer Liste von Sätzen
Die triviale Art, das zu tun, besteht darin, über die Liste der Sätze zu iterieren und die Ähnlichkeit zwischen dem einzelnen Satz und jedem der Sätze in der Liste zu erkennen. Diese Lösung ist zu langsam und ich suche nach einer schnelleren Methode.
Mein letztes Ziel ist es festzustellen, ob es in der Liste der Sätze einen wirklich ähnlichen Satz gibt, den ich überprüfe, wenn das der nächste Satz ist.
jetzt Meine Lösung ist:
for single_sentence in list_of_sentences:
similarity_score = word2vec.sentences_similarity(sentence2test, single_sentence)
if similarity_score >= similarity_th:
ignore_sent_flag = True
break
list_of_sentences.append(sentence2test)
Iv'e versucht, in einem Wörterbuch 'list_of_sentences' zu setzen/set aber die Verbesserung in Bezug auf die Zeit ist gering.
Ich stieß auf this Lösung, aber es basiert auf einem Linux-Paket nur so nicht relevant für mich.
Haben Sie Interesse an einer Eins-zu-all oder all-to-all Ähnlichkeit Prüfung? Muss die Lösung auch gensimbasiert sein? –
@ GökhanSever Ich interessiere mich für alles in allem, während die 'alle' Liste wächst –
Wenn Ihre Lösung gensim nicht benötigt, können Sie einfach die Jaccard-Ähnlichkeit berechnen, entweder basierend auf n-Zeichen-Gramm oder Wort -Gramme. –