В SDK Pullenti есть некоторый инструментарий для этого. 1) Если по простому, то термины можно добавить в словарь TerminsCollection и искать вхождения их в тексте. Так мы найдём словосочетания с учётом морфологии. 2) Если использовать спец. анализатор KeyAnalyzer для выделение ключевых словосочетаний, то можно так отождествить случаи типа "ПРОДУКТОВЫЙ МАГАЗИН" = "МАГАЗИН ПРОДУКТОВ". 3) Есть спец. анализатор для выделения определений из текста DefinitionAnalyzer (из разных вариантов типа "Под адвокатской деятельностью понимается деятельность, направленная ..." => "АДВОКАТСКАЯ ДЕЯТЕЛЬНОСТЬ = деятельность, направленная...". А вообще если полноценно решать такую задачу на Pullenti, то придётся ещё кое-что дописывать.