Ai
1 Star 0 Fork 0

王馨瑶/python2021

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
analyse.py 2.31 KB
一键复制 编辑 原始数据 按行查看 历史
王馨瑶 提交于 2021-06-30 16:00 +08:00 . 实验四大作业
import matplotlib.pyplot as plt
import pandas as pd
import jieba
import jieba.analyse
import numpy as np
from PIL import Image
from wordcloud import WordCloud
'''
读取刚刚爬好的热评文件
df1 = pd.read_csv('hotComments_06.csv',index_col = 0)
ERROR: Buffer overflow caught -缓冲区溢出
发现也是因为csv文件中单个item内有\r,即回车符
解决方法:lineterminator=”\n”:让\n作为换行符即可
'''
df3 = pd.read_csv('hotComments_06p.csv', index_col=0, lineterminator='\n')
# 空格的影响会导致打字内容一样,但却被判为不一样
# 用strip()方法去除开头或则结尾的空格
df3['content1'] = df3['content'].apply(lambda x: x.strip())
# 有些句子中有\r,因为我们以\n作为换行符,所以这些\r不属于文本,需要去掉
df3['content1'] = df3['content'].apply(lambda x: x.replace('\r', ''))
df4 = df3.drop(['content'], axis=1)
df4.rename(columns={'content1': 'content'}, inplace=True)
'''
jieba库中基于 TextRank 算法的关键词抽取
详情见官方文档:https://github.com/fxsjy/jieba
'''
segments = []
for index, row in df4.iterrows():
content = row[5]
words = jieba.analyse.textrank(content, topK=3, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'))
for w in words: # 对分词好后的words进行提取,并且关联一个1,方便进行计数
segments.append({'word': w, 'counts': 1})
df_w = pd.DataFrame(segments)
df_w.to_csv('jieba_01.csv', index=False, encoding='utf-8-sig')
# wordcloud库制作云词
# 将我们之前做的分词列表合并成字符串,以空格连接方便制作云词
text = ' '.join(df_w['word'])
'''
2222.png是一张作为蒙版的图片,需要转换成numy数组才可以用
利用PIL模块读取我们的png文件并转换为numpy数组,作为WordCloud的mask参数传入
'''
mask_cir = np.array(Image.open('2222.png'))
wordc = WordCloud(
background_color='white',
mask=mask_cir,
font_path='SimHei.ttf', # 中文显示的方法,baidu载一个SimHei.ttf字体包即可让云词显示中文
max_words=1000
).generate(text)
plt.imshow(wordc)
plt.axis('off') # 关闭坐标轴,更加美观
plt.savefig('图3.jpg', dpi=600, bbox_inches='tight', quality=95) # bbox_inches='tight',可以达到去除空白的效果
plt.show()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/yannii/python2021.git
git@gitee.com:yannii/python2021.git
yannii
python2021
python2021
master

搜索帮助