Извлечение (субъект, предикат, объект) из дерева зависимостей
Я заинтересован в извлечении тройки (субъект, предикат, объект) из вопросов.
Например, я хотел бы преобразовать следующий вопрос:
Кто супруга президента США?
к:
(x, isWifeOf, y) ∧ (y, isPresidentof, USA)
х и у неизвестны, что мы должны найти, чтобы ответить на вопрос (/\ обозначает соединение).
Я прочитал много статей на эту тему, и я хотел бы выполнить эту задачу, используя существующие парсеры, такие как Стэнфордский парсер. Я знаю, что парсеры выводят 2 типа данных:
- разбирать структуру дерева (отношения сторон)
- дерево зависимостей (отношения зависимостей)
Некоторые статьи пытаются построить тройки из дерева структуры разбора (например, Triple Extraction from Sentences), однако этот подход кажется слишком слабым для решения сложных вопросов.
С другой стороны, деревья зависимостей содержат много соответствующей информации для тройного извлечения. Многие документы утверждают, что это делается, однако я не нашел ни одной из них, которая бы дала явно детальную процедуру или алгоритм. В большинстве случаев авторы говорят, что анализируют зависимости, чтобы получить тройки в соответствии с некоторыми правилами, которые они не давали.
Кто-нибудь знает какой-либо документ с дополнительной информацией о извлечении (субъект, предикат, объект) из дерева зависимостей вопроса?
0 ответов
В Textacy есть достойная реализация тройного извлечения. Он построен на основе SpaCy, популярной библиотеки НЛП на Python. Похоже, вас особенно интересует базовый алгоритм тройного извлечения, поэтому, возможно, изучение исходного кода их алгоритма может дать вам некоторое вдохновение. См. Здесь: https://textacy.readthedocs.io/en/stable/_modules/textacy/extract.html#subject_verb_object_triples