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.
Download

Repositório da Universidade de Lisboa