Überprüfen Sie, ob zwei Wörter miteinander verwandt sind
Ich habe zwei Listen: eine, die Interessen des Benutzers; und zweitens die Stichwörter zu einem Buch. Ich möchte dem Benutzer das Buch auf der Grundlage seiner angegebenen Interessenliste empfehlen. Ich benutze dieSequenceMatcher
Klasse der Python-Bibliothekdifflib
ähnliche Wörter wie "game", "games", "gaming", "gamer", etc. zu findenratio
Funktion gibt mir eine Zahl zwischen [0,1], die angibt, wie ähnlich die beiden Zeichenfolgen sind. Aber ich bin an einem Beispiel hängen geblieben, bei dem ich die Ähnlichkeit zwischen "Looping" und "Shooting" berechnet habe. Es kommt heraus, um zu sein0.6667
.
for interest in self.interests:
for keyword in keywords:
s = SequenceMatcher(None,interest,keyword)
match_freq = s.ratio()
if match_freq >= self.limit:
#print interest, keyword, match_freq
final_score += 1
break
Gibt es eine andere Möglichkeit, einen solchen Abgleich in Python durchzuführen?