统计英文单词数量及出现次数的Python程序

程序流程

在教会小白实现统计英文单词数量及出现次数的程序前,我们先来了解一下整个程序的流程。下面是一个简单的表格展示了程序的步骤:

步骤 描述
1 读取文本文件
2 清洗文本数据
3 统计单词数量
4 统计每个单词出现的次数
5 输出结果

接下来,我们将逐步介绍每个步骤需要做什么,并给出相应的代码示例。在代码示例中,我们将使用Python来实现。

读取文本文件

首先,我们需要读取包含英文文本的文件。可以使用open()函数来打开文件,并使用read()方法来读取文件内容。这里假设文件名为text.txt

with open('text.txt', 'r') as file:
    text = file.read()

在上面的代码中,with open()语句用于打开文件,并将返回的文件对象赋值给file变量。然后,我们使用read()方法读取文件内容,并将结果存储在text变量中。

清洗文本数据

接下来,我们需要清洗文本数据,以便更好地统计单词数量和出现次数。在清洗过程中,我们需要去除标点符号和多余的空格,并将文本转换为小写字母。可以使用正则表达式和字符串方法来进行清洗。

import re

# 去除标点符号和多余的空格
clean_text = re.sub(r'[^\w\s]', '', text)

# 将文本转换为小写字母
clean_text = clean_text.lower()

在上面的代码中,我们使用re.sub()函数和正则表达式来去除标点符号和多余的空格。[^\w\s]表示匹配除了字母、数字、下划线和空格之外的字符。然后,我们使用字符串的lower()方法将文本转换为小写字母。

统计单词数量

接下来,我们需要统计文本中的单词数量。可以使用split()方法将文本分割成单词,并使用len()函数获取单词列表的长度。

words = clean_text.split()
word_count = len(words)

在上面的代码中,我们使用split()方法将清洗后的文本按空格分割成单词,并将结果存储在words变量中。然后,我们使用len()函数获取单词列表的长度,即单词数量。

统计每个单词出现的次数

最后,我们需要统计每个单词在文本中出现的次数。可以使用字典来存储每个单词及其出现次数。

word_freq = {}

for word in words:
    if word in word_freq:
        word_freq[word] += 1
    else:
        word_freq[word] = 1

在上面的代码中,我们创建了一个空字典word_freq来存储单词的出现次数。然后,我们遍历单词列表words,对于每个单词,如果它已经在字典中,则将其出现次数加1;否则,将其添加到字典中,并设置出现次数为1。

输出结果

最后,我们需要将统计结果输出。可以使用print()函数将结果打印出来。

print("单词数量:", word_count)
print("每个单词出现的次数:")
for word, freq in word_freq.items():
    print(word, ":", freq)

在上面的代码中,我们首先使用print()函数输出单词数量。然后,使用items()方法遍历字典word_freq,并将每个单词及其出现次数打印出来。

类图

下面是使用mermaid语法标识的类图,展示了程序中的主要类和它们之间的关系: