ABBYY Labs. Проект «Q&A»: демонстрация возможностей

    Краткое содержание прошлых серий:
    ABBYY Labs? Что это?
    Идея студенческих лабораторий очень проста: мы собираем команду студентов, которые занимаются решением задач под руководством наших специалистов. В МФТИ это проходит в рамках годового курса «Инновационный практикум». Цель проекта – дать возможность студентам в процессе обучения решать задачи, в большей степени приближенные к реальным, чем это бывает в обычном учебном процессе. И «погрузить» их при этом в соответствующее окружение: среда, в которой проходит разработка, – реально действующая IT-компания.
    Проекты прошлых лет
    Распознавание формул
    Постановка задачи: image Студенческие лаборатории ABBYY
    Решение задачи: image ABBYY Labs – what's new?
    Текущие проекты
    Приложение для Android
    image ABBYY Labs: Проект «FromWord» — играем словами на Android
    Вопросно-ответная система
    image ABBYY Labs. Проект «Q&A»: начало
    +↓

    Кратко о проекте:
    Задача: Иметь возможность найти часть ранее загруженного текста, наиболее полно отвечующую на вопрос пользователя, заданный на естественном языке.
    Текущее состояние: Можно пощупать ручками!
    Будущее: Туманно. Зависит от реакции и платёжеспособности аудитории.
    Поэтому: Не проходите мимо!

    Под катом ссылка на демо-пример, и вообще, логическое продолжение прошлой части.


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

    Языковой барьер — не проблема, пока мы говорим об английском и русском (в том смысле, что по русскому тексту можно задавать вопрос на английском и наоборот). В будущем список «родных» для механизма языков будет расти.

    Ребята очень просили рассказать про организацию движка. Я в их описании понял чуть меньше половины (читай — ничего), поэтому помещаю его под спойлер
    Устрашающие слова: эллипсис, морфологическое описание, дерево, граф
    1. Обработка текстов
      • Получили от Compreno разбор текста в виде xml
      • Каждое предложение текста представляет собой дерево (в общем случае лес, если предложение сложное). Узел такого дерева – это слово (или словосочетание, например, когда в предложении есть фразеологизм) в предложении. Причем в каждой вершине, хранится морфологическое описание данного слова (т.е. падеж, число, род и т.д.) Две связанных вершины дерева представляют собой словосочетание.
      • В общем случае предложение представляет собой несколько деревьев (например, две части сложносочиненного предложения), и поэтому для каждого предложения создаётся чисто технический узел, не несущий никакой информации, за который подвешиваются деревья из предложения. А они в свою очередь подвешиваются к корню текста. Таким образом для любого текста мы получаем одно дерево разбора.
      • Затем добавляем недревесные связи (анафоры и эллипсисы)
    2. Аналогичное дерево строится и для вопроса
    3. Далее осуществляется поиск
      • Пробегаем по всем предложениям текста и сравниваем все узлы из вопроса со всеми узлами из этого предложения. Сравнение происходит по их морфологическим и семантическим описаниям. Такое сравнение позволяет отождествлять не только синонимы, но и схожие слова из разных языков (слова со схожим значением). И результатом сравнения является коэффициент схожести контента узлов в паре.
      • Далее обрабатываются анафорические связи, и для некоторых пар (узел из предложения – узел из вопроса), пересчитывается коэффициент.
      • Повторно сравниваются все узлы вопроса со всеми узлами предложения, но теперь с учетом детей. В результате каждая пара узлов получает коэффициент структурной схожести (это число, характеризующее схожесть поддеревьев по строению).
      • На следующем этапе сравниваются уже целые поддеревья. Описать процесс сравнения поддеревьев словами сложно, поэтому попробуем провести аналогию (не совсем адекватную). Пусть есть две сети дорог, представляющие собой деревья. Выберем узел в каждой сети и поместим туда по близнецу, которые любят ходить по одинаковым (или очень похожим) дорогам. И, собственно, просим их ходить по ним, подсчитывая суммарную похожесть. Помещая их изначально в различные пары узлов, можно найти ту пару, начиная от которой суммарная похожесть окажется наибольшей. Это число и запоминается для данного предложения, как его вес.
      • В качестве ответов выбираются предложения с наибольшим весом.


    Прочие важные штуки
    Скорость. Работает не то, чтобы молниеносно, но тому есть свои причины: держится всё это хозяйство в амазоновском облаке на самом дешёвом инстансе (который бесплатный для тестовых целей). Поэтому на скорость не пеняйте!

    Качество поиска ответа.
    Через сайт можно увидеть самый релевантный по мнению системы ответ. Однако, как это бывает в суровой реальности, не всегда самый релевантный ответ по мнению «компьютера» и по мнению человека — это одно и то же. Поэтому пользователям API будут возвращены несколько возможных ответов с учётом релевантности, а как их отображать — это уже владельцу сервиса лучше знать. Впрочем, увидеть их можно и сейчас в виде xml, ссылка на который находится прямо под словами «Файл со всеми ответами».

    Возможности по улучшению. В случае поиска по материалу с заранее известной тематикой, сервис может быть сконфигурирован с учётом её, что повысит релевантность поиска. Скорость, как уже было сказано, тоже может быть увеличена путём предоставления более мощного инстанса в облаках.

    Самое главное. Ссылка-то, вот она!
    Achtung! На данный момент ответ можно искать по одному из 3 текстов (загрузка новых отключена для избежания хабраэффекта), среди которых

    Хочется знать мнение пользователей Хабра: где ещё можно использовать данный сервис? Ну и критики давайте, критики :)

    UPD: Кстати, я тут вспомнил, что nafany121 страдает без инвайта, даже на комментарии отвечать не может. А он, между прочим — один из разработчиков этой штуки. Ну вы поняли о чём я, да? Спасибо, HeadMatters
    ABBYY
    Решения для интеллектуальной обработки информации

    Похожие публикации

    Комментарии 13

      +1
      Система считает, что людоед из «Кота в сапогах» умер от обжорства.
        +1
        Зато она знает, что маркиз Карабас — хозяин кота в сапогах.
        +2
        Прикольно! Можно использовать для прохождения тестов. Вогнал учебник и вопрос теста…
          +3
          Исходный код?
            +2
            О, неужели наконец-то можно потыкать палочкой пощупать руками?
              +2
              ABBYY Labs. Могут ли туда попасть не-студенты и не-аспиранты?
                +1
                Ответ Андрея Очеретного, ответственного за ABBYY Labs (и не только за них, но нас же сейчас только Лабс волнует, правда? :)
                Школьники, например, точно могут, если есть время. В любом случае вопрос нужно обсуждать в индивидуальном порядке. Пишите на brains@abbyy.com
                  +1
                  Спасибо.
                +1
                Последний вопрос: Сколько лет Путину?
                Ответ:
                Большая часть из них – программисты, инженеры, лингвисты.
                Средний возраст сотрудников компании – 27 лет.
                  0
                  Просто интересно было услышать как система ответит на вопросы, не относящиеся к загруженным текстам:)
                  +1
                  В целом, идея сервиса хорошая.
                    +1
                    Технология просто отличная.
                    Можно создавать из книг огромные базы знаний и в простой человеческой форме задавать вопросы и получать «человеческие» ответы. Для кого-то это может быть даже виртуальным общением.
                    Интересно было бы Библию загрузить и «поспрашивать».
                      0
                      Все-таки сервис еще нуждается в доработке
                      Последний вопрос: что такое офсайд?
                      Ответ:
                      Старшему досталась мельница, среднему – осел, ну а младшему пришлось взять себе кота.
                      – Это добро в самый раз для тебя, – смеялись старшие братья, которые никогда не упускали случая подразнить младшего.
                      – Не слушай их, хозяин, – мяукнул кот. – Я, конечно, не мельница и не осел, но и не какой-то там обыкновенный кот.

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое