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

agreement NOUN/ADJ via amod #299

Open
leoalenc opened this issue May 7, 2021 · 42 comments
Open

agreement NOUN/ADJ via amod #299

leoalenc opened this issue May 7, 2021 · 42 comments
Labels
review aguardando revisão de sugestão
Milestone

Comments

@leoalenc
Copy link

leoalenc commented May 7, 2021

@arademaker, I accidentally found the following parsing error:

pt_bosque-ud-train.conllu-27 palavras palavra NOUN _ Gender=Fem|Number=Plur 25 nmod _ _
pt_bosque-ud-train.conllu:28 simples simples ADJ _ Gender=Masc|Number=Plur 27 amod _ _

The correct analysis should be simples ADJ _ Gender=Fem|Number=Plur.
I was looking up the different ways the adjective simples, which does not show any formal variation in gender and number, is analysed.

@leoalenc leoalenc added the review aguardando revisão de sugestão label May 7, 2021
arademaker added a commit that referenced this issue May 8, 2021
@arademaker
Copy link
Collaborator

arademaker commented May 8, 2021

Obrigado @leoalenc , de fato, encontrei vários outros casos com o comando:

cat *.conllu | udapy -q util.Eval node='if node.feats["Gender"] != node.parent.feats["Gender"] and node.upos == "ADJ": node.parent.draw()'

Curioso, não estamos conseguindo ensinar para os parsers a regra simples da gramática do POR sobre concordência de gênero entre substantivo e adjetivo! Com o comando abaixo temos o número de casos:

% cat *.conllu | udapy -q util.Eval node='if node.feats["Gender"] != node.parent.feats["Gender"] and node.upos == "ADJ" and node.deprel == "amod": print(node)' | wc -l
     212

Vou manter este issue aberto e generalizar o problema. Em tempo, é sempre melhor inspecionar e trabalhar no branch workbench, onde os arquivos estão na pasta documents separador por notícia.

@arademaker
Copy link
Collaborator

arademaker commented May 8, 2021

Casos mais curiosos são:

CP837-3 De facto, é necessário uma certa dose de fé para considerar o uso do DIU, admite Debra Bronstein, vice-presidente responsável pelo «marketing» na GynoPharma.

Neste caso, vice-presidente está Fem apenas porque o anotador fez a concordância com o nome Debra. Faz sentido? Ou deveríamos omitir para vice-presidente e responsável o Gender=Fem?

arademaker added a commit that referenced this issue May 8, 2021
@leoalenc
Copy link
Author

leoalenc commented May 8, 2021

@arademaker , esse caso é mesmo interessante! Estou surpreso com a quantidade de casos. Anotei a dica sobre o melhor ramo no qual se trabalhar.

@leoalenc
Copy link
Author

leoalenc commented May 8, 2021

Casos mais curiosos são:

CP837-3 De facto, é necessário uma certa dose de fé para considerar o uso do DIU, admite Debra Bronstein, vice-presidente responsável pelo «marketing» na GynoPharma.

Neste caso, vice-precidente está Fem apenas porque o anotador fez a concordância com o nome Debra. Faz sentido? Ou deveríamos omitir para vice-presidente e responsável o Gender=Fem?

Sim, @arademaker, a construção em questão é um aposto, e a regra para apostos na língua portuguesa (e em várias outras línguas, como o alemão) é que concordam com o antecedente. Vejamos:

admite o deputado, diretor do hospital e encarregado pelo programa
admite a deputada, diretora do hospital e encarregada pelo programa
*admite o deputado, diretora do hospital e encarregada pelo programa
*admite a deputada, diretor do hospital e encarregado pelo programa

Desse modo, é correta, ao meu ver, a atribuição de traço de gênero aos dependentes apositivos de um núcleo em consonância com o traço de gênero deste. Numa gramática baseada em unificação o aposto apresentaria os mesmos traços que o núcleo regente, mesmo quando o núcleo do aposto for subespecificado.

@arademaker
Copy link
Collaborator

Boa. Temos então uma regra interessante. Não apenas um adj precisa concordar com o noun que ele modifica via amod, mas também a relação de appos precisa propagar concordância.

@leoalenc
Copy link
Author

leoalenc commented May 8, 2021

Boa. Temos então uma regra interessante. Não apenas um adj precisa concordar com o noun que ele modifica via amod, mas também a relação de appos precisa propagar concordância.

