SlideShare a Scribd company logo
1 of 52
Download to read offline
Анализ текста на естественном языке,
 управляемый вариантами разбора

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

        МГУ им. М.В.Ломоносова, ВМК
          alexey.noskov@gmail.com


              19 мая 2012
Содержание
  Анализ текста и неоднозначность
     Анализ по этапам
     Неоднозначность анализа
     Анализ по вариантам
  Представление вариантов анализа
     Список вариантов
     Дерево вариантов
     Граф вариантов
  Обработка множества вариантов
     Преобразование графов вариантов
     Процессы на графах вариантов
  Применение алгоритмов анализа
     Регулярные преобразователи
     Контекстно-свободные грамматики
  Программная реализация
                                       2
Независимые этапы анализа

                                     Текст


                            Графематический анализ


   Несколько этапов         Морфологический анализ
   анализа, которые:
       независимы            Синтаксический анализ
       применяются
       последовательно       Семантический анализ


                            Внутреннее представление


                                                       3
Независимые этапы
Причины



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



   Но есть проблема:
          Неоднозначность анализа



                                                                     4
Неоднозначность анализа


      Проявляется на каждом из этапов
          мимо гор. Калуги
          мыла
          вернулся из поездки в Москву
      Как правило не может быть разрешена в рамках одного
      этапа
      Иногда не может быть разрешена в рамках одного
      “предложения“
          Река Ока протекает через южную часть гор. Калуги -
          административного центра области.




                                                               5
Неоднозначность анализа
Применяемые решения




        Фильтрация вариантов перед следующим этапом
            Можно упустить правильные варианты
            Фильтрация представляет из себя упрощенный вариант
            последующих этапов – порождает усложнение и
            дублирование кода
        Передача на следующий этап нескольких вариантов
            Можно проанализировать то, что совсем не нужно




                                                                 6
Неоднозначность анализа
Рефлексия




            Дорога




                          7
Неоднозначность анализа
Рефлексия




            Дорога ложка к обеду




                                   7
Неоднозначность анализа
Анализ человеком




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




                                                            8
Анализ по вариантам



  Основные идеи:
      Максимально глубокий анализ (через все возможные
      этапы) того участка текста, который уже поступил
      Анализ дальнейшего текста исходя из результатов анализа
      того, что уже получено ранее
      Возврат в случае невозможности дальнейшего анализа




                                                                9
Анализ по этапам
Направление анализа

                                  Варианты анализа


                  Этапы анализа




                                                     10
Анализ по вариантам
Направление анализа

                                  Варианты анализа


                  Этапы анализа




                                                     11
Анализ по вариантам
Основные проблемы


        Вариантов анализа может быть очень много
            Не рассматривать все варианты - только те, которые
            нужны для достижения результата
            Не повторять анализ одних и тех же участков



        Разбиение по этапам удобнее для описания
            Описание этапов не обязательно должно явно
            соответствовать последовательности их применения
            Описывать этапы так, чтобы:
                    они остались независимыми
                    при этом позволяли производить анализ по вариантам



                                                                         12
Содержание
  Анализ текста и неоднозначность
     Анализ по этапам
     Неоднозначность анализа
     Анализ по вариантам
  Представление вариантов анализа
     Список вариантов
     Дерево вариантов
     Граф вариантов
  Обработка множества вариантов
     Преобразование графов вариантов
     Процессы на графах вариантов
  Применение алгоритмов анализа
     Регулярные преобразователи
     Контекстно-свободные грамматики
  Программная реализация
                                       13
Представление вариантов анализа

      На каждом уровне текст можно представить как набор
      некоторым образом связанных единиц. Например, лексем
      или синтаксических конструкций.


      Для начала – просто последовательность этих единиц без
      связей.


      Но вариантов представления может быть много.


      Как представлять набор этих вариантов?


                                                               14
Представление вариантов анализа
Cписок вариантов


    Простейший способ - просто перечислить все варианты

    Я мою пол


         Я мой полый
         Я мой пол
         Я мой пола
         Я мыть полый
         Я мыть пол
         Я мыть пола



                                                          15
Представление вариантов анализа
Дерево вариантов


                                    полый     3

                                             пол
                                       2           3
                            мыть
                                            пола
   Очевидное
                                              3
   улучшение –
                        Я
   склеить начало   0        1
   вариантов
                                    полый     3
                                   мой
                                             пол
                                       2           3
                                            пола
                                              3
                                                       16
Представление вариантов анализа
Граф вариантов


    Некоторые неопределенности локальны и не вляют на
    дальнейший текст – можно склеить в граф


                              мыть            полый
                 Я                             пол
         0              1               2               3
                               мой             пола




                                                            17
Представление вариантов анализа
Граф вариантов


    Некоторые неопределенности локальны и не вляют на
    дальнейший текст – можно склеить в граф


                              мыть            полый
                 Я                             пол
         0              1               2               3
                               мой             пола



    В этом графе каждый путь определяет некоторый допустимый
    вариант разбора. Будем называть такой граф «графом
    вариантов».


                                                               17
Содержание
  Анализ текста и неоднозначность
     Анализ по этапам
     Неоднозначность анализа
     Анализ по вариантам
  Представление вариантов анализа
     Список вариантов
     Дерево вариантов
     Граф вариантов
  Обработка множества вариантов
     Преобразование графов вариантов
     Процессы на графах вариантов
  Применение алгоритмов анализа
     Регулярные преобразователи
     Контекстно-свободные грамматики
  Программная реализация
                                       18
Обработка множества вариантов
Этап анализа как преобразование




    Этап анализа – преобразование одного графа вариантов в
    другой с сохранением отношений между вариантами:
         Каждый путь из входного графа преобразуется в подграф
         выходного графа (возможно пустой)
         Пути выходного подграфа - варианты анализа этого пути




                                                                 19
Обработка множества вариантов
Графематический анализ




                             Я мою пол


    преобразуется в

                         Я     мою       пол




                                               20
Обработка множества вариантов
Морфологический анализа




                          Я   мою    пол


    преобразуется в

                              мыть   полый
                          Я           пол
                  0           мой     пола




                                             21
Обработка множества вариантов
Синтаксический анализ




                                  мыть      полый
                          Я                  пол
                                   мой       пола

    преобразуется в

          NG(Я)         V(мыть)   NG(пол)   VG(2)   S(2)
      0




                                                           22
Обработка множества вариантов
Этап анализа как процесс


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



                                                                  23
Обработка множества вариантов
Работа процессов




    Процессы осуществляют последовательное преобразование
    входного графа в выходной.




                                           Я мою пол
                   Synan|Morphan|Graphan




                                                            24
Обработка множества вариантов
Работа процессов




                               Я   мою   пол
               Synan|Morphan




                                               25
Обработка множества вариантов
Работа процессов




                           Я             мою   пол
                   Synan       Morphan




                                                     26
Обработка множества вариантов
Работа процессов



    Грамматика для синтаксического анализа:

    NG -> N | Pn | A NG
    VG -> V [NG]
    S -> NG VG




               NG(Я)                   мою    пол
                       Synan|Morphan




                                                    27
Обработка множества вариантов
Работа процессов


    Грамматика для синтаксического анализа:

    NG -> N | Pn | A NG
    VG -> V [NG]
    S -> NG VG




                                       мыть
                       NG(Я)                            пол
                   1           Synan          Morphan
                                       мой



                                                              28
Обработка множества вариантов
Работа процессов

    Грамматика для синтаксического анализа:

    NG -> N | Pn | A NG
    VG -> V [NG]
    S -> NG VG




                                         мыть
                           Synan
                   NG(Я)                            пол
                                          Morphan

                           Synan   мой


                                                          29
Обработка множества вариантов
Работа процессов

    Грамматика для синтаксического анализа:

    NG -> N | Pn | A NG
    VG -> V [NG]
    S -> NG VG




                       V(мыть)
                                     Synan
                   NG(Я)                               пол
                                             Morphan

                            Synan   мой


                                                             30
Обработка множества вариантов
Работа процессов

    Грамматика для синтаксического анализа:

    NG -> N | Pn | A NG
    VG -> V [NG]
    S -> NG VG




                       V(мыть)
                                      Synan
                                              полый
                   NG(Я)                       пол
                                               пола
                                    мой
                            Synan


                                                      31
Обработка множества вариантов
Работа процессов
    Грамматика для синтаксического анализа:
    NG -> N | Pn | A NG
    VG -> V [NG]
    S -> NG VG



                               Synan                    полый
                                                        пол
              V(мыть)
                                Synan
        NG(Я)                  Synan             пола
                                         полый
                    Synanмой
                                              пол
                                              пола
                                                                32
Обработка множества вариантов
Работа процессов
    Грамматика для синтаксического анализа:
    NG -> N | Pn | A NG
    VG -> V [NG]
    S -> NG VG



                          A(полый)
                                               Synan
                                                        пол
              V(мыть)
                                Synan
        NG(Я)                  Synan             пола
                                         полый
                    Synanмой
                                              пол
                                              пола            33
Обработка множества вариантов
Работа процессов
    Грамматика для синтаксического анализа:
    NG -> N | Pn | A NG
    VG -> V [NG]
    S -> NG VG



                                                        пол
              V(мыть)
                                Synan
        NG(Я)                  Synan             пола
                                         полый
                    Synanмой
                                              пол
                                              пола

                                                              34
Обработка множества вариантов
Работа процессов
    Грамматика для синтаксического анализа:
    NG -> N | Pn | A NG
    VG -> V [NG]
    S -> NG VG



                           N(пол)
              V(мыть)
                                         Synan
        NG(Я)                  Synan             пола
                                         полый
                    Synanмой
                                              пол
                                              пола
                                                        35
Обработка множества вариантов
Работа процессов
    Грамматика для синтаксического анализа:
    NG -> N | Pn | A NG
    VG -> V [NG]
    S -> NG VG




              V(мыть)          N(пол)   VG(2)
                                                    Synan
        NG(Я)                   Synan            пола
                                         полый
                    Synanмой
                                              пол
                                              пола

                                                            36
Обработка множества вариантов
Работа процессов
    Грамматика для синтаксического анализа:
    NG -> N | Pn | A NG
    VG -> V [NG]
    S -> NG VG




              V(мыть)          N(пол)   VG(2)
                                                        S(2)
        NG(Я)                   Synan            пола
                                         полый
                    Synanмой
                                              пол
                                              пола

                                                               37
Обработка множества вариантов
Порядок работы процессов




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




                                                                   38
Содержание
  Анализ текста и неоднозначность
     Анализ по этапам
     Неоднозначность анализа
     Анализ по вариантам
  Представление вариантов анализа
     Список вариантов
     Дерево вариантов
     Граф вариантов
  Обработка множества вариантов
     Преобразование графов вариантов
     Процессы на графах вариантов
  Применение алгоритмов анализа
     Регулярные преобразователи
     Контекстно-свободные грамматики
  Программная реализация
                                       39
Регулярные преобразователи

      Конечные автоматы-преобразователи замечательно
      подходят под роль процесов:
          Имеют состояние, которое поддерживает сравнение и
          копирование
          Обрабатывают входящие символы по одному
          Выдают результаты сразу после накопления необходимой
          информации
      Языки описания регулярных преобразователей работают
      поверх графов вариантов и реализуются процессами
      Все это остается верным и при их расширении
      контекстными условиями (например, как в языках
      Jape/LSPL)



                                                                 40
Регулярные преобразователи
Пример грамматики


    adj.agrTo(’noun).* - noun.$(’noun)
      ==> nameGroup(’noun)

    nameGroup.$(’subj) - verb.agrTo(’subj) - nameGroup
      ==> action
    Может быть использована для преобразования:
        Произвольных подпутей в графе (например, отдельных
        конструкций)
        Подпутей в графе, составляющих полный путь (например,
        последовательных предложений)
        Полного пути в графе (например, единственного
        предложения)

                                                                41
