Stanford CoreNLP:您如何将标准但俄罗斯训练的NER模型与完全定制的模型进行整合?

问题描述 投票:0回答:1

我目前正致力于将核心参考标记算法应用于俄语,作为我的大学项目的一部分,基于斯坦福CoreNLP。在大多数情况下,它很容易:已经存在用于lemmatisation和PoS标记的俄罗斯模型。但是,该语言没有NER模型,至少基于CoreNLP,因此,我必须使用CoreNLP的统计方法自己训练这样的模型。

问题在于将这种新训练的NER模型适应于lemmatisation和PoS标记模型。虽然我的模型纯粹是统计的,并且仍然基于最初的CoreNLP代码,但另外两个代码完全不同。因此,我实际上无法让我的NER集成它们。你怎么能做到这一点?相关代码是:

props.setProperty("annotators", "tokenize,ssplit,pos,custom.lemma,custom.morpho,custom.ner,depparse, mention, coref");
props.setProperty("pos.model", "edu/stanford/nlp/models/pos-tagger/russian-ud-pos.tagger");
props.setProperty("customAnnotatorClass.custom.lemma", "edu.stanford.nlp.international.russian.process.RussianLemmatizationAnnotator");
props.setProperty("custom.lemma.dictionaryPath", "edu/stanford/nlp/international/russian/process/dict.tsv");
props.setProperty("customAnnotatorClass.custom.morpho", "edu.stanford.nlp.international.russian.process.RussianMorphoAnnotator");
props.setProperty("customAnnotatorClass.custom.ner", "edu.stanford.nlp.international.russian.process.RussianMorphoAnnotator");
props.setProperty("custom.morpho.model", "edu/stanford/nlp/models/pos-tagger/russian-ud-mf.tagger");
props.setProperty("ner.model", "C:/Users/Admin/eclipse-workspace/Coreference-Evaluation-master/libs/russian-new-model.ser.gz");
props.setProperty("depparse.model", "edu/stanford/nlp/models/parser/nndep/nndep.rus.model.wiki.txt.gz");
props.setProperty("depparse.language", "russian");
props.setProperty("parse.maxlen", "100");
props.setProperty("ssplit.eolonly", "true");
props.setProperty("tokenize.whitespace","true");
props.setProperty("coref.removeSingletonClusters","false");
pipeline = new StanfordCoreNLP(props);
System.out.println(pipeline);

在您建议我完全改变算法之前:我现在对Java的了解不足以对现有代码进行如此根本性的更改。

nlp stanford-nlp ner
1个回答
0
投票

您需要使用自定义词形变换器和词性标注器标记NER训练数据。还要确保标记化与您在测试时使用的标记化相同。然后使用预测的引理和词性标签训练NER模型。这假设您在NER模型中使用它们作为功能。

如果您的NER训练数据中没有词性或引理数据,那么管道应该可以正常工作,因为NER模型不会将这些功能用于其决策。我不相信我们分发的NER模型使用这些功能。

© www.soinside.com 2019 - 2024. All rights reserved.