欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java调用Google API spelling check 拼写检查

程序员文章站 2022-07-15 11:29:45
...

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的调用接口,不知后来完成没Java调用Google API spelling check 拼写检查
            
    
    博客分类: Java GoogleJavajQuerySVNmaven 

 

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的例子

 

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

晕,昨天发的今天就被“51CTO”给抓去了 http://developer.51cto.com/art/201103/252396.htm

在je都没几个人点击,这样也被抓过去,保留了je的id,但是没有引用链接,哎

而且google搜索还排在javaeye前面,什么情况?