#python #tree #nlp #spacy
#python #дерево #nlp #spacy
Вопрос:
Я работаю над задачей с ответами на вопросы. Я планирую использовать синтаксический анализ зависимостей, чтобы найти возможные ответы из отрывка к запросу. Однако я не уверен, как я могу найти сходство между деревьями зависимостей запроса и предложениями из отрывка соответственно. Ниже приведен воспроизводимый код.
import spacy
from spacy import displacy
nlp = spacy.load('en_core_web_sm')
doc1 = nlp('Wall Street Journal just published an interesting piece on crypto currencies')
doc2 = nlp('What did Wall Street Journal published')
displacy.render(doc1, style='dep', jupyter=True, options={'distance': 90})
displacy.render(doc2, style='dep', jupyter=True, options={'distance': 90})
Комментарии:
1. И в чем именно проблема, с которой вы столкнулись? Все, что вы в данный момент делаете, это отображение деревьев, нет попытки решить это.
2. @Lomtrur Я хочу найти сходство между парой деревьев зависимостей.
3. И что вы пытались решить? Похоже, вы ровно ничего не пробовали (кроме отображения деревьев синтаксического анализа) и теперь ожидаете, что кто-то решит всю проблему за вас.
4. @Lomtrur Я хочу решить задачу с ответами на вопросы с помощью синтаксического анализа зависимостей. Я прошу вас решить проблему целиком. Просто хочу найти способ сопоставить 2 дерева зависимостей.
Ответ №1:
Возможно, это то, что вы ищете:
https://github.com/tomkwiat/dependency-graph-similarity-measure
Это на Java, но должно быть легко портировать на Python.
Еще одна вещь, которую вы могли бы изучить, — это статьи о сходстве графов ядра.
Комментарии:
1. Большое спасибо @David
2. рад помочь, я знал, что несколько лет назад нашел несколько хороших статей о том, что вы именно хотите сделать, но я не могу вспомнить название и не нахожу их, но попробуйте, это хорошо изученная тема, сходство древовидных графиков
3. Конечно, я попробую это.