Fiz algo similar ao Post da Yasmin, combinando os dois corretores, mas só acionando o corretor turbinado se o corretor normal não encontrasse nenhuma palavra no vocabulário. Melhorando a taxa de acerto para 84.41%.
def novissimo_corretor(palavra):
palavras_geradas = gerador_palavras(palavra)
palavras_turbinado = gerador_turbinado(palavras_geradas)
todas_palavras = set(palavras_geradas + palavras_turbinado)
candidatos = [palavra]
soma_probabilidade = 0
for palavra in palavras_geradas:
if palavra in vocabulario:
candidatos.append(palavra)
for palavra in candidatos:
soma_probabilidade +=probabilidade(palavra)
if soma_probabilidade == 0:
for palavra in palavras_turbinado:
if palavra in vocabulario:
candidatos.append(palavra)
palavra_correta = max(candidatos, key = probabilidade)
return palavra_correta