Skip to content
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

regra para formas verbais #1

Open
arademaker opened this issue May 8, 2021 · 4 comments
Open

regra para formas verbais #1

arademaker opened this issue May 8, 2021 · 4 comments

Comments

@arademaker
Copy link
Collaborator

arademaker commented May 8, 2021

@leoalenc disse:

A regra número três é a seguinte: muitas formas verbais na conjugação portuguesa têm múltiplas análises, por exemplo: Comprava, pode ser primeira ou terceira pessoa do singular do pretérito imperfeito. Compra pode ser terceira pessoa do singular do presente do indicativo ou segunda pessoa do singular do imperativo. Esses casos deveriam ser desconsiderados na comparação entre os dois recursos porque não representam discrepâncias interessantes. O nosso recurso apresenta todas as possibilidades de análise de uma dada forma, essa é a natureza de um recurso desse tipo, O corpo bosque apresenta a anotação da palavra num determinado contexto. Portanto, os dois recursos estarão compatíveis se uma das análises do bosque unificar com uma das análises do conjunto de análises do nosso recurso morfológico.

Curiosamente, não encontrei casos de comprava no bosque e todos os casos de compra estão como NOUN. Mas para chegava temos quatro casos, um deles:

% cat *.conllu | udapy -q util.Eval node='if node.form == "chegava": node.parent.draw(attributes="form,lemma,upos,feats")'
# sent_id = CF126-1#38
# text = de uma dívida que, em 1982, chegava a Cr 70 milhões
 ╭─╼ de de ADP _
 ┢─╼ uma um DET Definite=Ind|Gender=Fem|Number=Sing|PronType=Art
─┾ dívida dívida NOUN Gender=Fem|Number=Sing
 │ ╭─╼ que que PRON Gender=Fem|Number=Sing|PronType=Rel
 │ │ ╭─╼ , , PUNCT _
 │ │ ┢─╼ em em ADP _
 │ ┢─┾ 1982 1982 NUM NumType=Card
 │ │ ╰─╼ , , PUNCT _
 ╰─┾ chegava chegar VERB Mood=Ind|Number=Sing|Person=3|Tense=Imp|VerbForm=Fin
   │ ╭─╼ a a ADP _
   ╰─┾ Cr cr NOUN Gender=Masc|Number=Sing
     ╰─┮ 70 70 NUM NumType=Card
       ╰─╼ milhões milhão NUM NumType=Card
...

No Morpho-BR temos:

