Как найти ссылки на даты в естественном тексте? - PullRequest
1 голос
/ 13 марта 2012

Что я хочу сделать, это проанализировать необработанный естественный текст и найти все фразы, описывающие даты.

У меня довольно большой корпус со всеми ссылками на даты, помеченные:

I met him <date>yesterday</date>.
Roger Zelazny was born <date>in 1937</date>
He'll have a hell of a hangover <date>tomorrow morning</date>

Я не хочу интерпретировать фразы даты, просто найдите их. Тот факт, что они являются датами, не имеет значения (в реальной жизни это даже не даты, но я не хочу утомлять вас деталями), в основном это просто набор возможных значений. Грамматика самих значений может быть аппроксимирована как не зависящая от контекста, однако это довольно сложно построить вручную, и с увеличением сложности становится все труднее избежать ложных срабатываний.

Я знаю, что это довольно далеко, поэтому я не ожидаю, что там будет существовать готовое решение, но какую технологию или исследование я могу потенциально использовать?

Ответы [ 2 ]

6 голосов
/ 13 марта 2012

Один из общих подходов, используемых в научных кругах и в промышленности, основан на условных случайных полях.По сути, это специальная вероятностная модель, вы сначала обучаете ее размеченными данными, а затем она может маркировать определенные типы объектов в данном тексте.

Вы даже можете попробовать одну из систем из Stanford Natural LanguageГруппа обработки: Stanford Named Entity Recognizer

Когда вы загружаете инструмент, обратите внимание, что есть несколько моделей, вам нужна последняя:

В комплекте со StanfordNER - это модель из 4 классов, подготовленная для CoNLL, модель из 7 классов, подготовленная для MUC, и модель из 3 классов, обученная на обоих наборах данных для пересечения этих наборов классов.

3 Расположение класса, лицо, организация

4 класс Местоположение, человек, организация, разное

7 класс Время, место, организация, человек, деньги, проценты, дата

Обновление. Вы можете попробовать этот инструмент онлайн здесь .Выберите классификатор muc.7class.distsim.crf.ser.gz и попробуйте текст с датами.Кажется, он не признает «вчера», но, например, признает «20-й век».В конце концов, это вопрос обучения CRF.


Stanford NER screenshot

4 голосов
/ 13 марта 2012

Имейте в виду, что CRF довольно медленны в обучении и требуют аннотированных человеком данных, поэтому сделать это самостоятельно непросто. Прочитайте ответы на этот , чтобы увидеть еще один пример того, как люди часто делают это на практике - мало общего с текущими научными исследованиями.

...