ݺߣ

ݺߣShare a Scribd company logo
Инструментальные системы извлечения
     информации из ЕЯ-текстов
        Обзор основных подходов


              Носков Алексей

        Кафедра Алгоритмических Языков
         МГУ им. М.В.Ломоносова, ВМК
           alexey.noskov@gmail.com


               2 марта 2011
Извлечение информации


  Извлечение информации из текстов (Information Extraction)
      Выделение структурированной информации (свойств
      объектов, отношений, событий) из неструктурированных
      текстов на естественном языке.
      Нет необходимости производить полный синтаксический
      анализ текста (достаточно выделить только необходимые
      структуры)
      Нет необходимости использовать сложные структуры
      данных для представления текста
      Приложение настраивается на конкретную область
      (например, на политику или экономику)
Инструментальные системы извлечения информации



     Позволяют создавать приложения, осуществляющие
     извлечение информации
     Предоставляют готовые элементы для приложений:
         Концепции (форматы данных, описания протоколов,
         архитектурные решения)
         Программный код (осуществляющий работу с форматами,
         решающий лингвистические задачи, обеспечивающий
         взаимодействие других элементов)
     Реализуют различные подходы с точки зрения
     представления данных и их обработки
Классификация инструментальных систем



    Классификация систем по типу представления данных:
         Основанные на разметке - лингвистическая информация
         хранится непосредственно в тексте
         Основанные на аннотациях - лингвистическая информация
         хранится отдельно и ссылается на участки текста
         Основанные на абстракции - текст хранится как часть
         общей структуры данных (в докладе не рассматриваются)




H. Cunningham, K. Humphreys, and R. Gaizauskas, “GATE - a TIPSTER-based
General Architecture for Text Engineering,"IN PROCEEDINGS OF THE TIPSTER
TEXT PROGRAM (PHASE III) 6 MONTH WORKSHOP. DARPA, 1997.
Содержание
  Основанные на разметке
     LT-NSL
     Wraetlic
  Основанные на аннотациях
     GATE
     GATE 2
     Catalyst
  Интеграция поверхностной и глубокой обработки
     SProUT
     Whiteboard
     Heart of Gold
  Другие подходы
     Learning Based Java
     CAFE
Лингвистическая разметка




      Лингвистическая информация хранится в форме
      разметки непосредственно в документе
      Разметка обычно представляется в виде SGML или XML
      Каждая лингвистическая единица (слово, предложение,
      группа) помечается с помощью тэга (<w>,<s>,<np>)
      Вложенность тэгов отражает иерархическую структуру
      лингвистических единиц
Пример разметки в XML

  As far as I was enabled...
  <s id="6293">
   <w c="w" pos="IN" id="624">As</w>
   <w c="w" pos="RB" id="625">far</w>
   <pp id="21236">
     <w c="w" pos="IN" id="626" head="yes">as</w>
     <np number="singular" person="1" id="627">
       <w c="w" pos="PRP" head="yes" id="628">I</w>
     </np>
   </pp>
   <vbar voice="passive" time="past" id="629" args="+6302">
     <w c="w" pos="VBD" stem="be" head="yes" id="630">was</w>
     <w c="w" pos="VBN" stem="enable" id="631">enabled</w>
   </vbar>
LT-NSL



    Разработана в 1996 году
          Компоненты (стеммеры, графематические анализаторы)
          реализуются в виде отдельных процессов ОС
          Компоненты взаимодействуют через стандартные ввод и
          вывод (соединяются через UNIX-каналы)
          В памяти не хранится весь текст - только необходимая для
          обработки часть




D. McKelvie, C. Brew, and H. Thompson, “Using SGML as a Basis for Data-Intensive
NLP"IN PROCEEDINGS OF THE FIFTH CONFERENCE ON APPLIED NATURAL
LANGUAGE PROCESSING (ANLP-97, 1997)
LT-NSL: Представление информации
  Представление на основе SGML
      SGML – четко определенный язык, позволяющий задавать
      структурную информацию в тексте
      Приложение может игнорировать узлы, не затрагиваемые
      конкретным видом анализа
      SGML способствует формальному описанию используемой
      нотации
      Для SGML имеются утилиты для проверки соответствия
      документов формальному описанию

      Для представления пересекающейся разметки (например,
      различных интерпретаций слова) используются ссылки
      Документы преобразуются в упрощенную форму для более
      эффективного разбора в компонентах
Wraetlic


    Разработана в 2006 году, Java
          Данные представляются в форме XML-разметки
          Для преобразований разметки (например, между
          компонентами, использующими различные форматы)
          используется XSLT
          Для представления пересекающейся разметки
          используются внешние XML-узлы и ссылки
          Реализован специальный модуль для разрешения ссылок
          Компоненты могут быть совмещены в одном процессе и
          обмениваться уже разобранным XML, находящимся в
          памяти


E. Alfonseca, A. Moreno-s, J. M. Guirao, and M. Ruiz-casado, “The wraetlic NLP
suite,"2006.
Плюсы и минусы использования разметки



  Плюсы
      Простота представления информации
      Наличие средств для просмотра и редактирования
      разметки
  Минусы
      Трудность представления сложных и пересекающихся
      структур
Содержание
  Основанные на разметке
     LT-NSL
     Wraetlic
  Основанные на аннотациях
     GATE
     GATE 2
     Catalyst
  Интеграция поверхностной и глубокой обработки
     SProUT
     Whiteboard
     Heart of Gold
  Другие подходы
     Learning Based Java
     CAFE
