大甲鱼吃小甲鱼o 发表于 2020-7-22 20:24:58

词云更改数据源后,生成的云图还是一模一样的,灵异事件

def clean_data(your_data):
    # r+是正常的读写模式,.read()转换为字符串格式
    data = open(your_data, 'r+', encoding='utf8').read()
    # 用正则去除所有中文汉字以外的东西
    rule = re.compile(r'[\u4e00-\u9fa5]+')# [\u4e00-\u9fa5]+ 表示至少选择一个汉字
    chinese = re.findall(rule, data)
    cleaned_data = ''.join(chinese)# join决定每个字符中间的连接符,这里为空
    segment = jieba.lcut(cleaned_data)# 分词,返回列表格式
    print(segment)
    # 清除停用词
    stopword = open("stopwords.txt", 'r+', encoding='utf8').read()
    # 生成停用词词典,fromkeys(a,b)——a代表取停用词的元素作为词典的键,b代表键对应的值,这里我们只需要键
    # split 把停用词整体文本,按换行符分割,组成包含单独字词的词典
    # 否则我们的dist会包含\n换行符
    stopword_dist = {}.fromkeys(stopword.split('\n'))
    print(stopword_dist)
    mydist = []
    for each in segment:
      if each not in stopword_dist and each != ' ' and len(each) != 1:
            mydist.append(each)
    # 文字处理结束,生成最后的词库
    # 一波三折,最后把词典转换为逗号隔开的字符串
    mydist = ','.join(mydist)
    print('这是最终的dist')
    print(mydist)
    # segment = {'segment':segment}
    # panda = pandas.DataFrame({'segment':segment})
    # print(panda)
    # 开始生成图云
    #bg_pic = numpy.array(Image.open('timg.jpg'))# 背景图
    #bg_color = wordcloud.ImageColorGenerator(bg_pic)
    cloud_pic = wordcloud.WordCloud(
      scale=6,# 词云清晰度
      background_color="white",# 背景颜色
      max_words=500,# 显示最大词数
      font_path="C:/Windows/Fonts/simkai.ttf",# 使用字体
      min_font_size=5,# 印刷的分辨率,越低,图片越形象生动
      max_font_size=60,
      # width=40,# 图幅宽度
      #mask=bg_pic,
      # color_func=bg_color,
    )
    cloud_pic.generate(mydist)
    cloud_pic.to_file("word_cloud.png")

已知 数据源已经更新,这一点百分百肯定,现在是加了鬼吗?明明都换了别的网页,爬得别的数据,最后生成的图都是一样的,原来的数据都没了,它是如何做到的。。。。?

大甲鱼吃小甲鱼o 发表于 2020-7-22 20:26:07

在线等,帮帮我这个小甲鱼

Twilight6 发表于 2020-7-22 20:34:43


是不是你爬取的文本问题?

大甲鱼吃小甲鱼o 发表于 2020-7-22 20:36:46

Twilight6 发表于 2020-7-22 20:34
是不是你爬取的文本问题?

我又一次自己解决了,各位千万记得爬取的文本保存不要选增量保存,不然还以为自己见了鬼了。。。。上一次保存的文本同样在data.txt中{:10_266:}
页: [1]
查看完整版本: 词云更改数据源后,生成的云图还是一模一样的,灵异事件