Joh*_*ugo 4 python text-processing nlp machine-learning nltk
如何使用Python + NLTK来识别句子是指过去/现在/将来?
我只能使用POS标记吗?这似乎有点不准确,在我看来,我需要考虑句子上下文而不仅仅是单词.
对于另一个可以做到这一点的图书馆的任何建议?
POS标记 - 它为您提供了让您查看动词时态的标记 - 已经考虑了句子上下文,因此它解决了您的问题.通过背景准确.事实上,POS标签实际上并不适用于单词本身!从Ch看这个例子.在给出句子中的上下文的情况下,NLTK书的第5部分允许NLTK区分名词和动词给出的同音异义词(即给出像许可这样的词,可以具有不同的含义作为动词和名词):
让我们看另一个例子,这次包括一些同音异义词:
>>> text = nltk.word_tokenize("They refuse to permit us to obtain the refuse permit")
>>> nltk.pos_tag(text)
[('They', 'PRP'), ('refuse', 'VBP'), ('to', 'TO'), ('permit', 'VB'), ('us', 'PRP'),
('to', 'TO'), ('obtain', 'VB'), ('the', 'DT'), ('refuse', 'NN'), ('permit', 'NN')]
Run Code Online (Sandbox Code Playgroud)
请注意,拒绝和许可都显示为现在时动词(VBP)和名词(NN).例如,refUSE是一个动词,意思是"拒绝",而REFuse是一个名词,意思是"垃圾"(即它们不是同音异义词).因此,我们需要知道正在使用哪个单词才能正确发音.(因此,文本到语音系统通常执行POS标记.)