Pull to refresh
0
Content AI
Решения для интеллектуальной обработки информации

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

Reading time 4 min
Views 6.4K
Краткое содержание прошлых серий:
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
Tags:
Hubs:
+12
Comments 13
Comments Comments 13

Articles

Information

Website
www.contentai.ru
Registered
Founded
Employees
101–200 employees
Location
Россия