Software zum Durchführen einer Rückwärtssuche - Abgleichen eines Textkörpers mit einem bekannten Ausdruck

Ich habe eine große Liste bekannter Phrasen. Bei einem Textkörper (z. B. einen Tweet) möchte ich sehen, ob er einen bekannten Satz aus einer großen Liste enthält. Ich bin mir sicher, dass so etwas existieren muss (vielleicht von den neuen kognitiven Anzügen von IBM Watson/Microsoft Cortana oder vielleicht so etwas wie Apache Lucene). Leider kenne ich den Namen für dieses Problem nicht, um ein Produkt zu identifizieren, das es löst :)

Antworten (2)

Was Sie versuchen, ist ein Teil der Verarbeitung natürlicher Sprache, und eines der wichtigsten Werkzeuge dafür ist das Python Natural Language Toolkit ( nltk ).

Ein guter Ausgangspunkt kann in einem Artikel & passendem Jupyter- Notebook fuzzy-sentence-matching-python gefunden werden, in dem Tokenisierung, Groß-/Kleinschreibung, Stopwording, Stemming, Lemmatisierung und Hinweise auf partielle Übereinstimmung erörtert werden.

Der Prozess, dem Sie folgen müssen, ist:

  1. Nehmen Sie Ihre Einträge in die Liste und erzeugen Sie für jeden Eintrag einen tokenisierten, fixierten Fall, Stoppwort, Stamm, lemmatisierten Fingerabdruck von diesem Eintrag.
  2. Nehmen Sie Ihren Tweet oder was auch immer und tun Sie dasselbe.
  3. Durchsuchen Sie Ihre Liste der Fingerabdrücke, die jeweils nach der Anzahl der Übereinstimmungen mit dem Tweet-Fingerabdruck bewertet werden.
  4. Jede Punktzahl über einem bestimmten Schwellenwert kann dann weiter analysiert werden, um möglicherweise zu sehen, ob das Kürzen des Tweets zu einer Übereinstimmung führt, die annähernd genug ist, um als Zitat betrachtet zu werden.

Ein Buch über die Verwendung von nltk ist online verfügbar, aber es ist nur eines von Tausenden von Büchern und Artikeln zu diesem Thema.

Dies ist ein gewöhnliches Suchproblem. Sie müssen nur zuerst alle Ihre bekannten Phrasen zu einem einzigen Suchbegriff kombinieren. Bei regulären Ausdrücken lässt sich dies am einfachsten mit dem Alternationsoperator bewerkstelligen |. Verwenden Sie für Suchmaschinen mit booleschen Operatoren OR.

Um ein bestimmtes Programm zu empfehlen (da es sich hierbei um Softwareempfehlungen handelt), versuchen Sie grep. Sie können einen regulären Ausdruck programmgesteuert erstellen und ihn dann grepmit übergeben xargs.