openWordnet-PT icon indicating copy to clipboard operation
openWordnet-PT copied to clipboard

palavras duplicadas

Open fcbr opened this issue 9 years ago • 15 comments

Investigando a issue https://github.com/own-pt/wordnet-editor/issues/4 acabei identificando algumas entradas duplicadas de palavras. Esta issue e' para limpar estas duplicatas, corrigindo os links: temos que criar IRIs separados para cada lexical form diferente e ajustar os links dos word senses.

Para obter a lista de duplicatas use a opcao export duplicate statements.

Exemplo:

http://wnpt.brlcloud.com:10035/repositories/wn30#node/%3Chttps://w3id.org/own-pt/wn30-pt/instances/word-afiliar_se%3E

fcbr avatar Feb 01 '16 16:02 fcbr

Parece que estes casos foram resultado do algoritmo que usamos para criar URIs para as palavras. A preocupação foi transformar espaços em underscore mas isto acabou colapsando diferentes scripts na mesma URI.

https://github.com/own-pt/wordnet-editor/blob/master/backend.lisp#L72

Parece fácil de resolver, mas temos que decidir o que fazer com casos como: https://w3id.org/own-pt/wn30-pt/instances/word-lua_de_mel

Queremos uma Word instance para cada diferente forma léxica ou queremos colapsar variações como estas de hífen vs sem hífen em uma mesma Word instance?

Os casos onde uma mesma Word Instance tem duas formas léxicas com espaço e outra com underscore no lugar do espaço, remover a versão com underscore. Um caso que já limpei foi "Mar Mediterrâneo" onde removi a forma "Mar_Mediterrâneo".

arademaker avatar Feb 06 '16 15:02 arademaker

O que me preocupa é: http://wnpt.brlcloud.com/wn/synset?id=08295580-n

temos 3 'palavras' em PT na interface:

Mas no synset em PT temos apenas um sense: https://w3id.org/own-pt/wn30-pt/instances/synset-08295580-n

Mas temos duas palavra soltas:

https://w3id.org/own-pt/wn30-pt/instances/word-Organização_das_Nações_Unidas https://w3id.org/own-pt/wn30-pt/instances/word-Nações_Unidas

Nestes dois casos acima, manualmente eu removi as triplas duplicadas de rdf:type e wn30:lexicalForm onde a forma léxica duplicada era a variação com underscore. Mas como estas palavras acabaram soltas sem conexão com o synset?

arademaker avatar Feb 06 '16 16:02 arademaker

Wow, good catch e isso e' um bug no WORDNET-EDITOR. Vou abrir la'.

fcbr avatar Feb 06 '16 16:02 fcbr

Eu prefiro que lexical forms diferentes tenham words diferentes, ainda que a diferenca seja trivial.

fcbr avatar Feb 06 '16 16:02 fcbr

Hum, concordo mas acho que estamos subestimando um problema mais delicado. Lemon e LMF tem expressividade para falar uma série de coisas sobre uma Word. Em alguns casos, podemos estar falando de uma mesma Word com diferentes IRIs. Mas concordo que, por enquanto, para nós Word é uma lexicalForm.

arademaker avatar Feb 07 '16 12:02 arademaker

SPARQL:

select *
{
  ?w a wn30:Word .

  ?w wn30:lexicalForm ?lf1 .
  ?w wn30:lexicalForm ?lf2 .

  filter (?lf1 != ?lf2) .  
}

Usar < ao inves de != gera uma query vazia por algum motivo.

Estou pensando como resolver este problema. Um exemplo do problema:

http://wnpt.brlcloud.com:10035/repositories/wn30#node/%3Chttps://w3id.org/own-pt/wn30-pt/instances/word-compadecer_se%3E

Originalmente o synset 01822248-v contem a forma "compadecer se" e o synset 01821996-v contem a forma "compadecer-se".

Qq solucao a ser implementada tem que certificar-se que tanto o SOLR quanto a TS estejam corretamente sincronizadas ao final.

fcbr avatar Feb 15 '16 10:02 fcbr

Bom pelo o numero de duplicatas e' da ordem de 100, o que permite ate' uma intervencao manual em ultimo caso.

