从网友热评看孟宴臣有多火—python文本分析

文本分析作为自然语言处理的应用之一,在全世界应用广泛。结合最近口碑出圈的孟宴臣,我们来学习下如何利用python语言进行文本分析,寓教于乐。
利用python进行文本分析主要使用jieba库,jieba库属于目前中文分词的佼佼者。jieba库的官网网址:https://github.com/fxsjy/jieba。
一、jieba的介绍以及安装
1.jieba分词模式的介绍
jieba库目前支持的函数如下:
jieba.lcut(text) 精确模式,返回一个列表类型,建议使用
jieba.cut(s) 精确模式,返回一个可迭代的数据类型
jieba.cut(s,cut_all=True) 全模式,输出文本s中所有可能的单词
jieba.cut_for_search(s) 搜索引擎模式,适合搜索引擎建立索引的分词结果
jieba.lcut(s) 精确模式,返回一个列表类型,建议使用
jieba.lcut(s,cut_all=True) 全模式,返回一个列表类型,建议使用
jieba.lcut_for_search(s) 搜索引擎模式,返回一个列表类型,建议使用
jieba.add_word(w) 向分词词典中增加新词w
jieba目前支持的分词模式有四种:
精确模式,试图将句子最精确地切开,适合文本分析;
全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词;
paddle模式,利用PaddlePaddle深度学习框架,训练序列标注(双向GRU)网络模型实现分词。同时支持词性标注。paddle模式使用需安装paddlepaddle-tiny,pip install paddlepaddle-tiny==1.6.1。目前paddle模式支持jieba v0.40及以上版本。jieba v0.40以下版本,请升级jieba,pip install jieba --upgrade
jieba.cut(text,use_paddle=True)
2.jieba库的安装
jieba库的安装依赖python,python安装官网Download Python,安装好python之后,通过命令提示符输入以下内容:
pip install jieba

python代码的运行推荐使用jupyterlab,个人觉得直观方便

通过cmd输入jupyter lab,启动jupyter lab界面

二、文本清洗
1.文本的搜集
研究孟宴臣热度用到的是《我的人间烟火》某瓣网友的评论,这里获取了前100条的网友评论,初始的文本长这样:

2.设置停用词
要进行文本分析,需要清洗文本中没有意义的字或者词语,比如助词“的、了,呢,吗”、指示代词“这个、那个、这些、那些”等等,所以我们要设置停用词,将文本中这些停用词去除。这里我用到的是《中科院计算所停用词表》,需要的同学可以关注我,后台回复【停用词表】领取。

3.设置自用词
自用词是指文本分析涉及到的专有名词,这次因为是分析《我的人间烟火》的网友评论,所以我将其中的主要人物以及扮演者的名字,作为了自用词。

4.文本清洗代码
文本清洗过程包括读取自用词、定义读取文本函数、定义读取停用词函数、定义清洗函数
三、文本分析
1.精确模式分词
完成上述三项函数的定义后,接下来是进行分词操作,建议选择精确模式。

2.提取关键词
通过精确模式完成分词之后,接下来提取关键词,查看关键词在整体文本中的权重,用到的是jieba.analyse.extract_tags()函数,该函数基于TF-IDF算法,主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。

上式分子是该词在文件中的出现次数,而分母则是在文件中所有字词的出现次数之和。
jieba.analyse.extract_tags()函数参数如下:
jieba.analyse.extract_tags(sentence, topK=5, withWeight=True, allowPOS=())
参数说明 :
sentence 需要提取的字符串,必须是str类型,不能是list
topK 提取前多少个关键字
withWeight 是否返回每个关键词的权重
allowPOS是允许的提取的词性,默认为allowPOS=‘ns’, ‘n’, ‘vn’, ‘v’,提取地名、名词、动名词、动词
3.关键词排序结果

4.绘制词云
基于清洗后的文本,绘制词云,主要用到wordcloud库。


注意:font_path指本地字体路径,一定要写对,如果写对了还出现cannot open source的报错,可以尝试pip install --upgrade wordcloud,更新词云。
5.词云结果

四、总结
结合关键词以及权重,可以看到关键词孟宴臣(0.31)与杨洋(0.31)并列,但是魏大勋(0.30)紧跟其后,所以魏大勋以孟宴臣+魏大勋两项热点词入围遥遥领先。是演员成就了角色,也是角色带火了演员,二者相互加成。比较搞笑的是“油腻”两个字也赫然在列,和男主这个关键词关联紧密。
最后给大家推荐下我常用的分析小助手—chatGPT,1+1>2的效果,有不懂问它就行。

这是访问的地址,大家可以自行尝试:
https://chat.plexpt.com/i/42299chat.plexpt.com/i/42299
欢迎交流讨论,一起变更棒!