cpdoc / dhbb-nlp

processamentos DHBB
Other
5 stars 2 forks source link

corrigir nomes e dependências com o léxico #31

Open odanoburu opened 6 years ago

arademaker commented 6 years ago
  1. dicionarios do repo dhbb/dict, por token, quando corrigir algum token, apontando para novo pai, as entradas dele devem também ir para o pai.
odanoburu commented 6 years ago

consegui um resultado preliminar, mas precisava testá-lo.

vcs podem me ajudar a achar casos em que a correção dos nomes corrigiria uma situação de appos errado? com isso eu poderia testar se o código está funcionando corretamente. @suemi-higuchi @arademaker @claudiafreitas

como exemplo, imaginando que na sentença abaixo

no Rio de Janeiro, então Distrito Federal

'Distrito' estivesse apontando para 'Janeiro' -- depois do código que arruma a subárvore dos nomes, 'Distrito' teria como HEAD 'Rio', e passaríamos de um erro de HEAD para um acerto!

suemi-higuchi commented 6 years ago

@odanoburu , no arquivo 11.conllu tinha alguns erros assim, veja por exemplo o appos SANERJ que apontava para Rio ao invés de Saneamento:

# sent_id = 6
 # text = Foi assessor-auxiliar da presidência da Saneamento do Rio de Janeiro (Sanerj), de 1972 a 1975, e na Companhia Estadual de Águas e Esgoto (Cedae) ocupou o cargo de encarregado-geral, de 1976 a 1983.
 1  Foi ser AUX _   Mood=Ind|Number=Sing|Person=3|Tense=Past|VerbForm=Fin   2   aux _   _
 2  assessor-auxiliar   assessor-auxiliar   VERB    _   VerbForm=Inf    0   root    _   SpacesAfter=\n
 3-4    da  _   _   _   _   _   _   _   _
 3  de  de  ADP _   _   5   case    _   _
 4  a   o   DET _   Definite=Def|Gender=Fem|Number=Sing|PronType=Art    5   det _   _
 5  presidência presidência NOUN    _   Gender=Fem|Number=Sing  2   obl _   _
 6-7    da  _   _   _   _   _   _   _   _
 6  de  de  ADP _   _   8   case    _   _
 7  a   o   DET _   Definite=Def|Gender=Fem|Number=Sing|PronType=Art    8   det _   _
 8  Saneamento  saneamento  PROPN   _   Number=Sing 5   nmod    _   _
  9-10  do  _   _   _   _   _   _   _   _
  9 de  de  ADP _   _   11  case    _   _
  10    o   o   DET _   Definite=Def|Gender=Masc|Number=Sing|PronType=Art   11  det _   _
 -11    Rio Rio PROPN   _   Gender=Masc|Number=Sing 5   nmod    _   _
 +11    Rio Rio PROPN   _   Gender=Masc|Number=Sing 8   flat:name   _   _
  12    de  de  ADP _   _   13  case    _   _
 -13    Janeiro Janeiro PROPN   _   Number=Sing 11  nmod    _   _
 +13    Janeiro Janeiro PROPN   _   Number=Sing 8   flat:name   _   _
  14    (   (   PUNCT   _   _   15  punct   _   SpaceAfter=No
 -15    Sanerj  Sanerj  PROPN   _   Gender=Masc|Number=Sing 11  appos   _   SpaceAfter=No
 +15    Sanerj  Sanerj  PROPN   _   Gender=Masc|Number=Sing 8   appos   _   &ident|SpaceAfter=No
  16    )   )   PUNCT   _   _   15  punct   _   SpaceAfter=No

Outro exemplo do arquivo 11.conllu, CAES apontava para Saneamento ao invés de Companhia:

