python-nlp-学到的一点东西

本文详细介绍了使用Python的NLTK库进行自然语言处理的各种操作,包括文本加载、词语索引、上下文相似性、词频统计、词性标注、分词、正则表达式、词干提取、词形归并、同义词和词汇关系。通过实例展示了NLTK的多种功能,如concordance、dispersion_plot、similarity、collocations等,以及如何使用正则表达式标注器、UnigramTagger、Brill标注器进行词性标注。同时,探讨了词性标注的语义、句法和形态学线索。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//2017/3/24

1、加载一些要用的文本:from nltk.book import *

就是从NLTK的book模块加载所有的文本数据。

2、词语索引视图:显示一个指定单词的所有的出现地方,并将它出现的上下文显示出来:

text1.concordance('monstrous'),其中text1就是nltk.book里的数据,而monstrous就是要查看的单词。

结果:***the monstrous pictures***

3、查找上下文相似的其它词:

在2中,通过输入单词monstrous查找到这个词出现的上下文信息,而上下文相似的其它词就是跟monstrous的上下文结构相似的词:

text1.similar('monstrous')。

4、两个或两个以上的词共同的上下文:

text2.common_contexts(['monstrous','very'])

结果:be_glad   am_glad   a_pretty   is_pretty   a_lucky(这些都是上下文)

意思就是text2中出现了  即be  monstrous glad,又出现了be very glad,即出现了am monstrous pretty又出现了am very glad等等等等。。。

5、使用离散图显示出指定的某个单词在整个文本中的位置:

text4.dispersion_plot(['citizens','democracy','freedom','duties','America'])

6、产生随机文本:

text1.generate():重复使用text1中的词汇,产生与其风格一样的随机文本。

7、获取文本的长度:

len(text3)

8、计算一个特定的词在文本中占据的百分比:

100*text3.count('smote')/len(text3)

//2017/3/29

1、NLTK中统计文本中的词频的函数:

fdist1 = FreqDist(text1),fdist1中包含总的词数(词数x频数),而vocabulary1=fdist1.keys()就是文本中所有的单词(包括符号),而找到某个词出现的频数:fdist1['单词']。

2、画出词汇的累积频率图:

fdist1.plot(50,cumulative=True),50就是fdist1中的前50个词,cumulative就是累积的意思。

3、与高频词相对应的低频词(只出现一次的词——hapaxes):

通过fdist1.hapaxes()查看这些词。

4、有时候可以研究那些指定长度的单词

5、在文本词汇中提取双连词:

bigrams(['more','is','said','than','done']):[('more','is'),('is','said'),('said','than'),('than','done')]

6、找到文本中频繁!!!出现的双连词:

text4.collocations()

7、还可以对文本中单词的长度进行统计。

8、NLTK频率分布类中定义的函数:


9、又见条件表达式:

[w for w in text if condition]

10、测试词汇的各种属性的函数:


11、自然语言处理中的一些语言理解技术:

a)词义消岐:算出特定上下文中的词被赋予的是哪个意思。

b)指代消解:检测主语和动词的宾语。

//2017/3/30

c)自动生成语言:在自动问答中,一台机器要能够回答用户关于特定文本集的问题。在机器翻译中,机器要能够把文本翻译成另一种语言文字,并准确传达原文的意思。

1、NLTK古腾堡项目语料库阅读器的一些访问方法:

gutenberg.raw()、gutenberg.words()、gutenberg.sents()

2、NLTK网络文本小集合语料库:

from nltk.corpus import webtext

3、即时消息聊天会话语料库:

from nltk.corpus import nps_chat

4、布朗语料库:

from nltk.corpus import brown

brown.categories(),nltk提供了带条件的频率分布函数:nltk.conditionalFreqDist()

5、路透社语料库:

from nltk.corpus import reuters

6、就职演说语料库:

from nltk.corpus import inaugural

//2017/4/1

1、文本语料库的常见结构:


2、NLTK中定义的基本语料库函数:


3、条件概率分布:

使用NLTK的ConditionalFreqDist实现:


4、检查条件概率分布:

cfd=nltk.ConditionalFreqDist(genre_word);  cfd.conditions():['news','romance'],还可以cfd['news']、cfd['romance']

5、对plot和tabulate()的绘制限制:

a)conditions=parameter来指定哪些条件显示;

b)使用samples=parameter来限制要显示的样本。

其中tabulate的绘制样式:


5、LTK 中的条件频率分布: 定义、访问和可视化一个计数的条件频率分布的常用方法和习惯用法:


6、词典术语:

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值