Table des matières

Stemmer

Un stemmer es un otís de morfologia lingüistica o de IR (information retrieval) que permet de demesir un mot a quicòm pròche de sa raiça. Per exemple [oc]soncament → sonca, [oc]braces → brac e non pas braç !
Per trapar la raiça d'un mot, una besonha mai a propaus es lo lematizaire o lematizador.
La pròba de concèpte que seguís mòstra l'utilizacion d'una familha de stemmers per un dezenat de lengas. Dempuèi las annadas 80 del segle passat, los trabalhs del Dr Porter son venguts cavilha obrieira de l' IR.

Interést per nòstre trabalh universitari

La basa de donadas textualas causida es SolR basada sus Lucene. Escricha en Java e fòrt modulara, ela balha la possibilitat d'extension amb de librarias java jos la forma de .JAR que s'apondon aisidament a l'ensemb.
L'idèa es de margar un otís de stemming especialament desenhat per l'occitan. Partem pas d'enlòc que i a ja de stemmers qu'existisson per lo basc e lo catalan. Solide que compte tengut de la similaritat dels idiòms, l'experiéncia catalana serà apreciada.
Pel moment i a de problèmas de compatilitat entre lo projècte snowballstem (qu'es mai avançat) amb la version utilizada dins SolR. Abans de passer bel temps dins aquò, per s'assegurar lo melhor es de far virar la pròba de concèpte dins lo site conjoc.

Snowballstem

Lo Dr Porter fargèt una grammatica unica per engabiar la reglas de cesura de mot basadas sus una tiera de sufixes. Ansin cada lenga se pòt bastir sas reglas que contribuissan a definir lor lenga. La sintaxi es la meteissa per caduna e los fichièrs sorças son sul site Github de snowballstem.
L'explicacion de la gramatica es vesidòira çai-i Snowballstem.
La beutat de l'otís es que produtz lo còde en mai d'un lengatge de programmacion (C/C++, Java, Jsx, Python, Go, Rust). Pel moment lo mai simple es de compilar totes los stemmers puèi de far una pagina d'ensaj en Python per comparar l'algoritme occitan e lo catalan.

La construccion de l'otís

Abans d'escriure lo fichièr de reglas, cal al mens bastir lo compilador snowball qu'es escrich en 'C' e que cal compilar el meteis. Per z-o far car un ordinador que vira una distribucion GNU/Linux, una machina Unix amb la cadena d'otís o encara una machina Windows dotada de l'environament Cygwin amb lo compilador.
De mon costat una distro Debian a fach l'afar.

dc@teslo:~/w/$ git clone https://github.com/snowballstem/snowball.git
# renomar lo dorsièr davalat amb quicòm de mai simple coma snowball ...
# agachar se i a un fichièr GNUmakefile
# lançar la bastison
#
dc@teslo:~/w/snowball$ make
...

Dins lo dorsièr algorithms/occitan se tròban los fichièrs amb lor gramatica. Crear un dorsièr per l'occitan puèi i botar lo fichièr de reglas. : Per compilar en Python, lo fichièr de reglas en un stemmer per lo catalan e per l'occitan.

./snowball algorithms/catalan/stem_ISO_8859_1.sbl -parentclassname BaseStemmer -python -o python/snowballstemmer/catalan_stemmer -n CatalanStemmer
./snowball algorithms/occitan/stem_ISO_8859_1.sbl -parentclassname BaseStemmer -python -o python/snowballstemmer/occitan_stemmer -n OccitanStemmer
primièr argument
algorithms/catalan/stem_ISO_8859_1.sbl es lo fichièr de reglas .sbl.
-python o -p
lo còde generat es en Python.
.sbl
per convencion es l'extension d'un fichièr de reglas per una lenga e un encodatge (opcional).
-parentclassname
BaseStemmer lo nom de la classa parenta de CatalanStemmer.
-o
python/snowballstemmer/occitan_stemmer nom del fichièr de sortida, l'extension es botada automaticament a .py.
-n
CatalanStemmer es lo nom de la classa dins lo fichièr.

Los fichiérs de reglas