Зависит от того, насколько большой у вас набор данных.Вы можете построить матрицу подобия для объектов данных, используя некоторую метрику строкового расстояния, например, расстояние редактирования или Джакарда с n-граммами.Существует много алгоритмов кластеризации, которые могут кластеризовать практически любые данные на основе матрицы расстояний.Например, можно использовать агломерационную кластеризацию или пики плотности.Оба имеют обычно O (N 2 ) временную сложность, поэтому могут быть неосуществимы для больших наборов данных.
Лично я использовал более быстрый (чем O (N 2 )) вариант Density Peaks для больших (> 500 000) наборов строковых данных, и он был в основном кластеризовать данныев соответствии с языком также.Но метод пока не публичен.