next up previous contents
Next: Construction de la partie Up: Construction du Réseau de Previous: Influence et co-occurrence

Construction de la partie logique

  La partie logique du Réseau de Concepts est constituée d'une traduction de l'information qu'on peut tirer de la base : ce sont les parties générique (la hiérarchie des champs) et spécifique (les instances de ces champs trouvées dans la base).

 La base de référence servant à construire le modèle est une base au format BIBTEX, qui contient des références sur le domaine de la reconnaissance de l'écriture et de l'analyse de documents.

Elle contient 908 références qui ont été corrigées au fur et à mesure afin de mieux correspondre à des références « idéales », c'est-à-dire respectant au mieux ce format, et étant le plus cohérentes possibles. En effet, malgré l'habitude des utilisateurs de cette base, certaines références étaient mal écrites : mauvais type (article au lieu de inproceedings, techreport au lieu de phdthesis, etc.), mauvais choix des champs (number au lieu de volume, note au lieu d'autres champs plus spécifiques, contenu du champ address dans le champ publisher, etc.), mauvaise syntaxe dans les champs (auteurs séparés par une virgule au lieu de and , and al. au lieu de and others, etc.).

La base contient des références en anglais et en français. Le tableau 4.1 montre la répartition des types de référence dans la base. On y voit que les principaux types (75%) sont inproceedings (articles d'une conférence) et article (article d'une revue).


 
Table: Répartition des types de références dans la base.
Type Occurrence inproceedings
inproceedings 387 43%
article 288 32%
book 61 7%
techreport 51 6%
phdthesis 39 4%
misc 30 3%
inbook 23 3%
incollection 16 2%
manual 10 1%
proceedings 2 0%
booklet 1 0%
 


Un champ de deuxième niveau est un sous-champ ajouté lors de la conversion du format BIBTEX vers le format sgml. Les champs de deuxième niveau n'ont qu'une existence implicite en BIBTEX. Par exemple, le champ a est un sous-champ du champ author.

Chaque auteur étant séparé des autres par « _and_ », on peut séparer syntaxiquement chaque auteur des autres. De même pour le champ editor qui donne e, et publisher qui donne pub.

Le champ keywords contient des mots-clés séparés par des virgules. En sgml, ils sont mis dans le sous-champ k. Ce champ n'apparaît quasiment jamais dans la version physique de la référence (et jamais quand on emploie le style bibliographique plain ), mais il peut être utile de garder ses instances dans le Réseau de Concepts pour faire le lien entre divers termes, c'est une information à ne pas négliger pour activer plus vite le bon concept.

Le champ mot est un sous-champ de title : le programme de conversion de la dilib (BibTeX2Sgml) sépare les mots de ce champ, et des champs booktitle, journal, type, chapter, month, school.

Le tableau 4.2 montre le nombre de références contenant chaque champ, le nombre d'instances différentes de chaque champ (il s'agit là des feuilles de la hiérarchie), ainsi que l'appartenance ou non du champ au deuxième niveau.

Pour les champs de premier niveau on constate que le nombre d'instances est inférieur ou égal au nombre de références. C'est normal si l'on considère que si, par exemple, l'instance du champ address ``New York'' apparaît dans n références, cette instance ne sera comptée qu'une seule fois en tant qu'instance.


 
Table: Répartition des champs dans les 908 références.
Champ Nb références Nb d'instances 2e niveau
address 381 142
a 900 1150 x
bw 403 348 x
category 6 4
cmot 22 74 x
e 78 60 x
howpublished 31 31
institution 55 37
jw 287 135 x
key 6 6
k 555 405 x
mw 257 75 x
note 17 15
number 195 58
organization 22 16
pages 574 564
pub 154 120 x
ref 908 908
sw 40 63 x
series 2 2
mot 907 1917 x
tw 40 39 x
volume 308 82
year 906 44
 


