У меня под рукой следующая проблема: у меня есть очень длинный список слов, возможно, имен, фамилий и т. Д. Мне нужно сгруппировать этот список слов, чтобы похожие слова, например слова с одинаковым расстоянием редактирования (Левенштейна), появлялись в тот же кластер. Например, «алгоритм» и «алогритм» должны иметь высокие шансы появиться в одном кластере.
Мне хорошо известны классические неконтролируемые методы кластеризации, такие как кластеризация k-средних, EM-кластеризация в литературе по распознаванию образов. Проблема в том, что эти методы работают с точками, которые находятся в векторном пространстве. У меня есть слова струн в моей руке здесь. Похоже, что вопрос о том, как представлять строки в числовом векторном пространстве и вычислять «средние значения» кластеров струн, не получил достаточного ответа, согласно моим исследованиям до сих пор. Наивным подходом к решению этой проблемы было бы объединение кластеризации k-средних с расстоянием Левенштейна, но все еще остается вопрос «Как изобразить» средство «из строк?». Существует вес, называемый весом TF-IDF, но, похоже, он в основном относится к области кластеризации «текстовых документов», а не к кластеризации отдельных слов. http://pike.psu.edu/cleandb06/papers/CameraReady_120.pdf
Мои поиски в этой области все еще продолжаются, но я тоже хотел получить идеи. Что бы вы порекомендовали в этом случае, кто-нибудь знает какие-либо методы для такого рода проблемы?
It seems that there are some special string clustering algorithms
, Если вы пришли именно из области интеллектуального анализа текста, а не из статистики / анализа данных, это утверждение оправдано. Однако, если вы изучите кластеризацию как таковую, вы обнаружите, что не существует «специальных» алгоритмов для строковых данных. «Специальный» - это то, как вы предварительно обрабатываете такие данные, прежде чем вводить их в кластерный анализ.