HAREM - Avaliação de Reconhecimento de Entidades Mencionadas

Linguateca - 2005.
  Versão para impressão

Ida2id --- Avaliação Global para a tarefa de Identificação

Ida2id
Avaliação Global para a tarefa de Identificação

Introdução

O presente texto tem como objectivo apresentar o programa que foi desenvolvido para efectuar o cálculo das medidas de avaliação utilizadas para averiguar o desempenho dos sistemas participantes e produzir um relatório de desempenho no que diz respeito à tarefa de identificação. O Ida2id espera como entrada o ficheiro produzido pelo AltinaID sem a existência de etiquetas ALT.

O Ida2id tem de percorrer todos os alinhamentos avaliados no ficheiro de entrada e efectuar as várias contagens de modo a produzir as medidas pretendidas. Um exemplo de um relatório fictício produzido pelo Ida2id para um dado sistema, contendo as várias contagens e avaliações a levar em conta é apresentado a seguir:

Total na CD: 4995
Total Identificadas: 2558
Total Correctos: 1927
Total Ocorrências Parcialmente Correctos: 601
Soma Parcialmente Correctos: 128.57140579578655
Soma Parcialmente Incorrectos: 472.42859420421337
Espúrios: 73
Em Falta: 2545
Precisão: 0.8035853814682512
Abrangência: 0.41152580696612345
Medida F: 0.5443059461924498
Sobre-geração: 0.028537920250195466
Sub-geração: 0.5095095095095095
Erro Combinado: 0.600549668520057 

É de notar que estes cálculos só podem ser efectuados após a escolha da ALT mais favorável ao sistema pelo AltinaID. A escolha do ALT mais favorável vai influenciar o nº total de entidades encontradas na CD. Isto significa que saídas diferentes podem ser avaliadas considerando diferentes entidades da CD, mas estas diferenças só favorecem o sistema em causa.

Caso de uma EM do sistema alinhada com várias EMs na CD

Existem, no entanto, casos que requerem mais atenção de forma a garantir que não se cometam erros de contagem. Imaginemos o seguinte exemplo:

<EM>Gabinete do Instituto</EM> ---> [<EM>Gabinete do Instituto da Juventude em Lisboa</EM>]:[Parcialmente_Correcto_por_Excesso(0.21; 0.79)]
<EM>Juventude em Lisboa</EM> ---> [<EM>Gabinete do Instituto da Juventude em Lisboa</EM>]:[Parcialmente_Correcto_por_Excesso(0.21; 0.79)]

No exemplo dado só existe uma entidade que relamente foi identificada pelo sistema. É necessário ter algum cuidado com estas situações e contar correctamente o número de entidades etiquetadas. A forma encontrada para resolver esta questão passou por utilizar um algoritmo que dada uma sequência de alinhamentos avaliados conseguisse distinguir as entidades distintas identificadas pelo sistema. É possível restringir as situações potencialmente problemáticas às situações onde se verificam as seguintes condições:

  1. O alinhamento em consideração foi avaliado como Parcialmente_Correcto_por_Excesso ou Parcialmente_Correcto_por_Defeito
  2. O alinhamento imediatamente anterior ao que está a ser considerado também foi avaliado como Parcialmente_Correcto_por_Excesso ou Parcialmente_Correcto_por_Defeito
  3. A entidade identificada pelo sistema no alinhamento imediatamente anterior é idêntica à entidade identificada pelo sistema no alinhamento que está a ser considerado.

Só quando estas três restrições se verificam é que é necessário decidir se estamos na presença de uma entidade nova ou se estamos na presença da mesma ocorrência da entidade anterior. Nestas situações a solução passou por averiguar se existe alguma sobreposição das entidades da CD (portanto as entidades que aparecem do lado esquerdo do --->). Voltando ao exemplo anterior; podemos considerar que a entidade etiquetada pelo o sistema nos dois primeiros alinhamentos correspondem à mesma ocorrência no texto porque o último átomo Instituto, no primeiro alinhamento, aparece na terceira posição da entidade identificada pelo sistema [<EM>Gabinete do Instituto da Juventude em Lisboa</EM>] e o primeiro átomo Juventude, no segundo alinhamento, aparece na quinta posição. Assim sendo, e como a posição do primeiro é menor do que a posição do segundo não pode existir sobreposição visto que o alinhamento é efectuado da esquerda para a direita. No entanto, se a posição do primeiro átomo fosse maior ou igual à posição do segundo (relativamente à entidade identificada) então poderíamos considerar a existência de uma sobreposição invalidando a possibilidade de se tratar da mesma entidade.

Consideremos agora o próximo exemplo:

<EM>Instituto</EM> ---> [<EM>Instituto da Juventude</EM>]:[Parcialmente_Correcto_por_Excesso(0.16; 0.83)]
<EM>Juventude</EM> ---> [<EM>Instituto da Juventude</EM>]:[Parcialmente_Correcto_por_Excesso(0.16; 0.83)]
<EM>Instituto</EM> ---> [<EM>Instituto da Juventude</EM>]:[Parcialmente_Correcto_por_Excesso(0.16; 0.83)]

Neste exemplo Instituto (aparece na posição 1) e Juventude (aparece na posição 3) são as entidades da CD. Nesta situação o Ida2id considera que as duas primeiras entidades identificadas correspondem à mesma ocorrência porque a posição de Instituto é menor que a posição de Juventude. No entanto ao comparar o terceiro alinhamento com o segundo verifica-se a situação inversa, a posição Juventude na entidade marcada é superior à posição de Instituto no terceiro alinhamento. Logo, as entidades identificadas pelo sistema correspondem nos dois primeiro alinhamentos são a mesma. O terceiro alinhamento contem uma entidade distinta das anteriores.

Caso de várias EMs do sistema alinhadas com uma EM na CD

Outra situação a ser tomada em conta pelo Ida2id é quando várias entidades identificadas pelo o sistema alinham com uma só da CD:

<EM>Instituto de Juventude</EM> ---> [<EM>Instituto</EM>, </EM>Juventude</EM>]:[Parcialmente_Correcto_por_Defeito(0.16; 0.83), Parcialmente_Correcto_por_Defeito(0.16; 0.83)]

Neste caso, para um alinhamento é necessário contar duas entidades identificadas pelo sistema participante.

Distribuição e Utilização

O Ida2id foi implementado pelo Nuno Seco e é distribuído num ficheiro "Java Archive Resource" (JAR) --Ida2id.jar-- que inclui o código fonte: Ida2id.jar.

Para inspeccionar o código basta extrair os ficheiros do arquivo executando o seguinte comando numa shell do seu sistema:

jar -xf Ida2id.jar

Para invocar o Ida2id numa máquina com a JVM instalada, execute por exemplo o comando:

java -Dfile.encoding=ISO-8859-1 -jar Ida2id.jar -alinhamento sistema.alinhado.etq.verificado.avalida.absoluto.alt 

Onde sistema.alinhado.etq.verificado.avalida corresponde ao nome do ficheiro que foi gerado após o processamento da AltinaID. Salienta-se a utilização do parâmetro -Dfile.encoding=ISO-8859-1 que é necessário para garantir que os ficheiros são processados utilizando uma codificação de caracteres correcta. O resultado do Ida2id será enviado para o standard output, daí ser conveniente redireccionar a saída para um ficheiro, de forma a facilitar a posterior validação e avaliação.

Última actualização: 18/11/2005 10:17:12