Контекстно-свободные грамматики
Упаковка дерева

         Упаковка дерева в путь в графе вариантов
         Постфиксная запись дерева
         Два типа элементов в пути:
              Лист дерева
              Промежуточный узел, создаваемый на основе N
              предыдущих
         При проходе по графу дерево может быть распаковано
         путем построения снизу вверх




         NG(Я)      V(мыть)     NG(пол)     VG(2)       S(2)


                                                               42
Контекстно-свободные грамматики
Распакованное дерево




                            S




             NG(Я)               VG




                       V(мыть)        V(пол)




                                               43
Контекстно-свободные грамматики
Плюсы такой упаковки




        Сохраняет последовательность появления листьев

        Допускает обход и преобразование снизу вверх без
        распаковки

        Позволяет представлять локальные неоднозначности на
        различных уровнях дерева

        Естественное представление, которое получается в
        процессе работы LR-анализатора




                                                              44
Контекстно-свободные грамматики
Применение алгоритмов




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

        Особенно хорошо адаптируются LR-алгоритмы
             Последовательность шагов shift-reduce – и есть описанное
             выше упакованное дерево




                                                                        45
Программная реализация
Общая информация


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



                                                                46
Программная реализация
Граф вариантов



        Ленивая структура данных

        Несколько типов узлов:
             Конец варианта
             Возврат
             Множественное ветвление - ленивый список вариантов
             Вывод элемента - ленивое вычисление следующего узла

        Может быть раскрыт в ленивый список вариантов
             Для получения первых N вариантов анализа
             Для отладки



                                                                   47
Программная реализация
Регулярные преобразователи



    DSL для описания грамматики в коде



    val grammar = new RegularWordGrammar[Any] {

        adj.aggrTo(’main).* - noun.bind(’main) ==> nameGroup

    }

    val nameGroupGraph = grammar.gsubMatcher(wordsGraph)




                                                               48
Дальнейшие направления
     Адаптация более сложных подходов к анализу

     Введение оценок перспективности для эвристического
     поиска

     Ограничение кратковременной памяти

     Проведение экспериментов
         Качество работы
         Вычислительная эффективность

     Реализация программной системы для экспериментов с
     подходом
         Базовая библиотека, реализующая подход
         Средства для описания более сложных методов анализа
         Графическая среда для экспериментов без
         программирования
                                                               49
Вопросы?

