Спасибо, я посмотрю распределение таких сумм, может быть что-то вскроется.
Мне кажется, что это — огрубление описанного метода. Вы фактически получаете линейное отображение из многомерного пространства (где координаты соответствуют буквам) в одномерное отображение. Если точки с трудом разделяются в многомерном, то, скорее всего, в одномерном будет только хуже.
стоило воспользоваться стандартными методами кластерного анализа
Можно, пожалуйста, чуть подробнее этот момент.
К сожалению, я плохо разбираюсь в кластерном анализе, однако когда использовал (в другой задаче) разбиение на кластеры (в матлабе linkage/cluster), то мне пришлось вычислить заранее матрицу всех попарных расстояний. Статья же про то, что не обязательно вычислять все попарные расстояния.
Можно брать и шар, но индекс нужен для того, чтобы сократить сложность поиска пар. Если считать без индекса, то сложность будет порядка квадрата от количества точек. С индексом — почти-линейная.
Также куб легче интерпретировать. Вставка/удаление буквы — плюс/минус к координате.
функция отображения в N-мерное пространство слишком сильно размазывает полезную информацию
По-видимому Вы правы, и предложенный метод сработает только в случае коротких текстов и малом допустимом расстоянии Левенштейна. Однако на имеющейся базе скопления точек в одном кубе оказались редким исключением; как ни странно, в количестве букв довольно много информации.
Одной букве будет соответствовать два числа: число вхождений в текст (как и сейчас) и сумма расстояний этой буквы от начала текста.
Боюсь это соображение я не понял. Получается, что
«aabbbaaaccc»->( (5, 19), (3, 9), (3, 27) )
«aabbbaaacc»->( (5, 19), (3, 9), (3, 17) )
и расстояние между точками получается приличное.
Не проще ли было обойтись методом наименьших квадратов вместо R-tree?
Поясните пожалуйста, как тут применить метод наименьших квадратов.
Мне кажется, что это — огрубление описанного метода. Вы фактически получаете линейное отображение из многомерного пространства (где координаты соответствуют буквам) в одномерное отображение. Если точки с трудом разделяются в многомерном, то, скорее всего, в одномерном будет только хуже.
Можно, пожалуйста, чуть подробнее этот момент.
К сожалению, я плохо разбираюсь в кластерном анализе, однако когда использовал (в другой задаче) разбиение на кластеры (в матлабе linkage/cluster), то мне пришлось вычислить заранее матрицу всех попарных расстояний. Статья же про то, что не обязательно вычислять все попарные расстояния.
habrahabr.ru/post/262063/#comment_8492011
Также куб легче интерпретировать. Вставка/удаление буквы — плюс/минус к координате.
По-видимому Вы правы, и предложенный метод сработает только в случае коротких текстов и малом допустимом расстоянии Левенштейна. Однако на имеющейся базе скопления точек в одном кубе оказались редким исключением; как ни странно, в количестве букв довольно много информации.
Боюсь это соображение я не понял. Получается, что
«aabbbaaaccc»->( (5, 19), (3, 9), (3, 27) )
«aabbbaaacc»->( (5, 19), (3, 9), (3, 17) )
и расстояние между точками получается приличное.
Поясните пожалуйста, как тут применить метод наименьших квадратов.
В определении статьи эти два текста — дубли.