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代码
- 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代码
- 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< span>text>
- < span>spellrequest>
接收一个xml
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< span>c>
- <c o="21" l="8" s="0">
- face book face-book casebook passbook forsook
- < span>c>
- <c o="36" l="9" s="0">
- Microsoft micro soft micro-soft micros oft micros-oft
- < span>c>
- <c o="46" l="3" s="0">IBM ICBM BM ABM I'm< span>c>
- < span>spellresult>
哈哈,只有google是正确的拼法 ^_^
在这篇05年的文章 里讲了这几个参数的意义,那时候还得用反向工程获得调用接口:
几个小疑问:s 的意思是说建议的可信度吗,具体有几个级别不清楚;text他说用tab分隔?应该是用空格分隔吧。
这篇文章后面说要建一个ajax的调用接口,不知后来完成没
PS:这篇文章 提到Google接口有限制
写道
- 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的例子
【编辑推荐】