编写Python程序,计算文件中单词的出现频率?
参考答案:
以下是一个简单的Python程序,用于计算文件中单词的出现频率。这个程序将打开一个文本文件,读取其内容,然后计算每个单词出现的次数。
import re
from collections import Counter
def count_words_in_file(filename):
# 读取文件内容
with open(filename, 'r', encoding='utf-8') as file:
text = file.read()
# 使用正则表达式将文本分割成单词
words = re.findall(r'\b\w+\b', text.lower())
# 使用Counter计算单词频率
word_counts = Counter(words)
return word_counts
# 使用函数
filename = 'your_file.txt' # 替换为你的文件名
word_frequency = count_words_in_file(filename)
# 打印结果
for word, count in word_frequency.items():
print(f'{word}: {count}')
这个程序首先使用open
函数打开并读取文件内容。然后,它使用正则表达式\b\w+\b
来分割文本成单词。这个正则表达式匹配任何字母数字字符(\w
)的一个或多个连续出现,这些字符由单词边界(\b
)分隔。
然后,程序使用Counter
类来计算每个单词出现的次数。Counter
是一个字典子类,用于计数可哈希对象。
最后,程序遍历Counter
对象,并打印每个单词及其出现次数。
注意:这个程序假定文件是UTF-8编码的。如果你的文件使用不同的编码,你需要更改open
函数的encoding
参数。
此外,这个程序将所有单词转换为小写以进行计数,因此它不区分大写和小写字母。如果你希望区分大小写,可以删除text.lower()
这一行。