Méthode pour mesurer la «similitude» entre les grammaires FSA?

10

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.nyny

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!

retourner
la source
3
Vous devrez nous dire ce que vous entendez par "similaire". Vous devez sélectionner la métrique; il n'y a pas une seule bonne mesure qui convient à toutes les fins. Sans plus d'informations, nous ne pouvons pas vous dire quelle statistique utiliser. Je suggère de modifier la question pour expliquer pourquoi vous souhaitez mesurer la similitude, ce que vous ferez avec les résultats de la métrique de similitude et quelles recherches vous avez effectuées. Vous pourriez commencer par examiner les mesures des similitudes entre les chaînes sous-jacentes, plutôt que de mesurer les similitudes des FSA dérivées de ces chaînes. La distance d'édition vient à l'esprit.
DW
Il existe de nombreuses métriques de chaîne ; qui fonctionne pour vous dépend. (Remarque: certaines des chaînes «métriques» répertoriées dans cet article ne sont pas réellement des métriques au sens mathématique.)
Raphael
Les métriques de chaîne sont bonnes, mais pas tout à fait ce que je recherche. Au lieu de comparer des chaînes spécifiques les unes aux autres, je voudrais comparer le système de règles (les grammaires formelles / FSA) qui auraient pu produire ces chaînes. Je reconnais qu'il existe une infinité de grammaires qui peuvent produire n'importe quelle chaîne spécifique, donc je limite ma recherche à une grammaire (FSA) construite en utilisant un ensemble particulier de règles. J'imagine qu'il pourrait y avoir des cas où deux chaînes individuelles sont formellement similaires selon une métrique de chaîne donnée, mais les grammaires requises pour les produire sont assez différentes
retournez le
De l'énoncé du problème, chaque FSA accepte une chaîne et toutes ses sous-chaînes. Fondamentalement, ce FSA est caractérisé par la plus longue chaîne qu'il accepte. Toute sa structure en dérive. Par conséquent, il est inutile de comparer le FSA plutôt que de comparer directement les chaînes à partir desquelles ils sont construits. Il se peut que votre technique de construction FSA mette l'accent sur certaines caractéristiques que vous jugez importantes. Ensuite, nous devons savoir à quoi ils peuvent ressembler afin de comprendre ce qui compte. Cela revient à: ce qui est similaire, quelle métrique. En l'état, cette question n'a aucun sens.
babou

Réponses:

1

vous pourriez avoir plus de chance sous un autre angle et en regardant la recherche sur la similitude des morceaux de musique, il y a des chercheurs qui étudient cela, et bien que votre approche puisse fonctionner, il existe d'autres approches. il existe de grandes bases de données qui examinent de nombreux éléments / critères tels que les paroles, le genre, etc., par exemple le projet de génome musical .

parfois, lorsqu'il existe une grande variété d'algorithmes, une enquête peut aider. voici deux enquêtes sur l'appariement des graphes.

vzn
la source
0

Étant donné que les FSA sont des graphiques dirigés, votre question peut être généralisée comme «algorithme de mesure de la similitude entre les graphiques dirigés». Une recherche google pour «algorithme de similitude de graphique» donne des pages et des pages de résultats, peut-être que l'une d'entre elles conviendrait à vos besoins?

Une fois que la différence entre les FSA et les digraphes généraux sont les étiquettes de bord ou les symboles de transition dans les FSA, vous devrez donc modifier ces algorithmes pour en tenir compte.

Mike Ounsworth
la source
Une méthode comme celle-ci manquera certaines propriétés clés. Par exemple, vous souhaitez probablement que différentes représentations de la même langue aient une similitude complète, mais la comparaison des graphiques pourrait signaler deux automates pour la même langue comme différents.
jmite