Merge branch 'unstable' of https://github.com/jsmaniac/2011-m1s2-ter into unstable

This commit is contained in:
Bertrand BRUN 2011-05-26 08:23:14 +02:00
commit f377eb1a44
5 changed files with 261 additions and 205 deletions

View File

@ -6,7 +6,8 @@ session_start();
if(!isset($_SESSION['userId']))
header("location:login.php?return=createGame&showmsg=oth_login_createGame_nauth");
$cgCount = getNbGameCreationRemained($_SESSION['userId']);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
@ -15,151 +16,161 @@ if(!isset($_SESSION['userId']))
<title>PtiClic - Création de partie</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="ressources/simple.css" />
<script type="text/javascript" src="ressources/jquery-1.5.1.min.js" /></script>
<script type="text/javascript" src="ressources/createGame.js" /></script>
<style type="text/css">
#wordLines input{
border : 2px solid grey;
}
.status {
visibility: hidden;
}
.valid .status, #center.valid .status {
color: #20FF20;
visibility: visible;
}
.invalid .status, #center.invalid .status, #center .status {
color: #FF2020;
visibility: visible;
}
.wordLinesTable {
min-height : 20px;
min-width : 20px;
border-collapse : collapse;
border-spacing : 0px;
margin-left : 30px;
}
.wordLinesTable td {
padding : 6px;
padding-left : 10px;
}
.wordLinesTable .lightLine {
background-color : #F0F0D0;
}
.wordLinesTable td:first-child {
text-align : right;
}
<?php if($cgCount > 0) {?>
<script type="text/javascript" src="ressources/jquery-1.5.1.min.js" /></script>
<script type="text/javascript" src="ressources/createGame.js" /></script>
<?php } ?>
<style type="text/css">
#wordLines input{
border : 2px solid grey;
}
.status {
visibility: hidden;
}
.valid .status, #center.valid .status {
color: #20FF20;
visibility: visible;
}
.invalid .status, #center.invalid .status, #center .status {
color: #FF2020;
visibility: visible;
}
.wordLinesTable {
min-height : 20px;
min-width : 20px;
border-collapse : collapse;
border-spacing : 0px;
margin-left : 30px;
}
.wordLinesTable td {
padding : 6px;
padding-left : 10px;
}
.wordLinesTable .lightLine {
background-color : #F0F0D0;
}
.wordLinesTable td:first-child {
text-align : right;
}
#center {
margin-left : 100px;
margin-top : 20px;
margin-bottom : 30px;
}
#center label {
border-bottom : 1px solid grey;
border-left : 1px solid grey;
-moz-border-radius : 100%;
padding-left : 10px;
}
#center {
margin-left : 100px;
margin-top : 20px;
margin-bottom : 30px;
}
#center label {
border-bottom : 1px solid grey;
border-left : 1px solid grey;
-moz-border-radius : 100%;
padding-left : 10px;
}
#relations {
margin-bottom : 20px;
margin-top : 10px;
}
#relations label {
margin-left : 40px;
border-bottom : 1px solid grey;
border-left : 1px solid grey;
-moz-border-radius : 100%;
padding-left : 10px;
padding-right : 10px;
}
#button {
margin-top : 30px;
margin-left : 50px;
margin-bottom : 40px;
}
#button input {
margin-left : 10px;
margin-right : 40px;
padding : 4px;
padding-left : 8px;
padding-right : 8px;
font-weight : bold;
}
</style>
#relations {
margin-bottom : 20px;
margin-top : 10px;
}
#relations label {
margin-left : 40px;
border-bottom : 1px solid grey;
border-left : 1px solid grey;
-moz-border-radius : 100%;
padding-left : 10px;
padding-right : 10px;
}
#button {
margin-top : 30px;
margin-left : 50px;
margin-bottom : 40px;
}
#button input {
margin-left : 10px;
margin-right : 40px;
padding : 4px;
padding-left : 8px;
padding-right : 8px;
font-weight : bold;
}
</style>
</head>
<body>
<?php include("ressources/menu.inc"); ?>
<form class="content creategame">
<h2>Création de parties</h2>
<p>Cette page vous permet de créer des parties personalisées en indiquant les mots qui seront affiché pour un mot central.<br /><br />
<div id="errorDiv" class="message warning" style="display:none;"></div>
<div id="successDiv" class="message success" style="display:none;"></div>
<a id="newCreationLink" style="display:none;" href="createGame.php">Créer une autre partie</a>
<div id="center">
<label for="centralWord"> Le mot central : </label>
<input type="text" id="centralWord" name="centralWord" />
<span class="status"></span>
</div>
<div id="relations">
<label for="relation1">Relation 1</label>
<select name="relation1" id="relation1">
</select>
<label for="relation2">Relation 2</label>
<select name="relation2" id="relation2">
</select>
</div>
<div id="wordLines">
<div id="templates" style="display:none">
<table>
<thead> </thead>
<tbody>
<tr class="wordLine">
<td>
<label for="word-"></label>
</td>
<td>
<input value="" class="word" type="text" id="word-"/>
</td>
<td>
<span class="status"></span>
</td>
<td>
<input type="checkbox" id="r1-"/><label class="r1 relationLabel" for="r1-">Blabla</label>
</td>
<td>
<input type="checkbox" id="r2-"/><label class="r2 relationLabel" for="r2-">Blabla</label>
</td>
<td>
<input type="checkbox" id="r3-"/><label class="r3 relationLabel" for="r3-">Blabla</label>
</td>
<td>
<input type="checkbox" id="r4-"/><label class="r4 relationLabel" for="r4-">Blabla</label>
</td>
</tr>
</tbody>
<h2>Création de parties</h2>
<?php if($cgCount > 0) { ?>
<h3>Vous pouvez créer encore <?php echo $cgCount;?> partie(s).</h3>
<form class="content creategame">
<p>Cette page vous permet de créer des parties personalisées en indiquant les mots qui seront affiché pour un mot central.<br /><br />
<div id="errorDiv" class="message warning" style="display:none;"></div>
<div id="successDiv" class="message success" style="display:none;"></div>
<a id="newCreationLink" style="display:none;" href="createGame.php">Créer une autre partie</a>
<div id="center">
<label for="centralWord"> Le mot central : </label>
<input type="text" id="centralWord" name="centralWord" />
<span class="status"></span>
</div>
<div id="relations">
<label for="relation1">Relation 1</label>
<select name="relation1" id="relation1">
</select>
<label for="relation2">Relation 2</label>
<select name="relation2" id="relation2">
</select>
</div>
<div id="wordLines">
<div id="templates" style="display:none">
<table>
<thead> </thead>
<tbody>
<tr class="wordLine">
<td>
<label for="word-"></label>
</td>
<td>
<input value="" class="word" type="text" id="word-"/>
</td>
<td>
<span class="status"></span>
</td>
<td>
<input type="checkbox" id="r1-"/><label class="r1 relationLabel" for="r1-">Blabla</label>
</td>
<td>
<input type="checkbox" id="r2-"/><label class="r2 relationLabel" for="r2-">Blabla</label>
</td>
<td>
<input type="checkbox" id="r3-"/><label class="r3 relationLabel" for="r3-">Blabla</label>
</td>
<td>
<input type="checkbox" id="r4-"/><label class="r4 relationLabel" for="r4-">Blabla</label>
</td>
</tr>
</tbody>
</table>
</div>
<table class="wordLinesTable">
<tr><td></td></tr>
</table>
</div>
<table class="wordLinesTable">
<tr><td></td></tr>
</table>
</div>
<div id="button"></div>
</form>
<div id="button"></div>
</form>
<?php }
else {
echo '<span class="message warning">Vous ne disposez pas assez de points pour pouvoir créer des partes.</span>';
}?>
<?php include("ressources/footer.inc"); ?>
</body>
</html>

