Versão para impressão
Véu --- Filtro de Categorias, Generos e Origens
Véu
Filtro de Categorias, Géneros e Origens
Introdução
O presente texto tem como objectivo apresentar o programa que foi desenvolvido para extrair subconjuntos de alinhamentos avaliados (pelo AvalIDa). Como está especificado na página de medidas, a organização irá fornecer vários relatórios de avaliação tendo em conta diferentes cenários semânticos, assim como a agregação de resultados para diferentes origens e géneros. Por outras palavras, é necessário medir o desempenho dos sistemas tendo em conta uma ou mais categorias específicas, assim como só considerar documentos de determinado género e/ou origem. Assim, o Véu tem como função filtrar todos os alinhamentos previamente identificados, e extrair o subconjunto de alinhamentos que interessa considerar.
É de salientar que a filtragem por categorias só faz sentido quando o sistema em causa efectuou a respectiva a classificação semântica, ou seja, quando a etiqueta genérica EM não é utilizada.
Quando o Véu é executado por um filtro por categorias e/ou tipos, a primeira linha da saída do Véu replica essa informação, juntamente com os tipos aceites pela categoria. Assim e assumindo que a saída é direccionada para um ficheiro, não se perde informação sobre o tipo de filtro que foi aplicado. Se por exemplo fosse executado um filtro indicando que só se queria alinhamentos contendo a categoria PESSOA, a primeira linha a ser produzida pelo Véu seria
#PESSOA=["MEMBRO", "GRUPOIND", "CARGO", "INDIVIDUAL", "GRUPOMEMBRO"]
Note-se a utilização do '#': este símbolo indica aos seguintes módulos de avaliação que esta linha só deve ser considerada para efeitos de avaliação semântica e morfológica. No caso de não haver nenhum filtro, ou quando o filtro é executado em relação à origem ou género (e não em relação às categorias) dos documentos, então a primeira linha contém a informação sobre todas as categorias e tipos utilizados no HAREM:
#PESSOA=["MEMBRO", "GRUPOIND", "CARGO", "INDIVIDUAL", "GRUPOMEMBRO"]; LOCAL=["GEOGRAFICO", "ALARGADO", "ADMINISTRATIVO", "VIRTUAL", "CORREIO"]; ....
Abaixo, mostramos um exemplo das primeiras linhas produzidas pelo Véu quando aplicado um filtro que extrai apenas os alinhamentos contendo as categorias PESSOA e ORGANIZACAO:
#PESSOA=["MEMBRO", "GRUPOIND", "CARGO", "INDIVIDUAL", "GRUPOMEMBRO"]; ORGANIZACAO=["INSTITUICAO", "ADMINISTRACAO", "EMPRESA", "SUB"]
HAREM-051-00043 PT Web
<ESPURIO>Lions Clube de Faro</ESPURIO> ---> [<PESSOA TIPO="GRUPOMEMBRO" MORF="F,S">Lions Clube de Faro</PESSOA>]:[Espúrio]
<ORGANIZACAO TIPO="INSTITUICAO" MORF="M,S">Clube Lions</ORGANIZACAO> ---> [null]:[Em_Falta]
<ORGANIZACAO TIPO="INSTITUICAO" MORF="M,S">Lions Clube de Faro</ORGANIZACAO> ---> [<PESSOA TIPO="GRUPOMEMBRO" MORF="F,S">Lions Clube de Faro</PESSOA>]:[Correcto]
É possível ainda executar um filtro colocando uma restrição nos tipos de uma determinada categoria. Neste caso, e imaginando um filtro que só pretende obter os alinhamentos identificados com a categoria ORGANIZACAO e a categoria LOCAL excepto as que têm tipo VIRTUAL, a primeira linha do output do véu seria:
#LOCAL=["GEOGRAFICO", "ADMINISTRATIVO", "ALARGADO", "CORREIO"]; ORGANIZACAO=["INSTITUICAO", "ADMINISTRACAO", "EMPRESA", "SUB"]
Esta situação é ilustrada na figura 1.
Figura 1. Figura ilustrando a aplicação do Véu.
Etiquetas <OMITIDO>
Outro aspecto a ter em conta em relação ao Véu são as etiquetas <OMITIDO> que são utilizadas durante o processo de alinhamento efectuado pelo AlinhEm. Como os alinhamentos marcados com estas etiquetas não são considerados para efeitos de avaliação, o Véu ignora todos os alinhamentos encontrados com a etiqueta <OMITIDO>, não sendo estes colocados na saída gerada.
Distribuição e Utilização
O Véu foi desenvolvido pelo Nuno Seco e é distribuído num ficheiro "Java Archive Resource" (JAR) --Veu.jar-- que inclui o código fonte: Veu.jar.
Para inspeccionar o código basta extrair os ficheiros do
arquivo executando o seguinte comando numa shell do seu sistema:
jar -xf Veu.jar
Para invocar o Véu numa máquina com a JVM instalada, execute por exemplo o comando:
java -Dfile.encoding=ISO-8859-1 -jar Veu.jar -alinhamento sistema.alinhado.etq.verificado.avalida -categoria PESSOA(CARGO,GRUPOMEMBRO):ORGANIZAO -genero Web -origem PT
Onde sistema.alinhado.etq.verificado.avalida corresponde ao nome do ficheiro que foi gerado utilizando o AvalIDa. O Véu pode receber até quatro parâmetros de entrada, sendo que só o -alinhamento, e que corresponde ao nome do ficheiro a processar, é obrigatório. O parâmetro -categoria especifica as categorias que devem ser filtradas e colocadas à saída do sistema. O formato do argumento é uma lista de categorias separadas por ':', como por exemplo a lista 'PESSOA:ORGANIZACAO:ABSTRACCAO' que obrigaria o Véu a colocar à sua saída todos os alinhamentos contendo qualquer das categorias PESSOA, ORGANIZACAO ou ABSTRACCAO. Note-se que basta existir apenas uma referência à categoria num dado alinhamento, na entidade da CD ou nas entidades correspondentes identificadas pelo sistema, para que este seja considerado e colocado à saída. A restrição nos tipos é representada através da utilização de uma lista de tipos entre parênteses imediatamente a seguir à categoria relevante. Portanto, no exemplo apresentado, PESSOA(CARGO,GRUPOMEMBRO):ORGANIZACAO restringe os alinhamentos às categorias ORGANIZACAO e PESSOA, sendo que só tipos CARGO E GRUPOMEMBRO é que são tidos em conta para a categoria PESSOA.
Os restantes dois parâmetros, identificados pelas opções -origem e -genero, têm uma sintaxe semelhante. Recebem uma lista de origens ou géneros para efectuar a filtragem. Por exemplo a utilização da opção -origem com o parâmetro 'PT' irá colocar à saída todos os alinhamentos de documentos que forma considerados daquela origem. Analogamente, a utilização da opção -genero com o parâmetro 'Web' irá colocar à saída todos os alinhamentos de documentos retirados da Internet.
Estes parâmetros podem ser combinados de várias formas de modo a obter os alinhamentos desejados.
Salienta-se que é necessário a utilização do parâmetro -Dfile.encoding=ISO-8859-1 para garantir que os ficheiros são processados utilizando uma codificação de caracteres correcta. O resultado do Véu é 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.
Exemplo
A título de exemplo, e para clarificar o funcionamento do Véu, tomemos o seguinte documento previamente processado pelo AvalIDa (note-se que os alinhamentos foram numerados de forma a facilitar a posterior referenciação dos mesmos):
HAREM-000-00000 PT Web
1.
<LOCAL|LOCAL TIPO="ADMINISTRATIVO|VIRTUAL" MORF="M,S">Baú</LOCAL|LOCAL> ---> [<LOCAL TIPO="CORREIO" MORF="M,S">Baú</LOCAL>]:[Correcto]
2.
<LOCAL TIPO="CORREIO" MORF="F,S">Gazeta de Macau</LOCAL> ---> [<LOCAL TIPO="VIRTUAL" MORF="F,S">Gazeta de Macau</LOCAL>]:[Correcto]
3.
<LOCAL TIPO="CORREIO">Rua da Amizade, 38, Graças, Recife - PE - CEP 52.011.260</LOCAL> ---> [<LOCAL TIPO="CORREIO">Rua da Amizade, 38, Graças, Recife</LOCAL>, <PESSOA TIPO="INDIVIDUAL">PE</PESSOA>]:[Parcialmente_Correcto_por_Defeito(0.20588235294117646; 0.7941176470588236), Parcialmente_Correcto_por_Defeito(0.029411764705882353; 0.9705882352941176)]
4.
<ORGANIZACAO|LOCAL TIPO="INSTITUICAO|VIRTUAL" MORF="F,S">Porta da Esperança</ORGANIZACAO|LOCAL> ---> [<LOCAL TIPO="GEOGRAFICO" MORF="F,S">Porta da Esperança</LOCAL>]:[Correcto]
5.
<LOCAL|LOCAL TIPO="ADMINISTRATIVO|GEOGRAFICO" MORF="M,S">Baú</LOCAL|LOCAL> ---> [<COISA TIPO="CLASSE" MORF="M,S">Baú</COISA>]:[Correcto]
6.
<ORGANIZACAO|LOCAL TIPO="INSTITUICAO|ALARGADO" MORF="M,S">Círculo dos Trabalhadores</ORGANIZACAO|LOCAL> ---> [<PESSOA TIPO="GRUPOMEMBRO" MORF="M,S">Círculo dos Trabalhadores</PESSOA>]:[Correcto]
7.
<LOCAL TIPO="VIRTUAL" MORF="F,S">Internet</LOCAL> ---> [<LOCAL TIPO="GEOGRAFICO" MORF="F,S">Internet</LOCAL>]:[Correcto]
8.
<ORGANIZACAO TIPO="ADMINISTRACAO" MORF="M,S">Iraque</ORGANIZACAO> ---> [<LOCAL TIPO="ADMINISTRATIVO" MORF="M,S">Iraque</LOCAL>]:[Correcto]
9.
<LOCAL|OBRA TIPO="VIRTUAL|PRODUTO" MORF="?,S">Reforma</LOCAL|OBRA> ---> [null]:[Em_Falta]
10.
<LOCAL|ABSTRACCAO TIPO="ADMINISTRATIVO|IDEIA" MORF="F,S">Freguesia de Itapecerica</LOCAL|ABSTRACCAO> ---> [<LOCAL TIPO="ADMINISTRATIVO">Freguesia de Itapecerica pela Lei Provincial</LOCAL>]:[Parcialmente_Correcto_por_Excesso(0.25; 0.75)]
11.
<OBRA TIPO="PUBLICACAO" MORF="F,S">Lei Provincial no 12</OBRA> ---> [<LOCAL TIPO="ADMINISTRATIVO">Freguesia de Itapecerica pela Lei Provincial</LOCAL>]:[Parcialmente_Correcto_por_Excesso(0.1111111111111111; 0.8888888888888888)]
Sobre este documento queremos efectuar um filtro, de forma a obter:
-
Todas as PESSOAS do tipo GRUPOCARGO e GRUPOMEMBRO.
-
Todos os LOCAIS excepto do tipo VIRTUAL.
-
Todas as ORGANIZACOES excepto do tipo INSTITUICAO.
Para tal bastaria invocar o
Véu utilizando o seguinte comando:
java -Dfile.encoding=ISO-8859-1 -jar Veu.jar -documento.txt -categoria "PESSOA(GRUPOCARGO):LOCAL(GEOGRAFICO,ALARGADO,ADMINISTRATIVO,CORREIO):ORGANIZACAO" > documento.txt.filtro
Onde documento.txt é ficheiro contendo os alinhamentos avaliados e documento.txt.filtro é o ficheiro para onde irão os alinhamentos que satisfazem a restrição imposta.
De seguida apresentamos, com comentários, a saída gerada pelo Véu:
#PESSOA=["GRUPOCARGO", "GRUPOMEMBRO"]; LOCAL=["GEOGRAFICO", "ALARGADO", "ADMINISTRATIVO", "CORREIO"]; ORGANIZACAO=["ADMINISTRACAO", "EMPRESA", "SUB"]
HAREM-000-00000 PT Web
1.
<LOCAL TIPO="ADMINISTRATIVO" MORF="M,S">Baú</LOCAL> ---> [<LOCAL TIPO="CORREIO" MORF="M,S">Baú</LOCAL>]:[Correcto]
Comentário:
A entidade identificada pelo sistema é mantida na saída do Véu visto que se enquadra no contexto do filtro aplicado.
2.
<LOCAL TIPO="CORREIO" MORF="F,S">Gazeta de Macau</LOCAL> ---> [null]:[Em_Falta]
Comentário:
Neste alinhamento a EM identificada pelo sistema é ignorada visto o tipo viola a restrição imposta pelo filtro.
3.
<LOCAL TIPO="CORREIO">Rua da Amizade, 38, Graças, Recife - PE - CEP 52.011.260</LOCAL> ---> [<LOCAL TIPO="CORREIO">Rua da Amizade, 38, Graças, Recife</LOCAL>]:[Parcialmente_Correcto_por_Defeito(0.20588235294117646; 0.7941176470588236)]
Comentário:
Neste alinhamento a última EM identificada pelo sistema e classificada com a categoria PESSOA e tipo INDIVIDUAL é removida da saída por este não se enquandrar no mesmo.
4.
<ESPURIO>Porta da Esperança</ESPURIO> ---> [<LOCAL TIPO="GEOGRAFICO" MORF="F,S">Porta da Esperança</LOCAL>]:[Espúrio]
Comentário:
Neste caso a entidade identificada pelo sistema é considerada espúria porque a entidade da CD não faz parte do domínio do filtro logo não poderia existir numa CD que estivesse anotado apenas com categorias e tipos iguais à do filtro.
5.
<LOCAL|LOCAL TIPO="ADMINISTRATIVO|GEOGRAFICO" MORF="M,S">Baú</LOCAL|LOCAL> ---> [null]:[Em_Falta]
Comentário:
Como a EM identificada pelo sistema não está classificada com uma categoria válida, a EM do sistema é ignorada.
6.
<LOCAL TIPO="ALARGADO" MORF="M,S">Círculo dos Trabalhadores</LOCAL> ---> [<PESSOA TIPO="GRUPOMEMBRO" MORF="M,S">Círculo dos Trabalhadores</PESSOA>]:[Correcto]
Comentário:
Este caso é semelhante ao anterior, mas em vez de existir uma categoria inválida é o tipo GRUPOMEMBRO que invalida a EM do sistema.
7.
<ESPURIO>Internet</ESPURIO> ---> [<LOCAL TIPO="GEOGRAFICO" MORF="F,S">Internet</LOCAL>]:[Espúrio]
Comentário:
O tipo VIRTUAL utilizado para categorizar a EM da CD viola a restrição imposta pelo filtro. Logo não é uma EM que deve ser considerada na avaliação e o alinhamento é considerado espúrio.
8.
<ORGANIZACAO TIPO="ADMINISTRACAO" MORF="M,S">Iraque</ORGANIZACAO> ---> [<LOCAL TIPO="ADMINISTRATIVO" MORF="M,S">Iraque</LOCAL>]:[Correcto]
Comentário:
Este alinhamento é mantido visto que não existe qualquer violação do filtro aplicado.
9.
Comentário:
Como nem a EM da CD nem a EM identificada pelo sistema estão classificadas com categorias contidas no conjunto de categorias válidas, o alinhamento é removido.
10.
<LOCAL TIPO="ADMINISTRATIVO" MORF="F,S">Freguesia de Itapecerica</LOCAL> ---> [<LOCAL TIPO="ADMINISTRATIVO">Freguesia de Itapecerica pela Lei Provincial</LOCAL>]:[Parcialmente_Correcto_por_Excesso(0.25; 0.75)]
Comentário:
11.
Comentário:
Como a EM da CD está classificada com as categorias contidas no conjunto de categorias válidas e a entidade identificada pelo sistema já está alinhado com outra entidade na CD (ver exemplo anterior), não faz sentido considerar esta entidade espúria como se fez no exemplo 7.