绘制酒店名字的词云图。(提示:先对酒店的名字进行分词,然后再绘制词云图)
时间: 2024-02-28 19:55:09 浏览: 48
好的,我可以为您提供一种Python实现方法,使用`jieba`和`wordcloud`库实现分词和绘制词云图。
1. 安装`jieba`和`wordcloud`库
```
pip install jieba
pip install wordcloud
```
2. 准备数据
假设我们有一个包含酒店名字的`hotel_names.txt`文件,每行一个酒店名字,可以使用以下代码读取文件并将其存储在一个列表中:
```python
with open('hotel_names.txt', 'r', encoding='utf-8') as f:
hotel_names = f.readlines()
```
3. 分词
使用`jieba`库对每个酒店名字进行分词,并将分词结果存储在一个列表中:
```python
import jieba
cut_words = []
for name in hotel_names:
words = jieba.lcut(name)
cut_words.extend(words)
```
4. 绘制词云图
使用`wordcloud`库绘制词云图:
```python
import matplotlib.pyplot as plt
from wordcloud import WordCloud
wordcloud = WordCloud(width=800, height=600, background_color='white', font_path='msyh.ttc').generate(' '.join(cut_words))
plt.imshow(wordcloud)
plt.axis('off')
plt.show()
```
其中,`width`和`height`参数指定词云图的大小,`background_color`参数指定词云图的背景颜色,`font_path`参数指定字体文件的路径。
完整代码如下:
```python
import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud
with open('hotel_names.txt', 'r', encoding='utf-8') as f:
hotel_names = f.readlines()
cut_words = []
for name in hotel_names:
words = jieba.lcut(name)
cut_words.extend(words)
wordcloud = WordCloud(width=800, height=600, background_color='white', font_path='msyh.ttc').generate(' '.join(cut_words))
plt.imshow(wordcloud)
plt.axis('off')
plt.show()
```
运行代码后,就可以得到一个包含所有酒店名字的词云图了。