Задача кластеризации. Базы данных. Индексирование данных.
Необходимо написать программу, объединяющую словосочетания в группы, в соответствии с заданными критериями.
Дано:
1) Перечень словосочетаний, их частота употребления и принадлежащие каждому десять признаков(url). См. вложенный файл.
2) Критерий отбора: N количество совпадений URL
Задача кластеризации:
Выбрать из перечня те словосочетания, которые наиболее близки друг другу по принадлежащим им признакам(url).
Получить кластеры словосочетаний у которых количество совпадающих URL больше или равно заданному.
Вершиной кластера (главным словосочетанием в кластере) должно быть словосочетание имеющие максимальный Wordstat.
Пути решения:
1. Задаём вершиной кластера словосочетание с максимальным Wordstat.
2. проверяем, что количество совпадений URL с вершиной, больше или равно N.
если да, то добавляем к кластеру словосочетание
3. Из всего перечня словосочетаний вырезаем получившийся кластер
4. Повторяем п.1 и п.2 до тех пор, пока вершиной не назначается последнее по списку словосочетание
5. Миграция словосочетаний в другие кластеры. Проверяем количество совпадений URL для каждого словосочетания с вершинами всех кластеров.
каждое словосочетание вырезается из своего кластера и добавляется в другой кластер, если количество
совпадений URL , больше.
P.S. Возможны другие способы реализации.
так как предполагается работать с перечнями, имеющими большие количества словосочетаний ( сотни тысяч, миллион), то вероятно придется создавать
множество промежуточных таблиц индексирования, для уменьшения времени обработки.
Время обработки перечня должно быть разумным.
Опубликован 07.06.2013 в 13:54
Заказ находится в архиве