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

Spe*_*ton 5 python nlp nltk

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

我想用nltk告诉我一个句子的名词是多发性硬化症.问题是,医生经常将多发性硬化症称为MS,而nltk则将其作为专有名词.

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

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

sop*_*ros 0

总而言之,您有以下选择:

  1. 在后处理中纠正标签 - 有点难看,但又快又容易。
  2. 使用外部名称实体识别器(Stanford NER,@Bob Dylan 深思熟虑地建议) - 这个涉及更多,特别是因为斯坦福 NER 是用 java 编写的,而且速度不是特别快。
  3. 在特定领域的数据上重新训练 POS 标记器(您是否有足够大的带注释数据集来使用它?)
  4. 使用WSD(词义消歧)方法 - 首先,您需要有一个好的域词典可供使用。