Skip to content

Fatalll/KBQA

Repository files navigation

KBQA

Датасет для вопросно-ответного поиска на основе базы знаний.

Базы знаний (БЗ) содержат факты о мире в структурированном виде данных, представленных в формате графа, их очень естественно использовать для ответов на вопросы. Основная сложность в разборе вопроса к виду, пригодному для выполнения запроса к БЗ. Для обучения соответствующих методов и оценки их качества необходимы датасеты, но на данный момент для русского языка нет ни одного.

Данный проект представляет из себя набор скриптов для ответов на вопросы на естественном языке.

Этапы поиска ответа по базе знаний

  1. Выделение сущностей (Entity Detection)
  2. Сопоставление сущности в БЗ (Entity Linking)
  3. Выделение и сопоставление отношения
  4. Выполнение запроса к БЗ

Выделение и сопоставление сущностей

  1. С помощью SPARQL соберем информацию о сущности (различные названия) и отфильтруем лишнее.
  2. С помощью морфологического анализатора (MyStem) приведем все слова к нормальной форме.
  3. Разобьем информацию на n-граммы и построим индекс (ElasticSearch).
  4. Каждый вопрос обработаем MyStem, отфильтруем лишние слова и сделаем запрос к построенному индексу.
  5. Отсортируем результат по лучшему совпадению.

Выделение и сопоставление отношений

  1. Выделим сущность для ответа, сущность для вопроса и найдем путь в графе базы знаний между сущностями.
  2. Запрос к индексу ElasticSearch по ответу и по вопросу.
  3. Определение топ 10 сущностей для каждого.
  4. SPARQL запрос для определения цепочки отношений каждой сущности с каждой.
  5. Выбор наиболее подходящего варианта с помощью краудсорсинга.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published