Java调用Google API spelling check 拼写检查
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包加到路径下,才可以运行...鄙视自己一下...
下面的源码里的测试代码,我加了一个判空
package org.xeustechnologies.googleapi.spelling; public class Test { @org.junit.Test public void check() { SpellChecker checker = new SpellChecker(); checker.setOverHttps( true ); // Now default is true checker.setLanguage( Language.ENGLISH ); // Default is English SpellRequest request = new SpellRequest(); request.setText( "google baidu twitter facebook yahoo microsoft ibm" ); request.setIgnoreDuplicates( true ); SpellResponse spellResponse = checker.check( request ); if(spellResponse.getCorrections() != null){ for( SpellCorrection sc : spellResponse.getCorrections() ) System.out.println( sc.getValue() ); }else{ System.out.println("It's OK!"); } } }
后台实现原理在项目页面也讲了
应该是向 www.google.com/tbproxy/spell 接口发送一个xml文件
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <spellrequest textalreadyclipped="0" ignoredigits="1" ignoreallcaps="1" ignoredups="1"> <text>google baidu facebook yahoo microsoft ibm</text> </spellrequest>
接收一个xml
<?xml version="1.0" encoding="UTF-8"?> <spellresult error="0" clipped="0" charschecked="49"> <c o="7" l="5" s="0">baud Baird bad bid bawdy</c> <c o="21" l="8" s="0"> face book face-book casebook passbook forsook </c> <c o="36" l="9" s="0"> Microsoft micro soft micro-soft micros oft micros-oft </c> <c o="46" l="3" s="0">IBM ICBM BM ABM I'm</c> </spellresult>
哈哈,只有google是正确的拼法 ^_^
在这篇05年的文章
里讲了这几个参数的意义,那时候还得用反向工程获得调用接口:
Tag
|
Description
|
o
|
the offset from the start of the text of the word
|
l
|
length of misspelled word
|
s
|
Confidence of the suggestion
|
text
|
tab delimited list of suggestions
|
几个小疑问:s 的意思是说建议的可信度吗,具体有几个级别不清楚;text他说用tab分隔?应该是用空格分隔吧。
这篇文章后面说要建一个ajax的调用接口,不知后来完成没
PS:这篇文章 提到Google接口有限制
我测试超过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的例子
=================
晕,昨天发的今天就被“51CTO”给抓去了 http://developer.51cto.com/art/201103/252396.htm
在je都没几个人点击,这样也被抓过去,保留了je的id,但是没有引用链接,哎
而且google搜索还排在javaeye前面,什么情况?