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?

Respuestas a la pregunta(3)

Su respuesta a la pregunta