@arademaker, um ADJ deve concordar também com o seu nsubj:

A menina é bonita.
Ela é simples.

@leoalenc
Copy link
Author

leoalenc commented May 8, 2021

@arademaker, outro caso de concordância do ADJ é este:

acho essa solução mais barata
acho essa solução mais simples
essa solução parece simples
essa solução parece complicada

Nesse tipo de construção, o ADJ é o núcleo de um xcomp, devendo concordar com o seu sujeito. Em UD, porém, não é expressa a relação de um xcomp com o seu sujeito, diferentemente do que ocorre numa análise gerada por uma gramática em HPSG ou LFG que modela a relação de controle obrigatório.

@arademaker
Copy link
Collaborator

As duas primeiras não são xcomp são? Ou vc as colocou exatamente para contrastar como as duas últimas?

Em tempo, até agora vejo então umas regras interessantes para detectar inconsistências mas não temos como automaticamente corrigir. Quando existir diferença, teremos que manualmente decidir pela análise do head ou do dependente.

@leoalenc
Copy link
Author

leoalenc commented May 9, 2021

As duas primeiras não são xcomp são? Ou vc as colocou exatamente para contrastar como as duas últimas?

@arademaker, ao meu ver, em todos esses exemplos temos o ADJ como núcleo que exerce a função xcomp dos verbos achar e parecer, respectivamente. Veja os exemplos análogos em inglês na documentação de UD. Não considero parecer mero verbo de ligação como ser.

Em tempo, até agora vejo então umas regras interessantes para detectar inconsistências mas não temos como automaticamente corrigir. Quando existir diferença, teremos que manualmente decidir pela análise do head ou do dependente.

@arademaker, o núcleo (em inglês, head) determina as propriedades do dependente com o qual estabelece relação de concordância. Portanto, a análise que deve prevalecer normalmente é a do núcleo, caso esteja completamente especificado. Haverá situações, contudo, em que o inverso ocorrerá:

Palhaços são alegres.

No núcleo palhaços, temos NOUN/Gender=Masc|Number=Plur. Admitindo um léxico em que a forma alegres não é especificada para gênero, numa gramática de unificação normalmente vamos ter também NOUN/Gender=Masc|Number=Plur na representação do adjetivo.
O melhor é incluirmos esse item na pauta de uma próxima conversa nossa ao vivo, pois envolve a própria concepção desse nível de um treebank no formato UD constituído pelos traços morfossintáticos. Por outro lado, seria interessante demonstrar no LKB como isso tudo funciona numa gramática HPSG.

@arademaker
Copy link
Collaborator

arademaker commented May 9, 2021

Correto, mas no corpus podem haver erros no head, talvez possamos olhar uma amostra ver se os casos. Além disso, para a relação appos a propagação não é clara, podemos adotar que o token mais à esquerda dita a concordância. correção, antecedente rege a relação, dito acima.

O caso da cópula onde o head é o adj é interessante. Segue a discussão do "syntactic theory" do subj se comportar como determinante, certo?

@arademaker
Copy link
Collaborator

@leoalenc , o @wellington36 achou este caso também. Podemos deixar para considerar NUM depois, mas esta analise também sugere casos de dois saltos, um token que tem que concordar em outro que não é ligado à ele imediatamente mas intermediado por algum outro:

https://github.com/UniversalDependencies/UD_Portuguese-Bosque/blob/workbench/documents/CF0377.conllu#L27-L44

@arademaker arademaker changed the title adjective form "simples" wrongly tagged as masculine some missing agreement between feats expected to agree May 13, 2021
@wellington36
Copy link

@leoalenc com este comando podemos pegar os casos em que o ADJ não concorda em Gender ou Number com o parent.

cat *.conllu | udapy -q util.Eval node='if (node.feats["Gender"] != node.parent.feats["Gender"] and node.upos == "ADJ" and node.deprel == "amod") or (node.feats["Number"] != node.parent.feats["Number"] and node.upos == "ADJ" and node.deprel == "amod"): print(node)' | wc -l

284

Mas tem os casos como ditos no comentário acima onde o ADJ ou o NOUN pode não ter Gender ou Number, com este comando tiro estes casos, mas é melhor analisar antes de ignorar eles.

cat *.conllu | udapy -q util.Eval node='if (node.feats["Gender"] != node.parent.feats["Gender"] and node.upos == "ADJ" and node.deprel == "amod" and node.parent.feats["Gender"] != "" and node.feats["Gender"] != "") or (node.feats["Number"] != node.parent.feats["Number"] and node.upos == "ADJ" and node.deprel == "amod" and node.parent.feats["Gender"] != "" and node.feats["Gender"] != ""): print(node)' | wc -l

194

@arademaker
Copy link
Collaborator

@wellington36 , o problema já está claro, e o uso da udapy também já exemplifiquei acima. A questão agora é corrigirmos com as regras acima apresentadas. Elas estão claras para você? Como vc está pensando em implementar o código que irá corrigir os casos ?

@arademaker
Copy link
Collaborator

arademaker commented May 13, 2021

O problema desta tarefa é que as vezes miramos em um problema e acertamos outro. Rodando o que seria nosso caso mais simples acima, ADJ modificando NOUN com divergência em Gender/Number, temos:

% cat *.conllu | udapy -q util.Eval node='if (node.upos == "ADJ" and node.deprel == "amod" and node.parent.upos == "NOUN" and node.feats["Gender"] != node.parent.feats["Gender"] and node.feats["Number"] != node.parent.feats["Number"]): print(node)'
<CF24-3#13, grandes>
<CF27-2#15, duradouros>
<CF149-1#8, diária>
<CF170-4#9, completa>
<CF377-1#14, holandes>
<CF483-4#20, gratuitos>
<CF506-3#23, imparciais>
<CF968-2#15, capazes>
<CP42-3#9, recente>
<CP44-4#15, excessiva>
<CP66-4#23, trémula>
<CP115-11#8, contente>
<CP139-4#23, dispostas>
<CP149-6#14, locais>
<CP190-2#17, temporal>
<CP271-7#8, fascinantes>
<CP372-2#26, público>
<CP395-3#31, novas>
<CP582-2#40, primários>
<CP697-1#42, rodoviários>
<CP831-4#4, livres>
<CP910-5#18, médias>
<CP987-2#8, permanentes>

Olhando o primeiro caso, surpresa, a árvore estava errada, o ADJ grandes estava modificando safra (dai a falta de concordância) e não os estragos. Corrigi a árvore aproveitando para resolver outro problema, tokenização de 1994/95 que para mim é uma conjunção de dois anos: 1994 e 1995.

A árvore final é:

CF24-3 A seca que atingiu as áreas produtoras de grãos não deve causar grandes estragos na safra 1994/95.

─┮  
 │   ╭─╼ A DET det 1 2  
 │ ╭─┾ seca NOUN nsubj 2 11  
 │ │ │ ╭─╼ que PRON nsubj 3 4  
 │ │ ╰─┾ atingiu VERB acl:relcl 4 2  
 │ │   │ ╭─╼ as DET det 5 6  
 │ │   ╰─┾ áreas NOUN obj 6 4  
 │ │     ├─╼ produtoras ADJ amod 7 6  
 │ │     │ ╭─╼ de ADP case 8 9  
 │ │     ╰─┶ grãos NOUN nmod 9 6  
 │ ├─╼ não ADV advmod 10 11  
 ╰─┾ deve VERB root 11 0  
   ╰─┮ causar VERB xcomp 12 11  
     │ ╭─╼ grandes ADJ amod 13 14  
     ├─┶ estragos NOUN obj 14 12  
     │ ╭─╼ em ADP case 15 17  
     │ ├─╼ a DET det 16 17  
     ├─┾ safra NOUN obl 17 12  
     │ ╰─┮ 1994 NUM nummod 18 17  
     │   │ ╭─╼ / PUNCT punct 19 20  
     │   ╰─┶ 95 NUM conj 20 18  
     ╰─╼ . PUNCT punct 21 12  

E o mesmo comando acima já não retorna este sentença:

% cat *.conllu | udapy -q util.Eval node='if (node.upos == "ADJ" and node.deprel == "amod" and node.parent.upos == "NOUN" and node.feats["Gender"] != node.parent.feats["Gender"] and node.feats["Number"] != node.parent.feats["Number"]): print(node)'
<CF27-2#15, duradouros>
<CF149-1#8, diária>
...

@arademaker
Copy link
Collaborator

