我尝试使用nltk pos标记器标记单个单词:
word = "going"
pos = nltk.pos_tag(word)
print pos
但输出是这样的:
[('g', 'NN'), ('o', 'VBD'), ('i', 'PRP'), ('n', 'VBP'), ('g', 'JJ')]
它标记每个字母而不仅仅是一个字。
我该怎么做才能让它标记出来?
答案 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结果。