Через библиотеку CoreNLP при вызове ner()
для CoreLabel
я получаю строку, указывающую его именованный тег объекта (например, PERSON
или DATE
).
Однако я не знаю способа сравнить токены в предложении друг с другом. Например: (текст токенов, заключенный в обратные кавычки)
`Ellen` PERSON
`Wexler `PERSON
`,` O
`February` DATE
`9` DATE
`,` DATE
`2016` DATE
Как с помощью CoreNLP сгруппировать теги людей, чтобы получить имя Ellen Wexler
? Или теги даты, чтобы получить February 9, 2016
, или другое представление, которое я мог бы в конечном итоге превратить в объект Date/Calendar в Java? Я рассмотрел приведенный пример здесь, однако это находит теги ner только для каждой отдельной основной метки. Это не дает мне возможности группировать последовательные идентичные теги ner вместе.
Что я пробовал: я написал цикл for, который выполняет итерацию по предложению и находит X последовательных идентичных тегов ner (то есть, если X равно 2, а тег ner равен PERSON
, он найдет 2 последовательные ЛИЦА). В данном сценарии это Ellen Wexler
. Однако это нарушается, когда в игру вступает пунктуация, поскольку пунктуации, в зависимости от контекста, присваивается тег ner соседних с ним токенов. Кроме того, должен быть какой-то способ сделать это через CoreNLP.
Мое исследование: На этот аналогичный вопрос ответа нет. Домашняя страница CoreNLP не дает ответа, поскольку предоставляет только пример анализа отдельных основных меток/токенов.