Pracuję z algorytmem dopasowywania wzorców, który generuje acykliczny automat stanów skończonych, który akceptuje dany ciąg tekstowy i wszystkie jego podciągi. Algorytm FSA jest uruchamiany na symbolicznej reprezentacji strumienia muzycznego (np. Dane MIDI). Strumień muzyczny został wstępnie przetworzony, aby podzielić każdą piosenkę na nieoznaczone „segmenty”. FSA jest generowany dla każdego z segmentów w każdym Song: jeśli mają piosenki, dzielone na segmentów będę mieć oddzielne FSA.
Chciałbym porównać FSA każdego segmentu z innymi FSA w moim korpusie. Ostatecznym celem byłoby tworzenie klastrów w przestrzeni podobieństwa i tworzenie „klas” segmentów zgodnie z tym, jak podobne są ich wskaźniki konstrukcyjne. Dlatego szczególnie interesujące są gramatyki, które definiuje każdy FSA (odpowiadające z grubsza niektórym komponentom treści muzycznych w segmencie). Czy istnieją techniki, które mogą być przydatne do porównania czegoś takiego? Przychodzi mi na myśl rozbieżność KL (np. Używając jej porównać rozkład między łańcuchami związanymi z danym FSA), chociaż mogą istnieć lepsze / bardziej wydajne techniki?
Przepraszamy również, jeśli to pytanie jest (1) trywialnie łatwe lub (2) wskazuje na jakieś głębsze nieporozumienie lub (3) odpowiedział w innym miejscu. Jestem niezły, ludzie!
źródło
Odpowiedzi:
możesz mieć więcej szczęścia z innej strony i patrząc na badania podobieństwa utworów muzycznych, są badacze, którzy to badają, i chociaż twoje podejście może działać, istnieją inne podejścia. istnieją duże bazy danych, które analizują wiele elementów / kryteriów, takich jak teksty piosenek, gatunek itp., np . projekt genomu muzyki .
czasami, gdy istnieje wiele różnych algorytmów, ankieta może pomóc. oto dwie ankiety dotyczące dopasowywania wykresów.
Dopasowywanie struktury i semantyki: Ankieta na temat dopasowywania wzorców na podstawie wykresu Brian Gallagher
Podobieństwo wykresów i dopasowanie / Zager
źródło
Ponieważ FSA są grafami ukierunkowanymi, pytanie można uogólnić jako „algorytm pomiaru podobieństwa między grafami ukierunkowanymi”. Wyszukiwanie w Google „algorytmu podobieństwa wykresu” daje strony i strony z wynikami, może jeden z nich byłby odpowiedni do twoich celów?
Kiedyś różnica między FSA a ogólnymi digrafami to etykiety krawędzi lub symbole przejściowe w FSA, więc trzeba by zmodyfikować te algorytmy, aby to uwzględnić.
źródło