用python进行中文词频统计并利用词云图进行数据可视化
时间: 2023-09-08 12:11:00 浏览: 163
好的,以下是一个简单的中文词频统计和词云图的实现示例:
1. 中文词频统计
```python
import jieba
import collections
from collections import Counter
# 读取文本文件
with open('text.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用jieba对文本进行分词
seg_list = jieba.cut(text)
# 去除停用词
stopwords = ['的', '了', '是', '我', '你', '他', '她', '我们', '你们', '他们']
words = [word for word in seg_list if word not in stopwords]
# 统计词频并按照频率从高到低排序
word_counts = Counter(words)
word_counts = sorted(word_counts.items(), key=lambda x: x[1], reverse=True)
# 输出前10个词和频率
for word, count in word_counts[:10]:
print(f'{word}: {count}')
```
2. 利用词云图进行数据可视化
```python
import jieba
import collections
from collections import Counter
import wordcloud
import matplotlib.pyplot as plt
# 读取文本文件
with open('text.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用jieba对文本进行分词
seg_list = jieba.cut(text)
# 去除停用词
stopwords = ['的', '了', '是', '我', '你', '他', '她', '我们', '你们', '他们']
words = [word for word in seg_list if word not in stopwords]
# 统计词频并按照频率从高到低排序
word_counts = Counter(words)
word_counts = sorted(word_counts.items(), key=lambda x: x[1], reverse=True)
# 生成词云图
wc = wordcloud.WordCloud(font_path='msyh.ttc', background_color='white',
max_words=2000, max_font_size=200, width=800, height=600)
wc.generate_from_frequencies(dict(word_counts))
# 显示词云图
plt.imshow(wc)
plt.axis('off')
plt.show()
```
其中,`text.txt`为待统计的文本文件,`msyh.ttc`为中文字体文件,需自行下载。执行以上代码后,会输出前10个词和频率,并在窗口中显示词云图。
阅读全文