View File

@ -127,11 +127,11 @@
</div>
</div>
<div id="score" class="screen">
<h1 class="fitFont" style="width:100%; height:8%; top: 6%; position:absolute; margin:0; text-align:center;">Score total : <span class="scoreTotal"></span></h1>
<div class="scores fitFont" style="width:100%; height:50%; top:20%; position:absolute;"></div>
<p class="fitFont" style="text-align: center; width:90%; height:12%; top:74%; left:5%; position:absolute; margin:0; padding:0;">
<a id="jaime" class="button" href="#frontpage" style="width40%; right:55%; position:absolute;">J'♥ cette partie</a>
<a id="jaimepas" class="button" href="#frontpage" style="width40%; left:55%; position:absolute;">J'♥ pas cette partie</a>
<h1 class="fitFont" style="width:100%; height:10%; top: 4%; position:absolute; margin:0; text-align:center;">Score total : <span class="scoreTotal"></span></h1>
<div class="scores fitFont" style="width:100%; height:50%; top:18%; position:absolute;"></div>
<p class="fitFont" style="text-align: center; width:90%; height:12%; top:72%; left:5%; position:absolute; margin:0; padding:0;">
<a id="jaime" class="button" href="#frontpage" style="width30%; right:65%; position:absolute;">J'♥ cette partie</a>
<a id="jaimepas" class="button" href="#frontpage" style="width30%; left:65%; position:absolute;">J'♥ pas cette partie</a>
</p>
<p class="fitFont" style="clear:both; text-align: center; width:90%; height:12%; top:86%; left:5%; position:absolute; margin:0; padding:0;">
<a class="button" href="#frontpage">J'ai vu !</a>

