Существуют-ли публичные алгоритмы семантического поиска вхождений подстроки в строке?
Имеется строка:
Lorem Ipsum является стандартной "рыбой" для текстов на латинице с начала XVI века.
Существует компания рога и копыта, производящая рога изобилия. Рог изобилия является...
Имеется список ключевых слов:
['lorem ipsumi', 'рог изобилия', ...]
Необходимо найти вхождения (если таковые имеются) каждого ключевого слова в строке, используя неявный поиск. Т.е. результатом работы должен быть список найденных ключевых слов:
[
'lorem ipsumi' => ['Lorem Ipsum'],
'рог изобилия' => ['рога изобилия', 'Рог изобилия'],
...]
Товарищи, есть-ли реализованный алгоритм такого поиска?
P.s. реализация необязательно должна быть выполнена на PHP.