自动更正算法如何在PHP和/或C#中工作?

时间:2011-01-31 18:51:56

标签: php .net sql

我想弄清楚如何在PHPC#中实施自动更正算法。

简而言之,我有一个用户输入的单词应该可以容忍轻微的拼写错误。我还有一个SQL正确拼写单词的数据库。我希望能够从数据库中获取最接近(正确)拼写的单词到用户输入的单词。

我意识到有很多自动更正的软件包,但我希望能够对其进行自定义,因此我正在寻找有关在PHPC#中实现此功能的任何信息。

非常感谢, 布雷特

3 个答案:

答案 0 :(得分:6)

我假设您的意思是Peter Norvig's spell corrector,只有written in C#或PHP(12)从他的网站链接。

这实际上是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是),我发现它是更好的选择,可以自己编码或最终使用难以定制的开源实现。但是,值得一看的是开源。