Re: [trasno] Stemmer
Susana Sotelo Docio wrote: > O Tuesday 12 de August de 2008, mvillarino escribiu: > NPI. Pero eu para lematizar probaría a usar ben un tagger (freeling é > libre e está entrenado para galego) ben dicionarios construídos con FSA > (autómatas finitos), pero que eu saiba o que hai para galego a día de hoxe > non é libre. > > Por exemplo: > > http://www.eti.pg.gda.pl/katedry/kiw/pracownicy/Jan.Daciuk/personal/fsa.html > > Este software é o que se emprega en LanguageTool > (http://www.languagetool.org) para a lematización. Aínda non hai soporte > para galego (e polo tanto tampouco dicionario), pero agora mesmo estou > traballando neste tema. Conto con ter un dicionario máis ou menos > decente en setembro/outubro. > > Ola Susana, Non estou moi familiarizado co asunto deste fío, pero para a creación dese dicionario creo que che pode ser útil unha ferramenta que xustamente acaban de sacar os creadores do "Translate Toolkit" e de "Pootle": Spelt [1] [2], que serve para axudar a identificar e clasificar raíces de palabras. Saúdos. Felipe. [1] http://sourceforge.net/forum/forum.php?forum_id=858132 [2] http://translate.sourceforge.net/wiki/spelt/index
Re: [trasno] Stemmer
> 2008/8/12 mvillarino : Invirto a orden do correo > Nacho, isto está incluido no que viria sendo o meu programa de apoio á > localización perfecto. Pero teño que recoñecer que se non falei disto > é porque o vexo moi complicado. Tamén debo dicir que con todo isto de > lematizar, etc... pérdome :) Non te jode!, e no meu tamén, por iso falo diso. BTW: como se dí "lematizar" en inglés? Precísoo para o meterlle un RFE a Shafforo (desenvolvente do Lokalise) >>> Hai un tempo na Facultade de Filoloxía da USC propuxérase un proxecto de >>> investigación que viña a facer algo similar, extraendo termos e as súas >>> equivalencias e tratando de integrar este recurso nas ferramentas libres >>> de axuda á localización, pero non fora aprobado. >> >> Vaia mágoa. > > E íano programar eles? Dan alí clases de programación para que despois > nos veñan quitar o traballo ós informáticos? Pois parece que de Perl si. E non o vexo tan raro, cando eu estudaba oferecíanse clase de programación no cacti. >>> Xa. Se por exemplo tes un dicionario bilingüe que diga >>> >>> file ficheiro Algo máis complicado será mellor exemplo: ADVERTENCIA: Isto é imaxinario, non apliquei un programa real ao asunto. Texto orixe: "By checking this box you will enable several Pandora's boxes opening; do it under your own liability" Texto termo: "Se sinala esta opción, permitirá a abertura da caixa de Pandora. Fágao baixo a súa propria responsabilidade" Glosario (máis ou menos): Check: sinalar Check: comprobar Check: verificar Enable: activar Enable: Verificar Box: Casiña Box: Opción [nota: non inclúo caixa como tradución de box intencionalmente, amais de que non me parece correcto dado que é o vocábulo común] Liability: pasivos [nota: conceito contábel inverso a activos] Pandora's box: Caixa dos tronos [nota: vale, é que precisaba dunha expresión] Lematizamos: Texto orixe: "By check this box you enable several Pandora box ope do it under your own liability" ; nótese a supresión da etiquetaxe. Texto termo: "Se sinalar esta opción, permitir o abertura de o caixa de Pandora. Facer o baixo o seu proprio responsabilidade"; ibidem. Claro, agora non aparece "Pandora's box" no texto orixe, pero se lematizamos o glosario tamén: Glosario lematixado: Check: sinalar Check: comprobar Check: verificar Enable: activar Enable: verificar Box: Casa [nota: haber que tocar o carallo] Box: Opción Liability: pasivo Pandora box: Caixa de o trono Entón, se facemos unha pasada de expresións regulares (non ansiosas (N. do. T. : "eager")), esta casará/coincidirá/poña aquí a súa tradución de "match": No texto orixe: "By check this box you will enable several Pandora box ope do it under your own liability" procurando por: "check", "enable", "box", "liability" e "pandora box", debería achar máis ou menos (en maiúsculas): "by CHECK(1) this BOX(2) you ENABLE(3) several PANDORA_BOX(4) ope do it under your own LIABILITY(5)" e para cada achádega, irá a facer as procuras correspondentes, mediante regex no texto termo lematizado: por non ler arriba "Se sinalar esta opción, permitir o abertura de o caixa de Pandora. Facer o baixo o seu proprio responsabilidade" CHECK (1): sinalar (non saca erro) BOX (2): opción (non saca erro) ENABLE(3): erro (saca erro, por non conter nen ACTIVAR nen VERIFICAR) PANDORA BOX (4): erro (saca erro, por non conter "CAIXA DE O TRONO") LIABILITY(5): erro (saca erro, por non conter "PASIVO") O proceso inverso: o mesmo, permutando os textos termo e orixe, e no glosario, as componentes de cada entrada do glosario. >>> precisarías usar freeling sobre os textos galego e inglés para verificar >>> a equivalencia. >>> >>> $ analyzer -f /usr/share/FreeLing/config/en.cfg >>> Open open NN >>> file file NN >>> >>> $ analyzer -f /usr/share/FreeLing/config/gl.cfg >>> Abrir abrir VMN01S0 >>> arquivo arquivo NCMS000 >>> >>> A primeira columna é a forma, a segunda o lema e a terceira a etiqueta Entón teño que concatenar a segunda coluna da saída do analyzer, nada que non se poda facer con awk, ou outros comandos estándar, para ter os textos lematizados. >>> O problema vén cando non hai equivalencia palabra a palabra, senón que >>> hai diferentes estruturas implicadas: >>> >>> subst + subst [en] = subst + prep + subst [gl] >>> >>> Network Folders = Cartafoles de rede >>> >>> Aquí terías que traballar con termos, por exemplo usando un extractor >>> como >>> >>> http://gramatica.usc.es/~gamallo/gale-extra/index2.0.htm Haberá que votarlle un ollo, pero deixareino por agora.
Re: [trasno] Stemmer
2008/8/12 mvillarino : > O Martes 12 Agosto 2008 19:15, Susana Sotelo Docio escribiu: >> Unha broma: digo que hai que ter moito vicio para dicir que perl é >> ilexíbel :) pero aos que somos sureños e de mar de cando en vez >> escápasenos un "visio". Sobra dicir cal é a miña linguaxe de cabeceira >> ;) > > Éche que eu son máis de kivio >:-) > > Perl é para cobardes: proba intercal e verás... Non eran estes de perl os que tiñan un concurso para intentar facer o programa máis ilexible da historia, pero que funcionara correctamente?? >> > Nin papas. Eu o único que ando a procurar é por un sistema que permita >> > facer a comparación bi-direccional entre as expresións e palabras >> > contidas en dous textos face a un ficheiro de "dicionario bilingüe", e >> > que avise cando non haxa aparición de "tradución legal" no texto >> > termo para unha das palabras ou expresións que estexan no texto orixe >> > e no dicionario. >> >> Xa. Se por exemplo tes un dicionario bilingüe que diga >> >> file ficheiro >> >> e os textos A e B: >> >> Open file >> >> Abrir arquivo >> >> precisarías usar freeling sobre os textos galego e inglés para verificar >> a equivalencia. >> >> $ analyzer -f /usr/share/FreeLing/config/en.cfg >> Open open NN >> file file NN >> >> $ analyzer -f /usr/share/FreeLing/config/gl.cfg >> Abrir abrir VMN01S0 >> arquivo arquivo NCMS000 >> >> A primeira columna é a forma, a segunda o lema e a terceira a etiqueta >> (NCMS é, por exemplo, substantivo común masculino singular). Obviamente, >> ás veces freeling erra na asignación da etiqueta (por exemplo no caso de >> "open"). >> >> file = ficheiro != arquivo, co que daría un aviso. > Exactamente. > >> >> O problema vén cando non hai equivalencia palabra a palabra, senón que >> hai diferentes estruturas implicadas: >> >> subst + subst [en] = subst + prep + subst [gl] >> >> Network Folders = Cartafoles de rede >> >> Aquí terías que traballar con termos, por exemplo usando un extractor >> como >> >> http://gramatica.usc.es/~gamallo/gale-extra/index2.0.htm >> >> ou tratando de detectalos dende o propio programa en base aos contidos >> do dicionario bilingüe. > > Vaia, isto é máis complicado do que parece. Teño que pensalo algo mellor. Nacho, isto está incluido no que viria sendo o meu programa de apoio á localización perfecto. Pero teño que recoñecer que se non falei disto é porque o vexo moi complicado. Tamén debo dicir que con todo isto de lematizar, etc... pérdome :) >> Hai un tempo na Facultade de Filoloxía da USC propuxérase un proxecto de >> investigación que viña a facer algo similar, extraendo termos e as súas >> equivalencias e tratando de integrar este recurso nas ferramentas libres >> de axuda á localización, pero non fora aprobado. > > Vaia mágoa. E íano programar eles? Dan alí clases de programación para que despois nos veñan quitar o traballo ós informáticos? Ata logo, Leandro Regueiro
Re: [trasno] Stemmer
O Martes 12 Agosto 2008 19:15, Susana Sotelo Docio escribiu: > Unha broma: digo que hai que ter moito vicio para dicir que perl é > ilexíbel :) pero aos que somos sureños e de mar de cando en vez > escápasenos un "visio". Sobra dicir cal é a miña linguaxe de cabeceira > ;) Éche que eu son máis de kivio >:-) Perl é para cobardes: proba intercal e verás... > > > Nin papas. Eu o único que ando a procurar é por un sistema que permita > > facer a comparación bi-direccional entre as expresións e palabras > > contidas en dous textos face a un ficheiro de "dicionario bilingüe", e > > que avise cando non haxa aparición de "tradución legal" no texto > > termo para unha das palabras ou expresións que estexan no texto orixe > > e no dicionario. > > Xa. Se por exemplo tes un dicionario bilingüe que diga > > file ficheiro > > e os textos A e B: > > Open file > > Abrir arquivo > > precisarías usar freeling sobre os textos galego e inglés para verificar > a equivalencia. > > $ analyzer -f /usr/share/FreeLing/config/en.cfg > Open open NN > file file NN > > $ analyzer -f /usr/share/FreeLing/config/gl.cfg > Abrir abrir VMN01S0 > arquivo arquivo NCMS000 > > A primeira columna é a forma, a segunda o lema e a terceira a etiqueta > (NCMS é, por exemplo, substantivo común masculino singular). Obviamente, > ás veces freeling erra na asignación da etiqueta (por exemplo no caso de > "open"). > > file = ficheiro != arquivo, co que daría un aviso. Exactamente. > > O problema vén cando non hai equivalencia palabra a palabra, senón que > hai diferentes estruturas implicadas: > > subst + subst [en] = subst + prep + subst [gl] > > Network Folders = Cartafoles de rede > > Aquí terías que traballar con termos, por exemplo usando un extractor > como > > http://gramatica.usc.es/~gamallo/gale-extra/index2.0.htm > > ou tratando de detectalos dende o propio programa en base aos contidos > do dicionario bilingüe. Vaia, isto é máis complicado do que parece. Teño que pensalo algo mellor. > Hai un tempo na Facultade de Filoloxía da USC propuxérase un proxecto de > investigación que viña a facer algo similar, extraendo termos e as súas > equivalencias e tratando de integrar este recurso nas ferramentas libres > de axuda á localización, pero non fora aprobado. Vaia mágoa. -- Best regards, MV
Re: [trasno] Stemmer
O Tuesday 12 de August de 2008, mvillarino escribiu: > > Baahh, ilexíbel. Moito visio é o que hai :) > > Mande?? Unha broma: digo que hai que ter moito vicio para dicir que perl é ilexíbel :) pero aos que somos sureños e de mar de cando en vez escápasenos un "visio". Sobra dicir cal é a miña linguaxe de cabeceira ;) > Nin papas. Eu o único que ando a procurar é por un sistema que permita > facer a comparación bi-direccional entre as expresións e palabras > contidas en dous textos face a un ficheiro de "dicionario bilingüe", e > que avise cando non haxa aparición de "tradución legal" no texto > termo para unha das palabras ou expresións que estexan no texto orixe > e no dicionario. Xa. Se por exemplo tes un dicionario bilingüe que diga fileficheiro e os textos A e B: Open file Abrir arquivo precisarías usar freeling sobre os textos galego e inglés para verificar a equivalencia. $ analyzer -f /usr/share/FreeLing/config/en.cfg Open open NN file file NN $ analyzer -f /usr/share/FreeLing/config/gl.cfg Abrir abrir VMN01S0 arquivo arquivo NCMS000 A primeira columna é a forma, a segunda o lema e a terceira a etiqueta (NCMS é, por exemplo, substantivo común masculino singular). Obviamente, ás veces freeling erra na asignación da etiqueta (por exemplo no caso de "open"). file = ficheiro != arquivo, co que daría un aviso. O problema vén cando non hai equivalencia palabra a palabra, senón que hai diferentes estruturas implicadas: subst + subst [en] = subst + prep + subst [gl] Network Folders = Cartafoles de rede Aquí terías que traballar con termos, por exemplo usando un extractor como http://gramatica.usc.es/~gamallo/gale-extra/index2.0.htm ou tratando de detectalos dende o propio programa en base aos contidos do dicionario bilingüe. Hai un tempo na Facultade de Filoloxía da USC propuxérase un proxecto de investigación que viña a facer algo similar, extraendo termos e as súas equivalencias e tratando de integrar este recurso nas ferramentas libres de axuda á localización, pero non fora aprobado. -- Susana Sotelo Docio http://gramatica.usc.es/~sdocio Linux User #96506 gpg-id: 0E9BEDA4 "Only after the last tree has been cut, only after the last river has been poisoned, only after the last fish has been fished, only then you will discover that money can not be eaten." -- Evelyn Waugh
Re: [trasno] Stemmer
2008/8/12 Susana Sotelo Docio : >> 1.- É isto lematizar? > > Si. Digamos que un lematizador, dado o texto > > "a nena come a mazá na rúa" > > devolvería > > "o neno comer o mazá en o rúa" > > Vén sendo o procedemento de normalización máis simple. > [...] > Este software é o que se emprega en LanguageTool > (http://www.languagetool.org) para a lematización. Aínda non hai soporte > para galego (e polo tanto tampouco dicionario), pero agora mesmo estou > traballando neste tema. Conto con ter un dicionario máis ou menos > decente en setembro/outubro. mmm, creo que me acabas de alegrar o día. O language tool pode utilizarse, e está a utilizarse, dentro de _algúns_ equipos de tradución de KDE para pasar unha corrección gramatical dos textos termo, nomeadamente serbios, franceses e xaponeses Para iso fai falla instalalo como programa independente (stand-alone application), e si, tira de Java. >> 5.- PERL é ilexíbel, hai algún en Python? > > Baahh, ilexíbel. Moito visio é o que hai :) Mande?? > Coido que para o que buscas o mellor sería freeling, que é C++ e > tamén utilizábel como biblioteca. E rápido. Mesmo se podería ver a > posibilidade de entrenalo usando como corpus cadeas de ficheiros PO, > aínda que levaría o seu tempo. Nin papas. Eu o único que ando a procurar é por un sistema que permita facer a comparación bi-direccional entre as expresións e palabras contidas en dous textos face a un ficheiro de "dicionario bilingüe", e que avise cando non haxa aparición de "tradución legal" no texto termo para unha das palabras ou expresións que estexan no texto orixe e no dicionario. A ver se acho algo acerca de freeling.
Re: [trasno] Stemmer
O Tuesday 12 de August de 2008, mvillarino escribiu: > Como nos ficheiros de glosario normalmente non se meten formas > conxugadas/declinadas/o_que_sexa, senón a forma "base, como o > infinitivo no caso dos verbos, e o singular masculino/neutro no dos > substantivos e adxectivos, resulta que antes de facer 1) ou 2) debo > reducir a palabra --por simplificar-- que aparece no texto inicial á > forma base, e analogamente co texto termo, e despois aplicar 1) ou 2). > > Despois do rollo, as perguntas: > > 1.- É isto lematizar? Si. Digamos que un lematizador, dado o texto "a nena come a mazá na rúa" devolvería "o neno comer o mazá en o rúa" Vén sendo o procedemento de normalización máis simple. > 2.- É isto o traballo dun stemmer? Humm, non. Un stemmer o que fai é quedarse coa raíz (stem) da palabra de acordo con determinados criterios. Por exemplo, un lematizador devolvería "libraría" como lema de "librarías", pero un stemmer podería devolver "libr". > 4.- Que tal é o stemmer ese de PERL > (http://search.cpan.org/~xern/Lingua-PT-Stemmer-0.01/lib/Lingua/GL/Stemmer.pm) > ? NPI. Pero eu para lematizar probaría a usar ben un tagger (freeling é libre e está entrenado para galego) ben dicionarios construídos con FSA (autómatas finitos), pero que eu saiba o que hai para galego a día de hoxe non é libre. Por exemplo: http://www.eti.pg.gda.pl/katedry/kiw/pracownicy/Jan.Daciuk/personal/fsa.html Este software é o que se emprega en LanguageTool (http://www.languagetool.org) para a lematización. Aínda non hai soporte para galego (e polo tanto tampouco dicionario), pero agora mesmo estou traballando neste tema. Conto con ter un dicionario máis ou menos decente en setembro/outubro. Isto non é Perl, nin tampouco Python. É C++, aínda que _creo_ que o estaban a portar a Java. > 5.- PERL é ilexíbel, hai algún en Python? Baahh, ilexíbel. Moito visio é o que hai :) > 6.- Python non é rápido, hay algún utilizábel como biblioteca C++? Vid supra :) Pero non é un stemmer, só son táboas mi rápidas e presentan o problema da ambigüidade. paraparar paraparir parapara Coido que para o que buscas o mellor sería freeling, que é C++ e tamén utilizábel como biblioteca. E rápido. Mesmo se podería ver a posibilidade de entrenalo usando como corpus cadeas de ficheiros PO, aínda que levaría o seu tempo. -- Susana Sotelo Docio http://gramatica.usc.es/~sdocio Linux User #96506 gpg-id: 0E9BEDA4 "Only after the last tree has been cut, only after the last river has been poisoned, only after the last fish has been fished, only then you will discover that money can not be eaten." -- Evelyn Waugh