# sent_id = 3
 # text = Funcionário público, construiu sua carreira na Companhia de Águas, Esgoto e Saneamento (CAES), em Niterói (RJ), onde começou, em 1963, como chefe do escritório de obras, acumulando cargos até chegar a diretor-presidente, em 1966.
 1  Funcionário funcionário NOUN    _   Gender=Masc|Number=Sing 4   nsubj   _   _
 2  público público ADJ _   Gender=Masc|Number=Sing 1   amod    _   SpaceAfter=No
 3  ,   ,   PUNCT   _   _   1   punct   _   _
 4  construiu   construir   VERB    _   Mood=Ind|Number=Sing|Person=3|Tense=Past|VerbForm=Fin   0   root    _   _
 5  sua seu DET _   Gender=Fem|Number=Sing|PronType=Prs 6   det _   _
 6  carreira    carreira    NOUN    _   Gender=Fem|Number=Sing  4   obj _   _
 7-8    na  _   _   _   _   _   _   _   _
 7  em  em  ADP _   _   9   case    _   _
 8  a   o   DET _   Definite=Def|Gender=Fem|Number=Sing|PronType=Art    9   det _   _
 9  Companhia   Companhia   PROPN   _   Gender=Fem|Number=Sing  4   obl _   _
 10 de  de  ADP _   _   11  case    _   _
 11 Águas   Águas   PROPN   _   Number=Sing 9   nmod    _   SpaceAfter=No
 12 ,   ,   PUNCT   _   _   13  punct   _   _
 13 Esgoto  esgoto  PROPN   _   Gender=Unsp|Number=Sing 9   conj    _   _
  14    e   e   CCONJ   _   _   15  cc  _   _
  15    Saneamento  saneamento  PROPN   _   Gender=Masc|Number=Sing 9   conj    _   _
  16    (   (   PUNCT   _   _   17  punct   _   SpaceAfter=No
 -17    CAES    CAES    PROPN   _   Gender=Masc|Number=Sing 15  appos   _   SpaceAfter=No
 +17    CAES    CAES    PROPN   _   Gender=Masc|Number=Sing 9   appos   _   &ident|SpaceAfter=No
  18    )   )   PUNCT   _   _   17  punct   _   SpaceAfter=No

Você pode testar no 37.conllu que ainda não foi corrigido. Veja para onde o PMDB está apontando:

# newpar
# sent_id = 11
# text = A extinção do bipartidarismo, em novembro de 1979, e a reformulação partidária, levou-o a filiar-se ao Partido do Movimento Democrático Brasileiro (PMDB), sucessor do MDB.
1   A   o   DET _   Definite=Def|Gender=Fem|Number=Sing|PronType=Art    2   det _   _
2   extinção    extinção    NOUN    _   Gender=Fem|Number=Sing  17  nsubj   _   _
3-4 do  _   _   _   _   _   _   _   _
3   de  de  ADP _   _   5   case    _   _
4   o   o   DET _   Definite=Def|Gender=Masc|Number=Sing|PronType=Art   5   det _   _
5   bipartidarismo  bipartidarismo  NOUN    _   Gender=Masc|Number=Sing 2   nmod    _   SpaceAfter=No
6   ,   ,   PUNCT   _   _   8   punct   _   _
7   em  em  ADP _   _   8   case    _   _
8   novembro    novembro    NOUN    _   Gender=Masc|Number=Sing 17  obl _   _
9   de  de  ADP _   _   10  case    _   _
10  1979    1979    NUM _   NumType=Card    8   nmod    _   SpaceAfter=No
11  ,   ,   PUNCT   _   _   8   punct   _   _
12  e   e   CCONJ   _   _   14  cc  _   _
13  a   o   DET _   Definite=Def|Gender=Fem|Number=Sing|PronType=Art    14  det _   _
14  reformulação    reformulação    NOUN    _   Gender=Fem|Number=Sing  8   conj    _   _
15  partidária  partidário  ADJ _   Gender=Fem|Number=Sing  14  amod    _   SpaceAfter=No
16  ,   ,   PUNCT   _   _   8   punct   _   _
17-18   levou-o _   _   _   _   _   _   _   _
17  levou   levar   VERB    _   Mood=Ind|Number=Sing|Person=3|Tense=Past|VerbForm=Fin   0   root    _   _
18  o   ele PRON    _   Definite=Def|Gender=Masc|Number=Sing|PronType=Art   17  obj _   _
19  a   a   ADP _   _   20  mark    _   _
20-21   filiar-se   _   _   _   _   _   _   _   _
20  filiar  filiar  VERB    _   VerbForm=Inf    17  xcomp   _   _
21  se  se  PRON    _   Case=Acc|Gender=Fem|Number=Sing|Person=3|PronType=Prs   20  expl    _   _
22-23   ao  _   _   _   _   _   _   _   _
22  a   a   ADP _   _   24  case    _   _
23  o   o   DET _   Definite=Def|Gender=Masc|Number=Sing|PronType=Art   24  det _   _
24  Partido Partido PROPN   _   Gender=Masc|Number=Sing 20  obl _   _
25-26   do  _   _   _   _   _   _   _   _
25  de  de  ADP _   _   27  case    _   _
26  o   o   DET _   Definite=Def|Gender=Masc|Number=Sing|PronType=Art   27  det _   _
27  Movimento   Movimento   PROPN   _   Gender=Masc|Number=Sing 24  nmod    _   _
28  Democrático Democrático PROPN   _   Number=Sing 27  flat:name   _   _
29  Brasileiro  Brasileiro  PROPN   _   Number=Sing 27  flat:name   _   _
30  (   (   PUNCT   _   _   31  punct   _   SpaceAfter=No
31  PMDB    PMDB    PROPN   _   Gender=Masc|Number=Sing 27  appos   _   SpaceAfter=No
32  )   )   PUNCT   _   _   31  punct   _   SpaceAfter=No
33  ,   ,   PUNCT   _   _   20  punct   _   _
34  sucessor    sucessor    NOUN    _   Gender=Masc|Number=Sing 20  obj _   _
35-36   do  _   _   _   _   _   _   _   _
35  de  de  ADP _   _   37  case    _   _
36  o   o   DET _   Definite=Def|Gender=Masc|Number=Sing|PronType=Art   37  det _   _
37  MDB MDB PROPN   _   Gender=Masc|Number=Sing 34  nmod    _   SpaceAfter=No
38  .   .   PUNCT   _   _   17  punct   _   _

