June 21st, 2008
Detectar lenguajes usando Google AJAX Language API
Usando el API de Google es muy simple detectar el lenguaje de un texto. Para hacerlo más simple se puede crear un componente CakePHP y reutilizarlo.
El código sería el siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | < ?php class LanguageComponent extends Object { function initialize() { } function startup(&$controller) { $this->controller = $controller; } function detect($text){ App::import("Core", "HttpSocket"); $conn = new HttpSocket(); $url = "http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&q="; $url .= urlencode($text); $result = $conn->get($url); if (!$result){ return false; } $result = json_decode($result, true); if (!$result || $result["responseStatus"]!=200 || !isset($result["responseData"])) { return false; } return $result["responseData"]; } } |
En caso de exito retorna una estructura del tipo (en caso de fallo retorna false):
Array
(
[language] => en
[isReliable] => 1
[confidence] => 0.9945003
)
Requiere CakePHP 1.2 (testeado con la rev 7125), y json_decode (PHP 5 >= 5.2.0, PECL json:1.2.0-1.2.1 [1])
Se puede ver una demo del componente en http://projects.pviojo.net/lang/main/detect
[1] http://cl2.php.net/json-decode
Tags: api, cakephp, Google et al, language


3 Comments Add your own
Fabian Ramirez | June 26th, 2008 at 12:35
Excelente concepto estimado, felicitaciones!
Mi consulta es:
¿Realmente es necesario utilizar la API de Google para realizar esto?
Yo hize algo parecido para suggests de Keywords, y se me viene automaticamente a la cabeza el concepto que hiciste, y para hacerme una api propia lo resolveria de la siguiente manera:
- Cada lenguaje tiene sus Preposiciones + Articulos y hacer una lista con cada una en ingles, español y francés es realmente facil.
- Cada lenguaje tiene verbos basicos, que podrían darle un puntaje a la frase.
- El lenguaje que cumpla con mas puntaje, es el correcto
Saludos
pviojo | June 29th, 2008 at 12:01
Si, se podría, pero implicaría construir esas listas que no siempre es tan simple y confiable. Por otra parte, Google, por el volumen de información que maneja, es muy confiable en este sentido.
Martin Bavio | July 24th, 2008 at 1:55
Interesantisima, e inteligentisima aplicacion. Felicitaciones. Da gusto ver cosas utiles en tan pocas lineas de codigo.
Leave a Reply
XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>