词云图python完整代码
时间: 2024-04-19 09:22:55 浏览: 91
当使用Python生成词云图时,可以使用第三方库WordCloud来实现。以下是一个简单的示例代码:
```python
# 导入所需的库
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取文本文件
with open('text.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 创建词云对象
wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text)
# 绘制词云图
plt.figure(figsize=(10, 6))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
```
上述代码中,首先导入了WordCloud和matplotlib.pyplot库。然后使用`open()`函数读取文本文件,将其保存到`text`变量中。接下来,创建了一个词云对象`wordcloud`,并指定了词云图的宽度、高度和背景颜色。最后,使用`imshow()`函数绘制词云图,并使用`axis('off')`函数隐藏坐标轴,最后使用`show()`函数显示词云图。
相关问题
无效评论过滤、分词、去除停用词,并生成词云图 Python完整代码
在Python中处理文本数据,如无效评论过滤、分词、去除停用词和生成词云图,通常涉及以下几个步骤。这里是一个简单的示例:
```python
# 首先,需要安装必要的库,比如nltk(自然语言工具包),jieba(分词库),wordcloud(词云库)和pandas等
!pip install nltk jieba wordcloud pandas matplotlib
import jieba # 分词
from collections import Counter # 统计词频
import re # 正则表达式用于无效评论过滤
from nltk.corpus import stopwords # 停用词表
from wordcloud import WordCloud # 词云图
import matplotlib.pyplot as plt # 可视化库
import pandas as pd # 数据处理库
# 1. 加载数据(假设从列表或CSV文件加载)
comments = [...] # 这里可以是评论字符串列表或DataFrame的text列
# 2. 无效评论过滤
def filter_invalid_comments(comments):
pattern = r'[^\u4e00-\u9fa5a-zA-Z0-9\s]' # 去除非汉字、字母和数字的字符
return [re.sub(pattern, '', comment).strip() for comment in comments]
filtered_comments = filter_invalid_comments(comments)
# 3. 分词并移除停用词
stop_words = set(stopwords.words('chinese')) # 使用中文停用词表
def tokenize_and_remove_stop_words(comment):
words = jieba.lcut(comment)
filtered_words = [word for word in words if word not in stop_words]
return ' '.join(filtered_words)
tokenized_comments = [tokenize_and_remove_stop_words(comment) for comment in filtered_comments]
# 4. 统计词频
counter = Counter([word for comment in tokenized_comments for word in comment.split()])
# 5. 生成词云图
wordcloud = WordCloud(width=800, height=600, background_color='white', min_font_size=10).generate_from_frequencies(counter)
plt.figure(figsize=(10, 8))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.title("评论关键词")
plt.show()
词云图python代码
以下是生成词云图的Python代码:
```python
import matplotlib.pyplot as plt
from wordcloud import WordCloud
# 读取文本文件
with open("text.txt", "r", encoding="utf-8") as f:
text = f.read()
# 创建词云对象
wordcloud = WordCloud(width=800, height=400, background_color="white", font_path="msyh.ttc").generate(text)
# 显示词云图
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()
# 保存词云图到文件
wordcloud.to_file("wordcloud.png")
```
其中,`text.txt`是要生成词云图的文本文件,`msyh.ttc`是字体文件,可以根据自己的需要更改。生成的词云图可以通过`imshow()`函数显示出来,也可以通过`to_file()`函数保存到文件中。
阅读全文