Я подозреваю, что вам нужен инструмент Tregex , более подробно описанный в power point здесь или Javadoc самого класса.
В вашем случае, я считаю, что шаблон, который вы ищете, это просто S
. Итак, что-то вроде:
tregex.sh “S” <path_to_file>
где файл представляет собой дерево в формате Penn Treebank, то есть что-то вроде (ROOT (S (NP (NNS dogs)) (VP (VB chase) (NP (NNS cats)))))
.
В качестве отступления: я считаю, что фрагмент ", но " на самом деле не является предложением, как вы подчеркнули на рисунке. Скорее, выделенный вами узел включает в себя целое предложение « Ричард работает с CoreNLP, но не совсем понимает, что он делает ». Tregex распечатал бы все это предложение как одно из совпадений. Точно так же « на самом деле не понимает, что » не является предложением, если не включает в себя весь SBAR: « не понимает, что он делает ».
Если вам нужны только «листовые» предложения (т. Е. Предложение, не включенное в другое предложение), вы можете попробовать шаблон более похожий на:
S !>> S
Примечание: я не тестировал шаблоны - используйте на свой страх и риск!