Uma ferramenta para anotação de relações semânticas entre termos Leonardo Sameshima Taba, Helena de Medeiros Caseli Departamento de Computação Universidade Federal de Sâo Carlos (UFSCar) São Carlos SP Brasil {leonardo_taba,helenacaseli}@dc.ufscar.br 1. Introdução O Processamento de Língua Natural (PLN) adquire importância cada vez maior atualmente. É uma área em evidência pois a quantidade de informação disponível na forma de textos cresce a cada dia; no entanto, os recursos humanos disponíveis para estruturar e extrair conhecimento útil dessa vasta quantidade de dados não acompanham seu ritmo de crescimento, sendo necessário o uso de ferramentas para o processamento automático de textos. Essas ferramentas, por sua vez, precisam de uma quantidade de corpora anotados com informações relevantes para treinamento, mas a produção desses recursos é custosa, demandando tempo e anotadores especializados. Considerando os níveis de processamento linguístico, a morfologia e a sintaxe são níveis em que já existe uma quantidade significativa de corpora anotados. Em comparação, a semântica ainda tem uma quantidade inexpressiva de recursos, especialmente considerando a língua portuguesa. Essa escassez de dados semânticos é um limitador para diversas aplicações que poderiam se beneficiar de tais recursos, como a tradução automática, a recuperação de informação, a busca na web entre outras. Assim, dado o grande esforço necessário para a construção de recursos linguísticos e a escassez desses recursos em nível semântico, sobretudo para a língua portuguesa, este artigo apresenta uma ferramenta construída com o propósito de auxiliar a tarefa de anotação de relações semânticas. Essa tarefa se propõe a identificar relações semânticas binárias entre termos de um texto. Exemplos clássicos de relações semânticas incluem a hiponímia (subclasse e superclasse), meronímia (parte e todo) e sinonímia (sinônimos). Este trabalho enfoca sete relações semânticas derivadas da teoria da organização do conhecimento de Minsky (Minsky 1986), descritas na Tabela 1.
Tabela 1. Relações semânticas consideradas neste trabalho Relação semântica Sentença exemplo Relação extraída 1 is-a(subclasse, Maçã é uma fruta is-a(maçã, fruta) superclasse) 2 property-of(algo/alguém, característica) O prédio é alto property-of(prédio, alto) 3 part-of(todo, parte) Parafuso é parte de uma máquina part-of(máquina, parafuso) 4 made-of(produto, substância) Cacau é utilizado para fazer chocolate made-of(chocolate, cacau) 5 effect-of(ação/estado, Gripe causa febre effect-of(gripe, febre) conseqüência) 6 used-for(entidade, Pás são usadas para cavar used-for(pás, cavar) função) 7 location-of(algo/alguém, local) Uma secretária pode ser encontrada em um escritório location-of(secretária, escritório) A ferramenta apresentada neste artigo foi desenvolvida no âmbito de um estudo sobre extração automática de relações semânticas, fornecendo suporte para a construção manual de um corpus anotado, recurso necessário para o treinamento dos métodos computacionais automáticos investigados. Dois modelos em específico, árvores de decisão (Quinlan 1993) e Support Vector Machines (Cortes e Vapnik 1995), foram treinados sobre um conjunto inicial de dados de treinamento. Com o uso desses algoritmos, a ferramenta se torna capaz de detectar automaticamente novas relações semânticas, agilizando o processo de anotação do corpus. O restante deste artigo se organiza da seguinte forma: a Seção 2 apresenta uma breve revisão da bibliografia sobre ferramentas de anotação semântica; a Seção 3 apresenta a metodologia e as principais decisões tomadas na construção da ferramenta descrita neste artigo; a Seção 4 apresenta os resultados obtidos com o uso da ferramenta; e a Seção 5 traz as conclusões e considerações para trabalhos futuros.
2. Revisão bibliográfica Algumas das ferramentas já desenvolvidas para a tarefa de anotação semântica de corpora são a SALTO (Burchardt et al. 2006) e a GATE (Cunningham et al. 2011). A SALTO (Burchardt et al. 2006) foi originalmente desenvolvida para a anotação de papéis semânticos no formato da semântica de frames (Baker et al. 1998), embora possa ser utilizada para outros tipos de anotação. Além da funcionalidade da marcação de textos, a ferramenta também pode fazer gerenciamento de corpus e tem uma interface para resolução de conflitos entre anotadores. Os formatos de entrada e saída de dados aceitos pela SALTO são o Tiger XML (Mengel e Lezius 2000) e seu formato próprio, o SALSA/Tiger XML. A SALTO foi desenvolvida utilizando a linguagem Java e a biblioteca Swing para a interface com o usuário. O projeto Propbank-Br (Duran e Aluísio 2011), cujo objetivo é a criação de uma base textual anotada com papéis semânticos em português do Brasil, utiliza esta ferramenta em seu desenvolvimento. A GATE (Cunningham et al. 2011) é uma plataforma dedicada ao desenvolvimento de qualquer tipo de tarefa de PLN, incluindo etiquetação de corpora. Ela fornece um ambiente integrado para o desenvolvimento de aplicações de PLN, possibilitando a integração de todas as etapas do processamento de um texto (p. ex. tokenização, segmentação, análise léxica) em um mesmo local. A GATE aceita diversos formatos de dados de entrada como texto puro, HTML, SGML, XML, PDF, entre outros, mas tem um formato de armazenamento próprio baseado em XML. A linguagem utilizada em seu desenvolvimento foi Java. Apesar da existência dessas alternativas, optou-se pelo desenvolvimento de uma nova ferramenta focada nos objetivos específicos desta pesquisa, já que os trabalhos existentes fazem diversos tipos de anotações e possuem muitas funcionalidades que não seriam aproveitadas no escopo desta pesquisa a plataforma GATE em especial fornece um ambiente completo de desenvolvimento que seria subutilizado. Assim, preferiu-se o desenvolvimento de uma ferramenta mais simples e alinhada diretamente com a tarefa de marcação de relações semânticas entre termos.
3. Metodologia A ferramenta para anotação de relações semânticas entre termos foi desenvolvida utilizando a linguagem Java versão 1.6, a biblioteca Swing para a interface com o usuário e o ambiente de desenvolvimento NetBeans 7.1. Sua interface principal pode ser vista na Figura 1. O uso da linguagem Java torna a aplicação independente de plataforma e sistema operacional (Windows, Linux, etc.), bastando que o usuário tenha uma versão recente (ao menos 1.6) do Java Runtime Environment (JRE) instalado. Figura 1. Interface principal da ferramenta O formato de entrada escolhido foi o JSON 1. O motivo dessa escolha sobre outros formatos tradicionais para codificação de corpus como o Tiger XML (Mengel e Lezius 2000) e o XCES (Ide et al. 2000) é que o JSON é igualmente portável entre aplicações e fácil de ser processado computacionalmente porém é mais sucinto, resultando em arquivos menores. A unidade mínima de anotação foi definida como um token, que neste trabalho é uma sequência de quaisquer caracteres exceto o espaço em branco. Um termo é considerado uma sequência de tokens que corresponde a uma entidade no texto, e uma relação é definida como uma tripla <relação, termo1, termo2>, onde relação é uma das 1 http://www.json.org/
sete relações descritas na Tabela 1 e termo1 e termo2 são os termos que participam da relação. Por exemplo, na Figura 1 temos três relações demarcadas: part-of(record, novela), part-of(record, A=Revanche) e is-a(a=revanche, novela). Outra estratégia adotada no desenvolvimento da ferramenta foi a de que não pode haver sobreposição entre os termos, ou seja, um mesmo token não pode fazer parte de dois termos distintos. Essa decisão visa simplificar a marcação dos termos. O corpus inicial escolhido para anotação foi o CETENFolha 2, composto por textos jornalísticos e compreendendo cerca de 25 milhões de palavras em português, divididas em aproximadamente 1,6 milhões de sentenças anotadas morfossintaticamente pelo parser PALAVRAS (Bick 2000). Uma amostra dessas sentenças foi selecionada de acordo com a frequência de ocorrência de sintagmas nominais (SNs) no corpus foram escolhidas as sentenças que continham sintagmas que ocorriam de 18 a 51 vezes. Essa faixa foi delimitada pois representa cerca de 15 mil sintagmas, o que, considerando a lista de frequências ordenada e acumulada de todos os SNs, correspondem a uma faixa de 10% do total de SNs do corpus, cuja frequência está entre 40% e 50% da distribuição acumulada. Desse modo, os termos selecionados não são os mais frequentes, localizados no início da curva de distribuição, nem os menos frequentes, localizados no fim da curva. O intervalo entre 40% e 50% foi definido empiricamente e com o intuito de se obter uma boa variedade de sintagmas distintos (15 mil) com um número significativo de ocorrências (18 a 51). As sentenças nas quais esses 15 mil SNs ocorrem foram selecionadas, resultando em uma amostra de aproximadamente 230 mil sentenças a serem anotadas. Essas sentenças foram transformadas do formato de saída do PALAVRAS para o formato JSON e divididas em pacotes com cerca de 1000 sentenças. Como o processo de anotação do corpus está sendo realizado por dois anotadores, cada par de conjuntos de 1000 sentenças tem por volta de 100 sentenças em comum para o cálculo da concordância entre os anotadores. A ferramenta possibilita a comparação entre dois conjuntos de dados, mostrando as sentenças comuns aos dois conjuntos e calculando a concordância entre as anotações (Figura 2). Essa funcionalidade facilita a comparação entre as anotações feitas pelos dois anotadores. 2 http://www.linguateca.pt/cetenfolha/
Figura 2. Interface de comparação de anotações Extração automática de relações semânticas O objetivo final da pesquisa na qual a ferramenta descrita neste artigo está inserida é realizar a extração automática de relações semânticas. Isso pode ser feito através do uso de modelos computacionais de aprendizado de máquina (AM) treinados sobre os conjuntos de sentenças anotadas manualmente com as relações de interesse. De forma simplificada, os modelos de AM decidem, para cada par de termos em uma sentença, se uma dada relação existe entre esse par de termos ou não. A decisão é feita com base na similaridade das características (também chamadas de features) dos pares de termos encontrados com as características das relações marcadas manualmente. Foram escolhidos dois algoritmos para realizar os testes iniciais: árvores de decisão (Quinlan 1993) e Support Vector Machines (Cortes e Vapnik 1995). Alguns exemplos de relações semânticas encontradas automaticamente por esses dois métodos são apresentados na próxima seção.
A tarefa de extração automática de relações semânticas é composta de duas etapas: primeiro os termos de interesse de uma sentença precisam ser identificados; em seguida, as relações existentes entre os pares de termos devem ser detectadas. Essa detecção é feita por algoritmos de AM como descrito no parágrafo anterior. A primeira etapa de identificação dos termos, por sua vez, nesta ferramenta pode ser auxiliada por um identificador baseado em um autômato finito (Hopcroft et al. 1979), mostrado na Figura 3 3. Esse identificador foi criado para que nomes compostos como África do Sul ou Organização Mundial da Saúde fossem identificados como sendo um único termo. Depois que o autômato é aplicado sobre a sentença todos os substantivos e adjetivos restantes (que não fazem parte de nenhum termo) são marcados como termos. Essa identificação automática é feita para auxiliar o anotador humano na tarefa de anotação do corpus, sendo que ele pode modificar livremente as marcações feitas inicialmente pela ferramenta. 4. Resultados Figura 3. Autômato finito que identifica termos compostos Com o uso da ferramenta, um primeiro conjunto de aproximadamente 3800 sentenças foi completamente anotado por dois anotadores: cada anotador etiquetou cerca de 2000 sentenças, sendo que havia por volta de 200 sentenças comuns aos dois anotadores. O número de relações resultante dessa rodada de anotação é apresentado na Tabela 2. Percebe-se que as relações mais freqüentes são a property-of, is-a, part-of e location-of, sendo as demais muito menos frequentes. 3 No autômato o símbolo A indica um token iniciado com letra maiúscula e o símbolo x indica qualquer token que não participe de alguma transição de estado. Quando o estado 4 é alcançado o termo identificado é marcado.
Tabela 2. Número de relações marcadas por cada anotador separadamente e em conjunto. A intersecção compreende as 200 sentenças comuns aos dois anotadores Relação Anotador A Anotador B Intersecção Total de relações distintas property-of 2843 2271 205 4909 is-a 1333 1617 134 2816 part-of 902 1203 129 1976 location-of 775 967 59 1683 effect-of 58 111 6 163 used-for 21 117 2 136 made-of 23 59 8 74 Total 5955 6345 543 11757 A taxa de concordância entre os dois anotadores, verificada sobre o conjunto de cerca de 200 sentenças comuns, é calculada como o número de relações anotadas da mesma forma por ambos dividido pelo número total de relações distintas anotadas. Essa razão, nesta primeira etapa de anotação, foi de 69,17%, sendo que do total de 785 relações semânticas distintas anotadas pelos dois anotadores haviam 543 anotadas da Tabela 3. Alguns exemplos de relações semânticas encontradas automaticamente pelos métodos de aprendizado de máquina e o trecho da sentença da qual elas foram extraídas (termos aparecem marcados entre colchetes) Relação Sentença part-of(usp, Equipe) [Equipe] de a [USP] detalha... property-of(atividade, física)... [adeptos] de a [atividade] [física] [moderada] ganham... property-of(atividade, moderada)... [adeptos] de a [atividade] [física] [moderada] ganham... is-a(natação, modalidades)... [modalidades] [esportivas] [distintas], como [natação]... location-of(hospital San Martino, o [Hospital San Martino], em [Gênova], Gênova) [Itália]...
mesma forma. Em paralelo ao trabalho de anotação um manual de anotação está sendo desenvolvido para permitir que outros anotadores possam integrar o processo de anotação futuramente. A Tabela 3 mostra alguns exemplos de relações semânticas corretamente encontradas pelos métodos de AM citados na seção anterior. 5. Conclusões e trabalhos futuros Este artigo apresentou uma ferramenta de anotação de relações semânticas entre termos. Essa ferramenta é específica para a tarefa em questão e utiliza um formato próprio de representação, codificado na estrutura JSON. Ela está sendo utilizada para a anotação semântica de uma amostra do corpus CETENFolha que serve de base para estudos sobre extração automática de relações semânticas em corpora escritos em português do Brasil, através do treinamento de modelos computacionais automáticos. Dois modelos, árvores de decisão e Support Vector Machines, estão sendo testados. Embora a ferramenta já esteja funcional em sua forma atual, novas melhorias estão planejadas para versões futuras. Uma das funcionalidades a serem implantadas é permitir que o usuário customize as relações que queira anotar, possibilitando que outras relações além das 7 definidas possam ser anotadas. Referências BAKER, C. F., FILLMORE,C. J., e LOWE, J. B. (1998). The Berkeley framenet project In: Proceedings of the 36 th annual meeting of the association for computational linguistics and 17 th international conference on computational linguistics, Montreal, Canadá: Association for Computational Linguistics. vol. 1, pp 86 90. BICK, E. (2000). The parsing system Palavras : automatic grammatical analysis of Portuguese in a constraint grammar framework. Dinamarca: Aarhus University Press. BURCHARDT, A.; ERK, K.; FRANK, A.; KOWALSKI, A.; PADO, S., e PINKAL, M. (2006). Salto a versatile multi-level annotation tool, In: Proceedings of LREC 2006, Gênova, Itália. CORTES, C. e VAPNIK, V. (1995). Support-vector networks. Machine Learning, vol. 20. pp. 273 297.
CUNNINGHAM, H.; MAYNARD, D.; BONTCHEVA, K.; TABLAN, V.; ASWANI, N.; ROBERTS, I.; GORRELL, G.; FUNK, A.; ROBERTS, A.; DAMLJANOVIC, D.; HEITZ, T.; GREENWOOD, M. A.; SAGGION, H.; PETRAK, J.; LI, Y., e PETERS, W. (2011). Text Processing with GATE (Version 6). DURAN, M. S. e ALUÍSIO, S. M. (2011). Propbank-br: a Brazilian Portuguese corpus annotated with semantic role labels, In: Proceedings of the 8 th Symposium in Information and Human Language Technology, Cuiabá/MT, Brasil. HOPCROFT, J.; MOTWANI, R., e ULLMAN, J. (1979). Introduction to automata theory, languages, and computation, vol 2. Reading, EUA: Addison-wesley. IDE, N.; BONHOMME, P., e ROMARY, L. (2000). Xces: an xml-based encoding standard for linguistic corpora, In: Proceedings of LREC 2000, Atenas, Grécia. pp. 825 830. MENGEL, A. e LEZIUS, W. (2000). An xml-based encoding format for syntactically annotated corpora, In: Proceedings of LREC 2000, Atenas, Grécia. pp. 121 126. MINSKY, M. (1986). The Society of Mind. EUA: Simon and Schuster. QUINLAN, J. R. (1993). C4.5: programs for machine learning. São Francisco, EUA: Morgan Kaufmann Publishers Inc.