-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
decompose the problem of #8 in smaller components #15
Comments
@analununes e @arademaker, normalmente, as regras flexionais do arquivo my-irules.tdl produzem apenas uma forma para cada verbo. No entanto, podemos ter mais de uma forma regular em alguns casos, como, por exemplo, na primeira pessoa do plural do pretérito perfeito do indicativo. Por exemplo, para comprar, podemos ter tanto compramos quanto comprámos, ver http://www.portaldalinguaportuguesa.org/index.php?action=lemma&lemma=81213. Por outro lado, mais de uma forma irregular também é possível. |
@leoalenc os lemas também precisam ser inseridos como entradas lexicais certo? No my-base-lexicon.tdl correto? |
@arademaker, sim, os lemas precisam ser transformados em entradas lexicais, que podem ficar em diferentes arquivos, desde que sejam mencionados no script que carrega a gramática, no caso, lkb/my-script. No entanto, essa tarefa ultrapassa em muito o trabalho da Ana, uma vez que envolve a classificação dos verbos conforme a tipologia apresentada noutra questão, tipologia essa baseada na valência verbal. Eu estava pensando exatamente nessa classificação para ser o tema do artigo que eu e você vamos elaborar. Para que a Ana possa testar, na gramática, o algoritmo de preenchimento da tabela de exceções (que pode conter também formas regulares quando estas coexistem com formas irregulares), podemos criar entradas de fantasia tratando todos os verbos como intransitivos, colocando essas entradas fantasiosas em arquivos separados, tendo o cuidado de utilizar o comando especial para léxicos de grande volume, ver script. Fiquei curioso agora pra saber quanto tempo o sistema vai levar para analisar umas 800.000 sentenças, que acho que é a quantidade de verbos conjugados do recurso lexical (o modo imperativo não será contemplado agora). |
@arademaker e @leoalenc , neste commit acredito ter produzido a tabela. No arquivo
Para fazer:
|
@analununes , os exemplos estão corretos. O sistema exige que a coluna do meio seja em caixa alta. Por outro lado, é recomendável que a forma regular ocorra primeiro. |
@analununes, não encontrei a forma fazido no MorphoBr. Só tenho escutado essa forma na fala de crianças que ainda estão aprendendo português. |
@leoalenc, ok! Vou corrigir o formato.
A forma fazido foi produzida pela regra, substituindo o sufixo 1 pelo sufixo 2. Para entrarem na tabela as formas regulares devem existir no MorphoBr? Achei que bastava serem produzidas pela regra. |
@analununes, só pode entrar na tabela o que estiver no MorphoBr! A tarefa do algoritmo é exatamente classificar as formas do recurso em regulares e irregulares, de modo a preencher a tabela. |
@leoalenc , ahh verdade, eu deveria ter percebido antes, desculpe. Agora, neste commit, corrigi o formato e temos apenas as formas que existem no MorphoBr:
|
@analununes, parece muito bom. Parabéns! Poderia gerar arquivo maior para eu dar uma olhada? Sugiro você utilizar uma amostra com as conjugações dos seguintes verbos: ver, ser, estar, ter, haver, ir, vir, poder, fazer e trazer. |
Correto que apenas as formas presentes no MorphoBr devem ser incluídas, mas não seria a geração desta forma fazido um caso de over geração indevida das regras da gramática? |
@arademaker, excelente pergunta. Na morfologia, temos uma lógica um pouco diferente da sintaxe. As regras de flexão da língua portuguesa forçosamente geram formas como fazido, que são, por definição, regulares, uma vez que a regra é o particípio passado da segunda conjugação formar-se por meio da terminação ido, por exemplo, a partir de vender, obtemos vendido. É por isso que crianças que ainda não concluíram o aprendizado da língua materna produzem formas como fazido, trazo etc. Isso demonstra que já aprenderam a morfologia da língua, o que ainda precisam aprender são as exceções. Veja, por exemplo, este estudo. O que distingue o léxico em relação aos demais componentes da gramática é constituir-se de exceções às regras da morfologia e da sintaxe. Alguém já afirmou que o léxico é o repositório de idiossincrasias da língua. Desse modo, a existência de uma forma irregular como feito bloqueia a geração da forma regular fazido. No caso de extinguir, esse bloqueio não ocorre, pelo fato de a forma regular ser também corrente. |
@leoalenc, obrigada!! Aqui está a amostra: |
@analununes, vou fazer até amanhã de manhã uma checagem exaustiva da amostra, mas posso adiantar que já detectei dois problemas. As formas assinaladas abaixo com "--" são regulares e, portanto, não deveriam constar na tabela:
Talvez esses erros decorram das formas trazê e trazemo dados pelo MorphoBr como alternativas, o que, como discutimos hoje com @arademaker, devem ser excluídas do recurso. No entanto, não encontrei na sua amostra trazê como realização de FUT-SUBJ-3SG-SUFFIX, apenas o seguinte:
Pode rodar de novo o algoritmo sem as formas espúrias do MorphoBr? Mas precisamos primeiro chegar a um consenso sobre as formas que devem ser eliminadas do MorphoBr. |
@analununes vc pode tentar explicar os casos acima? Se precisar de ajuda podemos falar amanhã. |
@analununes, complementando comentário acima, na morfologia flexional, temos a seguinte regra:
A classe de caracteres !e tem a seguinte definição:
Desse modo, dado o lema trazer, obtemos pela regra a forma trazer para o fut-subj-1sg. |
@leoalenc, obrigado pela explicação acima, mas fiquei curioso: o que explica a existência das formas irregulares então? |
@analununes afirmou:
Não, nada disso. A tabela inclui apenas as formas irregulares, independentemente do tipo de verbo, incluindo apenas formas regulares quando coexistem como alternativas a formas irregulares. Verbo irregular não significa que todas as suas formas sejam irregulares, mas apenas que algumas formas não são geradas pelas regras flexionais. Daí a necessidade de incluir as formas que não são geradas na tabela de exceções. Até um verbo como “ser” possui formas regulares. |
@analununes afirmou:
Não, não é. No MorphoBr, temos para o subjuntivo futuro de trazer:
No infinitivo, temos:
Desse modo, um algoritmo que está classificando as formas do MorphoBr, utilizando como critério as regras de my-irules.tdl, com o objetivo de atribuir os labels regular e irregular, deveria apresentar os seguintes resultados:
Como vimos em LR-POR/MorphoBr#104 (comment), as formas tratadas como irregulares acima nem deveriam fazer parte do MorphoBr. Mas incluí aqui apenas para exemplificar a natureza da tarefa do algoritmo.
|
agora entendi! Obrigada! Vou corrigir o algoritmo. |
@analununes, expliquei aqui. Sugiro reler o meu artigo conjunto com @arademaker submetido ao LREC e reler os passos do algoritmo acima.
Aplicando essa regra ao lema trazer, obtemos trazer. A forma do MorphoBr, contudo, é trouxer:
Portanto, a forma do MorphoBr é irregular, porque discrepa do que seria a forma regular pelas regras. Logo, na tabela de exceções, devemos ter apenas:
Esta linha que você incluiu está errada, porque a forma em questão inexiste do MorphoBr:
Acredito que está embutida na noção de uma tarefa de classificação, aplicada no caso às formas do MorphoBr, que não criamos formas, apenas rotulamos as formas existentes no recurso, atribuindo um dos dois rótulos regular e irregular. @arademaker, acho que a natureza da tarefa está clara, ou não? |
Ótimo, @analununes! Acabamos sobrepondo nossos comentários. Mesmo assim, leia o que escrevi enquanto você respondia: #15 (comment) |
Antes meu raciocínio era: deve ser incluída a forma regular se a forma foi produzida pela regra e se ela existe no MorphoBr (olhando apenas a forma, sem conferir as tags/regra) . Por isso demorei tanto para entender, mas agora está bem claro! |
Excelente. É por isso, @analununes, que um dos passos do algoritmo que propus acima contém exatamente esta especificação:
Ou seja, o objeto da classificação não são formas isoladas, mas pares do tipo ("trazer", ["INF","1","SG"]) e ("trouxer", ["SBJF","1","SG']), que o algoritmo, aplicando as regras infl-inf-3sg-suffix e fut-subj-1sg-suffix ao lema trazer, deverá classificar como regular e irregular, respectivamente. |
@leoalenc, corrigi o algoritmo, aqui está a nova amostra: |
@analununes, obrigado, vou dar uma olhada até amanhã. |
@analununes e @arademaker, o algoritmo parece muito bom, dada a amostra que analisei. Parabenizo a @analununes. No entanto, detectei problemas que parecem decorrer de erros sistemáticos do MorphoBr que contabilizam milhares de formas. Trata-se do problema referido aqui. Precisamos resolver essas duas issues, que, na verdade, constituem uma só, antes de rodar o algoritmo de construção da tabela de exceções. Só então vou poder saber se o algoritmo está, de fato, funcionando para a amostra dada. @analununes, você poderia produzir versão do MorphoBr sem essas formas espúrias? Atribui a você a issue. |
@leoalenc, obrigada! Vou trabalhar nessa issue! |
Legal, obrigado Leonel por revisar o resultado do algoritmo da @analununes. Ainda tenho que revisar com ela a organização do código. |
@arademaker e @leoalenc, aqui está a amostra: |
@analununes e @arademaker, detectei estes problemas:
Os dois primeiros erros sugerem a possibilidade de algum problema no algoritmo, porque não encontrei, na amostra que @analununes enviou, a forma vieste vir+V+PRF+2+SG, que é irregular. Vejam LR-POR/MorphoBr#106, onde explico que veiste constitui erro ortográfico. |
@arademaker e @analununes, o caso da forma podias, referido acima, deve-se a erro meu. Esqueci de formular a regra de impf-ind-2sg-suffix para a terceira conjugação. |
@leoalenc, para a segunda regra
um dos |
@analununes , acho que não está correto classificar a forma1 como erro simplesmente por não terminar em esse, Sem saber se a segunda forma termina ou não em esse. A condição a ser verificada primeiro seria se uma das formas termina em esse. Caso as duas formas não terminem em esse, deveriam ser agrupadas num relatório próprio.
|
@leoalenc, consegui agrupar as formas da regra 2 que não terminam em s em um relatório próprio: Resultados do algoritmo após reformular a regra 2: |
@arademaker e @analununes, eu não esperava encontrar na lista de erros.txt formas no imperativo da segunda pessoa do singular, uma vez que a regra 1 de LR-POR/MorphoBr#104 (comment) reza:
Essas formas não constituem erros, uma vez que o imperativo afirmativo se forma pela supressão do s da segunda pessoa do singular do presente do indicativo. Estas duas formas estão corretas, a segunda sendo a do imperativo negativo:
Vejo agora que faltou no meu esboço de algoritmo deixar claro que a regra 2 está no escopo do if da regra 1, pelo que nenhuma forma no imperativo é alvo da regra 2. @analununes, pode consertar o algoritmo e gerar novos arquivos de saída? |
@leoalenc, corrigi o algoritmo e escrevi em LR-POR/MorphoBr/issues/104 referenciando seu comentário para não confundirmos as issues. |
@analununes , vc pode colocar um link aqui para o código que implementou as regras do @leoalenc ? |
@arademaker, claro! Está aqui. |
@leoalenc e @arademaker, produzi nova versão da tabela de irregulares, está aqui. |
Só temos que tomar cuidado para não nos enrolarmos com estes issues em diferentes repositórios mas relacionados. |
@analununes , você pode me dar uma estimativa de quando é que poderá corrigir aquelas formas em asseis do imperfeito do subjuntivo segunda pessoa do plural? É só acentuar, ásseis. Eu precisaria, então, de uma nova tabela. Estou vendo aqui que não dá pra mandar o artigo com os dados da tabela atual, pq essas formas estão claramente erradas. Com isso, o número de formas irregulares ficou altamente inflacionado. |
@analununes vc ainda não respondeu a pergunta do @leoalenc |
@arademaker, as formas em asseis foram corrigidas no dia da submissão do artigo para STIL, na correria para a entrega devo ter esquecido de responder, desculpe. |
@arademaker e @analununes, decomponho o problema de #8, seguindo, em linhas gerais, o que fiz no conversor referido em #2, tratado no artigo submetido ao número especial da LREC, nas seguintes etapas:
Os argumentos da função is_regular são dados pelo MorphoBr. Em MorphoBr/src/SimplifyEntries,py, implementei a função build_lemma_dict, que constrói dicionário (lemma,pos) -> [(form, feats)], ou seja, atribui a cada par (lemma,pos) do MorphoBr uma lista de pares (form, feats). Para ("extinguir","V"), um desses pares será ("extinguido",["PTPST","M","SG"]). No MorphoBr, temos:
grep -Ph "\textinguir\+V\+PTPST" ~/MorphoBr/verbs/verbs-a*.dict
No momento, como ressaltei em comentário a uma issue anterior, modelei apenas o particípio passado que não se flexiona.
A lista de features ["PTPST","M","SG"] permite associar essa forma à regra past-part-suffix. Para tanto, precisamos ter um mapping de features sobre as regras de my-irules.tdl.
Um verbo como atacar não tem entrada em my-irregs.tab para a regra past-part-suffix, pois a sua única forma de particípio passado é regular. Um verbo como fazer, pelo contrário, só tem uma forma irregular, devendo ter a seguinte entrada:
feito PAST-PART-SUFFIX fazer
The text was updated successfully, but these errors were encountered: