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).
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.
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.
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.
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.
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)
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 |
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 :
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 :
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.
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 |