|
|
51CTO旗下网站
|
|
移动端

Java调用Google API spelling check拼写检查

Google真是宝库,想调用拼写检查的API,这是一个Java调用的lib库和例子,很简单就可以调用了。

作者:RonQi来源:JavaEye博客|2011-03-31 11:15

Google真是宝库,想调用拼写检查的API

这是一个Java调用的lib库和例子,很简单就可以调用了

http://code.google.com/p/google-api-spelling-java/

可以使用SVN检出源码 http://google-api-spelling-java.googlecode.com/svn/trunk/

貌似是用maven管理的,由于目前还没接触maven,checkout后断开svn连接,手动改了目录,把依赖的jar包加到路径下,才可以运行...鄙视自己一下...

下面的源码里的测试代码,我加了一个判空

Java代码

  1. package org.xeustechnologies.googleapi.spelling;     
  2.     
  3. public class Test {     
  4.     @org.junit.Test     
  5.     public void check() {     
  6.         SpellChecker checker = new SpellChecker();     
  7.         checker.setOverHttps( true ); // Now default is true     
  8.         checker.setLanguage( Language.ENGLISH ); // Default is English     
  9.     
  10.         SpellRequest request = new SpellRequest();     
  11.         request.setText( "google baidu twitter facebook yahoo microsoft ibm" );     
  12.         request.setIgnoreDuplicates( true );     
  13.     
  14.         SpellResponse spellResponse = checker.check( request );     
  15.     
  16.         if(spellResponse.getCorrections() != null){     
  17.             for( SpellCorrection sc : spellResponse.getCorrections() )     
  18.                 System.out.println( sc.getValue() );     
  19.         }else{     
  20.             System.out.println("It's OK!");     
  21.         }     
  22.     }     
  23. }  

后台实现原理在项目页面也讲了

应该是向 www.google.com/tbproxy/spell 接口发送一个xml文件

Xml代码

  1. xml version="1.0" encoding="UTF-8" standalone="yes"?>    
  2. <spellrequest textalreadyclipped="0" ignoredigits="1" ignoreallcaps="1"    
  3.     ignoredups="1">    
  4.     <text>google baidu facebook yahoo microsoft ibmtext>    
  5. spellrequest>    

接收一个xml

Xml代码

  1. xml version="1.0" encoding="UTF-8"?>    
  2. <spellresult error="0" clipped="0" charschecked="49">    
  3.     <c o="7" l="5" s="0">baud Baird bad bid bawdyc>    
  4.     <c o="21" l="8" s="0">    
  5.         face book face-book casebook passbook forsook     
  6.     c>    
  7.     <c o="36" l="9" s="0">    
  8.         Microsoft micro soft micro-soft micros oft micros-oft     
  9.     c>    
  10.     <c o="46" l="3" s="0">IBM ICBM BM ABM I'mc>    
  11. spellresult>    

哈哈,只有google是正确的拼法 ^_^

在这篇05年的文章 里讲了这几个参数的意义,那时候还得用反向工程获得调用接口:

几个小疑问:s 的意思是说建议的可信度吗,具体有几个级别不清楚;text他说用tab分隔?应该是用空格分隔吧。

这篇文章后面说要建一个ajax的调用接口,不知后来完成没

PS:这篇文章 提到Google接口有限制

写道

  1. There are some limitations to be mentioned as well. The Google web API allows 10 words to be sent at a time and a limit of 1000 connections per key per day. 

我测试超过10个词也是可以使用的,是不是现在google对api的访问不限制了或者字数变多了,不太清楚。嗯,做个测试吧,调用几千次试试。

PS2:在Google Code 里为什么找不到spell check 的相应API呢,是不是隐藏在哪个大的API下面?

PS3:很郁闷的一件事,在http://plugins.jquery.com/ 里面搜索“spell”什么都没有,可明明就有这个插件啊(见资源),为什么搜不出来呢?不过这个插件还需要后台Server端配置,看来是不能直接在前台调用google的api了,嗯,我死心了,就用那个java的lib调用吧...

====================

资源:

1. 附件是google code上的api调用jar包和依赖lib;

2. 有一个网站做了基于ajax的拼写检查,这里是他的免费网页版,放在这里备忘

http://orangoo.com/spellcheck/

3. 有一个拼写检查jquery的插件,刚看到,这里网址 ,插件在http://plugins.jquery.com/project/spellcheck 不过需要Server端配置,提供了php的例子

【编辑推荐】

  1. Java API解析名称空间的几种方法
  2. 发现Java虚拟机内存泄露问题
  3. Java编译过程与c/c++编译过程有何不同
  4. 程序员必备Java API
  5. VMWare发布虚拟基础架构Java API及Jython脚本示例
【责任编辑:金贺 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

C#入门经典(第3版)

本书将全面介绍C#编程的所有知识,共分为5篇:第1篇是C#语言:介绍了C#语言的所有内容,从基础知识到面向对象的技术,应有尽有。第2篇是Win...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