【问题标题】:Integrate custom trained NER model with existing default model in Stanford CoreNLP将自定义训练的 NER 模型与 Stanford CoreNLP 中的现有默认模型集成
【发布时间】:2019-09-24 05:18:20
【问题描述】:

我通过以下链接训练了语料库。

https://www.sicara.ai/blog/2018-04-25-python-train-model-NTLK-stanford-ner-tagger

数据集是我训练过的一些健康博客(英文)。我能够成功地在我的新看不见的文本上运行这个模型。

问题:我面临的问题是我想在 Stanford CoreNLP 中运行我的自定义英语 NER 模型和默认英语模型。

期望结果:我希望斯坦福默认模型在我自己的自定义模型 NER 模型之后以顺序方式运行,以处理我自己的模型遗漏的那些英文实体。

【问题讨论】:

  • @StanfordNLPH帮助任何线索?
  • @ChristopherManning 请调查一下。

标签: python stanford-nlp named-entity-recognition


【解决方案1】:
 ner.model = /path/to/custom-model.ser.gz,edu/stanford/nlp/models/ner/english.all.3class.distsim.crf.ser.gz,edu/stanford/nlp/models/ner/english.muc.7class.distsim.crf.ser.gz,edu/stanford/nlp/models/ner/english.conll.4class.distsim.crf.ser.gz

这里有更多信息:

https://stanfordnlp.github.io/CoreNLP/api.html

https://stanfordnlp.github.io/CoreNLP/cmdline.html

【讨论】:

  • 感谢@StanfordNLPHelp,它确实有效,但我想随后覆盖以前模型的结果。碰巧有一些与我国有关的实体。使用我的自定义模型,我仅使用自定义标签注释这些实体/令牌。我希望通过默认的斯坦福 NER 模型对剩余的实体进行注释。你能帮忙吗?
  • 自定义模型的标签集是什么。
  • 自定义模型具有 BRAND、MODEL_NAME、CATEGORY 等标签。例如,有一个文字“欧莱雅乳液是美国的美容产品”。我的自定义模型应给出结果为 NER [ ('L'Oreal' , 'Brand') , ('Lotion' , '0') , ('is' , 0) , ('a', 0) , ('beauty ', 'CATEGORY') , ('product' , 'CATEGORY') , ('USA' , '0).在上述结果中,作为品牌的欧莱雅已与作为类别的美容产品一起进行了自定义注释。正如观察到的我的自定义模型忽略了美国。
  • 斯坦福的后续 NER(默认英语)模型应通过将 USA 注释为“国家”来处理此问题,仅覆盖那些尚未由我的自定义模型处理且已被忽略的结果“0”跨度>
  • 如果您按照我的建议设置 ner.model,这应该是行为。它将按顺序运行每个模型。如果第一个模型只有特殊的自定义标签,那么序列中的未来模型应该正常运行。
猜你喜欢
  • 2020-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多