Samstag, 19. Dezember 2009

reCAPTCHA

Toller Vortrag zu reCAPTCHA vom CAPTCHA Erfinder Luis von Ahn

Spellchecker für Online Applications

Es gab einen coolen Service von Google um Formulareingaben zu überprüfen und aus Eingaben wie "Belrin" "Berlin" zu erkennen. Im Rahmen der Soap Search API gab es Vorschläge zu anderen Schreibweisen. Leider hat man den diesen Service aufgegeben, und seit Mitte 2009 funktioniert es nicht mehr. Der Nachfolger, die Ajax Search Api, hat dieses Feature leider nicht.
Auf der Suche habe ich diesen Blog-Artikel gefunden, in dem jemand die Google Toolbar Api verwendet um zum Ziel zu kommen. So ganz offiziell war das aber wohl nicht, eher ein "Hack", funktioniert aber gut!

Allerdings hab ich weitergesucht und was offizielles gesucht. Und bin dabei auf Bing gestossen. Der Microsoft-Service ging bisher ein bisschen an mir vorbei, obwohl die Karten bspw. gar nicht schlecht sind. Politically correct kann man heute aber wohl auch wieder zu MS stehen, Google hat ja so eine Marktmacht, da sollte man sich über jeden Konkurrenten freuen!

Und irgendwie gibt es ziemlich versteckt auch eine Bing Api. Superschlecht dokumentiert, verwirrend verlinkt und überhaupt, da gibt es noch so einiges von Google abzukucken!

Also, man muss sich auch hier einen Api Key generieren. IMO muss man sich vorher dafür registrieren.

So in etwa sieht meine funktion aus.
function DoSpellCheck ($suchbegriff)
{
$request = "http://api.bing.net/json.aspx?Appid=".BINGKEY."&sources=spell&query=" . urlencode($suchbegriff);
$jsonobj = json_decode(file_get_contents($request));
if ($jsonobj && $jsonobj->SearchResponse->Spell->Total)
{
if ($jsonobj->SearchResponse->Spell->Total>1)
return $jsonobj->SearchResponse->Spell->Results;
elseif ($jsonobj->SearchResponse->Spell->Total==1)
return ($jsonobj->SearchResponse->Spell->Results[0]->Value);
}
}