Open leoalenc opened 3 years ago
@arademaker e @analununes, complementando o comentário acima, o gerador permitirá também verificar se a gramática, mais especificamente a morfologia, hipergera ou não. Em #12 foquei apenas a análise, não verificando a geração. Não o fiz porque não consegui colocar a gramática para gerar as formas. @arademaker, saberia fazer isso?
@arademaker e @analununes, esta questão relaciona-se com #15.
@arademaker e @analununes, estou bastante curioso pra saber se as minhas regras estão gerando em excesso, ou seja, gerando formas inexistentes no MorphoBr para formas de verbos não listadas na tabela de exceções. Ou seja, as regras flexionais juntamente com essa tabela produzem exatamente o que está no recurso lexical? Para mim, já está claro que as regras geram formas inexistentes, como fazido. Isso era esperado, uma vez que se trata de um verbo bastante irregular. Como a forma correta do particípio se encontra na tabela, esta juntamente com as regras não produzirão a forma fazido. O que é importante verificar, contudo, são eventuais casos de verbos que não são irregulares.
@arademaker e @analununes, ao meu ver, o primeiro passo para resolução de #8, seguindo o que fiz no conversor de adjetivos, é implementar um gerador de formas partindo das regras do arquivo my-irules.tdl. Esse gerador permitirá distinguir formas regulares de irregulares. Via de regra, apenas essas últimas integram a tabela de exceções do arquivo my-irregs.tab. Formas regulares são incluídas nessa tabela somente quando há uma forma irregular alternativa. Por exemplo, na versão das regras flexionais referida em #12, verbos como sorrir apresentam, entre outras, a seguinte forma irregular:
Para saber se a forma é irregular, é preciso tentar gerar, no algoritmo em Haskell, essa forma por meio da versão em Haskell da regra:
Como essa forma não é gerada pela regra, então é incluída a seguinte exceção na tabela:
sorrio PRES-IND-1SG-SUFFIX sorrir
A outra situação é representada pela seguinte forma:
No MorphoBr, temos:
grep -Ph "\textinguir\+V\+PTPST" ~/MorphoBr/verbs/verbs-a*.dict
No momento, modelei apenas o particípio passado que não se flexiona. A forma extinguido é regular, gerada pela regra abaixo, ao passo que extinto não é:
Na tabela de exceções, precisamos ter: