测量FSA语法之间“相似性”的方法?


10

我正在使用一种模式匹配算法,该算法生成一个非循环的有限状态自动机,该自动机接受给定的文本字符串及其所有子字符串。FSA算法正在音乐流(例如MIDI数据)的符号表示上运行。音乐流已经过预处理,可以将每首歌曲分为未标记的“段”。一个FSA被用于每首歌曲的每个段中产生:如果我有歌曲,各自分成ÿ段,我会Ñ ý单独的FSA。nyny

我想将每个部分的FSA与我的语料库中的其他FSA进行比较。最终目标将是在相似性空间内进行聚类,并根据其构造指标的相似性提出细分的“类别”。因此,特别令人感兴趣的是每个FSA定义的语法(大致对应于片段中音乐内容的某些组成部分)。是否有一些技巧可以比较这样的东西?尽管可能存在更好/更有效的技术,但我想到了KL散度(例如,使用它比较与给定FSA相关联的字符串的分布)。

同样,如果这个问题是(1)轻而易举的或(2)表示有更深的误解或(3)在其他地方回答了,则表示歉意。我是一个真正的小伙子,伙计们!


3
您需要告诉我们“相似”的含义。您必须选择指标;没有一项适合所有目的的正确指标。没有更多信息,我们无法告诉您要使用的指标。我建议编辑问题以解释为什么要测量相似性,对相似性度量的结果将要做什么以及进行了哪些研究。您可能首先查看基础字符串之间的相似性,而不是测量从这些字符串派生的FSA的相似性。想到编辑距离。
DW

许多字符串指标 ; 哪个适合您取决于。(请注意:该文章中列出的某些字符串“指标”实际上并不是数学意义上的指标。)
拉斐尔

字符串指标不错,但不尽人意。我不想比较特定的字符串,而是想比较可能产生这些字符串的规则系统(形式语法/ FSA)。我认识到可以产生任何特定字符串的语法有无限多种,因此我将搜索限制为使用一组特定规则构建的语法(FSA)。我想象在某些情况下,根据给定的字符串量度,两个单独的字符串在形式上相似,但是产生它们所需的语法却大不相同
Flip

从问题的陈述来看,每个FSA都接受一个字符串及其所有子字符串。从根本上讲,此FSA的特征在于它接受的最长字符串。它的整个结构都源于此。因此,比较FSA而不是直接比较构造它们的字符串没有什么意义。您的FSA构造技术可能强调了一些您认为重要的功能。然后,我们需要了解它们的外观,以了解重要的内容。归结为:相似之处,度量标准。实际上,这个问题没有任何意义。
babou 2015年

Answers:


1

您可能会从另一个角度获得更多的运气,并研究音乐作品相似性的研究,有研究人员对此进行了研究,尽管您的方法可行,但还有其他方法。有大型数据库可以查看许多元素/标准,例如歌词,流派等,例如音乐基因组计划

有时,当算法种类繁多时,调查可以提供帮助。这是关于图匹配的两项调查。


0

由于FSA是有向图,因此您的问题可以概括为“测量有向图之间相似度的算法”。谷歌搜索“图相似性算法”给出了点击的页面和页面,也许其中之一适合您的目的?

一旦FSA与一般有向图之间的差异是FSA中的边缘标签或过渡符号,那么您就必须修改这些算法以将其考虑在内。


这样的方法将丢失一些关键属性。例如,您可能希望同一语言的不同表示形式具有完全相似性,但是比较图形可能会报告同一语言的两个自动机为不同。
jmite,2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.