Ou no 36.conllu, onde CPOR está indo para Reserva ao invés de Centro:

# sent_id = 24
# text = Promovido a coronel em dezembro de 1942, em junho de 1943 deixou o 13º BC para assumir o comando do Centro de Preparação de Oficiais da Reserva (CPOR) de São Paulo, onde ficou até julho do ano seguinte.
1   Promovido   promover    VERB    _   Gender=Masc|Number=Sing|VerbForm=Part   13  dep _   _
2   a   o   DET _   Definite=Def|Gender=Fem|Number=Sing|PronType=Art    3   det _   _
3   coronel coronel NOUN    _   Gender=Masc|Number=Sing 1   obj _   _
4   em  em  ADP _   _   5   case    _   _
5   dezembro    dezembro    NOUN    _   Gender=Masc|Number=Sing 1   obl _   _
6   de  de  ADP _   _   7   case    _   _
7   1942    1942    NUM _   NumType=Card    5   nmod    _   SpaceAfter=No
8   ,   ,   PUNCT   _   _   1   punct   _   _
9   em  em  ADP _   _   10  case    _   _
10  junho   junho   NOUN    _   Gender=Masc|Number=Sing 1   obl _   _
11  de  de  ADP _   _   12  case    _   _
12  1943    1943    NUM _   NumType=Card    10  nmod    _   _
13  deixou  deixar  VERB    _   Mood=Ind|Number=Sing|Person=3|Tense=Past|VerbForm=Fin   0   root    _   _
14  o   o   DET _   Definite=Def|Gender=Masc|Number=Sing|PronType=Art   16  det _   _
15  13º 13º ADJ _   Gender=Masc|Number=Sing|NumType=Ord 16  amod    _   _
16  BC  BC  PROPN   _   Gender=Masc|Number=Sing 13  obj _   _
17  para    para    ADP _   _   18  mark    _   _
18  assumir assumir VERB    _   VerbForm=Inf    13  advcl   _   _
19  o   o   DET _   Definite=Def|Gender=Masc|Number=Sing|PronType=Art   20  det _   _
20  comando comando NOUN    _   Gender=Masc|Number=Sing 18  obj _   _
21-22   do  _   _   _   _   _   _   _   _
21  de  de  ADP _   _   23  case    _   _
22  o   o   DET _   Definite=Def|Gender=Masc|Number=Sing|PronType=Art   23  det _   _
23  Centro  Centro  PROPN   _   Gender=Masc|Number=Sing 20  nmod    _   _
24  de  de  ADP _   _   25  case    _   _
25  Preparação  preparação  PROPN   _   Number=Sing 23  nmod    _   _
26  de  de  ADP _   _   27  case    _   _
27  Oficiais    oficial PROPN   _   Gender=Masc|Number=Plur 23  nmod    _   _
28-29   da  _   _   _   _   _   _   _   _
28  de  de  ADP _   _   30  case    _   _
29  a   o   DET _   Definite=Def|Gender=Fem|Number=Sing|PronType=Art    30  det _   _
30  Reserva Reserva PROPN   _   Gender=Fem|Number=Sing  23  nmod    _   _
31  (   (   PUNCT   _   _   32  punct   _   SpaceAfter=No
32  CPOR    CPOR    PROPN   _   Gender=Fem|Number=Sing  30  appos   _   SpaceAfter=No
33  )   )   PUNCT   _   _   32  punct   _   _
odanoburu commented 6 years ago

