Я працюю з алгоритмом відповідності шаблону, який генерує ациклічний автоматичний кінцевий стан, який приймає заданий текстовий рядок та всі його підрядки. Алгоритм FSA запускається на символічному поданні музичного потоку (наприклад, MIDI-дані). Музичний потік був попередньо оброблений, щоб розділити кожну пісню на марковані "сегменти". FSA генерується для кожного сегмента в кожній пісні: якщо у мене є пісні, кожна з яких ділиться на сегментів, у мене буде окремі FSAS.у
Я хотів би порівняти FSA кожного сегмента з іншими FSA в моєму корпусі. Кінцевою метою було б зробити кластеризацію в просторі подібності та придумати «класи» сегментів відповідно до того, наскільки схожі їх показники побудови. Таким чином, особливий інтерес представляють граматики, які визначає кожен FSA (відповідні приблизно певним компонентам музичного змісту в сегменті). Чи є методи, які можуть бути корисними для порівняння чогось подібного? Приходить на думку KL-дивергенція (наприклад, використовуючи її порівняння розподілу по рядках, пов'язаних із заданим FSA), хоча можуть бути кращі / ефективніші методи?
Також вибачте, якщо це питання або (1) тривіально просте, або (2) свідчить про якесь глибше непорозуміння, або (3) відповіді в іншому місці. Я справжній нуб, люди!