如何在Java应用程序中进行拼写检查和/或拼写纠正?
答案 0 :(得分:5)
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并将其发送给 谷歌的拼写检查服务。响应也是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以换取新的和付费的。
早期免费版本的Translate API发生了什么变化?
截至2011年12月1日,Google Translate API v1已不再提供,已被Google Translate API v2取代。 Google Translate API v1于2011年5月26日正式弃用。由于广泛滥用导致的巨大经济负担,决定弃用API并将其替换为付费服务。
答案 1 :(得分:3)
您可以使用JOrtho。我之前在其中一个swing应用程序中使用过它。
答案 2 :(得分:2)
良好的离线解决方案是Jazzy。试试这个example并下载dictionary。
这是图书馆的Maven dependency:
<dependency>
<groupId>net.sf.jazzy</groupId>
<artifactId>jazzy</artifactId>
<version>0.5.2-rtext-1.4.1-2</version>
</dependency>
答案 3 :(得分:2)
Languagetool是Java基础拼写检查和校对软件,可能适合。 见
答案 4 :(得分:0)
试试Hunspell。它是拼写检查的标准。您可以使用Java port of Hunspell,即Hunspell-c + JNA
答案 5 :(得分:0)
如果您想要一个基于{3}} Google拼写纠正器的简单离线解决方案,请查看此处:Peter Norvig explanation