@suemi-higuchi muito obrigado pelos exemplos! vai ser muito útil!

com eles tb me dei conta da limitação desse resultado preliminar -- eu ainda não fiz algumas coisas que vai impactar no resultado:

arademaker commented 6 years ago

Acho que devemos usar apenas pessoas e organizações. Lembrando que nosso foco são os 1..35 files. Arquivos: organizacao.txt e pessoa-individuo.csv (coluna 1)

suemi-higuchi commented 6 years ago

@odanoburu , não temos localidade não, veja as listas que temos aqui: https://github.com/cpdoc/dhbb/tree/master/dic Me parece que erros onde appos apontam para o head errado ocorrem mais com as organizações. Quanto aos nomes de pessoas, em geral se há um de/da/do no meio, o termo logo a seguir é atribuído como nmod do primeiro nome. Acho difícil ter casos aqui onde appos apontem para o token errado por conta da segmentação errada do nome. Mas vou dar uma procurada...

odanoburu commented 6 years ago

@suemi-higuchi coloquei o Rio de Janeiro em organização.txt só pra corrigir esse caso que vc mencionou! @arademaker

resultado:

-- old+lex -> new
Correct: 506
ErrDep: 9
ErrHead: 161
ErrMissingA: 47
ErrNotA: 191

-- old -> new
Correct: 492
ErrDep: 9
ErrHead: 175
ErrMissingA: 47
ErrNotA: 203
arademaker commented 6 years ago

@odanoburu não, Rio de Janeiro não deve ficar em organização! Como @suemi-higuchi disse, quando algo como Universidade Federal do Rio de Janeiro for encontrada, o head deve ser Universidade.

Explica e dá exemplos destes tipos de erros? Os números não fazem muito sentido...

arademaker commented 6 years ago

@suemi-higuchi O que vc quer dizer com

Acho difícil ter casos aqui onde appos apontem para o token errado por conta da segmentação errada do nome. Mas vou dar uma procurada...

Não entendi.

odanoburu commented 6 years ago

@odanoburu não, Rio de Janeiro não deve ficar em organização! Como @suemi-higuchi disse, quando algo como Universidade Federal do Rio de Janeiro for encontrada, o head deve ser Universidade.

hum, não teria problema se o código fosse mais guloso, mas não é..

Explica e dá exemplos destes tipos de erros? Os números não fazem muito sentido...

é classificação de apostos da Cláudia: Correct: tudo certo ErrDep: acertou o HEAD, mas não colocou aposto ErrHead: errou o HEAD, mas colocou aposto ErrMissingA: não marcou como aposto nem acertou o HEAD ErrNotA: marcou como aposto mas não era

arademaker commented 6 years ago

Sim @odanoburu mas qual o argumento de colocar Rio de janeiro em organização? Seu código não inclui apostos, né? Então não entendo diferença nos números de ErrnotA. Eu só esperava menos erros de ErrHead, estranho... precisamos de exemplos. Além de computar os números, precisamos ver 1-2 casos de cada situação... De qq modo vamos precisar mesmo destes casos para explicar no texto.

arademaker commented 6 years ago

@suemi-higuchi certo? Vamos colocar no texto uns exemplos de cada erro.

odanoburu commented 6 years ago

@arademaker nenhum argumento, haha. mas poderia criar uma lista de localidades e colocar rio de janeiro, e daria no mesmo.

meu código não inclui apostos, mas ao corrigir um HEAD um ErrHead pode virar um Correct, e ao corrigir um DEPREL para flat:name pode remover um appos que não era pra estar ali, daí a redução em ErrNotA.

suemi-higuchi commented 6 years ago

@arademaker

Acho difícil ter casos aqui onde appos apontem para o token errado por conta da segmentação errada do nome. Mas vou dar uma procurada...

Não entendi.

Seria algo como isso, veja:

1  Adalberto     
2  de            
3  Barros       1   nmod         
4  Nunes        3   flat:name        
5  ,    ,    
6  chefe        1   appos        
7  de    
8  o     
9  Estado-Maior  
10 de    
11 a     
12 Aeronáutica   

