Python은 받아쓰기 책을 빈 문장으로 만듭니다.

Python은 받아쓰기 책을 빈 문장으로 만듭니다.

머리말

기억을 비우는 것은 받아쓰기와 암송의 일반적인 방법으로 지식 검색 및 추출 능력을 훈련하는 데 사용할 수 있으며, 암기해야 하는 내용을 완전히 숙달했는지 테스트할 수 있어 책에 대한 의존도를 줄일 수 있습니다. 고대시의 이전 문장과 이후 문장을 기억하는 데 사용할 수 있을 뿐만 아니라 문맥적 연관성을 시도하기 위해 문장의 핵심 단어를 "검게 칠"하는 데 사용할 수도 있습니다.

그러나 이런 빈칸 채우기 문제의 생산은 더 번거로운데, 예를 들어 고대 시에서 앞 문장과 뒤 문장을 암기하는 것과 같이 한 문장에 대해 여러 가지 다른 속을 비우기를 구현하고 싶다면, 앞 문장과 다음 문장을 연결하고, 또 다음 문장을 바탕으로 앞 문장을 살펴보고 싶은데, 잘 기억나지 않으면 두 번 만들어야 한다. 더 많은 일시 중지와 더 긴 텍스트에 대해 생각조차 하지 마십시오.

나이가 들면 항상 지식을 기억할 수 없다고 느끼고 주류 카드 스타일 메모리 소프트웨어는 사용하기 쉽지 않기 때문에 받아쓰기 책을 만드는 데 도움이 되는 코드를 사용하려고 생각했습니다. 형식이 지정된 원본 텍스트를 제공하고 비우기 규칙을 사용자 정의하기만 하면 컴퓨터가 나를 위한 시험지, 자가 검사, 자가 검사, 자가 검사를 자동으로 생성합니다.

자료의 원본 텍스트를 암송합니다.

다음은 고대 시의 공백을 채우는 시연입니다.
원문은 마크다운으로 작성되었으며 형식은 다음과 같습니다.
왼쪽의 편집 보기, 오른쪽의 읽기 보기
자료의 원본 텍스트를 암송합니다.

생성된 받아쓰기

txt 파일로 출력,
임의로 비우고
![여기에 그림 설명 삽입](https://img-blog.csdnimg.cn/2a2c0edc8986428fbe6441a9e01d6550.pn
다시 생성, 비우기가 다릅니다.
여기에 이미지 설명 삽입

코드

# version 3.9.5
import os
import math
import random


filePath = "corpus.txt"
with open(filePath,"r",encoding="UTF-8") as f:
    lines = f.readlines()
    print("材料读取成功,分析中……")

blank = "_________"
fileName = os.path.splitext(filePath)[0]
dictation_output = "基于"+fileName+"材料制作的默写本:"+"\n\n"

for line in lines:
    line = line.strip("\n")
    # 筛选带序号的行,提取句子并挖空
    if line[1] ==".":
        # 获得序号
        index = line[0]+". " 
        # 获取分句列表,转化成索引
        sentence = line.split("**")[1]
        sub_lists = sentence.split(",") 
        num_list = [i for i,t in enumerate(sub_lists)]
        # 抽取半数句子挖空(向上舍入),随机无放回取样
        num_of_choices = math.ceil(len(num_list)/2)
        blank_list = random.sample(num_list,k=num_of_choices) 
        # 把列表中抽到的部分更换为空格,合并句子并新增到末尾
        new_list = [blank if i in blank_list else sub_lists[i] for i in range(len(sub_lists))]
        new_sentence = ",".join(new_list)
        if new_sentence[-1] != "。": # 保证句子末尾有句号
            new_sentence+="。"
        dictation_output += index + new_sentence + "\n"
    else:
        pass

with open("dictation_file.txt","w") as f:
    f.write(dictation_output)
    print("默写本制作完成!")

긴 텍스트를 비우고 샘플링 간격을 설정하고 연속적으로 함께 파지 않는 것도 가능합니다.

Acho que você gosta

Origin blog.csdn.net/sinat_34326100/article/details/131746415
Recomendado
Clasificación