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

标签 python nlp nltk

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

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

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

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

最佳答案

总结起来,您有以下选择:

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

关于python - 有没有办法告诉 NLTK 某个词不是专有名词而是名词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34911264/

相关文章:

python - 如何使用 json.loads 将字符串 int JSON 转换为真正的 int

nlp - 自然语言处理包

Python 上下文无关语法和 PCFG 生成基准?

python - 如何使用python删除重复的文本 block

python - 最长递增子序列高效算法Python实现

python - opencv python多线程视频采集

python - 从键改变的列表中获取索引,groupby

nlp - 使用经过训练的 BERT 模型和数据预处理

python - 使用 python 查找希腊语中的单词类别(POS 标签)

python - 如何在带有朴素贝叶斯分类器和 NLTK 的 scikit 中使用 k 折交叉验证