Je travaille avec un algorithme de correspondance de motifs qui génère un automate à états finis acyclique qui accepte une chaîne de texte donnée et toutes ses sous-chaînes. L'algorithme FSA est exécuté sur une représentation symbolique d'un flux musical (par exemple, des données MIDI). Le flux musical a été prétraité pour diviser chaque chanson en «segments» sans étiquette. Un FSA est généré pour chaque segment de chaque morceau: si j'ai morceaux, chacun divisé en segments, j'aurai FSA séparés.
Je voudrais comparer le FSA de chaque segment avec les autres FSA de mon corpus. Le but ultime serait de faire un clustering dans un espace de similarité et de trouver des «classes» de segments selon la similitude de leurs métriques de construction. Ainsi, les grammaires que chaque FSA définit sont particulièrement intéressantes (correspondant à peu près à certaines composantes du contenu musical du segment). Y a-t-il des techniques qui pourraient être bonnes pour comparer quelque chose comme ça? La divergence KL vient à l'esprit (par exemple, en l'utilisant pour comparer la distribution sur les chaînes associées à une FSA donnée), bien qu'il puisse y avoir des techniques meilleures / plus efficaces?
Aussi, veuillez m'excuser si cette question est (1) trivialement facile ou (2) indicative d'un malentendu plus profond ou (3) a répondu ailleurs. Je suis un vrai nœud, les amis!