跳到主要内容

编写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()这一行。