Opinion
Un otís de stemming per l’occitan
Definicions
Lo stemming es una tecnica necessari a la cèrca d’informacion.
La cèrca d’informacion o Information Retrieval (IR) en anglés es una disciplina scientifica que fa entrevenir las matematicas e la lingüistica dins las NTIC, (Nòvas Tecnologias de l’Informacion e de la Comunicacion).
La raiça o la soca se ditz stem en anglés, lo stemming es la racinizacion o la desufixacion d’un mot. La racinizacion tòca pas a la raiça que demòra dins lo camp morfologic.
Gara de pas confondre racinizacion amb lemmatizacion que se basa sus una analisi lexicala que se pòt pas trachar aquí.
De qué es, la IR?
Lo melhor per illustrar la IR es de prendre un exemple que sembla evident per tot lo monde coma la bóstia de cèrca d’un site web comercial. En darrièr de la bóstia i a un motor de cèrca qu’es minimalament avançat. De mai en mai los sites e los telefonets utilizan los otisses d’aquela disciplina per furgar las informacions a tal punt qu’aquò sembla natural. Doncas una question se pausa: “E se las informacions son en occitan dins quin dialècte que siá, cossí caldriá apasturar lo daquòs per al encòp plan comprendre la requèsta e tornar la responsa corrècta dins la lenga?”
Abans de trachar la justificacion d’un otís de stemming/racinizacion per la lenga nòstra, contunham de descriure lo procèssus de cèrca d’informacion.
Per l’usatgièr tot comença amb una requèsta dins la bóstia de cèrca, la requèsta es escricha en lengatge natural, pas besonh d’encodatge particular coma abans amb de metacaractèrs (*,?). Pasmens i a un trachament primièr que se deu far per botar lo motor de cèrca es la preparacion de l’informacion per optimizar la cèrca quand l’insercion.
Dos trachaments, un per l’insercion de l’informacion, un per la requèsta
Interpretar la requèsta per la complir es la mitat del trabalh del motor de cèrca. Abans el a degut collectar l’informacion, la preparar, la dispausar e l’organizar per fin que constituisca un còrpus.
Lo stemming es aplicat
— per organizar las donadas dins la basa
— per normalizar la requèsta.
Una requèsta normalizada fa dintrar l’idèa paradoxala que cal alargar l’ample de la question per embraçar mai de donadas e de possibilitats. Demest las operacions de normalizacion se tròban la deteccion de las frasas (sentence detector), lo trocejament de la frasa en mots (tokenization), la mesa en minuscula, la deteccion dels noms pròpris, lo retrach dels mots voids, de la puntuacion. Aital la requèsta en lengatge natural de l’usatgièr se tròba demesida per èsser trachada mai aisidament per la machina. Tant per la requèsta coma per l’insercion, d’unes dison, l’ingestion de las donadas, las meteissas operacions se fan en miralh. Aquí la pèrda d’informacion es pas un problèma.
Necessitat d’un stemmer occitan
Los logicials de TALN[1] porgisson totas las operacions per organizar la cèrca d’informacion per mai d’una lenga mas demòran qualques operacions que lor far mestièr d’una adaptacion per cada lenga e la racinizacion n’es la màger. Doncas caliá crear un stemmer occitan. Per astre un stemmer catalan existís dempuèi 2010, e un fum d’autres, ansin òm se pòt inspirar de las autras estrategias de racinizacion. Coma lenga bessona lo catalan es la basa del trabalh.
Lo bastit d’un stemmer
Lo trabalh sus la racinizacion remonta a las annada’80 quand lo Dr Martin Porter farguèt son lengatge de programacion, lo snowball (bola de nèu)[2] per prefigurar un algoritme de racinizacion. La resultat es lo stemmer final escrich en lengatge de programacion generalista, JAVA e PYTHON nos interèssan. Lo mode d’emplec e lo còde per bastir lo compilator del snowball se pòt telecargar sul site http://snowballstem.org.
Un còp lo compilator creat es una pichona comanda, l’algoritme occitan es escrich en snowball segon una adaptacion del catalan. Puèi la comanda es lançada amb qualques precisions sus lo lengatge de sortida, lo nom del fichièr ... Aprèp l’algoritme se pòt integrar dins una aplicacion especifica jos la forma d’una librariá.
Polit exemple d’especializacion de lengatge de programacion, lo Dr Martin Porter a pres lo suènh d’isolar una problematica complèxa coma desufixar un mot en priorizant los sufixes o flexions a aplicar segon l’òrdre lo mai pertinent, per far un lengatge de programacion dedicat a una sola causa. Son site es lo granièr dels algoritmes escriches per los especialistas de sa lenga. Coma aquò cadun a l’ocasion d’enriquir lèu fach sos otisses TALN amb cada novèla lenga aponduda.
Comanda per la compilacion
$ ./snowball algorithms/occitan/stem_ISO_8859_1.sbl -python -output OccitanStemmer -name OccitanStemmer
Integracion de l'algoritme JAVA dins SolR
SolR es la plataforma per crear un motor de cèrca, per la plan definir cal pensar a una base de donadas que son contengut bota primièr una tièra de mots indexats coma a la fin d’un libre tecnic. Puèi segond, lo contengut ordinari que se pòt legir e qu’es çò qu’interessa l’usatgièr es dintrat. En mai d’aquò SolR compren un fais d’otisses per trachar los documents a organizar dins la basa e per analizar las requèstas. Atanben los indexes coma las requèstas devon tenir compte de l’idiosincrasia de lor lenga. Se nòstra tòca es de trabalhar amb l’occitan, nos cal entresenhar la plataforma amb una competència en occitan. Amb l’algoritme en lengatge JAVA eissut del compilador snowball es possible d’apondre la classa OccitanStemmer a l’ensemble mas per aquò far tot lo còde de SolR dèu èsser telecargat e la plataforma tornada bastida. Çò que pòt èsser un pensament.
Coma SolR es un projècte dobèrt, cadun se pòt petaçar una version adaptada a son idiòm o a son camp d’interès mas cal pas èsser còrfalent.
Un exemple d’utilizacion en PYTHON
Per servir d’ensag e d’environament de tèst un site web amb una interfàcia simpla per lançar una aplicacion en PYTHON permet de veire rapidament los resultats. A cada modificacion de la sorça, la comanda es invocada puèi l’algoritme novèl es copiat amb las autras lengas. Lo tèst pòt contunhar.
L’exemple se pòt trobar aquí: http://conjoc.macarel.net/stemming.
La resulta d’una frasa desufixada
«es vengut costumièr de fintar primièr ...»
deu donar
«es -> es,vengut -> veng,costumièr -> costum,de -> de,fintar -> fint,primièr -> prim »
Conclusion
En tot prendre, los otisses de TALN, que siá Lucene/SolR o OpenNLP se devon adaptar a las lengas mas l’adaptacion es minimala, dins lo cas de l’occitan la precedéncia del catalan pava lo camin, sonque lo stemmer es d’apondre o d’adaptar. En defòra d’aquò demòra un fais de trabalh per far l’etiquetatge morfosintaxic de la lenga nòstra.
Lo stemming es una tecnica necessari a la cèrca d’informacion.
La cèrca d’informacion o Information Retrieval (IR) en anglés es una disciplina scientifica que fa entrevenir las matematicas e la lingüistica dins las NTIC, (Nòvas Tecnologias de l’Informacion e de la Comunicacion).
La raiça o la soca se ditz stem en anglés, lo stemming es la racinizacion o la desufixacion d’un mot. La racinizacion tòca pas a la raiça que demòra dins lo camp morfologic.
Gara de pas confondre racinizacion amb lemmatizacion que se basa sus una analisi lexicala que se pòt pas trachar aquí.
De qué es, la IR?
Lo melhor per illustrar la IR es de prendre un exemple que sembla evident per tot lo monde coma la bóstia de cèrca d’un site web comercial. En darrièr de la bóstia i a un motor de cèrca qu’es minimalament avançat. De mai en mai los sites e los telefonets utilizan los otisses d’aquela disciplina per furgar las informacions a tal punt qu’aquò sembla natural. Doncas una question se pausa: “E se las informacions son en occitan dins quin dialècte que siá, cossí caldriá apasturar lo daquòs per al encòp plan comprendre la requèsta e tornar la responsa corrècta dins la lenga?”
Abans de trachar la justificacion d’un otís de stemming/racinizacion per la lenga nòstra, contunham de descriure lo procèssus de cèrca d’informacion.
Per l’usatgièr tot comença amb una requèsta dins la bóstia de cèrca, la requèsta es escricha en lengatge natural, pas besonh d’encodatge particular coma abans amb de metacaractèrs (*,?). Pasmens i a un trachament primièr que se deu far per botar lo motor de cèrca es la preparacion de l’informacion per optimizar la cèrca quand l’insercion.
Dos trachaments, un per l’insercion de l’informacion, un per la requèsta
Interpretar la requèsta per la complir es la mitat del trabalh del motor de cèrca. Abans el a degut collectar l’informacion, la preparar, la dispausar e l’organizar per fin que constituisca un còrpus.
Lo stemming es aplicat
— per organizar las donadas dins la basa
— per normalizar la requèsta.
Un paradòxe: cal enlevar de precision dins la requèsta per capitar una pesca a las donadas pertinentas
Una requèsta normalizada fa dintrar l’idèa paradoxala que cal alargar l’ample de la question per embraçar mai de donadas e de possibilitats. Demest las operacions de normalizacion se tròban la deteccion de las frasas (sentence detector), lo trocejament de la frasa en mots (tokenization), la mesa en minuscula, la deteccion dels noms pròpris, lo retrach dels mots voids, de la puntuacion. Aital la requèsta en lengatge natural de l’usatgièr se tròba demesida per èsser trachada mai aisidament per la machina. Tant per la requèsta coma per l’insercion, d’unes dison, l’ingestion de las donadas, las meteissas operacions se fan en miralh. Aquí la pèrda d’informacion es pas un problèma.
Necessitat d’un stemmer occitan
Los logicials de TALN[1] porgisson totas las operacions per organizar la cèrca d’informacion per mai d’una lenga mas demòran qualques operacions que lor far mestièr d’una adaptacion per cada lenga e la racinizacion n’es la màger. Doncas caliá crear un stemmer occitan. Per astre un stemmer catalan existís dempuèi 2010, e un fum d’autres, ansin òm se pòt inspirar de las autras estrategias de racinizacion. Coma lenga bessona lo catalan es la basa del trabalh.
Lo bastit d’un stemmer
Lo trabalh sus la racinizacion remonta a las annada’80 quand lo Dr Martin Porter farguèt son lengatge de programacion, lo snowball (bola de nèu)[2] per prefigurar un algoritme de racinizacion. La resultat es lo stemmer final escrich en lengatge de programacion generalista, JAVA e PYTHON nos interèssan. Lo mode d’emplec e lo còde per bastir lo compilator del snowball se pòt telecargar sul site http://snowballstem.org.
Un còp lo compilator creat es una pichona comanda, l’algoritme occitan es escrich en snowball segon una adaptacion del catalan. Puèi la comanda es lançada amb qualques precisions sus lo lengatge de sortida, lo nom del fichièr ... Aprèp l’algoritme se pòt integrar dins una aplicacion especifica jos la forma d’una librariá.
Polit exemple d’especializacion de lengatge de programacion, lo Dr Martin Porter a pres lo suènh d’isolar una problematica complèxa coma desufixar un mot en priorizant los sufixes o flexions a aplicar segon l’òrdre lo mai pertinent, per far un lengatge de programacion dedicat a una sola causa. Son site es lo granièr dels algoritmes escriches per los especialistas de sa lenga. Coma aquò cadun a l’ocasion d’enriquir lèu fach sos otisses TALN amb cada novèla lenga aponduda.
Comanda per la compilacion
$ ./snowball algorithms/occitan/stem_ISO_8859_1.sbl -python -output OccitanStemmer -name OccitanStemmer
Lo fichièr stem_ISO_8859_1.sbl | conten l’algoritme per l’occitan, |
— python | lo lengatge de sortida es PYTHON, |
— output OccitanStemmer | lo fichièr de sortida es OccitanStemmer.py |
— name OccitanStemmer | lo nom de la classa es OccitanStemmer |
Integracion de l'algoritme JAVA dins SolR
SolR es la plataforma per crear un motor de cèrca, per la plan definir cal pensar a una base de donadas que son contengut bota primièr una tièra de mots indexats coma a la fin d’un libre tecnic. Puèi segond, lo contengut ordinari que se pòt legir e qu’es çò qu’interessa l’usatgièr es dintrat. En mai d’aquò SolR compren un fais d’otisses per trachar los documents a organizar dins la basa e per analizar las requèstas. Atanben los indexes coma las requèstas devon tenir compte de l’idiosincrasia de lor lenga. Se nòstra tòca es de trabalhar amb l’occitan, nos cal entresenhar la plataforma amb una competència en occitan. Amb l’algoritme en lengatge JAVA eissut del compilador snowball es possible d’apondre la classa OccitanStemmer a l’ensemble mas per aquò far tot lo còde de SolR dèu èsser telecargat e la plataforma tornada bastida. Çò que pòt èsser un pensament.
Coma SolR es un projècte dobèrt, cadun se pòt petaçar una version adaptada a son idiòm o a son camp d’interès mas cal pas èsser còrfalent.
Un exemple d’utilizacion en PYTHON
Per servir d’ensag e d’environament de tèst un site web amb una interfàcia simpla per lançar una aplicacion en PYTHON permet de veire rapidament los resultats. A cada modificacion de la sorça, la comanda es invocada puèi l’algoritme novèl es copiat amb las autras lengas. Lo tèst pòt contunhar.
L’exemple se pòt trobar aquí: http://conjoc.macarel.net/stemming.
La resulta d’una frasa desufixada
«es vengut costumièr de fintar primièr ...»
deu donar
«es -> es,vengut -> veng,costumièr -> costum,de -> de,fintar -> fint,primièr -> prim »
Conclusion
En tot prendre, los otisses de TALN, que siá Lucene/SolR o OpenNLP se devon adaptar a las lengas mas l’adaptacion es minimala, dins lo cas de l’occitan la precedéncia del catalan pava lo camin, sonque lo stemmer es d’apondre o d’adaptar. En defòra d’aquò demòra un fais de trabalh per far l’etiquetatge morfosintaxic de la lenga nòstra.
Jornalet es possible gràcias al sosten economic e jornalistic dels legeires e benevòls. Se lo podètz sosténer en venent sòci dels Amics del Jornalet o de l'Associacion ADÒC, o tot simplament en fasent un don, atal contribuiretz a far un mèdia mai independent e de melhora qualitat.
Pietat, m'avisi que lo desufixador sul site, tracta pas corrèctament lo E greu. En occitan, «primièr» dona una error, orror, espant !. En francés «dernièrement» dona una error tanben. Normalament una error deu pas èsser levada, se l'algoritme sap pas tractar una cadena, ela demòra non cambiada.
#2 «L'autre jorn vegèri tanben cossí crear un lèxic a partir d'un fichièr .po
Un jorn ensajarai amb un bèl fichièr coma lo de Firefox. Pòt ajudar a trapar las cadenas ont un vèrb es pas traduch del meteus biais.» =>
Segur, es un projècte que se pòt envisatgar amb qualques otisses de tractament de donadas textualas, SolR pòt ajudar mas OpenNLP asonda de rotinas mai afièchas. Solament las cal esprobar per far un recèrca non triviala. Ne 'n charrarem.
#1 Mercés plan pel melhorament. Patric Sauzet me bufa dins l'aurelheta (lo daquòs, pas lo pastis) que per *stemmer* se deu dire «desufixador» en occitan, mas me sembla qu'es un pauc cortet pr'amor que *stemmer* ven de *stem* la camba del mot, lo mot seriá la fuelha. Soi languissent de trapar un polit mot pron expressiu en lenga nòstra.
Puèi vesi qu'ai emplegat fòrça «trachament» en luòc de «tractament» çò ditz lo totenun e tot los autres lexics del dicòd'òc. Las, caliá legir, solide, tractament.
Ai ja vist de paginas ont lo monde fasián tot un fum d'estatisticas interessants amb de tèxtes coma totes los títols de Wikipedia. Ne fasián sortir una lista dels 1000 mots mai utilizats, los emplecs de las preposicions. L'autre jorn vegèri tanben cossí crear un lèxic a partir d'un fichièr .po
Un jorn ensajarai amb un bèl fichièr coma lo de Firefox. Pòt ajudar a trapar las cadenas ont un vèrb es pas traduch del meteus biais.
Sèm a caçar las fautas d'aqueste logicial, sètz los benvenguts per contribuire :)
Interessant. Me permeti de melhorar vòstre tèxte.
"tecnica necessària" (malgrat qu'a l'oral se pòt prononciar 'necessari' al femenin)
"per A L'encòp"
"l'òrdre mai pertinent" ( pas d'article, francesisme)
idiòmA
En tot prendre los otisses (fr. tout en prenant) : en prenent o en prendre los otisses (fr: en prenant)
Vòstre comentari es a mand d’èsser validat. Per terminar lo procès de validacion, vos cal encara clicar sul ligam qu’anatz recebre per e-mail a l’adreiça qu’avètz indicada.
Escriu un comentari sus aqueste article
Senhala aqueste comentari