#elasticsearch #rdf #dbpedia
#elasticsearch #rdf #dbpedia
Вопрос:
Я работаю над университетским проектом для чат-бота, который отвечает на различные вопросы на основе наборов данных dbpedia в формате RDF. На данный момент чат-бот очень специфичен и способен отвечать на вопросы, связанные с поддоменом фильмов Marvel. Моя цель — обобщить, в частности, путем индексации содержимого dbpedia с помощью elasticsearch, а затем попытаться создавать запросы с использованием этих индексов.
Однако я не знаком с elasticsearch и никогда не работал над индексацией. В частности, мне трудно понять, как предварительно обработать наборы данных dbpedia, а затем подумать об индексации. Я хотел бы получить несколько советов о стратегии, которой следует следовать.
Большое спасибо
Комментарии:
1. «Однако я не знаю elasticsearch и никогда не работал над индексацией». — ну, а теперь? Разве вы не должны сначала прочитать об ElasticSearch? Также неясно, какую часть набора данных DBpedia вы хотите проиндексировать и какие запросы вы хотите запускать в индексе. Я имею в виду, что это текстовый индекс, поэтому очевидно, что вы должны индексировать текстовые данные. Многие люди, включая мою исследовательскую группу, индексировали данные DBpedia через Lucene. Но только сущности, а не отношения. Итак, почему вы вообще хотите использовать ElasticSearch? Данные RDF индексируются в трех хранилищах, а SPARQL является языком запросов для RDF
2. Кстати, ваш вопрос явно адресован широкому кругу…
3. @AKSW Привет, сейчас я пытаюсь быть более конкретным. Я думаю, мне следует использовать elasticsearch для индексации объектов из dbpedia и использовать эти индексы для выполнения связывания именованных объектов и / или распознавания именованных объектов, чтобы распознавать объекты dbpedia в пользовательском вопросе. Я хотел бы знать, как я должен установить структуру индекса в этом случае, т. Е., например, различные поля и свойства, которые должен иметь каждый документ json в индексе.
Ответ №1:
Elasticsearch предоставляет вам платформу для поиска и хранения данных. Это не означает, что вы можете использовать Elasticsearch только для извлечения или чтения данных откуда-либо. На самом деле, вам нужно выполнить поиск в Elastic Stack.
Для получения дополнительной информации на этом изображении ваши данные справа, клиент-сервер. Вам нужно использовать некоторые скрипты или продукты Elastic Stack, такие как logstash, filebeat и т.д. для извлечения данных из источника в Elasticsearch. После этого вы точно понимаете свою структуру данных, чтобы ускорить поиск. Впервые Elasticsearch справится со всеми проблемами структуры данных, такими как отображение, но это может немного замедлить ваш поиск. Вам нужно изменить свое отображение. Итак, вам нужно прочитать некоторую документацию. После отправки данных в Elasticsearch вы можете визуализировать данные с помощью Kibana. Для получения более специализированных вопросов сначала перейдите к документации Elasticsearch, если вы не можете найти там или понять, вернитесь сюда.
Также, пожалуйста, проверьте графические возможности Elasticsearch
https://www.elastic.co/elasticon/conf/2016/sf/graph-capabilities-in-the-elastic-stack
подходит это для DBpedia или нет.
Редактировать: После более детального изучения я нашел кое-что действительно хорошее о. Вот ссылки :
- https://discuss.elastic.co/t/indexing-rdf-datasets/84281/6
- https://gist.github.com/markharwood/21c723039425b4b3e4277b2bffa5c54c (это скрипт на python для индексации Elasticsearch.)
- https://www.youtube.com/watch?v=ZzWT-2xdaekamp;feature=youtu.be (Также видео)