como instalar a ferramenta salto - NILC

Transcrição

como instalar a ferramenta salto - NILC
GUIA PARA ANOTAÇÃO LINGUÍSTICA USANDO A
FERRAMENTA SALTO
Por: Magali Sanches Duran
Organizei este guia sob a forma de perguntas e respostas a fim de apoiar o minicurso
"Anotação Semântica na prática: apresentação de ferramentas, manual de anotação,
e teoria sobre anotação de papéis semânticos" que ministrarei na EBRALC 2012
(http://143.107.232.109/elc-ebralc2012/index.php/pt/minicursos). Assim, à medida que
novas perguntas surgirem no minicurso, pretendo acrescentá-las ao guia, com suas
respectivas respostas.
O que é anotação de corpus?
Anotar um corpus consiste basicamente em delimitar um segmento do texto e atribuir-lhe
um rótulo ou etiqueta. O conjunto de rótulos ou etiquetas deve atender o propósito da
anotação. Definir conjunto de etiquetas é uma das partes mais complexas do processo de
anotação, pois implica escolhas quanto à forma de modelar os dados do problema.
Para que anotar um corpus?
Existem duas finalidades básicas para anotarmos um corpus. A primeira finalidade é
atender aos interesses da pesquisa linguística e é um sucedâneo do que há muito tempo se
faz manualmente: ler, analisar, destacar partes do texto e atribuir comentários ou copiar
em fichas as partes destacadas. Depois, reúnem-se os resultados a fim concluir a análise.
A outra finalidade é atender às necessidades do processamento automático de línguas
naturais. O corpus é analisado por humanos, recebe anotações num formato lógico e é
utilizado como modelo (corpus de treinamento) para que a máquina “aprenda” a
reproduzir automaticamente a tarefa humana.
Qual a diferença entre etiqueta e comentário?
O comentário é livre e a etiqueta é padronizada. Por exemplo, se “SUJ” “SUBJ” e
“SUJEITO” são usados alternativamente na anotação para a mesma finalidade, temos
uma comentário e não uma etiqueta. A etiqueta normalmente é pré-definida e atende ao
propósito de permitir a recuperação automática dos segmentos anotados com ela.
O que é um editor de anotação de corpus?
Um editor de anotação é uma ferramenta com as seguintes funções:
Antes da anotação:
 definição do conjunto de etiquetas
Durante a anotação
 disponibilização do conjunto de etiquetas para o anotador
 delimitação do segmento que receberá a etiqueta
 atribuição de etiqueta ao segmento delimitado
Após a anotação
 Busca e exibição de sentenças com determinada etiqueta atribuída
 Contagem de etiquetas atribuídas, por tipo
 Busca e substituição de etiquetas atribuídas
O que é a ferramenta SALTO?
A SALTO é um editor de anotação serve tanto para anotações individuais quanto para
anotações distribuídas. O uso individual é o default da ferramenta, mas ela prevê a
possibilidade de diferentes tipos de usuários: usuário (anotador) e administrador (que cria
subcorpus, distribui entre os anotadores, recolhe os subcorpus anotados e resolve as
divergências entre as anotações (atividade chamada de adjudicação).
O que é anotação distribuída?
É a divisão da tarefa de anotação entre vários anotadores. Um administrador da tarefa
distribui partes do corpus aos diversos anotadores, de forma que cada sentença seja
anotada pelo menos por dois anotadores.
A SALTO fornece um ambiente para administrar essa distribuição, pois cada usuário
(anotador) tem três pastas: (1) uma de entrada, (2) uma de trabalho e (3) uma de saída. Na
pasta de entrada encontra-se o subcorpus enviado pelo administrador. Ao abrir a pasta de
entrada e iniciar a anotação, o subcorpus é gravado na pasta de trabalho. Ao terminar a
anotação, o subcorpus é colocado na pasta de saída.
Além de criar subcorpus e distribuí-los nas pastas de entrada dos anotadores, na SALTO
o administrador tem o recurso de recolher os subcorpus que se encontram nas pastas de
saída, confrontar as anotações e exibir as diferenças, iniciando a adjudicação, que
consiste em aceitar uma ou outra anotação como certa ou propor uma nova anotação.
Algumas ferramentas que fazem tarefas semelhantes chegam, inclusive, a calcular a
concordância entre os anotadores por meio da estatística Kappa 1.
No minicurso da EBRALC, exploraremos a anotação individual, pois não
experimentamos a anotação distribuída ainda.
Para que tipo de anotação serve a ferramenta SALTO?
A SALTO 2 foi desenvolvida para atender as necessidades do projeto SALSA 3, que
implementou a anotação de papéis semânticos no modelo da Framenet 4 para a língua
alemã.
1
Carletta, J.: Assessing Agreement on Classification Tasks: The Kappa Statistic. Computational
Linguistics, vol. 22, n. 2, pp. 249--254. (1996).
2
Burchardt, A.; Erk, K.; Frank, A.; Kowalski, A.; Pado, S. (2006) SALTO - A Versatile Multi-Level
Annotation Tool. In: Proceedings of LREC 2006.
Contudo, o uso da ferramenta pode ser customizado a fim de suportar outros tipos de
anotação, como a anotação de relações de correferência e de relações discursivas entre
orações. Outro exemplo é projeto Propbank-Br 5, que utilizou a ferramenta SALTO para
anotação de papéis semânticos nos moldes do Propbank 6.
A principal característica que distingue a SALTO de outras ferramentas de anotação é o
fato de ela tornar possível a anotação sobre árvores sintáticas. Isso significa que, na
SALTO, construímos uma camada de anotação sobre duas outras camadas de anotação: a
morfossintática (substantivo, verbo, adjetivo, artigo etc.) e a sintática (sujeito, predicado,
adjunto adverbial etc.).
Ao anotarmos sobre árvores sintáticas, “aproveitamos” os segmentos já delimitados na
camada sintática de anotação. Por isso, a ferramenta SALTO não permite que se
delimitem segmentos.
Para que anotar sobre árvores sintáticas?
A principal vantagem de fazer uma anotação sobre outras camadas de anotação é
beneficiar o aprendizado de máquina. Parte-se do pressuposto de que etiquetas de uma
camada de anotação possuem alguma correlação com etiquetas de outra camada. Por
exemplo, existe grande correlação entre as etiquetas SUJEITO, da camada sintática e
AGENTE, da camada de papéis semânticos. Esse tipo de correlação é uma informação
relevante para que os programas de anotação automática obtenham melhor desempenho.
Como instalar a ferramenta SALTO?
O único requisito para a SALTO é que sua máquina já tenha o JAVA instalado (a Java
Virtual Machine, ou JVM, ou Java Runtime Environment, JRE).
Se sua máquina não tiver JAVA instalado, baixe do seguinte endereço:
http://java.sun.com/, especificamente em: http://java.com/pt_BR/download/index.jsp.
A ferramenta SALTO está disponível gratuitamente para uso de pesquisadores, mas não
para uso comercial. Por isso, para baixá-la, é preciso preencher um pedido de autorização
http://www.coli.unino
site
do
projeto
SALSA:
saarland.de/projects/salsa/salto/request/salsa-tool-request.cgi, informando seu e-mail, sua
instituição de origem e a finalidade para que deseja a ferramenta.
Após submeter a solicitação, dentro de poucas horas você receberá, no e-mail informado,
um arquivo em formato . zip (arquivo comprimido). Faça o download do arquivo e
descomprima-o (clique sobre ele com o botão direito e escolha “extrair arquivo”),
salvando-o na área de sua escolha.
3
http://www.coli.uni-saarland.de/projects/salsa
Baker, C.F.; Fillmore, C. J.; Lowe. J. B. (1998).The Berkeley FrameNet Project. In: Proceedings of
Computational Linguistics 1998 Conference.
5
http://www2.nilc.icmc.usp.br/portlex/index.php/projetos/propbankbr
6
Palmer, M.; Gildea, D.; Kingsbury, P. (2005) The Proposition Bank: An Annotated Corpus of Semantic
Roles. Computational Linguistics, 31:1., pp. 71-105, March, 2005.
4
Como habilitar um corpus para uso na ferramenta SALTO?
Para editar a anotação de um corpus na ferramenta SALTO é preciso que seu corpus
tenha algumas características:
(1) tenha sido anotado automaticamente por um parser sintático, como o Palavras 7
(Bick, 2000);
(2) esteja em formato Tiger e
(3) seja adaptado para o formato Tiger-SALTO.
As condições (1) e (2) dependem de você ter acesso ao parser Palavras (que não é de uso
livre) e tenha alguns conhecimentos de computação. Caso você não tenha essas
condições, poderá optar por um dos corpora disponíveis na Linguateca 8 que já estão
anotados pelo parser Palavras e já possuem uma versão Tiger.
Já para a característica (3), que é colocar o corpus no formato Tiger-SALTO, foram
desenvolvidos dois “scripts” que se encontram disponíveis no site do do curso da
EBRALC "Anotação Semântica na prática: apresentação de ferramentas, manual de
anotação, e teoria sobre anotação de papéis semânticos" em
http://143.107.232.109/elc-ebralc2012/index.php/pt/minicursos, além de já estarem nos
micros dos laboratórios onde serão ministrados os cursos da EBRALC.
O que fazem os scripts desenvolvidos no NILC para converter para o formato TigerSALTO?
Esses “scripts” criam um cabeçalho e um rodapé no arquivo do corpus com as áreas onde
serão armazenados os dados da anotação.
Além disso, o “script” específico para anotação de papéis semânticos multiplica as
sentenças que possuem mais de um verbo e dedica cada cópia à anotação de um desses
verbos, “evocando-o” como centro de um frame (centro da estrutura argumental que será
anotada). Cada cópia da sentença constitui uma “instância de anotação”. Essa medida é
necessária para que as estruturas argumentais dos verbos não se sobreponham.
Na figura abaixo mostramos como seria anotar várias estruturas argumentais em uma
única cópia da sentença.
Como se usa a ferramenta Salto?
Inicialize a SALTO executando um dos seguintes subarquivos: Salto_bigmemory (se
você trabalha no ambiente Windows) ou Salto_bigmemory.sh (se você trabalha no
ambiente Linux).
A tela de Login no sistema pede que você se identifique com seu nome de usuário. Ao
fazer isso, o sistema vai criar seu usuário automaticamente.
7
Bick, E. (2000). The Parsing System Palavras Automatic Grammatical Analysis of Portuguese in a Constraint
Grammar Framework. Aarhus, Denmark, Aarhus University Press.
8
http://linguateca.pt
Na tela a seguir, você deverá escolher com o mouse onde seu corpus está localizado e
clicar em “choose”.
A próxima é a tela de trabalho da ferramenta SALTO.
Como carregar o corpus na área de trabalho?
Clique em “File” e a seguir em “Open File”. Escolha o arquivo de seu corpus e ele será
carregado na área de trabalho.
Como definir o conjunto de etiquetas?
A primeira tarefa da anotação é definir o conjunto de etiquetas que será utilizado. Como a
SALTO foi feita para a Framenet, ela permite que os frames definidos no formato
Framenet sejam importados para o sistema. Para isso, escolha “Corpus” => “Edit
Frames” => “Add frames”.
Se for utilizar a SALTO para outra finalidade, escolha “Corpus” => “Edit Frames” =>
“Create new frame”. Defina um nome para seu conjunto de etiquetas e digite-o no campo
“name”, substituindo o nome “unknown”.
A seguir, escolha “Add Element” para inserir cada uma das etiquetas do seu conjunto.
Digite o nome da etiqueta e clique em “OK”. No exemplo abaixo foi inserida a etiqueta
“agente”.
Há um campo chamado “Optional” na frente da etiqueta criada. Se você assinalar o
quadradinho, a etiqueta não aparecerá na sua tela de trabalho. Você poderá mudar essa
preferência durante o processo de anotação.
Esse recurso é muito útil, pois se o seu conjunto de etiquetas for muito grande, poderá
poluir a tela de trabalho, como mostra a figura abaixo.
Para evitar esse problema, marque como “Optional” as etiquetas menos usadas e deixe
em branco apenas as mais usadas. As etiquetas que não aparecem na tela poderão ser
selecionadas clicando com o botão direito sobre o nome que você deu a seu conjunto de
etiquetas. Após fazer isso, escolha a opção “Add element” e todas as etiquetas definidas
ficarão disponíveis para seleção. Uma vez selecionada, a etiqueta ficará visível na
instância de anotação para ser atribuída.
Após definir todas as etiquetas de seu conjunto, clique em “OK”.
A ferramenta SALTO permite que o conjunto de etiquetas seja editado durante o
processo de anotação. É possível criar novas etiquetas e deletar as indesejadas, desde que
não tenham sido atribuídas nenhuma vez no corpus.
Como fazer a anotação?
Atribuir uma etiqueta a um constituinte é simples: clique sobre a etiqueta e arraste-a até o
“nó” da árvore sintática que representa o constituinte que deseja anotar, como mostrado
na próxima figura.
Como cancelar uma anotação?
Se a etiqueta foi atribuída indevidamente, você pode desfazer a ação imediatamente,
dando um “Ctrl z”. Se o erro for percebido mais tarde, clique com o botão direito sobre a
etiqueta e escolha “Delete element”.
É possível adicionar outras anotações?
Sim. Além das etiquetas atribuídas aos constituintes da árvore sintática, é possível fazer
dois outros tipos de anotação na ferramenta SALTO. Um é a atribuição de uma etiqueta à
sentença como um todo (“sentence flag”) e o outro é a atribuição de uma etiqueta à
palavra (“word tag”).
Como se atribui uma etiqueta à sentença como um todo?
Para anotação da sentença, o escolha “Corpus” => “Flag Current Sentence”. Há quatro
“flags” pré-definidas na SALTO: “Reexamine”, “Later”, “Wrongsubcorpus” e
“Interesting”.
A SALTO tem no alto da tela a opção de exibir todas as sentenças do corpus ou apenas as
sentenças que foram anotadas com “flags” ou ainda todas as sentenças que receberam
uma determinada “flag”.
Cada uma das “sentence flags” tem um campo para subclassificação chamado
“parameter” e um campo para comentário (“comment”). O nome do “parameter” deverá
ser digitado toda vez, não ficando disponível para seleção. Por isso, se quiser utilizar o
campo como se fosse uma etiqueta, deverá ter o cuidado de digitar o nome corretamente
toda vez. Assim, futuramente, poderá fazer uma busca por determinado parâmetro a fim
de recuperar todas as sentenças anotadas com ele.
Como se atribui etiquetas às palavras do texto?
A anotação de palavras deve ser feita com “word tags” definidas para a tarefa de
anotação. Escolha “Corpus” => “Edit word tag”. No campo “tag” digite um nome para a
etiqueta que você quer criar para palavras. Se for possível prever os valores que a “word
tag” poderá apresentar, coloque-os no campo “Values”, caso contrário, deixe esse campo
em branco.
A atribuição das word tags definidas deve ser feita clicando com o botão direito sobre a
palavra a ser anotada. Selecione uma das “word tags”. A seguir, digite um “value” para
ela ou, caso sejam apresentados “values” possíveis, apague os que não correspondem à
sua opção, deixando apenas o “value” desejado.

Documentos relacionados