我有一组字符串,例如:
abba - aba, 哈哈 - 哈哈, baa - ba, exb - esp, xa - za
该对中的第二个(右)字符串有点类似于第一个(左)字符串。
也就是说,第一个字符串中的字符可以由任何内容,本身或一小组字符中的字符表示。
这个字符到字符的映射没有简单的规则,尽管有一些模式。
鉴于数千个这样的字符串对,我如何推导出转换规则,以便如果我将它们应用于左边的字符串,我会得到正确的字符串?
解决方案可以是近似的,例如,对于80-95%的字符串正常工作。
您会建议使用某种遗传算法吗?如果是这样,怎么样?
答案 0 :(得分:0)
如果您可以对齐字符,或者更确切地说是字符组,那么您可以找出表aa =>的表格。 a,bb => z,依此类推。如果您有这样的表格,则可以使用http://en.wikipedia.org/wiki/Dynamic_time_warping对齐字符。因此,一种方法是猜测一个对齐(例如一对一,只是作为一个起点,或者只是对齐每个序列的第一个和最后一个字符),从中计算出一个转换表,使用DTW来获得新的对齐,工作修改翻译表,并以这种方式迭代。也许你可以用足够的数学来包装它,以表明这种传球增加的最佳性或概率有一定程度,攀升到局部最大值。
可能有一些方法可以通过建模隐藏马尔可夫模型来同时生成两个序列,然后从该模型中导出规则,但我不会选择这种方法,除非我已经熟悉HMM并且有软件可以用作我很乐意修改的起点。
答案 1 :(得分:0)
您可以使用文字转语音来制作声波。然后将声波与其他声音进行比较,并将它们与百分比进行匹配。
这是我的理论,Google如何拥有如此先进的拼写检查功能。