Note ainda que minha busca foi mais simples que a sua:

if (node.upos == "ADJ" and node.deprel == "amod" and node.parent.upos == "NOUN" and
    node.feats["Gender"] != node.parent.feats["Gender"] and
    node.feats["Number"] != node.parent.feats["Number"]):
    print(node)

arademaker added a commit that referenced this issue May 13, 2021
arademaker added a commit that referenced this issue May 13, 2021
@arademaker
Copy link
Collaborator

Os dois casos seguintes também foram erros nas árvores sintáticas.

@arademaker
Copy link
Collaborator

arademaker commented May 13, 2021

CF377-1 Já os quatro leilões realizados durante a Expomilk venderam 124 cabeças de raças holandes, jersei, pardo-suíço e girolanda.

Um caso onde a concordância não está correta porque talvez seja mesmo uma sentença agramatical? e no corpus não queremos corrigir isso... @leoalenc ?

@arademaker
Copy link
Collaborator

Outro caso @leoalenc :

CF483-4 Geralmente procurados por estudantes adolescentes, esses serviços são abertos a qualquer interessado e têm a vantagem de ser gratuitos ou cobrar preços baixos se comparados aos de empresas de consultoria.

gratuitos estava como amod de vantagem... a copula modificando o substantivo. Troquei para acl?!

─┮  
 │     ╭─╼ Geralmente ADV advmod 1 2  
 │   ╭─┾ procurados VERB acl 2 8  
 │   │ │ ╭─╼ por ADP case 3 4  
 │   │ ├─┾ estudantes NOUN obl:agent 4 2  
 │   │ │ ╰─╼ adolescentes ADJ amod 5 4  
 │   │ ╰─╼ , PUNCT punct 6 2  
 │   ├─╼ esses DET det 7 8  
 │ ╭─┶ serviços NOUN nsubj:pass 8 10  
 │ ├─╼ são AUX aux:pass 9 10  
 ╰─┾ abertos VERB root 10 0  
   │ ╭─╼ a ADP case 11 13  
   │ ├─╼ qualquer DET det 12 13  
   ├─┶ interessado NOUN obj 13 10  
   │ ╭─╼ e CCONJ cc 14 15  
   ├─┾ têm VERB conj 15 10  
   │ │ ╭─╼ a DET det 16 17  
   │ ├─┾ vantagem NOUN obj 17 15  
   │ │ │ ╭─╼ de SCONJ mark 18 20  
   │ │ │ ├─╼ ser AUX cop 19 20  
   │ │ ╰─┾ gratuitos ADJ acl 20 17  
   │ │   │ ╭─╼ ou CCONJ cc 21 22  
   │ │   ╰─┾ cobrar VERB conj 22 20  
   │ │     ╰─┮ preços NOUN obj 23 22  
   │ │       ╰─╼ baixos ADJ amod 24 23  
   │ │ ╭─╼ se SCONJ mark 25 26  
   │ ╰─┾ comparados VERB advcl 26 15  
   │   │ ╭─╼ a ADP case 27 28  
   │   ╰─┾ os PRON obj 28 26  
   │     │ ╭─╼ de ADP case 29 30  
   │     ╰─┾ empresas NOUN nmod 30 28  
   │       │ ╭─╼ de ADP case 31 32  
   │       ╰─┶ consultoria NOUN nmod 32 30  
   ╰─╼ . PUNCT punct 33 10  

arademaker added a commit that referenced this issue May 13, 2021
@arademaker
Copy link
Collaborator

arademaker commented May 13, 2021

No commit 49bc94b, mais casos de análises sintáticas erradas (attachment errado) e mais um caso de tokenização errada corrigidos. Apenas um caso de feature errada corrigida.

@leoalenc
Copy link
Author

O caso da cópula onde o head é o adj é interessante. Segue a discussão do "syntactic theory" do subj se comportar como determinante, certo?

@arademaker, sim, na HPSG, seguindo a teoria X-barra, há um paralelismo entre determinantes e sujeitos, expresso no fato de ocuparem a posição de especificador.

@leoalenc
Copy link
Author

@leoalenc , o @wellington36 achou este caso também. Podemos deixar para considerar NUM depois, mas esta analise também sugere casos de dois saltos, um token que tem que concordar em outro que não é ligado à ele imediatamente mas intermediado por algum outro:

