Déplacement partie Georges Algos nuage (jc)
This commit is contained in:
parent
74d36adc9e
commit
cce683e487
|
@ -1055,6 +1055,195 @@ chaque réponse. Elle renvoie la structure suivante~:
|
|||
|
||||
\end{itemize}
|
||||
|
||||
|
||||
\subsection{Algorithmes de création du nuage}
|
||||
|
||||
(voir aussi la partie 4)
|
||||
|
||||
Pour construire le nuage de mots à partir d'un mot central et de deux relations, nous avons étudié les algorithmes suivants.
|
||||
|
||||
\subsubsection{Mots à proximité}
|
||||
\begin{figure}[ht]
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[
|
||||
mynode/.style = {circle, minimum size=1.5cm},
|
||||
mc/.style = {mynode,draw=red,text=red},
|
||||
mn/.style = {mynode,draw},
|
||||
mi/.style = {mynode,draw=gray,text=gray},
|
||||
rel/.style = {font=\footnotesize},
|
||||
guess/.style = {->,dashed},
|
||||
exist/.style = {->},
|
||||
auto,swap
|
||||
]
|
||||
\node[mc] (mc) {Chat};
|
||||
\node[mn] (mn0) at (0,3) {Souris};
|
||||
\node[mi] (mi1) at (3,-2) {matou};
|
||||
\node[mn] (mn2) at (6,0) {animal};
|
||||
\node[mn] (mn3) at (-3,-2) {félin};
|
||||
\path[exist] (mc) edge[bend right] node[rel]{idée associée} (mn0);
|
||||
\path[exist] (mc) edge node[rel]{synonyme} (mi1);
|
||||
\path[exist] (mi1) edge node[rel]{sorte de} (mn2);
|
||||
\path[guess,swap] (mc) edge node[rel]{sorte de ?} (mn2);
|
||||
\path[guess,swap] (mc) edge[bend left] node[rel]{\shortstack{sorte de ?\\synonyme ?\\\dots}} (mn0);
|
||||
\path[exist] (mn3) edge[bend right] node[rel]{spécifique} (mc);
|
||||
\path[guess] (mc) edge[bend right] node[rel]{sorte de ?} (mn3);
|
||||
\end{tikzpicture}
|
||||
\caption{Algorithme de création d'un nuage de mot par sélection des mots proches du mot central.}
|
||||
\label{fig:algo-proximite}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
Cet algorithme (Fig. \ref{fig:algo-proximite}) sélectionne des mots proches du mot central en empruntant~:
|
||||
\begin{itemize}
|
||||
\item La relation «Idée Associée», pour la spécialiser;
|
||||
\item Des relations qui «entrent» dans le mot central;
|
||||
\item Un enchaînement de deux relations. Dans ce dernier cas, le fait qu'une des deux relations soit «Sysnonyme» est privilégié.
|
||||
\end{itemize}
|
||||
|
||||
Cet algorithme a donné de bons résultats après que nous ayons filtré les mots centraux pour ne prendre en compte que ceux dont le nombre de
|
||||
relations sortantes dépassaient un certain seuil, de manière à s'assurer qu'ils auraient suffisemment de liens pour pouvoir construire un
|
||||
nuage intéressant. De plus, nous avons pondéré la fréquence à laquelle les différentes méthodes (arc avant, arc arrière, enchaînement de
|
||||
deux arcs) étaient utilisées, de manière à avoir plus de mots du nuage pertinants.
|
||||
|
||||
L'avantage de cet algorithme est d'avoir une assez grande couverture du voisinage du mot central et la possibilité de raffiner les
|
||||
relations («Idée Associée» vers une autre relation par exemple). Un inconvénient est que les relations proposées ne sont pas toujours
|
||||
pertinantes (relation «sorte de» pour des verbes par exemple). De plus, l'algorithme pourra proposer en déduction de l'enchaînement de deux
|
||||
relation une relation quelconque, qui ne sera pas forcément logique par rapport aux deux autres.
|
||||
|
||||
Pour résoudre ce dernier défaut, nous avons élaboré un autre algorithme.
|
||||
|
||||
\subsubsection{Algorithme des «triangles»}
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[
|
||||
mynode/.style = {circle, minimum size=1.5cm},
|
||||
mc/.style = {mynode,draw=red,text=red},
|
||||
mn/.style = {mynode,draw},
|
||||
mi/.style = {mynode,draw=gray,text=gray},
|
||||
rel/.style = {font=\footnotesize},
|
||||
guess/.style = {->,dashed},
|
||||
exist/.style = {->},
|
||||
auto
|
||||
]
|
||||
\node[mc] (mc) {Mot central};
|
||||
\node[mi, above right=of mc] (mi) {Intermédiaire};
|
||||
\node[mn, below right=of mi] (mn) {Mot nuage};
|
||||
|
||||
\path[draw,->] (mc) edge node {Relation 1} (mi);
|
||||
\path[draw,->] (mi) edge node {Relation 2} (mn);
|
||||
\path[draw,->] (mc) edge node[swap] {Relation déduite} (mn);
|
||||
\end{tikzpicture}
|
||||
\end{center}
|
||||
\caption{Une relation déductible grâce aux deux autres}
|
||||
\label{fig:algo-triangles}
|
||||
\end{figure}
|
||||
|
||||
Cet algorithme (Fig. \ref{fig:algo-triangles}) compte le nombre de «triangles» (cliques composées de trois noeuds) que l'on peut trouver
|
||||
dans les relations existantes, pour un triplet de relations donné, et le divise par le nombre d'occurences des deux côtés du triangle (du
|
||||
mot central au mot intermédiaire, et du mot intermédiaire au mot nuage), sans prendre en compte le troisième côté. Cela permet d'associer à
|
||||
chaque triplet de relations la probabilité qu'on puisse déduire la troisième à partir des deux autres.
|
||||
|
||||
La génération du nuage se déroule alors de la manière suivante~: On sélectionne tous les mots que l'on peut atteindre par l'enchaînement de
|
||||
deux relations, et on les inclue dans le nuage en fonction de la probabilité qu'on puisse déduire une des deux relations de la partie en
|
||||
utilisant les deux relations empruntées.
|
||||
|
||||
Cette technique est équivalente à l'utilisation d'un réseau de neurones (Fig. \ref{fig:reseau-neurones}) pour classifier les mots du nuage
|
||||
parmi les différentes relations disponibles.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[
|
||||
node/.style={draw,ellipse,font=\footnotesize, minimum width=3cm, minimum height=0.7cm},
|
||||
hidden/.style={minimum width=4cm}
|
||||
]
|
||||
\node[node,anchor=east] (R1) at (-3.5,1.2) {Type relation 1};
|
||||
\node[node,anchor=east] (R2) at (-3.5,-1.2) {Type relation 2};
|
||||
\node[node, hidden] (H1) at (0,2.4) {$R1 = 5 \wedge R2 = 5$};
|
||||
\node[node, hidden] (H2) at (0,1.2) {$R1 = 5 \wedge R2 = 7$};
|
||||
\node[node, hidden] (H3) at (0,0) {…};
|
||||
\node[node, hidden] (H4) at (0,-1.2) {$R1 = 22 \wedge R2 = 13$};
|
||||
\node[node, hidden] (H5) at (0,-2.4) {$R1 = 22 \wedge R2 = 22$};
|
||||
\node[node,anchor=west] (R31) at (3.5,1.2) {Synonyme};
|
||||
\node[node,anchor=west] (R32) at (3.5,0) {Contraire};
|
||||
\node[node,anchor=west] (R33) at (3.5,-1.2) {…};
|
||||
|
||||
\foreach \hidden in {H1,H2,H3,H4,H5}{
|
||||
\draw (R1.east) -- (\hidden.west);
|
||||
\draw (R2.east) -- (\hidden.west);
|
||||
}
|
||||
\foreach \hidden in {H3,H4,H5}{
|
||||
\draw (\hidden.east) -- (R31.west);
|
||||
\draw (\hidden.east) -- (R32.west);
|
||||
\draw (\hidden.east) -- (R33.west);
|
||||
}
|
||||
\draw[draw=green!50!black] (H1.east) edge node[near start,text=green!50!black] {1} (R31.west);
|
||||
\draw[draw=red] (H2.east) edge node[near start,text=red] {0} (R31.west);
|
||||
\draw[draw=red] (H1.east) edge node[near start,text=red] {0} (R32.west);
|
||||
\draw[draw=green!50!black] (H2.east) edge node[near start,text=green!50!black] {1} (R32.west);
|
||||
\draw (H1.east) -- (R33.west);
|
||||
\draw (H2.east) -- (R33.west);
|
||||
\end{tikzpicture}
|
||||
\caption{Réseau de neurones pour la classification des mots du nuage parmi les relations disponibles, en fonction des arcs qui les
|
||||
ratachent au mot central.}
|
||||
\label{fig:reseau-neurones}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
Les probabilités recueillies par l'algorithme décrit ci-dessus correspondent à la valeur de sortie des neurones de la couche interne, et les
|
||||
types des relations sur les deux premiers arcs correspondent à la fonction d'activation de ces mêmes neurones. Pour chaque type du troisième
|
||||
arc, on a une catégorie en sortie du réseau de neurones.
|
||||
|
||||
Par exemple, sur la figure \ref{fig:reseau-neurones}, sachant que la relation 5 est «Synonyme» et la relation 7 «Contraire», le premier
|
||||
neurone de la couche interne s'active si les deux relations qui relient le mot central au mot du nuage sont toutes deux «Synonyme». Sa
|
||||
valeur de sortie pour la catégorie «Synonyme» est alors proche de 1 (le synonyme d'un synonyme est souvent un synonyme), tandis que sa
|
||||
valeur pour la catégorie «Contraire» est proche de 0 (le contraire d'un synonyme est un contraire, pas un synonyme).
|
||||
|
||||
Cet algorithme a donné d'excellents résultats pour les relations qui pouvaient se déduire avec de fortes probabilités, cependant bon nombre
|
||||
de relations ne s'appliquent à des mots n'appartenant qu'à une partie du discours donnée (nom, adjectif, verbe…), et la probabilité de les
|
||||
voir apparaître en déduction de deux autres était très faible.
|
||||
|
||||
\subsubsection{Algorithme des «triangles» avec les parties du discours}
|
||||
|
||||
Nous avons donc élaboré une variante (Fig. \ref{fig:algo-triangles-pos}) de cet algorithme qui prenait en compte les parties du discours
|
||||
(Part Of Speach) auxquelles appartenaient les noeuds.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[
|
||||
mynode/.style = {circle, minimum size=1.5cm},
|
||||
mc/.style = {mynode,draw=red,text=red},
|
||||
mn/.style = {mynode,draw},
|
||||
mi/.style = {mynode,draw=gray,text=gray},
|
||||
rel/.style = {font=\footnotesize},
|
||||
guess/.style = {->,dashed},
|
||||
exist/.style = {->},
|
||||
auto
|
||||
]
|
||||
\node[mc] (mc) {\shortstack{Mot central\\POS 1}};
|
||||
\node[mi, above right=of mc] (mi) {\shortstack{Intermédiaire\\POS 2}};
|
||||
\node[mn, below right=of mi] (mn) {\shortstack{Mot nuage\\POS 3}};
|
||||
|
||||
\path[draw,->] (mc) edge node {Relation 1} (mi);
|
||||
\path[draw,->] (mi) edge node {Relation 2} (mn);
|
||||
\path[draw,->] (mc) edge node[swap] {Relation déduite} (mn);
|
||||
\end{tikzpicture}
|
||||
\end{center}
|
||||
\caption{Une relation déductible grâce aux deux autres}
|
||||
\label{fig:algo-triangles-pos}
|
||||
\end{figure}
|
||||
|
||||
Le probleme qui s'est alors posé, est que'avec environ 12 parties du discours différentes, et 16 relations différentes, le nombre de
|
||||
6-uplets distincts dans l'ensemble $POS^3\times Rel^3$ s'élevait à plus de 7 millions. Cela signifie que nous avions plus de 7 millions de
|
||||
«types» de triangles à considérer, alors que seulement peu d'entre eux montraient une réelle possibilité de déduction. De plus, il n'y a
|
||||
dans la base de données qu'environ un million de relations existantes, nous nous trouverions donc dans une situation de surapprentissage.
|
||||
|
||||
Ce problème montre la nécessité d'étudier manuellement quelles parties du discours ont un intérêt pour quelles relations, afin de réduire
|
||||
l'espace des 6-uplets constitués des parties du discours des noeuds et des types de relations formant les arcs qui permettent la déduction
|
||||
du dernier arc.
|
||||
|
||||
|
||||
\subsection{Protection contre les attaques des joueurs}
|
||||
|
||||
Le serveur prévient quelques types d'attaques que des joueurs pourraient effectuer pour améliorer leur score. Entre autres, lorsqu'un joueur
|
||||
|
@ -1249,189 +1438,5 @@ php\/ressources/strings.inc -- fichier de configuration des strings (phrases uti
|
|||
\section{Mentions légales}
|
||||
Android is a trademark of Google Inc. Use of this subject to Google Permissions.
|
||||
|
||||
\section{Algo de création du nuage}
|
||||
|
||||
Pour construire le nuage de mots à partir d'un mot central et de deux relations, nous avons étudié les algorithmes suivants.
|
||||
|
||||
\subsection{Mots à proximité}
|
||||
\begin{figure}[ht]
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[
|
||||
mynode/.style = {circle, minimum size=1.5cm},
|
||||
mc/.style = {mynode,draw=red,text=red},
|
||||
mn/.style = {mynode,draw},
|
||||
mi/.style = {mynode,draw=gray,text=gray},
|
||||
rel/.style = {font=\footnotesize},
|
||||
guess/.style = {->,dashed},
|
||||
exist/.style = {->},
|
||||
auto,swap
|
||||
]
|
||||
\node[mc] (mc) {Chat};
|
||||
\node[mn] (mn0) at (0,3) {Souris};
|
||||
\node[mi] (mi1) at (3,-2) {matou};
|
||||
\node[mn] (mn2) at (6,0) {animal};
|
||||
\node[mn] (mn3) at (-3,-2) {félin};
|
||||
\path[exist] (mc) edge[bend right] node[rel]{idée associée} (mn0);
|
||||
\path[exist] (mc) edge node[rel]{synonyme} (mi1);
|
||||
\path[exist] (mi1) edge node[rel]{sorte de} (mn2);
|
||||
\path[guess,swap] (mc) edge node[rel]{sorte de ?} (mn2);
|
||||
\path[guess,swap] (mc) edge[bend left] node[rel]{\shortstack{sorte de ?\\synonyme ?\\\dots}} (mn0);
|
||||
\path[exist] (mn3) edge[bend right] node[rel]{spécifique} (mc);
|
||||
\path[guess] (mc) edge[bend right] node[rel]{sorte de ?} (mn3);
|
||||
\end{tikzpicture}
|
||||
\caption{Algorithme de création d'un nuage de mot par sélection des mots proches du mot central.}
|
||||
\label{fig:algo-proximite}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
Cet algorithme (Fig. \ref{fig:algo-proximite}) sélectionne des mots proches du mot central en empruntant~:
|
||||
\begin{itemize}
|
||||
\item La relation «Idée Associée», pour la spécialiser;
|
||||
\item Des relations qui «entrent» dans le mot central;
|
||||
\item Un enchaînement de deux relations. Dans ce dernier cas, le fait qu'une des deux relations soit «Sysnonyme» est privilégié.
|
||||
\end{itemize}
|
||||
|
||||
Cet algorithme a donné de bons résultats après que nous ayons filtré les mots centraux pour ne prendre en compte que ceux dont le nombre de
|
||||
relations sortantes dépassaient un certain seuil, de manière à s'assurer qu'ils auraient suffisemment de liens pour pouvoir construire un
|
||||
nuage intéressant. De plus, nous avons pondéré la fréquence à laquelle les différentes méthodes (arc avant, arc arrière, enchaînement de
|
||||
deux arcs) étaient utilisées, de manière à avoir plus de mots du nuage pertinants.
|
||||
|
||||
L'avantage de cet algorithme est d'avoir une assez grande couverture du voisinage du mot central, et la possibilité de raffiner les
|
||||
relations («Idée Associée» vers une autre relation par exemple). Un inconvénient est que les relations proposées ne sont pas toujours
|
||||
pertinantes (relation «sorte de» pour des verbes par exemple). De plus, l'algorithme pourra proposer en déduction de l'enchaînement de deux
|
||||
relation une relation quelconque, qui ne sera pas forcément logique par rapport aux deux autres.
|
||||
|
||||
Pour résoudre ce dernier défaut, nous avons élaboré un autre algorithme.
|
||||
|
||||
\subsection{Algorithme des «triangles»}
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[
|
||||
mynode/.style = {circle, minimum size=1.5cm},
|
||||
mc/.style = {mynode,draw=red,text=red},
|
||||
mn/.style = {mynode,draw},
|
||||
mi/.style = {mynode,draw=gray,text=gray},
|
||||
rel/.style = {font=\footnotesize},
|
||||
guess/.style = {->,dashed},
|
||||
exist/.style = {->},
|
||||
auto
|
||||
]
|
||||
\node[mc] (mc) {Mot central};
|
||||
\node[mi, above right=of mc] (mi) {Intermédiaire};
|
||||
\node[mn, below right=of mi] (mn) {Mot nuage};
|
||||
|
||||
\path[draw,->] (mc) edge node {Relation 1} (mi);
|
||||
\path[draw,->] (mi) edge node {Relation 2} (mn);
|
||||
\path[draw,->] (mc) edge node[swap] {Relation déduite} (mn);
|
||||
\end{tikzpicture}
|
||||
\end{center}
|
||||
\caption{Une relation déductible grâce aux deux autres}
|
||||
\label{fig:algo-triangles}
|
||||
\end{figure}
|
||||
|
||||
Cet algorithme (Fig. \ref{fig:algo-triangles}) compte le nombre de «triangles» (cliques composées de trois noeuds) que l'on peut trouver
|
||||
dans les relations existantes, pour un triplet de relations donné, et le divise par le nombre d'occurences des deux côtés du triangle (du
|
||||
mot central au mot intermédiaire, et du mot intermédiaire au mot nuage), sans prendre en compte le troisième côté. Cela permet d'associer à
|
||||
chaque triplet de relations la probabilité qu'on puisse déduire la troisième à partir des deux autres.
|
||||
|
||||
La génération du nuage se déroule alors de la manière suivante~: On sélectionne tous les mots que l'on peut atteindre par l'enchaînement de
|
||||
deux relations, et on les inclue dans le nuage en fonction de la probabilité qu'on puisse déduire une des deux relations de la partie en
|
||||
utilisant les deux relations empruntées.
|
||||
|
||||
Cette technique est équivalente à l'utilisation d'un réseau de neurones (Fig. \ref{fig:reseau-neurones}) pour classifier les mots du nuage
|
||||
parmi les différentes relations disponibles.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[
|
||||
node/.style={draw,ellipse,font=\footnotesize, minimum width=3cm, minimum height=0.7cm},
|
||||
hidden/.style={minimum width=4cm}
|
||||
]
|
||||
\node[node,anchor=east] (R1) at (-3.5,1.2) {Type relation 1};
|
||||
\node[node,anchor=east] (R2) at (-3.5,-1.2) {Type relation 2};
|
||||
\node[node, hidden] (H1) at (0,2.4) {$R1 = 5 \wedge R2 = 5$};
|
||||
\node[node, hidden] (H2) at (0,1.2) {$R1 = 5 \wedge R2 = 7$};
|
||||
\node[node, hidden] (H3) at (0,0) {…};
|
||||
\node[node, hidden] (H4) at (0,-1.2) {$R1 = 22 \wedge R2 = 13$};
|
||||
\node[node, hidden] (H5) at (0,-2.4) {$R1 = 22 \wedge R2 = 22$};
|
||||
\node[node,anchor=west] (R31) at (3.5,1.2) {Synonyme};
|
||||
\node[node,anchor=west] (R32) at (3.5,0) {Contraire};
|
||||
\node[node,anchor=west] (R33) at (3.5,-1.2) {…};
|
||||
|
||||
\foreach \hidden in {H1,H2,H3,H4,H5}{
|
||||
\draw (R1.east) -- (\hidden.west);
|
||||
\draw (R2.east) -- (\hidden.west);
|
||||
}
|
||||
\foreach \hidden in {H3,H4,H5}{
|
||||
\draw (\hidden.east) -- (R31.west);
|
||||
\draw (\hidden.east) -- (R32.west);
|
||||
\draw (\hidden.east) -- (R33.west);
|
||||
}
|
||||
\draw[draw=green!50!black] (H1.east) edge node[near start,text=green!50!black] {1} (R31.west);
|
||||
\draw[draw=red] (H2.east) edge node[near start,text=red] {0} (R31.west);
|
||||
\draw[draw=red] (H1.east) edge node[near start,text=red] {0} (R32.west);
|
||||
\draw[draw=green!50!black] (H2.east) edge node[near start,text=green!50!black] {1} (R32.west);
|
||||
\draw (H1.east) -- (R33.west);
|
||||
\draw (H2.east) -- (R33.west);
|
||||
\end{tikzpicture}
|
||||
\caption{Réseau de neurones pour la classification des mots du nuage parmi les relations disponibles, en fonction des arcs qui les
|
||||
ratachent au mot central.}
|
||||
\label{fig:reseau-neurones}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
Les probabilités recueillies par l'algorithme décrit ci-dessus correspondent à la valeur de sortie des neurones de la couche interne, et les
|
||||
types des relations sur les deux premiers arcs correspondent à la fonction d'activation de ces mêmes neurones. Pour chaque type du troisième
|
||||
arc, on a une catégorie en sortie du réseau de neurones.
|
||||
|
||||
Par exemple, sur la figure \ref{fig:reseau-neurones}, sachant que la relation 5 est «Synonyme» et la relation 7 «Contraire», le premier
|
||||
neurone de la couche interne s'active si les deux relations qui relient le mot central au mot du nuage sont toutes deux «Synonyme». Sa
|
||||
valeur de sortie pour la catégorie «Synonyme» est alors proche de 1 (le synonyme d'un synonyme est souvent un synonyme), tandis que sa
|
||||
valeur pour la catégorie «Contraire» est proche de 0 (le contraire d'un synonyme est un contraire, pas un synonyme).
|
||||
|
||||
Cet algorithme a donné d'excellents résultats pour les relations qui pouvaient se déduire avec de fortes probabilités, cependant bon nombre
|
||||
de relations ne s'appliquent à des mots n'appartenant qu'à une partie du discours donnée (nom, adjectif, verbe…), et la probabilité de les
|
||||
voir apparaître en déduction de deux autres était très faible.
|
||||
|
||||
\subsection{Algorithme des «triangles» avec les parties du discours}
|
||||
|
||||
Nous avons donc élaboré une variante (Fig. \ref{fig:algo-triangles-pos}) de cet algorithme qui prenait en compte les parties du discours
|
||||
(Part Of Speach) auxquelles appartenaient les noeuds.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[
|
||||
mynode/.style = {circle, minimum size=1.5cm},
|
||||
mc/.style = {mynode,draw=red,text=red},
|
||||
mn/.style = {mynode,draw},
|
||||
mi/.style = {mynode,draw=gray,text=gray},
|
||||
rel/.style = {font=\footnotesize},
|
||||
guess/.style = {->,dashed},
|
||||
exist/.style = {->},
|
||||
auto
|
||||
]
|
||||
\node[mc] (mc) {\shortstack{Mot central\\POS 1}};
|
||||
\node[mi, above right=of mc] (mi) {\shortstack{Intermédiaire\\POS 2}};
|
||||
\node[mn, below right=of mi] (mn) {\shortstack{Mot nuage\\POS 3}};
|
||||
|
||||
\path[draw,->] (mc) edge node {Relation 1} (mi);
|
||||
\path[draw,->] (mi) edge node {Relation 2} (mn);
|
||||
\path[draw,->] (mc) edge node[swap] {Relation déduite} (mn);
|
||||
\end{tikzpicture}
|
||||
\end{center}
|
||||
\caption{Une relation déductible grâce aux deux autres}
|
||||
\label{fig:algo-triangles-pos}
|
||||
\end{figure}
|
||||
|
||||
Le probleme qui s'est alors posé, est que'avec environ 12 parties du discours différentes, et 16 relations différentes, le nombre de
|
||||
6-uplets distincts dans l'ensemble $POS^3\times Rel^3$ s'élevait à plus de 7 millions. Cela signifie que nous avions plus de 7 millions de
|
||||
«types» de triangles à considérer, alors que seulement peu d'entre eux montraient une réelle possibilité de déduction. De plus, il n'y a
|
||||
dans la base de données qu'environ un million de relations existantes, nous nous trouverions donc dans une situation de surapprentissage.
|
||||
|
||||
Ce problème montre la nécessité d'étudier manuellement quelles parties du discours ont un intérêt pour quelles relations, afin de réduire
|
||||
l'espace des 6-uplets constitués des parties du discours des noeuds et des types de relations formant les arcs qui permettent la déduction
|
||||
du dernier arc.
|
||||
|
||||
\end{document}
|
||||
|
|
Loading…
Reference in New Issue
Block a user