#java #stanford-nlp #named-entity-recognition #named-entity-extraction
#java #stanford-nlp #распознавание именованных объектов #извлечение именованных объектов
Вопрос:
Демонстрационный файл, который поставляется с пакетом распознавания именованных сущностей Stanford, показывает примеры классификации предложений. Параметры вывода представляют собой строки, такие как:
"I eat apples with Michael and Jordan on mondays"
=>
"I eat apples with <PERSON>Michael</PERSON> and
<PERSON>Jordan</PERSON> on <DATE>mondays</DATE>"
или карта классификаций для каждого слова.
Существует ли метод, который возвращает отображение классификации в список объектов?
НАПРИМЕР:
{
PERSON : ["Michael", "Peter"]
DATE : ["mondays"]
}
Комментарии:
1. просто разбирайте строки самостоятельно, добавляя теги 🙂
2. было интересно, есть ли более элегантный способ сделать это
3. Короткий ответ: нет. Длинный ответ: существует несколько программных интерфейсов для разных языков, используйте их, если вам не нравится формат вывода
Ответ №1:
Вот минимальный скрипт bash, который будет выполнять это как постобработку :
echo "I eat apples with <PERSON>Michael</PERSON> and <PERSON>Jordan</PERSON> on <DATE>mondays</DATE>"
| grep -Eo '<([^>/]*)>[^<]*'
| awk -F '>' '{nes[$1]=nes[$1]","$2;} END {for(t in nes) print tolower(t)":{"nes[t]"}";}'
| sed 's/:{,/:{/' | tr -d '<'
используя это, вы получите списки, как в вашем примере :
date:{mondays}
person:{Michael,Jordan}
Вероятно, вы захотите обработать несколько записей («uniq» или посчитать их?).