Compruebe si dos palabras están relacionadas entre sí
Tengo dos listas: una, los intereses del usuario; y segundo, las palabras clave sobre un libro. Quiero recomendar el libro al usuario en función de su lista de intereses. Estoy usando elSequenceMatcher
clase de biblioteca de Pythondifflib
para hacer coincidir palabras similares como "juego", "juegos", "juegos", "jugador", etc.ratio
la función me da un número entre [0,1] que indica cuán similares son las 2 cadenas. Pero me quedé atascado en un ejemplo donde calculé la similitud entre "bucle" y "disparo". Sale a ser0.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
¿Hay alguna otra forma de realizar este tipo de coincidencia en Python?