在NLTK pos_tag中,为什么"你好"被归类为名词?

Key*_*ana 2 python nlp nltk

我试过了

text = nltk.word_tokenize("hello, my name is John")
words = nltk.pos_tag(text)

for w in words:
    print "%s = %s" % (w[0], w[1])
Run Code Online (Sandbox Code Playgroud)

我得到了:

hello = NN
, = ,
my = PRP$
name = NN
is = VBZ
John = NNP
Run Code Online (Sandbox Code Playgroud)

rma*_*ouf 9

根据Penn Treebank标签集,你好肯定是一个感叹词,并且一直标记为UH.您遇到的问题是,NLTK附带的标记很可能是在Penn Treebank的华尔街日报部分免费提供的培训,不幸的是,您包含的单词hello和只有三个字标记为UH(感叹词).如果你想标记语音文字,你需要在整个宾州树园上训练你的标记,其中包括300万字的英语口语.

顺便说一下,NLTK标记器并不总是会把名字叫做hello - 尝试标记"不要问我!" 或者"他说你好".