Talvez eu tenha encontrado a resposta, mas mesmo assim vou continuar com o tópico aberto, para alguém confirmá-la ou dar uma explicação melhor kkk
O not in retorna um bool, ou seja, um verdadeiro ou falso, um 0 ou 1. Então o += vai fazer a soma sempre, quando for verdadeiro, ele está somando 1.
Se eu quiser ver as palavras que faltam, este deveria ser o código:
def avaliador(testes, vocabulario):
numero_palavras = len(testes)
acertou = 0
desconhecida = 0
palavra_desconhecida = []
for correta, errada in testes:
palavra_corrigida = corretor(errada)
if palavra_corrigida == correta:
acertou += 1
else:
desconhecida += (correta not in vocabulario)
palavra_desconhecida.append(correta)
taxa_acerto = round(acertou*100/numero_palavras, 2)
taxa_desconhecida = round(desconhecida*100/numero_palavras, 2)
print(f'Taxa de acerto de {taxa_acerto}% em {numero_palavras} palavras. A taxa de palavras desconhecidas é de {taxa_desconhecida}%.')
print(f'Palavras desconhecidas: {palavra_desconhecida}')
vocabulario = set(lista_normalizada)
avaliador(lista_teste, vocabulario)
Eu tive esse resultado:
Taxa de acerto de 76.88% em 186 palavras. A taxa de palavras desconhecidas é de 6.99%.
Palavras desconhecidas: ['ele', 'nos', 'ter', 'bem', 'será', 'eu', 'já', 'das', 'nossa', 'eu', 'ela', 'utilizar', 'projeto', 'site', 'sem', 'pelo', 'alura', 'dia', 'tudo', 'ela', 'utilizar', 'projeto', 'site', 'sem', 'pelo', 'alura', 'dia', 'tudo', 'empoderamento', 'cavalo', 'canela', 'tênis', 'ansiosa', 'ansiosa', 'ansiosa', 'empoderamento', 'asterisco', 'entretido', 'idiota', 'tomara', 'prevalecer', 'mendigo', 'perturbar']