Na aula 04 - Avaliando a qualidade do corretor, minha função 'avaliador' não está retornando o % de acerto. Estou usando o Jupyter:
def cria_dados_teste(nome_arquivo):
lista_palavras_teste = []
f = open(nome_arquivo, "r")
for linha in f:
correta, errada = linha.split()
lista_palavras_teste.append((correta, errada))
f.close()
return lista_palavras_teste
lista_teste = cria_dados_teste("palavras.txt")
lista_teste
Saída conforme a aula:
[('podemos', 'pyodemos'),
('esse', 'esje'),
('já', 'jrá'),
('nosso', 'nossov'),
('são', 'sãêo'),
('dos', 'dosa'),
('muito', 'muifo')
...
]
Segunda função:
def avaliador(testes):
numero_palavras = len(testes)
acertou = 0
for correta, errada in testes:
palavra_corrigida = corretor(errada)
if palavra_corrigida == correta:
print(correta)
acertou += 1
taxa_acerto = round(acertou * 100/numero_palavras,2)
print({taxa_acerto})
avaliador(lista_teste)
Saída:
[('', 'pyodemos'), ('p', 'yodemos'), ('py', 'odemos'), ('pyo', 'demos'), ('pyod', 'emos'), ('pyode', 'mos'), ('pyodem', 'os'), ('pyodemo', 's'), ('pyodemos', '')]
[('', 'esje'), ('e', 'sje'), ('es', 'je'), ('esj', 'e'), ('esje', '')]
[('', 'jrá'), ('j', 'rá'), ('jr', 'á'), ('jrá', '')]
[('', 'nossov'), ('n', 'ossov'), ('no', 'ssov'), ('nos', 'sov'), ('noss', 'ov'), ('nosso', 'v'), ('nossov', '')]
[('', 'sãêo'), ('s', 'ãêo'), ('sã', 'êo'), ('sãê', 'o'), ('sãêo', '')]
[('', 'dosa'), ('d', 'osa'), ('do', 'sa'), ('dos', 'a'), ('dosa', '')]
[('', 'muifo'), ('m', 'uifo'), ('mu', 'ifo'), ('mui', 'fo'), ('muif', 'o'), ('muifo', '')]
[('', 'iômagem'), ('i', 'ômagem'), ('iô', 'magem'), ('iôm', 'agem'), ('iôma', 'gem'), ('iômag', 'em'), ('iômage', 'm'), ('iômagem', '')]
[('', 'ósua'), ('ó', 'sua'), ('ós', 'ua'), ('ósu', 'a'), ('ósua', '')]
[('', 'tambéùm'), ('t', 'ambéùm'), ('ta', 'mbéùm'), ('tam', 'béùm'), ('tamb', 'éùm'), ('també', 'ùm'), ('tambéù', 'm'), ('tambéùm', '')]
Obrigada!