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

2024-06-16 13:43:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用nltk pos标记器标记一个单词:

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

但结果是:

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

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

我能做什么让它标记这个词?


Tags: 标记postag字母nn单词wordprint
3条回答
>>> word = 'going'
>>> word = nltk.word_tokenize(word)
>>> l1 = nltk.pos_tag(word)
>>> l1
[('going', 'VBG')]

^{}接受标记列表,分离并标记其元素。因此,你需要把你的话放在一个合适的列表中:

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

标记器在单词列表上工作。要将字符串转换为列表,只需使用

word_list = [word]

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

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

相关问题 更多 >