FishC
发表于 2024-5-29 10:18:17
豪在这学python 发表于 2024-05-29 10:18
一直出现 无 0 0 0 0
无 0 0 0 0
无 0 0 0 0
...
如果出现了一直打印 `无 0 0 0 0` 的结果,可能是因为在解析HTML时无法找到相应的元素。请确保你使用的选择器 `select_one` 或 `select` 能够准确地定位到目标元素。
另外,请检查网址是否正确,并确保能够正常访问该网页。如果问题仍然存在,请提供更多的代码上下文或相关信息,以便我能更好地帮助你排查问题。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
豪在这学python
发表于 2024-5-30 09:30:55
FishC 发表于 2024-5-29 10:18
如果出现了一直打印 `无 0 0 0 0` 的结果,可能是因为在解析HTML时无法找到相应的元素。请确保你使用的 ...
ValueError: Only supported for TrueType fonts
FishC
发表于 2024-5-30 09:31:10
豪在这学python 发表于 2024-05-30 09:30
ValueError: Only supported for TrueType fonts
这个错误通常是由于缺少支持TrueType字体的库导致的。为了解决这个问题,你可以尝试安装并使用可支持TrueType字体的库,如`matplotlib`的`font_manager`模块中的TrueType字体。以下是示例代码:
import matplotlib.font_manager as fm
# 指定一个支持的TrueType字体文件路径
font_path = 'path/to/your/truetype/font.ttf'
# 加载字体
prop = fm.FontProperties(fname=font_path)
将上述代码应用到你的代码中,确保提供一个支持TrueType字体的文件路径。这样就可以正常显示中文字符了。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
豪在这学python
发表于 2024-5-30 19:11:17
FishC 发表于 2024-5-29 10:18
如果出现了一直打印 `无 0 0 0 0` 的结果,可能是因为在解析HTML时无法找到相应的元素。请确保你使用的 ...
"""数据可视化,歌单介绍词云图"""
from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
import pandas as pd
import jieba
import time
def data_visualization_of_music_wordcloud():
"""歌单介绍词云图"""
df = pd.read_csv('music_data/music_detail.csv', header=None)
text = ''
print("正在生成歌单介绍词云图片...")
# 输出进度条
t = 60
start = time.perf_counter()
for i in range(t + 1):
finsh = "▓" * i
need_do = "-" * (t - i)
progress = (i / t) * 100
dur = time.perf_counter() - start
print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(progress, finsh, need_do, dur), end="")
time.sleep(0.02)
for line in df:
text += ' '.join(jieba.cut(line, cut_all=False))
background_image = plt.imread('music_image/img/background_image.jpg')
stopwords = set('')
stopwords.update(
['封面', 'none介绍', '介绍', '歌单', '歌曲', '我们', '自己', '没有', '就是', '可以', '知道', '一起', '不是',
'因为', '什么', '时候', '还是', '如果', '不要', '那些', '那么', '那个', '所有', '一样', '一直', '不会', '现在',
'他们', '这样', '最后', '这个', '只是', '有些', '其实', '开始', '曾经', '所以', '不能', '你们', '已经', '后来',
'一切', '一定', '这些', '一些', '只有', '还有'])
wc = WordCloud(
background_color='white',
mask=background_image,
font_path='./font_resources/STZHONGS.ttf',
max_words=2000,
max_font_size=150,
random_state=30,
stopwords=stopwords
)
wc.generate_from_text(text)
# 看看词频高的有哪些,把无用信息去除
process_word = WordCloud.process_text(wc, text)
sort = sorted(process_word.items(), key=lambda e: e, reverse=True)
# print(sort[:50])
img_colors = ImageColorGenerator(background_image)
wc.recolor(color_func=img_colors)
plt.imshow(wc)
plt.axis('off')
# 保存图片
wc.to_file("./music_image/music_wordcloud.png")
# 显示图片
plt.show()
print("\n已生成歌单介绍词云图片,保存至 music_image/music_wordcloud.png")
解释代码,给注释
FishC
发表于 2024-5-30 19:13:04
豪在这学python 发表于 2024-05-30 19:11
"""数据可视化,歌单介绍词云图"""
from wordcloud i ...
这段代码是用于生成歌单介绍的词云图的函数。以下是对代码的解释和注释:
from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
import pandas as pd
import jieba
import time
def data_visualization_of_music_wordcloud():
"""歌单介绍词云图"""
df = pd.read_csv('music_data/music_detail.csv', header=None)
text = ''
# 读取存储歌单介绍的CSV文件
print("正在生成歌单介绍词云图片...")
# 输出进度条
t = 60
start = time.perf_counter()
for i in range(t + 1):
finsh = "#" * i
need_do = "-" * (t - i)
progress = (i / t) * 100
dur = time.perf_counter() - start
print("\r{:^3.0f}% [{}=>{}] {:.2f}s".format(progress, finsh, need_do, dur), end="")
time.sleep(0.02)
# 将所有歌单介绍文本合并为一个字符串
for line in df:
text += ' '.join(jieba.cut(line, cut_all=False))
# 设置词云背景图片
background_image = plt.imread('music_image/img/background_image.jpg')
# 设置停用词
stopwords = set('')
stopwords.update(
# 这里可以添加一些你希望过滤掉的停用词
)
# 创建词云对象
wc = WordCloud(
background_color='white',
mask=background_image,
font_path='./font_resources/STZHONGS.ttf',
max_words=2000,
max_font_size=150,
random_state=30,
stopwords=stopwords
)
# 生成词云图
wc.generate_from_text(text)
# 根据词频进行排序
process_word = WordCloud.process_text(wc, text)
sort = sorted(process_word.items(), key=lambda e: e, reverse=True)
# 设置词云颜色
img_colors = ImageColorGenerator(background_image)
wc.recolor(color_func=img_colors)
# 显示词云图
plt.imshow(wc)
plt.axis('off')
# 保存词云图
wc.to_file("./music_image/music_wordcloud.png")
# 显示图片
plt.show()
print("\n已生成歌单介绍词云图片,保存至 music_image/music_wordcloud.png")
代码使用了`wordcloud`库来生成词云图。它通过读取存储歌单介绍的CSV文件,并将其中的文本数据合并为一个字符串。然后使用`jieba`库进行中文分词处理。接着,使用词云对象`WordCloud`创建词云图,设置了背景颜色、背景图片、字体、词数等属性。最后将生成的词云图保存并展示出来。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。