Я работаю с алгоритмом сопоставления с образцом, который генерирует ациклический конечный автомат, который принимает заданную текстовую строку и все ее подстроки. Алгоритм FSA выполняется на символическом представлении музыкального потока (например, данных MIDI). Музыкальный поток был предварительно обработан, чтобы разделить каждую песню на немеченые «сегменты». FSA генерируется для каждого сегмента в каждой песне: если у меня есть песни, каждая из которых делится на у сегментов, у меня будет п ⋅ Y отдельные FSAS.
Я хотел бы сравнить FSA каждого сегмента с другими FSA в моем корпусе. Конечной целью было бы создать кластеризацию в пространстве сходства и создать «классы» сегментов в зависимости от того, насколько похожи их метрики построения. Таким образом, особый интерес представляют грамматики, которые определяет каждый FSA (соответствующие примерно определенные компоненты музыкального контента в сегменте). Существуют ли методы, которые могут быть полезны для сравнения чего-то подобного? На ум приходит KL-дивергенция (например, используя ее для сравнения распределения по строкам, связанным с данным FSA), хотя могут быть более эффективные / более эффективные методы?
Кроме того, приносим извинения, если этот вопрос либо (1) тривиально прост, либо (2) свидетельствует о каком-то более глубоком недопонимании, либо (3) ответил в другом месте. Я настоящий нуб, ребята!
Ответы:
вам, возможно, повезет больше с другой точки зрения, если вы изучаете сходство музыкальных произведений, есть исследователи, которые изучают это, и хотя ваш подход может работать, есть и другие подходы. Существуют большие базы данных, в которых рассматриваются многие элементы / критерии, такие как тексты песен, жанры и т. д. Например, проект «Музыкальный геном» .
иногда, когда есть большое разнообразие алгоритмов, опрос может помочь. Вот два опроса по сопоставлению графиков.
Сопоставление структуры и семантики: обзор основанного на графике сопоставления с образцом Брайан Галлахер
График сходства и соответствия / Zager
источник
Поскольку FSA являются ориентированными графами, ваш вопрос можно обобщить как «алгоритм измерения подобия между ориентированными графами». Поиск в Google по «алгоритму подобия графиков» дает страницы и страницы совпадений, может быть, один из них подойдет для ваших целей?
Как только разница между FSA и общими орграфиками является метками ребер или символами перехода в FSA, вам придется изменить эти алгоритмы, чтобы учесть это.
источник