ABBYY Labs. Q&A Project: Demonstration of Opportunities

ABBYY Labs? What is it?
The idea of student laboratories is very simple: we assemble a team of students who are involved in solving problems under the guidance of our specialists. At MIPT, this takes place as part of the annual course “Innovation Workshop”. The goal of the project is to enable students in the learning process to solve problems that are more close to real than what happens in a normal educational process. And at the same time “immerse” them in the appropriate environment: the environment in which the development takes place is a real-life IT company.
Past Projects
Распознавание формул
Постановка задачи:
Студенческие лаборатории ABBYY
Решение задачи:
ABBYY Labs – what's new?
Постановка задачи:

Решение задачи:

Ongoing projects
Приложение для Android
ABBYY Labs: Проект «FromWord» — играем словами на Android
Вопросно-ответная система
ABBYY Labs. Проект «Q&A»: начало
+↓

Вопросно-ответная система

+↓
Briefly about the project:
Task: To be able to find the part of the previously downloaded text that most fully answers the user's question asked in natural language.
Current status: You can touch the pens!
Future: Hazy. Depends on the reaction and solvency of the audience.
Therefore: Do not pass by!
Under the cut, a link to a demo example, and in general, a logical continuation of the last part .
Principle of operation
The texts with which you plan to work are downloaded in advance. After processing these texts, it becomes possible to ask questions on them in a natural language and, importantly, receive answers :). An API is already ready for this business. The guys see that this service can be good for use on sites with a lot of textual information, for example, on forums, in medical and legal directories. If habraudly offers a new field of application - the developers will be only happy.The language barrier is not a problem as long as we talk about English and Russian (in the sense that you can ask a question in English on the Russian text and vice versa). In the future, the list of “native” ones for the language mechanism will grow.
The guys were very asked to talk about the organization of the engine. I understood a little less than half in their description (read - nothing), so I put it under the spoiler
Frightening words: ellipsis, morphological description, tree, graph
- Обработка текстов
- Получили от Compreno разбор текста в виде xml
- Каждое предложение текста представляет собой дерево (в общем случае лес, если предложение сложное). Узел такого дерева – это слово (или словосочетание, например, когда в предложении есть фразеологизм) в предложении. Причем в каждой вершине, хранится морфологическое описание данного слова (т.е. падеж, число, род и т.д.) Две связанных вершины дерева представляют собой словосочетание.
- В общем случае предложение представляет собой несколько деревьев (например, две части сложносочиненного предложения), и поэтому для каждого предложения создаётся чисто технический узел, не несущий никакой информации, за который подвешиваются деревья из предложения. А они в свою очередь подвешиваются к корню текста. Таким образом для любого текста мы получаем одно дерево разбора.
- Затем добавляем недревесные связи (анафоры и эллипсисы)
- Аналогичное дерево строится и для вопроса
- Далее осуществляется поиск
- Пробегаем по всем предложениям текста и сравниваем все узлы из вопроса со всеми узлами из этого предложения. Сравнение происходит по их морфологическим и семантическим описаниям. Такое сравнение позволяет отождествлять не только синонимы, но и схожие слова из разных языков (слова со схожим значением). И результатом сравнения является коэффициент схожести контента узлов в паре.
- Далее обрабатываются анафорические связи, и для некоторых пар (узел из предложения – узел из вопроса), пересчитывается коэффициент.
- Повторно сравниваются все узлы вопроса со всеми узлами предложения, но теперь с учетом детей. В результате каждая пара узлов получает коэффициент структурной схожести (это число, характеризующее схожесть поддеревьев по строению).
- На следующем этапе сравниваются уже целые поддеревья. Описать процесс сравнения поддеревьев словами сложно, поэтому попробуем провести аналогию (не совсем адекватную). Пусть есть две сети дорог, представляющие собой деревья. Выберем узел в каждой сети и поместим туда по близнецу, которые любят ходить по одинаковым (или очень похожим) дорогам. И, собственно, просим их ходить по ним, подсчитывая суммарную похожесть. Помещая их изначально в различные пары узлов, можно найти ту пару, начиная от которой суммарная похожесть окажется наибольшей. Это число и запоминается для данного предложения, как его вес.
- В качестве ответов выбираются предложения с наибольшим весом.
Other important things
Speed. It does not work at lightning speed, but it has its own reasons: all this economy is kept in the Amazon cloud at the cheapest instance (which is free for test purposes). Therefore, do not blame the speed!The quality of the response search.

Improvement opportunities. In the case of a search for material with a known topic, the service can be configured to take it into account, which will increase the relevance of the search. Speed, as already mentioned, can also be increased by providing a more powerful instance in the clouds.
The most important thing . Link, here it is !
Achtung! At the moment, the answer can be searched for in one of 3 texts (loading of new ones is disabled to avoid the habra effect), among which
I would like to know the opinion of Habr users: where else can I use this service? Well