UniversalDependencies / UD_Portuguese-Bosque

This Universal Dependencies (UD) Portuguese treebank.
Other
48 stars 11 forks source link

PRON or DET lacks the PronType feature #365

Open wellington36 opened 2 years ago

wellington36 commented 2 years ago

We have many DET and PRON cases without the PronType feature (initially 49 cases), documented in https://universaldependencies.org/svalidation.html#pron-or-det-lacks-the-prontype-feature, found by command:

cat *.conllu | udapy -TMA ud.MarkBugs tests='no-PronType' | less -R
arademaker commented 2 years ago

Considerar o resultado da query

http://match.grew.fr/?corpus=UD_Portuguese-Bosque@dev&custom=6183caa64d364&clustering=A.upos

caso relacionado ao https://github.com/UniversalDependencies/UD_Portuguese-GSD/issues/28

arademaker commented 2 years ago

Em PT, não me parece que "o|a|os|as" possa ser pronome demonstrativo. Mas http://match.grew.fr/?corpus=UD_Portuguese-Bosque@dev&custom=618541eba8674 retorna 37 casos. Muitos casos de o que. Sugiro estudarmos e corrigirmos aqui antes de terminar https://github.com/UniversalDependencies/UD_Portuguese-GSD/issues/25.

Aqui eu esperava um resultado muito menor:

$ awk '$0 ~ /^[0-9]/ && $2 ~ /^(os?|as?|umas?|uns|umas)$/ {print $2,$3,$6}' *.conllu | sort | uniq -c | sort -nr
10306 o o Definite=Def|Gender=Masc|Number=Sing|PronType=Art
9259 a o Definite=Def|Gender=Fem|Number=Sing|PronType=Art
3941 a a _
3293 os o Definite=Def|Gender=Masc|Number=Plur|PronType=Art
2211 as o Definite=Def|Gender=Fem|Number=Plur|PronType=Art
1398 uma um Definite=Ind|Gender=Fem|Number=Sing|PronType=Art
 418 o o Gender=Masc|Number=Sing|PronType=Dem
 263 a o Definite=Def|PronType=Art
 121 o ele Case=Acc|Gender=Masc|Number=Sing|Person=3|PronType=Prs
  94 uma um NumType=Card
  52 os o Gender=Masc|Number=Plur|PronType=Dem
  45 a o Gender=Fem|Number=Sing|PronType=Dem
  41 uma uma NumType=Card
  41 a ela Case=Acc|Gender=Fem|Number=Sing|Person=3|PronType=Prs
  36 a a ExtPos=ADP
  32 o o Gender=Masc|Number=Sing|PronType=Art
  30 a o Gender=Fem|Number=Sing|PronType=Art
  28 os eles Case=Acc|Gender=Masc|Number=Plur|Person=3|PronType=Prs
  22 uns um Gender=Masc|Number=Plur|PronType=Art
  21 as o Gender=Fem|Number=Plur|PronType=Dem
  20 os o Gender=Masc|Number=Plur|PronType=Art
  16 as elas Case=Acc|Gender=Fem|Number=Plur|Person=3|PronType=Prs
  15 a a ExtPos=SCONJ
  13 a a Gender=Fem|Number=Sing|PronType=Dem
  11 umas um Gender=Fem|Number=Plur|PronType=Art
  11 as o Gender=Fem|Number=Plur|PronType=Art
  11 as a Gender=Fem|Number=Plur|PronType=Dem
  10 uma uma _
  10 as o Definite=Def|PronType=Art
   9 uma uma Definite=Ind|ExtPos=SCONJ|Gender=Fem|Number=Sing|PronType=Art
   8 o o Number=Sing|PronType=Art
   8 a a Number=Sing
   6 uns um Gender=Masc|Number=Plur|PronType=Ind
   6 a o _
   6 a a Number=Sing|PronType=Art
   6 a a Definite=Def|Gender=Fem|Number=Sing|PronType=Art
   5 uma um Gender=Fem|Number=Sing|PronType=Art
   5 os os _
   5 o o Number=Sing
   5 a o Definite=Def|Gender=Fem|Number=Plur|PronType=Art|Typo=Yes
   4 a a ExtPos=ADJ
   3 uma uma Gender=Masc|Number=Sing
   3 uma uma Definite=Ind|Gender=Fem|Number=Sing|PronType=Art
   3 uma um Gender=Fem|Number=Sing|PronType=Ind
   3 os os Number=Sing
   3 os o Definite=Def|Gender=Masc|Number=Plur|PronType=Dem
   3 o ele Gender=Masc|Number=Sing|PronType=Prs
   3 a a Gender=Masc|Number=Sing
   3 a a ExtPos=ADV
   2 o o Definite=Def|Gender=Masc|Number=Sing|PronType=Dem
   2 o o Definite=Def|Gender=Masc|Number=Plur|PronType=Art|Typo=Yes
   2 o o Definite=Def|Gender=Masc|Number=Plur|PronType=Art
   2 o o Definite=Def|Gender=Fem|Number=Sing|PronType=Art|Typo=Yes
   2 a o Definite=Def|Gender=Fem|Number=Sing|PronType=Dem
   2 a ela Gender=Fem|Number=Sing|PronType=Prs
   2 a a Gender=Fem|Number=Sing|PronType=Art
   2 a a ExtPos=CCONJ
   1 uns uma Definite=Ind|Gender=Fem|Number=Sing|PronType=Art|Typo=Yes
   1 uma uma Number=Sing
   1 uma uma Gender=Masc|Number=Plur
   1 uma um Gender=Fem|Number=Sing
   1 uma um Definite=Ind|Gender=Masc|Number=Sing|PronType=Art|Typo=Yes
   1 uma um Definite=Ind|Gender=Fem|PronType=Art
   1 uma um Definite=Ind|ExtPos=SCONJ|Gender=Fem|Number=Sing|PronType=Art
   1 os os Definite=Def|Gender=Masc|Number=Plur|PronType=Art
   1 os o Gender=Masc|Number=Sing|PronType=Rel
   1 os o Gender=Masc|Number=Sing|PronType=Dem
   1 os o Definite=Def|Gender=Masc|Number=Sing|PronType=Art|Typo=Yes
   1 os o Definite=Def|Gender=Masc|Number=Plur|PronType=Rel
   1 os eles Gender=Masc|Number=Plur|PronType=Dem
   1 o o PronType=Dem
   1 o o Gender=Masc|Number=Sing|PronType=Rel
   1 o o Gender=Fem|Number=Plur|PronType=Dem
   1 o o Definite=Ind|Gender=Masc|Number=Sing|PronType=Art
   1 o o Definite=Def|Gender=Masc|Number=Sing|PronType=Rel
   1 o ele Gender=Masc|Number=Sing|PronType=Dem
   1 o ele Case=Acc|Gender=Masc|Number=Sing|Person=3|PronType=Dem
   1 as o Definite=Def|Gender=Fem|Number=Plur|PronType=Dem
   1 as a Gender=Fem|Number=Plur|PronType=Art
   1 a o Number=Sing|PronType=Art
   1 a o Definite=Def|Gender=Masc|Number=Sing|PronType=Art
   1 a ela Gender=Fem|Number=Sing|PronType=Dem