https://github.com/UniversalDependencies/UD_Portuguese-Bosque/blob/workbench/documents/CF0377.conllu#L27-L44

@arademaker e @wellington36, na expressão R$ 615,7 mil, equivalentes a [...], o ADJ é um aposto, que naturalmente concorda em número com o numeral, maior que um. Quanto ao gênero masculino, parece decorrer a unidade monetária real. Vejamos:

Comprei 100 rúpias, necessárias (?necessários) para comprar o ingresso.

@leoalenc
Copy link
Author

CF377-1 Já os quatro leilões realizados durante a Expomilk venderam 124 cabeças de raças holandes, jersei, pardo-suíço e girolanda.

Um caso onde a concordância não está correta porque talvez seja mesmo uma sentença agramatical? e no corpus não queremos corrigir isso... @leoalenc ?

@arademaker, talvez ocorra aí a chamada concordância ideológica com o termo subentendido gado, ou seja, raça de gado. Sugiro não corrigir, se foi isso mesmo que o jornalista escreveu, apesar da gramaticalidade (sob a ótica da língua padrão) discutível.

@arademaker arademaker changed the title some missing agreement between feats expected to agree agreement NOUN/ADJ Jun 4, 2021
@arademaker arademaker changed the title agreement NOUN/ADJ agreement NOUN/ADJ via mod Jun 4, 2021
@arademaker arademaker changed the title agreement NOUN/ADJ via mod agreement NOUN/ADJ via amod Jun 4, 2021
arademaker pushed a commit that referenced this issue Jun 4, 2021
correções relacionadas ao #299
@wellington36
Copy link

wellington36 commented Jun 4, 2021

Do último PR agora faltam 80 casos que fora divididos em categorias:

Casos díficeis (17 casos):

