Какую базу данных можно использовать для хранения обработанных данных из механизма NLP

Я смотрю на получение неструктурированных данных в виде файлов, их обработку и сохранение в database для поиска. Данные будут на естественном языке, и запросы для получения информации также будут на естественном языке. Пример: данные могут быть "Розы красные", а запрос может быть "Какого цвета роза?"

Я просмотрел несколько nlp систем, сосредоточившись больше на open-source системе извлечения информации и извлечении отношений, и следующее кажется подходящим и простым для быстрого старта: https://www.npmjs.com/package/mitie

Это может дать данные в виде пар (слово, тип). Это также дает отношение в результате выполнения обработки (см. Пример сайта).

Я хочу знать, подходит ли sql database для сохранения этой информации. Для извлечения информации мне нужно будет также преобразовать запрос на естественном языке в какие-то пары (слово, значение), а для использования sql мне придется написать слой, который преобразует естественный язык в sql запросы.

Пожалуйста, предложите, есть ли какие-либо программы с открытым исходным кодом database, которые хорошо работают в этой ситуации. Я открыт для предложений по базам данных, которые работают с другими open-source системами извлечения информации и извлечения отношений, если не с MITIE.


person Swati Pardeshi    schedule 24.05.2017    source источник
comment
sphinx можно было бы использовать в качестве механизма обработки/сопоставления, вы могли бы сохранить его в необработанной базе данных mysql, если хотите, но sphinx может напрямую обрабатывать необработанные файлы и анализировать их, а не хранить в sql, если хотите.   -  person Dave    schedule 24.05.2017
comment
Спасибо @Дэйв. Не могли бы вы поделиться ссылкой на то же самое?   -  person Swati Pardeshi    schedule 24.05.2017
comment
sphinxsearch.com содержит всю документацию и т. д., как его использовать, а также несколько ссылок для скачивания и т. д.   -  person Dave    schedule 24.05.2017


Ответы (1)


SQL не будет подходящим выбором для вашей проблемы. Вы можете использовать НЛП или правила для извлечения отношений, а затем сохранить эти отношения в базе данных Triple Store или Graph. Существует много хороших графических баз данных с открытым исходным кодом, таких как Neo4j и Apache Titan. Вы можете запросить у Google тройные магазины, я полагаю, что Apache Jena должен быть хорошим выбором. После сохранения ваших данных вы можете запрашивать свои графики, используя любой из языков запросов графов, таких как Gremlin или Cypher и т. д. (например, SQL). Обратите внимание, что сердцем вашей системы будет Граф знаний.

Вы также можете настроить поисковую систему на основе Lucene/Solr для своих неструктурированных данных, которая может помочь вам отвечать на ваши запросы в сочетании с базами данных Graph. Все это (NLP, IR, Graph DB/Triplestores и т. д.) будет сосуществовать для решения вашей проблемы.

Это был бы ансамбль. Никаких серебряных пуль :) Однако для начала посмотрите на Graph DB или Triple-магазины.

person Yavar    schedule 24.05.2017
comment
Спасибо @Yavar. Я посмотрю варианты, упомянутые здесь. - person Swati Pardeshi; 24.05.2017