对中英文混合文本进行词云分析 Python
时间: 2023-08-09 11:09:40 浏览: 184
以下是对中英文混合文本进行词云分析的 Python 代码:
```
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
# 读取文本文件
with open('text.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 分词
text_cn = jieba.cut(text) # 对中文进行分词
text_en = text.split() # 对英文进行分词
# 统计词频
word_freq = {}
for word in text_cn:
if word not in word_freq:
word_freq[word] = 1
else:
word_freq[word] += 1
for word in text_en:
if word not in word_freq:
word_freq[word] = 1
else:
word_freq[word] += 1
# 生成词云图
mask = np.array(Image.open('mask.png')) # 读取遮罩图片
wc = WordCloud(background_color='white', mask=mask, font_path='msyh.ttc')
wc.generate_from_frequencies(word_freq)
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.show()
```
与上一个例子相比,这里增加了一个遮罩图片,用于限制词云图的形状。代码中使用 `PIL` 库读取遮罩图片,并使用 `np.array()` 方法将其转换为数组格式。在生成词云图时,我们将 `mask` 参数设置为遮罩图片,将 `font_path` 参数设置为中文字体文件路径,用于解决中文显示问题。最后使用 `imshow()` 方法将词云图绘制出来。需要注意的是,可以根据实际需要对遮罩图片进行调整,以达到更好的效果。
阅读全文