Существует ли алгоритмический подход для определения того, что даты, указанные в абзаце, соотносятся с конкретными событиями (фразами) в абзаце?
Пример, рассмотрим следующий абзац:
В июне 1970 года великий лидер принес присягу. Но только после мая 1972 года, после смерти государственного министра, он взял на себя управление страной. Хотя он пользовался народной поддержкой до середины 1980 года, его влияние после этого стало падать.
Существует ли алгоритм (детерминированный или стохастический) #, который может генерировать 2-кортеж (дата, событие), где подразумевается, что событие произошло в дату ? В приведенном выше случае:
- (Июнь 1970 года, великий лидер принес присягу)
(Май 1972 года взял на себя управление)
или еще лучше
- (Май 1972 года великий вождь взял на себя управление)
- (1980, падение влияния)
# Позднее добавление
(<= May 1972, death of the Minister of State)
или(<= Mid-1980, [the great leader] enjoyed popular support)
.Ответы:
В общем, проблема определения дат и других временных маркеров в тексте называется проблемой извлечения временных ссылок . Поиск по ссылке приведет вас к документам, связанным с этим.
источник
Поскольку вы просите алгоритмический подход, я буду таким же упрямым, как алгоритм. Извините, что рассматриваю этот вопрос как этот, но так как он не кажется сложной теоретической проблемой, я обобщу возможные подходы.
Вопрос: можете ли вы дать мне алгоритмическое определение даты и конкретного события?
Если вы можете: Поскольку ваше определение является алгоритмическим, то это, вероятно, какая-то формальная грамматика , и ваша проблема будет в том, чтобы настроить эту грамматику так, чтобы она учитывала каждый случай, который вам нужно рассмотреть. (Мне интересно, если вы можете дать мне точное определение, которое не является формальной грамматикой)
Если вы не можете: по крайней мере, вы можете придумать примеры. Ладно. Лучший - и только я могу придумать - подход - это алгоритмы машинного обучения, которые вам придется тренировать, чтобы распознать ваши даты, а затем ваши события. (Использование набора предложений, аннотированных вручную). Однако это довольно трудоемко по сравнению с каким-то большим регулярным выражением, которое, вероятно, выполнит эту работу. Если вы действительно, действительно хотите это сделать, я думаю, наиболее эффективным будет такой тип регулярного выражения, который задается в качестве параметра алгоритма обучения, но вам лучше спросить экспертов по машинному обучению.
Удачи в этом, гораздо проще просто поговорить об этом (в обоих случаях).
источник