sprawdź, czy dwa słowa są ze sobą powiązane
Mam dwie listy: jedną, interesy użytkownika; a po drugie słowa kluczowe dotyczące książki. Chcę polecić książkę użytkownikowi na podstawie jego listy zainteresowań. UżywamSequenceMatcher
klasa biblioteki Pythonadifflib
dopasować podobne słowa jak „gra”, „gry”, „gra”, „gracz” itpratio
funkcja daje mi liczbę między [0,1] określającą, jak podobne są 2 ciągi. Ale utknąłem na jednym przykładzie, w którym obliczyłem podobieństwo między „zapętleniem” a „strzelaniem”. To wychodzi0.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
Czy jest jakiś inny sposób na wykonanie tego rodzaju dopasowania w Pythonie?