У мене є така проблема: у мене дуже довгий перелік слів, можливо, імен, прізвищ тощо. Мені потрібно згрупувати цей список слів, щоб подібні слова, наприклад слова з аналогічною відстані редагування (Левенштейн), з’явились у той же кластер. Наприклад, "алгоритм" і "алогритм" повинні мати високі шанси відобразитися в одному кластері.
Я добре знаю класичні методи без кластерного кластеризації, такі як кластеризація k-засобів, кластеризація ЕМ в літературі про розпізнавання образів. Проблема тут полягає в тому, що ці методи працюють на точках, які знаходяться у векторному просторі. У мене тут є слова струн. Здається, на питання про те, як представити рядки в числовому векторному просторі та обчислити "засоби" струнних кластерів, недостатньо відповіли, згідно з моїми дослідженнями до цього часу. Наївним підходом до нападу на цю проблему було б поєднання кластеризації k-Means з відстані Левенштейна, але все ще залишається питання "Як зобразити", означає "струни?". Існує вага, який називається вагою TF-IDF, але здається, що він здебільшого пов'язаний з областю кластеризації "текстового документа", а не згрупуванням окремих слів. http://pike.psu.edu/cleandb06/papers/CameraReady_120.pdf
Мій пошук у цій галузі триває досі, але я хотів отримати ідеї і звідси. Що б ви порадили в цьому випадку, хтось знає якісь методи для подібного роду проблем?
It seems that there are some special string clustering algorithms
. Якщо ви походите з конкретного поля для видобутку тексту, а не статистики / аналізу даних, це твердження є гарантованим. Однак, якщо ви дізнаєтесь гілку кластеризації, то ви виявите, що не існує "спеціальних" алгоритмів для рядкових даних. "Особливим" є те, як ви попередньо обробляєте такі дані, перш ніж вводити їх в аналіз кластера.