用python生成一个鬼吹灯的词云并去掉停用词
时间: 2023-05-25 15:07:11 浏览: 178
以下是一个示例代码,其中利用jieba库对文本进行分词和去除停用词,利用wordcloud库生成词云图。
```python
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
with open('鬼吹灯.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 分词并去除停用词
words = jieba.cut(text)
stopwords = ['我们', '你们', '他们', '这个', '那个'] # 停用词表
filtered_words = []
for word in words:
if word not in stopwords:
filtered_words.append(word)
# 生成词云图
wordcloud = WordCloud(background_color='white', font_path='msyh.ttc', width=800, height=600).generate(' '.join(filtered_words))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
```
注意,以上代码中的“鬼吹灯.txt”需要替换成对应的文本文件名或路径。此外,为了更好地显示中文字符,需要下载和指定合适的字体文件。
相关问题
用python生成一个词云并去掉常用停用词
要生成词云,需要安装并导入相应的库。常用的词云库包括wordcloud和pyecharts。下面我们以wordcloud为例,介绍生成词云并去掉常用停用词的方法。
1. 安装wordcloud库
可以通过pip命令安装:
```bash
pip install wordcloud
```
2. 导入库
```python
import jieba
from wordcloud import WordCloud, STOPWORDS
```
3. 读取数据并分词
需要读入要生成词云的文本,然后对文本内容进行分词:
```python
text = "这是一个测试文本,用于测试生成词云的效果。"
words = jieba.lcut(text)
```
4. 去掉停用词
停用词是指在文本中频繁出现、但对文本含义贡献很小的词语。我们可以将这些词语从分词结果中去掉,以提高词云的效果。wordcloud库中已经包含了一些常用的停用词,我们可以将其导入并加入到停用词列表中,也可以自定义停用词列表。
```python
stopwords = set(STOPWORDS)
stopwords.add("用于")
stopwords.add("测试")
```
5. 生成词云
将分词结果传递给WordCloud类的generate()方法,即可生成词云。可以指定词云的颜色、形状、字体等参数。
```python
wc = WordCloud(
background_color="white",
max_words=2000,
stopwords=stopwords,
font_path="msyh.ttc",
width=1200,
height=800,
margin=5
)
wc.generate(words)
```
6. 展示词云
可以使用matplotlib库将词云展示出来。
```python
import matplotlib.pyplot as plt
plt.imshow(wc, interpolation="bilinear")
plt.axis("off")
plt.show()
```
用python生成一个庆余年简洁词云并去掉停用词
以下是使用Python生成庆余年简洁词云并去掉停用词的代码示例:
```python
import jieba
from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
from PIL import Image
# 读取文本文件
with open('庆余年.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 分词并去掉停用词
seg_list = jieba.cut(text)
words = [word for word in seg_list if word not in STOPWORDS]
# 合并为字符串
text = ' '.join(words)
# 读取遮罩图片
mask = np.array(Image.open('mask.png'))
# 生成词云
wordcloud = WordCloud(font_path='simhei.ttf', background_color='white', mask=mask).generate(text)
# 显示词云图片
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
```
在代码中,我们使用了jieba库进行分词,并使用了WordCloud库生成词云。通过设置background_color和mask参数,可以让词云的背景为白色并且放置在指定的遮罩图片上。最终生成的词云如下图所示:
![庆余年简洁词云](https://img-blog.csdn.net/20181227220830808?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2d5b2Zm/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80)
阅读全文