Home Top About Help Login Search

スペルチェックAPI

ID: 11
creation date: 2009/09/30 14:38
modification date: 2009/09/30 14:38
owner: naoto5959
tags: api,perl

スペルチェックのAPIを探していて、これに目をつけました。

ヌーラボ スペルチェッカーWebAPI

スペルチェックAPIのリクエストとレスポンスI

例えば、

Thiss iss a pennu

とかスペルミスした文章を渡してやると、それぞれの単語に対して「もしかして」みたいな反応をしてくれます。

Yahooのやつは単語にしか反応しないみたいですが、ヌーラボは文章渡せるので気に入りました。やったね。

ただ、レスポンスで返ってくるJSONの形式が少しアレっぽいです。

[{offset:0,word:"Thiss",similars:["Thins",...

おやおや、"offset":とか"word":にしたいですよ。

レスポンスを修正

今回はperlで処理するので、こんな感じで対応。適当です。○○は、正規表現を書くなと言わせないで欲しいとか言われそうです。いや誰も見てないか。

# 受け取ったテキストを$jsonとする
$json =~ s/(\w+):/"$1":/g;
  1 use strict;
  2 use warnings;
  3
  4 use constant {
  5     SPELL_API => "http://lab.nulab.co.jp/spellchecker-2007-08-20/check",
  6 };
  7
  8 use HTTP::Lite;
  9 use JSON;
 10 use Data::Dumper;
 11 use Encode;
 12 use URI::Escape;
 13
 14 my $http = new HTTP::Lite;
 15 my $text = Encode::encode('UTF-8', "Thiss iss a pennu");
 16 $text = uri_escape($text);
 17 my $url = SPELL_API."?text=".$text;
 18 my $req = $http->request($url) or die("can't get");
 19 my $json = $http->body();
 20 # レスポンスを修正
 21 $json =~ s/(\w+):/"$1":/g;
 22
 23 my $api_result =decode_json($json);
 24
 25 print Dumper($api_result) ."\n";

こんな感じで、$api_resultの中身をごにょごにょして「もしかして」してみようと思います。

0 comments
: