Universidade de Lisboa Faculdade de Ciências Departamento de Informática Desambiguação Automática da Flexão Verbal em Contexto Pedro Lopes Mendes Martins Mestrado em Engenharia Informática 2008 2 Universidade de Lisboa Faculdade de Ciências Departamento de Informática Desambiguação Automática da Flexão Verbal em Contexto Pedro Lopes Mendes Martins DISSERTAÇÃO Dissertação orientada pelo Prof. Dr. António Horta Branco Mestrado em Engenharia Informática 2008 Declaração Pedro Lopes Mendes Martins, aluno no 30101 da Faculdade de Ciências da Universidade de Lisboa, declara ceder os seus direitos de cópia sobre o seu Relatório de Projecto em Engenharia Informática, intitulado ”Desambiguação automática da flexão verbal em contexto”, realizado no ano lectivo de 2007/2008 à Faculdade de Ciências da Universidade de Lisboa para o efeito de arquivo e consulta nas suas bibliotecas e publicação do mesmo em formato electrónico na Internet. FCUL, 29 de Outubro de 2008 António Horta Branco, supervisor do projecto de Pedro Lopes Mendes Martins, aluno da Faculdade de Ciências da Universidade de Lisboa, declara concordar com a divulgação do Relatório do Projecto em Engenharia Informática, intitulado ”Desambiguação automática da flexão verbal em contexto”. Lisboa, 29 de Outubro de 2008 Resumo Este documento descreve o trabalho realizado no âmbito da disciplina de Projecto em Engenharia Informática do Mestrado em Engenharia Informática da Faculdade de Ciências da Universidade de Lisboa. O trabalho desenvolvido explora novas abordagens para o problema de desambiguação da flexão expressa por uma forma verbal em contexto. Em vez de tentar criar de raiz novos métodos para atacar este problema, podemos olhar para tarefas similares e usar os métodos que costumam ter bons resultados nessas tarefas aplicando-os à tarefa de desambiguação da flexão expressa por uma forma verbal em contexto. Em trabalho anterior foi usado um método que costuma ter bons resultados numa tarefa similar, etiquetação automática. Essa abordagem ficou aquém do valor base dado pelo algoritmo de atribuição do valor de flexão mais frequente. Como tal, no presente trabalho exploram-se outros métodos usados num problema que também tem caracterı́sticas similares à desambiguação da flexão expressa por uma forma verbal em contexto, a saber, a desambiguação da acepção de palavra. Primeiro será explicado o enquadramento em que o trabalho se insere e a motivação para a sua realização (Capı́tulo 1). Em seguida será exposto o problema em pormenor, dando já algumas linhas condutoras quanto às formas de o abordar e resolver (Capı́tulo 2). No Capı́tulo 3 vamos rever o que foi feito em trabalhos anteriores quanto a tarefas iguais ou similares assim como os seus resultados. Finalmente apresentaremos uma descrição detalhada da implementação da abordagem explorada e os resultados obtidos, comparando-os com os anteriores (Capı́tulo 4), terminando com um capı́tulo final de conclusões (Capı́tulo5). PALAVRAS-CHAVE: Processamento de linguagem natural, Desambiguação, Flexão verbal, Aprendizagem automática, Lingua portuguesa. i Abstract This document describes the work undertaken in the scope of the course Projecto de Engenharia Informática, of the post-graduation course Mestrado em Engenharia Informática da Faculdade de Ciências da Universidade de Lisboa. This document presents the work developed to explore new approaches concerning the disambiguation of verbal inflection values. Instead of trying to create new methods, we tried to look at tasks similar to the disambiguation of a verbal inflected value and take advantage of the best methods in use for those tasks. In previous work, some methods known for having good results in a similar task, automatic tagging of text, were used. However these methods lagged behind the baseline method of simply using the most frequent value. So, in order to try to overcome that barrier, we try a different approach based on the most promising methods frequently used in other similar task, the methods used in word sense disambiguation. First, the framework and motivation for the development of this work will be explained in (Chapter 1). Next, this topic will be detailed by providing some clues on how we can try to solve it (Chapter 2). In Chapter 3, we will take an overview at previous work for the same task or similar ones. Finally, we will present a fully detailed description of the implementations for our approaches to the problem, as well as a detailed description of the results and a comparison to previous work (Chapter 4), and we will close this document with a final conclusion chapter (Chapter 5). KEYWORDS: Natural language processing, Disambiguation, Verbal inflection, Machine-Learning, Portuguese Language. iii Agradecimentos Gostaria de agradecer a algumas pessoas que foram importantes para a realização deste trabalho. Agradeço ao meu orientador, o Prof. António Branco, pela disponibilidade e por todos os conselhos e ensinamentos que me transmitiu. Aos membros do Grupo NLX, por me terem proporcionado um ambiente de trabalho fantástico, em especial ao João Silva pela ajuda com o LATEX. À FCT, pelo financiamento atribuı́do aos projectos nos quais estive integrado. À minha famı́lia e amigos por me terem apoiado e incentivado quando mais precisei. Ao Daniel Sousa pelos bons conselhos. Um agradecimento especial à Teresa por ter sido sempre o meu porto seguro. v À minha famı́lia. vii Índice Lista de Figuras xii Lista de Tabelas xiv 1 Introdução 1.1 Enquadramento . . . . . . 1.2 Motivação . . . . . . . . . 1.3 Objectivos . . . . . . . . . 1.4 Organização do documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Flexão e desambiguação verbal 2.1 Flexão verbal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Conjugação e lematização . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 LX-Conj e LX-Lem . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 Outras ferramentas . . . . . . . . . . . . . . . . . . . . . . . 2.3 Desambiguação verbal em contexto . . . . . . . . . . . . . . . . . . 2.4 Desambiguação verbal como tarefa de etiquetação . . . . . . . . . . 2.4.1 Tarefa de etiquetação morfossintáctica . . . . . . . . . . . . 2.4.2 Abordagens populares . . . . . . . . . . . . . . . . . . . . . 2.5 Desambiguação verbal como tarefa de desambiguação da acepção de palavra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.1 Tarefa de desambiguação da acepção de palavra . . . . . . . 2.5.2 Abordagens populares . . . . . . . . . . . . . . . . . . . . . 3 Estado-da-arte 3.1 Avaliação e conjunto de dados . . . . 3.1.1 Caracterização do corpus . . . 3.1.2 Medidas de avaliação . . . . . 3.2 Heurı́stica de máxima verosimilhança 3.3 Modelos de Markov escondidos . . . . 3.4 Trabalhos relacionados . . . . . . . . ix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 2 2 . . . . . . . . 3 3 5 5 6 7 8 8 9 . 10 . 11 . 11 . . . . . . 13 13 14 17 17 19 20 4 Desambiguação de flexão verbal: uma abordagem DAP 4.1 Aplicação do classificador Naive Bayes . . . . . . . . . . . 4.2 Aplicação do classificador SVM . . . . . . . . . . . . . . . 4.3 Pré-processamento . . . . . . . . . . . . . . . . . . . . . . 4.3.1 O formato .arff . . . . . . . . . . . . . . . . . . . . 4.3.2 O formato .dat . . . . . . . . . . . . . . . . . . . . 4.3.3 Aglomerados . . . . . . . . . . . . . . . . . . . . . 4.3.4 Clı́ticos . . . . . . . . . . . . . . . . . . . . . . . . 4.3.5 Classes aberts vs. Classes fechadas . . . . . . . . . 4.3.6 Implementação . . . . . . . . . . . . . . . . . . . . 4.4 Conjuntos de dados . . . . . . . . . . . . . . . . . . . . . . 4.5 Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.1 Abordagens exploradas . . . . . . . . . . . . . . . . 4.5.2 Estudo do espaço de resultados . . . . . . . . . . . 4.5.3 Comparação com trabalhos anteriores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 22 25 26 28 34 35 37 39 40 40 42 42 64 69 5 Conclusão e trabalho futuro 72 Acrónimos 74 Índice remissivo 74 Bibliografia 75 x Lista de Figuras 3.1 Número de ocorrências de formas verbais por grau de ambiguidade. . 16 3.2 Proporção de ocorrências no corpus de formas verbais lexicalmente ambı́guas por tipo de ambiguidade. . . . . . . . . . . . . . . . . . . . 17 3.3 Modelo de Markov Escondido - representação temporal. Extraı́da da Wikipedia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.1 Discriminante linear. Extraı́da de (Agirre e Edmonds, 2006). . . . . . 4.2 Discriminante linear com margem de erro. Extraı́da de (Agirre e Edmonds, 2006). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Precisão média por número de instâncias de treino nos modelos, só para instâncias ambı́guas. . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Precisão média por número de instâncias de treino nos modelos, com curva suavizada através de interpolação, só para instâncias ambı́guas. 4.5 Desvio de padrão por número de instâncias de treino nos modelos, com curva suavizada através de interpolação, só para instâncias ambı́guas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6 Precisão média acumulada à medida que aumenta o número de instâncias de treino, só para instâncias ambı́guas. . . . . . . . . . . . . . . . . . 4.7 Número de modelos por número de instâncias de treino no modelo. . xii 26 26 65 66 67 68 69 Lista de Tabelas 2.1 Todas as combinações de flexão para formas verbais simples . . . . . 2.2 Modo e tempos verbais dos verbos auxiliares e o seu correspondente verbo composto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5 4.1 Tabela com valores de desempenho para contexto de tópicos usando toda as instâncias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.2 Tabela com valores de desempenho para contexto local usando todas as instâncias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.3 Tabela com valores de desempenho para contexto de tópicos mais contexto local para todas as instâncias. . . . . . . . . . . . . . . . . . 63 4.4 Algoritmos A e B de (Nunes, 2007) e Algoritmo A+A+L. Valores nas condições de avaliação do presente trabalho usando todas as instâncias. 63 4.5 Tabela com valores de desempenho para contexto de tópicos, apenas instâncias ambı́guas. . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.6 Tabela com valores de desempenho para contexto local, apenas instâncias ambı́guas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 4.7 Tabela com valores de desempenho para contexto de tópicos mais contexto local, apenas instâncias ambı́guas. . . . . . . . . . . . . . . . 64 4.8 Algoritmos A e B de (Nunes, 2007) e Algoritmo A+A+L. Valores nas condições de avaliação do presente trabalho, apenas instâncias ambı́guas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 xiv Capı́tulo 1 Introdução Ao ler um texto em lı́ngua portuguesa deparamo-nos várias vezes com situações em que precisamos de desambiguar formas verbais, quando estas são ambı́guas. No entanto se virmos escrita, ou nos pronunciarem, uma forma verbal ambı́gua totalmente desprovida de contexto, não somos capazes de, dentro das várias possı́veis flexões que a forma pode expressar, escolher a correcta. Por outro lado, se tivermos contexto, somos capazes de decidir que flexão expressa uma forma verbal com relativa facilidade. Nos próximos pontos vamos explicar porque nos interessa abordar esta tarefa de desambiguação da flexão verbal. 1.1 Enquadramento Este projecto foi realizado no âmbito da disciplina de Projecto em Engenharia Informática do Mestrado em Engenharia Informática da Faculdade de Ciências da Universidade de Lisboa. O tema enquadra-se no trabalho desenvolvido no grupo de investigação NLX.1 Neste grupo foram desenvolvidas várias ferramentas para a etiquetação morfossintáctica automática de texto. A etiquetação de formas verbais encontradas num texto, com os seus traços e lemas, é um dos desafios dessa tarefa. Para algumas formas verbais, essa etiquetação inclui escolher os traços e lemas expressos na ocorrência em causa, ou seja desambiguar a acepção flexional da forma verbal. 1.2 Motivação Em trabalho anterior (Nunes, 2007), este tema foi abordado de duas maneiras, uma abordagem baseada na ocorrência mais frequente de flexão para uma forma verbal (os valores obtidos por este método são tidos como o valor base de comparação), e 1 http://nlx.di.fc.ul.pt/ 1 Capı́tulo 1. Introdução 2 outra abordagem baseada num método usado em tarefas de etiquetação automática. No entanto, apesar de mais sofisticado, esse método não ficou aquém do valor base de comparação. Tendo isto em conta, vem à ideia que talvez com outro tipo de abordagens se consiga obter valores acima do valor base de comparação, nomeadamente com as abordagens usadas noutro problema similar, a desambiguação da acepção de palavra. 1.3 Objectivos O objectivo deste trabalho é procurar um método de desambiguar as formas verbais com melhor desempenho que os conhecidos até agora. Isto será feito através de métodos ainda não explorados para este problema especı́fico, mas com os melhores resultados num problema similar, a desambiguação da acepção de palavra. 1.4 Organização do documento Este documento está organizado da seguinte forma: • Capı́tulo 2 - Apresenta uma descrição detalhada do tema da flexão verbal e respectiva desambiguação, bem como possı́veis abordagens ao problema. • Capı́tulo 3 - Relata o trabalho previamente realizado para problemas iguais ou semelhantes a este, com os quais podemos comparar este trabalho. • Capı́tulo 4 - Apresenta a implementação e avaliação das experiências levadas a efeito. • Capı́tulo 5 - Apresenta as conclusões tiradas do trabalho realizado e possı́vel trabalho futuro em relação a este tema. Capı́tulo 2 Flexão e desambiguação verbal 2.1 Flexão verbal De acordo com a descrição em (Bergström e Reis, 2004), “A flexão é a variação de uma palavra que permite exprimir através de certos elementos categorias gramaticais.” A flexão pode ser nominal ou verbal. Não cabendo ser exaustivo aqui vamos apenas abordar a parte a que esta tese diz respeito, a flexão verbal. Consultando de novo (Bergström e Reis, 2004), tem-se que “Um verbo é uma palavra de forma variável que exprime o que se passa, isto é, um acontecimento representado no tempo.” Ao flexionar, um verbo pode alterar a sua forma para expressar diferentes valores dos traços de número, pessoa, modo, tempo e aspecto. Os particı́pios têm caracterı́sticas de verbo e de adjectivo, flexionando em género e número. Vou apresentar em promenor apenas os caracterı́sticas que são usadas na etiquetação do CINTIL.1 A categoria número tem como valores singular e plural. Singular quando tipicamente se refere a uma só entidade e, plural, quando tipicamente se refere a mais do que uma entidade. A categoria pessoa está relacionada com a pessoa gramatical da expressão que serve de sujeito ao verbo. Existem três valores possı́veis dentro desta categoria: 1a pessoa, 2a pessoa e 3a pessoa. Estes podem variar conforme o número, dando origem a seis valores possı́veis. Assim temos, por exemplo, em termos de pronomes pessoais: para a 1a pessoa o eu (singular) e nós (plural); para a 2a pessoa o tu (singular) e o vós (plural); e finalmente para a 3a pessoa o ele/ela (singular) e eles/elas (plural). Também nesta categoria pode entrar a 2a pessoa de cortesia, que em termos de pronomes pessoais se pode realizar através de você/vocês. A categoria modo tem por valores indicativo, conjuntivo e imperativo. Este último pode dividir-se em afirmativo e negativo (Cunha e Cintra, 1986, page 378). 1 O corpus descrito na secção 3.1.1. 3 Capı́tulo 2. Flexão e desambiguação verbal Modo Indicativo Imperativo N/A Infinitivo N/A Particı́pio N/A Pessoa/Número 1a , 2a e 3a singular 2a de cortesia singular 1a , 2a e 3a plural a 2 de cortesia plural 1a , 2a e 3a singular 2a de cortesia singular 1a , 2a e 3a plural a 2 de cortesia plural 1a , 2a e 3a singular 2a de cortesia singular 1a , 2a e 3a plural a 2 de cortesia plural 1a , 2a e 3a singular 2a de cortesia singular a 1 , 2a e 3a plural a 2 de cortesia plural N/A Gerúndio N/A N/A Conjuntivo Tempo presente pretérito perfeito pretérito mais-que-perfeito pretérito imperfeito futuro do presente futuro do pretérito presente pretérito imperfeito futuro do presente 4 Género/Número N/A Polaridade N/A N/A N/A N/A Afirmativa Negativa N/A N/A masculino singular feminino singular masculino plural feminino plural N/A N/A N/A Tabela 2.1: Todas as combinações de flexão para formas verbais simples Segundo alguns autores, estes valores podem indicar a atitude da pessoa que fala em relação ao facto que enuncia. Também nesta categoria, e para manter a coerência com trabalho anterior em que o presente projecto se insere, vamos considerar as formas nominais do verbo: infinitivo, que pode ser pessoal (flexionado) ou impessoal (não flexionado), gerúndio e particı́pio. A categoria tempo contribui para indicar o momento em que ocorre a situação expressa pelo verbo. Para esta categoria, existem três valores principais presente, pretérito - que se pode dividir em pretérito perfeito, pretérito-mais-que-perfeito e pretérito imperfeito - e futuro - que se pode dividir em futuro do presente e futuro do pretérito ou condicional. Cada valor de modo pode ser conjugado com diferentes combinações de valores de tempo. Podemos assim ver o leque de possibilidades que a flexão verbal permite. Nem todas as combinações são possı́veis. Na tabela 2.1 podemos ver a lista de combinações possı́veis para as formas verbais simples do português. Aos elementos deste conjunto de possibilidades passaremos, daqui em diante, a chamar traços flexionais, ou simplesmente traços. Quanto às formas verbais compostas, os seus traços são obtidos injectivamente através das formas simples usando a tabela 2.2. Capı́tulo 2. Flexão e desambiguação verbal Verbo auxilar indicativo, presente indicativo, pretérito imperfeito indicativo, pretérito mais-que-perfeito indicativo, futuro presentei indicativo, futuro pretérito conjuntivo, presente conjuntivo, pretérito imperfeito conjuntivo, futuro infinitivo pessoal infinitivo impessoal gerúndio 5 Tempo composto indicativo, pretérito perfeito composto indicativo, pretérito mais-que-perfeito composto indicativo, pretérito mais-que-perfeito anterior indicativo, futuro do presente composto indicativo, futuro do pretérito composto conjuntivo, pretérito perfeito conjuntivo, pretérito mais-que-perfeito conjuntivo, futuro composto infinitivo pessoal pretérito infinitivo impessoal pretérito gerúndio pretérito Tabela 2.2: Modo e tempos verbais dos verbos auxiliares e o seu correspondente verbo composto. 2.2 Conjugação e lematização Por convenção, assume-se que o lema de um verbo é a sua forma infinitiva não flexionada. Como vimos na secção anterior, o lema de um verbo apresenta um conjunto de possibilidades de flexão bastante elevado. Ao processo que leva o lema mais os traços de flexão a uma forma flexionada que exprime esses traços para esse lema chama-se de conjugação. Ao processo inverso que leva de uma forma flexionada ao seu lema chama-se de lematização. A conjugação não é uma função injectiva do conjunto dos traços para o conjunto das formas flexionadas. Por exemplo, se conjugarmos o verbo ser na 1a pessoa do Pretérito Imperfeito e na 3a pessoa do mesmo tempo verbal obtemos a mesma forma era. Contudo, este processo não deixa de ser uma função ao passo que a lematização não é uma função. Neste último, para uma dada forma verbal isolada de qualquer conteúdo de ocorrência pode não ser possivel determinar um único traço de flexão e/ou lema. Tomando o exemplo anterior, se quisermos lematizar a forma verbal era, temos duas possibilidades de traços como resultado. Neste caso há ambiguidade quanto aos traços. Por outro lado, por exemplo, a forma fui pode lematizar para o lema ser ou ir. Aqui há ambiguidade quanto ao lema. É a necessidade de se determinar lema e traços associados à ocorrência de qualquer forma verbal em contexto que move este projecto. Como determinar a verdadeira acepção flexional para cada forma verbal especialmente quando esta é ambı́gua? 2.2.1 LX-Conj e LX-Lem No grupo de investigação onde o presente trabalho se insere (NLX), foram desenvolvidas ferramentas para lidar com os processos descritos anteriormente. Assim Capı́tulo 2. Flexão e desambiguação verbal 6 temos o LX-Conj2 para lidar com a conjugação e o LX-Lem3 para lidar com o processo de lematização. É de salientar que o processo de lematização engloba não só reduzir a forma ao seu lema ou lemas, mas também determinar a informação acerca dos traços que levam esses lemas à forma em questão. O LX-Lem não faz desambiguação. Ao invés, dá todas as possibilidades de lema/traços para a forma verbal introduzida. Incorporado num conjunto de ferramentas denominado LX-Suite,4 que anota automaticamente texto, existe um módulo que atribui um lema e os traços verbais a uma forma verbal que ocorra num texto, sendo que esta informação faz parte da anotação do LX-Suite. Este módulo realiza a tarefa de desambiguação utilizando uma heurı́stica de máxima verosimilhança,5 em conjunto com o LX-Lem, que consegue resultados surpreendentemente bons dada a sua simplicidade. Por sua vez, o LX-Conj permite obter a forma do verbo relevante. Isto é, a partir do lema e dos traços dados, permite obter a instância flexionada correspondente. Estas ferramentas, são potencialmente úteis para o problema a ser abordado nesta dissertação. Vamos ver mais à frente como se podem articular para ajudar a abordá-lo. 2.2.2 Outras ferramentas Para além destas ferramentas desenvolvidas no grupo NLX, existem outras ferramentas que desempenham o mesmo papel ou parecido. Para a conjugação verbal, existem bastantes ferramentas para o português: Conjugame,6 PRIBERAM,7 MorDebe,8 INSITE,9 Conjugue10 Porém, ao contrário do LXConj, não permitem conjugar com clı́ticos, não apresentam as formas compostas nem são de input aberto, ou seja, não permitem conjugar neologismos ou palavras desconhecidas do léxico do sistema. CONVER,11 Conjugador da Universidade Federal de Pernambuco, Recife12 e Lingua::PT,13 também não permitem conjugação com clı́ticos nem apresentam formas compostas mas gera as formas para neologismos. 2 http://lxconj.di.fc.ul.pt http://lxlem.di.fc.ul.pt 4 http://lxsuite.di.fc.ul.pt 5 Ver o ponto 3.3 6 http://www.conjuga-me.net/ 7 http://www.priberam.pt/dlpo/ajuda/ajuda conjugacaoverbos.aspx 8 http://www.iltec.pt/mordebe/ 9 http://linguistica.insite.com.br/cgi-bin/conjugue 10 http://www.fpepito.org/utils/conjugue.php 11 http://www.inf.ufrgs.br/ emiliano/conver/ 12 http://www.cin.ufpe.br/ tradutor/conjugad.htm 13 http://users.isr.ist.utl.pt/ etienne/cgi-bin-etienne/verbs portuguese cgi.pl 3 Capı́tulo 2. Flexão e desambiguação verbal 7 Tanto quanto nos foi possı́vel apurar, só existem estes conjugadores para o Português. Também não foram encontrados lematizadores automáticos para o Português, além do LX-Lem. As ferramentas que dispomos para apoiar a nossa tarefa, quer para a conjugação quer para a lematização (sem desambiguação), são pois estado-da-arte. 2.3 Desambiguação verbal em contexto Antes demais, apresentamos aqui os três tipos de ambiguidade possı́veis para a flexão verbal. Primeiro temos a ambiguidade de lema: consumo -> consumir -> consumar Temos também ambiguidade de traços: deram -> Pretérito Perfeito do indicativo, 3a pessoa, plural -> Pretérito mais-que-perfeito do indicativo, 3a pessoa, plural E por último a ambiguidade de traços e lema: virei -> vir, Futuro do indicativo, 1a pessoa, singular -> virar, Pretérito Perfeito do indicativo, 1a pessoa, singular Como foi dito anteriormente, para uma dada forma verbal, o LX-Lem devolve os seus lemas e traços possı́veis. Mas como tem apenas acesso à forma verbal isolada de qualquer contexto de ocorrência, não consegue fazer qualquer inferência para a desambiguar, ou seja, para decidir qual dos lemas/traços deve ser retido. Nem os seres humanos conseguiriam fazê-lo! Para o conseguirmos fazer, precisamos de contexto. No contexto estão as pistas que nos levam a perceber se uma forma verbal instancia este ou aquele lema, e expressa estes ou aqueles traços. Por exemplo, tomando a forma for só por si, não se consegue dizer se esta pertence ao verbo ir ou ao verbo ser, nem se está na 1a pessoa ou na 3a pessoa do singular no futuro do conjuntivo. Mas se nos derem a frase “Se ele for ao jogo.”, sabemos que a forma verbal for representa a 3a pessoa do singular do futuro do conjuntivo do verbo ir. Para um ser humano, fazer esta desambiguação é fácil, mas como desenvolver uma aplicação que consiga fazer esta tarefa, de preferência com os mesmos nı́veis de acerto? Capı́tulo 2. Flexão e desambiguação verbal 8 Talvez com inúmeras regras de co-ocorrência que explorem informação linguı́stica associada automaticamente às palavras em redor seja possı́vel avançar. No entanto, isso parece uma tarefa de grande magnitude e, se conseguirmos avançar na resolução do problema com menos esforço e resultados de qualidade equiparável, seria útil explorar esta última via. Uma abordagem bastante explorado noutros problemas semelhantes baseia-se nos métodos estatı́sticos e/ou de aprendizagem automática. Será que através de vários exemplos de treino se consegue extrair/simular/emular os resultados a obter com as tais regras com os métodos estatisticos, de maneira que a percentagem de erro seja mı́nima e aceitável? Nas próximas secções vamos debruçar-nos sobre estas abordagens com métodos estatı́sticos. 2.4 Desambiguação verbal como tarefa de etiquetação Uma possı́vel abordagem ao problema da desambiguação verbal em contexto é encará-lo como uma tarefa de etiquetação. Vamos primeiro descrever o que é uma tarefa de etiquetação e depois apresentar algumas abordagens populares, para a resolução deste problema. 2.4.1 Tarefa de etiquetação morfossintáctica Etiquetação morfossintática é uma tarefa que consiste em atribuir etiquetas com a categoria morfossintáctica a cada ocorrência de um lexema em contexto. Por exemplo, para se decidir qual a etiqueta de classe gramatical que se vai atribuir a um dado lexema num dado contexto, vejamos um exemplo concreto: Na frase Eu como o bolo a palavra Eu seria etiquetada como um pronome pessoal, como seria etiquetado como um verbo, o como um artigo e bolo como um nome comum. Mas este processo também não escapa a ter de lidar com a ambiguidade e no exemplo: Não há nada como o mar a forma como seria agora etiquetada como um advérbio. Por exemplo: Eu/PRS#gs1 como/V o/DA#ms bolo/BOLO/CN#ms .*//PNT N~ ao/ADV há/V nada/IND#ms como/ADV o/DA#ms mar/MAR/CN#ms .*//PNT Para mais informações sobre este tema, veja-se (Silva, 2007). No nosso caso, a etiqueta a ser atribuida a um dado lexema (previamente etiquetado como verbo) seria o conjunto formado pelo lema e pelos traços verbais. Por exemplo: Capı́tulo 2. Flexão e desambiguação verbal 9 <contexto> fui/V <contexto> => <contexto> fui/SER/V#ppi-1s <contexto> Ou seja, seria uma segunda camada de etiquetação. Há pois a possibilidade de os métodos usados na etiquetação poderem dar bons resultados também para o nosso problema. A grande diferença para o nosso problema é que na etiquetação morfossintáctica o número de etiquetas é bastante menor que o conjunto de traços/lema dos verbos para o português. Assim, para o nosso problema seria preciso uma quantidade bastante maior de dados de treino para cobrir o leque de possibilidades de modo a obter um bom classificador do que para um etiquetador da classe gramatical, por exemplo. Para além disso, as classes gramaticais formam um conjunto fechado, ao passo que se admitirmos neologismos,14 o conjunto de etiquetas (lema/traços), pela parte do lema, é potencialmente infinito.15 2.4.2 Abordagens populares As técnicas de aprendizagem automática baseiam-se em algoritmos que permitam ao computador “aprender” através de extração automática de dados, por métodos computacionais e estatı́sticos. A aprendizagem pode ser supervisionada ou não supervisionada. Os métodos supervisionados requerem um corpus etiquetado, ou revisto manualmente, para que haja informação para suportar o funcionamento do algoritmo. Os métodos não supervisionados não requerem um corpus etiquetado, no entanto revelam resultados inferiores aos métodos supervisionados. A ideia é o computador saber atribuir a etiqueta baseado no que econtrou antes, e na quantidade de dados com a qual foi “treinado”. Assim, usando o exemplo do ponto anterior, em Eu como o bolo o lexema como será etiquetado como verbo se nos dados com que o computador foi treinado esse lexema apareceu como verbo num contexto parecido,16 ie. com alguma palavra Eu, o, bolo, ou com palavras diferentes mas com as mesmas categorias gramaticais, se as estivermos a tomar em consideração. Os programas de etiquetação automática, como por exemplo, TnT (Brants, 2000) que se baseia em modelos de Markov escondidos usando trigramas para etiquetar os lexemas, ou MXPOST (Ratnaparkhi, 1996) que usa um modelo de máxima entropia, atribuem sempre etiquetas, mesmo quando o lexema não ocorreu no corpus de treino. Se o número de classes for fechado e relativamente pequeno como no caso 14 todas as ferramentas no NLX são abertas a novas palavras com as limitações de tamanho razoáveis pelo senso comum e regras gramaticais 16 com um dado factor de semelhança superior às outras etiquetas que ocorreram para como no treino 15 Capı́tulo 2. Flexão e desambiguação verbal 10 de etiquetação da classe gramatical, sabe-se à partida que a etiqueta está no conjunto de etiquetas recolhidas no treino17 e com o contexto pode ainda ser possı́vel acertar na etiqueta correcta. No entanto, para o nosso caso, isso pode não acontecer. Por exemplo, se a palavra comunico ou qualquer forma do verbo comunicar não ocorreu no corpus de treino, não é possivel, com estes etiquetadores, saber que o lema desta palavra é comunicar. Existe no entanto um lematizador (Chrupala, 2006) que funciona como uma tarefa de etiquetação que usa um método para contornar este problema baseado no conceito de shortest edit script. Esse método consiste em aprender que certas terminações lematizam para uma terminação, isto é, no exemplo anterior comunico lematizaria para comunicar 18 se houvesse outras palavras com a terminação em ico, que tivessem ocorrido no treino, a lematizar com a terminação icar. No entanto esta ferramenta não se aplica ao nosso problema que requer lematização verbal19 e traçamento verbal.20 Talvez pudéssemos adaptar esta abordagem para também atribuir os traços, concatenando os traços ao lema no corpus de treino, mas isso seria aumentar o número de classes a atribuir e, consequentemente, seria preciso um corpus de treino maior para cobrir mais exemplos de cada classe, conseguindo assim obter resultados pelo menos tão bons quanto os resultados sem os traços. Claro que isto pode depender de muitos outros factores, como a composição do corpus, e como tal não é linear uma apreciação a priori ajustada. Como vamos ver no Capı́tulo 3, em (Nunes, 2007) foi usada uma abordagem baseada na etiquetação automática usando a ferramenta TnT, não conseguindo no entanto passar o valor base de comparação, para além de não se adequar a parte da tarefa, nomeadamente a lematização, o que nos leva a querer experimentar outro tipo de abordagens. 2.5 Desambiguação verbal como tarefa de desambiguação da acepção de palavra Também podemos encarar o problema de desambiguação verbal em contexto como uma tarefa de desambiguação da acepção de palavra (word sense disambiguation). Esta tarefa consiste em decidir, de entre um leque de acepções possı́veis para uma palavra, qual a acepção expressa no contexto em que a palavra está a ocorrer. Vamos descrever a tarefa de desambiguação da acepção de palavra com mais pormenor e depois falar de algumas maneiras de atacar o problema. 17 Dado um conjunto de treino razoavelmente grande De notar que se trata apenas de um exemplo hipotético. 19 Isto poderia não ser um problema se houvesse um filtro para funcionar apenas para os verbos 20 Que a dita ferramenta não desempenha 18 Capı́tulo 2. Flexão e desambiguação verbal 2.5.1 11 Tarefa de desambiguação da acepção de palavra A mesma palavra pode ter diferentes significados em diferentes contextos. Vamos considerar o exemplo de bateria. Esta palavra pode significar um instrumento musical, um artefacto de guerra, ou uma pilha eléctrica. A tarefa de desambiguação de acepção de palavra consiste em decidir segundo o contexto, qual dos significados é expresso pelo lexema. Também esta tarefa se assemelha ao nosso problema. Podemos encarar a sequência de lema e traços verbais como “a acepção da palavra” relativa à ocorrência de um verbo num dado contexto. Na desambiguação da acepção de palavra, o conjunto de classes que se pode atribuir não é fechado, tal como no nosso caso. Uma palavra pode ter inúmeros significados. Embora se saiba pelas entradas no dicionário qual o número máximo de significados de cada uma das palavras, esse número não é inalterável pois novos significados e novas palavras podem surgir. 2.5.2 Abordagens populares A tarefa de desambiguação da acepção de palavra tem aspectos comuns com a tarefa de etiquetação. A diferença reside nas regras a combinar com os métodos usados para os adaptar ao problema. Por exemplo, no problema de etiquetação podem-se juntar regras que eliminem à partida algumas combinações de sequências de classes gramaticais que não são possı́veis, ou no problema de desambiguação da acepção de palavra uma consulta a uma ontologia, como a WordNet,21 pode permitir relacionar as palavras do contexto e a palavra a ser desambiguada com uma medida de “distância semântica” entre os nós das entradas correspondentes ás palavras na ontologia. Tal como na tarefa de etiquetação, os métodos com melhores resultados são os métodos supervisionados de aprendizagem automática. De entre estes sobressaem alguns algoritmos que costumam ter os melhores desempenhos para a desambiguação de acepção de palavra (Agirre e Edmonds, 2006). O classificador Naı̈ve Bayes baseia-se no Teorema de Bayes assumindo independência entre os atributos.22 O Teorema de Bayes consiste em relacionar a probabilidade condicional e marginal de dois eventos aleatórios. Supondo dois eventos A e B, a relação é expressa pela fórmula P (A|B) = 21 22 http://wordnet.princeton.edu/ mais à frente falarei que atributos são estes P (B |A)P (A) P (B ) Capı́tulo 2. Flexão e desambiguação verbal 12 onde P(A) é a probabilidade marginal de A, sem conhecimento prévio de B. P(A|B ) é a probabilidade condicional de A dado o evento B. P(B |A) é a probabilidade de B dado A. P(B ) é a probabilidade marginal de B e funciona como constante de normalização. O classificador dos k -vizinhos mais próximos consiste em guardar exemplos de treino, depois os novos exemplos são classificados de acordo com os k -vizinhos mais próximos segundo uma métrica de distância préviamente escolhida, tipicamente a distancia de Hamming. O classificador Listas de Decisão consiste em criar regras do tipo (condição, classe, peso). Os exemplos de treino servem para definir o peso de se classificar um novo exemplo dada a ocorrência de uma certa condição. A lista é ordenada por ordem decrescente dos pesos. Para classificar novos exemplos, a lista é percorrida até se encontrar o peso mais alto que coincide com o novo exemplo. Outro classificador é o AdaBoost, que consiste em combinar classificadores mais fracos, moderadamente precisos, para se obter um classificador com alta precisão. O algoritmo de Support Vector Machines (SVM) baseia-se no princı́pio de Minimização do Risco Estrutural da teoria de aprendizagem estatı́stica (Vapnik, 1998). De uma forma geral os algoritmos de SVM aprendem uma discriminante linear que separa os exemplos negativos dos exemplos positivos com margem máxima. Segundo (Agirre e Edmonds, 2006), o algoritmo SVM é o que tem melhores resultados, sendo que o AdaBoost melhora quando o número de exemplos por classe aumenta, embora a diferença não aumente significativamente. Todos os algoritmos estudados neste livro são executados sobre as mesmas condições de teste. Segundo Pederson e Mihalcea (2005), que analisa vários testes feitos em diversos trabalhos, indica por sua vez que em geral o Naı̈ve Bayes obtém melhores resultados ou ao nı́vel do estado da arte. O mesmo é testado por vários autores como é dito em (Pederson e Mihalcea, 2005, página 90). Assim, dado que a abordagem ao problema que nos interessa como tarefa de etiquetação já foi explorada sem se conseguir ultrapassar os resultados do valor base de comparação,23 para além de não abranger a totalidade do problema, vamos apostar em explorar uma abordagem de tipo desambiguação da acepção da palavra, focando os algoritmos que em princı́pio terão melhores resultados, Naı̈ve Bayes e SVM. 23 Abordagem explicada no ponto ponto 3.2. Algoritmo de máxima verosimilhança é tido como a base de comparação do problema. Capı́tulo 3 Estado-da-arte Neste capı́tulo vou descrever os resultados que foram alcançados até agora no que diz respeito à tarefa de desambiguação de flexão verbal em contexto e que se encontram publicados na literatura relevante. Vou começar por descrever como costuma ser feita a avaliação neste tipo de problemas e apresentar a caracterização do léxico, depois apresentarei a caracterização do corpus usado na avaliação, o que dará uma ideia de como a ambiguidade do léxico se traduz num exemplo concreto. Em seguida apresentarei algoritmos já explorados para este problema ou problemas semelhantes, começando pelo algoritmo que define o valor base (Heurı́stica de máxima verosimilhança) passando depois a outros. 3.1 Avaliação e conjunto de dados Para se aplicar métodos estatı́sticos, torna-se necessário um conjunto de dados de treino, conhecido como corpus de treino. Este corpus pode encontrar-se anotado com etiquetas que veiculam informação linguı́stica associada às expressões que ocorrem no texto (suportando aprendizagem automática supervisionada) ou não anotado (suportando aprendizagem automática não supervisionada). Tipicamente, a aprendizagem supervisionada leva a resultados superiores aos que se obtêm com aprendizagem não supervisionada, quer se encare a desambiguação verbal como uma tarefa de etiquetação (Silva, 2007, página 51), quer como uma tarefa de desambiguação da acepção de palavra (Agirre e Edmonds, 2006, página 14). Visto que dispomos de um corpus etiquetado1 vamos focar este trabalho em métodos supervisionados. O conjunto de dados de treino serve para o computador “aprender” a tarefa. Através do processamento dos exemplos no corpus de treino, são estimados parâmetros estatı́sticos relevantes que o computador usa para procurar classificar novos casos apresentados. Para se avaliar o desempenho deste procedimento de decisão au1 O corpus descrito no ponto 3.1.1 13 Capı́tulo 3. Estado-da-arte 14 tomática, é preciso determinar se a classificação está correcta ou não. Isto pode ser conseguido se tivermos exemplos para testar que, em ocasião prévia, tenham sido correctamente anotados manualmente. Assim podemos comparar a anotação correcta com a anotação automática produzida pelo algoritmo de classificação. Por conseguinte, é comum dividir-se o conjunto de dados anotados em corpus de treino e corpus de teste, usando-se maior quantidade de dados para o corpus de treino. Assim podemos obter uma medida de quão boa é a classificação automática. Em todos os resultados obtidos por mim ou obtidos previamente coloca-se a questão de o conjunto de dados utilizado ser ou não apropriado para a execução da tarefa e em que medida a existência de diferentes corpora para domı́nios especı́ficos poderia ajudar ou não esta tarefa. Para o nosso caso, se todo o texto for, por exemplo, um discurso na primeira pessoa, dificilmente vamos conseguir classificar novos exemplos com boa taxa de acerto noutras pessoas verbais. No entanto, e aqui podem surgir resultados de avaliação enganadores, se os exemplos de teste vêm do mesmo corpus vamos ter medidas de desempenho elevadas, apesar desse possı́vel enviesamento. 3.1.1 Caracterização do corpus Seguindo o que é comum na literatura, e face à escassez de conjuntos de dados de treino e teste, o estudo da adaptabilidade do corpus à nossa tarefa não costuma ser feito e não vai ser feito no presente trabalho. Deixamos aqui no entanto alguma informação sobre o corpus que está à nossa disposição, e cuja constituição está em linha com a constituição que é tipico encontrar para corpora usados em processamento de linguagem natural. O corpus é composto por 689.1262 lexemas anotados, cada um verificado manualmente por especialistas em linguı́stica. A anotação inclui informação sobre a classe morfossintáctica, sobre o lema e a flexão das classes abertas, sobre expressões multipalavra pertencentes à classe dos advérbios e às classes fechadas, e sobre nomes próprios multi-palavra. Este corpus inclui 63.4% de texto recolhido de artigos, jornais e revistas. O resto do corpus é essencialmente constituı́do por textos literários.3 O corpus é composto por excertos como este: Com/PREP[O] tiros/TIRO/CN\#mp[O] de/PREP[O] caçadeira/CAÇADEIRA/CN\#fs[O] ,*//PNT[O] um/UM\#ms[O] desconhecido/DESCONHECIDO/CN\#ms[O] sem/PREP[O] motivo/MOTIVO/CN\#ms[O] aparente/APARENTE/ADJ\#ms[O] abateu/ABATER/V\#ppi-3s[O] uma/UM\#fs[O] famı́lia/FAMÍLIA/CN\#fs[O] 2 De notar que apenas me refiro à parte escrita, o corpus divide-se em duas partes, escrita e oral. No presente trabalho iremos usar apenas a parte escrita 3 http://lxcorpus.di.fc.ul.pt/pt/cintilwhatsin.html#breakdown Capı́tulo 3. Estado-da-arte 15 inteira/INTEIRO/ADJ\#fs[O] .*//PNT[O] Cada lexema pode ter cinco campos distintos, a forma ortográfica (e.g. caçadeira), o lema (CAÇADEIRA),4 a categoria morfossintáctica (CN), a informação sobre traços de flexão (fs) e informação sobre expressões multi-palavra ([0]). Pegando num lexema referente a um verbo deste excerto - abateu/ABATER/V#ppi3s[O] - o primeiro campo abateu representa a forma ortográfica, ABATER representa o lema. Quanto à informação morfossintáctica, primeiro vem a categoria gramatical. Depois, separado por um ’#’, vêm os traços que levam o lema à forma flexionada, que ocorre no texto original. Por último, entre parêntesis rectos, vem a informação relativa ao lexema fazer parte ou não de uma entidade nomeada e, se sim, de que modo.5 Para a nossa tarefa de desambiguação da flexão verbal vamos precisar apenas do conteúdo de três campos: a forma ortográfica (abateu), o lema (ABATER) e os traços de flexão (ppi-3s). Em (Branco et al., 2007) o problema da ambiguidade verbal foi quantificado. Com o conjugador verbal,6 geraram-se todas as formas flexionadas para os lemas conhecidos.7 Estes últimos perfazem um total de 11.350 entradas que deram origem a 816.830 formas conjugadas. Destas formas, apenas 598.651 são formas únicas, diferentes entre si quando se ignora o conjunto de traços de flexão que expressam. Como foi explicado anteriormente na secção 2.1, a ambiguidade associada à flexão verbal pode ser de três tipos. Ambiguidade de lema, de traços, ou de ambos os tipos. Tendo isto em conta, (Branco et al., 2007) determinaram que das 598.651 formas verbais únicas, 438.064 são não ambı́guas, sendo 73.18% dessas formas únicas. As formas verbais ambı́guas nos traços são 159.376, ou seja 26.62%. Apenas 141 formas têm ambiguidade de lema, o que representa 0.02% das formas. A ambiguidade de lema e traço afecta 1.070 formas verbais, representando 0.18%. No corpus que vou utilizar ocorrem 85.6428 formas verbais, etiquetadas como V, VAUX, INF, INFAUX, GER, PPT, PPA, INFAUX e GERAUX. VAUX etiqueta os verbos auxiliares, como por exemplo tinha sido em que o verbo ter na sua forma tinha está a auxiliar o verbo ser na sua forma sido. INF etiqueta os infinitivos, como por exemplo ser em que a forma ortográfica é igual à forma lematizada. Contudo, os infinitivos podem ser flexionados em género e número. INFAUX etiqueta os infinitivos auxiliares, como por exemplo ter sido em que a forma infinitiva do verbo ter está a auxiliar o verbo ser na sua forma sido. GER etiqueta os gerúndios, como por exemplo tornando, e GERAUX os gerúndios aux4 apenas se este puder ser diferente da forma ortográfica em resultado da flexão. valores possiveis para os campos de informação morfossintáctica encontram-se em http://lxcorpus.di.fc.ul.pt/cintilwhatsin.html#pos 6 http://lxconj.di.fc.ul.pt 7 Sem incluir formas com cliticos inerentes e formas de verbos compostos 8 A contar com as formas com clı́ticos. 5 Capı́tulo 3. Estado-da-arte 16 iliares, como por exemplo tendo sido em que o verbo ter na sua forma do gerúndio tendo está a auxiliar o verbo ser na sua forma sido. PPT etiqueta os particı́pios passados em tempos compostos, como por exemplo sido em tendo sido, etiquetando PPA os particı́pios passados que não ocorrem em tempos compostos, como por exemplo reflectida em luz reflectida que é um particı́pio passado do verbo reflectir. V etiqueta as restantes ocorrências de formas verbais. Destas 85.642 ocorrências, 57.968 são lexicalmente ambı́guas. Por sua vez, essas 85.642 ocorrências são ocorrências de 15.640 formas únicas, entre as quais se encontram 7.637 formas únicas lexicalmente ambı́guas. De notar que apenas 2.6% do total de formas únicas do léxico ocorre no corpus. Porém, quase metade das formas únicas que aı́ ocorrem são ambı́guas. Sendo que são aproximadamente 68% as formas ambı́guas do total de ocorrências no corpus. Na Figura 3.1 apresenta-se a distribuição das formas verbais por grau de ambiguidade, isto é, por nı́vel de diferentes leituras lexicalmente admı́ssiveis por forma verbal. Verifica-se que o grau de ambiguidade diminui com o aumento de frequência. Figura 3.1: Número de ocorrências de formas verbais por grau de ambiguidade. Em suma, e no que tem impacto para a tarefa de desambiguação: quase metade dos tipos que têm instâncias no corpus são ambı́guos; e cerca de 68% das ocorrências de formas verbais carecem de desambiguação em contexto. Para quantificar por tipo de ambiguidade, ver Figura 3.2. De notar que nesta estatı́stica não são consideradas formas verbais com clı́tico ou compostas. Capı́tulo 3. Estado-da-arte 17 Figura 3.2: Proporção de ocorrências no corpus de formas verbais lexicalmente ambı́guas por tipo de ambiguidade. 3.1.2 Medidas de avaliação Neste tipo de problemas, é costume usar dois tipos de avaliação: a precisão e a abrangência. A precisão é uma medida de exactidão do algoritmo. No nosso contexto pode ser definida como o número de exemplos correctamente classificados a dividir pelo número total de exemplos classificados. A abrangência é uma medida de quão completo é o algoritmo, isto é, uma medida dos casos que ficam por classificar correctamente. No nosso contexto é definida como o número de exemplos correctamente classificados a dividir pelo número total de exemplos a classificar. Podemos também juntar estas duas medidas numa só, conhecida como medida-f que combina as outras duas medidas com igual peso segundo a fórmula 2(precisão.abrangência) . precisão + abrangência Esta medida é depois usada para comparar os diversos algoritmos, já que é uma medida sobre todos os aspectos do algoritmo. 3.2 Heurı́stica de máxima verosimilhança A primeira abordagem “natural” a este problema e a que pode permitir definir o valor base de comparação é usar uma heurı́stica de máxima verosimilhança. Esta heurı́stica consiste em extrair o lema e traços verbais mais frequentes para cada forma Capı́tulo 3. Estado-da-arte 18 verbal presente no corpus de treino. Depois, para cada forma verbal encontrada no corpus de teste, é atribuı́da a etiqueta mais frequente para essa forma. Em trabalho anterior (Nunes, 2007, pag. 65-66) utilizou-se este algoritmo sobre um corpus de 260.000 lexemas. Este algoritmo mesmo sendo bastante simples conseguiu uma precisão de 95.92% e uma abrangência de 68,68% perfazendo uma medida-f de 80.02% para o corpus usado, incluindo as formas não ambı́guas. Foi feita uma extensão a este algoritmo com o objectivo de aumentar a abrangência. Como tal, a nova versão do algoritmo deveria ser capaz de classificar também as formas verbais não encontradas no corpus de treino. Para tal, usou-se o lematizador verbal nas formas verbais desconhecidas no corpus de treino. Das possı́veis acepções da forma verbal desconhecida devolvidas pelo lematizador, descartam-se as que tenham lemas desconhecidos se houver candidatos com lemas conhecidos; e descartam-se as que tenham lemas pouco frequentes se houver lemas muito frequentes. Depois seleciona-se a acepção que tiver os traços mais frequentes, depois selecciona-se a que tiver o lema mais frequente. Caso apenas existam lemas desconhecidos, seleciona-se a que contém o lema com a terminação “-ar”, em seguida “-er” e por último “-ir”. Em qualquer destes passos, se apenas sobrar uma possibilidade o processo é interrompido e devolve-se esse candidato como solução proposta. Passos do algortimo: (1) Se a forma verbal foi vista no corpus de treino atribui-se o par lema e traços mais frequente. (2) Caso contrário usa-se o lematizador para obter as flexões possı́veis para a forma verbal. Até restar apenas uma solução: (3) Descartam-se lemas desconhecidos se houver lemas conhecidos. (4) Descartam-se lemas pouco frequentes se houver lemas muito frequentes. (5) Escolhe-se a flexão com os traços mais frequentes. (6) Escolhe-se a flexão com o lema mais frequente. (7) Escolhe-se o lema que contenha a terminação em “-ar”, depois “er” e por último “-ir”. Capı́tulo 3. Estado-da-arte 19 Com esta extensão, (Nunes, 2007) obteve uma precisão de 96.06% e a abrangência aumentou significativamente para 95.79% fazendo uma medida-f de 95.92%.9 O melhor resultado até então para este problema. A diferença entre o valor de precisão e o valor da abrangência deve-se ao facto de alguns lexemas em que a forma ortográfica está errada. Quando usados como entrada no lematizador, a ferramenta não consegue lidar com eles visto essa forma ortográfica ser impossı́vel de acordo com as regras gramaticais. 3.3 Modelos de Markov escondidos Também em (Nunes, 2007), foram usados modelos de markov escondidos para atacar a tarefa de lematização como uma tarefa de etiquetação. Os modelos de Markov escondidos baseiam-se na transição entre vários estados escondidos. Cada estado tem associado uma probabilidade para cada transição possı́vel e pode emitir, de um conjunto de sinais observáveis, alguns desses sinais com uma probabilidade respectiva. O desafio é determinar os parâmetros escondidos através dos observáveis, em particular determinar os estados entre os quais se deram as transições que originaram os sinais observados. Assim temos uma variável aleatória x(t) que representa o estado escondido no instante de tempo t, com x(t) ∈ {x1 , x2 , x3 , . . .}, conjunto que representa os vários estados possı́veis, e temos outra variável aleatória y(t) que representa o sinal emitido pelo estado x(t) no mesmo instante t, com y(t) ∈ {y1, y2 , y3 , . . .}. A variável x(t) depende exclusivamente do valor da variável escondida x(t-1), ou seja da variável x no instante anterior t-1, esta propriedade é chamada de propriedade de Markov. A variável observável y(t) depende da transição entre dois estados, x(t-1) para x(t), isto é, a variável x no mesmo instante t. Abaixo apresentamos um esquema gráfico do que foi explicado.3.3 Figura 3.3: Modelo de Markov Escondido - representação temporal. Extraı́da da Wikipedia 9 Os valores apresentados são para as tarefas de desambiguação de lema e traços, incluindo formas não ambı́guas. Capı́tulo 3. Estado-da-arte 20 Nunes (2007) usou uma abordagem de etiquetação baseada em modelos de Markov escondidos com a ferramenta TnT para a tarefa de atribuição de traços. Esta abordagem obteve uma medida-f de 94.47%. No entanto esta experiência não cobre a totalidade da tarefa em questão, visto que não atribui lemas, devido ao que foi explicado em 2.4.2 relativamente a esta abordagem. Sendo com isto apenas aplicável aos verbos que tenham ambiguidade de traços. Nunes (2007) aproveita a etiquetação morfossintáctica feita préviamente que para alguns verbos tem os traços inerentes na etiqueta, deste modo a desambiguação quanto a traços apenas é feita para um subconjuncto dos verbos. 3.4 Trabalhos relacionados Não tenho, até à data, conhecimento de trabalho feito nesta tarefa especifica, sem ter em conta o trabalho previamente realizado no NLX. No entanto existem alguns trabalhos feitos em tarefas relacionadas que passo a citar. Chrupala (2006) reporta um f-score de 91.21% para a tarefa de lematização no Português usando o classificador SVM com a abordagem de Shortest Edit Script. Não é limitado aos verbos, mas também não faz traçamento verbal. (Moreno-Sandoval e Guirao, 2006), que reportam uma taxa de acerto de 96.8% para a lematização e 96.7% para a etiquetação do português, apenas etiqueta os verbos como V ou AUX, não fazendo qualquer desambiguação quanto aos traços verbais. Esta é a principal fonte de ambiguidade do nosso problema. Ver Figura 3.2. Escudero et al. (2000) usam dois métodos para fazer desambiguação de acepção de nomes e verbos. O primeiro é o Naive Bayes que, para os verbos permite obter uma taxa de acerto (Accuracy) de 64.8%, usando como atributos um contexto semelhante ao contexto local 10 , e 63.4% usando como atributos um contexto semelhante à combinação do contexto de tópicos 11 com o contexto local. O outro método testado é chamado de abordagem baseada em exemplos ”Exemplar-based approach” e baseia-se no algoritmo dos k-vizinhos-mais-próximos. Este último consegue melhores resultados. Nomeadamente 66.4% para a primeira modelação de atributos (contexto local) e 67.0% para a segunda (contexto de tópicos com contexto local).12 Neste trabalho, o valor base de comparação usa uma medida de acepção mais frequente, que para o corpus usado e só contando com os verbos tem uma taxa de acerto 48.7%. Em (Agirre e Edmonds, 2006) compara vários algoritmos para fazer desambiguação da acepção de nomes e verbos. O resultado base, que consiste na atribuição 10 Descrito no próximo capı́tulo Descrito no próximo capı́tulo 12 Valores para a desambiguação de acepção dos verbos 11 Capı́tulo 3. Estado-da-arte 21 da acepção mais frequente, é de 46.49% para os verbos.13 Este trabalho reporta que a melhor abordagem é permitida pelo algortimo de Support Vector Machines, conseguindo uma Accuracy de 67.54%, usando uma combinação de atributos que inclui uma variante do Contexto de tópicos mais a mesma versão do contexto local usada no presente trabalho. Tanto (Agirre e Edmonds, 2006) como (Escudero et al., 2000) são expêriencias controladas, sobre um conjunto definido de verbos e nomes, não fazem qualquer processamento para lidar com palavras desconhecidas. De notar que quando se fala nestes trabalhos em desambiguação da acepção de um verbo, o tema é ligeiramente diferente do problema do presente trabalho. Em (Escudero et al., 2000) e (Agirre e Edmonds, 2006) a acepção prende-se com o significado que o verbo pode ter,14 o estado de coisas que este expressa. No presente trabalho, a desambiguação prende-se com os traços de flexão verbal que a forma verbal expressa e em parte com o estado de coisas expressa, já que também realiza lematização verbal. Vejamos um exemplo, a palavra bater em termos de significado pode expressar o bater na mesa, bater em retirada, o bater cardı́aco, etc. É esta desambiguação que é feita nos trabalhos acima mencionados, a tendo por base os conceitos associados a cada verbo na ontologia verbal WordNet. Resumindo, a nossa tarefa tem por objectivo desambiguar os verbos quanto à informação de traços de flexão e parcialmente quanto ao tipo de evento (já que também realiza lematização). As tarefas mencionadas atrás apenas desambiguam os verbos quanto ao tipo de evento. 13 14 O corpus usado é o mesmo de (Escudero et al., 2000). Relativamente aos nós da WordNet Capı́tulo 4 Desambiguação de flexão verbal: uma abordagem DAP Como discutimos em capı́tulos anteriores, a abordagem da tarefa de desambiguação da flexão verbal como problema de etiquetação já foi explorada em trabalho anterior. Neste trabalho, vamos procurar explorar uma abordagem com base nas técnicas de desambiguação da acepção da palavra (DAP)1 para executar essa tarefa. Em resultado da experiência documentada na literatura e discutida na secção 2.5.2, iremos explorar o classificador Naive Bayes (secção 4.1) e o classificador SVM (secção 4.2). Por serem os que têm permitido alcançar os melhores resultados na tarefa DAP em geral. 4.1 Aplicação do classificador Naive Bayes Feita a escolha de usar o classificador Naive Bayes, houve que escolher como este iria ser usado. Houve que escolher se implementávamos a nossa versão do classificador, ou se tirávamos partido de uma implementação já feita e disponibilizada para uso geral. Decidimos usar a conhecida ferramenta Weka,2 que inclui uma implementação do classificador Naive Bayes. Esta ferramenta é bastante usada no meio académico, facto que lhe traz bastante credibilidade como ferramenta estável e largamente testada. Com essa segurança, fica assim ultrapassado o problema da implementação do algoritmo correspondente. Cabe então, antes de mais, explicar com maior detalhe este classificador, segundo a descrição usada para a implementação do mesmo no Weka. O classificador Naive Bayes assume que para uma dada classe, os atributos são condicionalmente independentes entre si e que nenhum atributo escondido ou latente influencia a classificação. 1 2 Word sense disambiguation (WSD). http://www.cs.waikato.ac.nz/ml/weka/ 22 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 23 Segundo (Mitchell, 1997), estas assunções geram algoritmos bastante eficientes quer para a classificação quer para a aprendizagem. Vejamos. Seja C uma variável aleatória que expressa a classe de uma instância e X o vector de variáveis aleatórias que expressam os valores dos atributos observáveis. Seja c a representação de uma classe em particular, e x a representação de um valor observável em particular. Dado um caso de teste x a classificar, basta usar a regra de Bayes para calcular a probabilidade de x pertencer a cada classe c, o que permitirá encontrar a classe com probabilidade maior em ordem a tomar uma decisão quanto à classificação desse caso de teste é justamente por se escolher essa classe com maior probabilidade. p(C = c|X = x) = p(C = c)p(X = x|C = c) p(X = x) Na fórmula acima, X = x representa o evento em que X1 = x1 ∧ X2 = x2 ∧ · · · ∧ Xk = xk . O evento é a conjunção dos valores dos atributos, e sendo estes assumidos como condicionalmente independentes entre si, obtemos p(C = c|X = x) = p( ^ Xi = xi |C = c) i = Y p(Xi = xi |C = c) i que é simples de computar para os casos de teste e de estimar para os casos de treino (Mitchell, 1997). Tipicamente não se estima a distribuição no denominador na primeira equação, já que é apenas um factor de normalização. Em vez disso, ignora-se o denominador e normaliza-se de forma a que a soma de p(C = c|X = x) sobre todas as classes é um. Para o classificador Naive Bayes, os atributos discretos e númericos são tratados de maneira diferente. Cada atributo discreto é modelado por um número real entre 0 e 1, representando a probabilidade de o atributo X ter um valor x quando a classe é c. Por seu lado, os atributos númericos são modelados por uma distribuição de probabilidade contı́nua sobre a janela de valores possı́veis desses atributos. Como vimos, o classificador Naive Bayes permite atribuir uma classe a um exemplo de teste. Temos então de decidir quais vão ser as nossas classes. Como vamos modelar o nosso problema para conseguir usar o este classificador? Intuitivamente, se estamos a tentar desambiguar o lema e os traços de um verbo, a classe a atribuir vai ser um tuplo desses mesmos valores, o valor do lema e os valores dos traços. Como já foi referido anteriormente, notar que como algumas etiquetas morfossintácticas, apresentam informação inerente sobre os traços do verbo, estas serão incluı́das com os traços. Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 24 Não é prático porém treinar o classificador para o conjunto total de valores possı́veis pois isto daria origem a uma enorme quantidade de classes possı́veis. De acordo com a estimativa de (Branco et al., 2007), apenas tomando em consideração cerca de 11.000 verbos(lemas) atestados do léxico do português, esse conjunto teria mais de 800.000 valores. Isso seria também desaconselhável por outra ordem de razões, nomeadamente porque para cada caso de teste, para a esmagadora maioria de tuplos, o lema no tuplo lema:traços nada teria a ver com a forma verbal desse mesmo caso de teste ou seja, não seria um lema admissı́vel para essa forma verbal. De igual modo, para os valores dos traços de flexão, estar-se-ia a admitir como possı́veis valores de traços, que não podem ser expressos pelo sufixo flexional presente no caso de teste. Assim, para aliviar este problema e também para garantir que os valores do tuplo lema:traços representam uma classe possı́vel para a forma verbal do caso de teste em questão, vamos construir classificadores para cada forma verbal que ocorra no corpus de treino. Desta forma alivia-se o processamento já que para cada classificador o número de classes possı́veis é bastante menor. Como atributos, usamos o contexto da frase. Mais à frente explicarei este uso do contexto na obtenção de atributos para o classificador. Assim, temos como atributo discreto a classe representada por lema:traços. A probabilidade de uma variável nominal (como é o caso) ter um certo valor é igual à sua frequência relativa na amostra, isto é, o número de vezes que o valor ocorreu nos exemplos dividido pelo número total de exemplos relevantes. Para os atributos contı́nuos, a distribuição de probabilidade contı́nua costuma ser (x−µ)2 1 representada por uma função gaussiana, segundo a fórmula g(x; µ, σ) = √2πσ e− 2σ2 . No nosso caso não vamos ter atributos contı́nuos. Vamos mostrar então um exemplo, aplicado ao nosso caso concreto, para ilustrar como são estimados os parâmetros relevantes. Supondo que se trata da forma verbal fui, temos como valores de classe ir:v#ppi1s e ser:v#ppi-1s. Para efeitos de compreensão e simplificação do exemplo, vamos supor que apenas temos dois atributos de variável discreta, a ocorrência da palavra X1 e a ocorrência da palavra X2 , que podem ter o valor 0, indicando a ausência da palavra, ou 1, indicando a presença da palavra na frase. Tendo em conta os seguintes cinco casos de treino: {(ir:v#ppi-1s, 0, 0), (ir:v#ppi1s, 0, 1), (ir:v#ppi-1s, 1, 1), (ser:v#ppi-1s, 1, 1), (ser:v#ppi-1s, 1, 0)}. Temos, Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 25 p(C = ir : v#ppi − 1s) = 3/5 p(X1 = 1 |C = ir : v#ppi − 1s) = 1/3 p(X1 = 0 |C = ir : v#ppi − 1s) = 2/3 p(X2 = 1 |C = ir : v#ppi − 1s) = 2/3 p(X2 = 0 |C = ir : v#ppi − 1s) = 1/3 e de forma análoga para a outra classe, ser:v#ppi-1s. Em resumo, o classificador Naive Bayes é uma abordagem simples e eficaz ao problema de indução. A complexidade deste classificador em n casos de treino e k atributos é O(nk ), complexidade temporal, e O(k ), complexidade espacial. 4.2 Aplicação do classificador SVM Como foi dito anteriormente, a opção por utilizar este classificador na nossa tarefa de desambiguação de flex ao verbal resulta da análise comparativa favorável apresentada em (Agirre e Edmonds, 2006) para a tarefa DAP em geral. Neste livro, refere-se que a implementação aı́ utilizada foi o SV M light . Este é no entanto um classificador binário, isto é separa linearmente os exemplos negativos e positivos. A nossa tarefa requer porém que a classificação tenha vários valores possı́veis e como tal um classificador binário não é suficiente. Existe no entanto uma ferramenta feita pelo mesmo autor do SV M light , entitulada de SV M multiclass , que como indica o nome, tem suporte para várias classes. Assim como fizemos para o Naive Bayes, também para o SVM iremos usar uma implementação já usada e testada. O classificador SV M multiclass é uma implementação do multi-class Support Vector Machine (SVM) descrito em (Crammer e Singer, 2001) Como foi dito anteriormente, de uma forma geral os algoritmos de SVM aprendem uma discriminante linear que separa os exemplos negativos dos exemplos positivos com margem máxima. Ver figura 4.1 A margem é definida pela distância da discriminante linear ao exemplo negativo e positivo mais próximos. As linhas a tracejado são os chamados vectores de suporte. Nem sempre é possı́vel traçar um vector que separe linearmente os exemplos negativos dos positivos, ou mesmo que seja possı́vel, às vezes é preferivel deixar alguns exemplos errados no treino de modo a conseguir uma separação que trará melhores resultados. Ver figura 4.2 A classificação é feita segundo a fórmula: Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 26 Figura 4.1: Discriminante linear. Extraı́da de (Agirre e Edmonds, 2006). Figura 4.2: Discriminante linear com margem de erro. Extraı́da de (Agirre e Edmonds, 2006). h(x) = ( +1 se (w · X) + b ≥ 0 −1 caso contrário Sendo x o exemplo a classificar, w o vector que vai da linha discriminante ao exemplo x e b a distancia da linha discriminate à origem. Para aplicar este algortimo binário a um problema com um número finito de valores de classe não binários, podemos dividir o problema em vários problemas binários. Normalmente isto é feito de duas maneiras, ou se compara cada classe com todas as outras, e neste caso é atribuida a que tiver o valor mais alto, ou se comparam todas as classes entre si e a que tiver mais “victórias” é a escolhida. Para o classificador SVM, modelámos o problema da mesma maneira que foi feito para o Naive Bayes. Ou seja, com tuplos de lema:traços como classes, usando o contexto, para obter atributos3 e criando modelos para cada forma verbal individualmente. 4.3 Pré-processamento Seguindo o que é habitual em aprendizagem automática, dividimos o corpus em dois pedaços, o nosso objecto de treino e teste é o corpus descrito na secção 3.1.1. 90% 3 Ver na secção seguinte como foi modelado. Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 27 do corpus fica para treino do classificador e 10% do corpus para efectuar os testes. Decidimos também escolher os 10% de teste de frases alternadas do corpus total. Isto é, em vez de tirar um bloco de 10% do inı́cio, fim ou meio do corpus, vamos na extração alternando entre nove frases consecutivas reservadas para o treino, e uma décima para o teste. A porção do corpus usada para treino contém 77029 instâncias de formas verbais a que corresponde 15786 tipos de formas únicas e 17596 são tipos de tuplos da forma verbal com o seu lema e os seus traços. Por seu lado, a porção do corpus usada para teste contém 8613 formas verbais das quais 3923 são tipos de formas únicas e 4176 são tipos de tuplos da forma verbal com o seu lema e os seus traços.4 A etiquetação morfossintáctica do corpus faz distinção entre diversas categorias verbais, o que ajuda a circunscrever as ocorrências verbais, para as quais é preciso fazer desambiguação. Em particular, as ocorrências etiquetadas como GER, GERAUX, PPA ou PPT apenas precisam de ser desambiguadas quanto ao lema já que os traços estão inerentes nessas classes gramaticais. Destes lexemas apenas os etiquetados com PPA requerem etiquetação de traços de flexão, por exemplo, a palavra passada quando etiquetada como PPA terá os traços fs - feminino singular. Estes traços são no entanto atribuı́dos num fase de etiquetação prévia através de um módulo de traçamento nominal (Silva, 2007). No entanto, para que possamos avaliar a desambiguação verbal como uma tarefa global independente do tagset usado,5 vamos usar a etiquetação realizada pelo etiquetador apenas para saber quais dos lexemas são verbos.6 Assim, e como já foi visto anteriormente, a classe gramatical dos verbos entra em conjunto com os traços no campo traços nos tuplos das classes lema:traços. Por exemplo, para a forma verbal tendo, temos duas classes: ter:ger tender:v#pi-1s Ger é a etiqueta morfossintáctica e para além disso contém informação sobre os traços do verbo, neste caso indica que o verbo se encontra na forma temporal do gerúndio. Como tal, o traço referentes a esta entrada será ger. A etiqueta V não tem qualquer informação sobre os traços verbais. No entanto também não interfere na classificação. Não sobrespecifica nem subespecifica a classe. Por uma questão de comodidade, vamos manter a etiqueta no traço, sendo este v#pi-1s. 4 Estas contagens já incluem as formas com clı́ticos. Para todos os verbos, e não apenas para os que no nosso caso foram etiquetados com certas etiquetas 6 O etiquetador será usado também para determinar outras classes abertas para efeito de se delimitar o contexto a usar nos classificadores. 5 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 28 Também para simplificarmos o problema, podemos assumir que as etiquetas GERAUX, INFAUX, VAUX e PPT correspondem a GER, INF, V e PPA#ms. Já que o facto de ser um verbo auxiliar numa forma composta nada nos diz quanto seus traços. No caso do PPT para efeitos de traços é igual ao PPA#ms e podemos tratá-lo como tal. Numa fase posterior pode-se voltar à etiqueta original depois de feita a desambiguação já que temos acesso a estas etiquetas previamente. O passo seguinte depois de termos o corpus dividido em corpus de treino e corpus de teste é criar modelos para cada forma verbal encontrada. Isto é feito de acordo com o que definirmos como contexto. O contexto pode ser definido como a frase onde se encontra a forma verbal. Pode ser também o parágrafo inteiro onde se encontra a mesma ou outra janela de texto qualquer. Podemos ainda considerar n-gramas a partir de uma janela de contexto, tipicamente mais pequena que uma frase inteira, pois o número de atributos é exponencialmente maior, devido às várias combinações que se podem fazer com as palavras. Por exemplo {POS-3, POS-2, POS-1, POS+1, POS+2, POS+3, W-1, W+1, (W-2, W-1), (W-1, W+1), (W+1, W+2), (W-3, W-2, W-1), (W-2, W-1, W+1), (W-1, W+1, W+2), (W+1, W+2, W+3)}, onde POS representa a classe gramatical e W a forma ortográfica da palavra, o número representa a posição do lexema respectivo em relação à forma verbal a ser desambiguada. Este conjunto de n-gramas foi usado em (Agirre e Edmonds, 2006) para DAP em geral. No nosso trabalho, vamos fazer experiências com a frase inteira como contexto, não olhando à ordem de ocorrência das palavras7 , e utilizar o conjunto de n-gramas descrito atrás também como contexto. Seguindo uma terminologia corrente, à primeira designaremos por contexto de tópicos (topical context), e o segundo por contexto local. 4.3.1 O formato .arff Dado que estamos a usar a ferramenta Weka, o formato tem de estar de acordo com as suas especificações. O Weka usa ficheiros .arff com o seguinte formato, tanto para o treino como para o teste. Primeiro, vem o nome da tabela ou relação @relation < nome >. Em nome guardamos a indicação de qual a forma ortográfica (a desambiguar). Depois seguem-se os atributos @attribute < nome > < tipo > - onde o tipo pode ter vários valores, como string se o valor for uma sequencia de caracteres, numeric se o atributo for numérico, date se o atributo for uma data. O atributo pode ainda ser nominal e aparecer segundo o seguinte formato 7 Bag-of-words Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 29 @attribute < nome > {valor1 , valor2 , valor3 , . . . , valork }. Depois dos atributos, segue-se uma linha com @data e os exemplos de treino ou teste em concordância com os atributos definidos neste cabeçalho. Para o nosso caso, considerando o contexto de tópicos, temos dois atributos do tipo string. O primeiro é a frase, o segundo é a classe com o formato lema:traços. Relativamente à representação da frase, decidimos reter apenas as palavras de classes abertas.8 Apresentamos aqui mais duas frases inventadas para melhor compreensão do exemplo a ser apresentado à frente: “O/DA#ms animal/ANIMAL/CN#ms que/REL você/PRS#gs3 abateu/ABATER/V#ppi2c ontem/ADV .*//PNT” “Ele/PRS#ms3 abateu/ABATER/V#ppi-3s o/DA#ms animal/ANIMAL/CN#ms de/PREP caçadeira/CAÇADEIRA/CN#fs .*//PNT” Usando a frase apresentada na secção 3.1.1 e as outras duas frases inventadas como exemplos de treino para a forma abateu, o respectivo ficheiro .arff seria assim: @relation abateu @attribute frase string @attribute class string @data ‘‘tiros caçadeira desconhecido motivo aparente abateu famı́lia inteira’’, ‘‘abater:v#ppi-3s’’ ‘‘animal abateu’’,‘‘abater:v#ppi-2c’’ ‘‘abateu animal caçadeira’’,‘‘abater:v#ppi-3s’’ De notar que um ficheiro de teste também teria o atributo class preenchido num contexto de avaliação, e apresentaria esse atributo com o valor “?” numa situação real de classificação. Agora que temos a estrutura para os ficheiros criada, temos de fazer ainda algumas conversões, porque o classificador Naive Bayes9 não aceita atributos do tipo string como valores do campo @attribute class. Usando um método do Weka chamado StringToNominal, que percorre os exemplos todos recolhendo valores únicos do campo pretendido, obtemos um atributo nominal do género @attribute class {abater:v#ppi-3s, abater:v#ppi-2c}. 8 Ver a secção 4.3.5. Depois para o classificador SVM usaremos uma estrutura parecida com a criada para os ficheiros .arff, tirando partido dos filtros do weka. 9 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 30 É preciso também transformar o atributo frase para que possa ser utilizado pelo classificador Naive Bayes. Para isto usamos um método do Weka chamado StringToWordVector, que percorre todas as palavras que aparecem em todas as entradas de um dado atributo string que aparecem na tabela de dados e as transforma em atributos numéricos. Assim, o exemplo anterior com as duas transformações ficaria com o seguinte aspecto: @relation abateu @attribute @attribute @attribute @attribute @attribute @attribute @attribute @attribute @attribute @attribute class {‘‘abater:v#ppi-3s’’, ‘‘abater:v#ppi-2c’’} abateu numeric animal numeric aparente numeric caçadeira numeric desconhecido numeric famı́lia numeric inteira numeric motivo numeric tiros numeric @data {1 1,3 1,4 1,5 1,6 1,7 1,8 1,9 1} {0 abater:v#ppi-2c,1 1,2 1} {1 1,2 1,4 1} O formato do valor do campo @data é apresentado como uma lista de tuplos do número do atributo e o valor que este pode ter. Este é o formato esparsso do Weka, que é usado quando há muitos valores de atributos que podem ser nulos. Poderiamos deixar os ficheiros neste formato, usando na classificação atributos numéricos, já que a função gaussiana usada se aproxima à probabilidade para os valores discretos, sendo que os únicos valores possı́veis seriam 0 e 1. Mas experiencias feitas10 monstram que com atributos discretos a classificação obtém melhores resultados. Para o contexto de tópicos, Naive Bayes simples com valores numéricos tem precisão de 93.56%, sendo que com valores discretos/nominais tem uma precisão de 93.98%. Sendo assim usamos mais um filtro do Weka, chamado de NumericToNominal, ficando o ficheiro com o seguinte aspecto. 10 Nas nossas condições de avaliação Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 31 @relation abateu @attribute @attribute @attribute @attribute @attribute @attribute @attribute @attribute @attribute @attribute class {‘‘abater:v#ppi-3s’’, ‘‘abater:v#ppi-2c’’} abateu {1} animal {0,1} aparente {0,1} caçadeira {0,1} desconhecido {0,1} famı́lia {0,1} inteira {0,1} motivo {0,1} tiros {0,1} @data {3 1,4 1,5 1,6 1,7 1,8 1,9 1} {0 abater:v#ppi-2c,2 1} {2 1,4 1} Os atributos que só podem ter o valor 1, ocorrem em todas as frases. Não há atributos só com valor 0, pois isso indicaria que não ocorriam em nenhuma frase e como tal nunca iriam ser atributos. Naturalmente esses atributos, que só têm valor 1, também desaparecem do campo @data, dado que se usa o formato esparço. O atributo na posição 0 corresponde à classe. Se este atributo não aparecer, o valor é abater:v#ppi-3s pois por omissão assume-se que é o primeiro elemento da lista no campo @attribute class. Todos os restantes atributos nas outras posições têm o valor 1, o que indica a presença da palavra na frase. Se o atributo tiver o valor 0, fica omisso no valor do campo de data, indicando que a palavra não ocorre na frase. Na ferramenta Weka, para que se possam classificar exemplos de teste, é preciso que o ficheiro que contém os exemplos de teste esteja no mesmo formato que o ficheiro que contém os exemplos de treino. Isto significa que para além do formato esparsso, os atributos têm de ser os mesmos nos dois ficheiros, caso contrário poderı́amos ter, por exemplo, o atributo número 3 no ficheiro de treino a corresponder à palavra animal e no ficheiro de teste o atributo 3 a corresponder à palavra tiros o que levaria a {3 1} ter significado diferente nos dois ficheiros. O método mencionado anteriormente StringToWordVector permite a sua aplicação a dois ficheiros, de forma a ficarem coerentes quanto aos atributos. O que acontece é que todas as palavras que ocorram no ficheiro de teste que não tenham correspondência no ficheiro de treino são descartadas. Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 32 O mesmo pode suceder quando se usa o método StringToNominal, embora aqui o problema seja diferente. O atributo classe, que é um atributo nominal, pode ter valores diferentes no ficheiro de treino e teste, por exemplo, se o ficheiro de treino tiver no atributo classe apenas abater:v#ppi-3s e no ficheiro de teste aparecer abater:v#ppi-2c, há uma incoerência nos cabeçalhos dos ficheiro e a ferramenta não consegue lidar com este problema. Para que a ferramenta possa funcionar em modo de avaliação, durante o préprocessamento, as instâncias são concatenadas num só ficheiro, aplicam-se os filtros, e volta-se a distribuir as instâncias de treino e teste para os respectivos modelos. Assim os cabeçalhos ficam exactamente iguais e incluem todos os valores/atributos necessários.11 Até aqui apresentamos o formato dos ficheiros tendo em conta o contexto como sendo a frase toda (Contexto de tópicos), mas neste projecto também vão ser feitas experiências com o contexto como n-gramas de uma janela de tamanho 6 (Contexto local ), 3 palavras atrás do verbo e 3 palavras à frente do mesmo. Como tal vamos exemplificar como se traduz no formato .arff o uso destes ngramas para as mesmas frases: Com/PREP[O] tiros/TIRO/CN#mp[O] de/PREP[O] caçadeira/CAÇADEIRA/CN#fs[O] ,*//PNT[O] um/UM#ms[O] desconhecido/DESCONHECIDO/CN#ms[O] sem/PREP[O] motivo/MOTIVO/CN#ms[O] aparente/APARENTE/ADJ#ms[O] abateu/ABATER/V#ppi3s[O] uma/UM#fs[O] famı́lia/FAMÍLIA/CN#fs[O] inteira/INTEIRO/ADJ#fs[O] .*//PNT[O] @relation abateu @attribute @attribute @attribute @attribute @attribute @attribute @attribute @attribute @attribute @attribute @attribute @attribute 11 POS-3 string POS-2 string POS-1 string POS+1 string POS+2 string POS+3 string W-1 string W+1 string W-2W-1 string W-1W+1 string W+1W+2 string W-3W-2W-1 string Vamos assumir que, quando usamos os classificadores, as únicas classes que podem existir são as que ocorrem no corpus inteiro (corpus de treino e corpus de teste). Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP @attribute @attribute @attribute @attribute 33 W-2W-1W+1 string W-1W+1W+2 string W+1W+2W+3 string class string @data ‘‘cn’’,‘‘cn’’,‘‘adj’’,‘‘cn’’,‘‘adj’’,‘‘_’’,‘‘aparente’’,‘‘famı́lia’’, ‘‘motivo:aparente’’,‘‘aparente:famı́lia’’,‘‘famı́lia:inteira’’, ‘‘desconhecido:motivo:aparente’’,‘‘motivo:aparente:famı́lia’’, ‘‘aparente:famı́lia:inteira’’,‘‘famı́lia:inteira:_’’,‘‘abater:v#ppi-3s’’ ‘‘_’’,‘‘_’’,‘‘cn’’,‘‘_’’,‘‘_’’,‘‘_’’,‘‘animal’’,‘‘_’’,‘‘_:animal’’, ‘‘animal:_’’,‘‘_:_’’,‘‘_:_:animal’’,‘‘_:animal:_’’,‘‘animal:_:_’’, ‘‘_:_:_’’,‘‘abater:v#ppi-2c’’ ‘‘_’’,‘‘_’’,‘‘_’’,‘‘cn’’,‘‘cn’’,‘‘_’’,‘‘_’’,‘‘animal’’,‘‘_:_’’, ‘‘_:animal’’,‘‘animal:caçadeira’’,‘‘_:_:_’’,‘‘_:_:animal’’, ‘‘_:animal:caçadeira’’,‘‘animal:caçadeira:_’’,‘‘abater:v#ppi-3s’’ Para esta modelação do contexto, a transformação em atributos binários não é aconselhável para o Naive Bayes (Storkey, 2001). Vejamos um exemplo, para o atributo POS-3 há dois valores possı́veis “cn” e “ ”, ao passar os atributos para binário12 ficávamos com os atributos “cn1” e “ 1”13 condicionalmente dependentes entre si, pois nunca iriam ocorrer ao mesmo tempo numa instância, o que vai contra a assumção de atributos condicionalmente independentes entre si do Naive Bayes. Como tal os atributos são todos transformados em atributos nominais com o filtro StringToNominal ficando com o seguinte aspecto: @relation abateu @attribute @attribute @attribute @attribute @attribute @attribute @attribute 12 13 POS-3 {‘‘cn’’,‘‘_’’} POS-2 {‘‘cn’’,‘‘_’’} POS-1 {‘‘adj’’,‘‘cn’’,‘‘_’’} POS+1 {‘‘cn’’,‘‘_’’} POS+2 {‘‘adj’’,‘‘cn’’,‘‘_’’} POS+3 {‘‘_’’} W-1 {‘‘aparente’’,‘‘animal’’,‘‘_’’} Ver na secção seguinte como se passa para binário os atributos do Local Context Mais à frente é explicada a concatenação do número do atributo ao valor. Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 34 @attribute W+1 {‘‘famı́lia’’,‘‘_’’,‘‘animal’’} @attribute W-2W-1 {‘‘motivo:aparente’’,‘‘_:animal’’,‘‘_:_’’} @attribute W-1W+1 {‘‘aparente:famı́lia’’,‘‘animal:_’’,‘‘_:animal’’} @attribute W+1W+2 {‘‘famı́lia:inteira’’,‘‘_:_’’,‘‘animal:caçadeira’’} @attribute W-3W-2W-1 {‘‘desconhecido:motivo:aparente’’,‘‘_:_:animal’’, ‘‘_:_:_’’} @attribute W-2W-1W+1 {‘‘motivo:aparente:famı́lia’’,‘‘_:animal:_’’, ‘‘_:_:animal’’} @attribute W-1W+1W+2 {‘‘aparente:famı́la:inteira’’,‘‘animal:_:_’’, ‘‘_:animal:caçadeira’’} @attribute W+1W+2W+3 {‘‘famı́lia:inteira:_’’,‘‘_:_:_’’,‘‘animal:caçadeira:_’’} @attribute class {‘‘abater:v#ppi-3s’’,‘‘abater:v#ppi-2c’’, ‘‘abater:v#ppi-3s’’} @data ‘‘cn’’,‘‘cn’’,‘‘adj’’,‘‘cn’’,‘‘adj’’,‘‘_’’,‘‘aparente’’,‘‘famı́lia’’, ‘‘motivo:aparente’’,‘‘aparente:famı́lia’’,‘‘famı́lia:inteira’’, ‘‘desconhecido:motivo:aparente’’,‘‘motivo:aparente:famı́lia’’, ‘‘aparente:famı́lia:inteira’’,‘‘famı́lia:inteira:_’’,‘‘abater:v#ppi-3s’’ ‘‘_’’,‘‘_’’,‘‘cn’’,‘‘_’’,‘‘_’’,‘‘_’’,‘‘animal’’,‘‘_’’,‘‘_:animal’’, ‘‘animal:_’’,‘‘_:_’’,‘‘_:_:animal’’,‘‘_:animal:_’’,‘‘animal:_:_’’, ‘‘_:_:_’’,‘‘abater:v#ppi-2c’’ ‘‘_’’,‘‘_’’,‘‘_’’,‘‘cn’’,‘‘cn’’,‘‘_’’,‘‘_’’,‘‘animal’’,‘‘_:_’’, ‘‘_:animal’’,‘‘animal:caçadeira’’,‘‘_:_:_’’,‘‘_:_:animal’’, ‘‘_:animal:caçadeira’’,‘‘animal:caçadeira:_’’,‘‘abater:v#ppi-3s’’ O valor “ ” representa a não existência de uma palavra na posição de contexto em causa. 4.3.2 O formato .dat Os ficheiros .dat são os ficheiros de entrada da ferramanta SV M multiclass , a qual não pertence à colecção Weka. O seu formato é bastante similar ao dos ficheiros .arff, como tal, usamos os mesmos métodos para primeiro gerar os ficheiros .arff a partir dos quais, por conversão, se obtém os correspondentes ficheiros .dat. Exemplo de um ficheiro no formato .dat (Equivalente ao exemplo do .arff para o contexto de tópicos sem a aplicação do último filtro): Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 35 1 1:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 2 1:1 2:1 1 1:1 2:1 4:1 Cada linha representa uma instância. O primeiro número representa a classe a que pertence a instância e depois vêm tuplos de número1:número2, em que número1 representa o número do atributo14 e número2 corresponde ao valor que o atributo número1 contém. No nosso caso, significa que quando o valor é 1 a palavra representada pelo atributo número1 ocorre na frase a que a instância em causa corresponde. Novamente, aqui estamos a lidar com o formato esparsso, e em casa instância só são apresentados os atributos que ocorrem na frase. Neste formato .dat, não está explı́cito no ficheiro a que classes ou atributos correspondem os números. Estes têm de ser recuperados à custa do mapeamento feito na conversão do ficheiro .arff para o ficheio .dat. Para o contexto local, os atributos são binarizados, pois o SVM não lida com atributos nominais, ficando os ficheiros com o mesmo formato que para o contexto de tópicos. Para que não se perca a posição relativa dos atributos, estes são concatenados com um número de 1 a 15 representando os vários atributos do contexto local, assim quando são binarizados sabe-se que não haverá valores de um campo a misturarem-se com os valores de outro campo. Por exemplo, suponha-se que “cn” aparece no atributo POS-1 mas não no atributo POS-2 para uma dada instância de treino, e “cn” aparece no atributo POS-2 mas não no atributo POS-1 para uma dada instância de teste. Ao binarizarmos os valores dos 15 atributos originais, estes passam a ser atributos. Então ,haveria o risco de não se diferenciar estes dois exemplos, pois ambos têm o valor “cn”, (embora em posições diferentes). Para que isto não aconteça, “cn” fica “cn1” para o exemplo de treino e “cn2” para o exemplo de teste. 4.3.3 Aglomerados Depois do pré-processamento descrito nas secções anteriores, temos modelos para todas as formas verbais que ocorrem no corpus de treino. Temos também ficheiros de teste para todas formas verbais que ocorrem no corpus de teste. Assim, para cada forma verbal no corpus de teste, podemos usar o modelo da forma correspondente no corpus de treino. Mas e se esse modelo não existir porque essa forma verbal não ocorreu no corpus de treino? Nesse caso não conseguiriamos classificar o nosso teste. Para lidar com esta situação, foi concebido um método que consiste em aglomerar no mesmo modelo15 todas as frases das formas verbais, possivelmente diferentes 14 Correspondente à ocorrência de uma palavra Modelo é uma abstracção aos ficheiros, cada forma verbal tem um modelo com o qual pode ser classificado. 15 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 36 entre si, que têm o mesmo leque de possibilidades de traços de flexão. Este leque de possibilidades de flexão pode ser extraı́do usando o LX-Lem.16 Por exemplo, no caso acima, o verbo abateu fora de contexto pode ter duas acepções: pretérito perfeito do indicativo na 2a pessoa de cortesia do singular ou pretérito perfeito do indicativo na 3a pessoa do singular. A estas acepções chamamos o potencial de traços para a forma “abateu”. Nesta medida, as frases deste exemplo acima vão ser adicionadas ao aglomerado correspondente às formas verbais que têm esse mesmo potencial, como é o caso, por exemplo, da forma verbal “mordeu”. Depois quando é preciso desambiguar uma forma verbal que não ocorra no corpus de treino, é usado o aglomerado correspondente ao potencial de traços dessa mesma forma. Nestes algomerados, a classe contém apenas a informação dos traços. Os lemas como são tirados de várias formas verbais completamente diferentes seriam também diferentes entre si. Assim, os aglomerados de potencial são apenas usados para desambiguar os traços de formas verbais que não ocorram no treino. Algumas formas verbais podem ter vários lemas. Como tal, para a determinação dos aglomerados, é preciso decidir qual dos lemas contribui para qual potencia de traços. No processo de criação dos aglomerados é fácil de decidir: usa-se o lema que se encontra na ocorrência original. Por exemplo, a forma verbal “tendo” pode ter dois lemas, “tender” ou “ter”, caso o lema que se encontre na ocorrência em questão, no corpus de treino, seja “ter” então esta forma vai ter um potencial de traços {ger }, gerúndio, caso contrário, se o lema for “tender”, o potencial de traços vai ser {pi-1s}, presente do indicativo na primeira pessoa do singular. Por outro lado, quando se está a classificar um dado exemplo cuja forma verbal não ocorre no treino, o processo é um pouco mais complexo. Das formas devolvidas pelo LX-Lem para esse exemplo, se houver lemas conhecidos descartam-se os desconhecidos; caso contrário, prossegue-se apenas com os desconhecidos. Os lemas que sobram são comparados com uma lista de lemas com a respectiva frequência, extraı́da do corpus de treino. O que tiver maior frequência nessa lista é o que dá origem ao potencial a ser usado. Caso não conste nenhum lema na lista de frequências, dos lemas possı́veis escolhe-se o que suporta o potencial de traços mais frequente, caso hajam dois com o mesmo potencial mais frequente, vai-se pela terminação “ar”, “er” e por último “ir”. Se não houver nenhum lema que corresponda a um potencial existente, então a forma verbal não pode ser desambiguada por este método. 16 ver ponto 2.2.1 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 37 Passos do algortimo de selecção de aglomerados: (1) Obter o leque de possibilidades para a forma a ser classificada. (2) Descartar lemas desconhecidos se houver lemas conhecidos. (3) Comparar os restantes lemas com as lista de frequência dos lemas no corpus de treino. Se houver um lema mais frequente usa-se o potencial de traços correspondente a esse lema. (4) Caso contrário, dos lemas possı́veis, escolhe-se o que tem o potencial de traços mais frequente, comparando com a lista de potenciais de traços obtida a partir do corpus de treino. (5) Se não houver nem lema mais frequente nem potencial de traços mais frequente para um dos possı́veis lemas a forma não pode ser classificada recorrendo a este método. Uma vez descoberto o lema (pelo processo descrito atrás), a eventual desambiguação quanto ao lema fica realizada, e o leque de possibilidades de traços que este gera é usado para se desambiguar os traços com o aglomerado correspondente. 4.3.4 Clı́ticos Durante a preparação dos corpora de treino e teste é feito um processamento adicional sobre o texto original, nomeadamente a adição dos clı́ticos no lexema verbal. Isto tem lugar porque durante o processo de etiquetação dos corpora os clı́ticos foram separados da respectiva forma, ficando estes como lexemas distintos. Há três casos relevantes que podem aparecer no texto original. Se o lexema verbal apresentar a sequência “#-CL-”, isto significa que na forma, por exemplo, protegê#-CL-ia/PROTEGER/V#c-3s, existe um clı́tico em mesóclise. Isto indica que o próximo lexema é esse mesmo clı́tico, por exemplo -los/CL#mp3. Para efeito da nossa tarefa, a forma recuperada para este lexema verbal será protegêlos-ia. Também pode existir um clı́tico em mesóclise apenas com a sequência “-CL-”. Neste caso, isto significa que o clı́tico não altera a forma ortográfica do verbo a que está associado se o extrairmos. Isto é, no exemplo anterior protegê#-CL-ia, extraindo o clı́tico ficamos com protegêia e a forma correcta para os mesmos traços seria protegeria. A adição do clı́tico alterou a forma em primeiro lugar. No entanto para um caso em que existe a sequência “-CL-” sem o “#”, ao extrair-se o clı́tico não há alteração na forma verbal. Por exemplo, dever-CL-ão da forma original dever-se-ão, fica deverão. Se o lexema apresentar a sequência “#/” significa que existe um clı́tico em ênclise por exemplo, felicitá#/FELICITAR/INF#ninf[O] e o lexema seguinte poderia ser Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 38 algo como -lo/CL#ms3[O]. A forma recuperada desde lexema verbal será felicitá-lo. Clı́ticos em próclise não são considerados pois não interferem com a ortografia da forma. As formas verbais que apresentem sequências como as descritas acima, são transformadas na forma correspondente sem clı́tico. Para as que apresentam um “#”, isto é feito através do LX-Conj dando como valores de entrada o lema e os traços, aos quais temos acesso no lexema. Com a forma obtida por conjugação, substituimos a forma ortográfica que estava no lexema. Para as formas que não têm “#” basta extrair a sequência “-CL-” e concatenar o que resta. Isto é feito porque quando se constroem os aglomerados, é preciso usar o LX-Lem, que toma como input formas verbais ortograficamente correctas. O mesmo acontece quando se decide com que cluster se vai classificar uma forma verbal desconhecida. Para além deste processamento, os lexemas de clı́ticos que seguem as formas verbais são concatenados a estas. Isto faz com que na construção dos ficheiros, por exemplo, recorde/RECORDAR/V#pc-3s[O] se vier seguido de -se/CL#gn3[O] fica transformado em recorde-se/RECORDAR/V#pc-3s[0]. Isto faz com que todas as ocorrências, por exemplo, da forma recorde que tenham o clı́tico -se fiquem juntas no mesmo modelo, que será um modelo diferente daquele que se constrói para recorde sem clı́tico. Usar formas com clı́tico permite filtrar algumas possibilidades de traços que não podem co-ocorrer com o clı́tico. Mas ao fazermos isto, estamos a limitar também o número de exemplos que há para cada forma, o que por sua vez pode baixar a precisão e como tal este ponto será tido em conta. Também poderá afectar a medida de abrangência, vejamos, se recorde aparece no corpus de treino e recorde-se apenas aparece no corpus de teste, então essa forma não será classificada. Caso se considerasse as formas com clı́tico juntamente com as outras, isto não aconteceria. Vejamos um exemplo, tendo as cinco frases seguintes: 1 - “Que/REL eu/PRS#gs1 me/CL#gs1 recorde/RECORDAR/V#pc-1s ,*//PNT não/ADV estive/ESTAR/V#ppi-1s em /PREP esta/DEM#fs terra/TERRA/CN#fs” 2 - “Recorde/RECORDAR/V#pc-2c -se/CL#gn3 de/PREP quando/CJ foi/SER/V#ppi3s o/DA#ms evento/EVENTO/CN#ms” 3 - “Recorde/RECORDAR/V#pc-3s -se/CL#gn3 ele/PRS#ms3 de /PREP o/DA#ms que/REL aconteceu/ACONTECER/V#ppi-3s .*//PNT” 4 - “Que/REL ele/PRS#ms3 se/CL#gn3 recorde/RECORDAR/V#pc-3s de /PREP o/DA#ms que/REL aconteceu/ACONTECER/V#ppi-3s .*//PNT” 5 - “Que/REL você/PRS#gs3 se/CL#gn3 recorde/RECORDAR/V#pc-2c de/PREP uma/UM#fs coisa/COISA/CN#fs de /PREP essas/DEM#fp !*//PNT” Para além de outros verbos existentes nestas frases, todas elas têm o verbo Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 39 recordar e serão adicionadas aos seguintes modelos. A frase 1, 4 e 5 pertencerão ao modelo recorde, enquanto as frases 2 e 3 pertencerão ao modelo recorde-se. Podemos desde já notar que a frase 3 tem traços que podem ocorrer na forma recorde e como tal até poderia ajudar a desambiguar alguma exemplo com a forma recorde. No entanto, como a frase 3 apresenta o clı́tico -se ficará a pertencer ao modelo da forma recorde-se. Por outro lado a frase 1 tem traços que não são passı́veis de co-ocorrer com o clı́tico -se e como tal ao criarmos um modelo separado para a forma verbal com o clı́tico estamos a restringir à partida os possı́veis casos de traços. Imaginemos que se punham os exemplos de treino das formas com clı́tico e sem clı́tico no mesmo modelo recorde, então haveria o risco de um exemplo de teste da forma recorde-se ser etiquetado como v#pc-1s, sendo este traço impossı́vel para a dita forma. Ficamos assim com menos exemplos de treino por forma/modelo, mas garantimos que não são atribuı́dos traços impossı́veis para a forma em questão. 4.3.5 Classes aberts vs. Classes fechadas Decidimos usar apenas palavras de classes abertas durante o processo todo, sendo as palavras de outras classes filtradas na construção dos ficheiros. As palavras das classes abertas são as que têm conteúdo semântico e que podem fornecer “pistas” para o classificador atribuir melhor a classe certa. Palavras de outras classes têm uma frequência muito elevada, o que significa que perdem valor estatı́stico. Por exemplo, o artigo o é de elevada frequência e pode ocorrer em várias frases com verbos de traços e lemas diferentes, facto que não traz grande relevância estatistica à sua presença para a desambiguação dos verbos em questão. Ao eliminar as classes fechadas estamos a limitar também o número de atributos. Para o Local Context foi decidido incluir algumas classes fechadas, que pensamos poder ter poder discriminatório, nomeadamente CJ - Conjunções e PREP Preposições. Exemplos: Verificou-se de facto um aumento de precisão ao usar mais estas classes de palavras. O valor de precisão para o Naive Bayes com classes abertas apenas é de 79.90%, sendo que adicionando as classes gramaticais CJ e PREP aumenta para 81.18%. Também se verifica um melhoria no SVM, com classes abertas a precisão é de 93.10% e adicionando as classes gramaticais CJ e PREP aumenta para 94.06%. Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 4.3.6 40 Implementação A implementação do programa que avalia os métodos estudados é feita em Java,17 assim como todo o pré-processamento. Incluindo, recuperação da forma com clı́tico, extracção de corpus de treino e teste, criação e manipulação dos ficheiro .arff e .dat, detecção de anomalias na formação de lexemas e criação de aglomerados. Em alguns passos mencionados, são usados o LX-Lem e o LX-Conj. Para o LX-Lem foi feito um .jar das classes e a sua utilização é directa usando a classe Lemmatize(), quanto ao LX-Conj é feita uma chamada externa, usando a classe Runtime() do Java. Os filtros usados pertecem às classes do Weka e são também em Java, sendo a sua aplicação directa, assim como o classificador Naive Bayes. O classificador SVM é integrado no programa Java através de uma chamada externa, usando a classe Runtime() do Java. 4.4 Conjuntos de dados Do corpus descrito anteriormente foram extraı́dos 15426 modelos de formas verbais para treino e 3868 modelos de formas verbais para teste. Das formas verbais de teste, 942 não têm forma correspondente no treino e como tal requerem tratamento especial, quer recorrendo aos aglomerados quer utilizando o mesmo tratamento usado na heurı́stica de máxima verosimilhança para as formas que não ocorrem no treino.18 O modelo com mais atributos contém 3044, para o contexto de tópicos. Para o contexto local o modelo com mais atributos que derivam da binarização tem 3379. Para os dois contextos o que tem menos contém apenas 2. Este número elevado de atributos faz com que a classificação seja lenta para as formas verbais correspondentes, principalmente se a classificação usar aglomerados, pois os que contêm mais atributos são os que são mais utilizados19 para desambiguar os traços das formas verbais sem forma correspondente no treino. O número de instâncias nos modelos de treino usados na classificação20 varia entre 1 e 3840, tendo uma média de 17 instâncias por modelo, sem contar com os aglomerados. Contando com os aglomerados temos uma média de 353 instâncias de treino por modelo, variando entre 1 e 5130. A partir das 77029 instâncias de formas verbais que ocorrem no corpus de treino e que correspondem a 15786 formas verbais únicas, foram criados 103 aglomerados. 17 http://java.sun.com/, versão Java 6 Explicado no ponto 3.2 19 Como são os mais frequentes geram modelos com mais atributos 20 Apenas os que correspondem a formas verbais no teste. 18 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 41 Há alguns problemas que advêm do facto de o corpus ter uma pequena percentagem de etiquetas mal formadas/atribuı́das. Vamos tomar isto em consideração ao longo do processo de classificação. Devido a isto, do total de 15786 formas verbais únicas apenas 15426 deram origem a modelos no treino e do total de 3923 formas únicas do teste apenas 3868 serviram para criar ficheiros de teste depois de removidos alguns erros de anotação. A utilização de ferramentas que obedecem a regras gramaticais, como o LX-Lem e LX-Conj, permite-nos detectar erros na etiquetação dos lexemas, e o facto de estarmos à espera de um dado formato nos lexemas permite-nos detectar anomalias na sua formação. Assim, dado um lexema se usarmos o LX-Conj para conjugar o lema com os traços que aı́ ocorrem, a forma resultante tem de ser a forma ortográfica desse mesmo lexema. Por sua vez, se usarmos o LX-Lem para lematizar uma forma ortográfica, o lema e traços previamente atribuı́dos têm de ser iguais a uma das respostas devolvidas pelo LX-Lem. Caso isto não se verifique o erro pode ser um de três casos possı́veis. Ou o lema não corresponde à forma ortográfica, ou a forma ortográfica contêm erros ortográficos, ou os traços estão mal etiquetados. Estes erros podem ocorrer em simultâneo. Vejamos exemplos para os dois primeiros casos referidos no parágrafo anterior, pela mesma ordem: festeja/FSETEJAR/V#pi-3s ou faı́scar/FAISCAR/INF#ninf abondonar/ABANDONAR/INF#ninf ou incantadas/ENCANTAR,ENCANTADO/PPA#fp O terceiro caso não é detectado. A detecção de erros não faz parte do presente trabalho. Os erros são apenas detectados como consequência do processamento feito. Como tal os dados de treino podem ainda conter uma percentagem marginal de erros mal etiquetados. Recapitulando, os erros são detectados quando se junta o clı́tico à forma ortográfica, em que se usa o LX-Conj para recuperar a forma ortográfica sem clı́tico, caso esta seja diferente.21 Na criação dos clusters, em que se usa o LXLem para descobrir o potencial de traços de uma dada forma verbal. Este último processamento foi adicionado posteriormente na criação dos modelos para evitar que houvesse modelos para formas ortográficas com erros. Este modelos provavelmente teriam apenas um exemplo, visto que se trata de um erro ortográfico. Como tal seria introduzir um pequeno ruı́do que não seria estatisticamente relevante. 21 Notar que esta detecção é feita apenas para as formas verbais com clı́ticos. Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 42 Dos erros detectados para o corpus de treino, temos 509 lexemas mal etiquetados. Em 360 dos casos, a forma lematizada não dá o lema com o qual está etiquetado. Em 102 dos casos, a forma é impossı́vel de acordo com as regras gramaticais do português. Os restantes casos são formas de PPA ainda não desambiguadas, que como tal não podem ser usadas para fazer desambiguação. Para o corpus de teste, temos 64 lexemas detectados com erros. Dos quais em 44 dos casos a forma lematizada não dá o lema com o qual está etiquetado, e os restantes 20 são formas de PPA ainda não desambiguadas. Todos estes casos de erros, assim detectados, foram removidos. Existem 8527 instâncias a ser classificadas no treino. Dessas instâncias, 7557 têm modelos correspondente no treino e 4527 não são ambı́guas no corpus.22 Das 970 instâncias sem modelos no corpus de treino, 438 não são ambı́guas para o lexico. Quando forem apresentados os resultados de avaliação na próxima secção, estes números serão tidos em conta, pois estas 4965 instâncias não representão trabalho de desambiguação para os algoritmos. 4.5 Avaliação Nesta secção vão ser apresentados os resultados obtidos para os classificadores Naive Bayes e SVM, usando como atributos três modelações de contexto. Dois deles, o contexto de tópicos (topical context) e o contexto local foram descritos na secção 4.3. A terceira modelação consiste em reunir num só os dois contextos anteriores. Depois será feita uma comparação dos resultados obtidos com outros trabalhos para a mesma tarefa ou tarefas aproximadas. 4.5.1 Abordagens exploradas Naive Bayes Contexto de Topicos • Naive Bayes Simples – Todas as instâncias ∗ Instâncias correctamente classificadas:7102 ∗ Instâncias erradamente classificadas:455 ∗ Instâncias não classificadas:970 ∗ Número total de instâncias:8527 ∗ Precisão:93.98% 22 Tendo em conta o corpus inteiro, nunca ocorrem noutra forma. Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 43 ∗ Abrangência:83.29% ∗ Medida-f:88.31% ∗ Instâncias não ambı́guas e classificadas:4527 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:2575 ∗ Instâncias erradamente classificadas:455 ∗ Instâncias não classificadas:532 ∗ Número total de instâncias:3562 ∗ Precisão:84.98% ∗ Abrangência:72.29% ∗ Medida-f:78.13% Os primeiros resultados para a tarefa proposta. O número de instâncias não ambı́guas no corpus e classificadas é 4527, o número total de instâncias não ambı́guas é de 4965. O número total inclui as não ambı́guas no corpus e as formas que não ocorrem no treino e são não ambı́guas para o léxico (a razão de se usar a ambiguidade relativa ao léxico para as formas que não ocorrem no corpus é para se poder comparar com o algoritmo base, ver secção 3.2). Estes números permitem-nos saber de facto o trabalho de desambiguação efectivamente realizado. • Naive Bayes + Lematizador23 – Todas as instâncias ∗ Instâncias correctamente classificadas:7972 ∗ Instâncias erradamente classificadas:555 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:8527 ∗ Precisão:93.49% ∗ Abrangência:93.49% ∗ Medida-f:93.49% ∗ Instâncias não ambı́guas e classificadas:4965 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:3007 23 O lematizador usado é o LX-Lem. Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 44 ∗ Instâncias erradamente classificadas:555 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:3562 ∗ Precisão:84.42% ∗ Abrangência:84.42% ∗ Medida-f:84.42% Usando o LX-Lemmatizer para atribuir lema e etiquetas aos lexemas não atestados no corpus de treino,24 consegue-se aumentar bastante a abrangência, conseguindo uma medida-f de cerca de 5 pontos percentuais a mais. • Naive Bayes + Aglomerados de potencial de traços – Todas as instâncias ∗ Instâncias correctamente classificadas:7561 ∗ Instâncias erradamente classificadas:464 ∗ Instâncias não classificadas:502 ∗ Número total de instâncias:8527 ∗ Precisão:94.22% ∗ Abrangência:88.67% ∗ Medida-f:91.36% ∗ Instâncias não ambı́guas e classificadas:4637 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:2924 ∗ Instâncias erradamente classificadas:464 ∗ Instâncias não classificadas:174 ∗ Número total de instâncias:3562 ∗ Precisão:86.30% ∗ Abrangência:82.09% ∗ Medida-f:84.14% Como foi explicado anteriormente na secção 4.3.2 e numa tentativa de usar o classificador Naive Bayes para fazer o máximo de trabalho possı́vel na desambiguação, usamos aglomerados de potencial de traços para desambiguar os traços verbais de 24 Mesmo algoritmo para as formas não atestadas descrito no ponto 3.2 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 45 formas verbais que não ocorrem no corpus de treino. Usando os aglomerados, a precisão é ligeiramente superior à obtida com o Naive Bayes Simples. Em termos de medida-f este algoritmo pode ainda ser melhorado, visto que não classifica todas as instâncias. O número de instâncias não ambı́guas e classificadas é de 4637, 4527 não ambı́guas no corpus mais 110 instâncias de formas classificadas que não ocorrem no treino não ambı́guas para o léxico. • Naive Bayes + Aglomerados + Lematizador – Todas as instâncias ∗ Instâncias correctamente classificadas:8021 ∗ Instâncias erradamente classificadas:506 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:8527 ∗ Precisão:94.07% ∗ Abrangência:94.07% ∗ Medida-f:94.07% ∗ Instâncias não ambı́guas e classificadas:4965 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:3056 ∗ Instâncias erradamente classificadas:506 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:3562 ∗ Precisão:85.79% ∗ Abrangência:85.79% ∗ Medida-f:85.79% De forma a tentar melhorar o algoritmo anterior, tentando classificar todas as instâncias, usamos o lematizador. Conseguimos assim um aumento na medida-f de 91.36% para 94.07%. Contexto local • Naive Bayes Simples – Todas as instâncias ∗ Instâncias correctamente classificadas:6135 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 46 ∗ Instâncias erradamente classificadas:1422 ∗ Instâncias não classificadas:970 ∗ Número total de instâncias:8527 ∗ Precisão:81.18% ∗ Abrangência:71.95% ∗ Medida-f:76.29% ∗ Instâncias não ambı́guas e classificadas:4527 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:1608 ∗ Instâncias erradamente classificadas:1422 ∗ Instâncias não classificadas:532 ∗ Número total de instâncias:3562 ∗ Precisão:53.07% ∗ Abrangência:45.14% ∗ Medida-f:48.78% O uso do contexto local para o Naive Bayes Simples tem resultados claramente inferiores ao uso do contexto de tópicos. • Naive Bayes + Lematizador – Todas as instâncias ∗ Instâncias correctamente classificadas:7005 ∗ Instâncias erradamente classificadas:1522 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:8527 ∗ Precisão:82.15% ∗ Abrangência:82.15% ∗ Medida-f:82.15% ∗ Instâncias não ambı́guas e classificadas:4965 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:2040 ∗ Instâncias erradamente classificadas:1522 ∗ Instâncias não classificadas:0 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 47 ∗ Número total de instâncias:3562 ∗ Precisão:57.27% ∗ Abrangência:57.27% ∗ Medida-f:57.27% Este algoritmo, como seria de esperar, tem o mesmo grau de melhoras que o Naive Bayes+Lematizador tem em relação ao Naive Bayes Simples para o contexto de tópicos, melhorando o classificador da experiência anterior em 5 pontos percentuais. • Naive Bayes + Aglomerados – Todas as instâncias ∗ Instâncias correctamente classificadas:6538 ∗ Instâncias erradamente classificadas:1487 ∗ Instâncias não classificadas:502 ∗ Número total de instâncias:8527 ∗ Precisão:81.47% ∗ Abrangência:76.67% ∗ Medida-f:79.00% ∗ Instâncias não ambı́guas e classificadas:4637 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:1901 ∗ Instâncias erradamente classificadas:1487 ∗ Instâncias não classificadas:174 ∗ Número total de instâncias:3562 ∗ Precisão:56.11% ∗ Abrangência:53.37% ∗ Medida-f:54.71% Mesmo usando os aglomerados o Naive Bayes com o contexto local continua a obter resultados fracos comparativamente com as outras modelações de contexto. • Naive Bayes + Aglomerados + Lematizador – Todas as instâncias ∗ Instâncias correctamente classificadas:6998 ∗ Instâncias erradamente classificadas:1529 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 48 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:8527 ∗ Precisão:82.07% ∗ Abrangência:82.07% ∗ Medida-f:82.07% ∗ Instâncias não ambı́guas e classificadas:4965 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:2033 ∗ Instâncias erradamente classificadas:1529 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:3562 ∗ Precisão:57.07% ∗ Abrangência:57.07% ∗ Medida-f:57.07% O melhor para o Naive Bayes com contexto local, mas muito abaixo das outras modelações de contexto. Combinando contexto local e contexto de tópicos • Naive Bayes – Todas as instâncias ∗ Instâncias correctamente classificadas:7075 ∗ Instâncias erradamente classificadas:482 ∗ Instâncias não classificadas:970 ∗ Número total de instâncias:8527 ∗ Precisão:93.62% ∗ Abrangência:82.97% ∗ Medida-f:87.98% ∗ Instâncias não ambı́guas e classificadas:4527 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:2548 ∗ Instâncias erradamente classificadas:482 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 49 ∗ Instâncias não classificadas:532 ∗ Número total de instâncias:3562 ∗ Precisão:84.09% ∗ Abrangência:71.53% ∗ Medida-f:77.31% Adicionar o contexto local à modelação dos atributos com o contexto de tópicos faz baixar a precisão em relação à modelação usando apenas o contexto de tópicos. • Naive Bayes + Lematizador – Todas as instâncias ∗ Instâncias correctamente classificadas:7945 ∗ Instâncias erradamente classificadas:582 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:8527 ∗ Precisão:93.17% ∗ Abrangência:93.17% ∗ Medida-f:93.17% ∗ Instâncias não ambı́guas e classificadas:4965 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:2980 ∗ Instâncias erradamente classificadas:582 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:3562 ∗ Precisão:83.66% ∗ Abrangência:83.66% ∗ Medida-f:83.66% Os resultados são também abaixo comparativamente com o mesmo algoritmo usando o contexto de tópicos. • Naive Bayes + Aglomerados – Todas as instâncias ∗ Instâncias correctamente classificadas:7533 ∗ Instâncias erradamente classificadas:492 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP ∗ Instâncias não classificadas:502 ∗ Número total de instâncias:8527 ∗ Precisão:93.87% ∗ Abrangência:88.34% ∗ Medida-f:91.02% ∗ Instâncias não ambı́guas e classificadas:4637 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:2896 ∗ Instâncias erradamente classificadas:492 ∗ Instâncias não classificadas:174 ∗ Número total de instâncias:3562 ∗ Precisão:85.48% ∗ Abrangência:81.30% ∗ Medida-f:83.34% • Naive Bayes + Aglomerados + Lematizador – Todas as instâncias ∗ Instâncias correctamente classificadas:7993 ∗ Instâncias erradamente classificadas:534 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:8527 ∗ Precisão:93.74% ∗ Abrangência:93.74% ∗ Medida-f:93.74% ∗ Instâncias não ambı́guas e classificadas:4965 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:3028 ∗ Instâncias erradamente classificadas:534 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:3562 ∗ Precisão:85.01% ∗ Abrangência:85.01% 50 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 51 ∗ Medida-f:85.01% Como seria de esperar, este é o melhor algoritmo usando o Naive Bayes para a modelação de contexto combinada, contexto local com o contexto de tópicos. Support Vector Machine Contexto de tópicos • SVM Simples – Todas as instâncias ∗ Instâncias correctamente classificadas:7116 ∗ Instâncias erradamente classificadas:441 ∗ Instâncias não classificadas:970 ∗ Número total de instâncias:8527 ∗ Precisão:94.16% ∗ Abrangência:83.45% ∗ Medida-f:88.49% ∗ Instâncias não ambı́guas e classificadas:4527 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:2589 ∗ Instâncias erradamente classificadas:441 ∗ Instâncias não classificadas:532 ∗ Número total de instâncias:3562 ∗ Precisão:85.45% ∗ Abrangência:72.68% ∗ Medida-f:78.55% Relativamente ao Naive Bayes nas mesmas condições de teste, o SVM consegue uma medida-f um pouco superior aos 88.31% do Naive Bayes, alcançando 88.48% com o SVM. Para a ferramenta SVM, existe um parâmetro que se pode manipular, o parâmetro C, que representa a contrapartida entre possı́veis erros no treino e o tamanho da margem.25 Foram feitas algumas experiências fazendo variar o parâmetro C. 25 Ver a descrição do algoritmo em 4.2 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP • Valores de precisão variando o parametro C – 93.75% para C = 1000 – 94.14% para C = 20 – 94.12% para C = 15 – 94.16% para C = 10 – 94.15% para C = 5 – 94.14% para C = 2 – 94.15% para C = 1 – 94.15% para C = 0.9 – 94.15% para C = 0.5 – 94.15% para C = 0.1 – 94.07% para C = 0.01 – 94.05% para C = 0.001 Os resultados apresentados são obtidos usando o paramêtro C = 10. • SVM + Lematizador – Todas as instâncias ∗ Instâncias correctamente classificadas:7986 ∗ Instâncias incorrectamente classificadas:541 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:8527 ∗ Precisão:93.66% ∗ Abrangência:93.66% ∗ Medida-f:93.66% ∗ Instâncias não ambı́guas e classificadas:4965 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:3021 ∗ Instâncias incorrectamente classificadas:541 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:3562 ∗ Precisão:84.81% 52 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 53 ∗ Abrangência:84.81% ∗ Medida-f:84.81% Será de esperar para este algoritmo que o aumento na medida-f seja na mesma ordem do aumento da medida-f no Naive Bayes + Lematizador, pois as instâncias que não são classificadas pelo Naive Bayes ou SVM são as mesmas, e o método usado para as classificar é exactamente igual. Tal como no Naive Bayes a medida-f tem uma melhoria bastante significativa, de mais de 5 pontos percentuais contando com todas as instâncias. Neste algoritmo não é preciso fazer variar o parâmetro C, visto que a tarefa de classificação no que diz respeito ao SVM é a mesma. Como tal, usou-se o valor para o parâmetro C que produz melhores resultados, ou seja C = 10. • SVM + Aglomerados – Todas as instâncias ∗ Instâncias correctamente classificadas:7575 ∗ Instâncias incorrectamente classificadas:450 ∗ Instâncias não classificadas:502 ∗ Número total de instâncias:8527 ∗ Precisão:94.39% ∗ Abrangência:88.84% ∗ Medida-f:91.53% ∗ Instâncias não ambı́guas e classificadas:4637 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:2938 ∗ Instâncias incorrectamente classificadas:450 ∗ Instâncias não classificadas:174 ∗ Número total de instâncias:3562 ∗ Precisão:86.72% ∗ Abrangência:82.48% ∗ Medida-f:84.55% Este algoritmo consegue uma melhor precisão relativamente ao anterior, no entanto não classifica todas as instâncias tendo por isso uma medida-f mais baixa. É superior também ao equivalente para o Naive Bayes. Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 54 Neste algoritmo foram feitas experiências novamente fazendo variar o parâmetro C, já que o uso dos aglomerados envolve classificação através do algoritmo base (o SVM neste caso). Os resultados quanto aos melhores valores para o parâmetro C são semelhantes aos já testados no algoritmo SVM Simples: • Valores de precisão variando o parametro C – 94.01% para C = 1000 – 94.38% para C = 20 – 94.36% para C = 15 – 94.39% para C = 10 – 94.38% para C = 5 – 94.37% para C = 2 – 94.38% para C = 1 – 94.38% para C = 0.9 – 94.38% para C = 0.5 – 94.38% para C = 0.1 – 94.31% para C = 0.01 – 94.28% para C = 0.001 O valor do paramêtro C usado é 10. • SVM + Aglomerados + Lematizador – Todas as instâncias ∗ Instâncias correctamente classificadas:8035 ∗ Instâncias incorrectamente classificadas:492 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:8527 ∗ Precisâo:94.23% ∗ Abrangência:94.23% ∗ Medida-f:94.23% ∗ Instâncias não ambı́guas e classificadas:4965 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:3070 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 55 ∗ Instâncias incorrectamente classificadas:492 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:3562 ∗ Precisâo:86.19% ∗ Abrangência:86.19% ∗ Medida-f:86.16% Para este algoritmo usa-se o valor para o parâmetro C que teve melhores resultados para o algoritmo anterior. Para o contexto de tópicos este é o melhor algoritmo apresentado, ficando ligeiramente acima do equivalente para o Naive Bayes. Contexto local • SVM Simples – Todas as instâncias ∗ Instâncias correctamente classificadas:7108 ∗ Instâncias erradamente classificadas:449 ∗ Instâncias não classificadas:970 ∗ Número total de instâncias:8527 ∗ Precisão:94.06% ∗ Abrangência:83.36% ∗ Medida-f:88.39% ∗ Instâncias não ambı́guas e classificadas:4527 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:2581 ∗ Instâncias erradamente classificadas:449 ∗ Instâncias não classificadas:532 ∗ Número total de instâncias:3562 ∗ Precisão:85.18% ∗ Abrangência:72.46% ∗ Medida-f:78.31% O SVM Simples não perde tanto quanto o classificador Naive Bayes quando se usa o contexto local, ainda assim fica ligeiramente atrás do uso do contexto de tópicos. Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP • Valores de precisão variando o parametro C – 93.75% para C = 1000 – 94.03% para C = 20 – 94.03% para C = 15 – 94.06% para C = 10 – 94.06% para C = 5 – 94.06% para C = 2 – 94.05% para C = 1 – 94.03% para C = 0.9 – 94.03% para C = 0.5 – 94.06% para C = 0.1 – 94.05% para C = 0.01 – 94.05% para C = 0.001 O valor do parâmetro C usado é 10. • SVM + Lemmatizer – Todas as instâncias ∗ Instâncias correctamente classificadas:7978 ∗ Instâncias incorrectamente classificadas:549 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:8527 ∗ Precisão:93.56% ∗ Abrangência:93.56% ∗ Medida-f:93.56% ∗ Instâncias não ambı́guas e classificadas:4965 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:3013 ∗ Instâncias incorrectamente classificadas:549 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:3562 ∗ Precisão:84.59% 56 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP ∗ Abrangência:84.59% ∗ Medida-f:84.59% • SVM + Aglomerados – Todas as instâncias ∗ Instâncias correctamente classificadas:7566 ∗ Instâncias incorrectamente classificadas:459 ∗ Instâncias não classificadas:502 ∗ Número total de instâncias:8527 ∗ Precisão:94.28% ∗ Abrangência:88.73% ∗ Medida-f:91.42% ∗ Instâncias não ambı́guas e classificadas:4637 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:2929 ∗ Instâncias incorrectamente classificadas:459 ∗ Instâncias não classificadas:174 ∗ Número total de instâncias:3562 ∗ Precisão:86.45% ∗ Abrangência:82.23% ∗ Medida-f:84.29% Ligeiramente abaixo do correspondente para o contexto de tópicos. • Valores de precisão variando o parâmetro C – 94.01% para C = 1000 – 94.38% para C = 20 – 94.36% para C = 15 – 94.39% para C = 10 – 94.38% para C = 5 – 94.37% para C = 2 – 94.38% para C = 1 – 94.38% para C = 0.9 57 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 58 – 94.38% para C = 0.5 – 94.38% para C = 0.1 – 94.31% para C = 0.01 – 94.28% para C = 0.001 O valor do parâmetro C usado é 10. • SVM + Aglomerados + Lematizador – Todas as instâncias ∗ Instâncias correctamente classificadas:8026 ∗ Instâncias incorrectamente classificadas:501 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:8527 ∗ Precisão:94.12% ∗ Abrangência:94.12% ∗ Medida-f:94.12% ∗ Instâncias não ambı́guas e classificadas:4965 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:3061 ∗ Instâncias incorrectamente classificadas:501 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:3562 ∗ Precisão:85.93% ∗ Abrangência:85.93% ∗ Medida-f:85.93% Tal como no uso do contexto de tópicos, esta combinação é o melhor classificador para o contexto local, ficando ligeiramente atrás da equivalente para o contexto de tópicos. Combinando contexto local com contexto de tópicos • SVM Simples – Todas as instâncias ∗ Instâncias correctamente classificadas:7115 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 59 ∗ Instâncias erradamente classificadas:442 ∗ Instâncias não classificadas:970 ∗ Número total de instâncias:8527 ∗ Precisão:94.15% ∗ Abrangência:83.44% ∗ Medida-f:88.47% ∗ Instâncias não ambı́guas e classificadas:4527 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:2588 ∗ Instâncias erradamente classificadas:442 ∗ Instâncias não classificadas:532 ∗ Número total de instâncias:3562 ∗ Precisão:85.41% ∗ Abrangência:72.66% ∗ Medida-f:78.52% O SVM Simples não perde tanto quanto o classificador Naive Bayes quando se usa a junção do contexto local e contexto de tópicos, ainda assim fica ligeiramente atrás do uso do contexto de tópicos. • Valores de precisão variando o parâmetro C – 93.90% para C = 1000 – 94.07% para C = 20 – 94.07% para C = 15 – 94.15% para C = 10 – 94.14% para C = 5 – 94.11% para C = 2 – 94.11% para C = 1 – 94.11% para C = 0.9 – 94.11% para C = 0.5 – 94.12% para C = 0.1 – 94.12% para C = 0.01 – 94.08% para C = 0.001 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 60 O valor do parâmetro C usado é 10. • SVM + Lematizador – Todas as instâncias ∗ Instâncias correctamente classificadas:7985 ∗ Instâncias incorrectamente classificadas:542 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:8527 ∗ Precisão:93.64% ∗ Abrangência:93.64% ∗ Medida-f:93.64% ∗ Instâncias não ambı́guas e classificadas:4965 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:3020 ∗ Instâncias incorrectamente classificadas:542 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:3562 ∗ Precisão:84.78% ∗ Abrangência:84.78% ∗ Medida-f:84.78% Usa-se o mesmo valor para o parâmetro C que no SVM Simples, isto é o valor 10. • SVM + Aglomerados – Todas as instâncias ∗ Instâncias correctamente classificadas:7573 ∗ Instâncias incorrectamente classificadas:452 ∗ Instâncias não classificadas:502 ∗ Número total de instâncias:8527 ∗ Precisão:94.37% ∗ Abrangência:88.81% ∗ Medida-f:91.51% ∗ Instâncias não ambı́guas e classificadas:4637 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:2936 ∗ Instâncias incorrectamente classificadas:452 ∗ Instâncias não classificadas:174 ∗ Número total de instâncias:3562 ∗ Precisão:86.66% ∗ Abrangência:82.43% ∗ Medida-f:84.49% • Valores de precisão variando o parâmetro C – 94.13% para C = 1000 – 94.27% para C = 20 – 94.29% para C = 15 – 94.37% para C = 10 – 94.36% para C = 5 – 94.33% para C = 2 – 94.33% para C = 1 – 94.33% para C = 0.9 – 94.33% para C = 0.5 – 94.34% para C = 0.1 – 94.31% para C = 0.01 – 94.31% para C = 0.001 O valor usado para o parâmetro C é 10. • SVM + Aglomerados + Lematizador – Todas as instâncias ∗ Instâncias correctamente classificadas:8033 ∗ Instâncias incorrectamente classificadas:494 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:8527 ∗ Precisão:94.21% ∗ Abrangência:94.21% 61 Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 62 ∗ Medida-f:94.21% ∗ Instâncias não ambı́guas e classificadas:4965 ∗ Total de instâncias não ambı́guas no corpus:4965 – Apenas instâncias ambı́guas ∗ Instâncias correctamente classificadas:3068 ∗ Instâncias incorrectamente classificadas:494 ∗ Instâncias não classificadas:0 ∗ Número total de instâncias:3562 ∗ Precisão:86.13% ∗ Abrangência:86.13% ∗ Medida-f:86.13% Em suma, temos os seguintes valores de medida-f por algoritmo: A tabela 4.1 mostra os valores usando o contexto de tópicos para todas as instâncias. Precisão Abrangência Medida-F Precisão Abrangência Medida-F NB NB+L 93,98 93,49 83,29 93,49 88,31 93,49 SVM SVM+L 94,16 93,66 83,45 93,66 88,49 93,66 NB+A 94,22 88,67 91,36 SVM+A 94,39 88,84 91,53 NB+A+L 94,07 94,07 94,07 SVM+A+L 94,23 94,23 94,23 Tabela 4.1: Tabela com valores de desempenho para contexto de tópicos usando toda as instâncias. A tabela 4.2 mostra os valores usando o contexto local para todas as instâncias. Precisão Abrangência Medida-F Precisão Abrangência Medida-F NB NB+L 81,18 82,15 71,95 82,15 76,29 82,15 SVM SVM+L 94,06 93,56 83,36 93,56 88,39 93,56 NB+A 81,47 76,67 79,00 SVM+A 94,28 88,73 91,42 NB+A+L 82,07 82,07 82,07 SVM+A+L 94,12 94,12 94,12 Tabela 4.2: Tabela com valores de desempenho para contexto local usando todas as instâncias. A tabela 4.3 mostra os valores usando contexto de tópicos mais contexto local para todas as instâncias. Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP Precisão Abrangência Medida-F Precisão Abrangência Medida-F NB NB+L 93,62 93,17 82,97 93,17 87,98 93,17 SVM SVM+L 94,15 93,64 83,44 93,64 88,47 93,64 NB+A 93,87 88,34 91,02 SVM+A 94,37 88,81 91,51 63 NB+A+L 93,74 93,74 93,74 SVM+A+L 94,21 94,21 94,21 Tabela 4.3: Tabela com valores de desempenho para contexto de tópicos mais contexto local para todas as instâncias. A tabela 4.4 mostra os valores do Algoritmo A e B de (Nunes, 2007) e o Algoritmo A combinado com aglomerados e lematizador, os aglomerados usam contexto de tópicos e o classificador SVM. Estes valores foram calculados de novo para as condições de avaliação do presente trabalho, para todas as instâncias. Precisão Abrangência Medida-F Algoritmo A 94,31 83,58 88,62 Algoritmo B 94,30 94,30 94,30 Algoritmo A+A+L 94.36 94.36 94.36 Tabela 4.4: Algoritmos A e B de (Nunes, 2007) e Algoritmo A+A+L. Valores nas condições de avaliação do presente trabalho usando todas as instâncias. A tabela 4.5 motra os valores usando o contexto de tópicos apenas para as instâncias ambı́guas. Precisão Abrangência Medida-F Precisão Abrangência Medida-F NB NB+L 84,98 84,42 72,29 84,42 78,13 84,42 SVM SVM+L 85,45 84,81 72,68 84,81 78,55 84,81 NB+A 86,30 82,09 84,14 SVM+A 86,72 82,48 84,55 NB+A+L 85,79 85,79 85,79 SVM+A+L 86,19 86,19 86,19 Tabela 4.5: Tabela com valores de desempenho para contexto de tópicos, apenas instâncias ambı́guas. A tabela 4.6 mostra os valores usando o contexto local apenas para as instâncias ambı́guas. A tabela 4.7 mostra os valores usando contexto de tópicos mais contexto local apenas para as instâncias ambı́guas. A tabela 4.8 mostra os valores do Algoritmo A e B de (Nunes, 2007) e o Algoritmo A combinado com aglomerados e lematizador, os aglomerados usam contexto Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP Precisão Abrangência Medida-F Precisão Abrangência Medida-F NB NB+L 53,07 57,27 45,14 57,27 48,79 57,27 SVM SVM+L 85,18 84,59 72,46 84,59 78,31 84,59 NB+A 56,11 53,37 54,71 SVM+A 86,45 82,23 84,29 64 NB+A+L 57,07 57,07 57,07 SVM+A+L 85,93 85,93 85,93 Tabela 4.6: Tabela com valores de desempenho para contexto local, apenas instâncias ambı́guas. Precisão Abrangência Medida-F Precisão Abrangência Medida-F NB NB+L 84,09 83,66 71,53 83,66 77,30 83,66 SVM SVM+L 85,41 84,78 72,66 84,78 78,52 84,78 NB+A 85,48 81,30 83,34 SVM+A 86,66 82,43 84,49 NB+A+L 85,01 85,01 85,01 SVM+A+L 86,13 86,13 86,13 Tabela 4.7: Tabela com valores de desempenho para contexto de tópicos mais contexto local, apenas instâncias ambı́guas. de tópicos e o classificador SVM. Estes valores foram calculados de novo para as condições de avaliação do presente trabalho, apenas instâncias ambı́guas. Precisão Abrangência Medida-F Algoritmo A 85,81 72,99 78,88 Algoritmo B 86,36 86,36 86,36 Algoritmo A+A+L 86.50 86.50 86.50 Tabela 4.8: Algoritmos A e B de (Nunes, 2007) e Algoritmo A+A+L. Valores nas condições de avaliação do presente trabalho, apenas instâncias ambı́guas. 4.5.2 Estudo do espaço de resultados Vamos fazer nesta secção um estudo do espaço dos resultados, de forma a compreender melhor os resultados apresentados na secção anterior. Tamanho do conjunto de dados Como se pode observar no gráfico da Figura 4.3, e é ainda mais perceptivel no gráfico da Figura 4.4, a precisão em modelos com mais instâncias de treino é maior. O gráfico da Figura 4.5 mostra o desvio de padrão relativamente à precisão média dos anteriores, é de notar que com poucas instâncias de treino há um desvio maior em relação à média. Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 65 Figura 4.3: Precisão média por número de instâncias de treino nos modelos, só para instâncias ambı́guas. Poder-se-ia pôr a questão se com mais instâncias de treino, os resultados seriam melhores. Porém, como se observa no gráfico da Figura 4.6, em que se vê como evolui a precisão em média à medida que o número de instâncias é maior, conseguese ver que esta tende a estabilizar assimptoticamente mais ou menos a partir das 100 instâncias de treino por modelo. No extremo, com todas as 23919 instâncias de treino usadas, a precisão média acumulada atinge 85%, com desvio de padrão de 10%, para o algoritmo A, atinge 85%, com desvio de padrão de 11%, para o SVM, e atinge 83%, com desvio de padrão de 11% para o NB. Este facto pode indicar que um eventual aumento do corpus de treino não traria benefı́cios muito significativos à classificação e não alteraria de forma substancial a ordem relativa entre os classificadores. Isto significa que o tamanho dos dados de treino é suficiente para ter levado a efeito as experiências efectuadas. Distribuição do conjunto de dados Para compreender como evolui o desempenho dos diferentes algoritmos há que tomar em consideração a natureza do conjunto de dados. Em primeiro lugar, podemos observar no gráfico da Figura 4.7 que a frequência de formas verbais muito frequentes é baixa, isto é, há poucas formas muito frequentes. Em segundo lugar, há que ter em conta que as formas verbais mais frequentes Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 66 Figura 4.4: Precisão média por número de instâncias de treino nos modelos, com curva suavizada através de interpolação, só para instâncias ambı́guas. são normalmente as que têm menos possibilidades de flexão. Ver Figura 3.1, pag. 16. Assim, ao ler os gráficos das Figuras 4.3 e 4.4, tem de ser ter em conta que o espaço do problema diminui à medida que aumenta o número de instâncias de treino. Em terceiro lugar, verifica-se que dos vários traços de flexão possı́veis para cada forma verbal, cerca de 94% das ocorrências de formas verbais no corpus expressam o seu traço de flexão mais frequente no corpus (Branco et al., 2006). Este fenómeno de à partida um valor da classe a atribuir ser muito mais provável que os outros pode determinar os classificadores mais sofisticados a não ultrapassarem a heurı́stica de máxima verosimilhança. Importa também notar no gráfico da Figura 4.4, que a linha do classificador SVM, mais ou menos a partir das 10 instâncias de treino por modelo, segue junto à linha do algoritmo de máxima verosimilhança (Algoritmo A). Isto pode indicar que o classificador SVM não lida bem com a esparssez dos dados. Como vimos anteriormente, o contexto é representado por vectores de 0’s (ausência da palavra na frase) e 1’s (presença da palavra na frase). Quanto mais instâncias de treino há, maior vão ser os vectores, pois em princı́pio aumentam também o número de palavras de contexto que ocorrem no modelo. No entanto, o número médio de Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 67 Figura 4.5: Desvio de padrão por número de instâncias de treino nos modelos, com curva suavizada através de interpolação, só para instâncias ambı́guas. palavras por frase andará à volta do mesmo valor, fazendo com que os vectores tenham muitos 0’s e poucos 1’s, que possivelmente os 1’s nas instâncias de teste nem sempre correspondem a 1’s nas instâncias de treino, o que pode fazer com que o contexto deixe de pesar na classificação, caindo assim a atribuição para a classe mais frequente. Podemos atribuir o facto dos algoritmos de classificação mais sofisticados seguirem o algoritmo de máxima verosimilhança à estrutura especı́fica dos dados de treino. Reduzindo o tamanho do contexto Como foi visto nos gráficos apresentados, as curvas dos classificadores experimentados tendem para a curva do algoritmo de máxima verosimilhança, o que poderia indicar que a modelação de contexto não está a ajudar na decisão. Com isto em mente, tentámos usar outra modelação descrita nos trabalhos de DAP nos quais é apresentada uma modelação do contexto de tópicos com uma abordagem positiva, isto é, em que a informação a ter em conta em cada instância é apenas relativa à informação que ocorre nessa instância de teste a classificar. Assim, o número de atributos é bastante reduzido, os vectores serão bem mais pequenos, melhorando o tempo de processamento dos classificadores. Em (Escudero et al., 2000), o uso desta abordagem “positiva” melhora a taxa de Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 68 Figura 4.6: Precisão média acumulada à medida que aumenta o número de instâncias de treino, só para instâncias ambı́guas. acerto dos classificadores, em especial para o classificador EB de 43% para 62.1% no melhor dos casos, embora para o Naive Bayes não se note grande diferença, apenas 0.1% de melhoria. Em (Agirre e Edmonds, 2006) apenas se usa a abordagem “positiva” e como tal não nos permite fazer comparação entre as modelações. Realizámos novas experiências com base nesta abordagem “positiva” para o nosso problema. Estas experiências mostram porém que se obtém piores resultados: 91.17% de precisão para o Naive Bayes Simples e 92.72% para o SVM Simples, para todas as instâncias. Por questões de facilidade de implementação, para esta modelação usou-se o classificador SMO do Weka, que corresponde à implementação do SVM no Weka. Aumentando a evidência no contexto Também foram feitas experiências tendo em conta apenas o lema das palavras de contexto, em vez da forma flexionada, num tentativa de reduzir a esparssez de dados. Os resultados no entanto pioraram ligeiramente para o Naive Bayes Simples, obtendo-se 93.93% de precisão, e melhora ligeiramente para o SVM Simples, com 94.27% de precisão, tendo em conta todas as instâncias e usando o contexto de tópicos. Ainda assim continuamos com valores abaixo dos valores do Algoritmo A. O facto de os resultados piorarem, pode significar que a modelação de contexto Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 69 Figura 4.7: Número de modelos por número de instâncias de treino no modelo. pode estar a pesar mais na tarefa de classificação, sendo que esta influencia negativamente na classificação em mais instâncias que a modelação anterior. Resumindo, temos três pontos que convem salientar. Como foi dito nesta secção, a frequência das formas verbais mais frequentes é muito baixa, Figura 4.7, o que está em linha com o que é comum encontrar em problemas DAP. Contudo, para este nosso problema especı́fico, as formas verbais mais frequentes, ao contrário do que é comum noutros problemas de DAP (Manning e Schütze, 1999, p. 28), são as que têm menor ambiguidade, Figura 3.1. O terceiro ponto também já foi referido e é possivelmente especı́fico deste problema: para cada forma ambı́gua no léxico, um dos traços é muito mais frequente que os restantes. Estas caracterı́sticas especı́ficas podem explicar porque não se conseguiu ultrapassar o algoritmo base de atribuir a flexão mais frequente, utilizando abordagens mais sofisticadas que têm sucesso em problemas de DAP. 4.5.3 Comparação com trabalhos anteriores Comparando com os resultados anteriores para o mesmo problema temos: Algoritmo A de Nunes (2007) Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 70 Repetindo a execução deste algoritmo para as mesmas condições de avaliação das experiências atrás descritas e levando em consideração todas as instâncias, ambı́guas e não ambı́guas, obtemos uma precisão de 94.31% e uma abrangência de 83.58%, o que resulta numa medida-f de 88.62%. Considerando os algoritmos base comparáveis a este, encontramos como resultados de medida-f: 88.31% para o Naive Bayes, e de 88.49% para o SVM com contexto de tópicos; 76.29% para o Naive Bayes e 88.39% para SVM com contexto local; e 87.98% para o Naive Bayes e 88.47% para o SVM usando ambas as modelações de contexto em conjunto. Como se pode ver, os valores são todos inferiores, ainda que bastante próximos, à excepção do Naive Bayes usando contexto local, que fica bastante abaixo. Assim, não consideramos para já que haja grandes melhorias ou vantagens em usar um dos novos algoritmos testados neste trabalho em vez dos algoritmos baseados na heurı́stica de máxima verosimilhança. Na repetição de experiência com o algoritmo A que realizámos, os traços foram tidos em conta juntamente com a etiqueta morfossintáctica, tal como tem sido feito para as outras experiências neste trabalho. Algortimo B de Nunes (2007) Repetindo a execução deste algoritmo nas mesmas condições de avaliação das experiências descritas nas secções anteriores e levando em consideração todas as instâncias, ambı́guas e não ambı́guas, obtemos uma medida-f de 94.30%. Para efeitos de contraste com os novos algoritmos equiparáveis agora testados, usamos as versões melhores para cada modelação de contexto, com as melhores marcas para a abrangência, isto é as versões de algoritmo + aglomerados + lematizador. Assim, temos uma medida-f de 94.07% para o Naive Bayes e 94.23% para o SVM usando contexto de tópicos; 82.07% para o Naive Bayes e 94.12% para o SVM usando contexto local, e finalmente 93.74% para o Naive Bayes e 94.21% para o SVM usando ambas as modelações de contexto em conjunto. O algoritmo baseado em máxima verosimilhança continua portanto a ser comparativamente o algoritmo com melhor desempenho. O algoritmo C de Nunes (2007) para além de ter tido piores resultados nas condições de avaliação de Nunes (2007), como já foi referido na secção 3.3, não é adequado a realizar a totalidade do problema em questão, como tal não o iremos repetir. De notar que sendo os valores de precisão acima bastante elevados, isto pode levar a achar que se está perto de um limite para esta tarefa. Porém, se retirarmos os verbos não ambı́guos no corpus, temos apenas uma precisão de 85.81% para o Algoritmo A e 86.36% para o Algoritmo B. O que deixa ainda uma boa margem a melhorar. Também se observa que, com excepção do uso de contexto local para o Naive Capı́tulo 4. Desambiguação de flexão verbal: uma abordagem DAP 71 Bayes, a utilização de aglomerados conjuntamente com o lematizador é melhor que usar simplesmente a heurı́stica do Algoritmo B para as formas que não ocorrem no treino, ou seja de complementar o trabalho dos classificadores, expandindo a sua abrangência apenas à custa do trabalho do lematizador. Neste aspecto, encontramos aqui um passo em frente relativamente ao que foi obtido por Nunes (2007), o que levou à criação do algoritmo A+A+L que supera todos os outros, com uma medida-f de 86.50%, com apenas instâncias ambı́guas, e 94.36%, com todas as instâncias. Comparação com trabalhos que inspiraram esta abordagem: Para a tarefa DAP em geral, tanto (Escudero et al., 2000) como Agirre e Edmonds (2006), apresentam classificadores cujo desempenho ultrapassa os valores base respectivos. Em (Escudero et al., 2000) o valor base 48.7% é ultrapassado pelos 64.8% com o Naive Bayes, e pelos 68.8% com o Exemplar-Based approach (EB), sendo que o Naive Bayes obtém melhores resultados apenas com contexto local e o EB com o conjunto das duas modelações do contexto, embora a diferença seja pouca. Em (Agirre e Edmonds, 2006), e só para a DAP dos verbos, o valor base é de 46.49%, que é ultrapassado pelos 60.18% com o Naive Bayes, e pelos 67.54% com o SVM, usando uma modelação de contexto local combinado com contexto de tópicos. Há que ter em conta que, em relação aos trabalhos de DAP apresentados em cima, a natureza do problema, como já foi referido, é diferente e uma comparação directa pode não ser adequada. Para além disso, o corpus que se usa também é diferente. Posto isto, o nosso valor base de 85.81% de precisão usando o algoritmo A sobre apenas instâncias ambı́guas, é significativamente mais elevado que os valores base dos respectivos trabalhos de DAP mencionados e o melhor método usado neste trabalho, SVM com contexto de tópicos,26 com 85.45%, apesar de não passar este valor base, está acima dos valores alcançados nos trabalhos de DAP mencionados. 26 De forma a ser comparável, só se têm em conta os algoritmos simples, pois nos trabalhos de DAP não há processamento para tratar de formas que não ocorrem no treino Capı́tulo 5 Conclusão e trabalho futuro Numa tentativa de se procurar um classificador que conseguisse melhores resultados para a desambiguação da flexão verbal em contexto que o valor base, dado pelo algoritmo de atribuição da flexão mais frequente,1 foram feitas várias experiências explorando abordagens que são comumente adoptadas na literatura para a tarefa de desambiguação da acepção da palavra em geral, abordagens baseadas no classificador Naive Bayes e no classificador SVM. De igual forma usaram-se duas modelações de contexto que também são comuns, contexto de tópicos e contexto local, e foram ainda feitas algumas experiências com variações dessas modelações. Usando o contexto de tópicos obtiveram-se resultados bastante próximos do valor base, mas ainda assim abaixo do mesmo. Com o contexto local os resultados obtidos são piores que com o contexto de tópicos. Quando se juntam as duas modelações de contexto, os resultados encontram-se abaixo da modelação com contexto de tópicos, e acima da modelação com contexto local. O classificador SVM fica sempre à frente do classificador Naive Bayes. No que diz respeito ao alargamento de abrangência e na tentativa de classificar instâncias fora dos dados de treino, verificamos que o uso daquilo que designámos por aglomerados de potencial de flexão em conjunção com o lematizador supera o simples uso do lematizador. Em nenhum caso se conseguiu porém melhores resultados do que os resultados dados pelo algoritmo que definia o valor base, o algoritmo de máxima verosimilhança. Avançou-se com uma possı́vel explicação para esta circunstância. Na composição do corpus, cerca de 94% das ocorrências das formas verbais expressam o seu traço de flexão mais frequente no corpus, e formas verbais mais frequentes expressam um número menor de traços de flexão. Fica a faltar fazer em trabalho futuro uma descrição detalhada dos casos em que os algortimos falham, de forma a tentar perceber melhor quais se adequam melhor 1 Referido ao logo deste trabalho como algoritmo de máxima verosimilhança. 72 Capı́tulo 5. Conclusão e trabalho futuro 73 em situações diferentes, podendo até virem a ser combinados. Uma escolha mais pormenorizada das instâncias de treino e teste pode também ajudar a perceber os melhores métodos a usar, e em conjunto com uma análise do contexto de cada frase, perceber de que forma se pode usar o contexto mais eficientemente. Bibliografia Agirre, Eneko e Philip Edmonds, editores, 2006. Word Sense Disambiguation Algorithms and Applications. Springer. ISBN 978-1-4020-4808-4. Bergström, Magnus e Neves Reis, 2004. Prontuário Ortográfico e Guia da Lı́ngua Portugesa. Editorial notı́cias, 47a edição edição. ISBN 972-46-0840-9. Branco, António, Francisco Costa, e Filipe Nunes, 2007. The processing of verbal inflection ambiguity: characterization of the problem space. In In Actas do XXI Encontro Anual da Associação Portuguesa de Linguı́stica. Branco, António, Filipe Nunes, e João Silva, 2006. Verb analysis in an inflective language: Simpler is better. Relatório técnico, University of Lisbon. Brants, Thorsten, 2000. TnT — a statistical part-of-speech tagger, version 2.2. In Proceedings of the 6th Applied Natural Language Processing and 1st North American Chapter of the Association of Computational Linguistics. págs. 224–231. Camarillo, Gonzalo e Miguel-Angel Garcia-Martin, 2005. The 3G IP Multimedia Subsystem (IMS): Merging the Internet and the Cellular Worlds. John Wiley and Sons Ltd, second edição. Chrupala, Grzegorz, 2006. Simple data-driven context-sensitive lemmatization. In Proceedings of the Sociedad Española para el Procesamiento del Lenguaje Natural (SEPLN) 2006. págs. 121–127. Crammer, Koby e Yoram Singer, 2001. On the algorithmic implementation of multiclass kernel-based vector machines. Journal of Machine Learning Research, 2:265–292. Cunha, Celso e Lindley Cintra, 1986. Nova Gramática do Português Contemporâneo. Edições João Sá da Costa, 3a edição. Escudero, Gerard, Lluı́s Màrquez, e German Rigau, 2000. Naive bayes and exemplar-based approaches to word sense disambiguation revisited. In Proceedings of the 14th European Conference on Artificial Intelligence, ECAI’2000. págs. 421– 425. 74 Bibliografia 75 John, George H. e Pat Langley, 1995. Estimating continuous distributions in bayesian classifiers. In Proceedings of the the Eleventh Conference on Uncertainty in Artificial Intelligence. págs. 338–345. Manning, Christopher e Hinrich Schütze, 1999. Foundations of Statistical Natural Language Processing. The MIT Press, 1st edição. ISBN 0-262-13360-1. Mitchell, Tom, 1997. Machine Learning. McGraw Hill. Moreno-Sandoval, Antonio e José M. Guirao, 2006. Morpho-syntactic tagging of the spanish c-oral-rom corpus — methodology, tools and evaluation. In Spoken Language Corpus and Linguistic Informatics. John Benjamins, págs. 199–218. Morgan, Tony, 2002. Business Rules and Information Systems: Aligning IT with Business Goals. Addison Wesley Professional. Nunes, Filipe, 2007. Verbal Lemmatization and Featurization of Portuguese with Ambiguity Resolution in Context. Tese de Mestrado, Universidade de Lisboa, Portugal. Pederson, Ted e Rada Mihalcea, 2005. Advances in word sense disambiguation — tutorial dado como parte da ACL. Pinto, José Manuel Castro, 2004. Novo Prontuário Ortográfico. Plátano Editora, 5a edição edição. ISBN 972-770-002-0. Ratnaparkhi, Adwait, 1996. A maximum entropy model for part-of-speech tagging. In Proceedings of the 1st Conference on Empirical Methods in Natural Language Processing. págs. 133–142. Silva, João Ricardo, 2007. Shallow Processing of Portuguese: From Sentence Chunking to Nominal Lemmatization. Tese de Mestrado, Universidade de Lisboa, Portugal. Storkey, Amos, 2001. Aula intitulada: Learning from data 1 - naive bayes. Vapnik, Vladimir, 1998. Statistical Learning Theory. John Wiley.