ฉันกำลังทำงานกับอัลกอริธึมการจับคู่รูปแบบที่สร้างออโตเมติกสถานะ จำกัด แบบวนรอบซึ่งยอมรับสตริงข้อความที่กำหนดและสตริงย่อยทั้งหมด อัลกอริทึม FSA กำลังทำงานบนการแสดงสัญลักษณ์ของสตรีมเพลง (เช่นข้อมูล MIDI) สตรีมเพลงได้รับการประมวลผลล่วงหน้าเพื่อแบ่งแต่ละเพลงออกเป็น 'ส่วน' ที่ไม่มีป้ายกำกับ FSA ถูกสร้างขึ้นสำหรับแต่ละกลุ่มในแต่ละเพลงถ้าฉันมีเพลงแต่ละแบ่งออกเป็นปีส่วนฉันจะมีn ⋅ Y FSAs แยกต่างหาก
ฉันต้องการเปรียบเทียบ FSA ของแต่ละกลุ่มกับ FSA อื่น ๆ ในคลังข้อมูลของฉัน เป้าหมายสูงสุดคือการทำคลัสเตอร์ในพื้นที่ที่คล้ายคลึงกันและเกิดขึ้นกับ 'คลาส' ของเซ็กเมนต์ตามเมตริกการก่อสร้างที่คล้ายคลึงกัน ดังนั้นสิ่งที่น่าสนใจเป็นพิเศษคือไวยากรณ์ที่ FSA แต่ละรายการกำหนด (ที่สอดคล้องกันอย่างคร่าว ๆ ส่วนประกอบบางส่วนของเนื้อหาดนตรีในเซ็กเมนต์) มีเทคนิคที่อาจดีสำหรับการเปรียบเทียบสิ่งนี้ KL-divergence อยู่ในใจ (เช่นใช้เปรียบเทียบการกระจายข้ามสตริงที่เกี่ยวข้องกับ FSA ที่กำหนด) แม้ว่าอาจมีเทคนิคที่ดีกว่า / มีประสิทธิภาพมากกว่านี้หรือไม่?
นอกจากนี้ยังต้องขออภัยหากคำถามนี้เป็นเพียง (1) ง่ายเล็กน้อยหรือ (2) บ่งบอกถึงความเข้าใจผิดที่ลึกซึ้งขึ้นหรือ (3) ตอบคำถามอื่น ฉันเป็นคนจริงๆคน!