Mam pod ręką następujący problem: Mam bardzo długą listę słów, ewentualnie imion, nazwisk itp. Muszę utworzyć listę słów w taki sposób, aby podobne słowa, na przykład słowa o podobnej odległości edycji (Levenshtein) pojawiły się w ten sam klaster. Na przykład „algorytm” i „alogrithm” powinny mieć duże szanse na pojawienie się w tym samym klastrze.
Doskonale zdaję sobie sprawę z klasycznych, nieobjętych nadzorem metod grupowania, takich jak grupowanie k-średnich, grupowanie EM w literaturze Rozpoznawanie wzorców. Problem polega na tym, że metody te działają na punktach znajdujących się w przestrzeni wektorowej. Mam tutaj pod ręką słowa strun. Wydaje się, że zgodnie z moimi dotychczasowymi badaniami na pytanie, jak reprezentować ciągi w cyfrowej przestrzeni wektorowej i obliczyć „środki” klastrów ciągów, nie uzyskano wystarczającej odpowiedzi. Naiwnym podejściem do ataku na ten problem byłoby połączenie grupowania k-średnich z odległością Levenshteina, ale nadal pozostaje pytanie „jak reprezentować” oznacza „łańcuchy znaków”? Istnieje waga nazywana wagą TF-IDF, ale wydaje się, że jest ona głównie związana z obszarem klastrowania „dokumentu tekstowego”, a nie zgrupowaniem pojedynczych słów. http://pike.psu.edu/cleandb06/papers/CameraReady_120.pdf
Moje poszukiwania w tej dziedzinie wciąż trwają, ale chciałem też stąd czerpać pomysły. Co byś polecił w tym przypadku, czy ktoś jest świadomy metod tego rodzaju problemów?
It seems that there are some special string clustering algorithms
. Jeśli pochodzisz z pola eksploracji tekstu, a nie statystyki / analizy danych, to stwierdzenie jest uzasadnione. Jeśli jednak poznasz gałąź klastrowania, ponieważ okaże się, że nie ma „specjalnych” algorytmów dla danych łańcuchowych. „Specjalny” to sposób wstępnego przetwarzania takich danych przed wprowadzeniem ich do analizy skupień.