NLP / Machine Learning Textvergleich

8

Ich bin gerade dabei, ein Programm zu entwickeln, das einen kleinen Text (etwa 250 Zeichen) mit einer Sammlung ähnlicher Texte (etwa 1000-2000 Texte) vergleichen kann.

Der Zweck besteht darin, auszuwerten, ob Text A einem oder mehreren Texten in der Sammlung ähnlich ist, und wenn dies der Fall ist, muss der Text in der Sammlung nach ID abrufbar sein. Jeder Text erhält eine eindeutige ID.

Es gibt zwei Möglichkeiten, wie die Ausgabe aussehen soll:

Option 1: Text A entsprach Text B mit 90% Ähnlichkeit, Text C mit 70% Ähnlichkeit und so weiter.

Option 2: Text Ein übereinstimmender Text D mit höchster Ähnlichkeit

Ich habe maschinelles Lernen in der Schule gelesen, bin mir aber nicht sicher, welcher Algorithmus am besten zu diesem Problem passt oder ob ich NLP in Betracht ziehen sollte (nicht vertraut mit dem Thema).

Hat jemand einen Vorschlag, welcher Algorithmus zu verwenden ist oder wo ich die notwendige Literatur finden kann, um mein Problem zu lösen?

Danke für jeden Beitrag!

    
RobertH 26.08.2013, 08:28
quelle

2 Antworten

4

Ich habe einen großartigen Artikel zur semantischen Ähnlichkeitsmessung gefunden, der perfekt für mein Problem ist.

WordNet-basierte semantische Ähnlichkeitsmessung

Danke für alle Eingaben!

    
RobertH 26.08.2013, 12:32
quelle
19

Es scheint kein maschinelles Lernproblem zu sein, Sie suchen einfach nach einem Textähnlichkeitsmaß . Sobald Sie eine ausgewählt haben, sortieren Sie Ihre Daten einfach nach den erreichten "Scores".

Abhängig von Ihren Texten können Sie eine der folgenden Metriken ( Liste aus dem Wiki ) verwenden oder Ihre eigenen definieren :

  • Hamming Entfernung
  • Levenshtein Entfernung und Damerau-Levenshtein Entfernung
  • Needleman-Wunsch Abstand oder Verkäufer-Algorithmus
  • Smith-Waterman-Abstand
  • Gotoh Entfernung oder Smith-Waterman-Gotoh Entfernung
  • Monge Elkan Entfernung
  • Blockdistanz oder L1-Entfernung oder Stadtblockdistanz
  • Jaro-Winkler-Entfernung
  • Soundex Abstandsmetrik
  • Einfacher Matching-Koeffizient (SMC)
  • Würfelkoeffizient
  • Jaccard-Ähnlichkeit oder Jaccard-Koeffizient oder Tanimoto-Koeffizient
  • Tversky-Index
  • Überlappungskoeffizient
  • Euklidischer Abstand oder L2 Abstand
  • Kosinusähnlichkeit
  • Variationsstrecke
  • Hellinger Entfernung oder Bhattacharyya Entfernung
  • Informationsradius (Jensen-Shannon-Divergenz)
  • Skew Divergenz
  • Verwirrungswahrscheinlichkeit
  • Tau-Metrik, eine Annäherung an die Kullback-Leibler-Divergenz
  • Fellegi und Sunters metrisch (SFS)
  • Maximale Übereinstimmung
  • Lee Entfernung

Einige der obigen (wie z. B. Kosinusähnlichkeit) erfordern die Umwandlung Ihrer Daten in ein vektorisiertes Format. Dieser Prozess kann auch auf vielerlei Weise erreicht werden, mit dem einfachsten möglichen Wort / Tfidf-Verfahren.

Die Liste selbst ist weit davon entfernt, vollständig zu sein, ist nur ein Entwurf solcher Methoden. Insbesondere gibt es viele String-Kernel, die auch zur Messung der Textähnlichkeit geeignet sind. Insbesondere Wordnet Kernel kann semantische Ähnlichkeit auf der Grundlage einer der vollständigsten semantischen Datenbanken der englischen Sprache messen.

    
lejlot 26.08.2013 08:45
quelle

Tags und Links