14/01/2013

Web sémantique, intelligence artificielle, si on la faisait à l'envers

Nabaztag1
Nabaztag1 (Photo credit: Wikipedia)
En ce moment on parle beaucoup de web sémantique pour la recherche surtout chez google avec le knowledge graph, et de SIRI pour l'intelligence artificielle. En regardant la définition sur wikipedia, on s'aperçoit qu'il n'y a rien de sémantique car il n'y a pas d'analyse syntaxique, mais une analyse des métadonnées et leur liaison entres-elles.

Je me suis donc demandé comment le tout pouvait fonctionner en partant à l'envers : les données. Parcqu'en réalité,on crée du contenu, on le balise avec le html, et le moteur de recherche analyse ce contenu et ensuite le classifie. L'intelligence artificielle ne fais que recracher les données qu'on lui a apprise.

L'intelligence artificielle comment ça marche ?


Il y a une époque ou je m'intéressais aux méta moteurs de recherche, et à l'intelligence artificielle, parcque lorsqu'on est tout seul et feignant, on essaye toujours des solutions pour pouvoir se démultiplier et gagner du temps.

Je souhaitais un système qui me permette de répondre à des questions qui sont récurrentes pour que les gens ne m'appellent pas (j'étais parano, personne ne m'appelle).

A l'époque il y avait les chats irc, et je me demandais si je ne pouvais pas exploiter un système qui en tirerait parti.

J'étais tombé sur un langage simple d'intelligence artificielle qui fonctionne sur le couple stimulis/reponse.

Il y a une expérience pour laquelle vous êtes confronté tous les jours en remplissant les formulaire, c'est le test de turing. Ce test vise a essayer de déterminer si c'est un humain ou une machine qui répond.

Un concours de chatbot a été créé, le lobner prize qui récompensait le chatbot le plus abouti dont le premier bot le plus connu est ELIZA.





Un certain D.Wallace a créé un langage structuré sur la base du xml
Ce langage s'appelle l'AIML pour Artificial Intelligence Markup Language qui contient un balisage simple et disponible sur le site alicebot.Si vous êtes allé sur le site d'ikea, ou la sncf, et que vous avez cliqué sur le bot, vous êtes en face de ses descendant. D'ailleurs demandez à Anna "qui est ton botmaster".

Je fais ce rapprochement car en regardant les comportements de google, je m'aperçois que souvent, j' ai des résultats qui ne sont pas vraiment contextualisé, et que google se sert beaucoup des backlinks et autre pour déterminer la bonne thématique uniquement basée sur les mots clés. On imagine aisément qu'il doit y avoir un gros calcul pour déterminer la pertinence d'un résultat.

Les rich-snippets ne sont qu'un balisage pour soulager une analyse complexe de mots-clés en effectuant une présélection


Je pense que google, jusqu'à présent pour se simplifier la vie, utilisait le title de la page, et des titres qui peuvent déja donner des infos sur le contenu (h1-h6).

Depuis quelques temps, google cherche a soulager son système d'analyse en présélectionnant des données, d'où la naissance des rich-snippets.

Les rich snippets ne sont qu'un balisage supplémentaire de description pour que google puisse mieux faire un premier tri par type de données (voir schema.org), et lui donner plus d'informations avec un certain balisage de champ standardisés. D'ailleurs avec la sorti d'un data highlighter, l'outil qui permet de baliser un évènement, on voit bien que c'est l'orientation que prends google.

Pour en revenir a mon intelligence artificielle, voila comment il fonctionne

<category>
    <pattern>QUI ES TU</pattern>
    <template>
        <think><set name="topic">Me</set></think>
       Je suis un chatbot destiné à répondre à des questions idiotes et répétitives.
    </template>
</category>

On a une catégorie qui est composé d'un seul "pattern" (oui je sais c'est pas logique) qui est une correspondance à une partie de ce que tape l'utilisateur dans son champ de saisie, et "template" qui en est la réponse. "Think" permet de ne pas afficher la réponse, mais à fixer des paramètres par exemple.

set name= topic permet de fixer le sujet ou le contexte dans lequel la phrase doit être interprétée.

Là, on est dans un cas ou on a une réponse au pattern exact "qui es-tu"

Mais l'utilisateur pourrais dire quelque chose avant ou après ou formuler la phrase différemment et pourtant la réponse devrais être la même ex:


EST-CE QUE TU ES *



Et ça renverra vers la réponse précédente. Grâce a la balise on fait une réduction symbolique. Cela permet de volontairement réorienter une discussion vers un sujet précis.

Lorsque l'intelligence artificielle est bloquée, il est utile de le rerouter vers un autre sujet, pour cela une balise et une liste d'option permettront d'avoir une réponse lorsque l'intelligence artificielle ne comprends plus et qu'il n'y a plus de contexte pour l'aider.

Je reviendrais avec un autre article plus complet sur une mise en pratique de cette intelligence artificielle si le sujet vous intéresse et les paramètres de recherche.