LR-POR / PorGram

A Portuguese HPSG Grammar
Other
2 stars 1 forks source link

implement generator for verb forms #13

Open leoalenc opened 3 years ago

leoalenc commented 3 years ago

@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:

139 eu sorrio 0 5

Para saber se a forma é irregular, é preciso tentar gerar, no algoritmo em Haskell, essa forma por meio da versão em Haskell da regra:

pres-ind-1sg-suffix :=
%suffix (gir jo) (cir ço) (!gir !go) (!puir !puo) (!zguir !zgo) (seguir sigo) (ger jo) (!ger !go) (guer go) (cer ço) (!zar !zo) (ear eio)
pres-ind-1sg-lex-rule.

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:

473 o cachorro tem extinto o gato 0 36

No MorphoBr, temos:

grep -Ph "\textinguir\+V\+PTPST" ~/MorphoBr/verbs/verbs-a*.dict

extinguida extinguir+V+PTPST+F+SG extinguidas extinguir+V+PTPST+F+PL extinguido extinguir+V+PTPST+M+SG extinguidos extinguir+V+PTPST+M+PL extinta extinguir+V+PTPST+F+SG extintas extinguir+V+PTPST+F+PL extinto extinguir+V+PTPST+M+SG extintos extinguir+V+PTPST+M+PL

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 é:

past-part-suffix :=
; (partir partido) (puir puído) (seguir seguido) (vender vendido) (doar doado)
%suffix (!lir !lido) (!kuir !kuído) (!quir !quido) (er ido) (ar ado)
past-part-lex-rule.

Na tabela de exceções, precisamos ter:

extinguido PAST-PART-SUFFIX extinguir
extinto PAST-PART-SUFFIX extinguir
leoalenc commented 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?

leoalenc commented 3 years ago

@arademaker e @analununes, esta questão relaciona-se com #15.

leoalenc commented 2 years ago

@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.