首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NLTK中的pos_tag不能正确标记句子

NLTK中的pos_tag不能正确标记句子
EN

Stack Overflow用户
提问于 2011-12-03 12:36:31
回答 2查看 2.5K关注 0票数 5

我使用了以下代码:

代码语言:javascript
运行
复制
# Step 1 : TOKENIZE
from nltk.tokenize import *
words = word_tokenize(text)

# Step 2 : POS DISAMBIG
from nltk.tag import *
tags = pos_tag(words)

加上两句话:约翰人很好。约翰人很好吗?

John在第一句话中是NN,而在第二句话中是VB!那么,我们如何在不训练后退标记器的情况下纠正pos_tag函数呢?

修改后的问题:

我在http://text-processing.com/demo/tag/上看过NLTK标记器的演示。当我尝试"English Taggers &Chuncker: Treebank“或"Brown Tagger”选项时,我得到了正确的标签。那么如何在不经过训练的情况下使用Brown Tagger呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-04 06:23:54

简短的回答:你不能。稍长一点的回答:你可以使用手动创建的UnigramTagger覆盖特定的单词。有关此方法的详细信息,请参阅我对custom tagging with nltk的回答。

票数 5
EN

Stack Overflow用户

发布于 2014-05-06 02:17:02

我尝试使用NLTK v3.0重现该bug。我想现在nltk.pos_tag()已经解决了。正如#雅各布提到的,您可以使用Brown语料库来训练标记器(python中的nltk),如下所示;

代码语言:javascript
运行
复制
from nltk.corpus import brown
train_sents = brown.tagged_sents()
unigram_tagger = nltk.UnigramTagger(train_sents)
tokens=nltk.word_tokenize("Is John very nice?")
tagged=unigram_tagger.tag(tokens)
tagged

但请注意,标签集取决于用于训练标签者的语料库。nltk.pos_tag()的默认标记器使用Penn Treebank Tag Set

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8365557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档