Использование грамматик для извлечения библиографических ссылок

Моя задача лежит в области интеллектуального анализа текста /маркировки, более конкретное извлечение библиографических ссылок (ссылок) из простого текста, как показано ниже:

введите описание изображения здесь

В принципе, для входного текста алгоритм должен распознавать:

  • Начало и конец цитаты
  • Название журнала, название, автор, выпуск, том, страницы

Эта задача уже была рассмотрена, например, Анализ синтаксиса с использованием максимальной энтропии и ремонта (Ng Yong Kiat, 2005) , который показал, что CRF модели лучше, чем MEMM или основанные на шаблонах подходы . В настоящее время существует два проекта, которые выполняют работу:

Пока результаты упомянутых подходов уже известны (и очень хороши), мне была поставлена ​​задача сделать то же самое, но использовать контекстно-свободные грамматики. Действительно, информация выглядит очень структурированной, но я не уверен, что этот подход может превзойти CRF по чувствительности, по крайней мере, я надеюсь, что он сможет превзойти его по точности.

Моя идея такова:

  • Определите фиксированные правила грамматики для уже известных типов:
    YEAR → (19|20)\d\d | \d\d\d\d
    PAGE → \d{1,3}\-\d{1,3} | e\d{1,3}
    ISSUE → \d{1,3}
  • Можно сделать вывод, что из тренировки заданы вероятности альтернатив правила, например:
    PAGE → \d{1,3}\-\d{1,3} with P=0.8 | e\d{1,3} with P=0.2
  • Из предварительно аннотированного набора тренировок генерируются правила высокого уровня (все символы между терминалами не являются терминалами):
    CITATION → AUTHORS, JOURNALTITLE, ISSUE, PAGES, YEAR | AUTHORS, BOOKTITLE, VOLUME, CHAPTER, CHAPTERTITLE, EDITORS, PUBLISHER, PUBPLACE | ...
    CITATIONS → CITATION | CITATIONS; CITATION | CITATIONS; and CITATION

Проблемные места:

  • AUTHORS: для них нет фиксированного правила, но можно написать функцию, которая может оценивать, что данный текст выглядит как автор. Также список возможных (английских) фамилий не так велик, но если я создам тысячи правил, это замедлит грамматический синтаксический анализатор. Скажем, для авторов у нас есть функция подсчета очков, что для данного ввода возвращает число [0 .. 1], отражающее, как ввод действительно выглядит как автор. Грамматический анализатор должен подавать все возможные варианты для AUTHORS и останавливаться на одном с лучшим результатом.
  • JOURNALTITLE: та же история. Очевидно, нет общего правила для его определения. Существует список всех журналов, но затем также появляется подзадача аббревиатуры: Ann. NY Acad. Sci. = Ann N.Y. Academy Sci = Annals из Нью-Йоркской академии наук . Опять же, мы можем определить для этого функцию подсчета очков; в худшем случае функция может измерять расстояние между входными ставками и всеми известными названиями журналов, используя Damerau -Levenshtein .
  • Текст, подобный «Vol», «Chapter», «отредактированный», может быть очень полезен в качестве терминаторов, префиксных соответствующих значений (и, таким образом, уменьшения двусмысленности грамматики), но могут ли они быть идентифицированы и узнаны автоматически?
  • То же самое для терминаторов до и после цитаты, что может быть очень полезно (возможно, ускорит разбор):
    SUPERCITATION → ( CITATIONS ) | ( see, e.g., CITATION ) | see, for example, CITATION | described in, e.g., CITATION | is disclosed by CITATION
    Имеет ли смысл «жестко кодировать» их или пытаться их изучить?
  • Текст «шума» между цитатами: как с этим бороться?

Цель лексического анализа, возможно, не в том, чтобы найти наиболее вероятное дерево синтаксического анализа, а также для максимизации функций AUTHORS и JOURNALTITLE.

Может кто-нибудь мне посоветует:

  • Если SCFG - это правильный способ подойти к проблеме? Если да, как можно адаптировать этот подход для создания дерева синтаксиса на основе вероятностей, а также функций подсчета очков?
  • Есть ли другие относительные работы /статьи?
  • Существуют ли библиотеки, которые могут помочь в разделении текста (написанный таким образом, который может применяться также, например, для китайского текста)? Я нашел таких монстров, как UIMA , Mallet , MinorThird ... Интересно о вашем личном опыте при использовании их для задачи, как указано выше.

Заранее благодарим за любой ответ.

7 голосов | спросил dma_k 15 PM00000060000002431 2011, 18:33:24

1 ответ


1

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

ответил Sudipta Chatterjee 18 PM000000110000003231 2011, 23:26:32

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132