Перечисление фрагментов в документах с использованием анализатора интересов Stanford CoreNLP - PullRequest
0 голосов
/ 15 мая 2019

Я написал рекурсивный метод, который возвращает список всех компонентов / блоков в документе на основе результатов синтаксического анализатора интересов CoreNLP - был бы рад поделиться моим кодом. Однако одна проблема заключается в том, что элементы в этом списке могут иметь перекрытия. Это потому, что когда я анализирую дерево постоянных, очевидно, что у нас есть несколько меток одного типа (например, VP или NP) на одном и том же пути к ребенку. Например, для входного предложения:

Я купил книгу, потому что прочитал хорошие отзывы о ней.

список чанков будет выглядеть следующим образом (это вывод моего метода, и в этом случае я перечислял только VP, NP и SBAR):

[['NP', 'I'], 
['NP', 'the book'], 
['NP', 'I'], 
['NP', 'good reviews'],
['NP', 'it'], 
['SBAR', 'because I read good reviews about it'], 
['VP', 'bought the book because I read good reviews about it'], 
['VP', 'read good reviews about it']]

Как видите, между двумя ПО и SBAR есть совпадение.

Теперь мой вопрос / путаница в том, как мне справиться с перекрытиями между кусками? Зависит ли это от того, где я хочу использовать эти куски? Существует ли уникальная стратегия / правило, которому я должен следовать, чтобы устранить совпадения? Я не ищу здесь код, и поэтому пока не поделился своим реальным кодом, но я ищу алгоритм, который я должен использовать, если таковой имеется, для устранения перекрытий.

...