CoreNLP - NER и SUTime для распознавания только абсолютных дат
Я работаю с аннотатором распознавания именованных объектов CoreNLP.
Моя проблема в том, что я хотел бы не признавать в качестве сущностей относительные даты. Моя цель - связать даты с событиями
Некоторые интересные даты - 18 февраля 1997 года, 20 июля 1992 года, 4 дня с сегодняшнего дня и понедельник 13-го.
В этом примере я хотел бы выделить "18 февраля 1997", "20 июля" и "1992". Даже если некоторые из этих дат не являются полными, их все равно можно использовать для поиска событий.
С другой стороны, "4 дня с сегодняшнего дня" и "Понедельник, 13-е" для меня не интересны: причина в том, что первое относится к текущей дате (или дате написания текста), а второе слишком общий.
Есть ли простой способ сообщить аннотатору NER об отмене относительных дат?
Спасибо
1 ответ
Я нашел следующее решение, которое очень хорошо работает в моем случае.
Каждый токен, представляющий именованный объект времени / даты, имеет поле аннотации, содержащее его нормализованную форму.
Абсолютные даты, которые я хочу узнать, будут иметь нормализованную форму, которая соответствует следующей схеме:
- 18 февраля 1997 -> 1997/02/18
- 20 июля -> XXXX / 07/20
- 1992 -> 1992
Используя REGEX, можно отбросить аннотации, которые не имеют такой нормализованной формы.
(\d{4}|X{4})((\/\d{2}(\/\d{2})?)?)