用 Python 统计单词出现的次数

在这篇文章中,我们将学习如何使用 Python 来统计一个文本中每个单词出现的次数。这个过程分为几个步骤,我们将逐步实现,并在每一步中详细解释所使用的代码。

整体流程

以下是实现这个功能的流程图:

步骤 描述
1 读取文本文件或输入文本
2 清洗和分割文本成单词
3 统计每个单词的出现次数
4 打印结果和绘制饼状图

步骤详细说明

步骤 1: 读取文本文件或输入文本

我们可以从文件中读取文本,或者直接在代码中输入字符串。这里,我将演示如何从字符串中读取文本。

# Step 1: 输入文本
text = """Python is an amazing programming language. 
           Python is used for web development, data analysis, 
           artificial intelligence, scientific computing, and more."""

此代码段定义了一个字符串,里面包含了需要统计的文本。

步骤 2: 清洗和分割文本成单词

我们需要将文本转化为单词,并去除标点符号。可以使用 Python 的 re(正则表达式)模块来完成这一操作。

import re

# Step 2: 清洗和分割文本
words = re.findall(r'\b\w+\b', text.lower())
# 使用正则表达式匹配所有单词,并转为小写。

此段代码中,re.findall 方法根据正则表达式找到所有单词,并转换为小写形式,使得统计过程不区分大小写。

步骤 3: 统计每个单词的出现次数

接下来,我们需要统计每个单词的出现次数。可以使用字典来存储单词和它们的频率。

# Step 3: 统计单词出现次数
word_count = {}

for word in words:
    if word in word_count:
        word_count[word] += 1  # 如果字典中有这个单词,计数加1
    else:
        word_count[word] = 1  # 如果字典中没有这个单词,添加并初始化

# 打印结果
print(word_count)

在这段代码中,我们初始化了一个空字典 word_count,遍历所有单词并更新字典。

步骤 4: 打印结果和绘制饼状图

我们可以使用 matplotlib 库将单词出现次数以饼状图的形式展示。

import matplotlib.pyplot as plt

# Step 4: 绘制饼状图
labels = word_count.keys()
sizes = word_count.values()

# 创建饼状图
plt.figure(figsize=(10, 6))
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140)
plt.title('Word Frequency Pie Chart')
plt.axis('equal')  # Equal aspect ratio ensures that pie is drawn as a circle.
plt.show()

此段代码中,我们使用 matplotlib 库绘制饼状图,展示每个单词的出现比例。

pie
    title Word Count Distribution
    "python": 2
    "is": 2
    "an": 1
    "amazing": 1
    "programming": 1
    "language": 1
    "used": 1
    "for": 1
    "web": 1
    "development": 1
    "data": 1
    "analysis": 1
    "artificial": 1
    "intelligence": 1
    "scientific": 1
    "computing": 1
    "and": 1
    "more": 1

mermaid 代码中,我们用饼状图的形式展示了每个单词的出现次数。

结尾

通过以上步骤,我们成功地使用 Python 统计了文本中每个单词的出现次数,并展示了结果。希望今天的学习能让你对 Python 和字符串处理有一个更深的理解。进一步的,你可以尝试扩展功能,如从文件读取、处理更复杂的文本等。祝你在开发的道路上越走越远!