Metode untuk mengukur 'kesamaan' antara tata bahasa FSA?

10

Saya sedang bekerja dengan algoritma pencocokan pola yang menghasilkan otomat keadaan terbatas asiklik yang menerima string teks yang diberikan dan semua substringnya. Algoritma FSA sedang dijalankan pada representasi simbolis dari aliran musik (misalnya, data MIDI). Aliran musik telah diproses untuk membagi setiap lagu menjadi 'segmen' tanpa label. FSA dihasilkan untuk setiap segmen di setiap lagu: jika saya memiliki lagu, masing-masing dibagi menjadi segmen, saya akan memiliki FSA yang terpisah.nyny

Saya ingin membandingkan masing-masing FSA segmen dengan FSA lainnya di corpus saya. Tujuan utamanya adalah melakukan pengelompokan dalam ruang kesamaan dan menghasilkan 'kelas' segmen berdasarkan seberapa mirip metrik konstruksinya. Dengan demikian, yang menarik adalah tata bahasa yang mendefinisikan masing-masing FSA (sesuai kira-kira komponen tertentu dari konten musik di segmen). Apakah ada teknik yang mungkin baik untuk membandingkan sesuatu seperti ini? Divergensi-KL muncul dalam pikiran (misalnya, menggunakannya membandingkan distribusi lebih dari string yang terkait dengan OJK tertentu), meskipun mungkin ada teknik yang lebih baik / lebih efisien?

Juga, minta maaf jika pertanyaan ini mudah (1) mudah atau (2) menunjukkan kesalahpahaman yang lebih dalam atau (3) dijawab di tempat lain. Aku benar-benar gila, kawan!

Balik
sumber
3
Anda harus memberi tahu kami apa yang Anda maksud dengan "mirip". Anda harus memilih metrik; tidak ada satu metrik yang tepat yang tepat untuk semua tujuan. Tanpa informasi lebih lanjut, kami tidak dapat memberi tahu Anda metrik apa yang digunakan. Saya menyarankan untuk mengedit pertanyaan untuk menjelaskan mengapa Anda ingin mengukur kesamaan, apa yang akan Anda lakukan dengan hasil metrik kesamaan, dan penelitian apa yang telah Anda lakukan. Anda mungkin mulai dengan melihat ukuran kesamaan antara string yang mendasarinya, daripada mengukur kesamaan FSA yang berasal dari string tersebut. Edit jarak muncul di pikiran.
DW
Ada banyak metrik string ; yang bekerja untuk Anda tergantung. (Catatan: beberapa string "metrik" yang tercantum dalam artikel itu sebenarnya bukan metrik dalam arti matematika.)
Raphael
Metrik string baik, tapi tidak seperti yang saya kejar. Alih-alih membandingkan string spesifik satu sama lain, saya ingin membandingkan sistem aturan (tata bahasa formal / FSA) yang bisa menghasilkan string tersebut. Saya menyadari bahwa ada banyak tata bahasa yang dapat menghasilkan string tertentu, jadi saya membatasi pencarian saya pada tata bahasa (FSA) yang dibangun menggunakan seperangkat aturan tertentu. Saya membayangkan mungkin ada kasus-kasus di mana dua string individu secara formal serupa menurut metrik string yang diberikan, tetapi tata bahasa yang diperlukan untuk menghasilkan mereka sangat berbeda
balik
Dari pernyataan masalah, setiap FSA menerima satu string dan semua substringnya. Pada dasarnya, FSA ini ditandai dengan string terpanjang yang diterimanya. Seluruh strukturnya berasal darinya. Oleh karena itu ada sedikit gunanya membandingkan FSA daripada langsung membandingkan string yang mereka bangun. Mungkin teknik konstruksi FSA Anda menekankan beberapa fitur, yang Anda anggap penting. Maka kita perlu tahu seperti apa rupa mereka untuk memahami apa yang penting. Kembali ke: apa yang mirip, metrik apa. Sebagaimana adanya, pertanyaan ini tidak masuk akal.
babou

Jawaban:

1

Anda mungkin memiliki lebih banyak keberuntungan dari sudut lain & melihat ke dalam penelitian tentang kesamaan karya musik, ada peneliti yang mempelajarinya, dan sementara pendekatan Anda dapat berhasil, ada beberapa pendekatan lain. ada database besar yang melihat banyak elemen / kriteria seperti lirik, genre, dll. misalnya proyek genom Musik .

kadang-kadang ketika ada berbagai macam algoritma, survei dapat membantu. berikut adalah dua survei tentang pencocokan grafik.

vzn
sumber
0

Karena FSA adalah grafik berarah, pertanyaan Anda dapat digeneralisasi sebagai "algoritma untuk mengukur kesamaan antara grafik berarah". Pencarian google untuk "algoritma kesamaan grafik" memberikan halaman dan halaman hit, mungkin salah satu dari mereka akan cocok untuk tujuan Anda?

Setelah perbedaan antara FSA dan digraf umum adalah label tepi, atau simbol transisi dalam FSA, jadi Anda harus memodifikasi algoritma ini untuk memperhitungkannya.

Mike Ounsworth
sumber
Metode seperti ini akan melewatkan beberapa properti kunci. Misalnya, Anda mungkin ingin representasi berbeda dari bahasa yang sama memiliki kesamaan lengkap, tetapi membandingkan grafik dapat melaporkan dua automata untuk bahasa yang sama dengan berbeda.
jmite