-
Notifications
You must be signed in to change notification settings - Fork 2
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
corrigir nomes e dependências com o léxico #31
Comments
|
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
'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! |
@odanoburu , no arquivo 11.conllu tinha alguns erros assim, veja por exemplo o appos SANERJ que apontava para Rio ao invés de Saneamento:
Outro exemplo do arquivo 11.conllu, CAES apontava para Saneamento ao invés de Companhia:
Você pode testar no 37.conllu que ainda não foi corrigido. Veja para onde o PMDB está apontando:
Ou no 36.conllu, onde CPOR está indo para Reserva ao invés de Centro:
|
@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:
|
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) |
@odanoburu , não temos localidade não, veja as listas que temos aqui: https://github.com/cpdoc/dhbb/tree/master/dic |
@suemi-higuchi coloquei o Rio de Janeiro em
resultado:
|
@odanoburu não, Explica e dá exemplos destes tipos de erros? Os números não fazem muito sentido... |
@suemi-higuchi O que vc quer dizer com
Não entendi. |
hum, não teria problema se o código fosse mais guloso, mas não é..
é classificação de apostos da Cláudia: |
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. |
@suemi-higuchi certo? Vamos colocar no texto uns exemplos de cada erro. |
@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. |
Seria algo como isso, veja:
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. |
Boa @suemi-higuchi correto, lembrei. @odanoburu como seu código lidou com isso? Entendeu o que Suemi disse? O |
@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.
dado o que eu (não) entendi, tb não entendi o pq disso.. |
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 ? |
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:
|
fiquei muito tempo aqui debuggando o pq do corretor-por-léxico ter mudado a primeira sentença de
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). |
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? |
@odanoburu @arademaker @claudiafreitas , segue a minha análise a partir do arquivo diff que o Bruno enviou e suas explicações. ANÁLISETemos 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.
DÚVIDAS:
|
@odanoburu esse resultado de comparação está valendo?
|
@suemi-higuchi estou respondendo inline, ainda não terminei.
e sim! |
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! |
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. |
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. |
me avisa se alguma coisa não estiver clara ! @suemi-higuchi |
No description provided.
The text was updated successfully, but these errors were encountered: