UniversalDependencies / UD_Portuguese-Bosque

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

mesóclises #101

Closed livyreal closed 2 years ago

livyreal commented 7 years ago

como estão e como tratar mesóclises no corpus?

@fcbr vc poderia gerar uma lista de todos os verbos que estão no metadado "text" com dois hífens? é possível usar os metadados nas queries?

Exemplo da sentença abaixo tirar: "centrar-se-á"

 id="886" ref="CP168-4" source="CETEMPúblico n=168 sec=clt sem=96a" forest="1" text="A discussão centrar-se-á em três grandes painéis: a edição na sociedade europeia de informação, a dimensão cultural no Tratado da União Europeia e o mercado do livro na Europa: problemas de comercialização (preço fixo)."
1   A   o   DET <artd>|ART|F|S|@>N  Definite=Def|Gender=Fem|Number=Sing|PronType=Art    2   det _   _
2   discussão   discussão   NOUN    <np-def>|N|F|S|@SUBJ>   Gender=Fem|Number=Sing  3   nsubj   _   _
3   centrar-    centrar VERB    <mv>|V|FUT|3S|IND|@FS-STA   Mood=Ind|Number=Sing|Person=3|Tense=Fut|VerbForm=Fin    0   root    _   _
4   se-á    se  PRON    PERS|F|3S|ACC|@<ACC-PASS    Case=Acc|Gender=Fem|Number=Sing|Person=3|PronType=Prs   3   dobj    _   _
5   em  em  ADP PRP|@<ADVL  _   8   case    _   _
6   três    três    NUM <card>|NUM|M|P|@>N  _   8   nummod  _   _
7   grandes grande  ADJ ADJ|M|P|@>N Gender=Masc|Number=Plur 8   amod    _   _
8   painéis painel  NOUN    <np-def>|N|M|P|@P<  Gender=Masc|Number=Plur 3   nmod    _   _
9   :   :   PUNCT   PU|@PU  _   3   punct   _   _
10  a   o   DET <artd>|ART|F|S|@>N  Definite=Def|Gender=Fem|Number=Sing|PronType=Art    11  det _   _
11  edição  edição  NOUN    <first-cjt>|<np-def>|N|F|S|@N<PRED  Gender=Fem|Number=Sing  8   appos   _   _
12  em  em  ADP <sam->|PRP|@N<  _   14  case    _   _
13  a   o   DET <-sam>|<artd>|ART|@>N   Definite=Def|PronType=Art   14  det _   _
14  sociedade   sociedade   NOUN    <np-def>|N|F|S|@P<  Gender=Fem|Number=Sing  11  nmod    _   _
15  europeia    europeu ADJ ADJ|F|S|@N< Gender=Fem|Number=Sing  14  amod    _   _
16  de  de  ADP PRP|@N< _   17  case    _   _
17  informação  informação  NOUN    <np-idf>|N|F|S|@P<  Gender=Fem|Number=Sing  14  nmod    _   _
18  ,   ,   PUNCT   PU|@PU  _   11  punct   _   _
19  a   o   DET <artd>|ART|F|S|@>N  Definite=Def|Gender=Fem|Number=Sing|PronType=Art    20  det _   _
20  dimensão    dimensão    NOUN    <cjt>|<np-def>|N|F|S|@N<PRED    Gender=Fem|Number=Sing  11  conj    _   _
21  cultural    cultural    ADJ ADJ|F|S|@N< Gender=Fem|Number=Sing  20  amod    _   _
22  em  em  ADP <sam->|PRP|@N<  _   24  case    _   _
23  o   o   DET <-sam>|<artd>|ART|M|S|@>N   Definite=Def|Gender=Masc|Number=Sing|PronType=Art   24  det _   _
24  Tratado Tratado PROPN   PROP|M|S|@P<    Gender=Masc|Number=Sing 20  nmod    _   MWE:Tratado=da=União=Europeia
25  de  de  ADP <sam->|PRP|@N<  _   27  case    _   _
26  a   o   DET <artd>|<-sam>|DET|F|S|@>N   Definite=Def|Gender=Fem|Number=Sing|PronType=Art    27  det _   _
27  União   União   PROPN   PROP|@P<    Number=Sing 24  nmod    _   MWE:União=Europeia
28  Europeia    Europeia    PROPN   PROP|@N<    Number=Sing 27  name    _   _
29  e   e   CONJ    <co-n<pred>|KC|@CO  _   11  cc  _   _
30  o   o   DET <artd>|ART|M|S|@>N  Definite=Def|Gender=Masc|Number=Sing|PronType=Art   31  det _   _
31  mercado mercado NOUN    <cjt>|<np-def>|N|M|S|@N<PRED    Gender=Masc|Number=Sing 11  conj    _   _
32  de  de  ADP <sam->|PRP|@N<  _   34  case    _   _
33  o   o   DET <-sam>|<artd>|ART|M|S|@>N   Definite=Def|Gender=Masc|Number=Sing|PronType=Art   34  det _   _
34  livro   livro   NOUN    <np-def>|N|M|S|@P<  Gender=Masc|Number=Sing 31  nmod    _   _
35  em  em  ADP <sam->|PRP|@N<  _   37  case    _   _
36  a   o   DET <-sam>|<artd>|ART|@>N   Definite=Def|PronType=Art   37  det _   _
37  Europa  Europa  PROPN   PROP|F|S|@P<    Gender=Fem|Number=Sing  34  nmod    _   _
38  :   :   PUNCT   PU|@PU  _   3   punct   _   _
39  problemas   problema    NOUN    <cjt>|<np-idf>|N|M|P|@N<PRED    Gender=Masc|Number=Plur 31  appos   _   _
40  de  de  ADP PRP|@N< _   41  case    _   _
41  comercialização comercialização NOUN    <np-idf>|N|F|S|@P<  Gender=Fem|Number=Sing  39  nmod    _   _
42  (   (   PUNCT   PU|@PU  _   43  punct   _   _
43  preço   preço   NOUN    <cjt>|<np-idf>|N|M|S|@APP   Gender=Masc|Number=Sing 39  appos   _   _
44  fixo    fixo    ADJ ADJ|M|S|@N< Gender=Masc|Number=Sing 43  amod    _   _
45  )   )   PUNCT   PU|@PU  _   43  punct   _   _
46  .   .   PUNCT   PU|@PU  _   3   punct   _   _
fcbr commented 7 years ago

Que tal essa?

http://wnpt.brlcloud.com:10035/repositories/bosque#query/r/mesoclise

Mas ela pega muita coisa que nao e' mesoclise (como "boca-a-boca").

livyreal commented 7 years ago

não... a imensa maioria dos resultados são mwe. Não dá pra procurar dentre estas palavras com 2 hífens no "text" quais tem a POS verbo?

livyreal commented 7 years ago

consegui aqui a query, na verdade uma regexp que pega verbo com hífen :) vou analisar as ocorrências e depois atualizo o comentário

livyreal commented 7 years ago

há poucas ocorrências no corpus, 16 apenas. Mas é um fenômeno relevante na língua, especialmente na distição Português Europeu e Português Brasileiro, já que este fenômeno só occorre em PE. (estou adicionando aqui o arquivo com as 16 ocorrências mesoclise_complete_sent.txt)

Mesóclises não estão tokenizadas de forma regular (o bosque do Dan está da mesma forma, pois imagino que esta tokenização/lemmatização veio do PALAVRAS).

Exemplos:

# text Tratar-se-á de vacinas preventivas que poderão ser eficazes contra qualquer estirpe do HIV2.
# sent_id CP495-6
1   Tratará-    tratar  VERB    <mv>|<hyphen>|<se-passive>|V|FUT|3S|IND|@FS-STA Mood=Ind|Number=Sing|Person=3|Tense=Fut|VerbForm=Fin    0   root    _   _
2   se- se  PRON    <hyphen>|PERS|F|3S|ACC|@<ACC-PASS   Case=Acc|Gender=Fem|Number=Sing|Person=3|PronType=Prs   1   dobj    _   _
3   de  de  ADP PRP|@<PIV   _   4   case    _   _
# text Em 6 de Outubro, ver-se-é se estamos mesmo perante uma «débacle» comunista em Setúbal.
# sent_id CP549-4
6   verá-   ver VERB    <mv>|<hyphen>|V|FUT|3S|IND|@FS-STA  Mood=Ind|Number=Sing|Person=3|Tense=Fut|VerbForm=Fin    0   root    _   _
7   se  se  PRON    PERS|M/F|3S/P|ACC|@<SUBJ    Case=Acc|Gender=Unsp|PronType=Prs   6   nsubj   _   _

