以下是详细的Python统计词频并绘制图片的完整攻略,包含两个示例。
准备工作
在开始之前,我们需要准备一些工具和数据。首先,我们需要安装和一些常用的Python库,例如numpy、matplotlib、wordcloud等。可以使用以下命令在Python中安装这些库:
pip install numpy matplotlib wordcloud```
其次,我们需要准备一些文本数据。可以使用何文本文件,例如一篇文章、一本书、一份报告等。在本文中,我们将使用一份英文文本数据作为示例。
## 统计词频
在进行词频计之前,我们需要先读取文本数据。以下是一个使用Python读取文本数据的示例:
```python
with open('data.txt', 'r') as f:
text = f.read()
在上面的代码中,我们使用Python的open函数打开一个文本文件,并使用read函数读取文件内容。接着,我们可以使用Python的字符串函数和正则表达式对文本数据进行处理,例如去除标点符号、转换小字母等。以下是一个使用Python对文本数据进行处理的示例:
import re
# 去除标点符号
text = re.sub(r'[^\w\s]', '', text)
# 转换为小写字母
text = text.lower()
在上面的代码中,我们使用Python的re库和正则表达式去除文本数据中的标点符号。接着,我们使用Python的lower函数将文本数据转换为小写字母。
接来,我们可以使用Python的collections库统计词频。是一个使用Python统计词频的示例:
from collections import Counter
# 分词
words = text.split()
# 统计词频
word_counts = Counter(words)
# 输出前10个词频最高单词
print(word_counts.most_common(10))
在上面的代码中,我们首先使用Python的split函数将文本数据分词。接着,我们使用Python的Counter函数统计词频,并使用most_common函数输出词频最高的前10个单词。
绘制词云
在进行词云绘制之前,我们需要先安装wordcloud库。可以使用以下命令在Python中安装wordcloud库:
pip install wordcloud
以下是一个使用Python绘制词云的例:
from wordcloud import WordCloud
# 生成词云
wordcloud = WordCloud().generate(text)
# 显示词云
import matplotlib.pyplot as plt
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
在上面的代码中,我们首先使用Python的WordCloud函数生成词云。接着,我们使用Python的matplotlib库显示词云。
示例1:统计中文文本词频并绘制词云
以下是一个使用Python统计中文文本词频并绘制词云的示例:
import jieba
from collections import Counter
from wordcloud import WordCloud
# 读取文本数据
with open('data.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 分词
words = jieba.cut(text)
#计词频
word_counts = Counter(words)
# 生成词云
wordcloud = WordCloud(font_path='msyh.ttc').generate_from_frequencies(word_counts)
# 显示词云
import matplotlib.pyplot as plt
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
在上面的代码中,我们首先使用Python的jieba库对中文文本进行分词。接着,我们使用Python的Counter函数统计词频,并使用Python的WordCloud函数生成词云。最后,我们使用Python的matplotlib库显示词云。
示例2:统计多个文本数据词频并绘制词云
以下是一个使用Python统计多个文本数据词频并绘制词云的示例:
import os
import jieba
from collections import Counterfrom wordcloud import WordCloud
# 读取多个文本数据
text = ''
for filename in os.listdir('data'):
with open(os.path.join('data', filename), 'r', encoding='utf-8') as f:
text += f.read()
# 分词
words = jieba.cut(text)
# 统计词频
word_counts = Counter(words)
# 生成词云
wordcloud = WordCloud(font_path='msyh.ttc').generate_from_frequencies(word_counts)
# 显示词云
import matplotlib.pyplot as plt
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
在上面的代码中,我们首先使用Python的os库和循环语句读取多个文本数据。接着,我们使用Python的jieba库对文本数据进行分词,并使用Python的Counter函数统计词频。最后,我们使用Python的WordCloud函数生成词云,并使用Python的matplotlib库显示词云。
总结
本文详细讲解了如何使用Python统计词频并绘制图片。通过本文的学习,您可以了解如何使用Python读取文本、处理文本数据、统计词频和绘制云。同时,本文提供了两个示例,分别是使用Python统计中文文本词频并绘制词云和使用Python统计个文本数据词频并绘制词云。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python统计词频并绘制图片(附完整代码) - Python技术站