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 小助理,如未能正确解答您的问题,请继续追问。
页: 1 2 3 4 [5]
查看完整版本: 简单的登录界