ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

《手牵手带你走进python世界》系列五

2019-06-20 23:43:20  阅读:298  来源: 互联网

标签:系列 python frequence wordcloud 手牵手 words import danmuku word


  import requests
  from bs4 import BeautifulSoup
  import datetime
  import pandas as pd
  import matplotlib.pyplot as plt
  import re
  import jieba
  import numpy as np
  from wordcloud import WordCloud, ImageColorGenerator
  
  url = "https://comment.bilibili.com/92542241.xml"
  r = requests.get(url)
  r.encoding = 'utf8'
  
  
  soup = BeautifulSoup(r.text,'lxml')
  d = soup.find_all('d')
  
  dlst = []
  n = 0
  for i in d:
      n += 1
      danmuku = {}
      danmuku['弹幕'] = i.text
      danmuku['网址'] = url
      danmuku['时间'] = datetime.date.today()
      dlst.append(danmuku)
  
  df = pd.DataFrame(dlst)
  
  with open('sign.txt','w',encoding='utf8') as f:
      for text in df['弹幕'].values:
          pattern = re.compile(r'[一-龥]+')
          filter_data = re.findall(pattern,text)
          f.write("".join(filter_data))
  
  with open('sign.txt', 'r', encoding='utf8') as f:
      data = f.read()
      segment = jieba.lcut(data)
      words_df = pd.DataFrame({"segment": segment})
  
  word_stat = words_df.groupby(by=['segment'])['segment'].agg({'计数':np.size})
  words_stat = word_stat.reset_index().sort_values(by=['计数'],ascending=False)
  
  wordcloud = WordCloud(
      font_path="/Library/Application Support/Apple/Fonts/iLife/BalegaRegular.otf",   # mac上没有该字体
      # font_path="C:\Windows\Fonts\simkai.ttf",
      # 设置字体可以显示中文
      background_color="white",  # 背景颜色
      max_words=3000,  # 词云显示的最大词数
      max_font_size=200,  # 字体最大值
      random_state=100,
      width=1000, height=860, margin=2,
      # 设置图片默认的大小,但是如果使用背景图片的话,                                                   # 那么保存的图片大小将会按照其大小保存,margin为词语边缘距离
  )
  
  # 生成词云, 可以用generate输入全部文本,也可以我们计算好词频后使用generate_from_frequencies函数
  word_frequence = {x[0]: x[1] for x in words_stat.head(500).values}
  word_frequence_dict = {}
  for key in word_frequence:
      word_frequence_dict[key] = word_frequence[key]
  
  wordcloud.generate_from_frequencies(word_frequence_dict)
  # 从背景图片生成颜色值
  # image_colors = ImageColorGenerator(color_mask)
  # 重新上色
  # wordcloud.recolor(color_func=image_colors)
  # 保存图片
  wordcloud.to_file('output.png')
  plt.imshow(wordcloud)
  plt.axis("off")
  plt.show()

标签:系列,python,frequence,wordcloud,手牵手,words,import,danmuku,word
来源: https://www.cnblogs.com/wuxiaoshi/p/11048761.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有