% rg "^chegava\t" ~/work/morpho-br/verbs/*
/Users/ar/work/morpho-br/verbs/verbs-aal.dict
16073:chegava	chegar+V+IMPF+1+SG
16074:chegava	chegar+V+IMPF+2+SG
16075:chegava	chegar+V+IMPF+3+SG     <=

Só temos assim o imperfeito do indicativo, certo? imperfeito do indicativo é sempre pretérito? O Tense=Imp então unifica. O VerbForm=Fin indica que ele está flexionado, certo? E exige então o Mood doc. O Mood=Ind estaria fora do escopo do Morpho-Br certo?

@leoalenc
Copy link
Contributor

leoalenc commented May 9, 2021

@leoalenc disse:

A regra número três é a seguinte: muitas formas verbais na conjugação portuguesa têm múltiplas análises, por exemplo: Comprava, pode ser primeira ou terceira pessoa do singular do pretérito imperfeito. Compra pode ser terceira pessoa do singular do presente do indicativo ou segunda pessoa do singular do imperativo. Esses casos deveriam ser desconsiderados na comparação entre os dois recursos porque não representam discrepâncias interessantes. O nosso recurso apresenta todas as possibilidades de análise de uma dada forma, essa é a natureza de um recurso desse tipo, O corpo bosque apresenta a anotação da palavra num determinado contexto. Portanto, os dois recursos estarão compatíveis se uma das análises do bosque unificar com uma das análises do conjunto de análises do nosso recurso morfológico.

Curiosamente, não encontrei casos de comprava no bosque e todos os casos de compra estão como NOUN. Mas para chegava temos quatro casos, um deles:

% cat *.conllu | udapy -q util.Eval node='if node.form == "chegava": node.parent.draw(attributes="form,lemma,upos,feats")'
# sent_id = CF126-1#38
# text = de uma dívida que, em 1982, chegava a Cr 70 milhões
 ╭─╼ de de ADP _
 ┢─╼ uma um DET Definite=Ind|Gender=Fem|Number=Sing|PronType=Art
─┾ dívida dívida NOUN Gender=Fem|Number=Sing
 │ ╭─╼ que que PRON Gender=Fem|Number=Sing|PronType=Rel
 │ │ ╭─╼ , , PUNCT _
 │ │ ┢─╼ em em ADP _
 │ ┢─┾ 1982 1982 NUM NumType=Card
 │ │ ╰─╼ , , PUNCT _
 ╰─┾ chegava chegar VERB Mood=Ind|Number=Sing|Person=3|Tense=Imp|VerbForm=Fin
   │ ╭─╼ a a ADP _
   ╰─┾ Cr cr NOUN Gender=Masc|Number=Sing
     ╰─┮ 70 70 NUM NumType=Card
       ╰─╼ milhões milhão NUM NumType=Card
...

No Morpho-BR temos:

% rg "^chegava\t" ~/work/morpho-br/verbs/*
/Users/ar/work/morpho-br/verbs/verbs-aal.dict
16073:chegava	chegar+V+IMPF+1+SG
16074:chegava	chegar+V+IMPF+2+SG
16075:chegava	chegar+V+IMPF+3+SG     <=

Só temos assim o imperfeito do indicativo, certo? imperfeito do indicativo é sempre pretérito? O Tense=Imp então unifica. O VerbForm=Fin indica que ele está flexionado, certo? E exige então o Mood doc. O Mood=Ind estaria fora do escopo do Morpho-Br certo?

@arademaker, sim, imperfeito do indicativo IMPF (imp em UD) é sempre pretérito (i.e., passado). O outro pretérito é o perfeito, past em UD. A unificação entre estas duas representações ocorre sem problema:

chegava chegar VERB Mood=Ind|Number=Sing|Person=3|Tense=Imp|VerbForm=Fin

chegava chegar+V+IMPF+3+SG

No design do MorphoBr, utilizamos alguns princípios de economia representacional. IMPF subentende Mood=Ind, que, por sua vez, subentende VerbForm=Fin. A primeira inferência resulta da própria definição de IMPF na documentação do MorphoBr, a segunda não está explicitada, algo que numa gramática HPSG estaria por meio da hierarquia de tipos.

@leoalenc
Copy link
Contributor

leoalenc commented May 9, 2021

@arademaker, veja:

Python 2.7.18 (default, Mar  8 2021, 13:02:45) 
[GCC 9.3.0] on linux2
Type "help", "copyright", "credits" or "license()" for more information.
>>> from CheckUnification import check_unification as unif
>>> from CheckUnification import fs
>>> bosque=fs("[lemma='chegar',form='chegava', cat='V', tense='impf', mood='ind', verbform='fin', num='sg', pers=3]")
>>> print bosque
[ cat      = 'V'       ]
[ form     = 'chegava' ]
[ lemma    = 'chegar'  ]
[ mood     = 'ind'     ]
[ num      = 'sg'      ]
[ pers     = 3         ]
[ tense    = 'impf'    ]
[ verbform = 'fin'     ]
>>> morpho=fs("[lemma='chegar',form='chegava', cat='V', tense='impf', num='sg', pers=3]")
>>> print morpho
[ cat   = 'V'       ]
[ form  = 'chegava' ]
[ lemma = 'chegar'  ]
[ num   = 'sg'      ]
[ pers  = 3         ]
[ tense = 'impf'    ]
>>> unif(bosque,morpho)
feature structures unify
>>>  

@arademaker
Copy link
Collaborator Author

Correto, então o que @analununes está fazendo no https://github.com/cpdoc/test/issues/16 agora pode ser trazido para cá.. queremos produzir o repor usando esta lib de unificação. Lá estávamos tentando trabalhar em adicionar uma funcionalidade na lib Haskell que estávamos construindo para conter de forma agregada todas as funções que estamos identificando como necessárias para PLN no DHBB. Mas concordo agora que usar a lib no NLTK para este caso específico é bem mais prático, pelo menos no curto prazo.

@arademaker
Copy link
Collaborator Author

arademaker commented May 9, 2021

Depois podemos tentar unificar este diretório aqui com o https://github.com/cpdoc/test e https://github.com/cpdoc/toolset e ainda temos um bando de scripts antigos em https://github.com/cpdoc/dhbb-nlp/tree/master/src.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants