<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>labo x-réseau</title>
	<atom:link href="http://www.x-reseau.fr/labo/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.x-reseau.fr/labo</link>
	<description>une scène artistique et technologique dédiée aux arts vivants en réseau</description>
	<lastBuildDate>Tue, 19 Oct 2010 11:19:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>ProgramE &#8211; moteur d&#8217;agent conversationel AIML / AIML chatterbot &#8211; patch</title>
		<link>http://www.x-reseau.fr/labo/?p=176</link>
		<comments>http://www.x-reseau.fr/labo/?p=176#comments</comments>
		<pubDate>Mon, 05 Jul 2010 18:03:30 +0000</pubDate>
		<dc:creator>estelle</dc:creator>
				<category><![CDATA[Chatbot]]></category>
		<category><![CDATA[DEFICELONS]]></category>
		<category><![CDATA[ProgramE]]></category>
		<category><![CDATA[Agents Conversationels]]></category>
		<category><![CDATA[aiml]]></category>
		<category><![CDATA[Bot aiml]]></category>
		<category><![CDATA[chatbot]]></category>
		<category><![CDATA[installation programE]]></category>
		<category><![CDATA[programE]]></category>
		<category><![CDATA[programE sur Debian]]></category>
		<category><![CDATA[programE XML-RPC]]></category>
		<category><![CDATA[Second Life]]></category>
		<category><![CDATA[XMP-RPC]]></category>

		<guid isPermaLink="false">http://www.x-reseau.fr/labo/?p=176</guid>
		<description><![CDATA[Pourquoi ProgramE ?
ProgramE est un moteur d&#8217;agent conversationnel AIML open-source utilisant une base de données et dont l&#8217;avantage est de pouvoir être joint par protocole &#8230;]]></description>
			<content:encoded><![CDATA[<h2>Pourquoi ProgramE ?</h2>
<p><a href="http://sourceforge.net/projects/programe/" target="_blank">ProgramE</a> est un moteur d&#8217;agent conversationnel AIML open-source utilisant une base de données et dont l&#8217;avantage est de pouvoir être joint par protocole <a href="http://en.wikipedia.org/wiki/XML-RPC" target="_blank">XML-RPC</a>.</p>
<p>Pour ceux qui ont un compte sur le site <a href="http://pandorabots.com/botmaster/" target="_blank">pandorabots.com</a>, vous pouvez retrouver cette interface XML-RPC joignable par adresse formée sur le modèle :</p>
<p>http://www.pandorabots.com/pandora/talk-xml?botid=xxxxxxxxxxxxxxx&amp;input=question envoyée au bot</p>
<p>Avec des réponses de la forme :</p>
<pre>&lt;result status=0 botid=xxxxxxxxxxxxxxx custid=xxxxxxxxxxxxxxx&gt;
    &lt;input&gt;question envoyée au bot&lt;/input&gt;
    &lt;that&gt;Réponse du bot&lt;/that&gt;
&lt;/result&gt;</pre>
<p>Le site de pandorabots apporte de nombreux autres services et interfaces bien pratiques, mais il se trouve que le débit disponible pour les requêtes vers ce site est très largement utilisé ce qui peut causer des problèmes de disponibilité. C&#8217;est ce qui nous a fait chercher une solution alternative à installer sur nos serveurs. Toute une liste est d&#8217;ailleurs disponible sur le site extrêmement bien documenté alicebot.org : <a href="http://www.alicebot.org/downloads/programs.html" target="_blank">http://www.alicebot.org/downloads/programs.html</a></p>
<p>Notre choix s&#8217;est vite porté sur programE pour son interface XML-RPC car notre but n&#8217;est pas d&#8217;utiliser ce moteur avec une interface PHP ou HTML classique, mais plutôt de pouvoir le lier à d&#8217;autres programmes et plus particulièrement avec un programme permettant de loguer dans Second Life des avatars reliés à des agents conversationnels : <a href="http://ssm2017.free.fr/index.php/Technique/Scripts/ssmbot.html" target="_blank">ssmbot</a> (à télécharger <a href="http://forge.opensimulator.org/gf/project/ssmbot/" target="_blank">ici</a>), dont nous parlerons plus en détails plus loin&#8230;</p>
<h2>Installation de programE v0.9, modification des sources et patch</h2>
<p>Quelques modifications des <a href="http://sourceforge.net/projects/programe/">sources de la version 0.9</a> pour pouvoir le faire tourner sur mon serveur web : <a href="docs/update_programe_05-07-10.patch" target="_self">update_programe_05-07-10.patch</a>.</p>
<p>Les principales modifications sont les changements de balises &laquo;&nbsp;&lt;?&nbsp;&raquo; en &laquo;&nbsp;&lt;?php&nbsp;&raquo; (qui généraient un grand nombre d&#8217;erreurs sur mon serveur) et la gestion des arguments passés dans l&#8217;adresse de la page xmlrpcserver.php pour la communication XML-RPC (voir ci-dessous).</p>
<h2>Communication XML-RPC</h2>
<p>Sur ProgramE patché on peut joindre l&#8217;interface XML-RPC de la même manière  par adresse de type :</p>
<p>http://monserveurweb/programe/src/xmlrpcserver.php?input=question envoyée au bot&amp;myid=xxxxxx&amp;botname=MyBot</p>
<p>Et les réponses seront de la forme suivante :</p>
<pre>&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;methodResponse&gt;
&lt;params&gt;
 &lt;param&gt;
  &lt;value&gt;
   &lt;struct&gt;
    &lt;member&gt;
     &lt;name&gt;response&lt;/name&gt;
     &lt;value&gt;
      &lt;string&gt;Réponse du bot&lt;/string&gt;
     &lt;/value&gt;
    &lt;/member&gt;
    &lt;member&gt;
     &lt;name&gt;patternsmatched&lt;/name&gt;
     &lt;value&gt;
      &lt;array&gt;
       &lt;data&gt;
        &lt;value&gt;
         &lt;string&gt; * Pattern reconnue par le bot * : * : *&lt;/string&gt;
        &lt;/value&gt;
       &lt;/data&gt;
      &lt;/array&gt;
     &lt;/value&gt;
    &lt;/member&gt;
    &lt;member&gt;
     &lt;name&gt;inputs&lt;/name&gt;
     &lt;value&gt;
      &lt;array&gt;
       &lt;data&gt;
        &lt;value&gt;
         &lt;string&gt;Ancienne question envoyée au bot : Ancienne question envoyée au bot :
Ancienne question envoyée au bot&lt;/string&gt;
        &lt;/value&gt;
       &lt;/data&gt;
      &lt;/array&gt;
     &lt;/value&gt;
    &lt;/member&gt;
    &lt;member&gt;
     &lt;name&gt;errors&lt;/name&gt;
     &lt;value&gt;
      &lt;string/&gt;
     &lt;/value&gt;
    &lt;/member&gt;
    &lt;member&gt;
     &lt;name&gt;timer&lt;/name&gt;
     &lt;value&gt;
      &lt;double&gt;0.007779&lt;/double&gt;
     &lt;/value&gt;
    &lt;/member&gt;
   &lt;/struct&gt;
  &lt;/value&gt;
 &lt;/param&gt;
&lt;/params&gt;
&lt;/methodResponse&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.x-reseau.fr/labo/?feed=rss2&#038;p=176</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installation du décodeur Moses sur Debian 5.0</title>
		<link>http://www.x-reseau.fr/labo/?p=119</link>
		<comments>http://www.x-reseau.fr/labo/?p=119#comments</comments>
		<pubDate>Mon, 05 Jul 2010 15:15:20 +0000</pubDate>
		<dc:creator>estelle</dc:creator>
				<category><![CDATA[DEFICELONS]]></category>
		<category><![CDATA[Traduction]]></category>
		<category><![CDATA[Moses]]></category>

		<guid isPermaLink="false">http://www.x-reseau.fr/labo/?p=119</guid>
		<description><![CDATA[&#171;&#160;Moses is a statistical machine translation system that  allows you to automatically train translation models for any language  pair.&#160;&#187;
Pour le projet DEFICELONS, nous &#8230;]]></description>
			<content:encoded><![CDATA[<p>&laquo;&nbsp;<em><a title="Moses" href="http://www.statmt.org/moses/" target="_blank">Moses</a> is a <strong>statistical machine translation system</strong> that  allows you to automatically train translation models for any language  pair.</em>&nbsp;&raquo;</p>
<p>Pour le projet <a href="?p=38" target="_self">DEFICELONS</a>, nous avons installé le système de décodeur de Moses pour permettre d&#8217;effectuer de la traduction en temps réel <em>anglais &gt; français</em> et <em>français &gt; anglais</em> dans la langue de Henry David Thoreau.</p>
<p>Toute la partie analyse, entrainement et apprentissage a été effectué par <a title="François Yvon" href="http://www.limsi.fr/Individu/yvon/mysite/mysite.php" target="_blank">François Yvon</a> du LIMSI.</p>
<h2>Installation du décodeur Moses</h2>
<p>Nous allons donc ici nous intéressé à l&#8217;installation sur Debian 5.0 du décodeur Moses. Voici un guide très bien fait : <a href="http://www.statmt.org/moses_steps.html" target="_blank">http://www.statmt.org/moses_steps.html</a></p>
<h3>&#8212;&#8212;&#8212;- SRILM</h3>
<p>Télécharger le modèle de langage SRILM : <a href="http://www.speech.sri.com/projects/srilm/download.html" target="_blank">http://www.speech.sri.com/projects/srilm/download.html</a></p>
<p>Changer la variable SRILM en haut du <strong>Makefile</strong> pour l&#8217;adresse ABSOLUE du dossier.</p>
<p>Si vous avez une machine 64bits, il faut modifier le fichier <strong>sbin/machine-type</strong> :<br />
else if (`uname -m` == x86_64) then<br />
set MACHINE_TYPE = i686-m64<br />
#set MACHINE_TYPE = i686</p>
<p>Puis compiler :<br />
make World<br />
make test<br />
make cleantest</p>
<h3>&#8212;&#8212;&#8212;- IRSTLM</h3>
<p>Télécharger les outils IRSTLM : <a href="http://sourceforge.net/projects/irstlm/" target="_blank">http://sourceforge.net/projects/irstlm/</a></p>
<p>Puis compiler :<br />
./configure &#8211;prefix=/adresse/absolue/du/dossier/contenant/IRSTLM<br />
make<br />
make install</p>
<h3>&#8212;&#8212;&#8212;- BOOST</h3>
<p>Pour lancer Moses <a href="http://www.statmt.org/moses/?n=Moses.AdvancedFeatures#ntoc20" target="_blank">en mode serveur</a> et non uniquement en console il faut télécharger BOOST (version 1.35 ou supérieure) : <a href="http://www.boost.org/" target="_blank">http://www.boost.org/</a></p>
<p>cd adresse/de/boost_1_43_0<br />
./bootstrap.sh &#8211;help</p>
<p>Sélectionnez vos options de configuration et relancer ./bootstrap.sh sans l&#8217;option &#8211;help.<br />
./bootstrap.sh &#8211;prefix=/usr/local/lib/boost</p>
<p>./bjam install</p>
<h3>&#8212;&#8212;&#8212;- XMLRPC-C</h3>
<p>Pour lancer Moses en mode serveur il faut également XMLRPC-C. Sous Debian l&#8217;installation est très simple :<br />
apt-get install libxmlrpc-c-dev</p>
<h3>&#8212;&#8212;&#8212;- MOSES DECODER</h3>
<p>Télécharger : <a href="http://sourceforge.net/projects/mosesdecoder/" target="_blank">http://sourceforge.net/projects/mosesdecoder/</a></p>
<p>Puis compiler :<br />
./regenerate-makefiles.sh</p>
<p>pour la version en mode console :<br />
./configure &#8211;with-srilm=/Adresse/absolue/srilm  &#8211;with-irstlm=/Adresse/absolue/irstlm</p>
<p>pour la version <a href="http://www.statmt.org/moses/?n=Moses.AdvancedFeatures#ntoc20" target="_blank">en mode serveur</a> :<br />
./configure &#8211;with-srilm=/Adresse/absolue/srilm &#8211;with-irstlm=/Adresse/absolue/irstlm &#8211;with-boost=/usr/local/lib/boost &#8211;enable-threads &#8211;with-xmlrpc-c=/usr/bin/xmlrpc-c-config</p>
<p>make -j 4</p>
<h2>Lancement du décodeur</h2>
<h3>Moses en mode console est dans moses-cmd/src</h3>
<p>cd /adresse/de/moses/moses-cmd/src/<br />
./moses -f adresse/fichier/de/configuration/moses.weight-reused.ini</p>
<h3>Moses <a href="http://www.statmt.org/moses/?n=Moses.WebTranslation" target="_blank">en mode deamon</a> est dans web/bin :</h3>
<p>cd /adresse/de/moses/web/bin/<br />
./daemon-en-fr.pl 127.0.0.1 8080</p>
<h3>Moses <a href="http://www.statmt.org/moses/?n=Moses.AdvancedFeatures#ntoc20" target="_blank">en  mode serveur</a> est server/mosesserver :</h3>
<p>Ne pas oublier avant CHAQUE démarrage de moses d&#8217;exporter l&#8217;adresse de Boost :<br />
export LD_LIBRARY_PATH=/usr/local/lib/boost/</p>
<p>cd /adresse/de/moses/server/<br />
./mosesserver -f adresse/fichier/de/configuration/moses.weight-reused.ini &#8211;server-port 8080 &#8211;server-log /var/log/moses.log</p>
]]></content:encoded>
			<wfw:commentRss>http://www.x-reseau.fr/labo/?feed=rss2&#038;p=119</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Codes Mathematica utiles en traitement de texte</title>
		<link>http://www.x-reseau.fr/labo/?p=30</link>
		<comments>http://www.x-reseau.fr/labo/?p=30#comments</comments>
		<pubDate>Thu, 01 Jul 2010 10:24:36 +0000</pubDate>
		<dc:creator>marc</dc:creator>
				<category><![CDATA[DEFICELONS]]></category>
		<category><![CDATA[Mathematica]]></category>
		<category><![CDATA[Algorithme mathematica]]></category>
		<category><![CDATA[Traitement de texte]]></category>

		<guid isPermaLink="false">http://www.x-reseau.fr/labo/?p=30</guid>
		<description><![CDATA[Pour plus d&#8217;informations, télécharger les cours de Mathematica sur le site : http://www.limsi.fr/~jps/
On met notre texte.
MARMOTTE = &#171;&#160;Texte&#160;&#187;
On épure alors le texte de toute ponctuation &#8230;]]></description>
			<content:encoded><![CDATA[<p>Pour plus d&#8217;informations, télécharger les cours de Mathematica sur le site : <a href="http://www.limsi.fr/%7Ejps/">http://www.limsi.fr/~jps/</a></p>
<p><span style="color: #0000ff;">On met notre texte.</span><br />
MARMOTTE = &laquo;&nbsp;Texte&nbsp;&raquo;</p>
<p><span style="color: #0000ff;">On épure alors le texte de toute ponctuation afin de travailler uniquement sur les mots.</span><br />
MARMOTTE=StringReplace[MARMOTTE, "."-&gt;" "];<br />
MARMOTTE=StringReplace[MARMOTTE, ","-&gt;" "];<br />
MARMOTTE=StringReplace[MARMOTTE, "!"-&gt;" "];<br />
MARMOTTE=StringReplace[MARMOTTE, "?"-&gt;" "];<br />
MARMOTTE=StringReplace[MARMOTTE, "-"-&gt;" "];<br />
MARMOTTE=StringReplace[MARMOTTE, ":"-&gt;" "];<br />
MARMOTTE=StringReplace[MARMOTTE, ")"-&gt;" "];<br />
MARMOTTE=StringReplace[MARMOTTE, "("-&gt;" "];<br />
MARMOTTE=StringReplace[MARMOTTE, "'"-&gt;" "];<br />
MARMOTTE=StringReplace[MARMOTTE, ";"-&gt;" "];<br />
MARMOTTE=StringReplace[MARMOTTE, "/"-&gt;" "];</p>
<p><span style="color: #0000ff;">On compte les occurrences des mots dans le corpus</span><br />
str1=StringToStream[MARMOTTE]<br />
l= ReadList[str1,Word];<br />
InputStream[String,12]<br />
l1=ToLowerCase[l];<br />
lu=Union[l1];<br />
Length[lu];<br />
lsp=Flatten[Map [If[StringTake[#,-1]===&nbsp;&raquo;s&nbsp;&raquo;&amp;&amp; Not[MemberQ[lp,#]],{},#]&amp;,lu]];<br />
Length[lsp];<br />
lc=Map[{Count[l1,#],#}&amp;,lsp];(* LENT *)<br />
lcs=Reverse[Sort[lc]];<br />
ListPlot[Transpose[lcs]P1\[RightDoubleBracket],Joined-&gt;True,PlotRange-&gt;All]<br />
ListPlot[Transpose[lcs]P1\[RightDoubleBracket],Joined-&gt;True,PlotRange-&gt;{Automatic,{0,100}}]<br />
TableForm[Take[Partition[lcs,6],<span style="color: #ff0000;">50</span>],TableDepth-&gt; 2,TableSpacing-&gt;{0,0}]<br />
{<br />
{{187,de}, {149,et}, {120,la}, {97,à}, {93,l}, {89,que}},<br />
{{80,un}, {74,est}, {67,le}, {65,d}, {64,une}, {59,je}},<br />
{{58,il}, {51,qui}, {50,qu}, {50,ne}, {47,en}, {46,n}},<br />
{{37,ce}, {32,pour}, {30,ou}, {29,j}, {28,comme}, {25,se}},<br />
{{24,si}, {24,peut}, {24,même}, {24,être}, {24,a}, {23,du}},<br />
{{23,avec}, {21,homme}, {21,c}, {19,bien}, {18,vie}, {18,son}},<br />
{{17,sont}, {17,sa}, {17,par}, {17,ai}, {16,au}, {15,on}},<br />
{{15,mon}, {14,—}, {14,y}, {14,ma}, {13,lui}, {13,était}},<br />
{{13,aussi}, {12,elle}, {12,cette}, {11,quand}, {11,notre}, {10,peu}},<br />
{{10,pêche}, {10,nourriture}, {10,chaque}, {10,celui}, {9,soit}, {9,pureté}},<br />
{{9,ni}, {9,nature}, {9,me}, {9,ceux}, {8,tout}, {8,sur}},<br />
{{8,manger}, {8,leur}, {8,chasse}, {8,aux}, {7,toute}, {7,sensualité}},<br />
{{7,pourtant}, {7,m}, {7,fait}, {7,été}, {7,encore}, {7,car}},<br />
{{7,avoir}, {6,sauvage}, {6,personne}, {6,ont}, {6,là}, {6,jour}},<br />
{{6,humanité}, {6,fusil}, {6,étang}, {6,chasseur}, {6,ça}, {6,beaucoup}},<br />
{{6,autre}, {6,animale}, {5,vivre}, {5,trop}, {5,sujet}, {5,propre}},<br />
{{5,pêcheur}, {5,parce}, {5,origine}, {5,non}, {5,moi}, {5,importe}},<br />
{{5,imagination}, {5,eux}, {5,esprit}, {5,davantage}, {5,cela}, {5,appétit}},<br />
{{4,savoir}, {4,rien}, {4,quelque}, {4,quelle}, {4,quel}, {4,pratique}},<br />
{{4,parler}, {4,outre}, {4,où}, {4,objection}, {4,mesure}, {4,loin}},<br />
{{4,lequel}, {4,jusqu}, {4,honte}, {4,génie}, {4,fût}, {4,faire}},<br />
{{4,façon}, {4,étaient}, {4,entre}, {4,doit}, {4,dit}, {4,dire}},<br />
{{4,deux}, {4,cause}, {4,animaux}, {4,aller}, {4,ainsi}, {3,vraiment}},<br />
{{3,voir}, {3,véritable}, {3,veda}, {3,travaux}, {3,travail}, {3,tenté}},<br />
{{3,tel}, {3,tant}, {3,stade}, {3,souvent}, {3,soir}, {3,seulement}},<br />
{{3,santé}, {3,sage}, {3,rendre}, {3,raison}, {3,quoi}, {3,quelqu}},<br />
{{3,plupart}, {3,peux}, {3,pendant}, {3,pêcher}, {3,part}, {3,opinion}},<br />
{{3,occupation}, {3,musique}, {3,morceau}, {3,matin}, {3,mangé}, {3,lorsque}},<br />
{{3,larve}, {3,laquelle}, {3,journée}, {3,jeune}, {3,instinct}, {3,impureté}},<br />
{{3,ici}, {3,humaine}, {3,humain}, {3,grossier}, {3,expérience}, {3,existence}},<br />
{{3,état}, {3,estime}, {3,doute}, {3,dont}, {3,difficile}, {3,dieu}},<br />
{{3,déjà}, {3,comment}, {3,ciel}, {3,chose}, {3,chez}, {3,cet}},<br />
{{3,cependant}, {3,bon}, {3,boire}, {3,autrement}, {3,autant}, {3,aucun}},<br />
{{3,assez}, {3,animal}, {3,angleterre}, {2,»}, {2,«}, {2,vrai}},<br />
{{2,voyageur}, {2,voulez}, {2,votre}, {2,voit}, {2,voie}, {2,vertu}},<br />
{{2,vaincre}, {2,va}, {2,trouvé}, {2,tour}, {2,tiré}, {2,thé}},<br />
{{2,table}, {2,surprenait}, {2,sûrement}, {2,sûr}, {2,suite}, {2,suggéraient}},<br />
{{2,spirituelle}, {2,soient}, {2,simplement}, {2,seul}, {2,sert}, {2,sérieux}},<br />
{{2,serait}, {2,sera}, {2,sentiment}, {2,sensibilité}, {2,semblait}, {2,saveur}},<br />
{{2,sagesse}, {2,religieux}, {2,race}, {2,quoique}, {2,puisse}, {2,presque}},<br />
{{2,présent}, {2,préfère}, {2,pourrait}, {2,pourquoi}, {2,possible}, {2,poisson}},<br />
{{2,pitié}, {2,pense}, {2,pasteur}, {2,passe}, {2,partie}, {2,pareil}},<br />
{{2,papillon}, {2,pain}, {2,ornithologie}, {2,ordonnée}, {2,ordinaire}, {2,oiseaux}},<br />
{{2,observer}, {2,obligé}, {2,nuit}, {2,nouvelle}, {2,nouveaux}, {2,nourrir}},<br />
{{2,nourri}, {2,noble}, {2,monde}, {2,mangeur}, {2,mange}, {2,maintenant}},<br />
{{2,lorsqu}, {2,longue}, {2,législature}, {2,laisse}, {2,jouer}, {2,jeux}},<br />
{{2,jeunesse}, {2,inspire}, {2,insignifiant}, {2,inférieure}, {2,indifférent}, {2,hindou}},<br />
{{2,harpe}, {2,goût}, {2,genre}, {2,gelée}, {2,garçon}, {2,fut}},<br />
{{2,fraîche}, {2,font}, {2,fonction}, {2,flûte}, {2,fin}, {2,faut}},<br />
{{2,étrange}, {2,étonnant}, {2,étant}, {2,entière}, {2,entend}, {2,enfin}}<br />
}</p>
<p><span style="color: #0000ff;">On obtient alors les <span style="color: #ff0000;">50</span> mots les plus utilisés dans notre corpus.</span></p>
<p><span style="color: #0000ff;">On peut également remplacer aisément une chaîne de caractères (pour supprimer on peut remplacer par un espace)</span><br />
PERDU1=StringReplace[MARMOTTE," motàremplacer " -&gt; "motremplaçant"];</p>
]]></content:encoded>
			<wfw:commentRss>http://www.x-reseau.fr/labo/?feed=rss2&#038;p=30</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Présentation du projet DEFICELONS</title>
		<link>http://www.x-reseau.fr/labo/?p=38</link>
		<comments>http://www.x-reseau.fr/labo/?p=38#comments</comments>
		<pubDate>Tue, 29 Jun 2010 11:35:15 +0000</pubDate>
		<dc:creator>cyril</dc:creator>
				<category><![CDATA[DEFICELONS]]></category>
		<category><![CDATA[Agents Conversationels]]></category>
		<category><![CDATA[Homme]]></category>
		<category><![CDATA[Jean François Peyret]]></category>
		<category><![CDATA[Machine]]></category>
		<category><![CDATA[Second Life]]></category>
		<category><![CDATA[Thoreau]]></category>
		<category><![CDATA[Walden]]></category>

		<guid isPermaLink="false">http://www.x-reseau.fr/labo/?p=38</guid>
		<description><![CDATA[Le projet DEFICELONS est basé sur le travail de l&#8217;écrivain Américain Henry David Thoreau mis en scène par Jean François Peyret. Ce dernier s&#8217;appuie sur l&#8217;oeuvre &#8230;]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><strong>L</strong>e projet <a href="http://www.deficelons.fr"><strong>DEFICELONS</strong></a> est basé sur le travail de l&#8217;écrivain Américain Henry David Thoreau mis en scène par <a title="J.F Peyret" href="http://fr.wikipedia.org/wiki/Jean-François_Peyret" target="_blank">Jean François Peyret</a>. Ce dernier s&#8217;appuie sur l&#8217;oeuvre <em><span style="text-decoration: underline;"><a title="Walden" href="http://fr.wikisource.org/wiki/Walden_ou_la_vie_dans_les_bois">Walden ou la vie dans les bois</a></span></em><em>, </em>publiée en 1854, pour explorer la question suivante :</p>
<p style="text-align: justify;">
<h2 style="text-align: center;"><span style="color: #ff6600;">&laquo;&nbsp;L&#8217;Homme peut-il penser comme une machine ?&nbsp;&raquo;</span></h2>
<p style="text-align: center;"><a href="http://www.x-reseau.fr/labo/wp-content/uploads/2010/06/visuel24.jpg"><img class="aligncenter size-medium wp-image-210" title="DEFICELONS" src="http://www.x-reseau.fr/labo/wp-content/uploads/2010/06/visuel24-300x244.jpg" alt="" width="300" height="244" /></a></p>
<p style="text-align: justify;">Les prémices de ce projet ont été présentés sous plusieurs formes. Tout d&#8217;abord en <a href="http://www.theatre-paris-villette.com/historique/saison_2009/spect_09-10/deficelons.html"><strong>workshop</strong></a> qui s&#8217;est déroulé du 4 au 10 Juin 2010 au <a href="http://www.theatre-paris-villette.com/">théâtre Paris-Villette</a> puis par la suite présenté en tant qu&#8217;<a href="http://www.panorama12.net/#/artwork158"><strong>installation</strong></a> au <a href="http://www.panorama12.net/">Fresnoy</a> du 24 au 26 Juin 2010.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">
<p style="text-align: justify;"><strong>L</strong>e défit technologique était ici de pouvoir instaurer un dialogue Homme/Machine et même Machine/Machine en respectant les écrits de H.D Thoreau. Cette thématique a donc soulevé de nombreuses problématiques techniques telles que :</p>
<ul>
<li><span style="color: #ff9900;"> La notion d&#8217;agents conversationnels</span></li>
<li><span style="color: #ff9900;"> </span><span style="color: #ff9900;">La traduction automatique</span></li>
<li><span style="color: #ff9900;"> La synthèse vocale</span></li>
<li><span style="color: #ff9900;"> Les mondes virtuels</span></li>
<li><span style="color: #ff9900;">Les avatars</span></li>
<li><span style="color: #ff9900;"> La transmission de données temps réel</span></li>
<li><span style="color: #ff9900;"> Le stockage / &laquo;&nbsp;parsage&nbsp;&raquo; d&#8217;un corpus de textes</span></li>
</ul>
<p style="text-align: justify;">
<p style="text-align: justify;">
<p style="text-align: justify;">
<p style="text-align: justify;"><strong>E</strong>n tant qu&#8217;ingénieurs x-réseaux, nous nous sommes particulièrement intéressés au développement d&#8217;un système d&#8217;<strong>agents conversationnels temps réel,</strong> capables de créer et d&#8217;entretenir un dialogue littéraire composé des écrits de l&#8217;écrivain Américain. Trois phases ont pu être dissociées lors de la réalisation de ce projet :</p>
<p style="text-align: justify;">- La première étant le <strong>traitement du corpus</strong> de base. En effet, afin de nourrir et d&#8217;instruire nos agents conversationnels, il a fallu trouver un moyen de stocker, d&#8217;ordonner et de réutiliser le texte de <em><span style="text-decoration: underline;">Walden</span></em><em>. </em></p>
<p style="text-align: justify; padding-left: 30px;"><em><span style="color: #888888;"><span style="color: #99cc00;">Technologies utilisées </span>: Java, MySQL, expressions régulières&#8230;</span></em></p>
<p style="text-align: justify;">- Le deuxième temps de développement a eu pour but de rendre <strong>accessible et compréhensible</strong> par les agents conversationnels le corpus sélectionné.</p>
<p style="text-align: justify; padding-left: 30px;"><em><span style="color: #99cc00;">Technologies utilisées</span> <span style="color: #999999;">: <span style="color: #808080;">Java, MySQL, AIML&#8230;</span></span></em></p>
<p style="text-align: justify;">- Enfin la dernière étape a été la <strong>connexion</strong> réciproque entre les acteurs et/ou les systèmes temps réel avec le monde virtuel (Second Life).</p>
<p style="text-align: justify; padding-left: 30px;"><span style="color: #99cc00;">Technologies utilisées</span> <span style="color: #808080;">: Java, C#, PHP/MySQL, OSC protocol,  Program E, librairie libopenmetaverse, Seconde Life&#8230;</span></p>
<p style="text-align: justify;">
<p style="text-align: justify;">
<p style="text-align: justify;"><strong>C</strong>et article est le premier d&#8217;une série d&#8217;explications et de solutions techniques qui s&#8217;inscrit dans notre désir de partage didactique de connaissances. Les articles suivant s&#8217;accompagneront de schémas et d&#8217;extraits de code qui nous ont permis de finaliser ce projet artistique.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.x-reseau.fr/labo/?feed=rss2&#038;p=38</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Algorithmes mathematica</title>
		<link>http://www.x-reseau.fr/labo/?p=4</link>
		<comments>http://www.x-reseau.fr/labo/?p=4#comments</comments>
		<pubDate>Fri, 18 Jun 2010 14:45:17 +0000</pubDate>
		<dc:creator>marc</dc:creator>
				<category><![CDATA[DEFICELONS]]></category>
		<category><![CDATA[Mathematica]]></category>
		<category><![CDATA[Algorithme mathematica]]></category>
		<category><![CDATA[Traitement de texte]]></category>

		<guid isPermaLink="false">http://www.x-reseau.fr/labo/?p=4</guid>
		<description><![CDATA[Algorithmes mathematica fonctionnant à l&#8217;aide des TAGS.
Algo servant d&#8217;exemple : bouclelistedelistealté
Importer dans mathematica le texte sur lequel on va travailler. Il est importé sous forme &#8230;]]></description>
			<content:encoded><![CDATA[<h2 style="text-align: left;">Algorithmes mathematica fonctionnant à l&#8217;aide des TAGS.</h2>
<p style="text-align: left;">Algo servant d&#8217;exemple : bouclelistedelistealté</p>
<p style="text-align: left;"><span style="color: #0000ff;">Importer dans mathematica le texte sur lequel on va travailler. Il est importé sous forme de listes de liste. Chaque sous liste correspond à  une chaine de caractères s&#8217;arrétant à un passage à la ligne.</span><br />
MARMOTTE = ReadList["C:/Users/marc/marmottetaguée.txt", String, RecordSeparators -&gt;{}]; {Length[MARMOTTE], Length[Union[MARMOTTE]]}</p>
<p style="text-align: left;"><span style="color: #0000ff;">Chaque phrase doit être taguée, pour cela j&#8217;ai créé une liste de liste comprenant des numéros correspondants aux TAGS.</span><br />
TAGSLIST[[i]] va correspondre aux TAGS de la i ème Phrase (ou chaîne de caractères définies avec les passages à la ligne) du texte.</p>
<h3 style="text-align: left;">Algorithme</h3>
<p style="text-align: left;">Clear[NEWLIST]<br />
Clear[RAND]<br />
Clear[c]</p>
<p style="text-align: left;"><span style="color: #0000ff;">On remet la mémoire à 0.</span><br />
x=1;<br />
b=Ceiling[Random[]*196];<br />
NEWLIST=Table[1,{i,50},{j,2,1}];<br />
c=Table[0,{i,50},{j,1,5}];</p>
<p style="text-align: left;"><span style="color: #0000ff;">Création de 2 listes de listes.</span></p>
<p style="text-align: left;"><span style="color: #0000ff;">1 liste pour connaître les TAGS de chaque phrase analysée (la liste &laquo;&nbsp;c&nbsp;&raquo;). Liste de listes comprenant 50 fois la liste {0,0,0,0,0}</span></p>
<p style="text-align: left;"><span style="color: #0000ff;">1 liste pour répertorier toutes les phrases pouvant répondre à la phrase analysées (liste &laquo;&nbsp;NEWLIST&nbsp;&raquo;). Liste de 50 listes vides.</span><br />
RAND=Table[0,{i,50}];</p>
<p style="text-align: left;"><span style="color: #0000ff;">On prend une phrase aléatoire du corpus.</span><br />
If [MemberQ[TAGSLIST[[b]],1]==True,c[[1]][[1]]=Round[1.49*Random[]],c[[1]][[1]]=Round[0.7*Random[]]];<br />
If [MemberQ[TAGSLIST[[b]],2]==True,c[[1]][[2]]=Round[1.49*Random[]],c[[1]][[1]]=Round[0.7*Random[]]];<br />
If [MemberQ[TAGSLIST[[b]],3]==True,c[[1]][[3]]=Round[1.49*Random[]],c[[1]][[1]]=Round[0.7*Random[]]];<br />
If [MemberQ[TAGSLIST[[b]],4]==True,c[[1]][[4]]=Round[1.49*Random[]],c[[1]<br />
][[1]]=Round[0.7*Random[]]];</p>
<p style="text-align: left;"><span style="color: #0000ff;">Si la phrase sélectionnée (MARMOTTE[[b]]) a le TAG &laquo;&nbsp;1&#8243; alors le premier membre de c[[1]] prend la valeur &laquo;&nbsp;1&#8243; =&gt; c[(1]]={1,0,0,0,0}.</span></p>
<p style="text-align: left;"><span style="color: #0000ff;">On fait le même travail pour chaque TAG.</span></p>
<p style="text-align: left;"><span style="color: #0000ff;">Une altération est ajoutée dans ce code. Une phrase n&#8217;ayant pas initialement de TAG put se voir attribué la présence d&#8217;un TAG mais aussi une phrase ayant un TAG peut être analysée comme une phrase ne l&#8217;ayant pas.</span><br />
If [MemberQ[TAGSLIST[[b]],5]<span style="font-family: Mathematica1Mono;">==</span>True,c[[1]][[5]]=Round[1.49*Random[]],c[[1]][[1]]=Round[0.7*Random[]]];<br />
For [i=0,i&lt;5,i++<br />
If[c[[1]][[i]]<span style="font-family: Mathematica1Mono;">==</span>1,<br />
For[j=0,j&lt;196,j++<br />
If [MemberQ[TAGSLIST[[j]],i]<span style="font-family: Mathematica1Mono;">==</span>True, NEWLIST[[1]]=Append [NEWLIST[[1]],j]]<br />
]];<br />
]</p>
<p style="text-align: left;"><span style="color: #0000ff;">On rempli maintenant toutes les phrases pouvant répondre à la phrase d&#8217;entrée analysée.</span></p>
<p style="text-align: left;"><span style="color: #0000ff;">On ajoute dans NEWLIST[[1]] toutes les phrase ayant en commun au moins un TAG avec la phrase analysée. Sachant que si une phrase a plusieurs TAGS en commun avec la phrase analysée alors elle apparaitra autant de fois dans la liste.</span><br />
If [c[[1]]=={0,0,0,0,0}, RAND[[1]]=Ceiling[Random[]*196],<br />
RAND[[1]]=NEWLIST[[1]][[Ceiling[Random[]*Length[NEWLIST[[1]]]+1]]]];<br />
Print["\n", x++,": "&lt;&gt;MARMOTTE[[b]],&nbsp;&raquo;\n&nbsp;&raquo;,&nbsp;&raquo;\n&nbsp;&raquo;, x++,&nbsp;&raquo;: &nbsp;&raquo;  MARMOTTE[[RAND[[1]]]]]</p>
<p style="text-align: left;"><span style="color: #0000ff;">Si C[[1]] est égal à {0,0,0,0,0} alors la liste NEWLIST[[1]] est vide, on prend alors une phrase aléatoire dans le texte. Sinon on prend une phrase de façon aléatoire dans NEWLIST[[1]].</span></p>
<p style="text-align: left;"><span style="color: #0000ff;">On print ensuite cette phrase qui sera la prochaine phrase analysée afin de créer une conversation.</span><br />
For[m=1,m&lt;50,m++<br />
If[MemberQ[TAGSLIST[[RAND[[m-1]]]],1]<span style="font-family: Mathematica1Mono;">==</span>True,c[[m]][[1]]=Round[1.49*Random[]],c[[1]][[1]]=Round[0.7*Random[]]];<br />
If[MemberQ[TAGSLIST[[RAND[[m-1]]]],2]<span style="font-family: Mathematica1Mono;">==</span>True,c[[m]][[2]]=Round[1.49*Random[]],c[[1]][[1]]=Round[0.7*Random[]]];<br />
If[MemberQ[TAGSLIST[[RAND[[m-1]]]],3]<span style="font-family: Mathematica1Mono;">==</span>True,c[[m]][[3]]=Round[1.49*Random[]],c[[1]][[1]]=Round[0.7*Random[]]];<br />
If[MemberQ[TAGSLIST[[RAND[[m-1]]]],4]<span style="font-family: Mathematica1Mono;">==</span>True,c[[m]][[4]]=Round[1.49*Random[]],c[[1]][[1]]=Round[0.7*Random[]]];<br />
If[MemberQ[TAGSLIST[[RAND[[m-1]]]],5]<span style="font-family: Mathematica1Mono;">==</span>True,c[[m]][[5]]=Round[1.49*Random[]],c[[1]][[1]]=Round[0.7*Random[]]];<br />
For[i=0,i&lt;5,i++<br />
If[c[[m]][[i]]<span style="font-family: Mathematica1Mono;">==</span>1,<br />
For[j=0,j&lt;196,j++<br />
If[MemberQ[TAGSLIST[[j]],i]<span style="font-family: Mathematica1Mono;">==</span>True,NEWLIST[[m]]=AppendTo[NEWLIST[[m]],j]]<br />
]];<br />
]<br />
If[c[[m]]<span style="font-family: Mathematica1Mono;">==</span>{0,0,0,0,0},RAND[[m]]=Ceiling[Random[]*196+1],<br />
RAND[[m]]=NEWLIST[[m]][[Ceiling[Random[]*Length[NEWLIST[[m]]]+1]]]];<br />
Print["\n",x++,": "&lt;&gt;MARMOTTE[[RAND[[m]]]]]<br />
]</p>
<p style="text-align: left;"><span style="color: #0000ff;">Boucle de ce qui a été fait précédemment afin d&#8217;avoir une conversation de plus de 2 occurrences.</span><br />
Print[c]<br />
Print[TAGSLIST[[b]]]<br />
Print[TAGSLIST[[RAND]]]</p>
<p style="text-align: left;"><span style="color: #0000ff;">Vérifications afin de connaître quelles sont les modifications dues à la perte d&#8217;information : les mauvaises transmissions.</span></p>
<p style="text-align: left;"><span style="color: #0000ff;">Tous les autres algorithmes sur les TAGS fonctionnent de la même manière, avec ou sans altération. La seule chose qui change vraiment est que la présence du TAG &laquo;&nbsp;1&#8243; ne rempli pas forcément la case &laquo;&nbsp;1 &nbsp;&raquo; de la sous liste de c (TAGS tournants, oppositions &#8230;).</span></p>
<h2 style="text-align: left;">Algorithme mathematica recherchant les mots.</h2>
<p style="text-align: left;">Algo servant d&#8217;exemple : nouvelalgosanso</p>
<p style="text-align: left;"><span style="color: #0000ff;">On charge le texte comme précédelent:</span><br />
MARMOTTE = ReadList["C:/Users/marc/marmottetaguée.txt", String, RecordSeparators -&gt;{}]; {Length[MARMOTTE], Length[Union[MARMOTTE]]};</p>
<p style="text-align: left;"><span style="color: #0000ff;">On analyse toutes les phrase et on les TAGS en fonction de la présence ou non de la chaine de caractères entre &laquo;&nbsp;_&nbsp;&raquo;. Equivalent du TAGLIST précédent mais fait ici de manière automatique.</span><br />
TEST=Table[0,{i,196},{j,16}];<br />
For[i=0,i&lt;196,i++<br />
If [StringFreeQ[MARMOTTE[[i]],&nbsp;&raquo;homme&nbsp;&raquo;]<span style="font-family: Mathematica1Mono;">==</span>False, TEST[[i]][[1]]=1]<br />
]<br />
For[i=0,i&lt;196,i++<br />
If [StringFreeQ[MARMOTTE[[i]],&nbsp;&raquo; vie &laquo;&nbsp;]<span style="font-family: Mathematica1Mono;">==</span>False, TEST[[i]][[2]]=1]<br />
]<br />
For[i=0,i&lt;196,i++<br />
If [StringFreeQ[MARMOTTE[[i]],&nbsp;&raquo;nourriture&nbsp;&raquo;]<span style="font-family: Mathematica1Mono;">==</span>False, TEST[[i]][[3]]=1]<br />
]<br />
For[i=0,i&lt;196,i++<br />
If [StringFreeQ[MARMOTTE[[i]],&nbsp;&raquo;pêche&nbsp;&raquo;]<span style="font-family: Mathematica1Mono;">==</span>False, TEST[[i]][[4]]=1]<br />
]<br />
For[i=0,i&lt;196,i++<br />
If [StringFreeQ[MARMOTTE[[i]],&nbsp;&raquo;nature&nbsp;&raquo;]<span style="font-family: Mathematica1Mono;">==</span>False, TEST[[i]][[5]]=1]<br />
]<br />
For[i=0,i&lt;196,i++<br />
If [StringFreeQ[MARMOTTE[[i]],&nbsp;&raquo;pureté&nbsp;&raquo;]<span style="font-family: Mathematica1Mono;">==</span>False, TEST[[i]][[6]]=1]<br />
]<br />
For[i=0,i&lt;196,i++<br />
If [StringFreeQ[MARMOTTE[[i]],&nbsp;&raquo;manger&nbsp;&raquo;]<span style="font-family: Mathematica1Mono;">==</span>False, TEST[[i]][[7]]=1]<br />
]<br />
For[i=0,i&lt;196,i++<br />
If [StringFreeQ[MARMOTTE[[i]],&nbsp;&raquo;chasse&nbsp;&raquo;]<span style="font-family: Mathematica1Mono;">==</span>False, TEST[[i]][[8]]=1]<br />
]<br />
For[i=0,i&lt;196,i++<br />
If [StringFreeQ[MARMOTTE[[i]],&nbsp;&raquo;sensualité&nbsp;&raquo;]<span style="font-family: Mathematica1Mono;">==</span>False, TEST[[i]][[9]]=1]<br />
]<br />
For[i=0,i&lt;196,i++<br />
If [StringFreeQ[MARMOTTE[[i]],&nbsp;&raquo;huma&nbsp;&raquo;]<span style="font-family: Mathematica1Mono;">==</span>False, TEST[[i]][[10]]=1]<br />
]<br />
TEST<br />
TEST2=Flatten[TEST]</p>
<p style="text-align: left;"><span style="color: #0000ff;">Une simplification pour l&#8217;algorithme.</span></p>
<h3 style="text-align: left;"><span style="color: #000000;">Algorithme</span></h3>
<p style="text-align: left;">Clear[NEWLIST]<br />
Clear[c]<br />
Clear[RAND]<br />
b=Ceiling[Random[]*196];</p>
<p style="text-align: left;"><span style="color: #0000ff;">On prend une phrase aléatoire du texte.</span><br />
x=1;<br />
NEWLIST=Table[0,{i,1,50},{j,2,1}];<br />
Print[x++,": "MARMOTTE[[b]]]<br />
TEST[[b]]<br />
For[i=0,i&lt;10,i++<br />
(*Print[i]*)<br />
For[j=0,j&lt;196,j++<br />
For[i=0,i&lt;10,i++<br />
If[TEST2[[10*(b-1)+i]]<span style="font-family: Mathematica1Mono;">==</span>1 &amp;&amp; TEST[[j]][[i]]<span style="font-family: Mathematica1Mono;">==</span>1,NEWLIST[[1]]=Append[NEWLIST[[1]],j]]<br />
]<br />
]<br />
]</p>
<p style="text-align: left;"><span style="color: #0000ff;">On rempli toutes les phrases pouvant répondre à la phrase d&#8217;entrée analysée. Ici, ce sont les phrases contenant un des mots recherchés (que contient la phrase analysée).</span></p>
<p style="text-align: left;"><span style="color: #0000ff;">On ajoute dans NEWLIST[[1]] toutes les phrase ayant en commun au moins un mot recherché avec la phrase analysée. Sachant que si une phrase a plusieurs de ces mots en commun avec la phrase analysée alors elle apparaitra autant de fois dans la liste.</span><br />
If[TEST[[b]]<span style="font-family: Mathematica1Mono;">==</span>{0,0,0,0,0,0,0,0,0,0},c=Ceiling[Random[]*196],c=NEWLIST[[1]][[Ceiling[Random[]*Length[NEWLIST[[1]]]]]]];</p>
<p style="text-align: left;"><span style="color: #0000ff;">Si la phrase analysée n&#8217;a aucun mot recherché, on répond une phrase aléatoirement. Sinon on prend une des phrase de manière aléatoire dans NEWLIST[[1]].</span><br />
Print[x++, ": ", MARMOTTE[[c]]]<br />
Print[TEST[[c]]]<br />
For[m=1,m&lt;50,m++<br />
For[j=0,j&lt;196,j++<br />
For[i=0,i&lt;10,i++<br />
If[TEST2[[10*(c-1)+i]]<span style="font-family: Mathematica1Mono;">==</span>1 &amp;&amp; TEST[[j]][[i]]<span style="font-family: Mathematica1Mono;">==</span>1,NEWLIST[[m]]=Append[NEWLIST[[m]],j]]<br />
]<br />
]<br />
If[TEST[[c]]<span style="font-family: Mathematica1Mono;">==</span>{0,0,0,0,0,0,0,0,0,0},c=Ceiling[Random[]*196],c=NEWLIST[[m]][[Ceiling[Random[]*Length[NEWLIST[[m]]]]]]];<br />
Print[x++,": ",MARMOTTE[[c]]]<br />
Print[TEST[[c]]]<br />
]</p>
<p style="text-align: left;"><span style="color: #0000ff;">On fait alors une boucle.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.x-reseau.fr/labo/?feed=rss2&#038;p=4</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mathématica</title>
		<link>http://www.x-reseau.fr/labo/?p=17</link>
		<comments>http://www.x-reseau.fr/labo/?p=17#comments</comments>
		<pubDate>Fri, 18 Jun 2010 14:36:07 +0000</pubDate>
		<dc:creator>marc</dc:creator>
				<category><![CDATA[DEFICELONS]]></category>
		<category><![CDATA[Mathematica]]></category>
		<category><![CDATA[Agents Conversationels]]></category>
		<category><![CDATA[Traitement de texte]]></category>

		<guid isPermaLink="false">http://www.x-reseau.fr/labo/?p=17</guid>
		<description><![CDATA[Présentation
Pour plus d&#8217;informations, télécharger les cours de Mathematica sur le site : http://www.limsi.fr/~jps/
Mathematica est un logiciel :
- De 	traitement symbolique
- De 	traitement numérique
- De 	visualisation
- &#8230;]]></description>
			<content:encoded><![CDATA[<h2>Présentation</h2>
<p>Pour plus d&#8217;informations, télécharger les cours de Mathematica sur le site : <a href="http://www.limsi.fr/~jps/" target="_blank">http://www.limsi.fr/~jps/</a></p>
<p>Mathematica est un logiciel :<br />
- De 	traitement symbolique<br />
- De 	traitement numérique<br />
- De 	visualisation<br />
- D&#8217;édition de tutoriels<br />
- De 	programmation</p>
<p>Il a été utilisé dans notre projet en <strong>traitement symbolique</strong> (analyse des mots contenus dans le corpus), en <strong>logiciel de programmation</strong> (pour les algorithmes).</p>
<h2>Fonctionnement</h2>
<p style="text-align: center;"><a href="http://www.x-reseau.fr/labo/wp-content/uploads/2010/06/fonctionnement-mathematica.jpg"><img class="aligncenter size-full wp-image-246" style="border: 1px solid black;" title="fonctionnement mathematica" src="http://www.x-reseau.fr/labo/wp-content/uploads/2010/06/fonctionnement-mathematica.jpg" alt="" width="442" height="218" /></a></p>
<p style="text-align: center;">image provenant du cours de Jean Paul Sansonnet mathintro.3nov08.nb disponible sur le site donné initialement.</p>
<h2>Le rôle de Mathematica dans notre projet</h2>
<p>L&#8217;utilisation principale de Mathematica dans le projet <a title="DEFICELONS" href="?p=38" target="_self">DEFICELONS</a> est de faire un travail sur l&#8217;intelligence artificielle de bots / agents conversationnels afin de <strong>construire des discussions sensées entre bots</strong>, basées uniquement sur le corpus des &laquo;&nbsp;<em>Lois supérieures&nbsp;&raquo;</em> et/ou de tout le texte de <em>&laquo;&nbsp;Walden ou la vie dans les bois&nbsp;&raquo;</em> de Thoreau. Nous avons ainsi pu obtenir des partitions de conversations entre bots comme apport d&#8217;exemples dramaturgiques concrets.</p>
<p style="text-align: center;"><a href="http://www.x-reseau.fr/labo/wp-content/uploads/2010/06/Walden_Thoreau.jpg"><img class="aligncenter size-medium wp-image-239" style="border: 1px solid black;" title="Life in the Wood by H.D.Thoreau" src="http://www.x-reseau.fr/labo/wp-content/uploads/2010/06/Walden_Thoreau-211x300.jpg" alt="" width="211" height="300" /></a></p>
<p>Pour cela de nombreux algorithmes ont été codés afin de savoir lesquels seraient les plus intéressants d&#8217;un point de vue théâtral. Ces algorithmes ont donnés lieux à de nombreuses partitions. Ces partitions étant toujours différentes même en utilisant le même algorithme, ce qui montre bien la construction de la réponse et du dialogue.</p>
<p>Ces partitions ont pour but de voir ce qui est possible, de voir quels types de réponses peut donner la machine et donc de mieux comprendre son fonctionnement. Le grand nombre de partitions et d&#8217;algorithmes permet aussi de savoir quels algorithmes sont susceptibles de donner quels types de partitions et quelles partitions sont vraiment intéressantes.</p>
<p>De plus, Mathematica peut modifier le texte. Un des algorithmes travaille sur le remplacement des mots les plus fréquents par un unique mot. Cela permet donc d&#8217;altérer le texte (voir Testalgo7.nb et algoanthropophagie.pdf).</p>
<p>Deux problèmes se sont posés avec Mathematica:</p>
<p>- Le premier est l&#8217;<strong>absence de temps réel</strong>. On ne peut lui envoyer des données qu&#8217;il analyserait puis renverrait une réponse. Même si le calcul peut être rapide il n&#8217;y a pas de lien (tout du moins aucun trouvé ni utilisé) entre l&#8217;extérieur de Mathematica et Mathematica lui-même. C&#8217;est pour cela que Mathematica n&#8217;a servi qu&#8217;à faire des partitions en amont et non, comme le fait par exemple <a href="http://sourceforge.net/projects/programe/" target="_blank">programE</a>, des réponses en direct.</p>
<p>- Le second problème est le fait que Mathematica soit <strong>restrictif</strong>. Même si on peut parler de construction de réponse, ces réponses sont toujours constituées des mêmes briques, immuables : les sous listes. Concrètement la seule réponse que peut renvoyer le bot est une phrase étant déjà dans le corpus. Cela diminue donc énormément les possibilités. Ce n&#8217;est pas une réponse &laquo;&nbsp;à la Thoreau&nbsp;&raquo; mais une réponse &laquo;&nbsp;de Thoreau&nbsp;&raquo;. De plus, pour les &laquo;&nbsp;algorithmes des TAGS&nbsp;&raquo; il faut obligatoirement, en entrée, une phrase du corpus.</p>
<p>Pour notre projet, nous avons du créer des dictionnaires aiml tournant sur le moteur d&#8217;agents conversationnels <a href="http://sourceforge.net/projects/programe/" target="_blank">programE</a>. Le problème est que certaine subtilité des programmes Mathematica n&#8217;ont pu être transmises par dictionnaires aiml notamment tous ce qui a relation avec les altérations de textes, les problèmes de transmissions&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.x-reseau.fr/labo/?feed=rss2&#038;p=17</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

