Выделение похожих частей текстов
Попросите у яндекса или гугла алгоритм шинглов или просто скачайте!
Также, есть более лучший алгоритм, описанный в моём ответе: Как определить похожесть двух строк?
выделение групп «близких» по составу новостей
Это скорее задачи кластеризации а не похожести.
Готовые библиотеки на php не скажу, а если интересен python то запросто.
Известные алгоритмы
к-ближайших соседей
неотрицательная факторизация матриц
и много много других
Подробнее можно почитать тут:
scikit-learn.org/stable/modules/clustering.html#overview-of-clustering-methods