View File

@ -34,6 +34,7 @@ require_once("ressources/db.inc");
* getJAimePgid($user, $pgid);
* setJAimePgid($user, $pgid, $value);
* addGameCreationBonus($user, $nb);
* function deleteOneGameCreation($user);
* getNbGameCreationRemained($user);
*/
@ -300,6 +301,7 @@ function decodeAndInsertGame($user,$game) {
echo JSON_encode(false);
} else {
insertCreatedGame($centerEid,$cloud,$r1,$r2,10,$user);
deleteOneGameCreation($user);
echo JSON_encode(true);
}
}
@ -752,15 +754,20 @@ function setJAimePgid($user, $pgid, $value) {
function addGameCreationBonus($user, $nb) {
if($nb > 0) {
getDB()->exec('UPDATE user SET cgCount = cgCount + '.$ng.' WHERE user='.$user);
getDB()->exec('UPDATE user SET cgCount = cgCount + '.$ng.' WHERE login=\''.$user.'\'');
return true;
}
return false;
}
function getNbGameCreationRemained() {
return getDB()->querySingle('SELECT cgCount FROM user WHERE user='.$user);
function deleteOneGameCreation($user) {
if(getNbGameCreationRemained($user) > 0)
getDB()->exec('UPDATE user SET cgCount=cgCount-1 WHERE login=\''.$user.'\'');
}
function getNbGameCreationRemained($user) {
return getDB()->querySingle('SELECT cgCount FROM user WHERE login=\''.$user.'\'');
}
?>

View File

@ -79,7 +79,7 @@ if(isset($_POST['signuppswd2'])){
if(count($msg) == 0 && $newpage == false)
{
$ok = ($db->query("INSERT INTO user(mail, login, hash_passwd, score, ugroup, sgCount) VALUES ('" . SQLite3::escapeString($signupemail)
$ok = ($db->query("INSERT INTO user(mail, login, hash_passwd, score, ugroup, cgCount) VALUES ('" . SQLite3::escapeString($signupemail)
. "', '" . SQLite3::escapeString($signupid)
. "', '" . SQLite3::escapeString(md5($signuppswd1))
. "', 0, 1, 0);"));

View File

@ -15,14 +15,14 @@
\title{FMIN200 \\ TER~: Reconception du jeu PtiClic sous \android{}}
\author{DUPÉRON Georges \and\\ CHARRON John \and\\ BRUN Bertrand \and\\ BONAVERO Yoann}
\institute{Université Montpellier II, Département informatique}
\institute{Université Montpellier II, Département informatique \\ Master 1 IFPRU \\ Sous la direction de Monsieur Mathieu LAFOURCADE}
\date{Jeudi, 26 mai 2011}
\defbeamertemplate*{footline}{shadow theme}
{%
\leavevmode%
\hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm plus1fil,rightskip=.3cm]{author in head/foot}%
\usebeamerfont{author in head/foot}\insertframenumber\,/\,\inserttotalframenumber\hfill\url{http://pticlic.fr/}
\usebeamerfont{author in head/foot}\insertframenumber\,/\,\inserttotalframenumber\hfill\url{http://www.pticlic.fr/}
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}%
\usebeamerfont{title in head/foot}\insertshorttitle%
@ -171,39 +171,10 @@ Types de noeuds
\begin{itemize}
\item bruits = relations plus fortes que la réalité
\item silence = relations non existantes ou trop faible par rapport à la réalité
\item bruits + silences = couverture de relations sémantiques hétérogènes
\item bruits et/ou silences = couverture de relations sémantiques hétérogènes
\end{itemize}
\end{frame}
\begin{frame}
\begin{figure}
\begin{center}
\includegraphics[width=0.75\textwidth]{img/jdm.jpeg}
\end{center}
\end{figure}
\end{frame}
\begin{frame}
\begin{center}
\begin{tabular}{ | l | l | l | l | p{5cm} |}
\hline
\footnotesize{Relation} & \footnotesize{Mot central} & \footnotesize{Mots nuage} & \footnotesize{Remarques} \\ \hline
\footnotesize{-1 'mn' n'est pas lié à 'mc'} & \footnotesize{\shortstack{adj adv n v}} & \footnotesize{\shortstack{adj adv n v}} & \footnotesize{} \\ \hline
\footnotesize{0 'mc' est en rapport avec 'mn'} & \footnotesize{\shortstack{adj adv n v}} & \footnotesize{\shortstack{adj adv n v}} & \footnotesize{} \\ \hline
\footnotesize{5 'mc' est un synonyme de 'mn'} & \footnotesize{\shortstack{adj adv n v}} & \footnotesize{\shortstack{adj adv n v}} & \footnotesize{\shortstack{même POS}} \\ \hline
\footnotesize{6 'mc' est une sorte de 'mn'} & \footnotesize{n} & \footnotesize{n} & \footnotesize{} \\ \hline
\footnotesize{7 Un contraire de 'mc' est 'mn'} & \footnotesize{\shortstack{adj adv n v}} & \footnotesize{\shortstack{adj adv n v}} & \footnotesize{\shortstack{même POS}} \\ \hline
\footnotesize{8 Un spécifique de 'mc' est 'mn'} & \footnotesize{n} & \footnotesize{n} & \footnotesize{} \\ \hline
\footnotesize{9 'mn' est une partie de 'mc'} & \footnotesize{n} & \footnotesize{n} & \footnotesize{} \\ \hline
\footnotesize{10 'mc' fait partie de 'mn'} & \footnotesize{n} & \footnotesize{n} & \footnotesize{} \\ \hline
\footnotesize{13 'mn' pourrait 'mc'} & \footnotesize{v} & \footnotesize{n} & \footnotesize{} \\ \hline
\footnotesize{15 Le lieu pour 'mc' est 'mn'} & \footnotesize{n v} & \footnotesize{\shortstack{n}} & \footnotesize{} \\ \hline
\footnotesize{16 Instrument pour 'mc' est 'mn'} & \footnotesize{v} & \footnotesize{n} & \footnotesize{} \\ \hline
\footnotesize{17 'mn' Caractéristique de 'mc'} & \footnotesize{n} & \footnotesize{adj} & \footnotesize{} \\ \hline
\end{tabular}
\end{center}
\end{frame}
\begin{frame}
\begin{figure}
\pgfdeclarelayer{background}
@ -214,11 +185,11 @@ Types de noeuds
earlymidway/.style = {pos=0.4},
latemidway/.style = {pos=0.6}
]
\node (n0) {musique};
\node[above left = 2cm of n0] (n1) {trompette};
\node[above right = 2cm of n0] (n2) {instrument};
\node[below left = 2cm of n0] (n3) {champignon};
\node[below right = 2cm of n0] (n4) {instrument de musique};
\node (n0) {mot4};
\node[above left = 2cm of n0] (n1) {mot1};
\node[above right = 2cm of n0] (n2) {mot3};
\node[below left = 2cm of n0] (n3) {mot2};
\node[below right = 2cm of n0] (n4) {mot5};
\foreach \direction/\nfrom/\nto/\angle/\pos/\anchor/\text in {
->/n0/n2/15/near end/east/idée associée 450,
@ -246,12 +217,32 @@ Types de noeuds
\end{frame}
\begin{frame}
Pas de conflit de relations et la bonne catégorie grammaticale~: conditions nécessaires mais pas suffisantes
\begin{center}
\begin{tabular}{ | l | l | l | l | p{5cm} |}
\hline
\footnotesize{Relation} & \footnotesize{Mot central} & \footnotesize{Mots nuage} & \footnotesize{Remarques} \\ \hline
\footnotesize{-1 'mn' n'est pas lié à 'mc'} & \footnotesize{\shortstack{adj adv n v}} & \footnotesize{\shortstack{adj adv n v}} & \footnotesize{} \\ \hline
\footnotesize{0 'mc' est en rapport avec 'mn'} & \footnotesize{\shortstack{adj adv n v}} & \footnotesize{\shortstack{adj adv n v}} & \footnotesize{} \\ \hline
\footnotesize{5 'mc' est un synonyme de 'mn'} & \footnotesize{\shortstack{adj adv n v}} & \footnotesize{\shortstack{adj adv n v}} & \footnotesize{\shortstack{même POS}} \\ \hline
\footnotesize{6 'mc' est une sorte de 'mn'} & \footnotesize{n} & \footnotesize{n} & \footnotesize{} \\ \hline
\footnotesize{7 Un contraire de 'mc' est 'mn'} & \footnotesize{\shortstack{adj adv n v}} & \footnotesize{\shortstack{adj adv n v}} & \footnotesize{\shortstack{même POS}} \\ \hline
\footnotesize{8 Un spécifique de 'mc' est 'mn'} & \footnotesize{n} & \footnotesize{n} & \footnotesize{} \\ \hline
\footnotesize{9 'mn' est une partie de 'mc'} & \footnotesize{n} & \footnotesize{n} & \footnotesize{} \\ \hline
\footnotesize{10 'mc' fait partie de 'mn'} & \footnotesize{n} & \footnotesize{n} & \footnotesize{} \\ \hline
\footnotesize{13 'mn' pourrait 'mc'} & \footnotesize{v} & \footnotesize{n} & \footnotesize{} \\ \hline
\footnotesize{15 Le lieu pour 'mc' est 'mn'} & \footnotesize{n v} & \footnotesize{\shortstack{n}} & \footnotesize{} \\ \hline
\footnotesize{16 Instrument pour 'mc' est 'mn'} & \footnotesize{v} & \footnotesize{n} & \footnotesize{} \\ \hline
\footnotesize{17 Un caractéristique de 'mc' est 'mn'} & \footnotesize{n} & \footnotesize{adj} & \footnotesize{} \\ \hline
\end{tabular}
\end{center}
\end{frame}
\begin{frame}
Pas de conflit de relations + bonne catégorie grammaticale = conditions nécessaires mais pas suffisantes
\begin{itemize}
\item 'mn' est une partie de 'mc'~: les mots doivent être des noms, mais doivent aussi être des choses physiques. Le mot "honnêteté' ne marchera pas
\item 'mn' pourrait 'mc' (Qui/Quoi pourrait 'mc')~: les mots doivent être des noms et un verbe respectivement, mais un verbe d'état ne conviendrait pas
\item le lieu de 'mc' est 'mn'~: les mots doivent être un nom ou verbe puis un nom, mais le nom doit pouvoir signifier un lieu, un endroit
Il existe un dispositif dans la base de données prévu pour nous donner des informations métalinguistiques afin de faire ses distinctions, mais souvent la base n'est pas suffisemment alimentées pour pouvoir exploiter ces attributs sémantiques.
\item 'mn' est une partie de 'mc'~ : noms, mais objets physiques aussi.
\item 'mn' pourrait 'mc' (Qui/Quoi pourrait 'mc')~: noms et verbe respectivement, mais verbe d'état ne fonctionne pas
\item le lieu de 'mc' est 'mn'~: nom ou verbe puis nom, etc.
\end{itemize}
\end{frame}
@ -260,40 +251,87 @@ Il existe un dispositif dans la base de données prévu pour nous donner des inf
Algorithme de base pour introduire des mots sans aucune relation sémantique
\begin{enumerate}
\item On génère le nuage à l'aide d'une méthode ou algorithme auxiliaire (LSA ou autre) à partir d'un mot central choisi au hasard
\item On choisit la seule relation sémantique "idée associée" afin de valider les mots générés par l'étape précédente (ainsi on établit des relations sortantes "idée associée" à partir d'un mot)
\item Algorithme suivant sera utilisé pour affiner les informations concernant le mot central en question
\item On choisit la seule relation sémantique "idée associée" afin de valider les mots générés par l'étape précédente
\item Algorithme suivant est utilisé pour affiner les informations concernant le mot central en question
\end{enumerate}
\end{frame}
\begin{frame}
LSA ou autres méthodes d'établir des liens sémantiques
\begin{figure}
\begin{minipage}{\textwidth}
\centering
\includegraphics[width=0.75\textwidth]{img/lsa.jpeg}
\end{minipage}
\end{figure}
\begin{figure}
\pgfdeclarelayer{background}
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}
\begin{tikzpicture}[
txt/.style = {fill=white,font=\footnotesize,scale=0.75, inner sep=1pt},
earlymidway/.style = {pos=0.4},
latemidway/.style = {pos=0.6}
]
\node (n0) {mot4};
\node[above left = 2cm of n0] (n1) {mot1};
\node[above right = 2cm of n0] (n2) {mot3};
\node[below left = 2cm of n0] (n3) {mot2};
\node[below right = 2cm of n0] (n4) {mot5};
\foreach \direction/\nfrom/\nto/\angle/\pos/\anchor/\text in {
-/n0/n1/15/near end/east/0.28,
%
-/n0/n2/-20/midway/center/0.48,
%
-/n0/n3/-15/near end/east/0.12,
%
-/n0/n4/-15/very near end/east/0.4,
%
-/n1/n2/-20/midway/center/0.94,
%
-/n1/n3/-15/near end/east/0.75,
%
-/n1/n4/-15/very near end/east/0.42,
%
-/n2/n3/-15/near end/east/0.04,
%
-/n2/n4/-15/very near end/east/0.39,
%
-/n3/n4/-20/midway/center/0.88
}{
\draw[\direction] (\nfrom) to[bend left=\angle] (\nto);
\begin{pgfonlayer}{foreground}
\path[\direction] (\nfrom) to[bend left=\angle] node[\pos, anchor=\anchor, txt] {\text} (\nto);
\end{pgfonlayer}
}
\end{tikzpicture}
\end{figure}
\end{frame}
\begin{frame}
Algorithme pour affiner des relations de types "idée associée"
\begin{enumerate}
\item On génère le nuage à partir de la relation sémantique le plus général, quasiment toutes les autres relations sémantiques étant un sous-ensemble de cette relation
\item On génère le nuage à partir de la relation sémantique le plus général, "idée associée"
\item On choisit des relations sémantiques plus spécifiques sans conflits (tableau "relations" précédent)
\end{enumerate}
\end{frame}
\begin{frame}
Algorithme pour renforcer ajouter et renforcer des relations sémantiques spécifiques, quelques exemples
Algorithmes de renforcement de relations
\begin{itemize}
\item Pour la relation de synonymie, on génère des mots nuage "synonyme de synonyme" ou bien "antonyme d'antonyme" du mot central
\item Pour la relation d'antonymie, on génère des mots nuage "antonyme de synonyme" ou bien "synonyme d'antonyme" du mot central
\item Pour la relation "spécifique de" on bascule une fois entre "est une sorte de" et "est un spécifique du" mot central une fois (et inversement dans le cas inverse, on peut aussi appliquer le même principe aux relations contenu/contenant, etc.
\item Synonymie~: synonyme de synonyme" ou "antonyme d'antonyme" du mot central
\item Antonymie~: "antonyme de synonyme" ou "synonyme d'antonyme" du mot central
\item Spécifique~: "spécifique d'un générique d'un spécifique" du mot central
\item etc.
\end{itemize}
Inconvénient~: on n'introduit pas de nouvelles relations sémantiques spécifiques et le renforcement est possible à l'aide de l'algorithme du transparent précédent
\end{frame}
\begin{frame}
Expériences en TALN~: interactions homme-machine
\begin{itemize}
\item On apprend de la machine
\item La machine "apprend" de nous~: modifications d'algorithmes, de stratégies et d'approches par rapport aux résultats
\end{itemize}
\end{frame}
\section{Generation de partie}
\begin{frame}
@ -410,7 +448,7 @@ Inconvénient~: on n'introduit pas de nouvelles relations sémantiques spécifiq
\frametitle{Prototype 2}
\begin{block}{Schéma générale de l'enchainement des pages~:}
\centering
\texttt{\textcolor{gray}{http://pticlic.fr/jeu.html}\#\textcolor{red}{game}/\textcolor{blue}{1306104746953}/\textcolor{blue}{5,0,5,-1}}
\texttt{\textcolor{gray}{http://www.pticlic.fr/jeu.html}\#\textcolor{red}{game}/\textcolor{blue}{1306104746953}/\textcolor{blue}{5,0,5,-1}}
\vskip 1em%
\begin{tikzpicture}[
state/.style = {circle,draw,minimum size=1.5cm},