用python jieba对文章进行词频统计并绘制词云图
时间: 2023-07-04 07:07:58 浏览: 167
好的,以下是用 Python 的 jieba 和 wordcloud 库进行词频统计和绘制词云图的代码示例:
```python
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取文本文件
with open('article.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用 jieba 分词
words = jieba.lcut(text)
# 统计词频
freq = {}
for word in words:
if word in freq:
freq[word] += 1
else:
freq[word] = 1
# 生成词云图
wc = WordCloud(background_color='white', width=800, height=600, margin=2)
wc.generate_from_frequencies(freq)
plt.imshow(wc)
plt.axis('off')
plt.show()
```
其中,`article.txt` 是要处理的文本文件,需要放在与代码同一目录下。这段代码会先使用 jieba 分词,然后统计每个词出现的次数。最后,使用 wordcloud 库生成词云图并显示出来。你可以根据需要调整词云图的参数,如背景颜色、大小等,以及 jieba 分词的方式和停用词等。
相关问题
用python jieba对文章中名词 动词 形容词 进行词频统计并绘制词云图
好的,首先需要安装jieba和wordcloud模块,可以通过以下命令安装:
```
pip install jieba
pip install wordcloud
```
接下来,我们假设文章内容已经存储在一个txt文件中,代码如下:
```python
import jieba
from collections import Counter
from wordcloud import WordCloud
import matplotlib.pyplot as plt
with open('article.txt', 'r', encoding='utf-8') as f:
content = f.read()
# 使用jieba进行分词
words = jieba.cut(content)
# 定义需要统计的词性
word_type = ['n', 'v', 'a']
# 过滤出指定词性的词语
filtered_words = [word for word in words if len(word) >= 2 and word.strip() and word.startswith(tuple(word_type))]
# 统计词频
word_count = Counter(filtered_words)
# 绘制词云图
wc = WordCloud(font_path='simhei.ttf', background_color='white', max_words=200, width=1200, height=800)
wc.generate_from_frequencies(word_count)
plt.imshow(wc)
plt.axis('off')
plt.show()
```
在上述代码中,我们使用jieba进行中文分词,并通过传入一个包含需要统计的词性的列表来过滤出名词、动词和形容词。然后使用Counter类来统计每个词语的出现频率。最后通过wordcloud模块来绘制词云图。
需要注意的是,我们在绘制词云图时,需要指定字体文件的路径,否则可能会出现乱码。在本例中,我们使用了宋体字体的一个变体simhei.ttf。
运行完上述代码后,就可以得到一个词云图,它会显示文章中出现频率较高的词语,可以帮助我们更好地了解文章的主题和关键词。
python对字符串进行词频统计并绘制词云图
要进行字符串词频统计并绘制词云图,可以使用Python中的`wordcloud`和`jieba`库。以下是一个简单的示例代码:
```python
import jieba
from collections import Counter
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 输入文本
text = "这是一段需要进行词频统计并绘制词云图的测试文本,希望能够得到好的结果。"
# 分词
words = jieba.cut(text)
# 统计词频
word_counts = Counter(words)
# 生成词云图
wc = WordCloud(background_color="white", max_words=2000, width=1024, height=768, font_path='msyh.ttc')
wc.generate_from_frequencies(word_counts)
# 显示词云图
plt.imshow(wc, interpolation='bilinear')
plt.axis("off")
plt.show()
```
运行以上代码,就可以得到一个简单的词云图了。你可以根据自己的需求,对代码进行修改和优化。
阅读全文