O próximo experimento tem o objetivo de avaliar a capacidade de generalização da má- quina de classificação de sentimentos em comentários na língua portuguesa. Para isso, conside- rando uma máquina de classificação construída com base em língua inglesa e outra construída na própria língua portuguesa. Para utilizar a máquina de classificação construída com o corpus na língua inglesa, é necessário que o pré-processamento de texto inclua a etapa de tradução do por- tuguês para o inglês por meio de uma API, conforme mencionado na seção 5. Assim, esse expe- rimento é realizado com a base complementar apresentada na subseção 6.4.1.
Foram utilizados os modelos treinados durante os experimentos da subseção 8.2 para apli- cação em uma amostra da base de teste. Assim, a predição de sentimento de cada versão de um comentário (português e traduzido para o inglês) foi realizada com os respectivos modelos treina- dos. Os resultados considerando o método de extração de atributos pelo BoW e pelo W2V- AvgVec estão apresentados na Tabela 8.5.
Tabela 8.5 – Percentual de acurácia dos métodos BoW e W2V-AvgVec para bases FILMES-POR e FILMES-TRAD
BoW W2V-AvgVec
Classificador Português Português
traduzido Português Português traduzido RL 79,2 70,1 71,2 72,3 FA 77,8 64,2 71,3 59,6 SVML 79,2 68,5 71,2 72,1 Votação RL e SVML RL FA RL
Neste experimento, com o método BoW, nota-se uma perda de acurácia significativa (pelo menos 9,1% de perda de acurácia) ao utilizar o modelo pré-treinado em inglês com os comentá- rios traduzidos automaticamente do português para o inglês. Além da perda de informação com a tradução, há o fato de que apesar de ambas as bases versarem sobre avaliações de filmes, a sim- ples mudança de ambiente virtual pode levar a diferenças nos comportamentos no uso da lingua- gem. Como mencionado anteriormente, a base de comentários em inglês contém uma média de palavras muito maior do que a em português e, considerando o método BoW, palavras na base de teste que não forem encontradas na base de treino não contribuem no poder de predição do mode- lo. No entanto, os resultados de acurácia considerando a criação de atributos pelo método W2V- AvgVec mostrou, pela primeira vez neste estudo com a língua portuguesa, um valor melhor na acurácia em 2 dos três métodos de classificação.
Com o método de engenharia de atributos utilizando o embedding, os resultados de acurá- cia tiveram um acréscimo de aproximadamente 2,2% no método de classificação RL e 3,6% no SVML para a base traduzida para o inglês em relação ao método BoW. Além disso, os resultados foram acrescidos em 1,1% e 0,9% para RL e SVML, respectivamente, em relação ao método de
embedding aplicado à base não traduzida. Isso mostra que, apesar da perda de acurácia em utili-
mais denso em número de tokens utilizados (ordem de bilhões no caso da base em inglês) trouxe ganhos no poder discriminante da máquina de classificação.
Para avaliar como os dois métodos de criação de atributos se comportam ao utilizar um modelo treinado em um contexto distinto, foi feita uma avaliação com comentários extraídos de um site de notícias em língua portuguesa. Essa base de teste foi classificada considerando a base de treino em língua portuguesa e em língua inglesa. Para isso, os comentários foram traduzidos para o inglês. A Tabela 8.6 mostra os resultados de acurácia originais da base de avaliações de filmes e dos comentários de notícias para os dois métodos de engenharia de atributos.
Tabela 8.6 – Percentual de acurácia dos métodos BoW e W2V-AvgVec para os comentários de notícias.
Classificador
Comentários de filmes Comentários de notícias Comentários de notícias traduzidas BoW W2V- AvgVec BoW W2V- AvgVec BoW W2V- AvgVec RL 79,2 71,2 57,3 66,8 58,3 62,8 FA 77,8 71,3 53,3 66,3 27,1 51,8 SVML 79,2 71,2 57,8 65,3 50,8 60,3 Votação RL e SVML FA SVML RL RL RL
Ao aplicar o modelo em uma base não relacionada com a que originou o modelo de classi- ficação de sentimentos, o nível de acurácia para o método BoW ficou com uma acurácia quase que empatada com uma definição aleatória do sentimento (aproximadamente 50%). No entanto, assim como observado para a base traduzida para o inglês, o método W2V-AvgVec trouxe um ganho no indicador de acurácia em todos os classificadores, sendo que o menor ganho foi de 7,5% (RL) em relação ao percentual de acerto para o método BoW e, o maior, 13% (FA).
Esse comportamento pode estar relacionado ao fato de que o W2V-AvgVec carrega um significado matemático para uma quantidade de palavras, em geral, muito maior do que a base de treino do BoW. Assim, quando uma base de teste (aquela que não foi utilizada no ajuste do mo- delo), tiver um contexto diferente da base que deu origem ao modelo de classificação, o método que busca palavras em uma base genérica pode trazer resultados melhores na acurácia.
Vale notar, também, que o método FA aplicado com o vetor de médias para a base em português trouxe um resultado de acurácia próximo ao de RL. No entanto, apesar da variabilidade dos resultados deste método não ser alta ao observar apenas os experimentos realizados em bases de teste do mesmo universo, isso não se replica para estas bases complementares. Ao realizar 10 avaliações iguais, o fator aleatório resultou nos seguintes resultados de acurácia:
[66,3 60,8 66,8 62,8 65,8 64,8 67,3 62,8 64,8 67,3]
A variabilidade demonstrada nesses resultados (coeficiente de variação13 da amostra igual a 7,4) traz maior risco para a precisão da máquina, risco esse que pode limitar sua aplicação.
Outro fato que vale notar é o ganho na acurácia do W2V-AvgVec em inglês sobre o mé- todo BoW em português, fazendo com que, na falta de uma boa base de comentários rotulados em português, há, ainda, a viabilidade de utilizar bases rotuladas em inglês com um embedding pronto que pode ser o mesmo que foi utilizado neste estudo, ou outros que forem disponibilizados na rede. Neste caso, deve-se adicionar um custo computacional (além de um eventual custo real em valor monetário) na inclusão de uma API de tradução dos comentários do português para o inglês. Por fim, o Quadro 8.1 mostra a consolidação das conclusões tiradas ao longo desta seção para uma máquina de classificação de sentimentos de comentários em língua portuguesa.
Quadro 8.1 – Consolidação dos testes para definição da máquina de classificação de sentimentos
Proposição Comentários genéricos Comentários de filmes do site Filmow
Utilizar API de tradução para o
inglês Não Não
Método de engenharia de atributos W2V-AvgVec BoW
Classificador RL (C = 1) RL (C = 1)
Assim, as duas máquinas de classificação selecionadas serão apresentadas na próxima se- ção, ou seja, a regressão logística com C = 1 aplicada ao vetor resultante tanto da engenharia de atributos com o embedding quanto com o BoW. A acurácia por classe das máquinas, consideran-
13 O coeficiente de variação é a divisão do desvio-padrão pela média, multiplicada por 100, ou seja, neste caso, o
do 0,5 como o valor de corte da probabilidade (limiar de decisão) sobre a classe a qual cada exemplo da amostra pertence, é apresentada na Tabela 8.7.
Tabela 8.7 – Matrizes de confusão considerando as respectivas bases de teste para as máquinas finais.
Comentários genéricos Comentários de filmes do site Filmow
Negativo Positivo Negativo Positivo
Negativo 70 30 80 20
Positivo 52 48 21 79
Geral 67 79
A máquina específica de avaliações de filmes tem uma acurácia similar entre classes, no entanto, a Tabela 8.7 mostra que a máquina de comentários genéricos acertou proporcionalmente mais casos negativos do que positivos, sendo que para os positivos aparentemente tem um com- portamento aleatório. Ainda assim, de maneira geral, esta máquina traz um resultado melhor do que uma simples classificação aleatória. Ao ser comparada com uma máquina que estima tudo como negativo, o percentual de acurácia total é melhor (84%), mas essa máquina erra todos os comentários positivos. Novos testes podem ser considerados para obtenção de uma precisão me- lhor da máquina quanto à acurácia.
Essas duas máquinas podem ser utilizadas, respectivamente, para comentários genéricos e comentários de filmes específicos do site no qual a base de treinamento foi extraída. Em qualquer caso, como a classe neutra não foi considerada, os comentários que forem de fato desta classe poderão ser erroneamente classificados como positivos ou negativos.
9 MÁQUINA DE CLASSIFICAÇÃO FINAL
Considerando os resultados obtidos na seção anterior, foram selecionadas duas máquinas, uma para classificação de sentimentos genérica, ou seja, para quaisquer comentários ou avalia- ções escritas em português e a outra específica para comentários de filmes do site FILMOW. O Quadro 9.1 mostra o algoritmo que implementa a máquina de classificação genérica. O código é apresentado no Apêndice A.
Quadro 9.1 – Algoritmo da máquina de classificação genérica Importa bibliotecas
Recebe texto com a avaliação Carrega arquivo de embeddings Pré-processa avaliação
Para cada palavra da avaliação: busca o vetor de embedding da palavra no arquivo carregado Cria o vetor de médias a partir dos vetores de cada palavra da avaliação
Carrega o classificador pré-treinado Estima o sentimento e imprime o resultado
Abaixo seguem alguns exemplos aleatórios de comentários retirados de diferentes sites e uma avaliação manual da sua polaridade:
*********************----1----*********************
"Eu particularmente amo esse assunto, pois percebo como saber argumentar e a pensar de forma critica, molda nosso destino e tem total influência na nossa percepção da realidade e da verdade." POSITIVO
*********************----2----*********************
"O livro é profetico, e mostra exatamente o cotidiano que temos em nossa vista, alem de ter criado uma linguagem que serviu para mostrar que rumos tomariam nossa sociedade. A linguagem Nadsat inspirada
em termos ingleses misturados com um russo mais tradicional. Horrorshor esse livro." POSITIVO
"eu tb nao terminei o cavalo de troia. Fica mto enjoativo e tb a gente ja sabe o final né." NEGATIVO
*********************----4----*********************
" O Wi-fi não estava funcionando (a rede estava aberta mas não conectava). Os quartos não possuem frigobar. O café da manhã não estava agradável, poucas opções e qualidade dos alimentos não me agra-
daram."" NEGATIVO
*********************----5----*********************
"Eu não gostei de ter usado esse aquecedor elétrico. Ele faz muito barulho e quando esquenta demais, ele desliga." NEGATIVO
Os resultados da classificação com a aplicação da máquina genérica são apresentados no Quadro 9.2.
Quadro 9.2 Predição de sentimentos utilizando a máquina de classificação genérica
Comentário Predição Probabilidade da
Predição Polaridade real
Resultado da máquina
1 POSITIVO 0,68 POSITIVO CORRETO
2 POSITIVO 0,78 POSITIVO CORRETO
3 NEGATIVO 0,72 NEGATIVO CORRETO
4 NEGATIVO 0,69 NEGATIVO CORRETO
5 NEGATIVO 0,65 NEGATIVO CORRETO
Apesar da acurácia calculada para essa máquina ser de 67%, ela classificou corretamente 100% dos casos. A probabilidade de obter esse resultado, de 5 acertos em 5 tentativas, pode ser calculada pela distribuição binomial, apresentada na equação (1), com parâmetro p = 0,67.
( )
( ) ( ) (1)
Onde p é a probabilidade de uma das classes, k é o número de vezes que uma das classes ocorreu em n tentativas. O valor resultante da probabilidade é 0,133.
O Quadro 9.3 mostra o algoritmo que implementa a máquina de classificação genérica. O código é apresentado no Apêndice B.
Quadro 9.3 – Algoritmo da máquina de classificação para comentários de filmes Importa bibliotecas
Recebe texto com a avaliação
Carrega vetor de palavras pré-treinado Pré-processa avaliação
Cria o vetor de frequência das palavras da avaliação que estão presentes no vetor de palavras pré-treinado Carrega o classificador pré-treinado
Estima o sentimento e imprime o resultado
Abaixo seguem alguns exemplos aleatórios de comentários retirados do site Filmow e uma avaliação manual da sua polaridade:
*********************----1----*********************
“Vish, é mais uma bomba gigantesca. Os live actions da disney não estão sendo bons, e pelo visto Mulan e Pequena Sereia serão outras bombas.” NEGATIVO
*********************----2----*********************
“O filme passa por alguns momentos da banda, mostrando misturados o tempo e os fatos, a fim de dina- mizar a narrativa. O que algumas pessoas não entenderam é que a ideia central é cercar os fatos que permeiam a criação da música título do filme, e ficaram reclamando de não ser biografia da banda e sim
do seu vocalista. Welll... É emocionante principalmente ao relembrar momentos mágicos da banda nos palcos.” POSITIVO
*********************----3----*********************
“O filme pode ser considerado decente/ assistível, mas esse CGI super carregado me deixou estufado e enjoado rapidamente, outro problema é a longa duração, precisava mesmo de 2 fucking horas de cená- rios multicoloridos e de explosões policromáticas? Wonder Woman por exemplo, conseguiu subtrair boa
parte desse exagero, dosando corretamente o uso dos efeitos especiais, ainda que tenha falhas na cons- trução de alguns personagens e no final pouco convencional.” NEGATIVO
*********************----4----*********************
“Fragmentado é uma obra de arte em termos de atuação e roteiro. James McAvoy monstro como sem- pre!” POSITIVO
*********************----5----*********************
“O começo do filme dá a impressão que o filme vai ser bom mas ao longo vai perdendo um pouco aquela pegada que tinha nos filmes anteriores. É ao menos divertido.” NEGATIVO
Os resultados da classificação com a aplicação da máquina específica são apresentados no Quadro 9.4.
Quadro 9.4 – Predição de sentimentos utilizando a máquina de classificação específica
Comentário Predição Probabilidade da
Predição Polaridade real
Resultado da má- quina
1 NEGATIVO 0,89 NEGATIVO CORRETO
2 POSITIVO 0,91 POSITIVO CORRETO
3 NEGATIVO 0,95 NEGATIVO CORRETO
4 NEGATIVO 0,50 POSITIVO ERRADO
5 NEGATIVO 0,56 NEGATIVO CORRETO
A acurácia calculada para essa máquina é de 79%, e ela classificou corretamente 80% dos casos. A probabilidade de obter esse resultado de 4 acertos em 5 tentativas pela distribuição bi- nomial é de 0,410.
10 CONCLUSÕES
A análise de sentimentos é um tema bastante amplo em que inúmeras abordagens podem ser exploradas para cada objetivo buscado. A análise de texto natural engloba uma série de parti- cularidades fazendo com que ainda haja muitas discussões acadêmicas em seu entorno. Ao iniciar o processo de aprendizagem sobre o tema, o pesquisador se depara com dúvidas que, ao olhar de um implementador de códigos, pareçam básicas ou, para um cientista de dados, simplesmente óbvias. No entanto, a busca por conhecimento novo sob a perspectiva do pesquisador que se inse- re nesse tema passa por uma seleção sobre que aspectos abordar antes e em que profundidade.
Esta dissertação teve o objetivo de contribuir com o aprendizado mais rápido sobre o tema da análise de sentimentos dentro do contexto do PLN. Para isso, foi estipulado como objetivo a construção de uma máquina de classificação binária de sentimentos, considerando comparação de diferentes métodos de pré-processamento de texto, de criação de atributos e na relação entre as bases de treino e teste.
Dentre os métodos de pré-processamentos explorados, o stemming se demonstrou desvan- tajoso nos exemplos avaliados, o que não significa que ele não pudesse ser de grande valia em outros exemplos ou aplicações. Em um processo de criação de uma ferramenta de análise de texto (não apenas de sentimentos) é importante testar várias formas de pré-processar o texto, pois os
corpora têm características diferentes e, portanto, se beneficiam de forma particular em cada ca-
so.
Mas o foco maior desse processo foi a discussão sobre métodos de extração de caracterís- ticas para análise de sentimentos e, para isso, foi criada uma base inédita de avaliações rotuladas a partir de um site brasileiro de avaliação de filmes. Com ela, foi possível explorar diferentes formas de construção de um classificador de sentimentos, inclusive considerando a tradução para o inglês para tirar proveito de maior massa de dados na língua inglesa.
O método BoW de engenharia de atributos é muito simples e de processamento rápido se comparado com o método que utiliza embeddings de palavras, principalmente se o treino do em-
bedding for computado nesse cálculo. Por ser simples, qualquer outro método mais complexo tem
que resultar em um nível de acurácia maior, a ponto de valer o esforço da troca, não só pelo pro- cesso de treinamento do classificador, mas também para o próprio classificador, que deverá ter
em memória todo o dicionário de embeddings para o cálculo dos atributos de uma nova avalia- ção. Além disso, as formas de criação de atributos com a utilização de embeddings são inúmeras, partindo de um simples cálculo de média (ou soma, desvio-padrão, etc.) dos elementos como do uso de técnicas mais avançadas de aprendizado de máquina como o k-means para segmentação de palavras segundo seus vetores.
Apesar de o método BoW ter se mostrado efetivo na maior parte dos experimentos reali- zados, isso não ocorreu quando havia um desassociação entre o texto que é submetido ao classifi- cador e o corpus que participou do processo de seu treinamento. Se o texto a ser avaliado faz par- te do corpus (embora não tenha sido utilizado para compor o classificador) ou do mesmo univer- so da base de treinamento, então, o método BoW atendeu melhor aos objetivos de predição de sentimento do que o método com embeddings. Isso não foi observado quando foi utilizado um texto para classificação a partir de uma base de comentários de um site de notícias em um classi- ficador formado por avaliações de filmes.
Caso semelhante ocorreu com a tradução de uma avaliação para o inglês a ser predita por um classificador treinado nesta língua com uma massa de informação textual razoavelmente mai- or do que a base em português. Mesmo utilizando uma base treinada no assunto “avaliação de filmes”, um texto em português traduzido para o inglês teve um resultado melhor utilizando o método de embeddings. Isso mostra o poder de um método que mantém alguma relação semânti- ca. Assim, os embeddings podem ser grandes aliados em qualquer tipo de PLN, não só para clas- sificação de sentimentos.
Apesar da engenharia de atributos ainda ser o principal ponto de discussão no assunto de PLN, a escolha do método de aprendizado de máquina pode trazer ganho na acurácia da predição. Como mencionado no capítulo 4, em geral, os autores dos artigos levantados testam suas hipóte- ses em mais de um classificador e mais de um hiperparâmetro. Esse procedimento é uma parte significante no desenvolvimento de uma máquina de classificação, já que diferentes métodos po- dem se adaptar melhor a diferentes bases de dados ou objetivos. Ao final, é possível obter uma combinação de métodos que potencializam os resultados, sendo eles divididos por segmentos, por exemplo. Nos experimentos conduzidos neste estudo, o método de Floresta Aleatória não obteve tão êxito quanto os outros dois métodos, que se diferenciaram, em geral, na ordem de centésimos de percentual de acurácia.
Além disso, a criação de bases novas para estímulo à pesquisa, principalmente na língua portuguesa ainda é um grande desafio, especialmente se forem necessários os rótulos que, muitas vezes, deve ser realizado manualmente. Os métodos não supervisionados são bastante úteis quan- do não há rótulos nos corpora, como é o caso dos embeddings. Mas as máquinas de classificação (ou de regressão em geral) ganham em acurácia quando há exemplos já classificados ou anotados. Por esse motivo, os sites de avaliações (reviews) são úteis para pesquisas de modelos de classifi- cação, pois o texto pode ser associado à nota, em geral, dada pelo próprio autor do texto.
Embora não tenha sido o foco principal deste estudo, a questão da implementação de có- digo para aplicação das teorias de PLN para um objetivo bem delimitado faz parte de todo o pro- cesso de aprendizagem e traz um desafio maior para aqueles que são pouco iniciados nesse mun- do. O Python é uma linguagem que vem sendo bastante aplicada na ciência de dados, e novas e melhores bibliotecas são desenvolvidas a todo o momento. Hoje, umas das bibliotecas em Python mais famosas para o PLN é o nltk (“Natural Language Toolkit”), que foi amplamente utilizado ao longo dos experimentos desenvolvidos neste estudo. Um ponto a ser ressaltado é o risco de in- compatibilidade de execução de classificadores que foram desenvolvidos em uma versão do Python ou de uma determinada biblioteca em outras versões. Esse é um cuidado que deve ser levado em consideração ao colocar um classificador em execução utilizando diferentes versões de uma determinada linguagem que se deseja utilizar para criar aplicações de aprendizado de má- quina.
Ao final, foram obtidas duas máquinas de classificação diferentes. Isso ocorreu justamente pelo fato de que os métodos BoW e embeddings se mostraram válidos em diferentes contextos. A máquina de classificação considerada como principal resultado é a que teve uma acurácia melhor para comentários genéricos, já que o objetivo era a criação de uma máquina de classificação biná- ria de sentimentos, independentemente do tema da avaliação. A segunda máquina tem o objetivo de avaliar o sentimento especificamente de avaliações que fazem parte do universo da base de