NLTK的使用

本文详细介绍了如何使用Python的nltk库进行自然语言处理,包括搜索词的上下文、词频排序、词汇丰富度计算、双连词提取、文本分析等。还涉及到了机器翻译、古腾堡语料库、网络文本、聊天会话、词性标注等多个方面,展示了nltk在文本处理中的广泛应用。
摘要由CSDN通过智能技术生成

from nltk.book import * #使用nlp工具包
text1.concordance(“monstrous”) #搜索文本,看到词的上下文
text1.similar(“monstrous”)#搜索词的上下文,查找还有哪些词出现在相似的上下文中,以此判断该词在文中的意思
函数common_contexts允许我们研究两个或两个以上的词共同的上下文,如monstrous和very。我们必须用方括号和圆括号把这些词括起来,中间用逗号分割。

text2.common_contexts([“monstrous”, “very”])
be_glad am_glad a_pretty is_pretty a_lucky

text4.dispersion_plot([“citizens”, “democracy”, “freedom”, “duties”, “America”])
#通过离散图看出上述的词在整个文本的分布位置,可以用来研究随时间推移语言使用上的变化

使用函数 len 获取长度
如:len(text3)
set(text3)获得 text3 的词汇表 #记录文本中出现的不同词汇,不考虑同个词汇的出现频率
词和标点符号统称为标识符
一个词类型是指一个词在一个文本中独一无二的出现形式或拼写。
计数的项目中包括标点符号,所以我们把这些叫做唯一项目类型而不是词类型。

sorted(set(text3))
#得到一个词汇项的排序表,这个表以各种标点符号开始,然后是以 A 开头的词汇。大写单词排在小写单词前面
from future import division#测量文本词汇丰富度(平均每个词在文本中出现的次数)
print(len(text3)/len(set(text3)))#python中使用浮点除法
text3.count(“smote”)
#计算特定词在文本中的出现次数

def lexical_diversity(text):
return len(text) / len(set(text)) #定义函数
sent1 = [‘Call’, ‘me’, ‘Ishmael’, ‘.’] #链表,存储文本的方式,可以对链表使用 Python 加法运算,创造一个新链表
sent1.append(“Some”) #追加,向链表中增加一个元素
索引链表
text4[173] #找出文本次序为173的元素

text4.index(‘awaken’) #找出元素第一次出现的索引

text5[16715:16735]#切片,获取子链表,m:n 表示元素 m…n-1

’ '.join([‘Monty’, ‘Python’]) #把词用链表连接起来组成单个字符串

‘Monty Python’.split() #字符串分割成一个链表

fdist1 = FreqDist(text1) #获取文本的总词数
sorteddict = sorted(fredist1.items(), key=lambda item:item[1],reverse=True)

按词频排序的结果

s=[]
print(sorteddict[:50]) # 取前50的词,出现单词和频率
for i in range (50) :
s.append(sorteddict[i][0])

print(s)#只出现单词

fdist1[‘whale’] #获取whale出现的次数
fdist1.plot(50, cumulative=True)#词汇累计频率图,记录前五十个词
fdist1.hapaxes() #查找只出现过一次的词

此集合中所有 w 都满足 w 是集合 V(词汇表)的一
个元素且 w 有性质 P。表示为:[w for w in V if p(w)]
Ex:
V = set(text1) #链表不同于集合,可能存在相同的元素
long_words = [w for w in V if len(w) > 15 and fredist1[w]>=1000
] #筛选出长度大于15的单词且词频超过1000
sorted(long_words)
bigrams([‘more’, ‘is’, ‘said’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值