使用nltk pos标记器标记单个单词标记每个字母而不是单词

时间:2015-04-01 18:04:19

标签: python python-2.7 nlp nltk pos-tagger

我尝试使用nltk pos标记器标记单个单词:

word = "going"
pos = nltk.pos_tag(word)
print pos

但输出是这样的:

[('g', 'NN'), ('o', 'VBD'), ('i', 'PRP'), ('n', 'VBP'), ('g', 'JJ')]

它标记每个字母而不仅仅是一个字。

我该怎么做才能让它标记出来?

4 个答案:

答案 0 :(得分:8)

nltk.tag.pos_tag接受令牌列表,分隔并标记其元素。因此,您需要将您的单词放在可迭代的列表中:

>>> nltk.tag.pos_tag(['going'])
[('going', 'VBG')]

答案 1 :(得分:3)

>>> word = 'going'
>>> word = nltk.word_tokenize(word)
>>> l1 = nltk.pos_tag(word)
>>> l1
[('going', 'VBG')]

答案 2 :(得分:2)

返回一个单词的POS标签

nltk.pos_tag(["going"])
----->[('going', 'VBG')]

答案 3 :(得分:0)

标记器适用于单词列表。要将字符串转换为列表,只需使用类似

的内容
word_list = [word]

然后使用word_list上的pos标记。请注意,如果您有多个单词,则应首先在字符串上运行nltk.word_tokenize

至于仅标记一个单词的成功,您应该查看4.3节here中提到的查找标记器。 nltk使用的pos_tag比单个单词查找标记更复杂,但它确实使用了一个作为过程的一部分,所以你应该看到ok结果。