fcbr avatar Feb 15 '16 10:02 fcbr

but we need a principled story to tell on verbs with particle "se". we don't have this yet, I think. Claudia and Livy need to get some consensual theory because the problem is much bigger than a hundred. see paper https://www.researchgate.net/publication/281328895_Identifying_Pronominal_Verbs_Towards_Automatic_Disambiguation_of_the_Clitic_'se'_in_Portuguese

vcvpaiva avatar Feb 19 '16 16:02 vcvpaiva

Registrando query para achar palavras duplicatas (case):

select ?ss ?lex ?lf1 ?lf2
{
  ?ss wn30:containsWordSense/wn30:word/wn30:lexicalForm ?lf1 ;
      wn30:containsWordSense/wn30:word/wn30:lexicalForm ?lf2 .      
  ?ssen wn30:lexicographerFile ?lex ;
        owl:sameAs ?ss .
  filter ( !sameTerm(?lf1,?lf2) && sameTerm(ucase(?lf1),ucase(?lf2))
           && str(?lf1) > str(?lf2))
}
order by ?ss ?lf1 

arademaker avatar Aug 04 '16 19:08 arademaker

see #168

arademaker avatar May 18 '21 16:05 arademaker

@FredsoNerd os casos comentados acima foram todos resolvidos. Temos lua-de-mel e lua+de+mel como palavras diferentes. As palavras faltantes do synset sobre ONU já estão no synset. Para compadecer se e compadecer-se temos também duas palavras.

Mas a última query é interessante, onde são listados os casos de palavras potencialmente repetidas no mesmo synset a menos de maiusculas/minusculas. Por isso vou manter issue aberto, seria bom resolver estes problemas para release.

arademaker avatar Jun 01 '21 19:06 arademaker

A consulta acima e repetida abaixo:

select ?ss ?lex ?lf1 ?lf2
{
  ?ss wn30:containsWordSense/wn30:word/wn30:lexicalForm ?lf1 ;
      wn30:containsWordSense/wn30:word/wn30:lexicalForm ?lf2 .      
  ?ssen wn30:lexicographerFile ?lex ;
        owl:sameAs ?ss .
  filter ( !sameTerm(?lf1,?lf2) && sameTerm(ucase(?lf1),ucase(?lf2))
           && str(?lf1) > str(?lf2))
}
order by ?ss ?lf1 

me retorna 4376 casos. Que forma eficientes poderiamos usar para revisar cada caso e marcar a versão que deve ficar?

image

arademaker avatar Jun 01 '21 19:06 arademaker

Criei esta página simples a fim de agilizar o acesso aos casos; essa foi uma solução inicial, mas aberto a sugestões. Por favor, dê uma olhada. O script responsável pela tarefa pode ser acessado por aqui

Vale lembrar que eventualmente, teremos o interesse em avaliar demais casos onde uppercase ocorre indevidamente.

fredsonaguiar avatar Jun 09 '21 22:06 fredsonaguiar

O link do script não está funcionando. E temos que começar a organizar os scripts para não temos vários repositórios isolados. Também seria bom que todos os repositórios relacionados à OWN-PT estejam na organização http://github.com/own-pt/

A página funciona bem, mas vamos precisar atualiza-la de tempos em tempos... isto vai estar relacionado a como vamos manter o ciclo de updates do repo e interface http://openwordnet-pt.org até que possamos reescrever a interface usando outro backend.

arademaker avatar Jun 09 '21 23:06 arademaker

@arademaker , o link corrigido https://github.com/FredsoNerd/py-ownpt/blob/ce2a5cb76ccb486bca20064a929f03337626df9a/pyownpt/cli/duplicated_words.py. Por organização, este é parte do pacote que venho desenvolvendo.

A página funciona bem, mas vamos precisar atualiza-la de tempos em tempos... isto vai estar relacionado a como vamos manter o ciclo de updates do repo e interface http://openwordnet-pt.org até que possamos reescrever a interface usando outro backend.

Concordo com a colocação, por isso mesmo precisamos pensar em soluções melhores.

fredsonaguiar avatar Jun 09 '21 23:06 fredsonaguiar