Разбиение строк на классы по одинаковым словам
От: free.rFczZZ  
Дата: 13.05.13 05:00
Оценка:
Задача в следующем: есть множество строк s∈S, для каждой из них получаем терм t = φ(s) — множество "индесов" (внутри терма все уникальны, изначально не отсортированы). Нужно выделить группы термов у которых совпадают минимум n индексов. Полученные группы не должны пересекаться (порядок нахождения не важен). Пример:
t1: ABCD
t2: +BA+
t3: EDB+
t4: ++AB

+ — какието уникальные индексы.
для n=2 получим {AB: t1,t2,t4}.

Собственно, нужен алгоритм отличный от попарного сравнения. Может как-то хэшировать? Не могу сформурлировать задачу "для гугла". Термов будет порядка 100,000 насчет индексов не уверен, но тоже довольно много. Можно убрать ограничение на пересечение.

Примечение разработка на vba =( после поиска для одного n, нужно будет делать поиск для другого, исключая термы в уже сформированных группах + поиск термов по заданному набору индексов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.