python文本挖掘(二)——实例1(TF-IDF算法)

这篇博客介绍了如何使用Python的TF-IDF算法对小说《玩偶之家》进行文本挖掘,提取关键词,并生成词云。在关键词提取过程中,除了jieba分词,还自定义了词典,导入了停用词库。在生成词云时,遇到了二值化图片、字体设置等问题,并提供了相应的解决方案。最后展示了词频和词云的可视化结果。
摘要由CSDN通过智能技术生成

分析小说《玩偶之家》
参考链接:
文本可视化[一]——《今生今世》词云生成与小说分析

实验过程

提取关键词

1.除了jieba本身的内置词库之外,自己人工添加在剧本《玩偶之家》中出现的较为特殊的人名、地名、机构名等。
以准确提取剧本中的关键词(人名、地名等)

如下是自己添加的词典内容dict_doll_house.txt:

海尔茂 10 nr
托伐 10 nr
娜拉 10 nr
爱伦 9 nr
安娜 9 nr
阮克 9 nr
林丹 9 nr
克立斯替纳 9 nr
柯洛克斯泰 9 nr
伊娃 6 nr
爱密 5 nr
巴布 5 nr
尼尔 5 nr
斯丹保家 4 ns

2.导入停用词词库
参考链接:
停用词库汇总、去重版
最全中文停用词表整理(1893个)

3.analyse.extract_tags采用TF-IDF算法进行关键词的提取
TF-IDF算法
TF-IDF(Term Frequency-Inverse Document Frequency, 词频-逆文件频率)算法。
参考链接:TF-IDF原理及使用

是一种用于资讯检索与资讯探勘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。
一个词语在一篇文章中出现次数越多(TF), 同时在所有文档中出现次数越少(IDF), 越能够代表该文章。即:某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。

TF = 在某一类中词条w出现的次数/该类中所有的词条数目
IDF = log(语料库的文档总数/(包含词条w的文档数+1))

TF−IDF=TF∗IDF

生成词云

参考链接:
Python数据可视化之Wordcloud
github

1.初始化WordCloud
WordCloud介绍
python非常优秀的词云展示第三方库。词云以词语为基本单位更加直观和艺术的展示文本。
2.生成词云
参考链接:
WordCloud词云自定义背景图片
wordcloud:自定义背景图片,生成词云
(1)一定要选择二值化图片(0和225),否则最终图片展示情况会很奇怪

生成的词会填充图的黑色部分

图像二值化(Image Binarization)就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。
(2)font_path=font_path
设置字体,若是有中文的话,这句代码必须添加,不然会出现方框,不出现汉字
(3)生成词云的两种方式
from text 文本生成
from frequencies 频率生成(本文所采用的方式)

调试问题集合

IndentationError: unindent does not match any outer indentation level
【已解决】Python脚本运行出现语法错误:IndentationError: unindent does not match any outer indentation level

UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xb6 in position 14: illegal multibyte sequence
UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xb7 in position 2069解决方法

NameError: name ‘unicode’ is not defined
Python NameError: name ‘unicode’ is not defined
python2中的unicode()函数在python3中会报错:

OSError: cannot open resource
还是字体文件路径问题,将\全部改为/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值