Nuvola apps important.png Attention, suite à une analyse de sécurité, les liens vers quelques serveurs d'exploration sont désactivés.

-

Wicri:NickelMaghrebV1/Paramètres, filtre Maghreb

De Wicri Terre

Pour le Serveur d'exploration sur le nickel au Maghreb, cette page introduit un ensemble d'outils d'extraction de contenus (ExplorAddFullText, ExplorExtractContent, SxmlCumul) qui permettent d'insérer des filtres spécifiques relativement simples à concevoir.

Elle reprend une expérimentation menée sur le Serveur d'exploration sur le cobalt au Maghreb ( Wicri:CobaltMaghrebV1/Paramètres, filtre Maghreb)

En l’occurrence le filtre lex sur le Maghreb devrait être remplacé bientôt par un outil opérant sur des tables.

Le filtre

cat <<... >Import/maghrebFilter.lex
%START K
%START W
%START C
%{
 char *key;
 double w;
 void print (char* text, double param)
 {
      printf ("%s\t%s\t%08.3f\n", key, text, param*w);
 }
%}
%%
<K>\t      BEGIN W;
<K>[^\t]+  {strcpy(key, yytext);}
<W>\t      BEGIN C;
<W>[^\t]+  {w=strtod(yytext, NULL);}
<C>Morocco     print("Maroc", 1.);
<C>Maroc       print(yytext, 1.); 
<C>Rabat       print(yytext, 1.); 
<C>Tunisi[ae]  print("Tunisie", 1.);
<C>Tunis      print("Tunis", 1.);
<C>Atlas       print(yytext, 0.5); 
<C>"Anti-Atlas"       print(yytext, 1.5); 
<C>Algiers       print("Alger", 1.); 
<C>Alger       print("Alger", 1.); 
<C>Oran       print("Oran", 1.); 
<C>Maghreb      print("Maghreb", 2.); 
<C>Bou[\- ]Azzer print("Bou-Azzer", 2.); 
<C>Oued      print(yytext, 2.); 
<C>[Dd]jebel print(yytext, 2.); 
<C>\n          BEGIN K;
<C>.       ;
%%
main()
{
   key=malloc(10);
   BEGIN K;
   yylex();
}
...
lex Import/maghrebFilter.lex
gcc lex.yy.c -ll -o bin/maghrebFilter

Test de mise en œuvre

HfdIndexSelect -h $EXPLOR_AREA/Data/Main/Exploration/Title.i  -Sk "nickel"  \
   | ExplorAddFullText -h Data/Main/Exploration/biblio.hfd -K               \
   | ExplorExtractContent -f kwc                                            \
   | bin/maghrebFilter                                                      \
   | sort                                                                   \
   | SxmlSelect -p @1 -p "@2(@3)"                                           \
   | IndexBuildRec                                                          \
   | SxmlSelect -g idx/f/1 -g idx/k/1 -p @g1 -p @g2                         \
   | sort -rn
Exemple de résultat
7	001306
5	000077
4	000F20
4	000B36
4	000B24
4	000624
3	000D11
3	000960
3	000392
2	001497

Test final

Documents contenant nickel dans le titre

HfdIndexSelect -h $EXPLOR_AREA/Data/Main/Exploration/Title.i  -Sk "nickel"    \
  | ExplorAddFullText -h Data/Main/Exploration/biblio.hfd -K                  \
     | ExplorExtractContent -f kwc                                          \
     | bin/maghrebFilter                     \
    |   SgmlFast -c2                           \
    | sort | SxmlCumul -wd   \
   | SxmlSelect -g i/w/1 -g i/k/1 -p @g1 -p @g2 | sort -rn   \
   | SxmlSelect -p @2 -p @1 | HfdSelect -h $EXPLOR_AREA/Data/Main/Exploration/biblio -i \
  | SxmlSelect -g record/TEI/teiHeader/fileDesc/titleStmt/title/1 \
    -g record/TEI/teiHeader/fileDesc/publicationStmt/idno@type=RBID/1 -p "*[@2] : {{Explor lien
   |wiki=    Wicri/Terre
   |area=    NickelMaghrebV1
   |flux=    Main
   |étape=   Exploration
   |type=    RBID | clé=@g2 | texte=@g1}}"
Résultat

Sur tout le corpus

time HfdCat Data/Main/Exploration/biblio.hfd | SgmlFast -c2                  \
  | ExplorAddFullText -h Data/Main/Exploration/biblio.hfd -K                  \
     | ExplorExtractContent -f kwc                                          \
     | bin/maghrebFilter                     \
    |   SgmlFast -c2                           \
    | sort | SxmlCumul -wd   \
   | SxmlSelect -g i/w/1 -g i/k/1 -p @g1 -p @g2 | sort -rn   \
   | SxmlSelect -p @2 -p @1 | HfdSelect -h $EXPLOR_AREA/Data/Main/Exploration/biblio -i \
   | head -100 \
  | SxmlSelect -g record/TEI/teiHeader/fileDesc/titleStmt/title/1 \
    -g record/TEI/teiHeader/fileDesc/publicationStmt/idno@type=RBID/1 -p "*[@2] : {{Explor lien
   |wiki=    Wicri/Terre
   |area=    NickelMaghrebV1
   |flux=    Main
   |étape=   Exploration
   |type=    RBID | clé=@g2 | texte=@g1}}"
Résultat