Metaphone和Soundex是根据字符串的英文发音对字符串进行索引的语音算法。你用过函数吗metaphone()或soundex()存在于标准PHP库中?为了什么?这些函数在现实生活中有哪些用途? 最佳答案 更一般地说,soundex和变音位可用于查找大声发音时听起来相似的字符串。这可以用于超出您只是试图找到“正确”拼写的情况。例如,它可用于帮助发现错误,例如错误使用拼写正确但发音正确的单词。另一个有吸引力的用途是尝试找到正确的名字。当我告诉别人我的名字是“Nicholas”时,我看到他们经常尝试使用至少两种“替代”拼写:Ni
我有一个Java字符串列表,其中包含拼写不同(并非完全不同)的人的名字。例如,John可能拼写为Jon、Jawn、Jaun等。我应该如何在此列表中检索最合适的字符串。如果有人可以建议在这种情况下如何使用Soundex的方法,那将有很大帮助。 最佳答案 您使用了approximatestringmatching算法,有几种策略可以实现这个。Blur是一种基于Levenshtein词距离的近似字符串匹配的基于Trie的Java实现。还有另一种策略来实现其称为boyer-moore近似字符串匹配算法。使用该算法和Levenshtein词距
此算法设置为遍历第一个单词或直到它填满四个编码字符串。例如,输入“HorribleGreat”的结果是:H612。它忽略了第二个单词,换句话说,它只用第二个单词的第一个字母来填充编码字符串。我想通过获取第一个单词并找到其编码字符串然后获取第二个单词并找到其编码字符串来更改它;输出应为“H614G600”。我想知道是否有办法通过对**此代码进行一些更改来做到这一点。非常感谢:)privatestringSoundex(stringdata){StringBuilderresult=newStringBuilder();if(data!=null&&data.Length>0){strin
我希望能够使用Android的Speech-To-Text引擎来识别句子中的各种不常见的单词。举个例子,“electroencephalograph”这个词来自STT作为“electronicssupplygraph”。当我使用Soundex或Metaphone将所说的内容与硬编码值进行比较时,该值似乎永远不会匹配或随机匹配。如果我使用阈值(例如,Math.abs(str1.compareTo(str2))本质上,我想做的类似于通过背诵引述从引述数据库中查找引述。问题似乎更多地出在Google的Speech-To-Text引擎使用的有限词集中。有什么想法吗?
注册soundex函数的尝试导致:[SyntaxError]line0,col106:Error:Expectedendofstring,got'SOUNDEX'类定义:useDoctrine\ORM\Query\AST\Functions\FunctionNode;/***SoundexFunction::="SOUNDEX""("StringPrimary")"*/classSoundexFunctionextendsFunctionNode{public$stringExpression=null;publicfunctionparse(\Doctrine\ORM\Query\P
我的项目是从平面Excel文件中导入一个相当大的集合+500K行数据,这些文件是由一组人手动创建的。现在的问题是,这一切都需要规范化,以供客户搜索。例如,公司字段将有多个公司拼写并包括分支机构,例如“IBM”,然后是“IBMInc.”。和“IBMJapan”等。此外,我还有字母数字的产品名称,例如“A46-RhizonmePentahol”,仅靠SOUNDEX无法处理。我可以通过使用AJAX自动建议通过网络表单输入所有数据来解决长期问题。然而,在那之前,我仍然需要处理现有数据的大量收集。根据我在这里阅读的内容,这让我想到了一个我认为是好的过程:http://msdn.microsoft
是否可以使用soundex将列的一部分与搜索词进行比较?例如,如果用户搜索“fiftythree”——它将找到“NirveSportsFifty-ThreeCruiserinGoldMetallic”。我尝试将soundex与locate函数结合使用,但出现错误。这是我的PHP代码:$soundex=soundex($keyword);$soundexPrefix=substr($soundex,0,2);$sql="SELECTname"."FROMproductsWHERESOUNDEX(LOCATE('$keyword',name))LIKE'%$soundexPrefix%'"
我有一个带有“名称”列(VARCHAR(255))的MySQLInnoDB表,我希望用户能够对其进行搜索,返回所有匹配的行。但是,我不能只使用LIKE查询,因为搜索需要允许用户输入与可用名称相似的名称(例如,前缀为“The”,或者不知道正确的名称包含撇号)。两个例子是:数据库中的名称:'RoseandCrown'应该匹配的可能搜索示例:'Rose&Crown'、'RoseandCrown'、'roseandcrown'、'TheRoseandCrown'数据库中的名称:'Diver'sInn'应该匹配的可能搜索示例:'Divers'Inn'、'TheDiver'sInn'、'Diver
使用soundex()在MySql中搜索的正确结构是什么?我知道如何产生soundex():selectsoundex('str');只是不确定如何将其包含在我的查询中。 最佳答案 如果您要针对people表的name字段搜索“lewis”,请执行以下查询:SELECT*FROMpeopleWHEREsoundex("lewis")=soundex(name);examplehere 关于mysql-如何在mysql中查询soundex(),我们在StackOverflow上找到一个类似
我在使用Joomla!时遇到了问题!3集成搜索引擎。该引擎的索引器在索引内容时创建所谓的soundex-values,例如Testobject,Testobject1,Testobject2239923,Textobject....它们都具有相同的T23123soundex值。现在我的问题是,如果我搜索Test,那么不会有任何结果,因为这个词的soundex-value是T230。搜索引擎使用的查询是:SELECTDISTINCTt.term_idASid,t.termAStermFROMtablenameAStWHEREt.soundex=SOUNDEX('test')我检查了thi