Ich arbeite daran, Ähnlichkeiten zwischen kurzen Sätzen und Artikeln zu finden. Ich habe viele vorhandene Methoden wie tf-idf, word2vec usw. benutzt, aber die Ergebnisse sind nur okay. Die relevanteste Maßnahme, die ich fand, war die Entfernung des Wortes, aber die Ergebnisse sind nicht besser als die anderen Maße. Ich weiß, dass es ein herausforderndes Problem ist, aber ich frage mich, ob es neue Methoden gibt, um eine annähernde Ähnlichkeit zu finden, eher auf einer höheren Ebene oder einem Konzeptniveau als nur passende Wörter. Vor allem, alternative alternative Methoden wie Wortbewegungsentfernung, die etwas höhere Semantik eines Satzes oder Artikels betrachtet?Neue Methoden zum Finden der semantischen Ähnlichkeit zwischen zwei kurzen Sätzen oder Artikeln (auf einer Konzept-Ebene)
Antwort
Um ehrlich zu sein, das Beste, was ich weiß, dies ist im Moment zu verwenden ist AMR:
- Über AMR hier: https://amr.isi.edu/
- Dokumentation hier: https://github.com/amrisi/amr-guidelines/blob/master/amr.md
Sie können ein verwenden System wie JAMR (siehe hier: https://github.com/jflanigan/jamr), um AMRs für Ihren Satz zu generieren, und dann können Sie Smatch (siehe hier: https://amr.isi.edu/eval/smatch/tutorial.html) verwenden, um die Ähnlichkeit der beiden erzeugten AMRs zu vergleichen.
Was Sie versuchen zu tun ist sehr schwierig und ist ein aktives, laufendes Forschungsgebiet.
Offensichtlich ist dies ein großer und beschäftigt Forschungsbereich, aber ich würde sagen, es gibt zwei große Arten von Ansätzen Sie in aussehen könnten:
Erstens gibt es einige Methoden, den Satz Einbettungen in einer unüberwachten Weise lernen B. Le and Mikolov's (2014) Paragraph Vectors, die in gensim oder Kiros et al.'s (2015) SkipThought vectors implementiert sind, mit einer implementation on Github.
Dann gibt es auch überwachte Methoden, die Satzeinbettungen aus markierten Daten lernen. Die neueste ist Conneau et al.'s (2017), die Satzeinbettungen im Stanford Natural Language Inference-Datensatz trainiert und zeigt, dass diese Einbettungen für eine Reihe von NLP-Aufgaben erfolgreich verwendet werden können. Der Code lautet available on Github.
Sie könnten auch einige Inspiration in a blog post I wrote earlier this year on the topic of embeddings finden.
Dies ist das jüngste Basieren auf einem vor 4 Monaten veröffentlichten Papier.
Schritt 1:
laden geeignetes Modell GENSIM Verwendung und die Wortvektoren für die Wörter im Satz berechnen und speichern sie als Wortliste
Schritt 2: Berechnung der Satzvektor
The Die Berechnung der semantischen Ähnlichkeit zwischen Sätzen war zuvor schwierig, aber kürzlich wurde eine Veröffentlichung mit dem Namen "A SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SENTENCE EMBEDDINGS" vorgeschlagen, die einen einfachen Ansatz vorschlägt, indem der gewichtete Durchschnitt der Wortvektoren in dem Satz berechnet wird und dann die Projektionen der Durchschnittsvektoren auf ihrer ersten Hauptkomponente entfernt werden. Hier das Gewicht eines Wortes w ist a/(a + p (w)) mit einem Parameter und p (w) der (geschätzten) Wortfrequenz, die als glatte, inverse Frequenz bezeichnet wird. Dieses Verfahren ist wesentlich besser.Verwendung sklearn cosine_similarity Last zwei Vektoren für die Sätze und Berechnen der Ähnlichkeit:
einen einfachen Code, den Satz Vektor unter Verwendung von SIF (glatte inverse Frequenz), um das vorgeschlagene Verfahren in dem Papier zu berechnen hat here
Schritt 3 gegeben.
Dies ist die einfachste und effizienteste Methode zur Berechnung der semantischen Ähnlichkeit von Sätzen.
Es wird sicherlich funktionieren. Lassen Sie es mich wissen, wenn es nicht so ist. –
Sie können für jedes Substantiv eine semantische Ähnlichkeit mit WordNet verwenden. Um einen kurzen Blick Sie können Vogel Substantiv-1 und Stuhl-Substantiv-1 und wählen Sie wordnet bei http://labs.fc.ul.pt/dishin/ es gibt Ihnen ein:
Resnik ,315625756544
Lin ,0574161071905
Jiang & Conrath ,0964964414156
Der Python-Code ist: https://github.com/lasigeBioTM/DiShIn
- 1. Finde Ähnlichkeit zwischen einem Satz zu einer Liste von Sätzen
- 2. Wie findet man die semantische Ähnlichkeit zwischen 2 Sätzen?
- 3. Algorithmen zum Finden der Entfernung/Ähnlichkeit zwischen den Benutzer-Tags?
- 4. Messung semantischer Ähnlichkeit zwischen zwei Phrasen
- 5. Prozentsatz der Ähnlichkeit zwischen zwei colulmns
- 6. Schätzung der phonemischen Ähnlichkeit zwischen zwei Wörtern
- 7. Algorithmus zum Messen der Ähnlichkeit zwischen zwei Sequenzen von Strings
- 8. SQL - Ähnlichkeit zwischen zwei Strings unterschiedlicher Länge
- 9. Erhalten der Differenz zwischen zwei Sätzen
- 10. Semantische Kohärenz zwischen Sätzen in einem Text finden
- 11. Wie Ähnlichkeit Ähnlichkeit von zwei Wortphrasen mit Word2vec finden?
- 12. Ähnlichkeit zwischen einer Zeile und vielen Zeilen finden
- 13. Messen Ähnlichkeit zwischen 2 Vektoren
- 14. Finden Sie die Ähnlichkeit zwischen einer Gruppe von Attributen (mongodb)
- 15. Wie Ähnlichkeit Zeichenfolge zwischen zwei Strings in
- 16. Kreuzung von zwei oder mehr sortierten Sätzen
- 17. Neue Zeilen zwischen zwei Dateien auf neue Datei filtern
- 18. Ähnlichkeit zwischen Farben
- 19. wie Ähnlichkeit zwischen vielen Saiten zu finden und Plotten ihm
- 20. Effiziente Methode zum Finden der Entfernung zwischen zwei 3D-Punkten
- 21. XOR von zwei kurzen Ganzzahlen
- 22. Was ist der Unterschied zwischen einer kurzen und einer kurzen Zeit in C#?
- 23. Suche nach semantischen Verwandtschaft Werkzeug
- 24. Python Durchgangswert zwischen zwei Methoden
- 25. Wie vergleichen .csv-Dateien oder Strings und finden Sie Ähnlichkeit?
- 26. Berechnung der Ähnlichkeit "Score" zwischen mehreren Wörterbüchern
- 27. Ähnlichkeit zwischen mehreren Textblöcken bestimmen
- 28. Kosinus-Ähnlichkeit zwischen aufeinanderfolgenden Paaren mit ganzen Artikeln in JSON-Datei
- 29. SSE2 intrinsics - finden Sie Max von zwei vorzeichenlosen kurzen Vektoren
- 30. Python: Semantische Ähnlichkeit Score für Strings
ich fürchte, Ihre Frage ist nicht eine gute Passform für SO. Wenn Sie nach anderen vorhandenen Tools suchen, wird dies als nicht am Thema orientiert angesehen. Wenn Sie sehen wollen, dass Menschen neue Methoden erfinden, müssen Sie Mittel für ein Forschungsprojekt erhalten. – lenz
Btw, mit Word-Einbettungen ist nicht "nur passende Wörter". Es sollte auf einer höheren semantischen Ebene arbeiten. – lenz
@lenz Ich wollte hier nicht neue Wege finden, sondern fragen, ob ich etwas vermisst habe, was bereits existiert. Vielleicht etwas aus dem Jahr 2017. –