Wie Vergleiche ich zwei Satz Saiten für eine ähnlichkeit in python?
Zunächst möchte ich sagen, dass ich mit tweepy. Ich fand einen Weg heraus zu filtern, die dieselbe Zeichenfolge, aber ich habe eine harte Zeit herausfiltern ähnliche Zeichenfolgen.
Ich habe zwei Satz Saiten, die ich brauche, um zu vergleichen (Tweepy keyword ="Donald Trump")
String 1: "Trump Administration Dismisses Surgeon General Vivek Murthy (http)PUGheO7BuT5LUEtHDcgm"
String 2: "Trump Administration Dismisses Surgeon General Vivek Murthy (http)avGqdhRVOO"
Wie Sie sehen können, Sie sind ähnlich, aber nicht identisch. Ich musste einen Weg finden, um die beiden zu vergleichen und erhalten Sie einen number-Wert zu entscheiden, ob die zweite tweet Hinzugefügt werden sollten, die ersten. Ich dachte ich hätte die Lösung, wenn ich SequenceMatcher()
aber es immer ausgedruckt 0.0
. Ich hatte erwartet, dass es größer als 0.5
. Allerdings Sequenz Matcher nur scheint zu funktionieren für ein Wort-strings (korrigiert mich wenn ich falsch Liege).
Jetzt sind Sie wahrscheinlich denken, "nur splice aus der http-Portionen". Das wird nicht funktionieren, weil es nicht berücksichtigt, für Menschen, die tweet-Namen wie @Autos: xyz zyx
und @LKW: xyz zyx
Gibt es eine Möglichkeit, vergleichen Sie die beiden Texte? Es sollte einfach sein, aber für einige Grund die Lösung entzieht sich mir. Ich habe gerade gelernt, python, vor einer Woche. Fühlt sich immer noch komisch durch Einrückungen zu erkennen zwischen dem, was in einer Funktion oder nicht.
InformationsquelleAutor LuxLunae | 2017-04-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
SequenceMatcher().ratio()
vondifflib
, ich.e:Demo
Sie sind sehr willkommen @LuxLunae
InformationsquelleAutor Pedro Lobito
Was Sie suchen, hier ist die edit-Distanz zwischen zwei Zeichenketten. Die edit-Distanz bezeichnet die minimale Anzahl von Ersetzungen, Streichungen und einfügen erforderlich, auf einen string an den anderen. Dies ist in der Regel umgesetzt mit Hilfe der dynamischen Programmierung. Es ist eigentlich ein ziemlich cooles interview-Frage/Projekt zu tun, um zu testen Sie Ihre Programmierkenntnisse.
Hier sind ein paar Implementierungen in python zusammen mit einigen Beschreibung.
Benutzer aryamccarthy schon erwähnt hat die
jellyfish
Bibliothek, die bereits implementiert diese Funktionalität (Levenshtein-Distanz) und hat viel mehr interessante tools, die sich mit passenden strings. Definitiv einen Blick Wert.InformationsquelleAutor PeskyPotato
mit
[.split()]
Funktion brechen Sie die Sätze mit Wörternund
müssen Sie möglicherweise diese respo
gehören diese Bibliothek zu Ihrem Projekt machen, die eine Zeichenfolge Vergleich-und Sie sind gut zu gehen
404
bitte vermeiden Sie.InformationsquelleAutor trevortyrin