verifique se duas palavras estão relacionadas entre si

Eu tenho duas listas: uma, os interesses do usuário; e segundo, as palavras-chave sobre um livro. Eu quero recomendar o livro para o usuário com base em sua lista de interesses. Estou usando oSequenceMatcher classe de biblioteca Pythondifflib para combinar palavras semelhantes como "jogo", "jogos", "jogos", "jogador", etc.ratio function me dá um número entre [0,1] informando como são similares as duas strings. Mas fiquei preso a um exemplo em que calculei a semelhança entre "looping" e "shooting". Sai para 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 

Existe alguma outra maneira de realizar esse tipo de correspondência no Python?