В настоящее время я работаю над адаптацией алгоритма тегирования coreference для русского языка в рамках моего университетского проекта, основанного на Stanford CoreNLP.По большей части это было достаточно просто: уже существуют российские модели для лемматизации и PoS-тегов.Однако для языка не было модели NER, по крайней мере, основанной на CoreNLP, и поэтому мне пришлось самому обучать такую модель с использованием статистических методов CoreNLP.
Проблема в том, чтобы адаптировать эту новую обученную модель NER кмодели лемматизации и 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 на данный момент недостаточно хороши, чтобы внести такие радикальные изменения в уже существующий код.