python nltk 基本操作

5 篇文章 0 订阅
2 篇文章 0 订阅

分词

nltk.sent_tokenize(text) #按句子分割
nltk.word_tokenize(sentence) #分词
nltk的分词是句子级别的,所以对于一篇文档首先要将文章按句子进行分割,然后句子进行分词
这里写图片描述

词性标注

nltk.pos_tag(tokens) #对分词后的句子进行词性标注

tags = [nltk.pos_tag(tokens) for tokens in words]
>>>tags
[[('This', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('text', 'NN'), ('for', 'IN'), ('test', 'NN'), ('.', '.')], [('And', 'CC'), ('I', 'PRP'), ('want', 'VBP'), ('to', 'TO'), ('learn', 'VB'), ('how', 'WRB'), ('to', 'TO'), ('use', 'VB'), ('nltk', 'NN'), ('.', '.')]]

分块 Chunking

用于实体识别的基本技术是分块,可以理解为把对个token组成词组。

名词短语分块

NP-chunking,寻找单独名词短语对应的块。为了创建NP分块,首先需要定义分块语法,规定句子如何分块。下面使用的是一个简单的正则,这条规则规定由可选的且后面跟着任意数量形容词(JJ)的限定词(DJ)和名词(NN)组成。

>>> text = "the little yellow dog barked at the cat"
>>> sentence = nltk.word_tokenize(text)
>>> sentence = nltk.pos_tag(sentence)
>>> sentence
[('the', 'DT'), ('little', 'JJ'), ('yellow', 'NN'), ('dog', 'NN'), ('barked', 'VBD'), ('at', 'IN'), ('the', 'DT'), ('cat', 'NN')]
>>> grammar = "NP: {<DT>?<JJ>*<NN>}"
>>> cp = nltk.RegexpParser(grammar)
>>> result = cp.parse(sentence)
>>> result
Tree('S', [Tree('NP', [('the', 'DT'), ('little', 'JJ'), ('yellow', 'NN')]), Tree('NP', [('dog', 'NN')]), ('barked', 'VBD'), ('at', 'IN'), Tree('NP', [('the', 'DT'), ('cat', 'NN')])])
>>> result.draw()

命名实体识别

ref: http://www.pythontip.com/blog/post/10012/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值