Аннотации

     Лингвистическая информация хранится отдельно от текста
     в форме аннотаций
     Аннотации ссылаются на фрагменты документа
     Аннотации сождержат атрибуты, задающие
     характеристики описываемых лингвистических единиц
     Аннотации могут быть получены по заданному фрагменту
     Параллельные лингвистические единицы (различные
     интерпретации одного слова) представляются
     параллельными аннотациями (между одними и теми же
     позициями)
     Множество аннотаций может быть представлено в виде
     ациклического ориентированного графа
Пример множества аннотаций


  As far as I was enabled...


       As   /6 1 f ar /6 2   as   /6 3   I    /6 4 was /6 5 enabled 6
                                                                   /6     ...
   0                                             HJ                   A         An
       w          w          w           w          w          w

                                         np             vbar



                                  pp


                                               s
Архитектура TIPSTER




          Документы состоят из текста и множества аннотаций
          За хранение документов отвечает репозиторий
          Компоненты запрашивают документы из репозитория
          Лингвистическая обработка представляет из себя
          преобразование разметки документов




R. Grishman, “TIPSTER text phase II architecture design,"in Proceedings of a
workshop on held at Vienna, Virginia: May 6-8, 1996, pp. 249–305, 1996.
GATE


    Разработана в 1996 году, C++
         Обеспечивает обмен информацией между компонентами
         (графематическими анализаторами, стеммерами и т.п.)
         Предоставляет максимально общую
         теоретико-нейтральную форму для обмена информацией
         Позволяет интегрировать различные компоненты (на
         различных языках, на различных платформах)
         Предоставляет библиотеки для разработки и тестирования
         компонентов
         Предоставляет среду для построения приложений в
         графическом интерфейсе

H. Cunningham, K. Humphreys, and R. Gaizauskas, “GATE - a TIPSTER-based
General Architecture for Text Engineering,"IN PROCEEDINGS OF THE TIPSTER
TEXT PROGRAM (PHASE III) 6 MONTH WORKSHOP. DARPA, 1997.
GATE: Компоненты


     GDM (Gate Document Manager) - хранилище текстов и
     лингвистической информации
         Предоставляет единообразный интерфейс для доступа и
         манипуляций с данными
     CREOLE (Collection of REusable Objects for Language
     Engineering) - набор переиспользуемых лингвистических
     компонентов
     GGI (Gate Graphical Interface) - графический интерфейс,
     позволяющий интерактивное создания и тестирование
     компонентов и приложений
GATE: Плюсы и минусы

    Плюсы
          Переиспользование лингвистических компонентов
          Уменьшение усилий для интеграции
          Общая база для разработки компонентов и приложений
          Сравнение алгоритмов и их реализаций – компонентов
          Удобный графический интерфейс
    Минусы
          Нет компонентов-источников данных
          Не поддерживается генерация текста
          Нельзя расширять визуализацию
          Необходима совместимость схем аннотаций компонентов


D. Maynard et al., “A Survey of Uses of GATE."
GATE 2+



    Разработана в 2001 году, Java
    Активно развивается по настоящий момент
          Полная поддержка Unicode
          Возможность описания компонентов, предоставляющих
          данные
          Возможность описания визуальных компонентов
          Язык JAPE для обработки разметки




K. Bontcheva, et.al. “GATE: A Unicode-based infrastructure supporting multilingual
information extraction,"IN PROCEEDINGS OF WORKSHOP ON INFORMATION
EXTRACTION FOR SLAVONIC AND OTHER CENTRAL AND EASTERN
EUROPEAN LANGUAGES (IESL’03), BOROVETS, 2003.
GATE 2: Компоненты



     Языковые ресурсы
         Доступ к документам, корпусам и онтологиям
         Возможен доступ к нетекстовым данным
     Обрабатывающие ресурсы
         Различные этапы обработки - выделение лексем,
         морфологический анализ, и т.п
     Визуальные ресурсы
         Визуализация и редактирование информации или процесса
         обработки
GATE 2: JAPE


    Язык преобразования разметки
         Описание процесса преобразований с помощью регулярных
         правил
         Левая часть правила - регулярное выражение над
         аннотациями
         Правая часть правила - действия по редактированию
         разметки
               Добавление аннотаций
               Удаление аннотаций
               Модификация аттрибутов аннотаций
               Произвольный Java-код



H. Cunningham, H. Cunningham, D. Maynard, D. Maynard, V. Tablan, and V.
Tablan, “JAPE: a Java Annotation Patterns Engine,"1999.
GATE 2: JAPE: Примеры правил


  Rule: PersonJobTitle
  ( {Lookup.majorType == jobtitle} ):jobtitle
  ( {TempPerson} ):person
  -->
    :jobtitle.JobTitle = {rule = "PersonJobTitle"},
    :person.Person = {kind = "personName",
                      rule = "PersonJobTitle"}

  Rule: YearContext1
  ( {Token.string == "in"} | {Token.string == "by"} )
  ( {Token.kind == "number" } ):year
  -->
    :year.Timex = {kind = "date", rule = "YearContext1"}
Catalyst




    Архитектура, разработанная в 2002 году
          Использует модель аннотаций TIPSTER вместе с моделью
          потоков данных
          Поддерживает распределенную работу приложения
          Основная причина создания - существующие системы
          плохо масштабируются




P. Anand et al., “Qanda and the Catalyst Architecture,"2002.
Catalyst: Компонентная организация



      Центральный репозиторий отсутствует
      Компоненты соединяется каналами, по которым
      передаются аннотации
      Аннотации в каналах упорядочены в соответствии с их
      позициями в документе
      Компонент объявляет типы принимаемых и порождаемых
      им аннотаций
      Эта информация используется для передачи только
      необходимых аннотаций