La partie logique spécifique contient les instances des feuilles de la hiérarchie des champs (éliminer certaines instances, comme les mots vides, sous prétexte qu'elles n'apportent a priori aucune information exploitable, n'est pas un bon calcul), mais surtout des liens intra- et inter-champs. C'est-à-dire qu'il existe des liens entre les termes d'un même champ (les liens intra -champs), mais aussi entre des termes appartenant à des champs différents (liens inter -champs).

Ainsi, on retient les liens qu'un auteur (par exemple) a avec les autres auteurs, mais aussi ceux qu'il a avec les mots du titre (afin de chercher les mots qu'il emploie souvent), les noms des journaux ou des conférences dans lesquels il publie souvent, ...

Tous ces liens sont pondérés selon la formule de l'indice d'inclusion (Ii->j = Cij / Ci). 

Le réseau spécifique est a priori entièrement connecté, ce qui signifie que, pour un modèle contenant 6295 noeuds, le nombre de liens est de 2 x 62952, soit 79 millions, ce qui est énorme à gérer. Or, nombre de ces liens ont une pondération nulle (à savoir, tous les termes qui ne sont jamais apparu dans les mêmes références). Par exemple, les liens intra-champs du champ year sont tous nuls car ce champ est unique dans une référence. Tous les liens à pondération nulle sont éliminés du modèle.

Il reste cependant des liens si faibles que leur influence peut être négligée. Ceux-là aussi sont éliminés. Sachant que les paramètres de BASCET ont varié tout au long de la mise au point de l'application, ce seuil a été fixé expérimentalement. En pratique, sur 6000 termes, on garde ainsi uniquement 96000 liens.


  
Figure: Structure spécifique du Réseau de Concepts pour les références.
Structure spécifique du Réseau de Concepts pour les références.

Il faut savoir qu'un certain nombre de termes n'ont pas de signification sémantique particulière. On les appelle souvent les mots vides  . Ces termes ont des caractéristiques particulières : ils ont une grande occurrence et leurs influences sur les autres termes sont faibles.

Le tableau 4.3 montre les 10 mots du titre les plus occurrents de la base. À part Recognition et Document qui traduisent le contenu de cette base, ce sont des mots de liaison, principalement anglais, malgré la présence du mot de (la proportion anglais/français penche en faveur de l'anglais dans cette base). Ceux qui ont le moins de liens potentiels (avant filtrage par le seuil) pour leur occurrence sont des mots « pleins », ou non vides, alors que les autres ont énormément de liens. Le modèle intègre tout-de-même les mots vides, car même s'ils n'apportent pas de sens, ils peuvent apporter une aide pour discriminer les champs : si la chaîne of est trouvée, on peut être sûr qu'elle n'appartient pas au champ year.


 
Table 4.3: Les 10 mots du titre les plus occurrents, leurs liens potentiels, et le ratio nombre de liens potentiels / occurrence.
Mots Occurrence Nb de liens potentiels Nb liens / Occurrence
of 253 732 2,89
Recognition 218 489 2,24
for 170 572 3,36
de 164 540 3,29
and 155 590 3,80
A 130 399 3,06
in 91 397 4,36
Document 82 207 2,52
the 72 363 5,04
to 67 325 4,85
 


Afin de ne pas désactiver trop vite les termes qui apparaissent souvent dans la base (et donc, sur lesquels on peut se fonder pour obtenir de bons résultats), leur importance conceptuelle (IC) est plus haute que celle des termes apparaissant moins souvent.


  
Figure: Instance d'une feuille de la hiérarchie.
Instance d'une feuille de la hiérarchie.

Soit F la feuille de la hiérarchie qui est le père de I (son instance, voir figure 4.6), IC(F) son importance conceptuelle , Occ(I) le nombre d'occurrences dans la base de I, et MaxOcc (I) le nombre maximal d'occurrences dans la base des instances de F.

Cette formule permet à l'importance conceptuelle d'une instance de se situer entre l'importance conceptuelle de son noeud père et 100, les instances les plus courantes ayant la plus grande IC. Ainsi, les termes dont nous sommes les plus sûrs, c'est-à-dire ceux qui sont dans le Réseau de Concepts, connus du système, se désactiveront moins vite. Le champ dont ils sont issus recevra donc plus d'activation et se désactivera lui aussi moins vite que si son instance avait été découverte, mais sans être confirmée par la présence dans le Réseau de Concepts d'un terme connu pour lui appartenir.

Le taux de désactivation  de chaque noeud dépend du nombre de ses liens afférents, c'est-à-dire du nombre de liens qui lui arrivent, donc du nombre de noeuds qui l'influencent (voir page [*]).

En effet, plus un noeud reçoit d'influences, plus il risque d'être activé par un ou plusieurs des noeuds influençant déjà activés. Donc, il faudrait un taux de désactivation élevé pour les noeuds ayant beaucoup de liens afférents, et moins élevé pour ceux en ayant moins. Mais si l'on réglait le taux de désactivation de chaque noeud comme une fonction linéaire du nombre de noeuds afférents, il y aurait un problème : chaque noeud influençant n'est pas forcément activé, à un instant donné. Il y a même des noeuds qui sont très rarement activés et qui pourtant influenceraient grandement nombre de noeuds, s'ils étaient activés. Un noeud apparaissant rarement dans la base a de grandes chances d'avoir des liens efférents (qui partent de ce noeud) fortement pondérés vers tous les noeuds des termes étant apparus dans la même référence. Or, s'il n'est apparu qu'une fois dans la base, il n'a que peu de chances a priori d'être découvert dans une référence à reconnaître.

C'est pourquoi nous avons choisi d'employer une échelle logarithmique. Le tableau 4.4 nous apprend que le nombre de liens afférents des instances de champs varie entre 1 et 36, sachant que la moyenne est de 8,21 liens afférents par noeud (pour 5895 liens inter-instances). Ainsi, plus un lien a de noeuds afférents, plus son taux de désactivation est élevé. La figure 4.7 montre les taux de désactivation des noeuds en fonction de leur nombre de liens afférents LA, en suivant la formule suivante :

TD = 100 - 100 ln 3 / ln (3 + LA)


 
Table: Nombre de liens afférents des instances.
  a address bw category cmot e howpublished institution jw k key
Minimum 1 1 1 3 1 3 2 2 1 1 3
Maximum 23 23 27 13 24 25 11 17 36 36 10

  mot mw note number organization pages pub ref sw tw volume year
Minimum 1 1 4 1 1 1 1 1 3 1 1 1
Maximum 36 28 15 17 19 25 26 25 18 19 18 18
 



  
Figure: Taux de désactivation (y) en fonction du nombre de liens afférents (x).
Taux de désactivation (y) en fonction du nombre de liens afférents (x).


 La description des agents sera faite dans le paragraphe 4.2, mais il faut savoir quelles sortes d'agents existent, à quels noeuds les affecter et quelle valeur d'urgence   a priori leur affecter. La valeur d'urgence a priori sert de base pour l'obtention de la valeur d'urgence réelle de chaque agent envoyé dans le Réservoir d'Agents. Elle est multipliée par l'activation du noeud qui l'envoie. Voici les différents types d'agents :

- détecteur d'instance
qui cherche dans le Blackboard toutes les instances du noeud spécifique qui le lance ;
- détecteur de séparateur
qui cherche dans le Blackboard toutes les instances du noeud séparateur qui le lance ;
- détecteur de champ
qui cherche dans le Blackboard toutes les instances du noeud champ qui le lance, à partir des séparateurs de ce champ ;
- détecteur de zone
qui cherche dans le Blackboard toutes les instances du noeud champ qui le lance, à partir de ce que ce champ peut contenir ;
- arrêt
qui détermine aléatoirement et en se fondant sur la température courante, si le traitement doit s'arrêter ou non.

On distingue donc trois types de noeuds : les champs, les noeuds spécifiques, et les séparateurs. Voici les types d'agents et les valeurs d'urgence assignées pour chacun de ces types :

 
- champ
a trois types d'agents :
détecteur de zone :
valeur d'urgence moyenne = 50 ;
détecteur de champ :
valeur d'urgence = 55, afin d'être un peu plus « prioritaire » que le détecteur de zone, ainsi il est plus souvent exécuté avant, et le détecteur de zone, s'il est exécuté ensuite peut corriger d'éventuels oublis du détecteur de champ ;
arrêt :
valeur d'urgence de 5, pour qu'il ne soit choisi qu'à la fin d'une étape, et qu'on ne manque pas d'opportunités.
- noeud spécifique
n'a qu'un type d'agent :
détecteur d'instance :
50, valeur moyenne inférieure à celle du détecteur de champ, afin de laisser la priorité globale à la recherche générique de champs. Il ne sert à rien, en effet, de chercher des mots connus si c'est pour s'apercevoir qu'aucun terme, ou très peu, n'est présent dans le problème.
Les noeuds spécifiques sont les plus nombreux dans le Réseau de Concepts, c'est pourquoi s'ils avaient chacun un agent d'arrêt, ce type d'agent serait largement majoritaire dans le Réservoir d'Agents, et le comportement du programme s'en trouverait changé. Les agents d'arrêt auraient une probabilité plus importante d'exécution et le système s'arrêterait dès lors beaucoup plus tôt. Cette stratégie d'arrêt précoce n'étant pas souhaitée, les noeuds spécifiques n'ont pas d'agent d'arrêt.
- séparateur
n'a lui aussi qu'un seul type d'agent :
détecteur de séparateur :
60, c'est la valeur d'urgence la plus haute, car c'est en fait surtout sur les séparateurs qu'on peut, et qu'on doit, se fonder pour trouver la limite entre les champs. Si les termes connus sont peu nombreux, il est inutile de s'appuyer sur les détecteurs de zone pour trouver les champs, le seul agent efficace étant celui qui s'appuie sur les séparateurs de champs trouvés. Il faut donc que le détecteur de séparateur ait été exécuté avant le détecteur de champ (qui a une valeur d'urgence de 55).

Un agent peut ne rien avoir à faire avant une certaine étape du traitement (l'agent d'arrêt n'est pas vraiment indiqué lors de la première étape, on ne s'attend pas à résoudre le problème en une seule étape). C'est pourquoi on a défini une nouvelle valeur: celle de l'étape de départ . Elle a été fixée expérimentalement, au cours des essais du système. La première chose que le système cherche est les séparateurs. On donne donc une étape de départ la plus précoce au détecteur de séparateur : 0. Ensuite, pour que les activations se propagent assez tôt dans la partie spécifique du Réseau de Concepts, et pour qu'elles activent les bons champs, les agents autorisés à s'exécuter sont les détecteurs d'instances (1). Puis vient le détecteur de champ (6) et le détecteur de zone (8) et l'agent d'arrêt (8).

Le tableau 4.5 récapitule les caractéristiques des types d'agents du système.


 
Table: Caractéristiques des différents types d'agents.
agent nom urgence départ noeud père
arrêt AR 5 8 CHAMP
détecteur de champ DC 55 6 CHAMP
détecteur de zone DZ 50 8 CHAMP
détecteur d'instance DI 50 1 SPÉCIFIQUE
détecteur de séparateur DS 60 0 SÉPARATEUR
 



next up previous contents
Next: Construction de la partie Up: Construction du Réseau de Previous: Influence et co-occurrence
Francois Parmentier
6/19/1998