2024春真题 编程题二:词频统计
时间: 2025-01-02 12:29:55 浏览: 35
关于2024年春季考试编程题二:词频统计
针对2024年春季考试中的编程题目,特别是关于词频统计的问题,可以设计如下样例问题来帮助理解和准备。虽然具体的考题尚未公布,但通过类似的练习可以帮助考生掌握所需技能。
示例问题描述
编写一个程序,读取一段文本并计算每个单词出现的频率。输出应按照单词出现次数降序排列。如果两个单词具有相同的频率,则按字母顺序升序排列这些单词。
输入格式
输入是一段由多个句子组成的字符串。每个句子可能包含标点符号和大小写字母。
输出格式
输出是一个字典列表,其中键是单词,值是该单词在文本中出现的次数。列表应该根据上述规则排序。
Python 实现示例
from collections import Counter
import re
def word_frequency(text):
# 将所有字符转换为小写,并移除标点符号
cleaned_text = re.sub(r'[^\w\s]', '', text.lower())
# 使用正则表达式分割单词
words = cleaned_text.split()
# 统计各单词的数量
freq_dict = dict(Counter(words))
# 对结果进行排序:先按频率降序,再按字母顺序升序
sorted_freq = sorted(freq_dict.items(), key=lambda item: (-item[1], item[0]))
return {word: count for word, count in sorted_freq}
# 测试函数
test_input = "This is a test. This test is only a test."
print(word_frequency(test_input)) # 应返回 {'this': 2, 'is': 2, 'a': 2, 'test': 2, 'only': 1}
此实现利用Python标准库collections.Counter
来进行高效的词频统计[^1]。此外,还使用了正则表达式的功能去除不必要的标点符号以及处理大小写的差异[^2]。
阅读全文
相关推荐
