Catalyst: Архитектура
Catalyst: Пример приложения
Catalyst: Плюсы и минусы


   Плюсы
      Выявление ошибок на этапе сборки
      Минимизация кол-ва передаваемых аннотаций
      Возможность поточной обработки данных
      Возможность распределенной работы
   Минусы
      Усложнение функционирования системы
      Усложнение процесса разработки приложения
Плюсы и минусы использования аннотаций


  Плюсы
      Простота представления информации
      Естественное представления пересекающихся структур
      Простота обработки в терминах преобразования аннотаций
      Возможность преобразования в разметку
  Минусы
      Отсутствие стандартных средств для просмотра и
      редактирования
      Трудность представления сложных структур, необходимых
      для глубокого анализа текста
Содержание
  Основанные на разметке
     LT-NSL
     Wraetlic
  Основанные на аннотациях
     GATE
     GATE 2
     Catalyst
  Интеграция поверхностной и глубокой обработки
     SProUT
     Whiteboard
     Heart of Gold
  Другие подходы
     Learning Based Java
     CAFE
Интеграция поверхностной и глубокой обработки



          Часто поверхностного анализа (выделения необходимых
          конструкций) не достаточно для качественного извлечения
          информации
          Необходима интеграция компонентов, осуществляющих
          глубокий анализ (с учетом многих интерпретаций и
          возможно полным разбором)
          Интеграция глубокого и поверхностного анализа
          представляет сложности в силу:
                Различного представления данных
                Различной скорости обработки



U. Sch¨fer, “Integrating Deep and Shallow Natural Language Processing Components
      a
– Representations and Hybrid Architectures,"Faculty of Mathematics and Computer
Science, Saarland University, 2007.
SProUT


    Разработана в 2002-2004 годах
          Объединеняет идеи использования унификационных
          грамматик и конечных преобразователей
          Лингвистические единицы описываются структурами
          признаков
          Для разбора используются конечные преобразователи,
          использующие унификацию над структурами признаков
          Дополнение до контекстно-свободного формализма за счет
          возможности вызова других правил преобразователя
          Расширение преобразователя за счет добавления
          функциональных операторов

W. Drozdzynski, H. Krieger, J. Piskorski, U. Sch¨fer, and F. Xu, “Shallow Processing
                                                   a
with Unification and Typed Feature Structures         Foundations and
Applications,"K¨nstliche Intelligenz, vol. 1, pp. 17–23, 2004.
               u
SProUT: Архитектура
SProUT: Структуры признаков
  Структура признаков - набор пар признак-значение
                                   
                            f : q:a
                           g : c   
                            h:d


      Здесь f, g, h - признаки,   q : a , с и d - соответствующие
      значения
      Значением может быть другая структура признаков
  Для структур признаков определено отношение частичного
  порядка
                            
                         q:a
                  f : f : e         f : q:a
                  
                  g : c
                             
                                 ⊆   h:d
                    h:d
SProUT: Унификация структур признаков

      Результат унификации структур признаков α и β –
      структура γ, содержащая информацию как из α, так и из β
      γ ⊆ α, γ ⊆ β
      Структуры признаков могут содержать переменные
      При унификации переменные могут получать значения
                                               
                             f:    1   q:   2
                                                     h:e
    Результатом унификации  g :   1            и         будет:
                                                     i:u
                             h:    2


                                   
                          f : 1 q:e
                        g : 1      
                                   
                        h : e      
                          i:u
SProUT: Пример правила
                                                
                      P OS : Determiner
                                                 ?
                                              
                                CASE : c        
          morph &                               
                     IN F L :  N U M BER : n  
                                 GEN DER : g
                                                
                      P OS : Adjective
                                                 *
                                              
                                CASE : c        
          morph &                               
                     IN F L :  N U M BER : n  
                                 GEN DER : g
                                                 
                       P OS : N cat
                                 oun            
                                 CASE : c        
           morph &                               
                      IN F L :  N U M BER : n  
                                 GEN DER : g        
                       CAT : cat                  
                                    CASE : c        
         → phrase & 
                     AGR : agr& N U M BER : n  
                                                     

                                     GEN DER : g
SProUT: Применение правил



     При сопоставлении элемента правила с лингвистической
     единицей происходит унификация соответствующих
     структур признаков
     При успешной унификации переменные в структурах
     правила получают значения и ограничивают
     унифицируемость последующих элементов
         Так реализуется согласование
     После унификации всех входящих в правило элементов
     порождается новая структура признаков
Whiteboard


    Разработана в 2000-2002 годах
          Анализ текста поверхностными методами для выявления
          участков, требующих глубокой обработки
          Использование результатов поверхностного анализа как
          эвристической информации при глубоком анализе
          Представление данных на поверхностном уровне с
          помощью XML
          Структуры для глубокого представления хранятся
          отдельно и связаны с разметкой




B. Crysmann et al., “An Integrated Architecture for Shallow and Deep
Processing,"UNIVERSITY OF PENNSYLVANIA, pp. 441–448, 2002.
Whiteboard: Архитектура
Heart of Gold

    Разработана в 2004-2005 как развитие Whiteboard
          Приложение посылают запросы об анализе документов
          центральному координатору
          Центральный координатор распределяет задачи между
          компонентами и осуществляет слияние результатов
          Результат обработки каждого компонента -
          недоспецифицированная семантическая информация
          Каждый следующий компонент расширяет ее или
          оповещает о невозможности расширения
          XML для представления данных
          XSLT для преобразования данных

