Простой подход заключается в следующем,
- Получить список топ 1000 наиболее часто употребляемых английских слов и удалить их из всех тегов.
- Сделать все в нижнем регистре
- Сортировать
Этот подход хорошо, но вы, конечно, то есть много ручной работы, связанной. Вам нужно будет сделать кластеризацию самостоятельно.
Таким образом, вы можете использовать измерение подобия между именами и кластерами. Предполагая, что вы имели такую меру (я опишу простой в немного), то можно поступить следующим образом,
Возьмем среднее и дисперсию схожести между песнями. Вы можете сделать это во всех песнях или образцах, если у вас их слишком много.
Создайте пустой набор кластеров, C = {}.
Итерации по всем песням, для каждой песни итерации по всем кластерам, если средний балл между песней и песнями в кластере выше 2 - 3 стандартных отклонений от среднего балла, затем добавьте его в кластер , Если нет такого кластера, а затем создать новый кластер с этой песней и добавить его в C.
Таким образом, «2 или 3» должны быть установлены самостоятельно вручную, но как только вы получили, что магический номер, процесс будет более или менее автоматическим.
Как только у вас есть эти кластеры, вам нужно создать представительное имя для этого кластера песен. Это можно сделать, просто взяв один случайным образом или попытавшись найти подобную песню в известном списке имен песен. Затем назначьте назначенное имя всем песням с именами в этом кластере.
Простая мера подобия, которая может работать хорошо, - это просто подсчитать количество подстрок длиной 1, 2, 3, ..., n, которые являются общими в обеих строках. Вы будете взвешивать подсчеты, как долго подстрока, например. разделение подстрок длиной 3 более значимо, чем длина 1. Затем, чтобы не смещать песни с действительно длинными именами, вы бы нормализовали оценку по длине сравниваемых названий песен.
С уважением,
Оуэн.