【发布时间】:2018-07-09 06:37:37
【问题描述】:
假设我有这句话: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?我该如何解决这个问题?
【问题讨论】:
标签: python string nlp nltk part-of-speech