Consistentemente a mesóclise foi tokenizada em "verbo conjugado" + "pronome" (ou seja, ver-se-é = verá+se), mas tokens às vezes têm hífen, às vezes não. A priori, só precisamos arrumar os hífens nos tokens.

A documentação de UD é clara no que diz respeito a tokenização: apenas palavras sintáticas contam, logo me parece OK o output do PALAVRAS em "verbo conjugado + pronome". As guidelines também indicam que documentação específica de língua é necessário.

Este é um fenômeno que não fica registrado no corpus se seguirmos as guidelines e não tivermos nenhuma feature indicando que há mesóclise. Considerando o uso do corpus para estudar fenômenos linguísticos, me parece uma grande perda. Então gostaria de pensar em uma forma de, ainda que sigamos as guidelines e tokenizarmos a frase em palavras sintáticas, não perder a informação de mesóclise. Talvez adicionar alguma feature neste sentido. O que vc acha, @claudiafreitas?

livyreal commented 7 years ago

related to https://github.com/UniversalDependencies/docs/issues/315 and https://github.com/UniversalDependencies/docs/issues/342#issuecomment-265589260

vcvpaiva commented 7 years ago

Discordo se que seja fenomeno exclusivo do PE. Existe no portugues do Brasil tb. So' e' pouco usado.

claudiafreitas commented 7 years ago

bom, o Temer gosta de mesóclises, então é complicado dizer que é só em Portugal... @livyreal, me parece que o mais tranquilo, se quisermos deixar indicada a mesóclise, é usar o campo MISC pra isso...

arademaker commented 7 years ago

@claudiafreitas tenha em mente que o campo MISC não é usado pela maioria dos parsers para treinamento, qualquer coisa neste campo é quase 'anotação para humanos apenas'.

livyreal commented 7 years ago

me corrigindo, este é um fenômeno que só aparece na porção europeia do corpus, não estou falando que não existe em PB, mas que não existe no nosso corpus

Em https://github.com/UniversalDependencies/docs/issues/315 recomenda-se usar estes multitokens:

1-2    Fê-lo   _       _
1      Fez     fazer   VERB
2      lo      ele     PRON

Então podemos incluir estes multitokens, corrigir os hifens nos tolkens e usar o camp MISC com a informação mesoclitic.

Alguma outra sugestão?

claudiafreitas commented 7 years ago

concordo com a @livyreal . E sim, @arademaker , a informação de mesóclise serve para nada do ponto de vista de PLN, é apenas informação para humanos.

arademaker commented 7 years ago

parece que este assunto está relacionado com #5 também, certo? Vejam que em https://github.com/UniversalDependencies/docs/issues/315 não existem muitas decisões, acredito que caberá nós decidirmos pelas sugestões apresentadas.

