我想弄清楚如何在PHP
或C#
中实施自动更正算法。
简而言之,我有一个用户输入的单词应该可以容忍轻微的拼写错误。我还有一个SQL
正确拼写单词的数据库。我希望能够从数据库中获取最接近(正确)拼写的单词到用户输入的单词。
我意识到有很多自动更正的软件包,但我希望能够对其进行自定义,因此我正在寻找有关在PHP
或C#
中实现此功能的任何信息。
非常感谢, 布雷特
答案 0 :(得分:6)
我假设您的意思是Peter Norvig's spell corrector,只有written in C#或PHP(1,2)从他的网站链接。
这实际上是Google用于拼写更正的方法。
答案 1 :(得分:2)
字典文件和levenshtein距离函数将是你最好的选择。
http://us.php.net/manual/en/function.levenshtein.php
查看有关该功能的评论,它有一些示例实现。
要把它提升到一个新的水平,你也可以在那里抛出soundex或metaphone函数,它也会捕捉到语音错误。
答案 2 :(得分:0)
网络还是Windows?假设网络,因为你提到PHP。
预算还是没有预算?那里有各种网络编辑器。例如,Telerik提供了一个很好的AJAX控件,允许使用AJAX进行拼写检查。它完全可定制。我相信其他一些供应商(Infragistics,Synfusion,ComponentOne等)也有类似的编辑器。
如果您需要前往开源,那里有编辑。但是,不确定哪些支持自定义列表。由于第三方控件相对便宜(几百美元或更少)并且易于定制(Telerik是),我发现它是更好的选择,可以自己编码或最终使用难以定制的开源实现。但是,值得一看的是开源。