Python 有没有办法告诉NLTK某个单词不是';不是专有名词而是名词?
我正在做NLP,在那里我发现患者何时被诊断为多发性硬化症 我想用nltk告诉我一个句子的名词是多发性硬化症。问题是,医生经常将多发性硬化症称为MS,nltk将其作为专有名词 例如,这句话“他的多发性硬化症是在1999年被诊断出来的。”被标记为:Python 有没有办法告诉NLTK某个单词不是';不是专有名词而是名词?,python,nlp,nltk,Python,Nlp,Nltk,我正在做NLP,在那里我发现患者何时被诊断为多发性硬化症 我想用nltk告诉我一个句子的名词是多发性硬化症。问题是,医生经常将多发性硬化症称为MS,nltk将其作为专有名词 例如,这句话“他的多发性硬化症是在1999年被诊断出来的。”被标记为:[('His','PRP$),('MS','NNP'),('was','VBD'),('diagnostics','VBN'),('in','in'),('1999','CD'),(',',,')] MS在这里应该是一个名词。有什么建议吗?总结一下,您有以
[('His','PRP$),('MS','NNP'),('was','VBD'),('diagnostics','VBN'),('in','in'),('1999','CD'),(',',,')]
MS在这里应该是一个名词。有什么建议吗?总结一下,您有以下选择:
命名实体识别是一个难题。请尝试。您当前正在使用默认的POS标记器。因此,在这种情况下,您需要训练您自己的语料库,包括正确的POS标记值。如果不是作为一种回退机制,那么在使用默认的语料库POS标记器模型之后,您应该有另一个纠错层。数据的来源是什么?可以分享吗?是否有一个单词/短语/缩写列表,您希望它们始终是名词?你有标记的数据吗?数据的域是什么?词性标注的最终目的是什么?回答这些问题会缩小问题的范围。在您的特定示例中,您可以对标记的数据进行后处理,然后将
('MS','NNP')
更改为('MS','NN')
。但我猜你不想要那个,你想要一个完美的标签。你有没有想过如何确定要覆盖哪些单词?如果“MS”不是你唯一的例子,而且你想进行如此大规模的研究,我可能会研究词义消歧,并使用医学词典作为最可能的单词含义的基础。