Python实现中考英语单词词频统计

中考已经成为分流的方式,其中英语应该是最容易拉开差距的科目,而词汇是英语的基础;快速把中考需要的重点词汇识别出来是高效的手段之一,分析考试词汇的频率,实现精准打击,提高效率。巧妇难为无米之炊,首先选择北京市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快速实现中考英语单词词频统计的方法,供大家参考。

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值