python助你快速读懂文字内心!
2020-04-28 本文已影响0人
永恒君的百宝箱
我们都有这样的感受,在一大段的文字当中出现频率比较多的词汇有很大的可能就会是这一段文字的核心内容。抓住了核心的内容,方便我们更有侧重的去进行下一步的操作。
今天永恒君就来介绍这样一个python的实例。
有位做电商的小伙伴,希望观察买家的留言、评论,找出大多数买家们对产品的总体评价,以便后续进行改进。
因为隐私的原因,永恒君直接以某东的商品为例吧~~
1、事先爬取了该商品的买家评论,一共爬了100页约400条的评论信息。
保存成jd_comment.txt文件。
jieba 是一个python实现的中文分词组件,在中文分词界非常出名,支持简、繁体中文,高级用户还可以加入自定义词典以提高分词的准确率。如果是英文的话就无需使用这个库。
基本的使用只用cut_text = " ".join(jieba.lcut(contents))
这一句就足够了。
import jieba
f=open('jd_comment.txt','r') #打开评论文件
contents=f.read() #读取内容
cut_text = " ".join(jieba.lcut(contents)) #进行分词,保存在cut_text 变量中。
3、使用wordcloud库,将上面的词汇用词云的方式展示。
wordcloud库,是python非常优秀的词云展示第三方库。词云以词语为基本单位更加直观和艺术的展示文本,像下图这样:
可以直观看到,出现频率越多的次,在图中字体越大,越明显。
将上面的cut_text
导入wordcloud,定义好生成对象的尺寸、颜色等参数,就可以生成图片了。
from wordcloud import WordCloud,ImageColorGenerator
wc = WordCloud(font_path='/usr/share/fonts/winfonts/simfang.ttf',
background_color='White',
max_words=1000,
width=1000,
height=500,
scale=1,
)
#font_path:设置字体,max_words:出现的最多词数量
wc.generate(cut_text)
wc.to_file("jd_comment.jpg")
效果如下图:
完整代码,一共不到20行
from wordcloud import WordCloud,ImageColorGenerator
import jieba
f=open('jd_comment.txt','r')
contents=f.read()
cut_text = " ".join(jieba.lcut(contents))
wc = WordCloud(font_path='/usr/share/fonts/winfonts/simfang.ttf',
background_color='White',
max_words=1000,
width=1000,
height=500,
scale=1,
)
#font_path:设置字体,max_words:出现的最多词数量,mask参数=图片背景,必须要写上,另外有mask参数再设定宽高是无效的
wc.generate(cut_text)
wc.to_file("jd_comment.jpg")#保存生成图片
你可能还会想看:
1、python办公 - 面对大量的扫描文件,你还在挨个手工处理吗?
2、教你如何用python制作一个微信机器人陪你聊天,只要几行代码
3、用python定制网页跟踪神器,有信息更新第一时间通知你(附视频演示)
4、把python网页跟踪神器部署到云上,彻底解放你的电脑
5、python实现浏览器自动化操作
欢迎交流!