Я работаю над аналогичной проблемой, я работаю в Visual Basic.Во-первых: у меня есть список предметов / НОУН. Во-вторых: когда я извлекаю предикат, я извлекаю фразу между ...При построении списка субъектов с существительными и именными фразами их позиции можно заменить на (шаблон обучения), тогда, если субъекты не обнаружены, возможно, ранее был обнаружен изученный предикат.
Возможно, это похоже на алгоритм снежного кома.