1.基础概念和接口
import nltk from nltk.book import * #查看一下text的数据类型 type(text2)
可以看到book中把各种文章都打包到下面的类中了:
<class 'nltk.text.Text'>
那再看下此类的方法
dir(nltk.text.Text)
collocation_list
collocations
common_contexts
concordance
concordance_list
count
dispersion_plot
findall
generate
index
plot
readability
similar
unicode_repr
vocab
text1.concordance("very") #实际就是找出包含very单词的句子 text2.similar("kind") #找出text2中与单词kind相似的词汇,测试了几次, #发现是从词汇的属性(名词,形容词,副词等)和意思来做判断的,有时候会出现一些莫名其妙的词汇 text4.common_contexts('very') #也可以传入字符串数组 text2.dispersion_plot(['name','people']) #查看参数中的单词在文章中的分布 text3.generate() #这个接口在NLTK2.0中还可以使用,NLTK3.0后需要传入参数
Text类是一个类似于列表的存在,可以使用操作列表的那套方法来操作Text类,例如:
len(text2) set(text2) text2.index('hate') sorted(text4)
bigrams() 2.0版本返回一个元组列表,3.0是一个生成器
fdist = FreqDist(samples) #创建包含给定样本的频率分布 fdist.inc(sample) #增加样本 fdist['monstrous'] #计数给定样本出现的次数 fdist.freq('monstrous') #给定样本的频率 fdist.N() #样本总数 fdist.keys() #以频率递减顺序排序的样本链表 for sample in fdist: #以频率递减的顺序遍历样本 fdist.max() #数值最大的样本 fdist.tabulate() #绘制频率分布表 fdist.plot()# 绘制频率分布图
词意消歧:算出特定上下文中的词被赋予了哪个意思。
指代消解:确定代词或者名词短语指的是什么
语义角色标注:确定名词短语如何与动词相关联