| Linguateca - 2005. |
Versão para impressã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.
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:
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.
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.
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.