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

в 16:24, , рубрики: ABBYY Labs, Блог компании ABBYY, Учебный процесс в IT, метки:

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. Далее осуществляется поиск
    • Пробегаем по всем предложениям текста и сравниваем все узлы из вопроса со всеми узлами из этого предложения. Сравнение происходит по их морфологическим и семантическим описаниям. Такое сравнение позволяет отождествлять не только синонимы, но и схожие слова из разных языков (слова со схожим значением). И результатом сравнения является коэффициент схожести контента узлов в паре.
    • Далее обрабатываются анафорические связи, и для некоторых пар (узел из предложения – узел из вопроса), пересчитывается коэффициент.
    • Повторно сравниваются все узлы вопроса со всеми узлами предложения, но теперь с учетом детей. В результате каждая пара узлов получает коэффициент структурной схожести (это число, характеризующее схожесть поддеревьев по строению).
    • На следующем этапе сравниваются уже целые поддеревья. Описать процесс сравнения поддеревьев словами сложно, поэтому попробуем провести аналогию (не совсем адекватную). Пусть есть две сети дорог, представляющие собой деревья. Выберем узел в каждой сети и поместим туда по близнецу, которые любят ходить по одинаковым (или очень похожим) дорогам. И, собственно, просим их ходить по ним, подсчитывая суммарную похожесть. Помещая их изначально в различные пары узлов, можно найти ту пару, начиная от которой суммарная похожесть окажется наибольшей. Это число и запоминается для данного предложения, как его вес.
    • В качестве ответов выбираются предложения с наибольшим весом.

Прочие важные штуки

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

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

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

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

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

Автор: MKrivosheev

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js