Sto lavorando con un algoritmo di corrispondenza dei modelli che genera un automa a stati finiti aciclico che accetta una determinata stringa di testo e tutte le sue sottostringhe. L'algoritmo FSA viene eseguito su una rappresentazione simbolica di un flusso musicale (ad es. Dati MIDI). Il flusso musicale è stato preelaborato per dividere ogni brano in "segmenti" senza etichetta. Viene generato un FSA per ogni segmento in ogni brano: se ho brani, ognuno diviso in segmenti , non avrò FSA separati.
Vorrei confrontare l'FSA di ciascun segmento con gli altri FSA nel mio corpus. L'obiettivo finale sarebbe quello di fare il clustering all'interno di uno spazio di somiglianza e inventare "classi" di segmenti in base a quanto siano simili le loro metriche di costruzione. Pertanto, di particolare interesse sono le grammatiche che ogni FSA definisce (corrispondenti approssimativamente a determinati componenti del contenuto musicale nel segmento). Ci sono tecniche che potrebbero essere utili per confrontare qualcosa del genere? Viene in mente la divergenza di KL (ad esempio, usandola si confronta la distribuzione su stringhe associate a un determinato FSA), sebbene possano esserci tecniche migliori / più efficienti?
Inoltre, si scusa se questa domanda è (1) banalmente facile o (2) indicativa di qualche malinteso più profondo o (3) risposta altrove. Sono un vero nub, gente!