python对中文txt进行词云分析生成的图片没有字而是一个个方框请问这是怎么回事?import jieba import wordcloud with open('a.txt','r',encoding="utf-8") as f: temp = f.read() words = jieba.lcut(temp) words = " ".join(words) pl = wordcloud.WordCloud( width = 1000,height = 1000, background_color = "white", #font_path = r"C:\\Windows\\Fonts\\TEMPSITC.TTF" ) pl.generate(temp) pl.to_file("C:\\Users\\86150\\Desktop\\1.png")并检查一下代码的错误
时间: 2023-07-07 20:40:39 浏览: 53
这可能是因为你的字体库没有支持中文字符。你可以尝试将`font_path`参数设置为一个支持中文的字体文件路径。例如:
```
font_path = r"C:\Windows\Fonts\SimSun.ttf"
```
另外,你需要将`pl.generate(temp)`中的`temp`改为`words`,以使用中文分词后的单词列表生成词云。修改后的代码如下:
```
import jieba
import wordcloud
with open('a.txt','r',encoding="utf-8") as f:
temp = f.read()
words = jieba.lcut(temp)
words = " ".join(words)
pl = wordcloud.WordCloud(
width = 1000,height = 1000,
background_color = "white",
font_path = r"C:\Windows\Fonts\SimSun.ttf"
)
pl.generate(words)
pl.to_file("C:\\Users\\86150\\Desktop\\1.png")
```
注意,你需要将`font_path`参数中的路径改为你自己的中文字体文件路径。
相关问题
用python语言利用jieba库分析文本,并利用wordcloud库生成一个txt文件的词云
好的,非常感谢您的提问!根据您的要求,您可以按照以下步骤进行操作:
1. 安装jieba库和wordcloud库。可以使用pip命令进行安装,如下:
```
pip install jieba
pip install wordcloud
```
2. 导入库:
```
import jieba
from wordcloud import WordCloud
```
3. 读取文本:
```
with open('filename.txt', 'r', encoding='utf-8') as f:
text = f.read()
```
4. 使用jieba库进行分词:
```
# 结巴分词
seg_list = jieba.cut(text, cut_all=False)
```
5. 将分词结果转换成字符串:
```
result = ' '.join(seg_list)
```
6. 使用WordCloud库生成词云,并保存为txt文件:
```
# 生成词云
wordcloud = WordCloud(background_color='white', width=800, height=600).generate(result)
# 保存为txt文件
wordcloud.to_file('output.txt')
```
以上就是利用python语言和jieba、wordcloud库进行文本分析和词云生成的示例代码。如果您有其他问题或需求,请随时提出,我会尽力帮助您解决。
利用jieba库和wordcloud库生成一个词云图片,内容采用自己喜欢的电子书TXT文档(不得重复)。
好的,以下是生成词云图片的Python代码:
```python
import jieba
from wordcloud import WordCloud, ImageColorGenerator
import numpy as np
from PIL import Image
# 读取电子书TXT文档
with open('book.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用jieba分词
words = jieba.cut(text)
# 过滤掉长度小于2的词语
filtered_words = []
for word in words:
if len(word) > 1:
filtered_words.append(word)
# 将词语列表转换为字符串
text = ' '.join(filtered_words)
# 读取背景图片
mask = np.array(Image.open('background.png'))
# 创建词云对象
wc = WordCloud(
background_color='white',
mask=mask,
font_path='simhei.ttf', # 使用中文字体
max_words=200, # 设置最大显示的词数
max_font_size=100, # 设置字体最大值
random_state=42 # 设置随机生成状态,保证每次生成的结果一致
)
# 生成词云
wc.generate(text)
# 从图片中提取颜色
image_colors = ImageColorGenerator(mask)
# 绘制词云并保存图片
wc.to_file('wordcloud.png')
```
在运行代码之前,需要将代码中的`book.txt`和`background.png`替换为你自己喜欢的电子书TXT文档和背景图片。同时,还需要下载中文字体`simsun.ttf`并将其重命名为`simhei.ttf`,放在代码同级目录下。
代码运行完成之后,会在代码同级目录下生成一个名为`wordcloud.png`的词云图片。你可以将其打印出来,或者在社交媒体上分享给朋友们。