[Dictado de palabras en inglés] Ayuda para recitar palabras en inglés

citar

Hace algún tiempo en el TOEFL de la Segunda Guerra Mundial, la puntuación no estaba mal con más de 110, así que rompí directamente. Me quedé atónito cuando me mudé al GRE.Bueno, nunca he visto un montón de palabras en las opciones. Así que me levanté y lo memoricé por etapas, pero sufrí por el hecho de que mis manos noquearon la lista de palabras, fue difícil ponerme a prueba, di vueltas y vueltas y no pude dormir durante mucho tiempo. Es raro levantarse temprano hoy, y tengo mucho tiempo, así que toqué una rueda para compartir. La tecnología es limitada y hay muchos defectos, que son simplemente generosos para hacer reír a la gente.

Función

Coloque su lista de vocabulario y el archivo csv en el mismo directorio, la primera columna es inglés y la segunda columna es chino, y el resto son opcionales. El efecto general se ve así. inserte la descripción de la imagen aquí
Cada vez que se muestran las opciones en inglés, la opción se toca con la mano y la corrección se da a tiempo. Si es incorrecta, se le da el significado correcto. Después de todas las selecciones, le dirá cuántos errores cometió y la tasa correcta. Finalmente, se le dará un false_vocab.csv en la misma carpeta, que registra las palabras que eligió mal.

el código

import random

file_path = 'GRE.csv'
false_vocab_path = 'false_vocab.csv'
choose_chinese = True  # 是给英文选中文还是反之

class word:
    def __init__(self, eng, chi):
        self.english = eng
        self.chinese = chi

    def is_right_chinese(self, chinese):
        return chinese == self.chinese


word_list = []
with open(file_path, 'r') as fin:
    for line in fin:
        ls = line.strip().split(',')
        eng = ls[0]
        chi = ls[1]
        crnt_word = word(eng, chi)
        word_list.append(crnt_word)

start = 0
end = 100
word_list = word_list[start : end]
random.shuffle(word_list)
all_chinese = [w.chinese for w in word_list]
all_english = [w.english for w in word_list]



def dictation(show_part, guess_part, choice_num=4): # 默认四个选项
    total_len = len(show_part)
    false = 0
    false_vocab = []
    for idx, (show, real_guess) in enumerate(zip(show_part, guess_part)):
        choices = random.sample(guess_part[:idx] + guess_part[idx+1:], choice_num-1)
        choices.append(real_guess)
        random.shuffle(choices)
        print(idx+1, ':', show)
        for i in range(choice_num):
            print(i,':',choices[i], end='\t')
        print()
        choose = choices[int(input())]
        if choose == real_guess:
            print('T')
        else:
            print('F', '\t', real_guess)
            false_vocab.append((show, real_guess))

    correction = 1.0 - false / total_len
    print('false choices count: ', false)
    print('correction :', correction)
    return false_vocab

if choose_chinese:
    false_vocab = dictation(all_english, all_chinese)
else:
    false_vocab = dictation(all_chinese, all_english)

with open(false_vocab_path, 'w') as fout:
    for (eng, chi) in false_vocab:
        fout.write(str(eng) + ', ' + str(chi) + '\n')
        

ejemplo de palabra

"GRE.xlsx" https://www.aliyundrive.com/s/25rdQkdS2Bu Código de extracción: c8s5
Aliyun no puede compartir csv, es un poco incómodo, use Excel para transferirlo

Supongo que te gusta

Origin blog.csdn.net/Petersburg/article/details/124702764
Recomendado
Clasificación