U. Callmeier, A. Eisele, U. Sch¨fer, and M. Siegel, “The DeepThought core
                               a
architecture framework,"in Proceedings of LREC, vol. 4, pp. 1205–1208, 2004.
Heart of Gold: Архитектура
Плюсы и минусы интеграции поверхностной и глубокой
обработки


  Плюсы
      Увеличение качества анализа
      Возмлжность использования более выразительных
      формализмов
  Минусы
      Усложнение системы
      Снижение производительности
Содержание
  Основанные на разметке
     LT-NSL
     Wraetlic
  Основанные на аннотациях
     GATE
     GATE 2
     Catalyst
  Интеграция поверхностной и глубокой обработки
     SProUT
     Whiteboard
     Heart of Gold
  Другие подходы
     Learning Based Java
     CAFE
Learning based Java


    Проект 2007 года
          Процесс анализа текста представляется в виде композиции
          статистических моделей
          Модели определяют признаки данных и ограничения на
          них данных
          Система осуществляет поиск решения, оптимизирующего
          весовую функцию от результатов моделей
          Система позволяет как обрабатывать данные, так и
          обучать модели на данных



N. Rizzolo and D. Roth, “Learning Based Java for Rapid Development of NLP
Systems,"in Proceedings of the International Conference on Language Resources and
Evaluation (LREC), 2010.
Learning Based Java: Пример модели
    /** This feature generating classifier "senses" all the
      * words in the document that begin with an alphabet
      * letter. The result is a bag-of-words representation
      * of the document. */
    discrete% BagOfWords(Post post) <- {
       for (int i = 0; i < post.bodySize(); ++i)
         for (int j = 0; j < post.lineSize(i); ++j) {
           String word = post.getBodyWord(i, j);
           if (word.length() > 0 &&
               word.substring(0, 1).matches("[A-Za-z]"))
             sense word;
         }
    }
    /** The label of the document. */
    discrete NewsgroupLabel(Post post) <-
       { return post.getNewsgroup(); }
http : //cogcomp.cs.illinois.edu/page/sof tware_view/11
Learning Based Java: Пример приложения
   /** Here, we train averaged Perceptron for many
    * rounds of the training data. **/
   discrete NewsgroupClassifierAP(Post post) <-
   learn NewsgroupLabel
     using BagOfWords
     from new NewsgroupParser("data/20news.train.shuffled")
       40 rounds
     with SparseNetworkLearner {
       SparseAveragedPerceptron.Parameters p =
         new SparseAveragedPerceptron.Parameters();
       p.learningRate = .1;
       p.thickness = 3;
       baseLTU = new SparseAveragedPerceptron(p);
     }
     progressOutput 20000
     testFrom new NewsgroupParser("data/20news.test")
   end
CAFE


    Проект 2001 года
          Система состоит из компонентов, обрабатывающих данные
          последовательно
          Компоненты работают одновременно
          Компоненты предоставляют результаты работы по мере их
          получения
          На следующий уровень передается несколько наилучших
          вариантов анализа
          На предыдущий уровень передается информация об оценке
          полученных вариантов анализа



S. C. Stoness, “Continuous Understanding: A First Look at CAFE,"2001.
CAFE: Архитектура
Сравнение подходов

  Сравнение подходов
      Разметка отличается простотой и наличием готовых
      инструментов, однако уступает использованию
      аннотаций в гибкости
      Аннотации позволяют получить многие преимущества
      разметки за счет возможности конвертирования аннотаций
      в разметку и обратно
      В связи с большой популярностью GATE многие
      практические системы используют аннотации
      Однако, и разметка и аннотации ограничены при
      представлении сложных структур данных
      Интеграция поверхностной и глубокой обработки,
      возможно, является перспективным направлением
Интересные направления



      Интеграция поверхностной и глубокой обработки
      Возможности построения распределенных систем
      Обратная связь между компонентами, осуществляющими
      анализ
      Предоставление системой возможностей для обучения
      статистических моделей
      Баланс между широкими возможностями и низким
      порогом вхождения
Вопросы?

More Related Content

Similar to Инструментальные системы извлечения информации (20)

