1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/opensci-gAnswer

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_CH.md 10 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 21:21 4cab67e

GAnswer система

GAnswer — это система для ответов на вопросы на естественном языке, разработанная под руководством профессора лаборатории управления данными в Пекинском университете компьютерных технологий. GAnswer может преобразовывать вопросы на естественном языке в запросы с семантической информацией, а затем преобразовывать эти запросы в стандартные SPARQL-запросы и выполнять их в графической базе данных, чтобы получить ответ пользователя. Мы используем метод управления данными, основанный на устранении неоднозначности: на этапе создания запроса мы сохраняем несколько вариантов связей между сущностями и предикатами, а на этапе выполнения запроса устраняем неоднозначность (неверные связи) в соответствии с ситуацией сопоставления.

Это реализация кода из статьи 2018 года «Answering Natural Language Questions by Subgraph Matching over Knowledge Graphs».

Документация по помощи доступна по ссылкам:

Быстрый старт

Сначала вам нужно скачать необходимый файл данных dbpedia16.rar с сайта Baidu Pan, используя код доступа 1mcr. Вы должны распаковать его в папку data. Поскольку полный набор данных требует большого объёма памяти (20 ГБ), вы также можете выбрать загрузку небольшого набора данных, созданного нами из DBpedia 2016 (требуется 5 ГБ памяти), используя код доступа zuue. Обратите внимание, что возможности системы ответов на вопросы ограничены для небольших наборов данных, и вам может потребоваться выбрать подходящий вопрос для тестирования, кроме примеров вопросов и вопросов QALD, представленных на официальном сайте.

Использование jar-пакета для развёртывания

Мы рекомендуем использовать предоставленный нами упакованный jar-файл для развёртывания gAnswer. Вот как это сделать:

  1. Загрузите файлы Ganswer.jar и dbpedia16.rar. Рекомендуется загрузить последнюю версию Ganswer.jar с GitHub, чтобы обеспечить стабильность.
  2. Распакуйте Ganswer.jar в командной строке с помощью команды:
jar -xvf Ganswer.jar

Убедитесь, что файлы после распаковки находятся в том же каталоге, что и Ganswer.jar. 3. Распакуйте dbpedia16.rar в командной строке. На этот раз убедитесь, что распакованные файлы находятся в папке data в текущем каталоге. В примере предполагается, что dbpedia16.rar и Ganswer.jar уже находятся в одном каталоге.

unrar x DBpedia2016.rar ./data/
  1. Теперь структура вашего проекта должна выглядеть так:

Main_project_directory

Ganswer.jar
unzipped files from Ganswer.jar
data

unzipped files from dbpedia16.rar

  1. Запустите jar-пакет в командной строке:
java -jar Ganswer.jar
  1. Дождитесь завершения инициализации системы. Когда появится сообщение «Server Ready!», это означает, что инициализация прошла успешно, и вы можете начать использовать службу gAnswer через HTTP-запрос.

Использование HTTP-запросов для использования GAnswer

Мы предоставляем простой пример того, как использовать GAnswer через HTTP-запросы. Вы можете получить доступ к GAnswer, используя URL-адрес, подобный следующему: http://[ip]:[port]/gSolve/?data={maxAnswerNum:1, maxSparqlNum:2, question:Who is the wife of Donald Trump?} где [ip] и [port] — IP-адрес и порт, которые вы используете для запуска службы GAnswer (порт по умолчанию — 9999). Вам необходимо добавить параметр «data» в HTTP-запрос и передать строку JSON в GAnswer. В этом примере вы фактически передаёте данные JSON следующим образом:

{
  "maxAnswerNum":"1",
  "maxSparqlNum":"2",
  "question":"Whos is the wife of Donald Trump?"
}

Здесь maxAnswerNum и maxSparqlNum определяют максимальное количество возвращаемых ответов и запросов SPARQL соответственно. Эти параметры являются необязательными. Обычно GAnswer возвращает строку JSON, содержащую сгенерированный SPARQL и ответ на вопрос.

{
  "question":"Who is the wife of Donald Trump?",
  "vars":["?wife"],
  "sparql":["select DISTINCT ?wife  where { <Donald_Trump>\t<spouse>\t?wife. } LIMIT 1","select DISTINCT ?wife  where { ?wife\t<spouse>\t<Donald_Trump>. } LIMIT 1"],
  "results":{"bindings":[{"?wife":{"type":"uri","value":"<Ivana_Trump>"}}]},
  "status":"200"
}

Более подробную информацию можно найти в разделе «2.1.1 Начало работы» документа помощи.

Запуск в Eclipse

Чтобы запустить gAnswer в Eclipse, вам необходимо клонировать или загрузить исходный код проекта, затем импортировать проект в Eclipse и добавить jar-файлы из папки lib в Build Path. Из-за большого размера внешних jar-файлов, их невозможно загрузить на GitHub. Вы можете скачать все необходимые внешние jar-файлы с сайта Baidu Pan по коду доступа 64jd или с Google Drive. Вам также необходимо распаковать dbpedia16.rar и поместить его в папку data в корневом каталоге проекта. Параметры, связанные с путём к данным, можно найти в qa.Globals.localPath.

Примечание

Для запуска gAnswer требуется множество зависимостей пакетов, файлов и внешних интерфейсов. Подробные требования описаны в разделе «2.4 Руководство по установке» документа помощи. После генерации SPARQL-запроса система по умолчанию вызывает удалённый сервер с gStore Query Engine для поиска ответа. Это означает дополнительные сетевые издержки и возможные задержки. Поэтому мы настоятельно рекомендуем развернуть gStore Query Engine на вашем сервере и создать соответствующую базу знаний. Для этого вам потребуется:

  • Скачать файл триплетов DBpedia 2016 с сайта Baidu Pan (код доступа 89yy).
  • Развернуть gStore Query Engine и использовать скачанный файл триплетов для создания базы данных. Стоит отметить, что размер файла триплетов DBpedia 2016 составляет 9,9 ГБ, и для построения базы данных требуется большой объём памяти (>10 ГБ) и длительное время (около 10 часов).

Другие вопросы

Мы приветствуем использование gAnswer и приглашаем вас поделиться своими ценными идеями и отчётами об ошибках. Если ваши идеи или отчёты будут приняты, мы включим ваше имя в список авторов в документе помощи. Мы опубликовали несколько статей о задачах QA и системе gAnswer, и вы можете найти дополнительную информацию в главе «3.2 Публикации» документа помощи.

Использование ваших собственных данных в gAnswer

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

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/opensci-gAnswer.git
git@api.gitlife.ru:oschina-mirror/opensci-gAnswer.git
oschina-mirror
opensci-gAnswer
opensci-gAnswer
master