Estou trabalhando com um algoritmo de correspondência de padrões que gera um autômato de estado finito acíclico que aceita uma sequência de texto especificada e todas as suas substrings. O algoritmo FSA está sendo executado em uma representação simbólica de um fluxo de música (por exemplo, dados MIDI). O fluxo de música foi pré-processado para dividir cada música em 'segmentos' não identificados. Um FSA é gerado para cada segmento de cada música: se eu tiver músicas, cada uma dividida em segmentos , terei FSAs separados.
Eu gostaria de comparar o FSA de cada segmento com os outros FSAs do meu corpus. O objetivo final seria agrupar-se em um espaço de similaridade e criar 'classes' de segmentos de acordo com a semelhança entre as métricas de construção. Assim, são de particular interesse as gramáticas que cada FSA define (correspondendo aproximadamente a certos componentes do conteúdo musical no segmento). Existem técnicas que podem ser boas para comparar algo assim? A divergência de KL vem à mente (por exemplo, usando-a para comparar a distribuição sobre cadeias associadas a uma determinada FSA), embora possa haver técnicas melhores / mais eficientes?
Além disso, peça desculpas se essa pergunta for (1) trivialmente fácil ou (2) indicativa de algum mal-entendido mais profundo ou (3) respondida em outro lugar. Eu sou um verdadeiro idiota, pessoal!
Respostas:
você pode ter mais sorte de outro ângulo e investigar a similaridade de uma peça musical, existem pesquisadores estudando isso e, embora sua abordagem possa funcionar, há outras abordagens. existem grandes bancos de dados que analisam muitos elementos / critérios, como letras, gênero etc., por exemplo, projeto de genoma da música .
às vezes, quando há uma grande variedade de algoritmos, uma pesquisa pode ajudar. Aqui estão duas pesquisas sobre correspondência de gráficos.
Estrutura de correspondência e semântica: uma pesquisa sobre correspondência de padrões baseada em gráficos Brian Gallagher
Semelhança e correspondência de gráfico / Zager
fonte
Como os FSAs são gráficos direcionados, sua pergunta pode ser generalizada como "algoritmo para medir a similaridade entre gráficos direcionados". Uma pesquisa no Google por "algoritmo de similaridade de gráficos" fornece páginas e páginas de hits. Talvez um deles seja adequado para seus propósitos?
Uma vez que a diferença entre os FSAs e os dígrafos gerais são os rótulos das bordas ou símbolos de transição nos FSAs, você precisará modificar esses algoritmos para levar isso em consideração.
fonte