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

Что такое диаграмма знаний?

Проще говоря, граф знаний - это база данных в виде связей между точками данных. Основными атрибутами графа знаний являются узлы и ребра. Чтобы создать граф знаний из текста, вам просто нужно знать основные понятия грамматики, такие как субъект и объект предложения, что такое глагол и т. Д. Узлы обозначают субъект и объект, в то время как они связаны ребрами, которые представлен частью глагола в предложении. Если вы хорошо разбираетесь в концепции части речи, вы можете легко построить базу графа знаний для своих текстовых документов. Пожалуйста, обратитесь к приведенному ниже примеру для справки. Предложение гласит: «Арсенал играет в футбол», а изображение ниже обозначает построенный для него граф знаний.

Построение графа знаний

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

Итак, здесь мы используем часть тегов речи из пакета spacy для определения различных частей каждого предложения. Таким образом, наша логика должна иметь возможность получить часть подлежащего, объекта и глагола, которая связывает первые две части.

Таким образом, шаблон должен быть «Существительное-Глагол-Существительное»,, как мы видим из приведенного выше фрагмента кода, я вставил разделитель '‹' Между глаголом и существительным часть предложения. Это простой способ создать набор «субъект-край-объект», его можно сделать намного сложнее и лучше, используя больше POS-логики анализа зависимостей.

Приведенный выше фрагмент кода помогает запрашивать фрейм данных с запрашиваемым текстом инициации. Например, предположим, что есть предложение «Полицейские из Мумбаи перестают патрулировать остров из-за отсутствия лодок», и если мы хотим спросить что-то вроде «Что остановили копы в Мумбаи?» мы можем перефразировать это как «Копы Мумбаи останавливаются…». Я установил пороговую оценку 75%, и результат будет таким, как указано ниже.

Функция запроса принимает два входа: запрашиваемую строку и порог достоверности для фильтрации лучших результатов. Оценка - это средняя оценка нечеткого сходства между списком слов в фрейме данных и токенами в строке запроса. Эффективность алгоритма дополнительно повышается за счет удаления стоп-слов при создании наборов «субъект-отношения-объект».

Мы также можем визуализировать данные графа, используя библиотеки pandas и networkx. В приведенном ниже фрагменте показано, как связаны субъект и объект, линия указывает ссылку. Я использовал «заявленный» как отношение, которое нужно искать.

Итак, ребята, мы создали базу данных графов и проанализировали, как сделать ее доступной для запросов для простых вопросов и ответов. Это очень простой и примитивный способ реализации графа знаний и запросов к нему, его можно сделать более эффективным и сложным. Пожалуйста, оставьте свой ценный отзыв.