Copix et Bayes le retour
Copix a depuis des mois une classe permettant des calculs basés sur le théorème de Baye… J’ai développé cela par intérêt de ce formidable système de probabilité qui permet énormément de choses: classer les spams automatiquement, détecter une langue, définir des maladie selon des symptômes… bref une panoplie d’idées que vous pouvez mettre en oeuvre.
Seulement, la classe était très mal implémentée et surtout pas très propre. Comme je travaille actuellement sur le module de blog, je me suis dit que passer 30 ou 40 minutes pour nettoyer serait de bon augure… quelle idée…
Près de 3 heures de boulot ! J’ai commencé simplement par créer une interface et j’ai redéfini le système via une factory. Cela permet de dériver une fois de plus ma classe de base si nous voulons ajouter un mode. Comme pour le moment je suis en mode statique ou en base de données, sait-on jamais si une idée pouvait tomber.
Sauf que je me suis rendu compte que certains calculs pouvaient littéralement être différents entre les deux modes puisque j’ai très mal implémenté le mode statique. Bien que plus simple, les règles que j’avais définis étaient littéralement inexactes.
J’ai donc repris une très grosse partie des calculs puis j’ai optimisé la charge. J’ai aussi beaucoup travaillé sur la taille des données en base. Résultat ? une classe qui marche très bien, des données logiques, un calcul exacts et une vitesse de calcul multipliée par 11
Bref, la documentation se trouve ici: \\ http://www.copix.org/index.php/wiki/Bayes/fr\\ et le code est accessible sur le SVN de Copix: \\ http://svn.copix.org/browser/trunk/project/modules/stable/tools/bayes/classes/bayesfactory.class.php
Je vous invite à tester et me donner de vos nouvelles. J’ai aussi testé des calculs multiplexés sur MySQL avec le module Thread de Copix… je n’ai qu’un mot qui défini les résultats: //étonnant//.
J’ai préparé des tests que je vous présenterai d’ici peu. Il m’a été facile de créer un moteur de recherche après avoir indexé mon site en base. Je reçois régulièrement des mails de lecteurs qui me demande de créer une classe installable sans Copix. Je verrais si je peux réaliser cela simplement.
Voilà pour ce soir ;)