如何在 Java 应用程序中进行拼写检查和/或拼写更正?
6 回答
Google 的拼写检查器http://code.google.com/p/google-api-spelling-java/
SpellChecker checker = new SpellChecker();
SpellResponse spellResponse = checker.check( "helloo worlrd" );
for( SpellCorrection sc : spellResponse.getCorrections() )
System.out.println( sc.getValue() );
这很像当您使用 Gmail 或 Google 服务(例如 translate.google.com 或搜索)时,如果您有错字,它会为您提供替代建议。
后台发生了什么?
SpellChecker 类将请求转换为 XML 并将其发送到 Google 的拼写检查服务。响应也是 XML 格式的,然后将其反序列化为简单的 POJO。
对上面第一个示例的请求如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <spellrequest textalreadyclipped="0" ignoredigits="1" ignoreallcaps="1" ignoredups="0"> <text>helloo worlrd</text> </spellrequest>
响应 XML 如下所示:
<?xml version="1.0" encoding="UTF-8"?> <spellresult error="0" clipped="0" charschecked="13"> <c o="0" l="6" s="1">hello Helli hell hallo hullo</c> <c o="7" l="6" s="1">world whorled wold warlord would</c> </spellresult>
不过没试过。
更新:
谷歌可能已经开始为此收费。我没有时间编写代码来检查这一点。有人可以确认。就谷歌而言,他们似乎已经弃用了旧的 API 来使用新的和付费的 API。
早期免费版本的 Translate API 发生了什么变化?
自 2011 年 12 月 1 日起,Google Translate API v1 不再可用,并已被 Google Translate API v2 取代。Google Translate API v1 于 2011 年 5 月 26 日正式弃用。决定弃用 API 并将其替换为付费服务是由于广泛滥用造成的巨大经济负担。
您可以使用JOrtho。我之前在其中一个摇摆应用程序中使用过它。
Languagetool 是可能适合的基于 Java 的拼写检查和校对软件。看
试试 Hunspell。它是拼写检查的标准。您可以使用Hunspell 的Java 端口,即 Hunspell-c+ JNA
如果您想要一个简单且离线的解决方案,基于Peter Norvig 对Google 拼写校正器的解释,请查看此处:http ://raelcunha.com/spell-correct.php