Frage

Eingang: Satz 1, Satz 2

Ausgang: semantischer Ähnlichkeitswert (zwischen 0 und 1), oder der Wahrscheinlichkeit, diese beiden Sätze über die gleiche Sache sprechen

War es hilfreich?

Lösung


Sie können dieses Papier überprüfen:

Andere Tipps

Es gibt eine kurze und eine lange Antwort.

Die kurze Antwort:

Mit dem WordNet :: Ähnlichkeit Perl Paket . Wenn Perl nicht die Sprache Ihrer Wahl ist, überprüfen Sie die WordNet Projektseite in Princeton, oder für eine Wrapper-Bibliothek Google.

Die lange Antwort:

Die Bestimmung Wortähnlichkeit ist eine komplizierte Frage, und Forschung ist immer noch sehr heiß in diesem Bereich. Zur Berechnung Ähnlichkeit, benötigen Sie eine entsprechende represenation der Bedeutung ein Wortes. Aber was wäre eine Darstellung der Bedeutung von, sagen wir, ‚Stuhl‘? In der Tat, was ist die genaue Bedeutung von 'Stuhl'? Wenn Sie über diese lange und hart denke, es wird Ihr Geist drehen, gehen Sie etwas verrückt, und schließlich eine wissenschaftliche Laufbahn in der Philosophie oder der Computerlinguistik, die Wahrheit zu finden, nehmen ™. Beiden Philosophen und Linguisten haben versucht, für buchstäblich mit einer Antwort zu kommen Tausende von Jahren, und es gibt kein Ende in Sicht.

Also, wenn Sie daran interessiert sind, um dieses Problem zu erkunden ein wenig mehr in die Tiefe, empfehle ich das Lesen sehr Kapitel 20.7 in Sprachverarbeitung von Jurafsky und Martin, von denen einige durch Google Books . Es gibt einen sehr guten Überblick über den State-of-the-Art von Verteilungsverfahren, das Wort Kookkurrenz Statistiken verwenden, um ein Maß für die Wortähnlichkeit zu definieren. Sie sind nicht wahrscheinlich Bibliotheken dieser Umsetzung zu finden, aber.

Sie möchten in die WordNet Projekt an der Princeton University. Ein möglicher Ansatz dazu wäre, zuerst jede Phrase durch eine Stoppwort-Liste zu laufen (entfernen „common“ Worte wie „a“, „auf“, „die“, etc.) Dann gilt für jedes der verbleibenden Worte jede Phrase, könnte man die semantische „Ähnlichkeit“ zwischen jedem der Worte in dem anderen Satz berechnet eine Abstandsmessung basierend auf WordNet verwenden. Der Abstand Maßnahme könnte sein, so etwas wie: die Anzahl der Bögen Sie haben in WordNet durchlaufen von word1 zu word2 zu bekommen.

Leider ist dies ziemlich hohe Niveau. Ich habe natürlich nie versucht. Nur ein kurzer Gedanke.

ich in Latent Semantic Indexing für diese aussehen würde. Ich glaube, dass Sie etwas ähnlich einem Vektorraum Suchindex aber mit semantisch verwandte Begriffe sind näher zusammen das heißt mit einem kleineren Winkel zwischen ihnen zu schaffen. Wenn ich mehr lernen werde ich hier posten.

Für alle, nur bei der kommenden, ich würde vorschlagen, einen Blick auf SEMILAR nehmen - http://www.semanticsimilarity.org / . Sie setzen eine Menge der modernen Forschungsmethoden zur Berechnung der Wort- und Satz Ähnlichkeit. Es ist in Java geschrieben.

  

SEMILAR API kommt mit verschiedenen Ähnlichkeitsverfahren basierend auf Wordnet, Latent Semantic Analysis (LSA), Latent Dirichlet Allocation (LDA), bleu, Meteor, Pointwise Mutual Information (PMI), Abhängigkeit basierten Methoden, optimierte Methoden basierend auf Quadratic Zuordnung, etc. und die Ähnlichkeit Methoden in verschiedenen Körnungen arbeiten - Wort zu Wort, Satz Satz, oder größere Texte.

leider noch 6 Jahre alte Frage zu graben, aber wie ich gerade über dieses Thema heute kam, werde ich in einer Antwort falls jemand werfen sonst sucht nach etwas ähnliches.

cortical.io ein Verfahren zur Berechnung der semantischen Ähnlichkeit zweier Ausdrücke entwickelt hat, und sie haben eine Demo davon auf ihrer Website auf. Sie bieten eine rel="nofollow">, so können Sie es in Ihrer eigenen Anwendung verwenden, ohne mit dem Algorithmus selbst zu implementieren.

Ich würde einen Blick auf statistischen Methoden, die die Wahrscheinlichkeit eines jeden Wortes zu berücksichtigen, innerhalb eines Satzes erscheinen. Dies ermöglicht es Ihnen weniger wichtig, um beliebte Worte zu geben, wie ‚und‘, ‚oder‘, ‚die‘ und mehr Wert auf Worte geben, die weniger erscheinen regurarly, und dass daher ein besseren Unterscheidungsfaktor. Zum Beispiel, wenn Sie zwei Sätze:

1) der Smith-Waterman Algorithmus gibt Ihnen einen Ähnlichkeitsmaß zwischen zwei Strings. 2) Wir haben den Smith-Waterman Algorithmus überprüft und wir fanden es gut genug für unser Projekt sein.

Die Tatsache, dass die beiden Sätze, die Worte „smith-Waterman“ und die Worte „Algorithmen“ teilen (die als ‚und‘ nicht so weit verbreitet sind, ‚oder‘, etc.), ermöglicht es Ihnen, dass die beiden sagen Sätze in der Tat über das gleiche Thema sprechen könnten.

Zusammenfassend würde ich vorschlagen, dass Sie einen Blick auf:  1) String Ähnlichkeitsmaße;  2) Die statistischen Methoden;

Hope, das hilft.

Versuchen Sie SimService , die zur Berechnung von Top-n ähnliche Wörter und Phrasen Ähnlichkeit einen Dienst zur Verfügung stellt.

Dies erfordert, dass Ihr Algorithmus tatsächlich weiß, was Sie reden. Es kann nur durch Worte zu vergleichen und auf der Suche nach Synonymen etc., aber jede Art von genauem Ergebnis würde erfordert eine Form von Intelligenz in einiger rudimentären Form durchgeführt werden.

Hier finden Sie aktuelle http://mkusner.github.io/publications/WMD.pdf Dieser Beitrag beschreibt einen Algorithmus Word-Mover Entfernung genannt, die semantische Ähnlichkeit aufzudecken versucht. Es stützt sich auf die Ähnlichkeitswerte, wie durch word2vec diktiert. Die Integration dieses mit Googlenews-Vektoren-negative300 Ausbeuten wünschenswerte Ergebnisse.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top