Nomes de pessoas podem ter nmod no meio ao invés do flat:name (o que, se me lembro bem, funciona para você). De qq forma essa atribuição não afeta o appos que vem a seguir, ele vai sempre apontar para o token certo (por ex., Adalberto). Faz todo o sentido.

Como não lembro de outros casos que não sejam do tipo nmod para nomes de pessoas, acho que aqui não encontraremos erros de appos ligando para o head errado.

arademaker commented 6 years ago

Boa @suemi-higuchi correto, lembrei. @odanoburu como seu código lidou com isso? Entendeu o que Suemi disse? O funciona para vc dela é que os nomes estão todos na subárvore de Adalberto então tinhamos combinado que ela não precisava se preocupar. Dado que a qq momento poderiamos simplesmente tornar a subarvore plana com o flat, facilmente automatizavel. Mas se vc tiver feito isso agora, vamos estar sendo desleais na comparação com o golden.

odanoburu commented 6 years ago

@arademaker @suemi-higuchi não sei se entendi do que exatamente estamos falando

o que eu fiz foi colocar todos os tokens do nome como flat:name do HEAD do nome, por enquanto, sem lidar com os casos em que eu deveria preservar a DEPREL, como no caso dos nmods.

vamos estar sendo desleais na comparação com o golden.

dado o que eu (não) entendi, tb não entendi o pq disso..

arademaker commented 6 years ago

Melhor forma talvez de esclarecemos e vendo exemplos. Exemplos de diferenças entre o old e os files depois de processados pelo seu script .. pode listar aqui uns 1-2 casos de cada erro ?

odanoburu commented 6 years ago

mandei email com os arquivos corrigidos -- se tiver algo de estranho me avisem, pq escrevi a função de printing hoje.

aí é só fazer uns diffs pra inspecionar as mudanças.

vendo os que a @suemi-higuchi deu de exemplo:

odanoburu commented 6 years ago

fiquei muito tempo aqui debuggando o pq do corretor-por-léxico ter mudado a primeira sentença de 1.conllu:

< 4 Coelho  Coelho  PROPN   _   Number=Sing 2   flat:name   _   _
---
> 4 Coelho  Coelho  PROPN   _   Number=Sing 3   flat:name   _   _

já que 'Coelho' estava apontando corretamente pra 'José', e depois passou a apontar para 'Machado'. achei que tinha algum bug no reconhecimento, já que 'José Machado' e 'Machado Coelho' também existiam no léxico, e o código não estaria retornando o resultado correto -- 'José Machado Coelho de Castro'.

mas o problema era no léxico: 'José' em 'José Machado Coelho de Castro' estava como 'Jose'.

ou seja, além de consertar, podemos tb criar novos erros se o léxico tiver erros (o que ele fatalmente vai ter).

odanoburu commented 6 years ago

olhando melhor, parece que nenhum José está acentuado no arquivo https://github.com/cpdoc/dhbb/blob/master/dic/pessoa-individuo.csv

@arademaker vc tirou os acentos pra inputar no sistema da IBM?

suemi-higuchi commented 6 years ago

@odanoburu @arademaker @claudiafreitas , segue a minha análise a partir do arquivo diff que o Bruno enviou e suas explicações.

ANÁLISE

