Тренировочная модель NER в Стэнфорде-НЛП
Я пытался поиграть со Стэнфордским Core NLP. Я хотел бы тренировать свою собственную модель NER. На форумах SO и на официальном сайте описывается использование файла свойств для этого. Как бы я сделал это через API?
Properties props = new Properties();
props.setProperty("annotators", "tokenize, ssplit, pos, lemma, ner, parse, sentiment, regexner");
props.setProperty("regexner.mapping", "resources/customRegexNER.txt");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
String processedQuestion = "Who is the prime minister of Australia?"
//Annotation annotation = pipeline.process(processedQuestion);
Annotation document = new Annotation(processedQuestion);
pipeline.annotate(document);
List<CoreMap> sentences = document.get(SentencesAnnotation.class);
for (CoreMap sentence : sentences) {
// To get the tokens for the parsed sentence
for (CoreMap tokens : sentence.get(TokensAnnotation.class)) {
String token = tokens.get(TextAnnotation.class);
String POS = tokens.get(PartOfSpeechAnnotation.class);
String NER = tokens.get(NamedEntityTagAnnotation.class);
String Sentiment = tokens.get(SentimentClass.class);
String lemma = tokens.get(LemmaAnnotation.class);
- Как и где я могу добавить файл Prop?
- Токенизация N-граммы (например, премьер-министра следует рассматривать как один токен, позже этот токен передается для POS, NER вместо двух токенов (премьер и министр))?
1 ответ
Решение
Я думаю, что это может работать с этим кодом:
val props = new Properties()
props.put("annotators", "tokenize, ssplit, pos, lemma, ner, regexner")
props.put("ner.model", "/your/path/ner-model.ser.gz");
val pipeline = new StanfordCoreNLP(props)