Java中的拼写检查和/或拼写纠正

时间:2012-05-24 05:29:41

标签: java nlp spell-checking languagetool

如何在Java应用程序中进行拼写检查和/或拼写纠正?

6 个答案:

答案 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以换取新的和付费的。

参考:Google Translate API FAQ

  

早期免费版本的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)

答案 4 :(得分:0)

试试Hunspell。它是拼写检查的标准。您可以使用Java port of Hunspell,即Hunspell-c + JNA

答案 5 :(得分:0)

如果您想要一个基于{3}} Google拼写纠正器的简单离线解决方案,请查看此处:Peter Norvig explanation