NLTK中没有pos_tag的ne_chunk

我正在尝试在nltk中使用ne_chunk和pos_tag对句子进行分块。

from nltk import tag
from nltk.tag import pos_tag
from nltk.tree import Tree
from nltk.chunk import ne_chunk

sentence = "Michael and John is reading a booklet in a library of Jakarta"
tagged_sent = pos_tag(sentence.split())

print_chunk = [chunk for chunk in ne_chunk(tagged_sent) if isinstance(chunk, Tree)]

print print_chunk

结果如下:

[Tree('GPE', [('Michael', 'NNP')]), Tree('PERSON', [('John', 'NNP')]), Tree('GPE', [('Jakarta', 'NNP')])]

我的问题是,是否可以不包括pos_tag(如上面的NNP)而仅包括Tree'GPE','PERSON'?“ GPE”是什么意思?

提前致谢

亚历克西斯

命名的实体分块器将为您提供包含分块和标签的树。您不能更改它,但是可以取出标签。从您的tagged_sent

chunks = nltk.ne_chunk(tagged_sent)
simple = []
for elt in chunks:
    if isinstance(elt, Tree):
        simple.append(Tree(elt.label(), [ word for word, tag in elt ]))
    else:
        simple.append( elt[0] )

如果只需要块,则忽略else:上面子句。您可以修改代码以任意方式包装大块。我使用nltkTree将更改保持在最低限度。请注意,某些块包含多个单词(尝试在示例中添加“ New York”),因此,块的内容必须是列表,而不是单个元素。

PS。“ GPE”代表“地缘政治实体”(显然是一个大块的错误)。您可以在此处找到nltk书中的“常用标签”列表

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有什么办法可以将'pos_tag'的值放入python nltk的字典中的列表中?

nltk中的pos_tag和UnigramTagger和BigramTagger有什么区别?

NLTK 3 POS_TAG引发UnicodeDecodeError

NLTK:lemmatizer和pos_tag

Python NLTK pos_tag引发URLError

NLTK pos_tag模块返回LookupError

如何使用NLTK ne_chunk提取GPE(位置)?

Python NLTK pos_tag未返回正确的词性标签

如何从nltk pos_tag获取标签集?

如何使用NLTK pos_tag()提取名词?

如何POS_TAG法语句子?

为什么在使用 nltk.ne_chunk 分块后我没有得到 'PERSON' nad 'GPE' 作为标签

如何使用NLTK RegexpParser Chunk为Python中的POS_tagged单词提取特殊字符

NLTK v3.2:无法使用nltk.pos_tag()

为什么pos_tag()如此缓慢,却可以避免?

在NLTK中评估POS标记器

我的pos_tag遍历每个字母,我需要它才能应用于整个单词

如何通过nltk.pos_tag()函数使用通用POS标签?

NLTK可能有哪些pos标签?

打印带有删除形容词的 pos 标签 (NLTK)

具有XPATH的iMacros TAG POS

如何在nltk中的斜杠前删除POS标签?

NLTK ConllCorpusReader中的NE标签

将nltk.pos_tag应用于整个数据框

如何在pyspark数据帧上应用nltk.pos_tag

AttributeError:“ ElementTree”对象在Python中没有属性“ tag”

<img> -tag中的JS函数没有被调用

AttributeError:“列表”对象没有属性“ isdigit”。指定句子列表中每个单词的POS有效吗?

猫鼬:如果没有数据字段,则无法从.chunk集合中获取文件文档