Fantomas' side - Articles pour le tag intelligencehttps://blog.fantomas.site/blog/tags/intelligence/Les derniers articles taggés sous intelligencefrCopyright (c) 2005-2018, Julien FacheWed, 23 Apr 2014 08:09:55 +0000Clustered Models https://blog.fantomas.site/blog/2008/12/22/clustered-models/ <p>Je vous parlais récemment de l'application Django <a href="/blog/2008/12/15/clustered-sitemap/" title="Clustered Sitemap">Clustered Sitemap</a>, servant à établir la correspondance entre 2 objets sur des projets Django. </p><p>Après une review globale du code et l'ajout de certaines fonctionnalités, j'ai changé le nom du projet en <strong>Clustered models</strong> car il ne correspondait plus vraiment à la philosophie du projet. </p><p>La première modification à été d'ajouter une nouvelle version du sitemap, mais cette fois ci en <a href="/cloud-sitemap/" title="Sitemap en nuage">nuage 2D</a>. </p><p>Le code et les vues ont été rendu génériques pour en faciliter l'intégration et l'extensibilité. <br />Une feature intéressante est qu'il est possible de réutiliser la configuration des vues générique pour effectuer des groupements. </p><p>Ensuite un <em>templatetag</em> à été ajouté pour pouvoir voir les models associés à un autre model. Le résultat est qu'il est désormais possible de voir les articles associés sur le blog. :)</p><p> Le tout étant très facile à installer, voici un exemple du code pour réaliser mes sitemaps mélant les flatpages et les articles, dans le fichier <em>urls.py</em> du projet. </p><pre>from clustered_models import VectorBuilder<br />from clustered_models.clusterers import DimensionalClusterer<br />from clustered_models.clusterers import HierarchicalClusterer from django.contrib.flatpages.models import FlatPage<br /><br />entry_conf = {'queryset': Entry.published.all(), 'fields': ['content', 'title', 'excerpt']}<br /> flatpage_conf = {'queryset': FlatPage.objects.all(),<br /> 'fields': ['title', 'content']}<br /><br />vector = VectorBuilder(entry_conf, flatpage_conf)<br /><br />urlpatterns += patterns(<br /> '',<br /> url(r'^sitemap/$', 'clustered_models.views.clustered_view',<br /> {'vector': vector, 'clusterer': HierarchicalClusterer}),<br /> url(r'^cloud-sitemap/$', 'clustered_models.views.clustered_view',<br /> {'vector': vector, 'clusterer': DimensionalClusterer})<br />) </pre><p> Je ne releaserais le module que si il y a un minimum d'intérêt pour ce projet, donc à vos commentaires :).</p> fantomas42@gmail.com (fantomas)Mon, 22 Dec 2008 11:44:45 +0000https://blog.fantomas.site/blog/2008/12/22/clustered-models/DéveloppementClustered Sitemap https://blog.fantomas.site/blog/2008/12/15/clustered-sitemap/ <p>Comme je vous en parlais dans mon précèdent article, je comptais faire <a href="http://fantomas.willbreak.it/blog/2008/dec/14/analyse-hierarchique-par-le-contenu/" title="Analyse hiérarchique par le contenu">quelque chose d'utile tiré de l'intelligence collective</a>. <br />J'ai donc intégré une partie du code de mon projet <strong>Feed Clusterer</strong> pour en faire un module Django.</p><p> L'idée est de reprendre la configuration des vues génériques, et de spécifier les champs à inspecter pour effectuer une correspondance. Cette correspondance servira à l'établissement d'une cartographie des différentes vues d'un site en Django. </p><p> En modélisant ces données sous la forme d'un dendogramme on peut avoir un <a href="/sitemap/" title="Sitemap intelligent">sitemap assez surprenant</a>, que l'on peut retrouver sur la rubrique <a href="/sitemap/" title="Sitemap ou carte du site">Carte</a> en haut du site. Les regroupements se font à la fois sur les thèmes abordés, comme la <em>programmation</em>, ou les <em>restaurants</em>, tout en mélangeant les styles d'écritures et les catégories utilisées.</p><p> Cela permet de pouvoir orienter le visiteur vers les articles connexes du site, sans avoir à établir de relations aux préalables :). Regardez la section ou je parle d'<strong>Ogame</strong> cela suit ma logique de développement et regroupe à chaque fois l'article le plus proche. <br />Saisissant non ? </p><p>Concernant l'effet d'arbre dépliables, je tiens à en <a href="http://bassistance.de/jquery-plugins/jquery-plugin-treeview/">remercier l'auteur du site bassistance.de</a>, qui a fait un travail excellent en se basant sur JQuery, un must ! </p><p> Si le projet vous intéresse, je peux le releaser, il me reste que peu de travail pour le rendre générique. </p> fantomas42@gmail.com (fantomas)Mon, 15 Dec 2008 21:25:48 +0000https://blog.fantomas.site/blog/2008/12/15/clustered-sitemap/DéveloppementExpériencesAnalyse hiérarchique par le contenu https://blog.fantomas.site/blog/2008/12/14/analyse-hierarchique-par-le-contenu/ <img src="/media/cache/8b/34/8b34dc4ae060294c4321957d71309f39.jpg" alt="Analyse hiérarchique par le contenu" /> <p>Je suis actuellement en train de lire un livre sur les différents types d'intelligences dîtes collectives. C'est à dire l'analyse de données représentant les choix, ou les comportement de plusieurs personnes, et comment en extraire des vérités globales. </p><p>Une des première applications à laquelle je me suis attaqué à été de construire un <strong>Feed Clusterer</strong> en Python, servant à effectuer des regroupements par pertinences entre différents sites web. </p><h1>Comment ca marche ?</h1><p>Tout site web qui se respect propose un service de Flux RSS ou Atom, résumant les dernières actualités publiées sur le site. L'idée est d'en récupérer le contenu et d'en extraire une liste de mot pertinents. </p><p>En calculant le <a href="http://en.wikipedia.org/wiki/Pearson%27s_correlation_coefficient" title="Coefficiant de Pearson sur Wikipedia">coefficient de Pearson</a> en me basant sur les fréquences de mots comme vecteur, je peux en constituer des groupes et les classer de façon hiérarchique. </p><p>Pour visualiser cela, il suffit ensuite de tracer un <strong>dendogramme</strong>. Un dendogramme va représenter les groupes et la distance entre chaque groupes sur un ensemble de branches. Comme le montre l'image de l'article. </p><p>Ceci reste une expérience à petite échelle, mais imaginons maintenant toutes les données que récoltent les gros site web, en particulier ceux à vocations sociales, comme FaceBook, Twitter, MySpace, et n'oublions pas certains moteurs de recherches qui avec leurs dizaines de services sont capables de tracer toutes nos habitudes. </p><p>Je ne rentrerais pas dans le détails de toutes les applications inimaginables avec ces données pour tracer les gens, mais de plus avec l'internet mobile, on fournit une nouvelle donnée, c'est à dire le lieu et donc les conditions dans lesquelles on est quand on décide d'acheter un livre sur Amazon. </p><p>Marketing ciblé, ou Big Brother ? Où est la différence ? <br />A titre personnel, je pense que la différence se fera quand on mettra à profit les intelligences collectives au services de l'intelligence humaine, et non à son asservissement, commercial ou autre. </p><p> Donc pour finir j'ai décidé de programmer une application Django mettant à l'ouvrage cette étude, qui servira à proposer une navigation différente sur le site. Bientôt la release. :)</p> fantomas42@gmail.com (fantomas)Sun, 14 Dec 2008 00:33:28 +0000https://blog.fantomas.site/blog/2008/12/14/analyse-hierarchique-par-le-contenu/DéveloppementExpériences