Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
String 我应该使用什么数据结构来查找类似的字符串?_String_Algorithm_Data Structures_Language Agnostic_Matching - Fatal编程技术网

String 我应该使用什么数据结构来查找类似的字符串?

String 我应该使用什么数据结构来查找类似的字符串?,string,algorithm,data-structures,language-agnostic,matching,String,Algorithm,Data Structures,Language Agnostic,Matching,我应该使用什么数据结构来查找类似的字符串?例如,当你向谷歌查询字符串“hapyp brithdya”时,谷歌会问你是不是说“生日快乐”,这个字符串与之前拼错的字符串“hapyp brithdya”非常相似 在空间和时间上,哪种数据结构最能有效地执行此类操作 请帮忙。非常感谢您抽出时间。既然您要求提供数据结构,我将向您推荐 这些可以扩展到一个概率变量,该变量返回最有可能(根据语料库统计)的字符串更正。请参阅谷歌的彼得·诺维格(Peter Norvig)的文章,了解其基本思想;将其与Levensht

我应该使用什么数据结构来查找类似的字符串?例如,当你向谷歌查询字符串“hapyp brithdya”时,谷歌会问你是不是说“生日快乐”,这个字符串与之前拼错的字符串“hapyp brithdya”非常相似

在空间和时间上,哪种数据结构最能有效地执行此类操作


请帮忙。非常感谢您抽出时间。

既然您要求提供数据结构,我将向您推荐


这些可以扩展到一个概率变量,该变量返回最有可能(根据语料库统计)的字符串更正。请参阅谷歌的彼得·诺维格(Peter Norvig)的文章,了解其基本思想;将其与Levenshtein自动机相结合需要一些有限状态传感器的知识。有关更多详细信息,请参阅。

谷歌使用的一种学习机制是搜索历史。例如,我搜索了“hapyp brithdya”,然后发现拼写不正确,因此没有选择任何链接。我下一步将搜索“生日快乐”的正确拼写。从这一系列搜索中,谷歌可以发现“hapyp brithdya”实际上意味着“生日快乐”


另一种基于同样的句子的评分机制帮助谷歌提供更多可接受的拼写更正,即搜索“hapyp brithdya”会导致用户点击包含“生日快乐”的链接(谷歌搜索建议)。这增加了“生日快乐”与“hapyp brithdya”之间的接近度,而“nappy Birth”则出现在用户未访问的链接中。在您的示例中,您只显示字母排列不同的单词。您是否还希望找到“相似”但实际上具有不同字母的单词(例如“happy”和“hbppy”)?是的,确实如此。我还想得到“快乐”或“hbppy”之类的词