吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1228|回复: 10
收起左侧

[求助] python 词云项目代码求助

[复制链接]
Rene 发表于 2023-6-19 17:00
150吾爱币
import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator
import numpy as np
from PIL import Image


def generate_wordcloud(text_file_path, background_image_path):
    # 读取文本文件
    with open(text_file_path, 'r', encoding=' utf-8') as f:
        text = f.read()

    # 使用结巴分词进行分词
    word_list = jieba.lcut(text)
    # 将分词结果转换为字符串形式
    word_string = ' '.join(word_list)
    # 使用natplotl的imread方法读取背景图并转换为数组
    background_array = plt.imread(background_image_path)
    # 创建词云对象,设置背景图和停用词
    stopwords = ["的", "个", "了", "—", "是", "“我", "你", "之", "一个"]  # 要移除的词语
    wordcloud = WordCloud(background_color='white',font_path="C:/Windows/Fonts/msyh.ttc", mask=background_array,
                          stopwords=stopwords)
    # 生成词云图数据
    wordcloud.generate(word_string)
    # 从背景图建立颜色方案
    image_colors = ImageColorGenerator(background_array)

    # 将词云颜色设置为背景图方案
    wordcloud.recolor(color_func=image_colors)
    # 显示词云图
    plt.imshow(wordcloud, interpolation='bilinear')
    plt.axis('off')
    plt.show()


# 输入图片路径和文本路径
image_path = input("请输入背景图路径…")
text_path = input("请输入文本路径:")
# 生成词云图
generate_wordcloud(text_path, image_path)

————————————————————————————————————————————————————————
报错:

C:\Users\14497\PycharmProjects\pythonProject\venv\Scripts\python.exe C:\Users\14497\PycharmProjects\pythonProject\4.py
Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\14497\AppData\Local\Temp\jieba.cache
Loading model cost 0.611 seconds.
Prefix dict has been built successfully.
Traceback (most recent call last):
  File "C:\Users\14497\PycharmProjects\pythonProject\4.py", line 46, in <module>
    generate_wordcloud(text_path, image_path)
  File "C:\Users\14497\PycharmProjects\pythonProject\4.py", line 28, in generate_wordcloud
    wordcloud.generate(word_string)
  File "C:\Users\14497\PycharmProjects\pythonProject\venv\lib\site-packages\wordcloud\wordcloud.py", line 639, in generate
    return self.generate_from_text(text)
  File "C:\Users\14497\PycharmProjects\pythonProject\venv\lib\site-packages\wordcloud\wordcloud.py", line 621, in generate_from_text
    self.generate_from_frequencies(words)
  File "C:\Users\14497\PycharmProjects\pythonProject\venv\lib\site-packages\wordcloud\wordcloud.py", line 454, in generate_from_frequencies
    max_font_size=self.height)
  File "C:\Users\14497\PycharmProjects\pythonProject\venv\lib\site-packages\wordcloud\wordcloud.py", line 508, in generate_from_frequencies
    box_size = draw.textbbox((0, 0), word, font=transposed_font, anchor="lt")
  File "C:\Users\14497\PycharmProjects\pythonProject\venv\lib\site-packages\PIL\ImageDraw.py", line 651, in textbbox
    raise ValueError("Only supported for TrueType fonts")
ValueError: Only supported for TrueType fonts

进程已结束,退出代码1

——————————————————————————————————
更换了多种TrueType fonts,文本和图片文件路径无误,但依旧多次报错,这个错误重复出现!!!
求大佬解决


最佳答案

查看完整内容

兄弟,我也遇到了该问题解决好了。原因图片处理库与其他库不匹配,解决办法把Pillow库升级到最新版。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

gaoxiaoao 发表于 2023-6-19 17:00
兄弟,我也遇到了该问题解决好了。原因图片处理库与其他库不匹配,解决办法把Pillow库升级到最新版。

免费评分

参与人数 1吾爱币 +3 热心值 +1 收起 理由
a2523188267 + 3 + 1 我很赞同!我也遇到这种情况。

查看全部评分

sgbyg 发表于 2023-6-19 17:18
本帖最后由 sgbyg 于 2023-6-19 17:25 编辑

字体是需要先安装再设置的

而且你的代码我这里可以运行 感觉和字体没啥关系
 楼主| Rene 发表于 2023-6-19 17:34
sgbyg 发表于 2023-6-19 17:18
字体是需要先安装再设置的

而且你的代码我这里可以运行 感觉和字体没啥关系

已经安装了,难道是我模块装的不对吗?
sgbyg 发表于 2023-6-19 17:56
Rene 发表于 2023-6-19 17:34
已经安装了,难道是我模块装的不对吗?

有这种可能
Prozacs 发表于 2023-6-19 17:58
将 Pillow 升级到 9.5.0:pip install --upgrade pillow
调味包 发表于 2023-6-20 09:23

import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator
import numpy as np
from PIL import Image


def generate_wordcloud(text_file_path, background_image_path):
    # 读取文本文件
    with open(text_file_path, 'r', encoding=' utf-8') as f:
        text = f.read()

    # 使用结巴分词进行分词
    word_list = jieba.lcut(text)
    # 将分词结果转换为字符串形式
    word_string = ' '.join(word_list)
    # 使用natplotl的imread方法读取背景图并转换为数组
    background_array = plt.imread(background_image_path)
    # 创建词云对象,设置背景图和停用词
    stopwords = ["的", "个", "了", "—", "是", "“我", "你", "之", "一个"]  # 要移除的词语
    wordcloud = WordCloud(background_color='white',font_path="C:/Windows/Fonts/simhei.ttf", mask=background_array,
                          stopwords=stopwords)
    # 生成词云图数据
    wordcloud.generate(word_string)
    # 从背景图建立颜色方案
    image_colors = ImageColorGenerator(background_array)

    # 将词云颜色设置为背景图方案
    wordcloud.recolor(color_func=image_colors)
    # 显示词云图
    plt.imshow(wordcloud, interpolation='bilinear')
    plt.axis('off')
    plt.show()


# 输入图片路径和文本路径
image_path = input("请输入背景图路径…")
text_path = input("请输入文本路径:")
# 生成词云图
generate_wordcloud(text_path, image_path)


# 请注意,这里使用的字体文件是 `simhei.ttf`,如果你的电脑上没有这个字体文件,可以尝试更换其他的TrueType格式的字体文件。
基于GPT3.5修改的代码 试试看
 楼主| Rene 发表于 2023-6-20 21:39
调味包 发表于 2023-6-20 09:23
import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerato ...

谢啦,不过已经用GPT试了下不行才来问下
 楼主| Rene 发表于 2023-6-20 21:40
Prozacs 发表于 2023-6-19 17:58
将 Pillow 升级到 9.5.0:pip install --upgrade pillow

还是不行
那卡 发表于 2023-6-21 14:08
我跑了下代码,能够跑出来
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 22:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表