next up previous contents
Next: Agent d'arrêt Up: Description des agents Previous: Détecteur de champ

Détecteur de zone

  

Cet agent cherche à détecter une zone cohérente dont la plupart des éléments appartiennent au champ Pere. Il repère d'abord les noeuds qui sont susceptibles de devenir des descriptions de champ, puis délimite la zone et voit s'il peut la nettoyer, c'est-à-dire éliminer les noeuds inutiles ou étrangers, s'il ne sont pas suffisamment homogènes.

Comme l'agent DC, l'agent DZ cherche d'abord l'instance du champ contenant le champ à chercher la plus proche hiérarchiquement dans le Réseau de Concepts. Par exemple, si on cherche une zone correspondant au champ a, on cherchera d'abord parmi les descriptions du champ author s'il en existe une instance, et parmi celles du champ doc sinon.

Parmi les descriptions du champ contenant trouvé, l'agent sélectionne celles qui pourraient être intéressantes pour trouver le champ Pere. Ce sont celles qui, dans le Réseau de Concepts, se trouvent au dessous du noeud Pere, hiérarchiquement parlant (ou bien une instance déjà existante de ce noeud, éventuellement incomplète). Ces descriptions compatibles servent à délimiter la zone à fouiller.

S'il n'existe pas de telle description, l'agent s'inhibe pour un cycle.

Ensuite, il lui faut calculer un score de cohérence pour chacun des objets à l'intérieur de la zone délimitée. Pour éviter de supprimer des objets pertinents, il calcule aussi un score de cohérence pour les objets qui ne seraient pas a priori compatibles avec le champ qu'on cherche à découvrir.

L'agent détermine d'abord un score préliminaire pour chaque objet, selon l'algorithme 4. Pour chaque objet i compris dans la zone qu'il vient de délimiter, le score préliminaire de cohérence dépend du score des objets semblables (ici, qui sont subordonnés au même noeud du Réseau de Concepts), de la longueur de ces objets, et de la distance de ces objets à i. En effet, plus une zone est cohérente, plus ses objets ont tendance à être du même type, c'est-à-dire à être des sous-champs ou des séparateurs d'un même champ. Il faut tenir compte aussi de la satisfaction de ces objets, car un objet mal reconnu peut se glisser parmi d'autres, empêchant la reconnaissance d'une zone intéressante en permettant la reconnaissance d'une zone d'un mauvais type (un autre champ). On tient compte de la distance des autres objets : plus un objet est près de i, plus il compte (cela semble évident pour un score de cohérence  ).

 Algorithme: 4 Calcul du score préliminaire de cohérence d'un objet.

Pour chaque objet i dans la zone Faire
  ScoreGauche = 0
  Pour chaque objet j à gauche de i dans la zone Faire
    Si i et j sont subordonnés au même noeud du Réseau de Concepts Alors
      Distance = debut (i) - fin (j)
      ScoreGauche += satisfaction (j) x longueur (j) / Distance
    Fin Si
  Fin Pour
  ScoreDroit = 0
  Pour chaque objet j à droite de i dans la zone Faire
    Si i et j sont subordonnés au même noeud du Réseau de Concepts Alors
      Distance = debut (j) - fin (i)
      ScoreDroit += satisfaction (j) x longueur (j) / Distance
    Fin Si
  Fin Pour
  Si i est un séparateur Alors
    ScoreSep = 1
  Sinon
    ScoreSep = 0
  Fin Si
  Si i est isolé Alors
    Isolé = 1
  Sinon
    Isolé = 0
  Fin Si
  Si i est partiellement isolé (manque un séparateur) Alors
    PartIsolé = 1
  Sinon
    PartIsolé = 0
  Fin Si
  Score = ScoreGauche + ScoreDroit + longueur (i) x (1 + Isolé + PartIsolé + ScoreSep x (Isolé + 0,5))
  Si i est une instance de Pere Alors
    Score += ScoreGauche/2 + ScoreDroit/2
  Fin Si
Fin Pour

Ensuite, le score définitif est calculé à partir de ce score de cohérence préliminaire. Si l'objet placé à gauche de l'objet courant est du même type (subordonné du même champ), on ajoute le score préliminaire de cet objet à celui de i. S'il n'est pas du même type, on soustrait au contraire son score à celui de i. Ainsi, s'il y a beaucoup d'objets du même type, les uns à côté des autres, ils auront un score positif.

Puis, on élimine du blackboard les descriptions dont le score définitif est négatif (si elles ne sont pas subordonnées au champ cherché), et on compte le nombre de candidats du type voulu restant, ainsi que ceux qui n'appartiennent pas au champ voulu.

S'il ne reste que des candidats appartenant au champ Pere, on construit l'objet, on déplace toutes les descriptions candidates du champ contenant vers le champ construit, et on ajoute l'objet construit en tant que description du champ contenant.


  
Figure: Un exemple de détection de zone.
Position Contenu noeud père Score
166-170 «Actes» champ:bw 969
171-171 « » sep:month-year: -2467
172-189 «11eme Colloque GRE» champ:booktitle 1108
190-190 «T» champ:publisher -1895
191-191 «S» champ:bw 397

On enlève " " (sep:month-year: ,70)
On enlève "T" (champ:publisher,90)

CONSTRUCTION DU CHAMP "champ:booktitle"

On ajoute "Actes" au noeud "Actes 11eme Colloque GRETS" (champ:booktitle)
On remonte les descriptions de "11eme Colloque GRE" d'un cran
On enlève l'objet "T" (champ:pub)
On ajoute "S" au noeud "Actes 11eme Colloque GRETS" (champ:booktitle)

Ajout d'une dépendance "Actes 11eme Colloque GRETS" à
"<Times-Roman>B. Wrobel and O. Monga. Segmentation d'images naturelles :
cooperation entre un detection-contour et un detecteur-region. In
</Times-Roman><Times-Italic>Actes 11eme Colloque GRETSI</Times-Italic>
<Times-Roman>, Nice, June 1987.</Times-Roman>"
	   

Dans l'exemple de la figure 4.23, l'agent supprime deux champs qui n'ont effectivement pas lieu d'être dans la zone délimitée. C'est un séparateur mal placé (et donc mal reconnu, ou moins satisfait que les objets alentour) et un champ très mal reconnu qui ne contient qu'une seule lettre (longueur trop faible pour être significative pour un champ tel que le publisher). Il construit donc un champ booktitle allant du premier objet repéré qui appartient à booktitle : un « bw » (un mot du titre de la conférence), à un autre. On voit ici qu'il existait déjà un champ booktitle, sans doute créé par un autre agent DZ. Celui-ci est incorporé au nouveau champ, grâce à la « remontée » de ses descriptions. On supprime l'objet champ:pub:T qui était une description du champ publisher déjà supprimé.

On remarque que le champ construit n'est toujours pas complet (il lui manque une lettre). L'agent DS, ne se basant que sur des objets existants, ne pouvait pas « savoir » que GRETSI était meilleur que GRETS, à moins d'avoir un noeud dans le Réseau de Conceptsqui corresponde à GRETSI ayant une instance dans le Blackboard.


next up previous contents
Next: Agent d'arrêt Up: Description des agents Previous: Détecteur de champ
Francois Parmentier
6/19/1998