Temos que: na nossa amostra de 35 verbetes (45,210 tokens e 1,193 sentenças) utilizamos os léxicos de Organizações e de Pessoas-indivíduos para verificar como se daria a correção dos nomes e dependências.

  1. Considerando APENAS sentenças onde relações apositivas foram trabalhadas E onde efetivamente alguma alteração foi feita, encontramos:

    1. 30 menções de nomes que estão no léxico, distribuídas em:
      1. 21 verbetes
      2. 29 sentenças
    2. Observar que:
      1. Estas 30 menções representam 5% do total de menções na amostra como um todo (que, pelos dados da última versão do paper, seriam 587 = 229 organizações e 358 indivíduos. É isso mesmo??).
      2. Existem menções que aconteceram nos casos do tipo appos Correct, mas que obviamente não foram incluídas na lista. Sendo assim, o número de menções na amostra é bem maior, principalmente se considerarmos que estes casos onde se acertou DepRel e Head são maioria.
  2. Testando a correção pelo léxico nos arquivos old e em seguida comparando com o golden, temos:

    1. 16 casos (EH -> C) em que havia erro no Head e com a correção, passou a estar correto (diminuição dos ErrHead)

      "presidente da União dos Prefeitos da Bahia (UPB)" [sentença 5 de 2.conllu] --> antes: UPB como appos de Bahia --> depois: UPB como appos de União

      "Partido da Frente Liberal (PFL)" [sentença 9 de [4.conllu] --> antes: PFL como appos de Frente --> depois: PFL como appos de Partido

    2. 10 casos (ENA -> nil) em que havia erro no DepRel, isto é, não devia ter sido marcado appos e com a correção o appos deixou de ser marcado (virou flat:name) (diminuição dos casos de ErrNotAppo).

      "pelo Senado Federal" [sentença 12 de 11.conllu] --> antes: Federal como appos de Senado --> depois: Federal como flat:name de Senado

      "casado com Maria Lúcia Burnett Aboud" [sentença 11 de 12.conllu] --> antes: Lucia como appos de Maria, e Burnett & Aboud como flat:name de Lúcia --> depois: Lucia, Burnett & Aboud todos como flat:name de Maria

    3. 2 casos (ENA -> C) em que havia erro no Head e após a correção passou a apontar para o HEAD correto (diminuição dos casos de ErrNotAppo)

      "Cosme Alves Ferreira Filho nasceu em..." [sentença 1 de 3.conllu] --> antes: Alves como appos de Cosme, e Ferreira & Filho como flat:name de Alves --> depois: Alvex, Ferreira & Filho todos como flat:name de Cosme

      "...substtituindo Francisco Thompson Flores Neto..." [sentença 14 de 7.conllu] --> antes: Flores como appos de Francisco, e Neto como flat:name de Flores --> depois: Neto como flat:name de Francisco

DÚVIDAS:

  1. Bruno, qual a diferença entre os casos (ENA -> nil) e (ENA -> C)? Os exemplos de (ii) e (iii) me parecem tão iguais...

  2. Fiquei preocupada com o que você disse sobre os acentos "ou seja, além de consertar, podemos tb criar novos erros se o léxico tiver erros (o que ele fatalmente vai ter)"
    Como você lidou com isso?

  3. Essa análise está correta? Confusa? Entendi errado?

suemi-higuchi commented 6 years ago

@odanoburu esse resultado de comparação está valendo?

-- old+lex -> new
Correct: 506
ErrDep: 9
ErrHead: 161
ErrMissingA: 47
ErrNotA: 191

-- old -> new
Correct: 492
ErrDep: 9
ErrHead: 175
ErrMissingA: 47
ErrNotA: 203
odanoburu commented 6 years ago

@suemi-higuchi estou respondendo inline, ainda não terminei.

@odanoburu esse resultado de comparação está valendo?

e sim!

odanoburu commented 6 years ago

Estas 30 menções representam 5% do total de menções na amostra como um todo (que, pelos dados da última versão do paper, seriam 587 = 229 organizações e 358 indivíduos. É isso mesmo??).

pelo que entendi do que vc entendeu (rs), não. esse diff que eu te mandei por último não é a diferença entre os arquivos old/ e os arquivos old corrigidos, é a diferença entre a classificação de apostos feita entre old/new e old-corrigido/new. então essas 30 menções são as 30 menções em que a correção afetou a classificação dos apostos, não o total de menções encontradas!

odanoburu commented 6 years ago

Bruno, qual a diferença entre os casos (ENA -> nil) e (ENA -> C)? Os exemplos de (ii) e (iii) me parecem tão iguais...

erro meu! todos são ENA -> nil, na verdade -- tinha sido marcado um aposto que não existia, e ele virou flat:name com a correção.

odanoburu commented 6 years ago

Fiquei preocupada com o que você disse sobre os acentos "ou seja, além de consertar, podemos tb criar novos erros se o léxico tiver erros (o que ele fatalmente vai ter)" Como você lidou com isso?

não lidei... estava pensando em como lidar. eu acho que a remoção de duplicatas do @arademaker que acabou tirando algumas instâncias com acentos, mas não sei. e tipo, vc extraiu os nomes do corpus, então talvez eles existam sem acento tb? acho que é um comentário interessante de se fazer no artigo: que a correção pelo léxico all in all é boa, mas tb pode introduzir erros se feita sem cautela.

odanoburu commented 6 years ago

me avisa se alguma coisa não estiver clara ! @suemi-higuchi