我有一个名单列表,其中一些代码会检查该人是否存在,如果存在,还有一些东西..
我的问题是我想处理输入错误名称的情况。我有一个名单
Bob
Frank
Tom
Tim
John
如果我输入Joohn,我希望它能问我是否意味着约翰。如果我输入Tm,我会被问到是否意味着蒂姆,如果我说不,那就问我是不是意思是汤姆......等等......
以前有人做过这样的事吗?
答案 0 :(得分:6)
如果名称未显示在列表中,您可以使用Levenshtein distance和Soundex等算法来确定列表中哪些条目最接近并建议
答案 1 :(得分:1)
首先要查看列表中是否有完全匹配。如果不是,则计算用户输入的单词与列表中的每个元素之间的Levenshtein distance。你建议那个最低的那个。
答案 2 :(得分:0)
如果您不希望仅限于人员列表并想要搜索常用名称,则可以使用Google API服务提交拼写检查请求,并接收针对该查询的建议拼写更正:
http://www.sitepoint.com/blogs/2004/03/10/check-your-spelling-with-google/