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

Wicri:TamazightV2/Paramètres, filtre Tamazight

De Wicri Linguistique

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.

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

Le résultat final est reproduit sur Serveur d'exploration Tamazight.

Le filtre

cat <<... >Import/tamazightFilter.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>[Tt]ifinagh     print("Tifinagh", 2.);
<C>[Tt]amazight     print("Tamazight", 2.);
<C>[Aa]mazigh       print("Tamazight", 2.);
<C>[Bb]"erbère"     print("berbère", 0.5);
<C>[Bb]"erber"[^a-z]     print("berbère", 0.5);
<C>langage         print("langage", 0.5);
<C>language        print("langage", 0.5);
<C>alphabet        print("langage", 1);
<C>linguist        print("linguistique", 0.5);
<C>\n          BEGIN K;
<C>.       ;
%%
main()
{
   key=malloc(10);
   BEGIN K;
   yylex();
}
...
lex Import/tamazightFilter.lex
gcc lex.yy.c -ll -o bin/tamazightFilter

Test de mise en œuvre

HfdIndexSelect -h $EXPLOR_AREA/Data/Main/Exploration/Title.i  -Sk "morocco"  \
   | ExplorAddFullText -h Data/Main/Exploration/biblio.hfd -K               \
   | ExplorExtractContent -f kwc                                            \
   | bin/tamazightFilter                                                      \
   | sort                                                                   \
   | SxmlSelect -p @1 -p "@2(@3)"                                           \
   | IndexBuildRec                                                          \
   | SxmlSelect -g idx/f/1 -g idx/k/1 -p @g1 -p @g2                         \
   | sort -rn

Nouveau test

 HfdIndexSelect -h $EXPLOR_AREA/Data/Main/Exploration/Title.i  -Sk "morocco"   \
   | ExplorAddFullText -h Data/Main/Exploration/biblio.hfd -K     \
   | ExplorExtractContent -f kwc                                  \
   | bin/tamazightFilter                                            \
   | SgmlFast -c2                                                 \
   | sort                                                      \
   | SxmlCumul -wd                                               \
   | SxmlSelect -g i/w/1 -g i/k/1 -p @g1 -p @g2 | sort -rn

Sur tout le corpus

time HfdCat Data/Main/Exploration/biblio.hfd               \
  | ExplorAddFullText -b                \
     | ExplorExtractContent -f kwc                                          \
     | bin/tamazightFilter                     \
    |   SgmlFast -c2                           \
    | sort | SxmlCumul -wd   \
   | SxmlSelect -g i/w/1 -g i/k/1 -p @g1 -p @g2 | sort -rn   \
    | head -20 \
   | 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/Linguistique
   |area=    TamazightV2
   |flux=    Main
   |étape=   Exploration
   |type=    RBID | clé=@g2 | texte=@g1}}"
Résultat