NLTK学习之一:简单文本分析
来源:互联网 发布:淘宝买家3心要多少信誉 编辑:程序博客网 时间:2024/06/05 02:27
nltk的全称是natural language toolkit,是一套基于python的自然语言处理工具集。
1 NLTK的安装
nltk的安装十分便捷,只需要pip就可以。
pip install nltk
在nltk中集成了语料与模型等的包管理器,通过在python解释器中执行
>>> import nltk>>> nltk.download()
便会弹出下面的包管理界面,在管理器中可以下载语料,预训练的模型等。
2 对文本进行简单的分析
2.1 Text类介绍
nltk.text.Text()类用于对文本进行初级的统计与分析,它接受一个词的列表作为参数。Text类提供了下列方法。
nltk.text.TextCollection类是Text的集合,提供下列方法
2.2 示例
下面我们对青春爱情小说《被遗忘的时光》做下简单的分析。首先加载文本:
import ntlkimport jiebaraw=open('forgotten_times.txt').read()text=nltk.text.Text(jieba.lcut(raw))
对于言情小说,先看下风花雪月这样的词出现的情况
print text.concordance(u'风花雪月')
输出如下:
>>> Displaying 2 of 2 matches:彼时 校园 民谣 不复 大热 了 , 但 处身 校园 , 喜欢 吟唱 风花雪月 的 感性 青年 还是 喜欢 借此 抒怀 。 邵伊敏 平常 听 英语歌 较的 眼睛 看 的 是 自己 , 迷恋 的 却 多半 只是 少女 心中 的 风花雪月 , 而 迷恋 过后 不可避免 不是 失望 就是 幻灭 。 他 将 目光
再看下作者对于某些同义词的使用习惯
print text.common_contexts([u'一起',u'一同'])
输出如下:
>>> 爷爷奶奶_生活 在_时
下面看下文章常用的二词搭配
text.collocations()
输出
出入境 管理处; 沃尔沃 XC90; 慢吞吞 爬起来; 没交过 男朋友; 邵伊敏 回头一看; 戴维凡 哭笑不得; 没想到 邵伊敏; 邵伊敏 第二天; 邵伊敏 没想到
查看关心的词在文中出现的位置
text.dispersion_plot([u'校园',u'大学'])
输出如下图:
3 对文档用词进行分布统计
3.1 FreqDist类介绍
这个类主要记录了每个词出现的次数,根据统计数据生成表格,或绘图。其结构很简单,用一个有序词典进行实现。所以dict类型的方法在此类也是适用的。如keys()等。
3.2 示例
对歌曲《The day you went away》的歌词进行分析。
text = open('corpus/the_day_you_went_away.txt').read()fdist = nltk.FreqDist(nltk.word_tokenize(text))fdist.plot(30,cumulative=True)
代码第二行调用了word_tokenize()函数,此函数的作用是基于空格/标点等对文本进行分词,返回分词后的列表。如果要处理中文,需要三方的分词器先处理,之后才能使用nltk进行处理。运行输出分布图如下:
4 nltk自带的语料库
在nltk.corpus包下,提供了几类标注好的语料库。见下表:
更多语料库,可以用nltk.download()在下载管理器中查看corpus。
4.1语料库处理
5 文本预处理
NLP在获取语料之后,通常要进行文本预处理。英文的预处理包括:分词,去停词,提取词干等步骤。中文的分词相对于英文更复杂一些,也需要去停词。但没有提取词干的需要。
对于英文去停词的支持,在corpus下包含了一个stopword的停词库。
对于提取词词干,提供了Porter和Lancaster两个stemer。另个还提供了一个WordNetLemmatizer做词形归并。Stem通常基于语法规则使用正则表达式来实现,处理的范围广,但过于死板。而Lemmatizer实现采用基于词典的方式来解决,因而更慢一些,处理的范围和词典的大小有关。
porter = nltk.PorterStemmer()porter.stem('lying') #'lie'lema=nltk.WordNetLemmatizer()lema.lemmatize('women') #'woman'
- NLTK学习之一:简单文本分析
- 机器学习:利用NLTK进行简单文本分析
- 使用NLTK对中文文本进行简单分析
- 文本分析--NLTK自然语言处理
- 文本分析--NLTK语料库选择
- 文本分析--NLTK访问文件
- word2Vec--(1) nltk实现简单的切词,情感分析,文本相似度(TF-IDF)
- 文本分析-预处理:Python文本分析工具NLTK
- 6.NLTK之学习文本分类
- NLTK学习笔记(七):文本信息提取
- NLTK学习之四:文本信息抽取
- NLTK入门1:简单句子结构分析
- NLTK完成简单的情感分析
- NLTK学习笔记(二):文本、语料资源和WordNet汇总
- NLTK学习笔记(二):文本、语料资源和WordNet汇总
- nltk学习
- nltk学习
- 文本分析------简单篇
- Virus_Html_SampleAnalysis
- Redis容灾部署哨兵(sentinel)机制配置详解及原理介绍
- 4.3、Linux安装tomcat服务器
- Hdu6114 Chess( 2017"百度之星"程序设计大赛
- tensorflow 安装
- NLTK学习之一:简单文本分析
- Codeforces Round #428 (Div. 2) C.Journey(dfs求期望)
- UVA
- TensorFlow学习之CS20SI 之二
- Kadane's algorithm(Kadane算法)
- n编程快速上手之第八章8.9.3实践项目
- 排序算法
- Chess(组合数公式)
- python基础笔记