Программная поддержка языка лексико-синтаксических шаблонов
Программная поддержка языка лексико-синтаксических шаблоновПрограммная поддержка языка лексико-синтаксических шаблонов
Программная поддержка языка лексико-синтаксических шаблонов
Спецсеминар "Искусственный Интеллект" кафедры АЯ ВМК МГУ
Fact Extraction (ideograph)
Fact Extraction (ideograph)Fact Extraction (ideograph)
Fact Extraction (ideograph)
NLPseminar
Базы данных лекция №12
Базы данных лекция №12Базы данных лекция №12
Базы данных лекция №12
Vitaliy Pak
Html лаб 2
Html лаб 2Html лаб 2
Html лаб 2
Vladimir Burdaev
документирование долгоживущих веб проектов. г. белогорцев. зал 3
документирование долгоживущих веб проектов. г. белогорцев. зал 3документирование долгоживущих веб проектов. г. белогорцев. зал 3
документирование долгоживущих веб проектов. г. белогорцев. зал 3
rit2011
Norma cs 2.0
Norma cs 2.0Norma cs 2.0
Norma cs 2.0
Cotline
Проектирование программных систем. Занятие 8
Проектирование программных систем. Занятие 8Проектирование программных систем. Занятие 8
Проектирование программных систем. Занятие 8
Dima Dzuba
Modern arch neznanov_2015_05_14
Modern arch neznanov_2015_05_14Modern arch neznanov_2015_05_14
Modern arch neznanov_2015_05_14
Alexey Neznanov
А.Левенчук -- декомпозиция системы
А.Левенчук -- декомпозиция системыА.Левенчук -- декомпозиция системы
А.Левенчук -- декомпозиция системы
Anatoly Levenchuk
Скриптовой язык Groovy и его применение в рамках разработки ПО
Скриптовой язык Groovy и его применение в рамках разработки ПОСкриптовой язык Groovy и его применение в рамках разработки ПО
Скриптовой язык Groovy и его применение в рамках разработки ПО
Fedor Malyshkin
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
Alex V. Petrov
Где и как хранить данные в процессе их анализа: SQLи не только…
Где и как хранить данные в процессе их анализа:SQLи не только… Где и как хранить данные в процессе их анализа:SQLи не только…
Где и как хранить данные в процессе их анализа: SQLи не только…
Alexey Neznanov
паскаль язык структурного программирования
паскаль   язык структурного программированияпаскаль   язык структурного программирования
паскаль язык структурного программирования
Елена Ключева
Custom Language Plugin for JetBrains IDEA
Custom Language Plugin for JetBrains IDEACustom Language Plugin for JetBrains IDEA
Custom Language Plugin for JetBrains IDEA
Alexander Zastashkov
Fact Extraction (ideograph)
Fact Extraction (ideograph)Fact Extraction (ideograph)
Fact Extraction (ideograph)
NLPseminar
Базы данных лекция №12
Базы данных лекция №12Базы данных лекция №12
Базы данных лекция №12
Vitaliy Pak
документирование долгоживущих веб проектов. г. белогорцев. зал 3
документирование долгоживущих веб проектов. г. белогорцев. зал 3документирование долгоживущих веб проектов. г. белогорцев. зал 3
документирование долгоживущих веб проектов. г. белогорцев. зал 3
rit2011
Проектирование программных систем. Занятие 8
Проектирование программных систем. Занятие 8Проектирование программных систем. Занятие 8
Проектирование программных систем. Занятие 8
Dima Dzuba
Modern arch neznanov_2015_05_14
Modern arch neznanov_2015_05_14Modern arch neznanov_2015_05_14
Modern arch neznanov_2015_05_14
Alexey Neznanov
А.Левенчук -- декомпозиция системы
А.Левенчук -- декомпозиция системыА.Левенчук -- декомпозиция системы
А.Левенчук -- декомпозиция системы
Anatoly Levenchuk
Скриптовой язык Groovy и его применение в рамках разработки ПО
Скриптовой язык Groovy и его применение в рамках разработки ПОСкриптовой язык Groovy и его применение в рамках разработки ПО
Скриптовой язык Groovy и его применение в рамках разработки ПО
Fedor Malyshkin
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
Alex V. Petrov
Где и как хранить данные в процессе их анализа: SQLи не только…
Где и как хранить данные в процессе их анализа:SQLи не только… Где и как хранить данные в процессе их анализа:SQLи не только…
Где и как хранить данные в процессе их анализа: SQLи не только…
Alexey Neznanov
паскаль язык структурного программирования
паскаль   язык структурного программированияпаскаль   язык структурного программирования
паскаль язык структурного программирования
Елена Ключева
Custom Language Plugin for JetBrains IDEA
Custom Language Plugin for JetBrains IDEACustom Language Plugin for JetBrains IDEA
Custom Language Plugin for JetBrains IDEA
Alexander Zastashkov

