为什么NLTK的PoS标记器为单词中的每个字母标记而不是为每个单词标记?

说我有这样的句子:I am a boy。我想找出句子中每个单词的词性。这是我的代码:


import nltk

sentence = 'I am a good boy'

for word in sentence:

    print(word)

    print(nltk.pos_tag(word))

但这会产生以下输出:


I

[('I', 'PRP')]


[(' ', 'NN')]

a

[('a', 'DT')]

m

[('m', 'NN')]


[(' ', 'NN')]

a

[('a', 'DT')]


[(' ', 'NN')]

g

[('g', 'NN')]

o

[('o', 'NN')]

o

[('o', 'NN')]

d

[('d', 'NN')]


[(' ', 'NN')]

b

[('b', 'NN')]

o

[('o', 'NN')]

y

[('y', 'NN')]

因此,我尝试改为这样做:


sentence = 'I am a good boy'

for word in sentence.split(' '):

    print(word)

    print(nltk.pos_tag(word))

这将产生以下输出:


I

[('I', 'PRP')]

am

[('a', 'DT'), ('m', 'NN')]

a

[('a', 'DT')]

good

[('g', 'NN'), ('o', 'MD'), ('o', 'VB'), ('d', 'NN')]

boy

[('b', 'NN'), ('o', 'NN'), ('y', 'NN')]

为什么要为每个字母而不是每个单词找到PoS?以及我该如何解决?


www说
浏览 175回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python