当前位置:   article > 正文

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

python文本挖掘案例

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

实验过程

提取关键词

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
还是字体文件路径问题,将\全部改为/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/140846
推荐阅读
相关标签
  

闽ICP备14008679号