有没有办法告诉NLTK某个单词不是专有名词而是名词?

时间:2016-01-20 21:48:30

标签: python nlp nltk

我正在做一些NLP,我发现患者被诊断患有多发性硬化症。

我想用nltk告诉我句子的名词是多发性硬化症。问题是,医生经常将多发性硬化症称为MS,它不会被作为专有名词。

例如,这句话,“他的MS在1999年被诊断出来。”标记为:[('His', 'PRP$'), ('MS', 'NNP'), ('was', 'VBD'), ('diagnosed', 'VBN'), ('in', 'IN'), ('1999', 'CD'), ('.', '.')]

MS应该是这里的名词。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

总结一下,您有以下选择:

  1. 在后期处理中纠正标签 - 有点难看,但又快捷方便。
  2. 雇用一个外部的名称实体识别器(斯坦福NER,正如@Bob Dylan已经仔细考虑过的那样) - 这个更为复杂,特别是因为斯坦福NER在java中并不是特别快。
  3. 在特定于域的数据上重新绑定POS Tagger(您是否有足够大的带注释数据集来使用它?)
  4. 使用 WSD (Word Sense Disambiguation)方法 - 首先,您需要使用一个好的域词典。