wellington36 commented 2 years ago

Temos 39 casos pendentes neste issue de falta da feature PronType, os casos aqui cobertos tem intercessão com outros issues, podemos separar os casos deste issue da seguinte forma que devem ser tratados a parte com certo cuidado:

wellington36 commented 2 years ago

Aqui eu esperava um resultado muito menor:

$ awk '$0 ~ /^[0-9]/ && $2 ~ /^(os?|as?|umas?|uns|umas)$/ {print $2,$3,$6}' *.conllu | sort | uniq -c | sort -nr

De fato, temos que rever varios pontos deste output, tokens com apenas uma feature me parecem um bom começo. btw, não me parece necessário manter um output desse tamanho aqui.

arademaker commented 2 years ago

@wellington36, o problema de fazer queries muito específicas focando apenas no problema 'sem PronType' é que não prestamos atenção aos outros casos do corpus e podemos introduzir mais inconsistência.

Veja o caso de cada, modificando sua query encontrei mais casos e realmente me parece que podemos tentar estudar as diferentes expressões e seus contextos para tentar chegar em uma definição de como analisar. Pode ser uma analise apenas para todos os casos, podem ser mais de uma analise etc.

e ainda, se focamos apenas no par a o:

% awk '$0 ~ /^[0-9]/ && $2 ~ /^(os?|as?|umas?|uns|umas)$/ {print $2,$3,$4,$6}' *.conllu | sort | uniq -c | sort | grep "a o"
   1 a o DET Definite=Def|Gender=Masc|Number=Sing|PronType=Art
   1 a o DET Gender=Fem|Number=Sing|PronType=Dem
   1 a o DET Number=Sing|PronType=Art
   2 a o PRON Definite=Def|Gender=Fem|Number=Sing|PronType=Art
   2 a o PRON Definite=Def|Gender=Fem|Number=Sing|PronType=Dem
   5 a o DET Definite=Def|Gender=Fem|Number=Plur|PronType=Art|Typo=Yes
   6 a o ADP _
  30 a o DET Gender=Fem|Number=Sing|PronType=Art
  44 a o PRON Gender=Fem|Number=Sing|PronType=Dem
 263 a o DET Definite=Def|PronType=Art
