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
.
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.
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.
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
algorithms/catalan/stem_ISO_8859_1.sbl
es lo fichièr de reglas .sbl.BaseStemmer
lo nom de la classa parenta de CatalanStemmer.python/snowballstemmer/occitan_stemmer
nom del fichièr de sortida, l'extension es botada automaticament a .py.CatalanStemmer
es lo nom de la classa dins lo fichièr.