More Related Content

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Анализ текста на естественном языке, управляемый вариантами разбора

  • 1. Анализ текста на естественном языке, управляемый вариантами разбора Носков Алексей МГУ им. М.В.Ломоносова, ВМК alexey.noskov@gmail.com 19 мая 2012
  • 2. Содержание Анализ текста и неоднозначность Анализ по этапам Неоднозначность анализа Анализ по вариантам Представление вариантов анализа Список вариантов Дерево вариантов Граф вариантов Обработка множества вариантов Преобразование графов вариантов Процессы на графах вариантов Применение алгоритмов анализа Регулярные преобразователи Контекстно-свободные грамматики Программная реализация 2
  • 3. Независимые этапы анализа Текст Графематический анализ Несколько этапов Морфологический анализ анализа, которые: независимы Синтаксический анализ применяются последовательно Семантический анализ Внутреннее представление 3
  • 4. Независимые этапы Причины Почему так именно так? Декомпозиция сложной задачи на более простые Удобно описывать и тестировать алгоритмы, работающие на независимых этапах Можно проводить разработки в рамках одного этапа, а другие использовать уже какие-то готовые Но есть проблема: Неоднозначность анализа 4
  • 5. Неоднозначность анализа Проявляется на каждом из этапов мимо гор. Калуги мыла вернулся из поездки в Москву Как правило не может быть разрешена в рамках одного этапа Иногда не может быть разрешена в рамках одного “предложения“ Река Ока протекает через южную часть гор. Калуги - административного центра области. 5
  • 6. Неоднозначность анализа Применяемые решения Фильтрация вариантов перед следующим этапом Можно упустить правильные варианты Фильтрация представляет из себя упрощенный вариант последующих этапов – порождает усложнение и дублирование кода Передача на следующий этап нескольких вариантов Можно проанализировать то, что совсем не нужно 6
  • 9. Неоднозначность анализа Анализ человеком Наблюдения о человеке: анализирует текст сразу при поступлении слов строит вариант анализа того, что уже поступило и предполагает что будет дальше если новый участок текста не согласуется с предположением - происходит возврат расстояние на которое возврат может сделан быстро ограничено кратковременной памятью 8
  • 10. Анализ по вариантам Основные идеи: Максимально глубокий анализ (через все возможные этапы) того участка текста, который уже поступил Анализ дальнейшего текста исходя из результатов анализа того, что уже получено ранее Возврат в случае невозможности дальнейшего анализа 9
  • 11. Анализ по этапам Направление анализа Варианты анализа Этапы анализа 10
  • 12. Анализ по вариантам Направление анализа Варианты анализа Этапы анализа 11
  • 13. Анализ по вариантам Основные проблемы Вариантов анализа может быть очень много Не рассматривать все варианты - только те, которые нужны для достижения результата Не повторять анализ одних и тех же участков Разбиение по этапам удобнее для описания Описание этапов не обязательно должно явно соответствовать последовательности их применения Описывать этапы так, чтобы: они остались независимыми при этом позволяли производить анализ по вариантам 12
  • 14. Содержание Анализ текста и неоднозначность Анализ по этапам Неоднозначность анализа Анализ по вариантам Представление вариантов анализа Список вариантов Дерево вариантов Граф вариантов Обработка множества вариантов Преобразование графов вариантов Процессы на графах вариантов Применение алгоритмов анализа Регулярные преобразователи Контекстно-свободные грамматики Программная реализация 13
  • 15. Представление вариантов анализа На каждом уровне текст можно представить как набор некоторым образом связанных единиц. Например, лексем или синтаксических конструкций. Для начала – просто последовательность этих единиц без связей. Но вариантов представления может быть много. Как представлять набор этих вариантов? 14
  • 16. Представление вариантов анализа Cписок вариантов Простейший способ - просто перечислить все варианты Я мою пол Я мой полый Я мой пол Я мой пола Я мыть полый Я мыть пол Я мыть пола 15
  • 17. Представление вариантов анализа Дерево вариантов полый 3 пол 2 3 мыть пола Очевидное 3 улучшение – Я склеить начало 0 1 вариантов полый 3 мой пол 2 3 пола 3 16
  • 18. Представление вариантов анализа Граф вариантов Некоторые неопределенности локальны и не вляют на дальнейший текст – можно склеить в граф мыть полый Я пол 0 1 2 3 мой пола 17
  • 19. Представление вариантов анализа Граф вариантов Некоторые неопределенности локальны и не вляют на дальнейший текст – можно склеить в граф мыть полый Я пол 0 1 2 3 мой пола В этом графе каждый путь определяет некоторый допустимый вариант разбора. Будем называть такой граф «графом вариантов». 17
  • 20. Содержание Анализ текста и неоднозначность Анализ по этапам Неоднозначность анализа Анализ по вариантам Представление вариантов анализа Список вариантов Дерево вариантов Граф вариантов Обработка множества вариантов Преобразование графов вариантов Процессы на графах вариантов Применение алгоритмов анализа Регулярные преобразователи Контекстно-свободные грамматики Программная реализация 18
  • 21. Обработка множества вариантов Этап анализа как преобразование Этап анализа – преобразование одного графа вариантов в другой с сохранением отношений между вариантами: Каждый путь из входного графа преобразуется в подграф выходного графа (возможно пустой) Пути выходного подграфа - варианты анализа этого пути 19
  • 22. Обработка множества вариантов Графематический анализ Я мою пол преобразуется в Я мою пол 20
  • 23. Обработка множества вариантов Морфологический анализа Я мою пол преобразуется в мыть полый Я пол 0 мой пола 21
  • 24. Обработка множества вариантов Синтаксический анализ мыть полый Я пол мой пола преобразуется в NG(Я) V(мыть) NG(пол) VG(2) S(2) 0 22
  • 25. Обработка множества вариантов Этап анализа как процесс Этап анализа – процесс, который: Имеет состояние, изменяющееся в рамках анализа одного варианта Обрабатывает вариант анализа поэлементно – получает на вход один элемент входного варианта и выдает новые элементы на выход сразу, как только возможно Копируется в случае возникновения неоднозначности Склеивается в случае окончания локальной неоднозначности Работает независимо от других процессов (в том числе своих копий) 23
  • 26. Обработка множества вариантов Работа процессов Процессы осуществляют последовательное преобразование входного графа в выходной. Я мою пол Synan|Morphan|Graphan 24
  • 27. Обработка множества вариантов Работа процессов Я мою пол Synan|Morphan 25
  • 28. Обработка множества вариантов Работа процессов Я мою пол Synan Morphan 26
  • 29. Обработка множества вариантов Работа процессов Грамматика для синтаксического анализа: NG -> N | Pn | A NG VG -> V [NG] S -> NG VG NG(Я) мою пол Synan|Morphan 27
  • 30. Обработка множества вариантов Работа процессов Грамматика для синтаксического анализа: NG -> N | Pn | A NG VG -> V [NG] S -> NG VG мыть NG(Я) пол 1 Synan Morphan мой 28
  • 31. Обработка множества вариантов Работа процессов Грамматика для синтаксического анализа: NG -> N | Pn | A NG VG -> V [NG] S -> NG VG мыть Synan NG(Я) пол Morphan Synan мой 29
  • 32. Обработка множества вариантов Работа процессов Грамматика для синтаксического анализа: NG -> N | Pn | A NG VG -> V [NG] S -> NG VG V(мыть) Synan NG(Я) пол Morphan Synan мой 30
  • 33. Обработка множества вариантов Работа процессов Грамматика для синтаксического анализа: NG -> N | Pn | A NG VG -> V [NG] S -> NG VG V(мыть) Synan полый NG(Я) пол пола мой Synan 31
  • 34. Обработка множества вариантов Работа процессов Грамматика для синтаксического анализа: NG -> N | Pn | A NG VG -> V [NG] S -> NG VG Synan полый пол V(мыть) Synan NG(Я) Synan пола полый Synanмой пол пола 32
  • 35. Обработка множества вариантов Работа процессов Грамматика для синтаксического анализа: NG -> N | Pn | A NG VG -> V [NG] S -> NG VG A(полый) Synan пол V(мыть) Synan NG(Я) Synan пола полый Synanмой пол пола 33
  • 36. Обработка множества вариантов Работа процессов Грамматика для синтаксического анализа: NG -> N | Pn | A NG VG -> V [NG] S -> NG VG пол V(мыть) Synan NG(Я) Synan пола полый Synanмой пол пола 34
  • 37. Обработка множества вариантов Работа процессов Грамматика для синтаксического анализа: NG -> N | Pn | A NG VG -> V [NG] S -> NG VG N(пол) V(мыть) Synan NG(Я) Synan пола полый Synanмой пол пола 35
  • 38. Обработка множества вариантов Работа процессов Грамматика для синтаксического анализа: NG -> N | Pn | A NG VG -> V [NG] S -> NG VG V(мыть) N(пол) VG(2) Synan NG(Я) Synan пола полый Synanмой пол пола 36
  • 39. Обработка множества вариантов Работа процессов Грамматика для синтаксического анализа: NG -> N | Pn | A NG VG -> V [NG] S -> NG VG V(мыть) N(пол) VG(2) S(2) NG(Я) Synan пола полый Synanмой пол пола 37
  • 40. Обработка множества вариантов Порядок работы процессов От того в каком порядке работают процессы зависит количество операций для нахождения первого полного варианта анализа. последовательное движение - поиск в глубину параллельное движение - поиск в ширину введение оценок перспективности анализа - эвристический поиск 38
  • 41. Содержание Анализ текста и неоднозначность Анализ по этапам Неоднозначность анализа Анализ по вариантам Представление вариантов анализа Список вариантов Дерево вариантов Граф вариантов Обработка множества вариантов Преобразование графов вариантов Процессы на графах вариантов Применение алгоритмов анализа Регулярные преобразователи Контекстно-свободные грамматики Программная реализация 39
  • 42. Регулярные преобразователи Конечные автоматы-преобразователи замечательно подходят под роль процесов: Имеют состояние, которое поддерживает сравнение и копирование Обрабатывают входящие символы по одному Выдают результаты сразу после накопления необходимой информации Языки описания регулярных преобразователей работают поверх графов вариантов и реализуются процессами Все это остается верным и при их расширении контекстными условиями (например, как в языках Jape/LSPL) 40
  • 43. Регулярные преобразователи Пример грамматики adj.agrTo(’noun).* - noun.$(’noun) ==> nameGroup(’noun) nameGroup.$(’subj) - verb.agrTo(’subj) - nameGroup ==> action Может быть использована для преобразования: Произвольных подпутей в графе (например, отдельных конструкций) Подпутей в графе, составляющих полный путь (например, последовательных предложений) Полного пути в графе (например, единственного предложения) 41
  • 44. Контекстно-свободные грамматики Упаковка дерева Упаковка дерева в путь в графе вариантов Постфиксная запись дерева Два типа элементов в пути: Лист дерева Промежуточный узел, создаваемый на основе N предыдущих При проходе по графу дерево может быть распаковано путем построения снизу вверх NG(Я) V(мыть) NG(пол) VG(2) S(2) 42
  • 46. Контекстно-свободные грамматики Плюсы такой упаковки Сохраняет последовательность появления листьев Допускает обход и преобразование снизу вверх без распаковки Позволяет представлять локальные неоднозначности на различных уровнях дерева Естественное представление, которое получается в процессе работы LR-анализатора 44
  • 47. Контекстно-свободные грамматики Применение алгоритмов Алгоритмы анализа, использующие явный стек легко адаптируются для работы в виде процессов Стек просто становится частью состояния Особенно хорошо адаптируются LR-алгоритмы Последовательность шагов shift-reduce – и есть описанное выше упакованное дерево 45
  • 48. Программная реализация Общая информация Прототип на языке Scala Простейший графематический анализ Морфологический анализ на базе библиотеки для Lucene, использующей словари AOT Реализация графов и процессов Реализация регулярных преобразователей поверх процессов DSL для описания регулярных грамматик непосредственно в коде Визуализация полученных графов вариантов 46
  • 49. Программная реализация Граф вариантов Ленивая структура данных Несколько типов узлов: Конец варианта Возврат Множественное ветвление - ленивый список вариантов Вывод элемента - ленивое вычисление следующего узла Может быть раскрыт в ленивый список вариантов Для получения первых N вариантов анализа Для отладки 47
  • 50. Программная реализация Регулярные преобразователи DSL для описания грамматики в коде val grammar = new RegularWordGrammar[Any] { adj.aggrTo(’main).* - noun.bind(’main) ==> nameGroup } val nameGroupGraph = grammar.gsubMatcher(wordsGraph) 48
  • 51. Дальнейшие направления Адаптация более сложных подходов к анализу Введение оценок перспективности для эвристического поиска Ограничение кратковременной памяти Проведение экспериментов Качество работы Вычислительная эффективность Реализация программной системы для экспериментов с подходом Базовая библиотека, реализующая подход Средства для описания более сложных методов анализа Графическая среда для экспериментов без программирования 49