9257 a o DET Definite=Def|Gender=Fem|Number=Sing|PronType=Art

investigando as relações, curioso ter um DET como nsubj. Então se olharmos a sintaxe mais confusão ainda.

ar@tenis documents % awk '$0 ~ /^[0-9]/ && $2 ~ /^(os?|as?|umas?|uns|umas)$/ {print $2,$3,$4,$6,$8}' *.conllu | sort | uniq -c | sort | grep "a o" | head
   1 a o DET Definite=Def|Gender=Fem|Number=Sing|PronType=Art nsubj
   1 a o DET Definite=Def|Gender=Masc|Number=Sing|PronType=Art det
   1 a o DET Gender=Fem|Number=Sing|PronType=Art fixed
   1 a o DET Gender=Fem|Number=Sing|PronType=Dem appos
   1 a o DET Number=Sing|PronType=Art flat:name
   1 a o PRON Definite=Def|Gender=Fem|Number=Sing|PronType=Art det
   1 a o PRON Definite=Def|Gender=Fem|Number=Sing|PronType=Art obl
   1 a o PRON Definite=Def|Gender=Fem|Number=Sing|PronType=Dem nmod
   1 a o PRON Definite=Def|Gender=Fem|Number=Sing|PronType=Dem root
   1 a o PRON Gender=Fem|Number=Sing|PronType=Dem acl:relcl
wellington36 commented 2 years ago

Veja o caso de cada, modificando sua query encontrei mais casos e realmente me parece que podemos tentar estudar as diferentes expressões e seus contextos para tentar chegar em uma definição de como analisar. Pode ser uma analise apenas para todos os casos, podem ser mais de uma analise etc.

Essa query mostra algumas possíveis questões a tratar, como cada com upos PROPN e ADV e lemma Cada. Em particular temos uma questão envolvendo fixed com a expressão cada um http://match.grew.fr/?corpus=UD_Portuguese-Bosque@dev&custom=618fb4656f4f4 (17 casos) no commit dcf2a99 um destes casos foi resolvido proponho um PR para fazer uma análise equivalente para os demais 16 casos.

wellington36 commented 2 years ago

263 a o DET Definite=Def|PronType=Art

Interresante olhe http://match.grew.fr/?corpus=UD_Portuguese-Bosque@dev&custom=618fb8404d365&clustering=M.upos, esses casos deveriam ter sido tratados antes, no contexto dos issues #299 e #300 (casos concordancia), consideramos a concordancia entre ADJ com NOUN e DET com NOUN, porêm não consideramos os casos entre ADJ com PROPN e DET com PROPN.

arademaker commented 2 years ago

Seria bom se @leoalenc pudesse dar uma olhada em algumas destas queries. Eu corrigi 1-2 apenas para termos como sugestão de análise. Quase todas estas inconsistências ocorreram por conta de relações fixed usadas excessivamente (IMHO).

wellington36 commented 2 years ago

263 a o DET Definite=Def|PronType=Art

Interresante olhe http://match.grew.fr/?corpus=UD_Portuguese-Bosque@dev&custom=618fb8404d365&clustering=M.upos, esses casos deveriam ter sido tratados antes, no contexto dos issues #299 e #300 (casos concordancia), consideramos a concordancia entre ADJ com NOUN e DET com NOUN, porêm não consideramos os casos entre ADJ com PROPN e DET com PROPN.

Os (257) casos da query http://match.grew.fr/?corpus=UD_Portuguese-Bosque@dev&custom=6195210c8cfe6 estão contidos nesses 263, me parece interresante atacar esses casos.

wellington36 commented 2 years ago

Corrigindo alguns casos do comentário acima provavelmente podemos corrigir via script adicionando Gender e Number, mas é interressante aproveitar e verificar de o PROPN deveria ser NOUN.