关于Spacy的词性

Regarding Spacy's part of speech

我正在使用 Spacy 解析数据。我必须提取所有的名词和形容词,但对于某些词我得到了一些不寻常的结果。例如,'use' 将作为名词而不是动词出现,我也希望 'Left' 作为形容词而不是动词,例如 'right' 在右膝疼痛中。有没有办法做到这一点?

import spacy
nlp = spacy.load('en')
doc = nlp(u'Alcohol use. Left knee pain. Right knee pain')
for word in doc:
   print(word.text, word.pos_)

Output:
    Alcohol NOUN
   use NOUN
   . PUNCT
   Left VERB
   knee NOUN
   pain NOUN
   . PUNCT
   Right ADJ
   knee NOUN
   pain NOUN

词性标注的准确性不是 100%。它只有97%左右。所以我们应该预料到这些行为。此外,您用于测试的句子即使对于人类来说也是模棱两可的。

如果您使用 en_core_web_mden_core_web_lg 等更高级的模型,您将获得更高的准确性。在你的情况下,如果你使用这些模型中的任何一个而不是默认的 'en' 模型,你将得到 'Left' 作为形容词。