Metodo per misurare la "somiglianza" tra le grammatiche FSA?


10

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

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!


3
Dovrai dirci cosa intendi per "simile". Devi selezionare la metrica; non esiste una metrica corretta per tutti gli scopi. Senza ulteriori informazioni, non possiamo dirti quale metrica utilizzare. Suggerisco di modificare la domanda per spiegare perché vuoi misurare la somiglianza, cosa farai con i risultati della metrica di somiglianza e quale ricerca hai fatto. Potresti iniziare osservando le misure di somiglianze tra le stringhe sottostanti, piuttosto che misurare le somiglianze degli FSA derivati ​​da tali stringhe. Viene in mente la modifica della distanza.
DW

Esistono molte metriche di stringa ; che funziona per te dipende. (Nota: alcune delle "metriche" di stringa elencate in quell'articolo non sono in realtà metriche in senso matematico.)
Raffaello

Le metriche delle stringhe sono buone, ma non proprio quello che sto cercando. Invece di confrontare stringhe specifiche tra loro, mi piacerebbe confrontare il sistema di regole (le grammatiche formali / FSA) che avrebbero potuto produrre quelle stringhe. Riconosco che ci sono infinite grammatiche che possono produrre qualsiasi stringa specifica, quindi sto vincolando la mia ricerca a una grammatica (FSA) costruita usando un particolare insieme di regole. Immagino che potrebbero esserci casi in cui due singole stringhe sono formalmente simili in base a una determinata metrica di stringa, ma le grammatiche richieste per produrle sono piuttosto diverse
capovolgere il

Dall'affermazione del problema, ogni FSA accetta una stringa e tutte le sue sottostringhe. Fondamentalmente, questo FSA è caratterizzato dalla stringa più lunga che accetta. Tutta la sua struttura ne deriva. Quindi c'è poco senso nel confrontare l'FSA piuttosto che confrontare direttamente le stringhe da cui sono costruite. È possibile che la tua tecnica di costruzione FSA enfatizzi alcune caratteristiche, che ritieni importanti. Quindi dobbiamo sapere che aspetto potrebbero avere per capire ciò che conta. Torna a: cosa è simile, quale metrica. Così com'è, questa domanda non ha senso.
babou,

Risposte:


1

potresti avere più fortuna da un'altra prospettiva e guardando la ricerca sulla somiglianza di un brano musicale, ci sono ricercatori che lo studiano e mentre il tuo approccio può funzionare, ci sono altri approcci. ci sono grandi database che esaminano molti elementi / criteri come testi, generi, ecc. ad es . progetto di genoma musicale .

a volte, quando esiste un'ampia varietà di algoritmi, può essere d'aiuto un sondaggio. ecco due sondaggi sulla corrispondenza dei grafici.


0

Poiché gli FSA sono grafici diretti, la tua domanda può essere generalizzata come "algoritmo per misurare la somiglianza tra grafici diretti". Una ricerca su Google per "algoritmo di somiglianza dei grafici" fornisce pagine e pagine di hit, forse una di quelle sarebbe adatta ai tuoi scopi?

Una volta che la differenza tra FSA e digraph generali sono le etichette dei bordi, o simboli di transizione negli FSA, quindi dovresti modificare questi algoritmi per tenerne conto.


Un metodo come questo mancherà alcune proprietà chiave. Ad esempio, probabilmente si desidera che diverse rappresentazioni della stessa lingua abbiano una somiglianza completa, ma il confronto dei grafici potrebbe riportare due automi per la stessa lingua di dissimili.
jmite,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.