(CF17-2#27, figurativo), (CF17-2#29, abstrato), (CF74-1#2, VIRGEM), (CF106-1#4, pornô), (CF182-1#1, Querido), (CF245-2#11, superior), (CF426-2#15, trivial), (CF506-3#23, imparciais), (CF833-2#21, financeiro), (CP103-2#6, contíguas), (CP190-2#17, temporal), (CP223-1#12, possível), (CP258-5#14, última), (CP568-4#38, fictícios), (CP616-2#74, financeiros), (CP726-3#30, similar), (CP883-6#20, restantes)

Casos de concordancia (9 casos):

(CP52-12#16, móvel), (CP211-1#11, restritas), (CP605-3#33, directivo), (CP759-2#65, superiores), (CP764-5#7, política), (CP890-1#13, primeiro), (CP908-1#6, antiacidez), (CP968-8#59, industrial), (CP973-5#29, respeitante)

Árvore estranha/errada (12 casos):

(CP187-2#67, nova), (CP211-4#16, primeiro), (CP268-2#31, responsável), (CP367-2#45, grande), (CP395-5#23, diversas), (CP457-8#12, última), (CP541-3#15, superior), (CP558-3#46, argelinas), (CP595-3#24, dispostos), (CP632-7#13, acidentado), (CP751-3#1, Discreto), (CP868-1#10, segunda)

Falso positivo (2 ou mais ADJ para um NOUN) (15 casos):

(CF38-2#19, médio), (CF66-4#20, 1º.), (CF377-1#14, holandes), (CF683-2#18, II), (CP232-4#4, francês), (CP290-4#33, XVII), (CP308-4#4, segundo), (CP396-1#30, petrolífero), (CP450-10#29, mesmo), (CP458-5#18, XVI), (CP477-4#28, 4º), (CP645-10#26, central), (CP667-4#16, segundo), (CP733-1#64, Khmer), (CP843-2#57, educativa)

Falso positivo (ADJ concorda com 2 ou mais NOUN) (12 casos):

(CF125-3#21, baratos), (CF649-5#23, intensos), (CP271-7#8, fascinantes), (CP396-1#42, paisagísticos), (CP419-1#22, respectivos), (CP448-4#13, passados), (CP497-5#6, russas), (CP543-2#57, municipais), (CP709-5#29, locais), (CP831-4#4, livres), (CP895-22#21, políticas), (CP987-2#8, permanentes)

Falso positivo (exceção a regra) (5 casos):

(CF304-1#30, quartas), (CF840-5#16, cover), (CP786-2#26, antiaborto), (CP798-1#7, pró-referendo), (CP968-8#22, hard-core)

Possível erro de escrita (3 casos):

(CF754-3#35, responsável), (CP161-5#23, domésticos), (CP348-3#24, últimos)

Falta de Gender ou Number (7 casos):

(CF150-1#4, feliz), (CF535-2#28, Fria), (CF911-5#29, Fria), (CP109-2#61, Cultural), (CP161-6#3, Municipal), (CP454-3#10, Municipais), (CP469-4#16, básica)

arademaker added a commit that referenced this issue Jun 7, 2021
@arademaker
Copy link
Collaborator

alguns dos casos acima resolvidos em 43e03ab @wellington36

arademaker added a commit that referenced this issue Jun 7, 2021
@arademaker
Copy link
Collaborator

Em bad5a99 alguns outros dos casos classificados como 'difíceis' acima.

@wellington36 wellington36 mentioned this issue Jun 8, 2021
arademaker pushed a commit that referenced this issue Jun 8, 2021
correções de concordância
@arademaker
Copy link
Collaborator

Em caf460c, corrigi alguns problemas introduzidos no último commit. Mas o que falta para resolver este issue?

@wellington36
Copy link

Agora temos 59 casos, faltando principalmente os que considerei como casos difíceis onde varios já foram mencionados nesse issue ou em outros, dos demais casos com falta de Gender/Number acabei de corrigir e mandarei no próximo PR, e dos marcados como possível erro de escrita (um deles um pouco mais delicado que foi mencionado em reunião (CP348-3#24, últimos) que será necessário modificar a sentença toda), antes de fazer esse PR (sai hoje ou no máximo amanhã) vou dar mais uma verificada em todos os casos de falso positivo e exceções a regra, com intuito de garantir que não estamos deixando mais nenhum caso relevante de lado. Espero com esse PR deixar apesar os casos marcados como casos difíceis, falso positivo e exceções a regra. Segue status atual de casos (sem contar as correções já feitas para o próximo PR).

@wellington36
Copy link

wellington36 commented Jun 8, 2021

59 casos:

Casos díficeis (15 casos):

(CF17-2#27, figurativo), (CF17-2#29, abstrato), (CF106-1#4, pornô), (CF182-1#1, Querido), (CF245-2#11, superior), (CF426-2#15, trivial), (CF833-2#21, financeiro), (CP103-2#6, contíguas), (CP190-2#17, temporal), (CP223-1#12, possível), (CP258-5#14, última), (CP457-8#12, última), (CP568-4#38, fictícios), (CP726-3#30, similar), (CP883-6#20, restantes)

Casos de concordancia (1 casos):

(CP605-3#33, directivo)

Árvore estranha/errada (0 casos):

Falso positivo (2 ou mais ADJ para um NOUN) (15 casos):

(CF66-4#20, 1º.), (CF377-1#14, holandes), (CF683-2#18, II), (CP232-4#4, francês), (CP290-4#33, XVII), (CP308-4#4, segundo), (CP396-1#30, petrolífero), (CP450-10#29, mesmo), (CP458-5#18, XVI), (CP477-4#28, 4º), (CP496-6#14, XVIII), (CP645-10#26, central), (CP667-4#16, segundo), (CP733-1#64, Khmer), (CP843-2#57, educativa)

Falso positivo (ADJ concorda com 2 ou mais NOUN) (12 casos):

(CF125-3#21, baratos), (CF649-5#23, intensos), (CP271-7#8, fascinantes), (CP396-1#42, paisagísticos), (CP419-1#22, respectivos), (CP448-4#13, passados), (CP497-5#6, russas), (CP543-2#57, municipais), (CP709-5#29, locais), (CP831-4#4, livres), (CP895-22#21, políticas), (CP987-2#8, permanentes)

Falso positivo (exceção a regra) (5 casos):

(CF304-1#30, quartas), (CF840-5#16, cover), (CP786-2#26, antiaborto), (CP798-1#7, pró-referendo), (CP968-8#22, hard-core)

Possível erro de escrita (3 casos):

(CF754-3#35, responsável) , (CP161-5#23, domésticos) , (CP348-3#24, últimos)

Falta de Gender ou Number (8 casos):

(CF150-1#4, feliz) , (CF535-2#28, Fria) , (CF911-5#29, Fria) , (CP109-2#61, Cultural) , (CP161-6#3, Municipal) , (CP454-3#10, Municipais) , (CP469-4#16, básica) , (CP632-7#13, acidentado)

@wellington36 wellington36 mentioned this issue Jun 9, 2021
@wellington36
Copy link

No #327 temos algumas correções de casos com falta de Gender or Number que não foram pegos antes e casos introduzidos pelo issue #300. Tal revisão foi possível graças ao último comentário, os casos que não foram pegos antes podem ser pegos pelo seguinte comando:

cat *.conllu | udapy -q util.Eval node='if ((node.feats["Gender"] != node.parent.feats["Gender"] or node.feats["Number"] != node.parent.feats["Number"] or node.feats["Gender"] == "" or node.feats["Number"] == "") and node.parent.upos == "NOUN" and node.upos == "ADJ" and node.deprel == "amod"): node.parent.parent.draw(attributes="form,lemma,upos,feats,deprel")'

@wellington36
Copy link

Pelo #327 temos 46 casos divididos em:

Casos díficeis (13 casos):

(CF17-2#27, figurativo), (CF17-2#29, abstrato), (CF106-1#4, pornô), (CF182-1#1, Querido), (CF426-2#15, trivial), (CF833-2#21, financeiro), (CP103-2#6, contíguas), (CP190-2#17, temporal), (CP223-1#12, possível), (CP258-5#14, última), (CP457-8#12, última), (CP568-4#38, fictícios), (CP726-3#30, similar)

Casos de concordancia (0 casos):

Árvore estranha/errada (0 casos):

Falso positivo (2 ou mais ADJ para um NOUN) (15 casos):

(CF66-4#20, 1º.), (CF377-1#14, holandes), (CF683-2#18, II), (CP232-4#4, francês), (CP290-4#33, XVII), (CP308-4#4, segundo), (CP396-1#30, petrolífero), (CP450-10#29, mesmo), (CP458-5#18, XVI), (CP477-4#28, 4º), (CP496-6#14, XVIII), (CP645-10#26, central), (CP667-4#16, segundo), (CP733-1#64, Khmer), (CP843-2#57, educativa)

Falso positivo (ADJ concorda com 2 ou mais NOUN) (12 casos):

(CF125-3#21, baratos), (CF649-5#23, intensos), (CP271-7#8, fascinantes), (CP396-1#42, paisagísticos), (CP419-1#22, respectivos), (CP448-4#13, passados), (CP497-5#6, russas), (CP543-2#57, municipais), (CP709-5#29, locais), (CP831-4#4, livres), (CP895-22#21, políticas), (CP987-2#8, permanentes)

Falso positivo (exceção a regra) (5 casos):

(CF304-1#30, quartas), (CF840-5#16, cover), (CP786-2#26, antiaborto), (CP798-1#7, pró-referendo), (CP968-8#22, hard-core)

Possível erro de escrita (1 casos):

(CP348-3#24, últimos)

Falta de Gender ou Number (0 casos):

arademaker added a commit that referenced this issue Aug 14, 2021
arademaker added a commit that referenced this issue Aug 15, 2021
@wellington36 wellington36 modified the milestone: release 2.9 Sep 19, 2021
@arademaker arademaker modified the milestones: release 2.9, release 2.10 Nov 4, 2021
@wellington36
Copy link

Segundo comentário #365 (comment) temos alguns casos de fora de nossa query (casos de concordancia entre NOUN/ADJ), no caso concordância entre PROPN/ADJ que podem ser encontradas com a atualização da query:

cat *.conllu | udapy -q util.Eval node='if ((node.feats["Gender"] != node.parent.feats["Gender"] or node.feats["Number"] != node.parent.feats["Number"] or node.feats["Gender"] == "" or node.feats["Number"] == "") and node.parent.upos in ["NOUN","PROPN"] and node.upos == "ADJ" and node.deprel == "amod"): print(node)' | wc -l

83

@arademaker, ou talvez possamos discutir isso em outro issue com nome de agreement PROPN/ADJ via amod?

arademaker added a commit that referenced this issue Nov 15, 2021
@arademaker
Copy link
Collaborator

Maybe worth to check here UniversalDependencies/UD_English-EWT#186

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
review aguardando revisão de sugestão
Projects
None yet
Development

No branches or pull requests

3 participants