В настоящее время я тестирую аннотатор именованных сущностей Stanford NLP с правилами regexner.Я основал свой код на этом примере.https://javadeveloperzone.com/nlp/nlp-standford-regexner-example/
Согласно документации Stanford NLP
Четвертый столбец может использоваться для придания правилам приоритета.Если несколько правил совпадают, результат не определен, если вы не назначите правилам приоритет.Вот (глупое) расширение последнего файла, где у нас есть правила с приоритетами.Приоритеты находятся в четвертом столбце, поэтому обратите внимание, что между меткой объекта и приоритетом есть две вкладки.Правила без явно заданного приоритета имеют приоритет 1.0.
Допустим, у меня есть правила сущности RegexNER с приоритетом:
Брэд Питт АКТЕР ЛИЦА 1.0
БРЭД ПИТТ ЧЕЛОВЕК ДИРЕКТОРА 2.0
У меня есть это в моем коде.
public String getTokenNerTags(CoreDocument document) {
return document.tokens()
.stream()
.map(token -> token.word()+":"+token.ner())
.collect(Collectors.joining(" "));
}
Например, я хотел бы ввести этот текст:
поиск фильмов Брэда Питта
Мой вопрос: как программно вывести объект с наивысшим приоритетом?
Например: ВЫХОД:
поиск{DIRECTOR} Брэд Питт {DIRECTOR} фильмы