欢迎光临散文网 会员登陆 & 注册

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

2023-08-28 21:47 作者:数据蜂鸟  | 我要投稿

文本分析作为自然语言处理的应用之一,在全世界应用广泛。结合最近口碑出圈的孟宴臣,我们来学习下如何利用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

欢迎交流讨论,一起变更棒!


从网友热评看孟宴臣有多火—python文本分析的评论 (共 条)

分享到微博请遵守国家法律