Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 高效的模式匹配/字符串合并算法_Algorithm_Pattern Matching_Similarity_Knuth Morris Pratt - Fatal编程技术网

Algorithm 高效的模式匹配/字符串合并算法

Algorithm 高效的模式匹配/字符串合并算法,algorithm,pattern-matching,similarity,knuth-morris-pratt,Algorithm,Pattern Matching,Similarity,Knuth Morris Pratt,我正在寻找一种合并字符串的算法(最好是java实现) 我的问题如下: 假设我有一个字符串数组/列表{“myString1”、“myString1”、“my-String-1”…} 我想让算法指出,有一个非常高的概率 所有这些值都表示“myString1” 所以我想压缩我的列表。 也许这可以通过KMP完成,或者可能有更合适的方式 谢谢。我认为这是合并字符串的好方法 编辑: 可以修改“编辑距离”算法: 您可以为字符c的d(-,c)指定不同的值 因此,在下面的示例中:“String1”、“String

我正在寻找一种合并字符串的算法(最好是java实现)

我的问题如下:

假设我有一个字符串数组/列表{“myString1”、“myString1”、“my-String-1”…} 我想让算法指出,有一个非常高的概率 所有这些值都表示“myString1

所以我想压缩我的列表。 也许这可以通过KMP完成,或者可能有更合适的方式

谢谢。

我认为这是合并字符串的好方法

编辑:

可以修改“编辑距离”算法:

您可以为字符c的d(-,c)指定不同的值


因此,在下面的示例中:“String1”、“String2”,您可以“惩罚”分数,但让d(1,2)为高,而“String1”、“String1”不会被惩罚,因为分数为d(-,)

或者,也可能有一些用处。我不相信KMP会适合这个目的,因为它是为精确的子字符串匹配而设计的

如何定义“高可能性?”为什么字符串“myString2”与“myString1”不太可能相同,即使“myString1”也一样?我认为你需要更精确地使用术语和定义才能得到有意义的答案。你想要一些模糊匹配算法吗?@templatetypedef你是对的,也许我需要在这里更具体一些。但我认为“myString2”是一个糟糕的匹配,因为它引入了字符“2”。现在我明白了,在算法方面,引入“2”和“-”之间没有区别,它们都是新字符。但从人类的角度来看,“终结者1”,“终结者1”和“终结者2”之间有一个区别,当你说:“非常高的概率”,你是什么意思?相同的角色?常用字符的百分比?你必须更加努力specific@barak1412)当我说高概率时,我的意思是超过90%,基本上对于给定的问题,我想要非字母和数字字符,如#、-、$、*、[space]等。。我认为这在这里不起作用——它会说“myString1”和“myString2”比“myString1”和“myString1”更相似。他说的正好相反。在不知道他对“极高概率”的定义的情况下,很难回答他的问题。感谢您将对此进行调查,并在短期内报告。有人熟悉实现吗?