Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.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
Java 基于mysql的模糊逻辑_Java_Mysql_Fuzzy Logic - Fatal编程技术网

Java 基于mysql的模糊逻辑

Java 基于mysql的模糊逻辑,java,mysql,fuzzy-logic,Java,Mysql,Fuzzy Logic,我需要通过姓名列表进行搜索,找到匹配百分比的相关匹配姓名。例如,如果我有类似的姓名列表 Ramu Rahim Raju Ravan Mustafa 如果我叫Raheem这个名字, 它将找到名称Rahim并显示匹配百分比,如 Given Input:Raheem Output: Name Rahim match with the name Raheem 70% 我可以使用MySql满足我的需求吗 注意:我在mysql中尝试过全文搜索,但是这种搜索 仅与单词匹配,不按字符匹配 虽然它不能直接回答

我需要通过姓名列表进行搜索,找到匹配百分比的相关匹配姓名。例如,如果我有类似的姓名列表

Ramu
Rahim
Raju
Ravan
Mustafa
如果我叫Raheem这个名字, 它将找到名称Rahim并显示匹配百分比,如

Given Input:Raheem
Output:
Name Rahim match with the name Raheem 70%
我可以使用MySql满足我的需求吗

注意:我在mysql中尝试过全文搜索,但是这种搜索 仅与单词匹配,不按字符匹配


虽然它不能直接回答您的问题,但您可能希望使用或

Soundex是一种语音算法,用于按声音索引名称,如 用英语发音


mysql有一个UDF,您可以在这里找到:

查找[2004-02-06]-MySQL Levenshtein距离UDF

您可以使用Levenshtein距离计算百分比差异

这可能看起来像:


(min(length('hello')、length('hollo'))-LevDist('hello','hollo'))/min(length('hello')、length('hollo'))

您是否要求使用算法来比较字符串,或者如何在sql查询中使用这种算法

如果您要求后者,请创建一个用户定义的函数,该函数根据2个输入字符串输出百分比,然后为表中的每个字符串选择,并筛选百分比高于您要查找的阈值的位置

比如:

SELECT name, MyFuzzyStringComparer(name, @nameInQuestion) percentage 
FROM nameTable 
WHERE percentage > @threshold 
ORDER BY percentage

如果你正在寻找一种比较算法,那么上面的回答似乎涵盖了这一点。

也许他可以创建一个全文字段,其中包含每个名称,并逐字转换为soundex,可以快速搜索,例如:而不是索引
亚瑟·柯南·道尔爵士
,索引
S600 A636 C550 D400
。SOUNDEX也适用于mysql:也许触发器将是最好的解决方案,它将对SOUNDEX进行索引转换。您好,选择SOUNDEX('Raheem'),选择SOUNDEX('Rahim'),选择SOUNDEX('Ram')).所有三个都重新发布了索引R500。我认为我的概念有点模糊。还有其他想法吗?@MuneeswaranBalasubramanian Metaphone将分别返回RHM、RHM、RM。你可以试试看Levenstein距离会告诉你Raheem和Rahim 3个符号的距离。至于Raheem和Hakeem。当我尝试时,我得到了以下错误:mysqllevenshtein.cc:20:23:致命错误:my_global.h:没有终止此类文件或目录编译。我如何解决这个问题并将其放入mysql?您还可以使用如下存储过程: