NLP自然语言处理001:NLTK入门
小编:管理员 146阅读 2022.08.12
准备写一个系统的nlp入门博客,就从 nltk 开始把。 NLTK:Natural Language Toolkit,自然语言处理工具包,在NLP领域中,最常使用的一个Python库。
我们需要通过他里面的数据来进行学习和练习。
NLTK是一个开源的项目,包含:Python模块,数据集和教程,用于NLP的研究和开发 [1] 。 NLTK由StevenBird和Edward Loper在宾夕法尼亚大学计算机和信息科学系开发。 NLTK包括图形演示和示例数据。其提供的教程解释了工具包支持的语言处理任务背后的基本概念。
直接pip install 安装即可。
安装完成之后,导入nltk、
nltk.download()复制
使用nltk.download()可以浏览可用的软件包,我们要下载nltk图书集来下载我们学习需要的例子和练习所需要的全部数据。
选中book后,点击download(),大约有100mb,下载需要点时间。
。。。 这个装的贼慢。。 装好了就导入book 运行下看看
当我们需要这些文本的时候,只需要输入名字就可以了。
搜索文本:我们通过 concordance(检索文章中的某个词)函数来看下text1《白鲸记》中的词"monstrous":
翻译过来:
使用 similar 函数可以看到与某词有相似的上下文的其他词:
print(text2.similar('monstrous'))复制
使用 common_contexts 两个或两个以上的词的共同的上下文
print(text2.common_contexts(['monstrous','very']))复制
使用 dispersion_plot 可以判断词在文本中的位置;竖线代表单词,行代表文本;可以用来研究随时间推移语言使用上的变化
print(text4.dispersion_plot(['citizens','democracy','freedom','duties','America']))#美国总统就职演说词汇分布图复制词汇计数:
可以用 len 来统计所有的词数,包括词和标点符号。
print(len(text3)) # <创世纪>中的词汇计数,也叫标识符。 print(sorted(set(text3)))复制
可以看到,一共出现了有44764个标识符,下面使用set过滤sorted排序后就出现了标点符号之类的。
我们可以简单算下,每个词平均出现的词数。
s = sorted(set(text3)) print(44764 /len(s))复制
输出结果为:16.050197203298673
下面我们来针对一个词,计算他出现的词数。计算他出现的百分比。
print(text3.count('smote')) print('%',(text4.count('a')/len(text4))*100)复制
输入结果: >>>5 >>> % 1.4643016433938312
smote在text3中出现了5次 ‘a’ 在text4中出现的百分比是 1.46%
频率分布:我们可以使用 FreqDist 来查找《白鲸记》中最常见的前50个词。
fdist1 = FreqDist(text1) print(fdist1) v = fdist1.keys() print(list(v)[:50])复制
使用 plot 可以绘制出50个最常用词的累计频率图。
fdist1.plot(50,cumulative=True)复制
可以使用 hapaxes()函数来查看只出现了一次的低频词。
print(fdist1.hapaxes())复制细粒度的选择词:
让我们看看文本中的长词,也许他们有更多的特征和信息量。 我们想要找出文本词汇表长度超过15个字符的词汇
则:
v = set(text1) long_words = [i for i in v if len(i)>15] print(sorted(long_words))复制
输出:
再写一个长度大于 7 且 出现次数大于7的词:
fdist5 = FreqDist(text5) print(sorted([i for i in set(text5) if len(i) > 7 and fdist5[i] > 7]))复制
另外可以通过 collocations 函数来统计频繁出现的双连词。
text4.collocations()复制NLTK频率分布类中定义的函数:
相关推荐
- 自然语言处理专栏上线,带你一步一步走进“人工智能技术皇冠上的明珠”。 1 NLP技术概述 每次与行外之人谈起自然语言处理(Natural Language Process,NLP),对方往往都是一片茫然。因此,常常感到很苦恼,如何跟一个从未接触过NLP的人,解释NLP到底是什么?毕竟这是一门这么重要的技术(学科),它的发展与应用,会极大的影响这个世…
- 3DMAX提示和技巧 本主题标识使用 Civil View 的一些重要提示和技巧。常规使用屏幕分辨率至少为 1280x1024 的 Civil View。低于此分辨率时,一些面板将占用过多屏幕空间。 将视口设置为线框显示以达到最佳性能。 要尽可能简化用户界面,请在单个视口中工作并关闭 3ds Max 命令面…