Um ponto operacional importante é que ainda não temos no corpus os multiword tokens (http://universaldependencies.org/format.html) e nossa biblioteca http://github.com/own-pt/cl-conllu ainda não é capaz de ler ou escrever estes multiword tokens.

Em tempo, discordo de @claudiafreitas em usar o campo MISC para isso, soluções propostas em https://github.com/UniversalDependencies/docs/issues/315 me parece atender o problema.

arademaker commented 7 years ago

Mensagem antiga do Andre Martins

My scripts may still be useful for a better tokenization of clitic pronouns (see https://github.com/UniversalDependencies/docs/issues/315#issuecomment-226686689) but that doesn't seem to be critical for this version.

Coloquei no repo agora os scripts dele, commit 4495091483fa246db333ece26df1563b7e17d4bb, talvez possamos usar as idéias em nossa lib. Issue também relevante https://github.com/own-pt/cl-conllu/issues/1

livyreal commented 7 years ago

Entao, considerando discussoes em https://github.com/UniversalDependencies/docs/issues/315#issuecomment-269876007

Como esta: (CP495-6)

1   Tratará-    tratar  VERB    <mv>|<hyphen>|<se-passive>|V|FUT|3S|IND|@FS-STA Mood=Ind|Number=Sing|Person=3|Tense=Fut|VerbForm=Fin    0   root    _   _
2   se- se  PRON    <hyphen>|PERS|F|3S|ACC|@<ACC-PASS   Case=Acc|Gender=Fem|Number=Sing|Person=3|PronType=Prs   1   expl    _   ChangedBy=Issue135

Como fica:

1-2 Tratar-se-á
1   Tratará tratar  VERB    <mv>|<hyphen>|<se-passive>|V|FUT|3S|IND|@FS-STA Mood=Ind|Number=Sing|Person=3|Tense=Fut|VerbForm=Fin    0   root    _   mesoclitc
2   se  se  PRON    <hyphen>|PERS|F|3S|ACC|@<ACC-PASS   Case=Acc|Gender=Fem|Number=Sing|Person=3|PronType=Prs   1   expl    _   ChangedBy=Issue135

considerando que 1- nao vamos mudar a anotacao do PALAVRAS pq nao estamos mudando as informacoes que vieram dele 2- vamos deixar em MISC do VERB a info "mesoclitic" para marcar o fenomeno em PB (marcacao para humanos) 3- hifens nao devem aparecer nos tokens e lemmas, apenas no multiwordtoken

@fcbr com isso vc consegue arrumar todas as mesoclises (verbos com dois hifens ;-) ) ?

fcbr commented 7 years ago

Posso sim, mas devemos ficar atentos que esta regra nao vai capturar o Fê-lo que voce comentou acima.

Hopefullly os que sobrarem serao poucos e ai um processamento manual e' factivel. (Fê-lo so' aparece uma vez, por exemplo).

fcbr commented 7 years ago

@livyreal acabei de implementar uma rotina de verificacao com a seguinte regra:

Usando as regras do @arademaker (pelo menos a parte de matching) seria algo como:

?a:[pos=VERB, form ~ /-$/ ] . ?b:[pos=PRON,form ~ /-$/] expl(?a, ?b)

Eu so' encontrei 5 ocorrencias:

[CP243-11] apresenta- se-
[CP495-6] Tratará- se-
[CP584-11] Seguiria- se-
[CP606-9] ficará- se-
[CP670-1] processará- se-

E' isso mesmo? Se sim, prefiro fazer na mao (pois recuperar a mesoclise original parece ser dificil via codigo).

livyreal commented 7 years ago

"Fê-lo" nao eh mesoclise. arrumamos este issue e depois arrumamos os outros verbos com cliticos.

wellington36 commented 2 years ago

Temos um problema de quebra da estrutura do conllu neste issue, estava mechendo com a biblioteca conllu de python e identifiquei um problema na estrutura do conllu a coluna misc é identificada (assim como a feats) como um dicionario em python por isso espera-se algo da forma Key1=Value1|Key2=Value2 onde a key está na documentação, porém neste issue foi decidido por adicionar o valor mesoclitc sem uma key o que causa erro na estrutura padrão de UD (compromete uso de scripts de correção ou de busca).

1   Tratará tratar  VERB    <mv>|<hyphen>|<se-passive>|V|FUT|3S|IND|@FS-STA Mood=Ind|Number=Sing|Person=3|Tense=Fut|VerbForm=Fin    0   root    _   mesoclitc

Em particular:

$ awk '$1 !~ /^#/ && $10 !~ /^(.*=.*)$/ {print $10}' *.conllu | sort | uniq -c | sort -nr
 215036 _
   9357 
     34 SUBJ_INDEF
     16 mesoclitic
      1 ​_

A questão mencionada se relaciona com os issue #133, #136 e este.

arademaker commented 2 years ago

@wellington36 na documentação de campo misc leia-se:

However, it is not forbidden to have a “|”-delimited annotation that does not start with an attribute name, does not contain “=”, or even is empty (as long as the whole MISC is not empty).

ou seja, não é um erro ter os valores SUBJ_INDEF e mesoclitic no MISC. Mas em ambos os casos acho hoje desnecesários. A marcação de sujeito indefinido pode ser facilmente recuperada via consulta de verbos sem filhos nsubj ou csubj. Os casos de mesóclises podem ser achados via consultas como awk '$2 ~ /.*-.*-.*/' *.conllu

arademaker commented 2 years ago

commit 4dae98ca7 fecha este issue desfazendo mudanças de 2017 que introduziram marcações no MISC hoje consideradas desnecessárias. Também corrigi dois casos de tokenização erradas.