dimanche 17 juillet 2011

Le reCAPTCHA - un projet de capitalisation des connaissances

  60 millions captchas sont résolus tous les jours, représentant 150 000 heures de travail. Un travail effectué en pure perte, puisque le test est immédiatement supprimé.

  En 2009, New York Times a eut l'idée de numériser ses archives à l'aide du projet reCAPTCHA. Les OCR (Optical Character Recognition, Reconnaissance Optique de Caractères) restent moins habiles à lire des textes que les humains. En faisant lire un texte numérisé par un être humain dans le cadre d'un CAPTCHA, ce dernier prouvera qu'il n'est pas un robot et transformer son effort en travail utile. Les CAPTCHA fournissent une armée de volontaires... involontaires. Ahhh!! J’ai toujours adoré les initiatives pour la capitalisation des connaissances.

   La grosse différence avec les CAPTCHA est que dans ces derniers, il faut connaître la valeur de la chaîne pour savoir si la réponse fournie par l'utilisateur est correcte. Justement, en OCR, on cherche à numériser un texte inconnu. ReCAPTCHA propose alors des CAPTCHA à 2 textes : l'un est déjà résolu, et l'autre n'est pas encore résolu. Au passage, reCAPTCHA.com collecte les numérisations et s'en sert dans le cadre de projets de bibliothèque virtuelle.

Utilisation de Recatcha en PHP

  L'utilisation de reCaptcha se fait via un service Web. Pour pouvoir utiliser ce service, il faut s'inscrire sur le site de http://www.recaptcha.com/, à l'aide d'une simple adresse courriel. A partir de la, il faut ajouter une liste de site Web : pour des raisons de sécurité, il n'est pas possible de partager une clé entre plusieurs domaines. Il y au une clé publique et une clé privée.
  Recaptcha.com propose une bibliothèque PHP avec des fonctions qui simplifient l'utilisation de recaptcha, et les limite à 2 appels de fonctions.
<?php
  echo recaptcha_get_html($publickey, $error);
?>


<?php
    $resp = recaptcha_check_answer ($privatekey,
                                        $_SERVER["REMOTE_ADDR"],
                                        $_POST["recaptcha_challenge_field"],
                                        $_POST["recaptcha_response_field"]);
//    $resp->is_valid : succes du test
//    $resp->error    : message d'erreur retourn&eacute;
?>

Aucun commentaire:

Enregistrer un commentaire