Java調(diào)用Google API spelling check拼寫檢查
Google真是寶庫,想調(diào)用拼寫檢查的API
這是一個(gè)Java調(diào)用的lib庫和例子,很簡單就可以調(diào)用了
http://code.google.com/p/google-api-spelling-java/
可以使用SVN檢出源碼 http://google-api-spelling-java.googlecode.com/svn/trunk/
貌似是用maven管理的,由于目前還沒接觸maven,checkout后斷開svn連接,手動改了目錄,把依賴的jar包加到路徑下,才可以運(yùn)行...鄙視自己一下...
下面的源碼里的測試代碼,我加了一個(gè)判空
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!");
- }
- }
- }
后臺實(shí)現(xiàn)原理在項(xiàng)目頁面也講了
應(yīng)該是向 www.google.com/tbproxy/spell 接口發(fā)送一個(gè)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>
接收一個(gè)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>
哈哈,只有g(shù)oogle是正確的拼法 ^_^
在這篇05年的文章 里講了這幾個(gè)參數(shù)的意義,那時(shí)候還得用反向工程獲得調(diào)用接口:
幾個(gè)小疑問:s 的意思是說建議的可信度嗎,具體有幾個(gè)級別不清楚;text他說用tab分隔?應(yīng)該是用空格分隔吧。
這篇文章后面說要建一個(gè)ajax的調(diào)用接口,不知后來完成沒

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個(gè)詞也是可以使用的,是不是現(xiàn)在google對api的訪問不限制了或者字?jǐn)?shù)變多了,不太清楚。嗯,做個(gè)測試吧,調(diào)用幾千次試試。
PS2:在Google Code 里為什么找不到spell check 的相應(yīng)API呢,是不是隱藏在哪個(gè)大的API下面?
PS3:很郁悶的一件事,在http://plugins.jquery.com/ 里面搜索“spell”什么都沒有,可明明就有這個(gè)插件啊(見資源),為什么搜不出來呢?不過這個(gè)插件還需要后臺Server端配置,看來是不能直接在前臺調(diào)用google的api了,嗯,我死心了,就用那個(gè)java的lib調(diào)用吧...
====================
資源:
1. 附件是google code上的api調(diào)用jar包和依賴lib;
2. 有一個(gè)網(wǎng)站做了基于ajax的拼寫檢查,這里是他的免費(fèi)網(wǎng)頁版,放在這里備忘
http://orangoo.com/spellcheck/
3. 有一個(gè)拼寫檢查jquery的插件,剛看到,這里網(wǎng)址 ,插件在http://plugins.jquery.com/project/spellcheck 不過需要Server端配置,提供了php的例子
【編輯推薦】