Инструментальные системы извлечения информации

  • 1. Инструментальные системы извлечения информации из ЕЯ-текстов Обзор основных подходов Носков Алексей Кафедра Алгоритмических Языков МГУ им. М.В.Ломоносова, ВМК alexey.noskov@gmail.com 2 марта 2011
  • 2. Извлечение информации Извлечение информации из текстов (Information Extraction) Выделение структурированной информации (свойств объектов, отношений, событий) из неструктурированных текстов на естественном языке. Нет необходимости производить полный синтаксический анализ текста (достаточно выделить только необходимые структуры) Нет необходимости использовать сложные структуры данных для представления текста Приложение настраивается на конкретную область (например, на политику или экономику)
  • 3. Инструментальные системы извлечения информации Позволяют создавать приложения, осуществляющие извлечение информации Предоставляют готовые элементы для приложений: Концепции (форматы данных, описания протоколов, архитектурные решения) Программный код (осуществляющий работу с форматами, решающий лингвистические задачи, обеспечивающий взаимодействие других элементов) Реализуют различные подходы с точки зрения представления данных и их обработки
  • 4. Классификация инструментальных систем Классификация систем по типу представления данных: Основанные на разметке - лингвистическая информация хранится непосредственно в тексте Основанные на аннотациях - лингвистическая информация хранится отдельно и ссылается на участки текста Основанные на абстракции - текст хранится как часть общей структуры данных (в докладе не рассматриваются) H. Cunningham, K. Humphreys, and R. Gaizauskas, “GATE - a TIPSTER-based General Architecture for Text Engineering,"IN PROCEEDINGS OF THE TIPSTER TEXT PROGRAM (PHASE III) 6 MONTH WORKSHOP. DARPA, 1997.
  • 5. Содержание Основанные на разметке LT-NSL Wraetlic Основанные на аннотациях GATE GATE 2 Catalyst Интеграция поверхностной и глубокой обработки SProUT Whiteboard Heart of Gold Другие подходы Learning Based Java CAFE
  • 6. Лингвистическая разметка Лингвистическая информация хранится в форме разметки непосредственно в документе Разметка обычно представляется в виде SGML или XML Каждая лингвистическая единица (слово, предложение, группа) помечается с помощью тэга (<w>,<s>,<np>) Вложенность тэгов отражает иерархическую структуру лингвистических единиц
  • 7. Пример разметки в XML As far as I was enabled... <s id="6293"> <w c="w" pos="IN" id="624">As</w> <w c="w" pos="RB" id="625">far</w> <pp id="21236"> <w c="w" pos="IN" id="626" head="yes">as</w> <np number="singular" person="1" id="627"> <w c="w" pos="PRP" head="yes" id="628">I</w> </np> </pp> <vbar voice="passive" time="past" id="629" args="+6302"> <w c="w" pos="VBD" stem="be" head="yes" id="630">was</w> <w c="w" pos="VBN" stem="enable" id="631">enabled</w> </vbar>
  • 8. LT-NSL Разработана в 1996 году Компоненты (стеммеры, графематические анализаторы) реализуются в виде отдельных процессов ОС Компоненты взаимодействуют через стандартные ввод и вывод (соединяются через UNIX-каналы) В памяти не хранится весь текст - только необходимая для обработки часть D. McKelvie, C. Brew, and H. Thompson, “Using SGML as a Basis for Data-Intensive NLP"IN PROCEEDINGS OF THE FIFTH CONFERENCE ON APPLIED NATURAL LANGUAGE PROCESSING (ANLP-97, 1997)
  • 9. LT-NSL: Представление информации Представление на основе SGML SGML – четко определенный язык, позволяющий задавать структурную информацию в тексте Приложение может игнорировать узлы, не затрагиваемые конкретным видом анализа SGML способствует формальному описанию используемой нотации Для SGML имеются утилиты для проверки соответствия документов формальному описанию Для представления пересекающейся разметки (например, различных интерпретаций слова) используются ссылки Документы преобразуются в упрощенную форму для более эффективного разбора в компонентах
  • 10. Wraetlic Разработана в 2006 году, Java Данные представляются в форме XML-разметки Для преобразований разметки (например, между компонентами, использующими различные форматы) используется XSLT Для представления пересекающейся разметки используются внешние XML-узлы и ссылки Реализован специальный модуль для разрешения ссылок Компоненты могут быть совмещены в одном процессе и обмениваться уже разобранным XML, находящимся в памяти E. Alfonseca, A. Moreno-s, J. M. Guirao, and M. Ruiz-casado, “The wraetlic NLP suite,"2006.
  • 11. Плюсы и минусы использования разметки Плюсы Простота представления информации Наличие средств для просмотра и редактирования разметки Минусы Трудность представления сложных и пересекающихся структур
  • 12. Содержание Основанные на разметке LT-NSL Wraetlic Основанные на аннотациях GATE GATE 2 Catalyst Интеграция поверхностной и глубокой обработки SProUT Whiteboard Heart of Gold Другие подходы Learning Based Java CAFE
  • 13. Аннотации Лингвистическая информация хранится отдельно от текста в форме аннотаций Аннотации ссылаются на фрагменты документа Аннотации сождержат атрибуты, задающие характеристики описываемых лингвистических единиц Аннотации могут быть получены по заданному фрагменту Параллельные лингвистические единицы (различные интерпретации одного слова) представляются параллельными аннотациями (между одними и теми же позициями) Множество аннотаций может быть представлено в виде ациклического ориентированного графа
  • 14. Пример множества аннотаций As far as I was enabled... As /6 1 f ar /6 2 as /6 3 I /6 4 was /6 5 enabled 6 /6 ... 0 HJ A An w w w w w w np vbar pp s
  • 15. Архитектура TIPSTER Документы состоят из текста и множества аннотаций За хранение документов отвечает репозиторий Компоненты запрашивают документы из репозитория Лингвистическая обработка представляет из себя преобразование разметки документов R. Grishman, “TIPSTER text phase II architecture design,"in Proceedings of a workshop on held at Vienna, Virginia: May 6-8, 1996, pp. 249–305, 1996.
  • 16. GATE Разработана в 1996 году, C++ Обеспечивает обмен информацией между компонентами (графематическими анализаторами, стеммерами и т.п.) Предоставляет максимально общую теоретико-нейтральную форму для обмена информацией Позволяет интегрировать различные компоненты (на различных языках, на различных платформах) Предоставляет библиотеки для разработки и тестирования компонентов Предоставляет среду для построения приложений в графическом интерфейсе H. Cunningham, K. Humphreys, and R. Gaizauskas, “GATE - a TIPSTER-based General Architecture for Text Engineering,"IN PROCEEDINGS OF THE TIPSTER TEXT PROGRAM (PHASE III) 6 MONTH WORKSHOP. DARPA, 1997.
  • 17. GATE: Компоненты GDM (Gate Document Manager) - хранилище текстов и лингвистической информации Предоставляет единообразный интерфейс для доступа и манипуляций с данными CREOLE (Collection of REusable Objects for Language Engineering) - набор переиспользуемых лингвистических компонентов GGI (Gate Graphical Interface) - графический интерфейс, позволяющий интерактивное создания и тестирование компонентов и приложений
  • 18. GATE: Плюсы и минусы Плюсы Переиспользование лингвистических компонентов Уменьшение усилий для интеграции Общая база для разработки компонентов и приложений Сравнение алгоритмов и их реализаций – компонентов Удобный графический интерфейс Минусы Нет компонентов-источников данных Не поддерживается генерация текста Нельзя расширять визуализацию Необходима совместимость схем аннотаций компонентов D. Maynard et al., “A Survey of Uses of GATE."
  • 19. GATE 2+ Разработана в 2001 году, Java Активно развивается по настоящий момент Полная поддержка Unicode Возможность описания компонентов, предоставляющих данные Возможность описания визуальных компонентов Язык JAPE для обработки разметки K. Bontcheva, et.al. “GATE: A Unicode-based infrastructure supporting multilingual information extraction,"IN PROCEEDINGS OF WORKSHOP ON INFORMATION EXTRACTION FOR SLAVONIC AND OTHER CENTRAL AND EASTERN EUROPEAN LANGUAGES (IESL’03), BOROVETS, 2003.
  • 20. GATE 2: Компоненты Языковые ресурсы Доступ к документам, корпусам и онтологиям Возможен доступ к нетекстовым данным Обрабатывающие ресурсы Различные этапы обработки - выделение лексем, морфологический анализ, и т.п Визуальные ресурсы Визуализация и редактирование информации или процесса обработки
  • 21. GATE 2: JAPE Язык преобразования разметки Описание процесса преобразований с помощью регулярных правил Левая часть правила - регулярное выражение над аннотациями Правая часть правила - действия по редактированию разметки Добавление аннотаций Удаление аннотаций Модификация аттрибутов аннотаций Произвольный Java-код H. Cunningham, H. Cunningham, D. Maynard, D. Maynard, V. Tablan, and V. Tablan, “JAPE: a Java Annotation Patterns Engine,"1999.
  • 22. GATE 2: JAPE: Примеры правил Rule: PersonJobTitle ( {Lookup.majorType == jobtitle} ):jobtitle ( {TempPerson} ):person --> :jobtitle.JobTitle = {rule = "PersonJobTitle"}, :person.Person = {kind = "personName", rule = "PersonJobTitle"} Rule: YearContext1 ( {Token.string == "in"} | {Token.string == "by"} ) ( {Token.kind == "number" } ):year --> :year.Timex = {kind = "date", rule = "YearContext1"}
  • 23. Catalyst Архитектура, разработанная в 2002 году Использует модель аннотаций TIPSTER вместе с моделью потоков данных Поддерживает распределенную работу приложения Основная причина создания - существующие системы плохо масштабируются P. Anand et al., “Qanda and the Catalyst Architecture,"2002.
  • 24. Catalyst: Компонентная организация Центральный репозиторий отсутствует Компоненты соединяется каналами, по которым передаются аннотации Аннотации в каналах упорядочены в соответствии с их позициями в документе Компонент объявляет типы принимаемых и порождаемых им аннотаций Эта информация используется для передачи только необходимых аннотаций
  • 27. Catalyst: Плюсы и минусы Плюсы Выявление ошибок на этапе сборки Минимизация кол-ва передаваемых аннотаций Возможность поточной обработки данных Возможность распределенной работы Минусы Усложнение функционирования системы Усложнение процесса разработки приложения
  • 28. Плюсы и минусы использования аннотаций Плюсы Простота представления информации Естественное представления пересекающихся структур Простота обработки в терминах преобразования аннотаций Возможность преобразования в разметку Минусы Отсутствие стандартных средств для просмотра и редактирования Трудность представления сложных структур, необходимых для глубокого анализа текста
  • 29. Содержание Основанные на разметке LT-NSL Wraetlic Основанные на аннотациях GATE GATE 2 Catalyst Интеграция поверхностной и глубокой обработки SProUT Whiteboard Heart of Gold Другие подходы Learning Based Java CAFE
  • 30. Интеграция поверхностной и глубокой обработки Часто поверхностного анализа (выделения необходимых конструкций) не достаточно для качественного извлечения информации Необходима интеграция компонентов, осуществляющих глубокий анализ (с учетом многих интерпретаций и возможно полным разбором) Интеграция глубокого и поверхностного анализа представляет сложности в силу: Различного представления данных Различной скорости обработки U. Sch¨fer, “Integrating Deep and Shallow Natural Language Processing Components a – Representations and Hybrid Architectures,"Faculty of Mathematics and Computer Science, Saarland University, 2007.
  • 31. SProUT Разработана в 2002-2004 годах Объединеняет идеи использования унификационных грамматик и конечных преобразователей Лингвистические единицы описываются структурами признаков Для разбора используются конечные преобразователи, использующие унификацию над структурами признаков Дополнение до контекстно-свободного формализма за счет возможности вызова других правил преобразователя Расширение преобразователя за счет добавления функциональных операторов W. Drozdzynski, H. Krieger, J. Piskorski, U. Sch¨fer, and F. Xu, “Shallow Processing a with Unification and Typed Feature Structures Foundations and Applications,"K¨nstliche Intelligenz, vol. 1, pp. 17–23, 2004. u
  • 33. SProUT: Структуры признаков Структура признаков - набор пар признак-значение   f : q:a g : c  h:d Здесь f, g, h - признаки, q : a , с и d - соответствующие значения Значением может быть другая структура признаков Для структур признаков определено отношение частичного порядка   q:a f : f : e  f : q:a  g : c   ⊆ h:d h:d
  • 34. SProUT: Унификация структур признаков Результат унификации структур признаков α и β – структура γ, содержащая информацию как из α, так и из β γ ⊆ α, γ ⊆ β Структуры признаков могут содержать переменные При унификации переменные могут получать значения   f: 1 q: 2 h:e Результатом унификации  g : 1 и будет: i:u h: 2   f : 1 q:e g : 1    h : e  i:u
  • 35. SProUT: Пример правила   P OS : Determiner ?    CASE : c  morph &    IN F L :  N U M BER : n   GEN DER : g   P OS : Adjective *    CASE : c  morph &    IN F L :  N U M BER : n   GEN DER : g   P OS : N cat oun   CASE : c  morph &    IN F L :  N U M BER : n    GEN DER : g  CAT : cat    CASE : c  → phrase &   AGR : agr& N U M BER : n    GEN DER : g
  • 36. SProUT: Применение правил При сопоставлении элемента правила с лингвистической единицей происходит унификация соответствующих структур признаков При успешной унификации переменные в структурах правила получают значения и ограничивают унифицируемость последующих элементов Так реализуется согласование После унификации всех входящих в правило элементов порождается новая структура признаков
  • 37. Whiteboard Разработана в 2000-2002 годах Анализ текста поверхностными методами для выявления участков, требующих глубокой обработки Использование результатов поверхностного анализа как эвристической информации при глубоком анализе Представление данных на поверхностном уровне с помощью XML Структуры для глубокого представления хранятся отдельно и связаны с разметкой B. Crysmann et al., “An Integrated Architecture for Shallow and Deep Processing,"UNIVERSITY OF PENNSYLVANIA, pp. 441–448, 2002.
  • 39. Heart of Gold Разработана в 2004-2005 как развитие Whiteboard Приложение посылают запросы об анализе документов центральному координатору Центральный координатор распределяет задачи между компонентами и осуществляет слияние результатов Результат обработки каждого компонента - недоспецифицированная семантическая информация Каждый следующий компонент расширяет ее или оповещает о невозможности расширения XML для представления данных XSLT для преобразования данных U. Callmeier, A. Eisele, U. Sch¨fer, and M. Siegel, “The DeepThought core a architecture framework,"in Proceedings of LREC, vol. 4, pp. 1205–1208, 2004.
  • 40. Heart of Gold: Архитектура
  • 41. Плюсы и минусы интеграции поверхностной и глубокой обработки Плюсы Увеличение качества анализа Возмлжность использования более выразительных формализмов Минусы Усложнение системы Снижение производительности
  • 42. Содержание Основанные на разметке LT-NSL Wraetlic Основанные на аннотациях GATE GATE 2 Catalyst Интеграция поверхностной и глубокой обработки SProUT Whiteboard Heart of Gold Другие подходы Learning Based Java CAFE
  • 43. Learning based Java Проект 2007 года Процесс анализа текста представляется в виде композиции статистических моделей Модели определяют признаки данных и ограничения на них данных Система осуществляет поиск решения, оптимизирующего весовую функцию от результатов моделей Система позволяет как обрабатывать данные, так и обучать модели на данных N. Rizzolo and D. Roth, “Learning Based Java for Rapid Development of NLP Systems,"in Proceedings of the International Conference on Language Resources and Evaluation (LREC), 2010.
  • 44. Learning Based Java: Пример модели /** This feature generating classifier "senses" all the * words in the document that begin with an alphabet * letter. The result is a bag-of-words representation * of the document. */ discrete% BagOfWords(Post post) <- { for (int i = 0; i < post.bodySize(); ++i) for (int j = 0; j < post.lineSize(i); ++j) { String word = post.getBodyWord(i, j); if (word.length() > 0 && word.substring(0, 1).matches("[A-Za-z]")) sense word; } } /** The label of the document. */ discrete NewsgroupLabel(Post post) <- { return post.getNewsgroup(); } http : //cogcomp.cs.illinois.edu/page/sof tware_view/11
  • 45. Learning Based Java: Пример приложения /** Here, we train averaged Perceptron for many * rounds of the training data. **/ discrete NewsgroupClassifierAP(Post post) <- learn NewsgroupLabel using BagOfWords from new NewsgroupParser("data/20news.train.shuffled") 40 rounds with SparseNetworkLearner { SparseAveragedPerceptron.Parameters p = new SparseAveragedPerceptron.Parameters(); p.learningRate = .1; p.thickness = 3; baseLTU = new SparseAveragedPerceptron(p); } progressOutput 20000 testFrom new NewsgroupParser("data/20news.test") end
  • 46. CAFE Проект 2001 года Система состоит из компонентов, обрабатывающих данные последовательно Компоненты работают одновременно Компоненты предоставляют результаты работы по мере их получения На следующий уровень передается несколько наилучших вариантов анализа На предыдущий уровень передается информация об оценке полученных вариантов анализа S. C. Stoness, “Continuous Understanding: A First Look at CAFE,"2001.
  • 48. Сравнение подходов Сравнение подходов Разметка отличается простотой и наличием готовых инструментов, однако уступает использованию аннотаций в гибкости Аннотации позволяют получить многие преимущества разметки за счет возможности конвертирования аннотаций в разметку и обратно В связи с большой популярностью GATE многие практические системы используют аннотации Однако, и разметка и аннотации ограничены при представлении сложных структур данных Интеграция поверхностной и глубокой обработки, возможно, является перспективным направлением
  • 49. Интересные направления Интеграция поверхностной и глубокой обработки Возможности построения распределенных систем Обратная связь между компонентами, осуществляющими анализ Предоставление системой возможностей для обучения статистических моделей Баланс между широкими возможностями и низким порогом вхождения