用python生成一个鬼吹灯的词云并去掉停用词
时间: 2023-05-25 22:07:11 浏览: 172
以下是一个示例代码,其中利用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怎么对文本生成词云,用停用词
在生成词云时,可以通过设置停用词来过滤掉一些常见但无意义的词语,以提高词云的质量。可以使用Python中的jieba库来进行中文分词,并且可以使用自己的停用词表。下面是一个示例代码:
```python
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import jieba
# 读取文本文件
with open('text.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 加载停用词表
stopwords = set()
with open('stopwords.txt', 'r', encoding='utf-8') as f:
for line in f:
stopwords.add(line.strip())
# 分词
words = jieba.cut(text)
# 过滤停用词
filtered_words = []
for word in words:
if word not in stopwords:
filtered_words.append(word)
# 创建词云对象
wordcloud = WordCloud(collocations=False, font_path='msyh.ttc', width=800, height=600)
# 生成词云
wordcloud.generate(' '.join(filtered_words))
# 显示词云
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
# 保存词云到文件
wordcloud.to_file('wordcloud.png')
```
其中,`stopwords.txt`是停用词表文件,每行一个停用词。代码中使用了`jieba.cut`进行中文分词,并通过循环过滤掉了停用词。最后使用`WordCloud`生成词云,`generate`方法的参数是一个字符串,其中每个词语之间用空格隔开。
使用python生成指定形状的词云
生成词云是一种使用图像呈现文本数据的有趣方法,其中词语的大小代表了它在文本中的重要性。使用 Python 生成词云可以使用 wordcloud 库。
首先,您需要准备一个文本文件,并将其读入程序。接下来,您可以使用 WordCloud 类的 generate() 方法生成词云。此外,您还可以通过设置 generate() 方法的参数来控制词云的外观,例如设置词云的背景颜色、字体、最大词语数量等。
最后,您可以使用 matplotlib 库的 imshow() 方法显示词云,并使用 savefig() 方法将词云保存为图像文件。
要生成指定形状的词云,您可以将图像文件读入程序,并将其作为生成词云的 mask 参数。词云的形状将与图像的形状相同。
下面是一个生成词云的示例代码:
```
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读入文本
text = open('text.txt').read()
# 生成词云
wordcloud = WordCloud().generate(text)
# 显示词云
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
# 保存词云
wordcloud.to_file('wordcloud.png')
```
阅读全文