Pour chaque référence de la base (par exemple, celle de la figure 4.8), on génère un fichier LATEX2e qui contient uniquement cette référence à partir duquel on obtient (en utilisant dvips) un fichier PostScript (tel celui de la figure 4.10, qui donne, à l'impression, la figure 4.9). Ce fichier PostScript est exploitable par ghostscript, c'est-à-dire qu'on peut en extraire des informations textuelles (contenues dans la figure 4.11).
@ARTICLE{bose94a, AUTHOR = {C. B. Bose and S. Kuo}, JOURNAL = {Pattern Recognition}, NUMBER = {10}, PAGES = {1345--1363}, TITLE = {Connected and Degraded Text Recognition Using Hidden Markov Model}, VOLUME = {27}, YEAR = {1994}, KEYWORDS = {texte, reconnaissance, hmm, segmentation, connexes, caractere} } |
C. B. Bose and S. Kuo. Connected and Degraded Text Recognition Using Hidden Markov Model. Pattern Recognition, 27(10):1345--1363, 1994. |
%%Page: 1 1 1 0 bop 220 266 a Fc(Refer)o(ences)220 358 y Fb([1])20 b(C.)11 b(B.)g(Bose)g(and)f(S.)h(K)o(uo.)17 b(Connected)10 b(and)h(De)o(graded)g(T)m(e)o(xt)g(Recognition)e(Using)h(Hidden)289 408 y(Marko)o(v)g(Model.)15 b Fa(P)m(attern)9 b(Recognition)p Fb(,)g(27\(10\):1345\226136)o(3,)f(1994.)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF |
<Times-Roman>C. B. Bose and S. Kuo. Connected and Degraded Text Recognition Using Hidden Markov Model. </Times-Roman><Times-Italic>Pattern Recognition </Times-Italic><Times-Roman>, 27(10):1345--1363, 1994.</Times-Roman> |
C'est à partir de la version logique SGML et de la version physique SGML de la référence que nous déduisons les séparateurs des champs, en retrouvant l'emplacement des champs. Ici, nous nous heurtons à une difficulté que nous n'avons pas encore résolue mais qui n'a pas été préjudiciable à notre approche : il faut que les champs aient la même structure logiquement et physiquement. Cela nous pénalise pour des styles bibliographiques complexes, dans lesquels, par exemple, le nom et le prénom sont inversés. Il faudrait alors pousser l'analyse du format lors de la transformation de BIBTEX en SGML jusqu'au troisième niveau, en séparant le prénom du nom.
<doc> <longueur>218</longueur> <sep><chaine><Times-Roman></chaine> <empl>0</empl><champ1></champ1><champ2>author</champ2><champ3>doc</champ3></sep> <sep><chaine> and </chaine> <empl>23</empl><champ1>a</champ1><champ2>a</champ2><champ3>author</champ3></sep> <sep><chaine>. </chaine> <empl>34</empl><champ1>author</champ1><champ2>title</champ2><champ3>doc</champ3></sep> <sep><chaine> </chaine> <empl>45</empl><champ1>mot</champ1><champ2>mot</champ2><champ3>title</champ3></sep> <sep><chaine> </chaine> <empl>49</empl><champ1>mot</champ1><champ2>mot</champ2><champ3>title</champ3></sep> ... <sep><chaine>. </Times-Roman><Times-Italic></chaine> <empl>101</empl><champ1>title</champ1><champ2>journal</champ2><champ3>doc</champ3></sep> <sep><chaine> </chaine> <empl>138</empl><champ1>jw</champ1><champ2>jw</champ2><champ3>journal</champ3></sep> <sep><chaine></Times-Italic><Times-Roman>, </chaine> <empl>150</empl><champ1>journal</champ1><champ2>volume</champ2><champ3>doc</champ3></sep> <sep><chaine>(</chaine> <empl>182</empl><champ1>volume</champ1><champ2>number</champ2><champ3>doc</champ3></sep> <sep><chaine>):</chaine> <empl>185</empl><champ1>number</champ1><champ2>pages</champ2><champ3>doc</champ3></sep> <sep><chaine>, </chaine> <empl>197</empl><champ1>pages</champ1><champ2>year</champ2><champ3>doc</champ3></sep> <sep><chaine>.</Times-Roman></chaine> <empl>203</empl><champ1>year</champ1><champ2></champ2><champ3>doc</champ3></sep> </doc> |
La figure 4.12 montre le résultat de la détection automatique des séparateurs de la référence bose94a en format sgml (figure 4.11). Le champ longueur y représente le nombre de caractères de la version physique sgml de la référence. empl est l'index (l'emplacement) du premier caractère du séparateur repéré. champ1 est le champ à gauche du séparateur. champ2 est le champ à droite du séparateur et champ3 est le champ contenant le séparateur (tous les champs de premier niveau sont contenus dans le champ « racine » : doc).
Ensuite, on construit la partie physique du Réseau de Concepts, en utilisant les informations extraites automatiquement pour relier les noeuds séparateurs aux noeuds champs (cf. figure 4.13). Le numéro inclus dans les champs est le nombre de références de la base où apparaît le champ. Celui inclus dans les séparateurs est le nombre d'occurrences de ce séparateur dans la base.
Les poids indiqués correspondent aux calculs présentés dans la figure 4.14.