中考已经成为分流的方式,其中英语应该是最容易拉开差距的科目,而词汇是英语的基础;快速把中考需要的重点词汇识别出来是高效的手段之一,分析考试词汇的频率,实现精准打击,提高效率。巧妇难为无米之炊,首先选择北京市2012年~2022年的历年中考真题作为样本(百度下载word版本),统计所有单词以及出现的频率,作为记忆优先级的依据。
素材收集及整理
文件夹所有文档合并
统计合并后文档的所有单词及词频,按照词频从高到低排序,并导出到EXCEL文件中
清理异常数据
第一步:素材收集及整理。
从百度下载北京市2012年~2022年的历年中考真题,存档在电脑桌面的文件夹English_tests目录下,并把所有文件都调整为docx的格式(如果下载后的文件格式是Microsoft Word97-2003文档的话,打开并另存为Word文档,即文件类型从.doc调整为.docx)。
第二步:文件夹所有文档合并。
把English_tests目录下的所有文档合并为一个Word文档(文件名:merged_tests.docx),并另存在桌面上:
import os #导入文件调用模块 import docx #导入word文件处理模块 from docx import Document def merge_word_files(folder_path, output_file): # 创建一个新的Word文档 merged_document = Document() # 遍历文件夹中的所有文件 for filename in os.listdir(folder_path): if filename.endswith('.docx'): file_path = os.path.join(folder_path, filename) # 打开每个Word文件 doc = docx.Document(file_path) # 将每个段落添加到新的Word文档中 for paragraph in doc.paragraphs: text = paragraph.text merged_document.add_paragraph(text) # 保存合并后的Word文档 merged_document.save(output_file) print(f"已将 {len(os.listdir(folder_path))} 个文件合并为 {output_file}") if __name__ == "__main__": # 输入文件夹路径 folder_path = r'C:\Users\XXXX\Desktop\english_tests' #个人根据自己文件所在目录调整 # 输出文件名 output_file = r'C:\Users\XXXX\Desktop\merged_tests.docx' merge_word_files(folder_path, output_file)
第三步:统计合并后文档的所有单词及词频,按照词频从高到低排序,并导出到EXCEL文件中,另存为words_freq.xlsx文件;
import docx from collections import Counter import re #导入正则表达式模块 import pandas as pd def count_words_in_word_file(file_path): # 打开Word文件 doc = docx.Document(file_path) # 提取所有段落中的文本 paragraphs = [p.text for p in doc.paragraphs] # 将所有段落合并成一个字符串 text = ' '.join(paragraphs) # 使用正则表达式匹配所有英文单词,并把单词都改为小写 words = re.findall(r'\b[a-zA-Z]+\b', text.lower()) # 计算每个单词的出现次数 word_count = Counter(words) return word_count if __name__ == "__main__": file_path = r'C:\Users\XXXX\Desktop\merged_tests.docx' word_count = count_words_in_word_file(file_path) # 将结果转换为DataFrame df = pd.DataFrame.from_dict(word_count, orient='index', columns=['Frequency']) df.index.name = 'Word' # 按出现频率从高到低排序 df = df.sort_values(by='Frequency', ascending=False) # 导出为Excel文件 output_file = r'C:\Users\XXXX\Desktop\words_freq.xlsx' df.to_excel(output_file) print(f"已将结果保存到 {output_file}")
第四步:清理异常数据
由于原始文档中有些异常数据,比如选项ABCD等,进行简单删除调整。
以上是在AI辅助下,通过Python快速实现中考英语单词词频统计的方法,供大家参考。