统计英文单词数量及出现次数的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语法标识的类图,展示了程序中的主要类和它们之间的关系: