classificador morfolÓgico para o portuguÊs...
Post on 28-Nov-2018
215 Views
Preview:
TRANSCRIPT
CLASSIFICADOR MORFOLÓGICO PARA O PORTUGUÊS BRASILEIRO
Pedro Volpi Nacif
Projeto de Graduação apresentado ao Curso
de Engenharia de Computação e Informação
da Escola Politécnica, Universidade Federal
do Rio de Janeiro, como parte dos requisitos
necessários à obtenção do título de
Engenheiro.
Orientador: Fernando Gil Vianna Resende
Junior
Rio de Janeiro
Setembro de 2017
CLASSIFICADOR MORFOLÓGICO PARA O PORTUGUÊS BRASILEIRO
Pedro Volpi Nacif
PROJETO DE GRADUAÇÃO SUBMETIDO AO CORPO DOCENTE DO CURSO DE
ENGENHARIA DE COMPUTAÇÃO E INFORMAÇÃO DA ESCOLA POLITÉCNICA DA
UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS
NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE ENGENHEIRO DE
COMPUTAÇÃO E INFORMAÇÃO.
Examinado por:
____________________________________________
Prof. Fernando Gil Vianna Resende Junior, Ph.D.
____________________________________________
Prof. Flávio Luis de Mello, D.Sc.
____________________________________________
Profa. Marta Lima de Queirós Mattoso, D.Sc.
RIO DE JANEIRO, RJ - BRASIL
SETEMBRO de 2017
iii
Nacif, Pedro Volpi CLASSIFICADOR MORFOLÓGICO PARA O
PORTUGUÊS BRASILEIRO/ Pedro Volpi Nacif. – Rio de Janeiro: UFRJ/ Escola Politécnica, 2017.
IX, 64 p.: il.; 29,7 cm.
Orientador: Fernando Gil Vianna Resende Junior
Projeto de Graduação – UFRJ/ Escola Politécnica/ Curso de Engenharia de Computação e Informação, 2017.
Referências Bibliográficas: p. 60-61.
1. Introdução 2. Fundamentos Teóricos 3. Proposta de Implementação 4. Experimentos e Resultados 5. Conclusão e Trabalhos Futuros.
I. Gil Vianna Resende Junior, Fernando II. Universidade Federal do Rio de Janeiro, Escola Politécnica, Curso de Engenharia de Computação e Informação. III. Título.
iv
AGRADECIMENTOS
Agradeço, primeiramente, aos meus pais, que sempre primaram pela minha educação.
Menção honrosa ao colega e amigo, Luiz Felipe Vecchietti, por toda paciência e
solicitude em me ajudar neste trabalho. Desejo-lhe toda sorte neste novo desafio. Espero que
nossos caminhos tornem a se cruzar.
Obrigado ao povo brasileiro, por custear meus estudos.
Respeitosamente, não posso deixar de agradecer ao meu orientador, o ilustríssimo
professor Fernando Gil, por todo o incentivo e pela a oportunidade de ser seu orientando.
Imprescindível à conclusão deste trabalho foi a presença de meus primos e meus
amigos em minha vida, a quem eu sou eternamente grato pelo companheirismo.
Mormente, gostaria de agradecer à minha namorada, Dra. Aline Papazis, pelo carinho,
apoio e inspiração para alcançar meus objetivos. Não tenho nada senão admiração pela sua
inteligência, encanto por sua beleza e fascínio por sua determinação implacável.
v
RESUMO
O presente trabalho propõe-se a estudar o desempenho de um classificador de Part-of-
Speech (Partes do Discurso) para o português brasileiro baseado no modelo do Perceptron
Ponderado, encontrado no toolkit NLTK (Natural Language Toolkit). O objetivo é determinar
a relevância das features utilizadas como variáveis na implementação do NLTK e avaliar a
influência de novas features. Para tanto, realizamos uma série de testes, tanto removendo
gradativamente as features quanto incrementando o conjunto de features utilizado e, em um
caso, modificando a definição de uma delas. A análise realizada mostra que não foi possível
obter um conjunto de features cujo desempenho do classificador fosse objetivamente melhor
que a implementação do NLTK. O melhor resultado obtido é de (95.1 ± 0.1)% para o escore
F1 da implementação padrão do NLTK e das configurações dos testes variantes B, C, D, P e
Q. Além disso, para a base de dados utilizada, as features “(i+2)-ésima palavra”, “(i-2)-ésima
palavra”, “sufixo da (i-1)-ésima palavra” e “sufixo da (i+1)-ésima palavra” não influem de
forma significativa no classificador, tendo um desempenho final dentro de um desvio padrão
do desempenho da implementação padrão do NLTK. Por outro lado, as features “(i+1)-ésima
palavra”, a “(i-1)-ésima tag” e o “bias”, para a mesma base, têm grande influência no
desempenho total, provocando as respectivas variações absolutas de (1.4 ± 0.2)%, (2.8 ±
0.4)%, (1.4 ± 0.4)% no escore F1 do teste anterior para o teste em que foram removidas.
vi
ABSTRACT
This paper proposes to study the performance of a Part-of-Speech classifier for
Brazilian Portuguese based on the Averaged Perceptron model, found in the NLTK (Natural
Language Toolkit). The objective is to determine the relevance of the features used as
variables in the NLTK implementation and to evaluate the influence of new features. To do
so, we perform a series of tests, both by gradually removing the features and by increasing the
set of features used and in one case by modifying the definition of one of them. The analysis
showed that it was not possible to obtain a set of features whose performance of the classifier
was objectively better than the implementation of NLTK. The best result obtained is (95.1 ±
0.1)% for the F1 score of the standard NLTK implementation and the configurations of the
variant tests B, C, D, P and Q. In addition, for the database used, the features "(i+2)-th word",
"(i-2)-th word", "suffix of (i-1)-th word" and "suffix of (i+1)-th word" do not significantly
influence the performance of the classifier, having a final performance within a standard
deviation of the standard NLTK implementation. On the other hand, the features "(i+1)-th
word", "(i-1)-th tag" and "bias", for the same database, have a great influence on the total
performance, causing the respective absolute variations of (1.4 ± 0.2)%, (2.8 ± 0.4)%,
(1.4 ± 0.4)% on the F1 score from the previous test to the test in which they were removed.
vii
LISTA DE ABREVIATURAS E SIGLAS
CHPTB Corpus Histórico do Português Tycho Brahe
NLTK Natural Language Toolkit
POS Part-of-Speech
PTBR Português Brasileiro
RSLP Removedor de Sufixos da Língua Portuguesa
viii
SUMÁRIO
1 INTRODUÇÃO ix
1.1 MOTIVAÇÃO 10
1.2 OBJETIVOS 10
1.3 DESCRIÇÃO 11
2 FUNDAMENTOS TEÓRICOS 12
2.1 INTRODUÇÃO 12
2.2 MODELO 12
2.2.1 FLUXOGRAMA GERAL 12
2.2.2 CONTEXTO 13
2.2.3 DICIONÁRIO DE TAGS 14
2.2.4 PERCEPTRON 14
2.2.5 FEATURES 16
2.3 MÉTRICAS 17
2.3.1 ACURÁCIA 18
2.3.2 PRECISÃO 18
2.3.3 RECORDAÇÃO 18
2.3.4 ESCORE F1 18
2.3.5 MATRIZ DE CONFUSÃO 18
3 PROPOSTA DE IMPLEMENTAÇÃO 20
4 EXPERIMENTOS E RESULTADOS 23
4.1 A BASE DE DADOS 23
4.2 RESUMO DOS TESTES REALIZADOS 25
4.3 DESEMPENHOS PARA DIFERENTES FRACIONAMENTOS TREINO/TESTE 26
4.4 TREINOS E TESTES 27
4.4.1 TREINO E TESTE VARIANTE A 28
4.4.2 TREINO E TESTE VARIANTE B 30
4.4.3 TREINO E TESTE VARIANTE C 32
4.4.4 TREINO E TESTE VARIANTE D 33
4.4.5 TREINO E TESTE VARIANTE E 35
ix
4.4.6 TREINO E TESTE VARIANTE F 36
4.4.7 TREINO E TESTE VARIANTE G 38
4.4.8 TREINO E TESTE VARIANTE H 39
4.4.9 TREINO E TESTE VARIANTE I 41
4.4.10 TREINO E TESTE VARIANTE J 42
4.4.11 TREINO E TESTE VARIANTE K 44
4.4.12 TREINO E TESTE VARIANTE L 46
4.4.13 TREINO E TESTE VARIANTE M 48
4.4.14 TREINO E TESTE VARIANTE N 50
4.4.15 TREINO E TESTE VARIANTE O 51
4.4.16 TREINO E TESTE VARIANTE P 52
4.4.17 TREINO E TESTE VARIANTE Q 54
4.4.18 TREINO E TESTE VARIANTE R 55
5 CONCLUSÃO E TRABALHOS FUTUROS 57
REFERÊNCIAS 60
10
1 INTRODUÇÃO
1.1 MOTIVAÇÃO
Muito trabalho tem sido feito na área de classificação de Partes do Discurso (POS) em
vários idiomas. Entretanto, a maioria das pesquisas ainda se concentra na língua inglesa. Os
modelos mais utilizados costumam combinar regras geradas manualmente com etapas de
aprendizado de máquina, mas nem todos são de código aberto.
Os principais classificadores morfológicos que existem para o PTBR são:
● Palavras – um classificador morfossintático baseado em regras; tem 99% de acurácia
para classificação morfológica, entretanto o código é fechado (BICK, 2000);
● AeliusHunPos – um classificador baseado em Modelos de Markov Escondidos e
conjuntos de regras criadas manualmente (ALENCAR, 2010), de código aberto e é
implementado usando o Natural Language Toolkit (NLTK). Tem acurácia de 96.35%,
usando como base de treino o corpus CHPTB. Já a base de teste são os primeiros 8
capítulos do romance Luzia-Homem, de Domingos Olímpio, que possui cerca de 18
mil tokens (ALENCAR, 2011);
● MXPOST – um classificador baseado em máxima entropia, de código aberto.
Treinado para português com a base macmorpho (TEIXEIRA; LIMA; OLIVEIRA;
QUARESMA, 2008) ele tem 96.30% de acurácia.
Ao passo que a classificação de POS envolve a classificação sintática assim como a
morfológica, o presente trabalho se propõe estudar apenas a questão da classificação
morfológica.
Assim sendo, propõe-se treinar para a língua portuguesa um classificador morfológico
com desempenho, minimamente, tão acurado quanto a implementação padrão do NLTK na
base macmorpho, de código aberto e sem dependência de conjunto de regras criadas
manualmente.
1.2 OBJETIVOS
11
O principal objetivo deste trabalho é desenvolver um classificador morfológico de
código aberto, sem a utilização de conjunto de regras, baseado na implementação do
Perceptron Ponderado do NLTK. Com isso, os seguintes objetivos são traçados:
● Treinar para o PTBR, utilizando o corpus macmorpho, o classificador morfológico do
NLTK baseado no Perceptron Ponderado e obter suas métricas de desempenho;
● Comparar o desempenho do mesmo para diferentes configurações de treino/teste da
base macmorpho e, com base no resultado, decidir uma configuração a ser utilizada
para os demais testes;
● Comparar a influência de diferentes features no desempenho do classificador,
excluindo gradativamente as que já vem com o toolkit e adicionando novas features,
no intuito de obter um desempenho melhor que a da implementação padrão;
● Interpretar os resultados obtidos pelo classificador através de sua matriz de confusão e
as métricas de precisão, recordação e escore F1.
1.3 DESCRIÇÃO
O restante desta monografia se organiza da seguinte forma: o capítulo 2 apresenta os
fundamentos teóricos do presente trabalho. O capítulo 3 esclarece no que o classificador
resultante deste trabalho difere da implementação padrão obtida do NLTK. O capítulo 4
explica detalhadamente os experimentos realizados e os resultados obtidos. O quinto e último
capítulo apresenta as conclusões obtidas e possíveis trabalhos futuros.
Ao final, nos apêndices é possível encontrar a relação entre as tags utilizadas no
corpus macmorpho e sua classe morfológica.
12
2 FUNDAMENTOS TEÓRICOS
2.1 INTRODUÇÃO
Parts-of-Speech (i.e. Partes do Discurso) são categorias de palavras ou, de forma mais
genérica, itens léxicos, que têm propriedades gramaticais similares. Palavras que são da
mesma parte do discurso normalmente se comportam de forma similar em termos de
sintaxe—elas têm papéis similares dentro da estrutura gramatical dos períodos—e às vezes
morfologia, o que significa que elas se submetem à inflexão por regras similares. As classes
consideradas pelos classificadores são as tags (i.e. etiquetas) de Parts-of-Speech.
2.2 MODELO
O modelo implementado pelo NLTK funciona como se segue.
2.2.1 FLUXOGRAMA GERAL
O funcionamento do classificador baseado no Perceptron Ponderado do NLTK
obedece o seguinte fluxograma:
FIGURA 1 – FLUXOGRAMA DE CLASSIFICAÇÃO DE UMA PALAVRA1
1 Em todo este trabalho refere-se como “palavra” os tokens do corpus macmorpho, que incluem caracteres não alfanuméricos como pontuação e símbolos de moedas.
13
Fonte: Elaborado pelo autor.
2.2.2 CONTEXTO
O contexto de uma palavra consiste de duas listas: a frase em que está inserida e as
tags das palavras precedentes. Esta última é inicializada como uma lista vazia na classificação
de uma frase e vai sendo preenchida à medida que o classificador vai retornando as tags, seja
pelos perceptrons, seja pelo dicionário. Ao criar a lista de palavras o programa chama uma
função “normalize()” que transforma todas as letras em minúsculas.
Além disso, os códigos “__START1__”, “__START2__”, “__END1__” e
“__END2__” são utilizados como um preenchimento para, por exemplo, caso uma feature
necessite de tags antes ou depois da primeira e da última palavras, respectivamente.
Por exemplo, ao processar a frase “Um exemplo.”, o contexto inicialmente será:
𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓 = [ __𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆1__, __𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆2__, "𝑢𝑢𝑢𝑢", "𝑓𝑓𝑒𝑒𝑓𝑓𝑢𝑢𝑒𝑒𝑒𝑒𝑒𝑒", ". ", __𝐸𝐸𝐸𝐸𝐸𝐸1__, __𝐸𝐸𝐸𝐸𝐸𝐸2__ ]
14
𝑡𝑡𝑓𝑓𝑡𝑡𝑓𝑓 = [ __𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆1__, __𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆2__ ]
E à medida que as palavras forem sendo classificadas, o resultado vai sendo
alimentado para a lista de tags.
2.2.3 DICIONÁRIO DE TAGS
O dicionário de tags é gerado durante o treinamento e consiste nas palavras que só
possuem uma grande probabilidade de ter apenas uma tag correspondente.
Na fase de treino conta-se para cada palavra a quantidade de vezes que ela
corresponde à cada tag. São incluídas no dicionário todos os pares (palavra, tag) cuja palavra
ocorra mais de 20 vezes na base de treino, e que corresponda a apenas uma tag em mais de
97% das vezes.
2.2.4 PERCEPTRON
Um Perceptron é um classificador binário para aprendizado supervisionado (DAUMÉ
III, 2012). Ele possui um vetor de pesos 𝑤𝑤 = (𝑤𝑤1,𝑤𝑤2, . . . ,𝑤𝑤𝐷𝐷) e recebe um vetor de entrada
𝑒𝑒 = (𝑒𝑒1 , 𝑒𝑒2, . . . , 𝑒𝑒𝐷𝐷) que representam as 𝐸𝐸 features que modelam o problema. Assim, realiza
o produto escalar entre seus pesos e o vetor de entrada para computar sua ativação:
𝑓𝑓 = �𝑤𝑤𝑖𝑖𝑒𝑒𝑖𝑖
𝐷𝐷
𝑖𝑖=1
Numa implementação naive, se a ativação é maior que zero, o Perceptron classifica
um evento positivo, caso contrário classifica um evento negativo. Para conseguir um grau
maior de generalidade, objetiva-se que, caso a ativação seja maior que um certo limiar 𝜃𝜃, o
classificador retornará um evento positivo e, caso contrário, um negativo. Isto pode ser
alcançado incluindo-se um termo independente 𝑏𝑏 chamado “bias” (i.e. viés) à ativação do
Perceptron:
15
𝑓𝑓 = �𝑤𝑤𝑖𝑖𝑒𝑒𝑖𝑖
𝐷𝐷
𝑖𝑖=1
+ 𝑏𝑏
Os pesos do Perceptron podem ser calibrados segundo uma série de algoritmos.
Normalmente, durante a fase de treino atualiza-se o peso 𝑤𝑤𝑖𝑖 somando-se o produto da feature
𝑒𝑒𝑖𝑖,𝑗𝑗 (i.e. i-ésima feature do j-ésimo vetor de entrada) com a diferença entre o valor desejado 𝑑𝑑𝑗𝑗
e o valor previsto 𝑦𝑦𝑗𝑗:
𝑤𝑤𝑖𝑖: = 𝑤𝑤𝑖𝑖 + (𝑑𝑑𝑗𝑗 − 𝑦𝑦𝑗𝑗)𝑒𝑒𝑖𝑖,𝑗𝑗
Já o Perceptron Ponderado consiste em um Perceptron cujos pesos são ponderados
pela quantidade de iterações que permanecem inalterados (DAUMÉ III, 2012). Os valores dos
pesos são atualizados em ±1 conforme a corretude da previsão e é guardado um somatório
total de todos os pesos vezes o número de iterações que sobreviveram para a ponderação. Ao
final do treinamento, o valor do peso é o somatório desses totais de peso vezes duração
dividido pelo número total de iterações.
Cada tag do corpus possui seu próprio Perceptron Ponderado, e decide-se a tag de uma
palavra passando para todos os Perceptrons o vetor de features desta e retornando a tag que
tiver o Perceptron com a maior ativação.
FIGURA 2 – CONJUNTO DE PERCEPTRONS PONDERADOS
16
Fonte: Elaborado pelo autor.
Inicialmente, o Perceptron não possui memória de feature alguma. Após o treino, o
Perceptron armazena um registro das features mais vistas no conjunto de dados. Cada palavra
de uma frase de entrada possui ou não uma feature dado o contexto. Se a palavra possui a
feature o valor desta é 1; caso contrário o valor é 0.
Caso os Perceptrons não tenham features, o classificador retorna, por padrão da
função 𝑓𝑓𝑓𝑓𝑡𝑡 𝑢𝑢𝑓𝑓𝑒𝑒(𝑆𝑆), o primeiro elemento do conjunto ordenado. Como a ordem
implementada foi a alfabética, a tag retornada será o ADJ.
2.2.5 FEATURES
Para o problema de classificação de POS, tipicamente considera-se um conjunto
extremamente esparso de features (HONNIBAL, 2013). Quando o classificador recebe uma
17
frase 𝑓𝑓 = 𝑒𝑒1 𝑒𝑒2 𝑒𝑒3 . . . 𝑒𝑒𝑁𝑁 de palavras, cada palavra tem um conjunto de features que a
caracteriza.
Dada uma frase 𝑓𝑓, para a i-ésima palavra com 𝑖𝑖 ∈ {1,2,3, . . . ,𝐸𝐸}, os identificadores das
features que o NLTK usa são:
● Bias;
● A tag da palavra anterior;
● A tag da palavra anterior à anterior;
● A tag da palavra anterior seguida da tag da anterior da anterior;
● O sufixo2 da i-ésima palavra;
● A própria i-ésima palavra;
● A tag da palavra anterior seguida da i-ésima palavra;
● A palavra anterior;
● O sufixo da palavra anterior;
● A palavra posterior;
● O sufixo da palavra posterior;
● A palavra seguinte da posterior.
Uma feature é composta por uma cadeia de caracteres que representa seu identificador
concatenado com uma cadeia de caracteres que representa seu valor. Por exemplo, dada uma
frase 𝑓𝑓, caso a i-ésima palavra seja “exemplo”, o modelo armazenará a feature “word_i
exemplo”, pois a cadeia de caracteres que representa o identificador da i-ésima palavra é
“word_i”.
Ao final do treino, as features cujos pesos sejam próximos de zero (até a terceira casa
decimal) são apagadas, a fim de evitar desperdício de espaço de armazenamento com aquelas
que não influenciam na classificação.
2.3 MÉTRICAS
As métricas utilizadas foram a acurácia, a precisão, a recordação, escore F1 e a matriz
de confusão. Para classificadores não binários estas são as métricas mais utilizadas. Para cada
2 A implementação do classificador do NLTK obtém o sufixo de uma palavra pegando as três últimas letras desta.
18
tag pode-se considerar um classificador binário, mas para o conjunto de todas as tags, as
métricas totais são médias das métricas de cada tag ponderadas pelas suas quantidades.
2.3.1 ACURÁCIA
A acurácia é calculada como a fração de instâncias classificadas corretamente dividido
por todas as instâncias vistas. Ou seja, é o número de verdadeiros positivos dividido pelo total
de amostras.
2.3.2 PRECISÃO
A precisão é a fração de verdadeiros positivos por todas as instâncias classificadas
como positivas.
2.3.3 RECORDAÇÃO
A recordação é a fração de verdadeiros positivos por todas instâncias que são de fato
positivas.
2.3.4 ESCORE F1
O escore F1 é a média harmônica da precisão e da recordação:
𝐹𝐹1 = 2𝑒𝑒𝑓𝑓𝑓𝑓𝑝𝑝𝑖𝑖𝑓𝑓𝑖𝑖𝑒𝑒𝑝𝑝 × 𝑓𝑓𝑓𝑓𝑝𝑝𝑓𝑓𝑒𝑒𝑒𝑒𝑒𝑒𝑓𝑓𝑓𝑓𝑝𝑝𝑖𝑖𝑓𝑓𝑖𝑖𝑒𝑒𝑝𝑝 + 𝑓𝑓𝑓𝑓𝑝𝑝𝑓𝑓𝑒𝑒𝑒𝑒
2.3.5 MATRIZ DE CONFUSÃO
19
A matriz de confusão mostra uma subdivisão mais detalhada de classificações corretas
e incorretas. Cada linha da matriz de confusão representa o valor verdadeiro das tags na fase
de teste, e cada coluna o valor que o classificador retornou. Ou seja, de maneira geral, uma
célula (𝑡𝑡𝑓𝑓𝑡𝑡𝑖𝑖, 𝑡𝑡𝑓𝑓𝑡𝑡𝑗𝑗) representa com que frequência a 𝑡𝑡𝑓𝑓𝑡𝑡𝑖𝑖 foi confundida com a 𝑡𝑡𝑓𝑓𝑡𝑡𝑗𝑗. Quando
𝑖𝑖 = 𝑗𝑗 tem-se a acurácia.
Para este trabalho o cálculo da matriz de confusão foi realizado cumulativamente para
cada subdivisão de treino e teste. E não fazendo uma média de cada iteração.
20
3 PROPOSTA DE IMPLEMENTAÇÃO
A implementação encontrada no NLTK possui um conjunto de features que se
pretende otimizar. Ela é baseada no trabalho de Honnibal (2013), que não apresenta critérios
objetivos para se determinar as features, tampouco uma justificativa explícita para as features
escolhidas. Portanto o presente trabalho ambiciona estudar a influência da variação do
conjunto das features no código do NLTK para encontrar uma configuração com melhor
desempenho do que o atual. Por fim, a implementação final compreenderá o conjunto de
features que tiver o melhor desempenho, medido pelo escore F1. A acurácia é utilizada, com
algumas ressalvas (DESCOINS, 2013), para comparar casos em que os escores F1 de
diferentes configurações são congruentes, ou seja, cujos intervalos de confiança se
sobrepõem.
Considerando-se também a possibilidade de features existentes terem uma
contribuição negativa para o desempenho, faz-se uma análise de sensibilidade de variáveis. A
influência de cada feature atualmente presente no modelo poderá ser determinada em uma
série de testes, em que cada um destes cumulativamente remove uma ou mais features,
observando a variação no desempenho geral e de cada uma das tags. Caso a remoção de uma
feature aumente o desempenho geral, a configuração resultante será salva.
Feito isso, uma segunda bateria de testes será feita em cada configuração do modelo
que apresente desempenho melhor que a padrão. Esta segunda fase consiste do acréscimo de
novas features que possam melhorar o desempenho. Caso nenhuma feature removida
aprimore o desempenho, esta fase será executada apenas na implementação padrão do NLTK.
FIGURA 3 – PROPOSTA DE IMPLEMENTAÇÃO
21
Fonte: Elaborado pelo autor.
Por fim, far-se-á uma modificação em como o modelo obtém todas as features que
envolvam sufixos. A implementação padrão do NLTK considera como sufixo de uma palavra
as três últimas letras desta, portanto uma tentativa de aumentar a acurácia do modelo foi
alimentá-lo com as desinências das palavras extraídas com o algoritmo RSLP. O RSLP,
proposto por Orengo e Huyck (2001), é um algoritmo de extração de radicais e foi projetado
especialmente para a língua portuguesa. O diferencial deste algoritmo é que, além de analisar
diversas regras específicas do idioma português, ainda conta com um dicionário de exceções.
O RSLP é composto de oito passos que devem ser executados em ordem: redução de plural,
redução de feminino, redução de aumentativo, redução de advérbio, redução de substantivo,
redução de verbo, redução de vogal e redução de acentos. A acurácia é de 96% na base de
testes, em contraste com os 71% do extrator Porter (ORENGO e HUYCK, 2001, p. 189)
testado na mesma base.
22
Obtido o radical de uma palavra, é considerado como sufixo o complemento da
palavra com relação ao radical. Isto é, dado uma palavra de 𝑝𝑝 letras 𝑒𝑒 = 𝑒𝑒1𝑒𝑒2𝑒𝑒3. . . 𝑒𝑒𝑛𝑛, o RSLP
extrai o radical 𝑓𝑓 = 𝑒𝑒1𝑒𝑒2 . . . 𝑒𝑒𝑘𝑘, 𝑘𝑘 < 𝑝𝑝 e o sufixo será 𝑓𝑓 = 𝑒𝑒𝑘𝑘+1𝑒𝑒𝑘𝑘+2. . . 𝑒𝑒𝑛𝑛−1𝑒𝑒𝑛𝑛. Esta etapa de
modificação dessas features será também aplicada apenas nas configurações que tiverem
desempenho melhor que a da implementação padrão do NLTK. Analogamente, caso não haja
tais configurações, esta variante de teste será aplicada na implementação padrão.
23
4 EXPERIMENTOS E RESULTADOS
Neste capítulo serão expostos as análises e os resultados, como se segue.
4.1 A BASE DE DADOS
A base de dados escolhida foi a macmorpho, compilada pelo Núcleo Interinstitucional
de Linguística Computacional da USP (MAC-MORPHO). A referida base consiste em textos
retirados de artigos de jornais, com as palavras anotadas de tags de POS. O corpus
macmorpho consiste em 49,932 frases com um total de 945,751 palavras. Nesta contagem
também consideram-se como palavras os caracteres de pontuação e os símbolos de moedas.
As 26 tags definidas na base de dados do macmorpho são artigo, adjetivo, nome, nome
próprio, numeral, pronome adjetivo, pronome substantivo, pronome pessoal, pronome
conectivo subordinativo, pronome conectivo subordinativo relativo, advérbio conectivo
subordinativo, advérbio relativo subordinativo, conjunção coordenativa, conjunção
subordinativa, preposição, interjeição, verbo, verbo auxiliar, particípio, palavra denotativa,
símbolo de moeda corrente e tags complementares. Estas últimas buscam representar
estrangeirismos e outras anomalias, mas apesar de estarem na documentação não figuram no
corpus do macmorpho.
A base macmorpho possui as seguintes frequências para cada classe:
TABELA 1 – FREQUÊNCIAS DAS TAGS
Tag Descrição Quantidade Frequência
ADJ Adjetivo 43269 4.58%
ADV Advérbio 24814 2.62%
ADV-KS Advérbio conectivo subordinativo 1041 0.11%
24
ART Artigo 68618 7.26%
CUR Símbol de moeda corrente 2473 0.26%
IN Interjeição 284 0.03%
KC Conjunção coordenativa 23366 2.47%
KS Conjunção subordinativa 12099 1.28%
N Nome 200977 21.25%
NPROP Nome próprio 91765 9.70%
NUM Numeral 16181 1.71%
PCP Particípio 19548 2.07%
PDEN Palavra denotativa 5666 0.60%
PREP Preposição 91314 9.66%
PREP+ADV Preposição e advérbio 85 0.01%
PREP+ART Preposição e artigo 58335 6.17%
PREP+PRO-KS Preposição e pronome conectivo
subordinativo 219 0.02%
PREP+PROADJ Preposição e pronome adjetivo 1715 0.18%
PREP+PROPESS Preposição e pronome adjetivo 533 0.06%
PREP+PROSUB Preposição e pronome substantivo 710 0.08%
PRO-KS Pronome conectivo subordinativo 10919 1.15%
PROADJ Pronome adjetivo 15415 1.63%
PROPESS Pronome pessoal 11538 1.22%
25
PROSUB Pronome substantivo 6381 0.67%
PU Pontuação 138865 14.68%
V Verbo 99621 10.53%
Fonte: Elaborado pelo autor.
FIGURA 4 – FREQUÊNCIAS DAS TAGS
Fonte: Elaborado pelo autor.
4.2 RESUMO DOS TESTES REALIZADOS
26
Inicialmente, buscou-se calcular as métricas de desempenho do classificador com as
features padrão da implementação do NLTK. Em seguida, foi observada a influência do
fracionamento entre base de treino e base de testes.
O desempenho do classificador foi testado em 6 configurações de fracionamento
(treino, teste) para avaliar a dependência do desempenho com o tamanho do conjunto de
treino: (90%, 10%), (86%, 14%), (80%, 20%), (75%, 25%), (67%, 33%), (50%, 50%).
Feito isso, cabe mostrar a relevância de cada feature ao treinar o classificador sem
certos subconjuntos das features, a influência de novas features no modelo e a influência do
dicionário de tags no desempenho geral.
Seguindo a conclusão dos testes de diferentes fracionamentos, para todos os testes
subsequentes foi realizada a validação cruzada com 5 splits do conjunto de dados, o que
resulta em 80% para treino e 20% remanescentes para teste.
4.3 DESEMPENHOS PARA DIFERENTES FRACIONAMENTOS TREINO/TESTE
FIGURA 5 – ACURÁCIA DO CLASSIFICADOR POR FRACIONAMENTO
TREINO/TESTE
27
Fonte: Elaborado pelo autor.
FIGURA 6 – ESCORE F1 DO CLASSIFICADOR POR FRACIONAMENTO
TREINO/TESTE
Fonte: Elaborado pelo autor.
Observa-se que o desempenho e o escore F1 são congruentes entre todos
fracionamentos, com exceção do (50%, 50%). Além disso, o fracionamento de (80%, 20%)
obteve a menor variância do escore F1, de 0.1%.
Sendo assim, não pode-se identificar um fracionamento objetivamente melhor que os
demais, portanto demos continuidade aos experimentos com o fracionamento de (80%, 20%)
sugerido pelo macmorpho (MAC-MORPHO).
4.4 TREINOS E TESTES
28
Para cada nova configuração das features foi treinado o modelo com validação
cruzada dividindo a base de dados em cinco partes iguais.
4.4.1 TREINO E TESTE VARIANTE A
O treino e teste variante A consiste no classificador sem alterações das features. Para
este classificador, o desempenho obtida foi de (95.0 ± 0.1)% para o escore F1 e de (95.3 ±
0.2)% para a acurácia. O classificador treinado na base macmorpho com as features padrão
do NLTK possui a seguinte matriz de confusão:
FIGURA 7 – MATRIZ DE CONFUSÃO DO CLASSIFICADOR REFERENTE AO
TREINO E TESTE VARIANTE A
29
Fonte: Elaborado pelo autor.
E as seguintes métricas de precisão, recordação e F1 para cada tag de POS:
TABELA 2 – DESEMPENHO DO CLASSIFICADOR REFERENTE AO TREINO E
TESTE VARIANTE A
Tag Precisão Recordação F1 Acurácia
ADJ 0.900 ± 0.007 0.894 ± 0.005 0.898 ± 0.004
ADV 0.924 ± 0.005 0.894 ± 0.009 0.910 ± 0.001
ADV-KS 0.814 ± 0.013 0.724 ± 0.024 0.764 ± 0.017
ART 0.970 ± 0.001 0.990 ± 0.001 0.980 ± 0.001
CUR 1.000 ± 0.000 0.998 ± 0.004 1.000 ± 0.000
IN 0.658 ± 0.037 0.364 ± 0.023 0.466 ± 0.013
KC 0.970 ± 0.001 0.980 ± 0.001 0.976 ± 0.005
KS 0.906 ± 0.015 0.866 ± 0.005 0.886 ± 0.005
N 0.934 ± 0.005 0.956 ± 0.005 0.944 ± 0.005
NPROP 0.904 ± 0.005 0.822 ± 0.011 0.860 ± 0.007
NUM 0.964 ± 0.005 0.940 ± 0.001 0.952 ± 0.004
PCP 0.940 ± 0.001 0.968 ± 0.004 0.954 ± 0.005
PDEN 0.924 ± 0.009 0.884 ± 0.009 0.904 ± 0.009
PREP 0.960 ± 0.001 0.980 ± 0.001 0.970 ± 0.001
PREP+ADV 0.916 ± 0.015 0.938 ± 0.008 0.916 ± 0.015
30
PREP+ART 0.970 ± 0.001 0.992 ± 0.004 0.980 ± 0.001
PREP+PRO-KS 0.806 ± 0.015 0.552 ± 0.008 0.658 ± 0.004
PREP+PROADJ 0.972 ± 0.004 0.988 ± 0.004 0.980 ± 0.001
PREP+PROPESS 0.990 ± 0.001 0.954 ± 0.021 0.972 ± 0.013
PREP+PROSUB 0.868 ± 0.019 0.684 ± 0.023 0.766 ± 0.015
PRO-KS 0.886 ± 0.005 0.934 ± 0.005 0.908 ± 0.004
PROADJ 0.950 ± 0.001 0.958 ± 0.004 0.952 ± 0.004
PROPESS 0.980 ± 0.001 0.960 ± 0.001 0.970 ± 0.001
PROSUB 0.886 ± 0.013 0.802 ± 0.008 0.840 ± 0.007
PU 1.000 ± 0.000 1.000 ± 0.000 1.000 ± 0.000
V 0.980 ± 0.001 0.986 ± 0.005 0.980 ± 0.001
Total 0.950 ± 0.001 0.950 ± 0.001 0.950 ± 0.001 0.953 ± 0.002
Fonte: Elaborado pelo autor.
4.4.2 TREINO E TESTE VARIANTE B
O treino e teste variante B consiste no classificador sem a feature da (i+2)-ésima
palavra da frase de entrada. Esta variante possui a seguinte matriz de confusão:
FIGURA 8 – MATRIZ DE CONFUSÃO DO CLASSIFICADOR REFERENTE AO
TREINO E TESTE VARIANTE B
31
Fonte: Elaborado pelo autor.
Possui as seguintes métricas de desempenho:
TABELA 3 – DESEMPENHO DO CLASSIFICADOR REFERENTE AO TREINO E
TESTE VARIANTE B
Precisão Recordação F1 Acurácia
Média
Ponderada 0.950 ± 0.001 0.950 ± 0.001 0.950 ± 0.001 0.952 ± 0.002
Fonte: Elaborado pelo autor.
32
4.4.3 TREINO E TESTE VARIANTE C
O treino e teste variante C consiste no classificador sem as seguintes features:
● A (i+2)-ésima palavra;
● A (i-2)-ésima palavra.
Possui a seguinte matriz de confusão:
FIGURA 9 – MATRIZ DE CONFUSÃO DO CLASSIFICADOR REFERENTE AO
TREINO E TESTE VARIANTE C
Fonte: Elaborado pelo autor.
Possui as seguintes métricas de desempenho:
33
TABELA 4 – DESEMPENHO DO CLASSIFICADOR REFERENTE AO TREINO E
TESTE VARIANTE C
Precisão Recordação F1 Acurácia
Média
Ponderada 0.950 ± 0.001 0.950 ± 0.001 0.950 ± 0.001 0.952 ± 0.002
Fonte: Elaborado pelo autor.
4.4.4 TREINO E TESTE VARIANTE D
O treino e teste variante D consiste no classificador sem as seguintes features:
● A (i+2)-ésima palavra;
● A (i-2)-ésima palavra;
● O sufixo da (i-1)-ésima palavra;
● O sufixo da (i+1)-ésima palavra.
Possui a seguinte matriz de confusão:
FIGURA 10 – MATRIZ DE CONFUSÃO DO CLASSIFICADOR REFERENTE AO
TREINO E TESTE VARIANTE D
34
Fonte: Elaborado pelo autor.
Possui as seguintes métricas de desempenho:
TABELA 5 – DESEMPENHO DO CLASSIFICADOR REFERENTE AO TREINO E
TESTE VARIANTE D
Precisão Recordação F1 Acurácia
Média
Ponderada 0.950 ± 0.001 0.950 ± 0.001 0.950 ± 0.001 0.951 ± 0.002
Fonte: Elaborado pelo autor.
35
4.4.5 TREINO E TESTE VARIANTE E
O treino e teste variante E corresponde ao classificador sem as seguintes features:
● A (i+2)-ésima palavra;
● A (i-2)-ésima palavra;
● O sufixo da (i-1)-ésima palavra;
● O sufixo da (i+1)-ésima palavra;
● O sufixo da (i+1)-ésima palavra;
● A (i+1)-ésima palavra.
Possui a seguinte matriz de confusão:
FIGURA 11 – MATRIZ DE CONFUSÃO DO CLASSIFICADOR REFERENTE AO
TREINO E TESTE VARIANTE E
Fonte: Elaborado pelo autor.
36
Pode-se observar que, na base macmorpho, ao remover a (i+1)-ésima palavra o
Perceptron Ponderado confunde as classes PREP+PRO-KS e PREP+PROSUB com a classe
PREP+ART.
A queda na acurácia da tag PREP+PRO-KS ao remover esta feature é de (57 ± 1)%,
ao passo que a tag PREP+PROSUB foi de (30 ± 1)%.
O treino e teste variante E possui as seguintes métricas de desempenho:
TABELA 6 – DESEMPENHO DO CLASSIFICADOR REFERENTE AO TREINO E
TESTE VARIANTE E
Precisão Recordação F1 Acurácia
Média
Ponderada 0.938 ± 0.004 0.938 ± 0.004 0.936 ± 0.005 0.936 ± 0.002
Fonte: Elaborado pelo autor.
4.4.6 TREINO E TESTE VARIANTE F
O treino e teste variante F consiste no classificador sem as seguintes features:
● A (i+2)-ésima palavra;
● (i+2)-ésima palavra;
● (i-2)-ésima palavra;
● sufixo da (i-1)-ésima palavra;
● sufixo da (i+1)-ésima palavra;
● (i+1)-ésima palavra;
● (i-1)-ésima palavra.
Possui a seguinte matriz de confusão:
FIGURA 12 – MATRIZ DE CONFUSÃO DO CLASSIFICADOR REFERENTE AO
TREINO E TESTE VARIANTE F
37
Fonte: Elaborado pelo autor.
E possui as seguintes métricas de desempenho:
TABELA 7 – DESEMPENHO DO CLASSIFICADOR REFERENTE AO TREINO E
TESTE VARIANTE F
Precisão Recordação F1 Acurácia
Média
Ponderada 0.928 ± 0.004 0.930 ± 0.001 0.928 ± 0.004 0.929 ± 0.002
Fonte: Elaborado pelo autor.
38
4.4.7 TREINO E TESTE VARIANTE G
O treino e teste variante G corresponde ao classificador sem as seguintes features:
● A (i+2)-ésima palavra;
● A (i-2)-ésima palavra;
● O sufixo da (i-1)-ésima palavra;
● O sufixo da (i+1)-ésima palavra;
● A (i+1)-ésima palavra;
● A (i-1)-ésima palavra;
● O sufixo da i-ésima palavra.
Possui a seguinte matriz de confusão:
FIGURA 13 – MATRIZ DE CONFUSÃO DO CLASSIFICADOR REFERENTE AO
TREINO E TESTE VARIANTE G
39
Fonte: Elaborado pelo autor.
Possui as seguintes métricas de desempenho:
TABELA 8 – DESEMPENHO DO CLASSIFICADOR REFERENTE AO TREINO E
TESTE VARIANTE G
Precisão Recordação F1 Acurácia
Média
Ponderada 0.916 ± 0.005 0.918 ± 0.004 0.910 ± 0.001 0.916 ± 0.002
Fonte: Elaborado pelo autor.
4.4.8 TREINO E TESTE VARIANTE H
O treino e teste variante H corresponde ao classificador sem as seguintes features:
● A (i+2)-ésima palavra;
● A (i-2)-ésima palavra;
● O sufixo da (i-1)-ésima palavra;
● O sufixo da (i+1)-ésima palavra;
● A (i+1)-ésima palavra;
● A (i-1)-ésima palavra;
● O sufixo da i-ésima palavra;
● A junção da (i-2)-ésima e a (i-1)-ésima tags.
Possui a seguinte matriz de confusão:
FIGURA 14 – MATRIZ DE CONFUSÃO DO CLASSIFICADOR REFERENTE AO
TREINO E TESTE VARIANTE H
40
Fonte: Elaborado pelo autor.
Possui as seguintes métricas de desempenho:
TABELA 9 – DESEMPENHO DO CLASSIFICADOR REFERENTE AO TREINO E
TESTE VARIANTE H
Precisão Recordação F1 Acurácia
Média
Ponderada 0.910 ± 0.005 0.916 ± 0.005 0.910 ± 0.001 0.914 ± 0.003
Fonte: Elaborado pelo autor.
41
4.4.9 TREINO E TESTE VARIANTE I
O treino e teste variante I corresponde ao classificador sem as seguintes features:
● A (i+2)-ésima palavra;
● A (i-2)-ésima palavra;
● O sufixo da (i-1)-ésima palavra;
● O sufixo da (i+1)-ésima palavra;
● A (i+1)-ésima palavra;
● A (i-1)-ésima palavra;
● O sufixo da i-ésima palavra;
● A junção da (i-2)-ésima e a (i-1)-ésima tags;
● A junção da (i-1)ésima tag com a i-ésima palavra.
Possui a seguinte matriz de confusão:
FIGURA 15 – MATRIZ DE CONFUSÃO DO CLASSIFICADOR REFERENTE AO
TESTE E TREINO VARIANTE I
42
Fonte: Elaborado pelo autor.
E possui as seguintes métricas de desempenho:
TABELA 10 – DESEMPENHO DO CLASSIFICADOR REFERENTE AO TESTE E
TREINO VARIANTE I
Precisão Recordação F1 Acurácia
Média
Ponderada 0.908 ± 0.004 0.908 ± 0.004 0.906 ± 0.005 0.908 ± 0.002
Fonte: Elaborado pelo autor.
4.4.10 TREINO E TESTE VARIANTE J
43
O treino e teste variante J corresponde ao classificador sem as seguintes features:
● A (i+2)-ésima palavra;
● A (i-2)-ésima palavra;
● O sufixo da (i-1)-ésima palavra;
● O sufixo da (i+1)-ésima palavra;
● A (i+1)-ésima palavra;
● A (i-1)-ésima palavra;
● O sufixo da i-ésima palavra;
● A junção da (i-2)-ésima e a (i-1)-ésima tags;
● A junção da (i-1)ésima tag com a i-ésima palavra;
● A (i-2)-ésima tag.
Possui a seguinte matriz de confusão:
FIGURA 16 – MATRIZ DE CONFUSÃO DO CLASSIFICADOR REFERENTE AO
TREINO E TESTE VARIANTE J
44
Fonte: Elaborado pelo autor.
Possui as seguintes métricas de desempenho:
TABELA 11 – DESEMPENHO DO CLASSIFICADOR REFERENTE AO TREINO E
TESTE VARIANTE J
Precisão Recordação F1 Acurácia
Média
Ponderada 0.908 ± 0.004 0.908 ± 0.004 0.900 ± 0.001 0.905 ± 0.002
Fonte: Elaborado pelo autor.
4.4.11 TREINO E TESTE VARIANTE K
O treino e teste variante K corresponde ao classificador sem as seguintes features:
● A (i+2)-ésima palavra;
● A (i-2)-ésima palavra;
● O sufixo da (i-1)-ésima palavra;
● O sufixo da (i+1)-ésima palavra;
● A (i+1)-ésima palavra;
● A (i-1)-ésima palavra;
● O sufixo da i-ésima palavra;
● A junção da (i-2)-ésima e a (i-1)-ésima tags;
● A junção da (i-1)ésima tag com a i-ésima palavra;
● A (i-2)-ésima tag;
● A (i-1)-ésima tag.
Possui a seguinte matriz de confusão:
45
FIGURA 17 – MATRIZ DE CONFUSÃO DO CLASSIFICADOR REFERENTE AO
TREINO E TESTE VARIANTE K
Fonte: Elaborado pelo autor.
Possui as seguintes métricas de desempenho:
TABELA 12 – DESEMPENHO DO CLASSIFICADOR REFERENTE AO TREINO E
TESTE VARIANTE K
Precisão Recordação F1 Acurácia
Média
Ponderada 0.888 ± 0.004 0.878 ± 0.004 0.872 ± 0.004 0.880 ± 0.003
Fonte: Elaborado pelo autor.
46
4.4.12 TREINO E TESTE VARIANTE L
O treino e teste variante L corresponde ao classificador sem as seguintes features:
● A (i+2)-ésima palavra;
● A (i-2)-ésima palavra;
● O sufixo da (i-1)-ésima palavra;
● O sufixo da (i+1)-ésima palavra;
● A (i+1)-ésima palavra;
● A (i-1)-ésima palavra;
● O sufixo da i-ésima palavra;
● A junção da (i-2)-ésima e a (i-1)-ésima tags;
● A junção da (i-1)ésima tag com a i-ésima palavra;
● A (i-2)-ésima tag;
● A (i-1)-ésima tag;
● O bias.
Ou seja, resta apenas a feature da i-ésima palavra. Possui a seguinte matriz de
confusão:
FIGURA 18 – MATRIZ DE CONFUSÃO DO CLASSIFICADOR REFERENTE AO
TREINO E TESTE VARIANTE L
47
Fonte: Elaborado pelo autor.
Possui as seguintes métricas de desempenho:
TABELA 13 – DESEMPENHO DO CLASSIFICADOR REFERENTE AO TREINO E
TESTE VARIANTE L
Precisão Recordação F1 Acurácia
Média
Ponderada 0.862 ± 0.004 0.868 ± 0.004 0.858 ± 0.004 0.863 ± 0.003
Fonte: Elaborado pelo autor.
48
4.4.13 TREINO E TESTE VARIANTE M
O treino e teste variante M corresponde ao classificador sem features. Ou seja, é o
classificador apenas com o dicionário de tags. Possui a seguinte matriz de confusão:
FIGURA 19 – MATRIZ DE CONFUSÃO DO CLASSIFICADOR REFERENTE AO
TREINO E TESTE VARIANTE M
Fonte: Elaborado pelo autor.
Como era de se esperar, a maior parte dos tokens é classificado como ADJ. Todas as
palavras que não figurem no dicionário de tags serão classificadas como ADJ, pois não
existem features para o classificador realizar uma previsão.
É possível notar que na base macmorpho o dicionário é influente (i.e. tem desempenho
maior que um desvio padrão) nas seguintes classes morfológicas:
49
● ADV com acurácia de (44 ± 1)%;
● CUR com acurácia de (100 ± 1)%;
● KC com acurácia de (88 ± 1)%;
● N com acurácia de (34 ± 1)%;
● NPROP com acurácia de (21 ± 1)%;
● PCP com acurácia de (16 ± 1)%;
● PDEN com acurácia de (29 ± 1)%;
● PREP com acurácia de (37 ± 1)%;
● PREP+ART com acurácia de (16 ± 1)%;
● PREP+PROADJ com acurácia de (62 ± 1)%;
● PREP+PROPESS com acurácia de (91 ± 1)%;
● PREP+PROSUB com acurácia de (26 ± 1)%;
● PROADJ com acurácia de (35 ± 1)%;
● PROPESS com acurácia de (63 ± 1)%;
● PROSUB com acurácia de (17 ± 1)%;
● PU com acurácia de (100 ± 1)%;
● V com acurácia de (59 ± 1)%.
Não é possível informar nada acerca do desempenho do classificador sem features
com relação à tag ADJ.
Verifica-se, ainda, que a classe aberta V possui acurácia de (59 ± 1)% que é superior
à média de (45.2 ± 0.2)%, ao passo que a classe aberta ADV possui acurácia congruente de
(44 ± 1)%, e a classe aberta N possui acurácia inferior à da média, de (34 ± 1)%. Possui as
seguintes métricas de desempenho:
TABELA 14 – DESEMPENHO DO CLASSIFICADOR REFERENTE AO TREINO E
TESTE VARIANTE M
Precisão Recordação F1 Acurácia
Média
Ponderada 0.860 ± 0.001 0.452 ± 0.004 0.518 ± 0.004 0.452 ± 0.002
Fonte: Elaborado pelo autor.
50
4.4.14 TREINO E TESTE VARIANTE N
O treino e teste variante N consiste no classificador sem a feature da i-ésima palavra.
Possui a seguinte matriz de confusão:
FIGURA 20 – MATRIZ DE CONFUSÃO DO CLASSIFICADOR REFERENTE AO
TREINO E TESTE VARIANTE N
Fonte: Elaborado pelo autor.
Possui as seguintes métricas de desempenho:
51
TABELA 15 – DESEMPENHO DO CLASSIFICADOR REFERENTE AO TREINO E
TESTE VARIANTE N
Precisão Recordação F1 Acurácia
Média
Ponderada 0.942 ± 0.004 0.944 ± 0.005 0.942 ± 0.004 0.944 ± 0.002
Fonte: Elaborado pelo autor.
4.4.15 TREINO E TESTE VARIANTE O
O treino e teste variante O consiste no classificador apenas com a feature do bias.
Possui a seguinte matriz de confusão:
FIGURA 21 – MATRIZ DE CONFUSÃO DO CLASSIFICADOR REFERENTE AO
TREINO E TESTE VARIANTE O
52
Fonte: Elaborado pelo autor.
Possui as seguintes métricas de desempenho:
TABELA 16 – DESEMPENHO DO CLASSIFICADOR REFERENTE AO TREINO E
TESTE VARIANTE O
Precisão Recordação F1 Acurácia
Média
Ponderada 0.760 ± 0.001 0.550 ± 0.001 0.510 ± 0.001 0.548 ± 0.002
Fonte: Elaborado pelo autor.
Pode-se perceber que o bias é a feature que garante que o classificador irá supor as
classes mais frequentes caso as demais features tenham peso baixo. No caso, como a tag N é a
mais frequente de todas, ela predomina num classificador apenas com o bias.
4.4.16 TREINO E TESTE VARIANTE P
O treino e teste variante P consiste no classificador com a (i+3)-ésima e a (i-3)-ésima
palavras como features.
FIGURA 22 – MATRIZ DE CONFUSÃO DO CLASSIFICADOR REFERENTE AO
TREINO E TESTE VARIANTE P
53
Fonte: Elaborado pelo autor.
TABELA 17 – DESEMPENHO DO CLASSIFICADOR REFERENTE AO TREINO E
TESTE VARIANTE P
Precisão Recordação F1 Acurácia
Média
Ponderada 0.950 ± 0.001 0.950 ± 0.001 0.950 ± 0.001 0.952 ± 0.002
Fonte: Elaborado pelo autor.
Não é possível observar diferença no desempenho do classificador com a adição
destas features para a implementação padrão do NLTK.
54
4.4.17 TREINO E TESTE VARIANTE Q
O treino e teste variante Q consiste do classificador com uma feature adicional que é
igual à 1 caso a i-ésima palavra comece com letra maiúscula e igual a 0 caso contrário.
FIGURA 23 – MATRIZ DE CONFUSÃO DO CLASSIFICADOR REFERENTE AO
TREINO E TESTE VARIANTE Q
Fonte: Elaborado pelo autor.
TABELA 18 – DESEMPENHO DO CLASSIFICADOR REFERENTE AO TREINO E
TESTE VARIANTE Q
Precisão Recordação F1 Acurácia
Média 0.950 ± 0.001 0.950 ± 0.001 0.950 ± 0.001 0.950 ± 0.001
55
Ponderada
Fonte: Elaborado pelo autor.
Não se pode observar qualquer diferença no desempenho entre a implementação
padrão e esta nova. Todos os desvios estão dentro de um desvio padrão.
4.4.18 TREINO E TESTE VARIANTE R
O treino e teste variante R corresponde ao classificador com o extrator de sufixos
baseado no algoritmo RSLP.
FIGURA 24 – MATRIZ DE CONFUSÃO DO CLASSIFICADOR REFERENTE AO
TREINO E TESTE VARIANTE R
Fonte: Elaborado pelo autor.
56
TABELA 19 – DESEMPENHO DO CLASSIFICADOR REFERENTE AO TREINO E
TESTE VARIANTE R
Precisão Recordação F1 Acurácia
Média
Ponderada 0.950 ± 0.001 0.950 ± 0.001 0.950 ± 0.001 0.898 ± 0.004
Fonte: Elaborado pelo autor.
Cumpre ressaltar que, para a base macmorpho, a implementação do Perceptron
Ponderado com um extrator de radicais baseado no algoritmo RSLP só difere na classificação
da tag PREP+ADV, que classificou corretamente em (87 ± 1)%, ao passo que a
implementação padrão do NLTK obtém a classificação correta em (94 ± 1)% das vezes.
Percebe-se, também, uma queda na acurácia total, que ficou em (89.8 ± 0.4)%, em contraste
com (95.3 ± 0.2)% da implementação padrão. As demais diferenças na acurácia de cada tag
com relação ao classificador padrão do NLTK estão dentro de um desvio padrão das amostras
coletadas.
Ademais, com relação ao tempo de teste observa-se um aumento excessivo, com
duração total de 29 minutos e 42 segundos, em contraste com cerca de um minuto das demais
implementações. Com relação ao tempo de treino, foi observado informalmente uma duração
superior a 10 horas, o que desencoraja a utilização desta implementação do classificador.
57
5 CONCLUSÃO E TRABALHOS FUTUROS
Por todo o exposto, resta demonstrado que, para a base macmorpho, o presente
trabalho não encontrou uma configuração de features para o classificador do NLTK baseado
no modelo “Perceptron Ponderado” cujo desempenho fosse objetivamente melhor que a
implementação com as features padrão. As demais configurações estudadas neste trabalho
conseguem apenas, na melhor das hipóteses, resultados congruentes, ou seja, com intervalos
de confiança que se sobrepõem aos da implementação padrão.
Os melhores desempenhos obtidos foram de:
TABELA 20 – TESTES COM MELHORES DESEMPENHOS
Teste Escore F1 Acurácia
Variante A (95.0 ± 0.1)% (95.3 ± 0.2)%
Variante B (95.0 ± 0.1)% (95.2 ± 0.2)%
Variante C (95.0 ± 0.1)% (95.2 ± 0.2)%
Variante D (95.0 ± 0.1)% (95.1 ± 0.2)%
Variante P (95.0 ± 0.1)% (95.2 ± 0.2)%
Variante Q (95.0 ± 0.1)% (95.0 ± 0.1)%
Fonte: Elaborado pelo autor.
No intuito de fazer uma comparação entre classificadores que não dependem de
conjunto de regras linguísticas, observa-se que a melhor acurácia obtida (95.3 ± 0.2)% é
inferior à do classificador do MXPOST com 96.3% (TEIXEIRA et al., 2008). Entretanto,
como Teixeira et al (2008) não informam o desvio padrão da acurácia, não é possível fazer
uma comparação objetiva.
58
Ademais, cabe descrever os resultados mais relevantes dos treinos e testes realizados
no presente trabalho.
A utilização do extrator de radicais RSLP (variante R) em lugar da implementação
naive do NLTK provoca uma queda na acurácia de (95.3 ± 0.2)% para (89.8 ± 0.4)%,
enquanto as demais métricas permanecem inalteradas.
As features que, na base macmorpho, apresentam a maior relevância são a “(i+1)-
ésima palavra”, a “(i-1)-ésima tag” e o “bias”. A feature “(i+1)-ésima palavra” varia o escore
F1 de (95.0 ± 0.1)% para (93.6 ± 0.2)% (variante E); a “(i-1)-ésima tag” varia o escore F1
de (90.0 ± 0.1)% para (87.2 ± 0.4)% (variante K); e a remoção do “bias” varia o escore F1
de (87.2 ± 0.4)% para (85.8 ± 0.4)% (variante L) do teste anterior para o teste em que são
removidas, respectivamente.
Outra observação interessante é o fato de que, na base macmorpho, a feature da
“(i+1)-ésima palavra” parece ter influência significativa para a classificação das tags
PREP+PRO-KS e PREP+PROSUB, pois ao ser removida provoca uma queda de (57 ± 1)%
e (30 ± 1)% em suas acurácias, respectivamente.
Como os testes variantes B, C e D todos têm desempenho similar ao variante A, que é
a implementação padrão, podemos observar que na base macmorpho as features “(i+2)-ésima
palavra”, “(i-2)-ésima palavra”, “sufixo da (i-1)-ésima palavra” e “sufixo da (i+1)-ésima
palavra” têm influência desprezível, considerando-se apenas a métrica F1 (DESCOINS,
2013).
Por fim, o dicionário de tags puro tem escore F1 de (51.8 ± 0.4)%, sendo o elemento
responsável pela maior parte das classificações corretas. É natural de se esperar que ele
demonstre bom desempenho para as classes fechadas, que têm um número finito e
relativamente pequeno de elementos léxicos. Para estas, 13 tiveram desempenho significativo
(i.e. maior que um desvio padrão), e 8 não tiveram. Ao passo que para as classes abertas
(adjetivos, advérbios, substantivos e verbos), que compõem a maior parte dos elementos
léxicos do PTBR e são possivelmente infinitos devido à neologismos, espera-se um
desempenho pior do dicionário de tags. Por esse motivo é pertinente notar que para a classe
aberta V obteve-se acurácia de (59 ± 1)% que é superior à média de (45.2 ± 0.2)%, ao
passo que a classe aberta ADV possui acurácia de (44 ± 1)%, congruente com a média, e a
classe aberta N possui acurácia de (34 ± 1)%, inferior à da média.
59
Como um trabalho futuro seria interessante utilizar um modelo multi-tagger auxiliar
junto ao classificador baseado no Perceptron Ponderado. Este modelo auxiliar pode retornar
um número maior que um de tags com grande probabilidade de corretude. Em seguida, esta
lista de possíveis tags de cada palavra pode ser utilizada como feature para o Perceptron
Ponderado, possibilitando uma acurácia de 99% (VADAS et al., 2006).
60
REFERÊNCIAS
ALENCAR, Leonel Figueiredo de. A wide-coverage free/open-source deep parser for
Brazilian Portuguese: a work in progress, in http://www.fgv.br/emap/logonto-
2011/slides/leonel.pdf. Acesso em 02/09/2017.
ALENCAR, Leonel Figueiredo de. AELIUS: UMA FERRAMENTA PARA ANOTAÇÃO
AUTOMÁTICA DE CORPORA USANDO O NLTK. Porto Alegre: IX Encontro de
Linguística de Corpus, 2010.
BICK, Eckard. THE PARSING SYSTEM “PALAVRAS”. Automatic Grammatical
Analysis of Portuguese in a Constraint Grammar Framework. 2000
BIRD, Steven; KLEIN, Ewan; LOPER, Edward. NLTK. Disponível em:
http://www.nltk.org/book/. Acesso em 03/09/2017
DAUMÉ III, Hal. A course in machine learning. 2012. Disponível em:
http://www.ciml.info/dl/v0_8/ciml-v0_8-ch03.pdf. Acesso em 03/09/2017
DESCOINS, Alan. Why accuracy alone is a bad measure for classification tasks, and
what we can do about it. 2013. Disponível em: https://tryolabs.com/blog/2013/03/25/why-
accuracy-alone-bad-measure-classification-tasks-and-what-we-can-do-about-it/. Acesso em
03/09/2017.
HONNIBAL, Matthew. A Good Part-of-Speech Tagger in about 200 Lines of Python.
2013. Disponível em: https://explosion.ai/blog/part-of-speech-pos-tagger-in-python. Acesso
em 03/09/2017.
MAC-MORPHO. Disponível em: http://nilc.icmc.usp.br/macmorpho/. Acesso em
02/09/2017.
ORENGO, Viviane Moreira; HUYCK, Christian. A stemming algorithm for the portuguese
language. In String Processing and Information Retrieval. SPIRE 2001. Eighth International
Symposium. 2001, Novembro.
TEIXEIRA, Joaquim da Silva; LIMA, Vera Lúcia Strube de; OLIVEIRA, Luís Caldas de;
QUARESMA, Paulo. Computational Processing of the Portuguese Language: 8th
International Conference. Aveiro, Portugal: PROPOR, 2008.
61
VADAS, David; CURRAN, James R.; CLARK, Stephen; Multi-Tagging Lexicalized-
Grammar Parsing. Association for Computational Linguistics, 2006.
62
APÊNDICE A – RELAÇÃO DE ETIQUETAS UTILIZADAS NA CLASSIFICAÇÃO
DE POS
TAG DESCRIÇÃO
ADJ Adjetivo
ADV Advérbio
ADV-KS Advérbio conectivo subordinativo
ART Artigo
CUR Símbolo de moeda corrente
IN Interjeição
KC Conjunção coordenativa
KS Conjunção subordinativa
N Nome
63
NPROP Nome próprio
NUM Numeral
PCP Particípio
PDEN Palavra denotativa
PREP Preposição
PREP+ADV Preposição e advérbio
PREP+ART Preposição e artigo
PREP+PRO-KS Preposição e pronome conectivo
subordinativo
PREP+PROADJ Preposição e pronome adjetivo
PREP+PROPESS Preposição e pronome pessoal
PREP+PROSUB Preposição e pronome substantivo
64
PRO-KS Pronome conectivo subordinativo
PROADJ Pronome adjetivo
PROPESS Pronome pessoal
PROSUB Pronome substantivo
PU Pontuação
V Verbo
Fonte: MAC-MORPHO
top related