Vous êtes sur la page 1sur 78

Eliane Martins de Aguiar

Aplicao do Word2vec e do Gradiente


Descendente Estocstico em Traduo
Automtica

Rio de Janeiro
Maio 2016
Eliane Martins de Aguiar

Aplicao do Word2vec e do Gradiente Descendente


Estocstico em Traduo Automtica

Fundao Getulio Vargas -FGV

Escola de Matemtica Aplicada -EMAp

Programa de Ps-Graduao

Orientador: Renato Rocha Souza


Coorientador: Flvio Codeo Coelho

Rio de Janeiro
Maio 2016
FichacatalogrficaelaboradapelaBibliotecaMarioHenriqueSimonsen/FGV

Aguiar,ElianeMartinsde
AplicaodoWord2vecedoGradientedescendenteestocstico
emtraduoautomtica/ElianeMartinsdeAguiar.2016.
78f.

Dissertao(mestrado)FundaoGetulioVargas,EscoladeMatemtica
Aplicada.
Orientador:RenatoRochaSouza.
Coorientador:FlvioCodeoCoelho
Incluibibliografia.

1.Redesneurais(Computao).2.Processamentodalinguagemnatural
(Computao).I.Souza,RenatoRocha.II.Coelho,FlvioCodeo.III.Fundao
GetulioVargas.EscoladeMatemticaAplicada.IV.Ttulo.

CDD006.3
minha me, Neide.
Agradecimentos

Ao meu orientador Renato Rocha por todo apoio e por ter acreditado no meu
potencial.
Ao meu coorientador Flvio Codeo por ter me ajudado diversas vezes e por ter me su-
gerido o tema deste trabalho.
CAPES por ter acreditado em mim e investido nos meus estudos.
Aos professores da banca pelo carinho e pela ateno.

Aos professores e funcionrios da EMAp por toda ateno e suporte ao longo desta
jornada.
Aos meus colegas de curso por terem me feito sentir como realmente parte da turma. Em
especial ao Leon Diniz e ao Luis Eduardo Craizer por sempre terem sentado ao meu lado
e feito os trabalhos de grupo comigo.

minha me por todo seu apoio emocional, financeiro e moral. Sem voc este
mestrado nunca teria sido possvel.
Aos meus parentes e amigos pelo apoio, por terem acreditado em mim, e por serem com-
preensivos com meus sumios.
Ao Felipe Bottega Diniz pelo apoio, pacincia, compreenso, aulas e toda ajuda durante
todo o mestrado. Voc foi fundamental para eu manter minha sanidade.
E tambm s pessoas que ajudaram revisando minha dissertao ou dando ideias.
Wir mssen wissen. Wir werden wissen. - Ns devemos saber. Ns saberemos
(David Hilbert)
Resumo
O word2vec um sistema baseado em redes neurais que processa textos e representa pa-
lavras como vetores, utilizando uma representao distribuda. Uma propriedade notvel
so as relaes semnticas encontradas nos modelos gerados. Este trabalho tem como
objetivo treinar dois modelos utilizando o word2vec, um para o Portugus e outro para
o Ingls, e utilizar o gradiente descendente estocstico para encontrar uma matriz de
traduo entre esses dois espaos.

Palavras-chaves: Processamento de Linguagem Natural, Redes Neurais, Word2vec, Con-


tinous Bag-of-Words, Gradiente Descendente Estocstico, Traduo Automtica.
Abstract
Word2vec is a neural network that processes texts and represents words as vectors, using a
distributed representation. An important feature are the semantics relationships found in
the models generated by it. The aim of this word is to train two models using Word2vec,
one for Portuguese and the other for English, and use the stochastic gradient descent to
find a translation matrix between those spaces.

Key-words: Natural Language Processing, Neural Networks, Word2vec, Continuous Bag-


of-Words, Stochastic Gradient Descent, Machine Translation
Lista de ilustraes

Figura 1 Exemplo de arquitetura de rede neural com uma camada oculta . . . . 4


Figura 2 Representao da arquitetura do CBOW e Skip-Gram - Figura retirada
de um artigo do Mikolov [13] . . . . . . . . . . . . . . . . . . . . . . . 6
Figura 3 Exemplo com animais usando PCA . . . . . . . . . . . . . . . . . . . . 27
Figura 4 Exemplo com nmeros usando PCA . . . . . . . . . . . . . . . . . . . . 27
Figura 5 Exemplo com gneros usando PCA . . . . . . . . . . . . . . . . . . . . 28
Figura 6 Exemplo com opostos usando PCA . . . . . . . . . . . . . . . . . . . . 28
Figura 7 Erros de 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Figura 8 Erros de 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Figura 9 Erros de 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Figura 10 Erros de 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Figura 11 Erros de 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Figura 12 Erros de 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Figura 13 Posio nos ranks de 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Figura 14 Posio nos ranks de 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Figura 15 Posio nos ranks de 3 . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Figura 16 Posio nos ranks de 4 . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Figura 17 Posio nos ranks de 5 . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Figura 18 Posio nos ranks de 6 . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Figura 19 Similaridade entre pivs e alvos - 1 . . . . . . . . . . . . . . . . . . . 40
Figura 20 Similaridade entre pivs e alvos - 2 . . . . . . . . . . . . . . . . . . . 40
Figura 21 Similaridade entre pivs e alvos - 3 . . . . . . . . . . . . . . . . . . . 40
Figura 22 Similaridade entre pivs e alvos - 4 . . . . . . . . . . . . . . . . . . . 41
Figura 23 Similaridade entre pivs e alvos - 5 . . . . . . . . . . . . . . . . . . . 41
Figura 24 Similaridade entre pivs e alvos - 6 . . . . . . . . . . . . . . . . . . . 41
Figura 25 Similaridade relativa - 1 . . . . . . . . . . . . . . . . . . . . . . . . . 42
Figura 26 Similaridade relativa - 2 . . . . . . . . . . . . . . . . . . . . . . . . . 42
Figura 27 Similaridade relativa - 3 . . . . . . . . . . . . . . . . . . . . . . . . . 43
Figura 28 Similaridade relativa - 4 . . . . . . . . . . . . . . . . . . . . . . . . . 43
Figura 29 Similaridade relativa - 5 . . . . . . . . . . . . . . . . . . . . . . . . . 43
Figura 30 Similaridade relativa - 6 . . . . . . . . . . . . . . . . . . . . . . . . . 44
Figura 31 Rank invertido - 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Figura 32 Rank invertido - 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Figura 33 Rank invertido - 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Figura 34 Rank invertido - 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Figura 35 Rank invertido - 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Figura 36 Rank invertido - 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Figura 37 Histograma das distncias de palavras, usando o mtodo edit distance,
entre pivs gerados por cada uma das 6 matrizes e as palavras alvos
correspondentes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Figura 38 Histograma das distncias de palavras, usando o mtodo edit distance,
entre palavras geradas utilizando o primeiro mtodo de Dinu e as pa-
lavras alvos correspondentes. . . . . . . . . . . . . . . . . . . . . . . . 48
Figura 39 Histograma das distncias de palavras, usando o mtodo edit distance,
entre palavras geradas utilizando o segundo mtodo de Dinu e as pala-
vras alvos correspondentes. . . . . . . . . . . . . . . . . . . . . . . . . 48
Figura 40 Norma euclidiana entre os pivs gerados com 1 e os vetores alvos. . . 49
Figura 41 Norma euclidiana entre os vetores gerados com as palavras obtidas no
teste 1 de Dinu com 1 e os vetores alvos. . . . . . . . . . . . . . . . . 49
Figura 42 Norma euclidiana entre os vetores gerados com as palavras obtidas no
teste 2 de Dinu com 1 e os vetores alvos. . . . . . . . . . . . . . . . . 50
Lista de tabelas

Tabela 1 Frequncias observadas e frequncias esperadas . . . . . . . . . . . . . 7


Tabela 2 Tabela de coocorrncias de 1 e 2 . . . . . . . . . . . . . . . . . . . . 10
Tabela 3 Dados e dados ajustados com a mdia . . . . . . . . . . . . . . . . . . 12
Tabela 4 Exemplos de bigramas extrados no Portugus . . . . . . . . . . . . . . 19
Tabela 5 Exemplos de trigramas extrados no Portugus . . . . . . . . . . . . . 19
Tabela 6 Exemplos de quadrigramas extrados no Portugus . . . . . . . . . . . 19
Tabela 7 Exemplos de bigramas extrados no Ingls . . . . . . . . . . . . . . . . 19
Tabela 8 Exemplos de trigramas extrados no Ingls . . . . . . . . . . . . . . . . 19
Tabela 9 Exemplos de quadrigamas extrados no Ingls . . . . . . . . . . . . . . 20
Tabela 10 Exemplos de stopwords retiradas do Ingls . . . . . . . . . . . . . . . . 21
Tabela 11 Exemplos de stopwords retiradas do Portugus . . . . . . . . . . . . . 21
Tabela 12 Teste de correspondncia . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Tabela 13 Nmero de Hubs com K=5 . . . . . . . . . . . . . . . . . . . . . . . . 35
Tabela 14 Nmero de Hubs com K=10 . . . . . . . . . . . . . . . . . . . . . . . . 35
Tabela 15 Nmero de Hubs com K=20 . . . . . . . . . . . . . . . . . . . . . . . . 35
Tabela 16 Nmero de Hubs com K=50 . . . . . . . . . . . . . . . . . . . . . . . . 35
Sumrio

1 INTRODUO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Objetivo do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 REFERENCIAL TERICO . . . . . . . . . . . . . . . . . . . . . . 3
2.1 Processamento de linguagem natural . . . . . . . . . . . . . . . . . . 3
2.2 Modelo de linguagem de redes neurais . . . . . . . . . . . . . . . . . 3
2.2.1 Vetores de palavras e relaes semnticas . . . . . . . . . . . . . . . . . . 4

2.2.2 Continuous bag-of-words (CBOW) e Skip-gram . . . . . . . . . . . . . . . 5

2.2.3 Word2vec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2.4 Traduo automtica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.3 Procedimentos estatsticos . . . . . . . . . . . . . . . . . . . . . . . . 7


2.3.1 Mtricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3.1.1 Raw-freq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3.1.2 Chi-quadrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3.1.3 Jaccard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3.1.4 Razo de Verossimilhana (Likelihood ratio) . . . . . . . . . . . . . . . . . . . . 8

2.3.1.5 Mi-like . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3.1.6 PMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3.1.7 Poisson-Stirling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3.1.8 T-Student . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3.2 Principal component analysis (PCA) . . . . . . . . . . . . . . . . . . . . . 11

2.3.3 Gradiente descendente estocstico . . . . . . . . . . . . . . . . . . . . . . 13

3 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1 Etapas do experimento . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Obteno dos corpus . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3 Remoo dos docs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.4 Tokenizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.5 Obteno de n-grams . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.6 Criao do dicionrio bilngue . . . . . . . . . . . . . . . . . . . . . . 20
3.7 Gerando os modelos com o word2vec . . . . . . . . . . . . . . . . . 22
3.8 Gradiente descendente estocstico . . . . . . . . . . . . . . . . . . . 23
3.9 Hubs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1 Teste com PCA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 Teste de correspondncia . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.3 Relaes entre as palavras . . . . . . . . . . . . . . . . . . . . . . . . 29
4.4 Testes dos alphas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.5 Teste de nmero de hubs em K vizinhos . . . . . . . . . . . . . . . . 34
4.6 Teste da posio da palavra correta nos ranks dos pivs . . . . . . 36
4.7 Teste de similaridade dos pivs com as tradues . . . . . . . . . . 39
4.8 Tratamento de hubs: Normalizar os vetores de similaridade . . . . 42
4.9 Tratamento de hubs: Inverter a ordem da fila . . . . . . . . . . . . . 44
4.10 Teste das distncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.10.1 Edit distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.10.2 Norma euclidiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5 CONCLUSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.1 Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Referncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
1

1 Introduo

O trabalho de traduo de um texto no consiste em traduzir uma palavra de


cada vez de uma lngua A para uma lngua B, mas sim lidar com a morfologia, sintaxe
e semntica de duas lnguas distintas para fazer uma ligao entre elas. A ideia de ter
mquinas que fossem capazes de traduzir automaticamente um texto remota ao sculo
XVII [5], ideia a qual comeou a se tornar realidade no sculo XX. Hoje em dia temos
tradutores automticos, mas eles ainda no conseguem fazer um trabalho to bom quanto
um tradutor profissional.

Os sistemas de traduo automtica, geralmente, so desenvolvidos para usar in-


formaes apenas a nvel de frase, ignorando o documento como um todo. Trabalhos
recentes alegam que o contexto ajuda a traduzir palavras de maneira mais coerente [8],
seguindo a hiptese distributiva de Harris: o significado das palavras evidenciado pelo
contexto em que ocorre.[4]

Esses sistemas, normalmente, usam modelos n-gram para representar uma palavra
na lngua alvo. No entanto, h outras formas de representar palavras, tais como vetores,
por exemplo. A ideia de representao distribuda no recente [14], e h modelos que a
utilizam, como o word2vec. Modelos como o word2vec se mostraram robustos e poderosos
em prever relaes semnticas entre palavras, mesmo em diferentes lnguas. Porm eles
no lidam muito bem com os diferentes significados de palavras polissmicas em uma
nica representao.

1.1 Objetivo do trabalho


O objetivo deste trabalho realizar um experimento baseado no trabalho de Miko-
lov [13], e avaliar seus resultados. O experimento original prope um modelo que automa-
tiza o processo de gerar e estender dicionrios e tabelas de frases, utilizando a arquitetura
do word2vec

No captulo 2 apresentamos o referencial terico, no captulo 3 explicada a me-


todologia utilizada, no captulo 4 temos os resultados do experimento e no captulo 5
concluimos e apresentamos sugestes de trabalhos futuros.
3

2 Referencial Terico

Neste captulo so apresentadas as noes tericas estudadas para a compreen-


so e realizao deste trabalho. Algumas das reas abrangidas so: Processamento de
Linguagem Natural, Redes Neurais, Estatstica e lgebra Linear.

2.1 Processamento de linguagem natural


O processamento de linguagem natural (natural language processing ), conhecido
tambm pela sigla PLN, o conjunto de tcnicas computacionais que lidam com pro-
blemas ligados linguagem humana, tanto escrita como falada. Seus principais desafios
englobam o entendimento e extrao de significado da linguagem. O PLN tem importantes
aplicaes como extrao de informao, correo ortogrfica, recuperao de informao,
reconhecimento de voz, traduo automtica dentre outras.

Nas ltimas dcadas o avano da tecnologia tornou possvel implementar ideias


que antes eram apenas vislumbradas. Os trabalhos relacionados ao PLN surgiram no final
da dcada de 1940, com o foco em traduo automtica (machine translation ). Uma das
primeiras pesquisas no campo, foi um trabalho de traduo automtica do Russo para
o Ingls, em um experimento rudimentar e limitado, o qual foi exibido na demonstrao
IBM-Georgetown em 1954.
Outro evento muito importante dessa poca foi o Teddington International Confe-
rence on Machine Translation of Languages and Applied Language Analysis em 1961, onde
trabalhos de vrios pases foram apresentados. Esse perodo foi de entusiasmo e otimismo.
Os que tentaram resolver tarefas de PLN encontraram problemas com o processamento
semntico e sintxico e com variedades lingusticas.[6]

Essas questes ainda representam um grande desafio no campo de traduo au-


tomtica. A traduo automtica tem aparecido em trabalhos recentes [8][13] utilizando
redes neurais. Este trabalho reproduziu um experimento similar ao de Mikolov [13], com
traduo do Portugus para o Ingls.

2.2 Modelo de linguagem de redes neurais


Os modelos de linguagem de redes neurais (neural network language model ) esto
hoje em dia entre as tcnicas mais bem-sucedidas para modelagem estatstica de linguagem
(statistical language modeling ). Um modelo estatstico de linguagem uma distribuio de
probabilidade sobre strings (sequncia de caracteres), que tenta refletir o quo frequente
4 Captulo 2. Referencial Terico

uma string ocorre como uma frase.

Esses modelos foram inspirados no funcionamento do crebro, na capacidade de re-


conhecer padres e aprender com erros e acertos. Os modelos utilizam neurnios artificiais,
os quais so uma abstrao bem simplificada de um neurnio biolgico.

Uma rede neural pode ser vista como um sistema de neurnios, interconectados
que processam informaes em resposta a entradas externas. Geralmente os modelos de
redes neurais so organizados em trs camadas: uma camada como input, uma camada
oculta e uma camada como output. Na figura abaixo temos um exemplo1 da estrutura de
uma rede neural, nela cada n representa um neurnio artificial e as setas representam a
conexo do output de um neurnio com o input de outro.
A entrada de cada neurnio um somatrio ponderado, e esse valor usado como entrada
de uma funo de ativao. As redes neurais precisam de muitas informaes para treino
e tambm precisam de informaes para teste.

Figura 1 Exemplo de arquitetura de rede neural com uma camada oculta

2.2.1 Vetores de palavras e relaes semnticas

Em modelos de redes neurais podemos representar palavras como vetores, e h


duas formas principais de se fazer isso: pela representao explcita e pela representao
distribuda. No primeiro caso cada palavra associada a um vetor que representa os
contextos nos quais a palavra ocorre [9], e no segundo caso os vetores so obtidos em um
modelo de rede neural como o continuous bag-of-words e o skip-gram.

Mikolov [12] mostrou que possvel averiguar relaes de semelhanas entre os


vetores de palavras, gerados utilizando uma rede neural recursiva, com operaes lineares
1 Imagem do artigo https://en.wikipedia.org/wiki/Artificial_neural_network
2.2. Modelo de linguagem de redes neurais 5

simples. Tambm possvel verificar similaridades entre pares de palavras, o exemplo mais
conhecido : King Men + Women = Queen. A igualdade aqui encontrada no signi-
fica que a operao d exatamente igual ao vetor Queen, mas sim que a palavra Queen
a mais prxima do vetor encontrado. Essa similaridade corresponde a dizer que men
est para king da mesma forma que woman est para queen. Essas similaridades tambm
so chamadas de regularidades lingusticas e no se restringem somente ao Ingls. Elas
so capazes de capturar diferentes tipos de relaes, segue alguns exemplos encontrados
por Lopes[2]:
1. Rei +Mulher - Homem = Rainha
2. Areia + Montanha Praia = Neve
3. Inglaterra + Paris Frana = Londres
4. Maior + Pequeno Grande = Menor
5. Vencer + Perdeu Venceu = Perder

2.2.2 Continuous bag-of-words (CBOW) e Skip-gram

No modelo CBOW o input um contexto e o output uma palavra omitida, para isso
se combina as representaes das palavras do em torno para prever a palavra do meio.
considerado como contexto as palavras que esto ao redor da palavra alvo . Um exemplo
usar como contexto as duas palavras anteriores a e as duas palavras posteriores. No
caso de uma frase 1 2 3 4 5 o contexto da palavra 3 1 2 4 5 .

No modelo skip-gram o objetivo : ao ser dada uma palavra, poder prever o seu
contexto. Nesse caso, o input, uma palavra que passa por uma camada oculta e tem
como output o contexto mais provvel.

Os dois modelos se utilizam de uma rede neural com uma camada oculta para
gerar o output, e do algoritmo de back propagation para atualizar, ou apenas pesar, os
valores dos parmetros conforme observam novospara exemplos.

2.2.3 Word2vec

O word2vec um ferramenta open-source, feita por Mikolov et al. [11], que utili-
zada para calcular representaes de palavras como vetores. Ele oferece duas arquiteturas
como opo: continuous bag-of-words (CBOW) e skip-gram. O word2vec funciona tomando
um corpus como input e devolvendo vetores de palavras como output. No processo cons-
trudo um vocabulrio, e ocorre o aprendizado das representaes do vocabulrio como
vetores. Pode-se escolher qual das duas arquiteturas ser utilizada. Na prtica o skip-gram
oferece uma representao melhor de palavras quando a base de dados menor. CBOW
mais rpido e aplicvel em grandes bases de dados [13]. Na figura abaixo temos um mo-
delo simplificado de como funcionam as arquiteturas. No CBOW se prev uma palavra
6 Captulo 2. Referencial Terico

baseado no contexto, no skip-gram se prev as palavras em torno de uma palavra dada


[10].

Figura 2 Representao da arquitetura do CBOW e Skip-Gram - Figura retirada de um


artigo do Mikolov [13]

2.2.4 Traduo automtica

Mikolov e Wolf propuseram extenses bilngues da arquitetura do word2vec. A


base dos sistemas modernos de traduo automtica so dicionrios e tabelas de frases.
Mikolov [13] gerou e utilizou um dicionrio bilngue para treino e teste, e teve como
objetivo resolver o seguinte problema de otimizao:


2 ,

min

=1

onde uma matriz de traduo, que comea com valores aleatrios e ser
ajustada, { , }=1 so pares de vetores de palavras associados, onde a representao
distribuda da palavra na lngua fonte e a o vetor representao da sua traduo na
lngua alvo.

Para construir esse modelo necessrio construir modelos monolngues usando


grande quantidade de textos, depois usa-se um dicionrio bilngue para aprender a pro-
jeo entre as lnguas. Tratando cada lngua como um espao vetorial pode-se capturar
o relacionamento entre eles por um mapeamento. Esse mtodo e baseia na premissa que
palavras com os mesmos significados, em lnguas distintas, apresentam um arranjo geom-
2.3. Procedimentos estatsticos 7

trico semelhante. Isso ocorre pelo fato de as lnguas compartilharem conceitos semelhantes,
como por exemplo que o gato um animal menor que um cachorro e que alto o oposto
de baixo.

2.3 Procedimentos estatsticos

2.3.1 Mtricas

Collocations so as combinaes de duas ou mais palavras, e que ocorrem natural-


mente dentro de uma lngua. Neste trabalho as collocations sero tratadas por n-grams,
sendo n o nmero de palavras seguidas que, juntas, formam uma unidade de sentido, como
So Paulo e Rio de Janeiro. Para se extrair, automaticamente, candidatos a n-grams
necessrio usar alguma mtrica de associao. As mtricas de associao so frmulas
matemticas que interpretam dados que tem uma coocorrncia frequente. Para cada par,
ou n-upla (se forem palavras), de palavras, as mtricas vo associar uma nota e vo
retornar como resultado os candidatos em ordem.

Os modelos estatsticos de coocorrncias vo levar em considerao as frequncias


observadas e as frequncias esperadas, exemplificadas na tabela a seguir.
representa a primeira posio em um bigrama, e representa a segunda posio. A
tabela de frequncia observada pode ser vista da seguinte maneira: na primeira linha,
esquerda, teremos quantas vezes o bigrama foi observado no texto, e direita quantas
vezes tivemos um bigrama que a primera palavra no fosse mas a segunda era . Na
segunda linha temos, esquerda, quantos bigramas tinham na primeira posio e uma
palavra diferente de na segunda, e por ltimo temos o caso em que a primera palavra
no e a segunda no .

Tabela 1 Frequncias observadas e frequncias esperadas

= = Total
= =
= 11 12 = 1 1 1 1 2
= 11 =
12 =
= 21 22 = 2 2 1 2 2
= 21 = 22 =
Total = 1 = 2 =

Tanto o experimento como as mtricas foram feitos com trigramas, mas as expli-
caes e exemplos de seus funcionamentos sero com bigramas. O experimento consistiu
em analisar um dos textos do portugus. Nesse texto foi aplicado a mtrica raw-freq igual
a 100, explicado logo abaixo, e isso resultou em 1126 trigramas que foram analisados ma-
nualmente. Desses trigramas, foram considerados 42 bigramas vlidos, 20 trigramas e 16
quadrigramas. Os testes utilizando as mtricas abaixo consistiram em analisar quantos
8 Captulo 2. Referencial Terico

desses trigramas e quadrigramas vlidos apareciam, aps se usar o filtro de frequncia,


2
dentro os 10% mais relevantes encontrados. As mtricas esto disponveis pelo NLTK

As mtricas testadas foram as seguintes:

2.3.1.1 Raw-freq

Essa a mtrica mais simples, os n-grams vo ser classificados pelo nmero de


vezes que aparecem no texto, os que tem uma frequncia muito baixa sero desconside-
rados. Essa mtrica foi utilizada como um primeiro filtro no trabalho, isto , s foram
considerados n-grams que apareceram pelo menos 100 vezes no texto.

2.3.1.2 Chi-quadrada

Essa mtrica avalia os n-grams usando a chi-quadrada de Pearson. Essa tcnica


no assume que os eventos observados tenham uma distribuio normal de probabilidade.
A essncia dele comparar as frequncias observadas com as frequncias esperadas, se a
diferena entre essas duas frequncias for grande, temos evidncia contra a hiptese nula
de independncia.

A chi-quadrada calculada como sendo o quadrado da diferena entre a frequncia


observada menos a esperada, sobre a frequncia esperada.

2.3.1.3 Jaccard

Os n-grams so classificados usando o index de Jaccard, tambm so conhecidos


por coeficiente de similaridade de Jaccard. Esse mtodo usado para comparar a simila-
ridade e diversidade de conjuntos, ele definido como o tamanho da interseo dividido
pelo tamanho da unio dos conjuntos.

2.3.1.4 Razo de Verossimilhana (Likelihood ratio)

As razes de verossimilhana so mais apropriadas para dados esparsos do que a


chi-quadrada de Pearson. As razes de verossimilhana nos diz o quo mais provvel
uma hiptese em relao a outra.

Usando o bigrama 1 2 como exemplo: a primeira hiptese (hiptese nula)


de independncia, a ocorrncia de 2 independente de 1 ter ocorrido, j a segunda
hiptese a formalizao da dependncia,

Hiptese 1. (2 |1 ) = = (2 |1 ),
Hiptese 2. (2 |1 ) = 1 = 2 = (2 |1 ).

2 http://www.nltk.org/api/nltk.metrics.html# nltk.metrics.association.NgramAssocMeasures
2.3. Procedimentos estatsticos 9

Seja 1 , 2 e 12 o nmero de ocorrncias de 1 , 2 e 1 2 respectivamente no


texto, temos
2 12 2 12
= 1 = 2 =
1 1
Assumindo uma distribuio binomial (; , ) = (1) para as palavras,
a verossimilhana que de fato vai ser observada

(1 ) = (12 , 1 , ) (2 12 ; 1 , ) para hiptese 1,


(2 ) = (12 , 1 , 1 ) (2 12 ; 1 , 2 ) para hiptese 2.

O da razo de verossimilhana ser


(1 )
( )
() = log .
(2 )

Se obtivermos um valor pequeno para () significa que a hiptese 2 explica


melhor os dados que a hiptese 1, ento o par de palavras 1 2 tende a ser um bigrama.

2.3.1.5 Mi-like

Classifica os n-grams com uma variao da informao mutua (mutual informa-


tion). A Mi calculada da seguinte maneira:
11
( )
Mi = log ,
11

sendo 11 = a frequncia conjunta de 1 2 e 11 = (1 1 )/, sua frequncia


esperada sobre independncia, onde 1 o total de bigramas onde 2 aparece como
segunda palavra, 1 total de bigramas onde 1 aparece como primeira palavra e o
total de bigramas.

O Mi-like uma variao do Mi, e a diferena dele um expoente no valor de trs,


a frmula dele 3
11
( )
Mi = log
3
11

2.3.1.6 PMI

Pointwise mutual information (PMI) uma medida de associao, que mede o


quanto duas palavras esto associadas, em caso de bigrama. Por exemplo, se o (1 , 2 ) =
18, significa que ao saber que na posio do texto temos a palavra 1 , ento as chan-
ces de termos 2 na posio + 1 aumentar em 18 vezes. Calcula-se a razo entre a
probabilidade conjunta dos eventos e suas probabilidades separadas

(1 , 2 )
( )
pmi(1 ; 2 ) := log .
(1 )(2 )
10 Captulo 2. Referencial Terico

2.3.1.7 Poisson-Stirling

A mtrica de Poisson-Stirling uma aproximao logartmica negativa da medida


poisson-verossimilhana.

Tabela 2 Tabela de coocorrncias de 1 e 2

2 2 Total
1 11 12 1
1 21 22 2
Total 1 2

Conforme a tabela, vamos considerar que 11 seja o nmero de vezes que 1 e 2


ocorreram juntas, 12 o nmero de vezes que 1 ocorreu com outra palavra que no seja
2 . O 21 o nmero de vezes que 2 apareceu como segunda palavra no bigrama, sendo
que a primeira era diferente de 1 , e 22 o caso que a primeira palavra no 1 e a
segunda no 2 . O 1 o nmero total de vezes que 2 ocorreu como sendo a segunda
palavra nos bigrama, 1 o total de vezes que 1 foi a primeira palavra dos bigramas, e
o total de bigramas. Considere
1 1
=

A frmula dessa medida ser:

Poisson-Stirling = 11 (log(11 ) log( ) 1)

2.3.1.8 T-Student

Essa mtrica observa a mdia e varincia de uma amostra, ao olhar a diferena


entre uma mdia esperada e uma observada, alterada com a varincia, ela nos informa o
quo provvel retirar uma amostra com aquela mdia e varincia.

Consideremos as frmulas

nmero de vezes que 1 apareceu no corpus


(1 ) = ,
nmero de tokens no corpus

nmero de vezes que 2 apareceu no corpus


(2 ) = .
nmero de tokens no corpus

A hiptese nula a que a ocorrncia entre elas duas palavras so independentes.


2.3. Procedimentos estatsticos 11

= (1 2 ) = (1 ) (2 )

Se a hiptese nula for verdadeira, ento se gerarmos bigramas aleatoriamente e


atribuir o valor 1 quando aparecer 1 2 e 0 nos demais casos, teremos uma distribuio
Bernoulli com = (1 ) (2 ), a mdia ser e a varincia (1 ) . Seja


= 2 ,

onde a mdia observada, a mdia esperada, a varincia 2 e o total de tokens.


Se observarmos na tabela da distribuio e olharmos o valor corresponde a um nvel de
significncia de = 0.005, e esse valor for menor do que o calculado, ento poderemos
rejeitar a hiptese nula. No caso de ser maior, a hiptese nula no pode ser rejeitada e 1
e 2 no so independentes.

2.3.2 Principal component analysis (PCA)

PCA a sigla utilizada para principal component analysis (anlise do componente


principal). PCA uma tcnica estatstica que tem aplicaes em reas como reconheci-
mento facial e compreenso de imagens. uma tcnica comum para encontrar padres
em dados de alta dimenso. O PCA foi utilizado nesse trabalho para reduzir as dimenses
dos vetores, de 100 para 2, para ser assim possvel a observao do arranjo geomtrico de
alguns vetores em duas dimenses. O PCA pode ser resumido em alguns passos:

Colher os dados

Subtrair a mdia

Calcular a matriz de covarincia

Calcular autovetores e autovalores

Escolher componentes e formar vetor de caracterstica

Gerar novos dados

Se considerarmos, por exemplo, que temos dados em 3 dimenses, , e , e que




a mdia de
= =1

, podemos ver os dados e os dados ajustados (dados menos a
mdia) como tabelas:
12 Captulo 2. Referencial Terico

Tabela 3 Dados e dados ajustados com a mdia

X Y Z
1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
.. .. .. .. .. ..
. . . . . .

Lembrando que a covarincia entre duas variveis aleatrias



=1 ( )( )
(, ) =
1

Iremos ento gerar uma matriz de covarincia C,


, sendo o nmero de
dimenses. Aqui no exemplo = 3, logo a matriz de covarincia ser 3 3.



(, ) (, ) (, )
C = (, ) (, ) (, ) .



(, ) (, ) (, )

Depois de ter calculado a matriz de covarincia, necessrio achar autovetores


(1 , 2 , 3 ) e autovalores (1 , 2 , 3 ) correspondentes.
Considere 1 > 2 > 3 . Como desejamos diminuir para duas dimenses, vamos pegar
dois autovetores, 1 e 2 , correspondentes a 1 e a 2 , respectivamente.

Devemos pegar os autovetores escolhidos e trat-los como vetores linha, e em seguida


coloc-los juntos em uma matriz. Nesta matriz, a primeira linha o autovetor associado
com o maior autovalor, na segunda linha o autovetor associado ao segundo autovalor e
assim por diante.
Para obter os dados finais, ou seja, a representao em duas dimenses dos nossos vetores,
basta realizar a seguinte operao:

1
1 1
1 =


2 1
1

Obtendo assim 1 e 1 , as duas novas coordenadas do primeiro dado (que original-


mente tinha as coordenadas 1 , 1 , 1 em trs dimenses).
2.3. Procedimentos estatsticos 13

2.3.3 Gradiente descendente estocstico

Tanto problemas da rea de estimao estatstica, como da rea de aprendizado


de mquina (machine learning ), se utilizam da minimizao de uma funo objetiva.
Neste trabalho foi utilizado a tcnica de estimao conhecida como gradiente descendente
estocstico (stochastic gradient descent ), pois esta foi utilizada no trabalho de Mikolov
[13].

O gradiente descendente estocstico um mtodo de otimizao, onde o parmetro


desejado atualizado a cada iterao, como na maioria dos algoritmos de otimizao.

Nesse trabalho ele foi utilizado para podermos calcular a matriz de traduo,
usada para achar uma correspondncia entre as palavras, do espao vetorial do treino em
Portugus, no espao vetorial do treino em Ingls.

O espao do Portugus ser referido como fonte e o do Ingls como alvo. Ento
queremos achar , que uma matriz de pesos, sendo vetores treino do espao fonte
e sua traduo correspondente no espao alvo. O problema de otimizao :


2

min

=1

Para isso a cada iterao, com cada um dos vetores do treino, as entradas de
sero atualizadas da seguinte forma:

= ( )

onde representa a taxa de aprendizado da rede neural, tradicionalmente dese-


jvel utilizar um valor pequeno. Vamos ilustrar um exemplo de como funciona a primeira
iterao desse mtodo.

Considere o primeiro vetor de treino do Portugus e o primeiro vetor do treino


do Ingls. Seja = [1 , 2 , 3 ], = [1 , 2 , 3 ], uma matriz 3 3 e = =
[1 , 2 , 3 ].
As entradas iniciais de so geradas aleatoriamente. Consideremos a seguinte
funo de perda:
3
=1 2
= .
2

Logo estamos interessados na derivada parcial de loss com relao a cada um dos
.


= ( )

14 Captulo 2. Referencial Terico

Alguns modelos utilizam a funo sigmoide neste mtodo como funo de ativao,
que a responsvel pela ativao das sadas. Nesses casos teremos = e
1
=
1 +

e a derivada de com relao a


= .
(1 + )2

Portanto a atualizao de cada entrada de ser


= ( ) .

15

3 Metodologia

Neste captulo so apresentados os passos necessrios para a realizao do experi-


mento, abrangendo as etapas de limpeza e preparo do Corpus para utiliz-lo no modelo
do word2vec, alm de apresentar a gerao da matriz de traduo e algumas dificuldades
encontradas.

3.1 Etapas do experimento


O trabalho aqui descrito foi baseado no experimento que Mikolov fez com as lnguas
Inglesa, Espanhola e Tcheca [13], e aqui ser com Ingls e Portugus. O objetivo do
trabalho utilizar dois corpus monolngues, tratar os dois corpus, em seguida utilizar
o word2vec para gerar os vetores de palavras em cada uma das lnguas e calcular uma
matriz de traduo que consiga transpor um vetor de uma lngua A para uma lngua B.
Aqui sero mostrados os passos para poder gerar o modelo.
Os passos a serem feitos antes de se utilizar o word2vec foram:

Obteno do Corpus

Diminuio do nmero de documentos

Remoo das linhas com <doc>

Remoo dos endereos web (qualquer token que contenha http ou www)

Tokenizao

Remoo de caracteres de pontuao (como !?,) restando apenas os pontos finais

N-gram representados como um token

Remoo de stopwords

Depois diversas tentativas verificou-se que seguir os passos, nessa ordem, era a
melhor maneira de preparar o Corpus. Essa tentativas incluiram testar os passos em
ordens diferentes e tentar fazer os procedimentos com um nico texto para cada um das
lnguas. Tambm foi contemplada a ideia de identificar automticamente n-grams nmeros
e representa-los como um token, mas como seria necessrio um algortimo melhor do que
o imaginado, logo essa ideia ficou para trabalhos futuros.
16 Captulo 3. Metodologia

3.2 Obteno dos corpus


Os corpus utilizados para reproduzir os experimentos foram os dumps (dados de
uma base de dados) da Wikipdia em Ingls1 e em Portugus2 . A parte utilizada foi a que
contm a descrio Recombine articles, templates, media/file descriptions, and primary
meta-pages.
Para extrair os dados foi utilizado um script3 chamado WikiExtractor.py. Essa
ao pode ser executada rodando o cdigo abaixo no terminal
bzcat nome_do_arquivo | python WikiExtractor.py.
O dump da enwiki resultou em 4.200 arquivos de texto, distribuidos em 42 pastas,
e da ptwiki 2.513 arquivos, distribudos em 26 pastas. No Portugus foram 881.027 artigos
da Wikipdia distribudos nas 26 pastas, com uma mdia de 33.885 artigos por pasta. O
que continha mais artigos foram 56.216 e o que continha menos foram 5.368. No Ingls
foram 317.612 artigos, com mdia de 7.562 por pasta.

A primeira etapa foi reduzir o nmero de arquivos trabalhados, atravs de um


programa feito em Python, o qual juntou todos os textos de uma pasta em um nico
arquivo de texto. Restaram 42 arquivos de texto para o Ingls e 26 para o Portugus, os
quais somam 2.1 Gb e 1.3 Gb respectivamente. Isso foi prefervel ao invs de ter apenas
um arquivo para cada lngua, para assim no sobrecarregar a mquina ao processar esses
textos nas prximas etapas.

3.3 Remoo dos docs


H vrios artigos da Wikipdia em cada um dos textos trabalhos. No comeo de
cada artigo temos o sua representao com um doc id, como por exemplo:
<doc id="412475" url="https://pt.wikipedia.org/wiki?curid=412475"title="Cinemateca Brasileira">

Nesta etapa o foco foi retirar as linhas que continham essas informaes. Ento
toda linha em que se encontrava um <doc id=...> ou </doc> foi eliminada. Em seguida
foram retirados todos os endereos de pginas na web, isto , qualquer token que contivesse
http ou www.

3.4 Tokenizao
Na etapa da tokenizao foi utilizado o script do Statmt 4 nos 68 textos, preparando-
os assim para separao das palavras com as pontuaes.
1 http://dumps.wikimedia.org/enwiki/20150901/
2 http://dumps.wikimedia.org/ptwiki/20150901/
3 https://github.com/NAMD/ptwp_tagger
4 http://www.statmt.org/wmt09/scripts.tgz
3.5. Obteno de n-grams 17

Para utilizar o script foi rodada uma linha de cdigo no terminal no seguinte
modelo:
scripts/tokenizer.perl -l en < wiki-en/AA/wiki_00 > working-dir/parte1/wikien-AA00

Esse script separa as palavras das pontuaes, deixando um espao entre elas. Por
exemplo a frase
Este artigo sobre clculo estocstico em geral, para equaes diferenciais
estocsticas.
seria separada nos seguintes tokens: Este artigo sobre clculo
estocstico em geral, para equaes diferenciais estocsticas..

Ou seja Este seria considerado um nico token, com as aspas assim inclusas,
e o mesmo ocorre com estocsticas..
Com o script sendo utilizado antes, a separao de tokens fica:
Este artigo sobre clculo estocstico em geral , para equaes
diferenciais estocsticas .

Dessa forma fica muito mais fcil a remoo das pontuaes e a separao de
frases, que ocorrero nas etapas seguintes. A retirada dos endereos web tive que ser
antes, justamente por representarem apenas um token antes do script, e aps o mesmo
seria mais trabalhoso retirar o endereo inteiro.

Em seguida, foi a etapa de retirar toda a pontuao dos textos, e todos os tokens
ficaram com um espao de distncia. Nesse processo foram feitas duas cpias para cada
arquivo: uma sem pontuao nenhuma e a outra quase sem pontuao, restando apenas
as de final de frase (., ! e ?) que foram transformadas em ponto final.

Essa distino foi necessria, pois para a etapa de obteno dos n-grams foram
utilizados os arquivos sem pontuao, e para o processo de gerar o input para o modelo
word2vec foi necessrio delimitar aonde as frases terminavam, a demarcao utilizada foi
o ponto final.

3.5 Obteno de n-grams

A etapa seguinte foi o processo de obter os n-grams. Foi utilizada a biblioteca


fornecida pelo NLTK 5 , dessa forma foram levantados n-grams automaticamente. Ao
processar cada texto (sem nenhuma pontuao) obtivemos alguns milhes de trigramas
possveis, e um nmero maior ainda de bigramas. Devido ao tempo que seria gasto para
analisar todos, manualmente, se faz necessria a implementao de filtros.

O primeiro filtro utilizado foi a frequncia, pois um conjunto de n-grams que


5 http://www.nltk.org/howto/collocations.html
18 Captulo 3. Metodologia

aparecem muitas vezes, tende a ser uma unidade nica de sentido. O experimento foi feito
procurando trigramas, ou seja, trs palavras seguidas que representem um nico sentido.

O valor imposto para o filtro de frequncia foi igual a 100, ou seja, s passaro para
prximo filtro aqueles conjuntos de n-grams que apareceram juntos mais de 100 vezes.
Essa etapa reduz o nmero de n-grams para a casa dos milhares, algo em torno de 1000 e
2000 possvel trigramas. O segundo filtro foi a utilizao de uma das mtricas disponveis
pelo NLTK.

Para decidir qual das mtricas seria a utilizada foi realizado um teste com uma
das selees de trigramas depois da primeira etapa, que continha 1126 trigramas. Eles
foram avaliados, manualmente, individualmente, e classificados como sendo vlidos como
trigramas, como n-gram (onde n maior que trs), bigrama, casos dbios ou descartados.

Em seguida, esse texto passou pela segunda etapa em 7 mtricas distintas, e os


resultados foram comparados para observar a que retornava o maior nmero de trigramas
e quadrigramas do conjunto anterior. As mtricas testadas foram:

Chi-quadrada

Jaccard

Verossimilhana (Likelihood ratios)

Mi-like

Pointwise mutual information (PMI)

Poisson-Stirling

T Student

A mtrica que mostrou um melhor resultado foi a Mi-like. No levantamento manual


foram averiguados 20 trigramas, 40 bigramas e 16 trigramas que fazem parte de n-grams
maiores, por exemplo, rio grande do sul um quadrigrama, e em trigramas deve aparecer
como rio grande do e grande do sul. O melhor resultado foi o da Mi-like, que retornou
7 dos 16 quadrigramas e 12 do trigramas.

Na etapa seguinte todos os textos foram colocados em letras minsculas, e passa-


ram por esses dois filtros, o de frequncia e o mi-like, para retornar candidatos a trigramas.
Em seguida foram analisados manualmente 10 % do total de candidatos de cada texto,
e eles foram descartados ou classificados como sendo um bigrama, um trigrama ou um
n-gram maior. No final todos n-grams aprovados foram agrupados. Nas tabelas abaixo
temos exemplos dos bigramas, trigramas e quadrigramas extrados nos modelos.
3.5. Obteno de n-grams 19

Tabela 4 Exemplos de bigramas extrados no Portugus

buenos aires ar livre altos pirenus alta normandia


alto reno amrica latina animal kingdom arranha cus
assemblia legislativa baixa normandia santa catarina segunda guerra
serra leoa sistema solar so paulo nova york

Tabela 5 Exemplos de trigramas extrados no Portugus

frica do sul angra do herosmo amrica do norte


amrica do sul artes marciais mistas billboard hot 100
campeonato sul americano cidade do mxico copa do mundo
hall of fame comit olmpico nacional d joo V
rio de janeiro guns n roses msica popular brasileira

Tabela 6 Exemplos de quadrigramas extrados no Portugus

campeonato mundial de atletismo estados unidos da amrica


ndice de desenvolvimento humano jogos olmpicos de vero
rio grande do sul the new york times
united states census bureau united states of america
nord pas de calais rendimento mdio per capita

Tabela 7 Exemplos de bigramas extrados no Ingls

able to academy award african american air force


all star milky way native american new york
new testament new zealand nobel prize spread out
summer olympics supreme court soviet union united kingdom

Tabela 8 Exemplos de trigramas extrados no Ingls

as part of as well as bank of america new york city


new york times new south wales papua new guinea tom and jerry
summer olympic games tour de france u s army u s navy
world trade center world war i world war ii world wide web
20 Captulo 3. Metodologia

Tabela 9 Exemplos de quadrigamas extrados no Ingls

at the same time massachusetts institute of technology


national academy of sciences united states of america
united states postal service world championships in athletics

Depois de ter feito o levantamento dos n-grams, e ter mantido apenas os conside-
rados vlidos, utilizamos os textos obtidos aps a utilizao do script, nos quais a maioria
das pontuaes foram removidas e os caracteres ? e ! foram substitudos por .. Nes-
ses textos foram feitas as substituies dos n-grams encontrados. Aps os textos estarem
nesse formato final poderemos separ-lo em frases.

3.6 Criao do dicionrio bilngue


A etapa seguinte foi a criao de um dicionrio das palavras mais frequentes, como
nesse experimento foi do Portugus para o Ingls, foram consideradas as palavras mais
frequentes do Portugus. Para isso foram retiradas as stopwords, utilizando a lista de
stopwords que existe no NLTK. Stopwords so palavras que possuem pouco ou nenhum
valor semntico, a retirada de stopwords uma tarefa comum em anlise de textos, pois
achar relaes entre palavras como e e de no acrescenta nenhuma informao relevante.

Em seguida foram levantadas as 1000 palavras mais frequentes de cada um dos


26 textos do Portugus, sem considerar as repeties. Foram levantados 6730 palavras,
das quais muitas foram desconsideradas por serem nomes prprios (lisa, jimmy, stephan,
anna, laura), smbolos (, , , ), palavras estrangeiras (little, were, stone, girls, life, plze,
pinja), nmeros (6,0, 5,8, 254, 1987), algarismos romano (xv, viii, ii), abreviaes (t., v.,
h., sc, rj, b., atp), letras soltas (b, r, ss, g) algumas palavras do Portugus que no existem
no Ingls ou so iguais (catarinense, carioca, paulista, paraguaio, baiano) e alguns nomes
de lugares (meurthe-et-moselle, haute-sane, maine-et-loire, haute-loire).

Essas escolhas foram necessrias para manter apenas as palavras que sejam rele-
vantes para a lngua portuguesa e que tenham um correspondente que seja significativo no
Ingls. As tradues foram feitas uma a uma, manualmente, utilizando o Google Translate
como auxiliar, e algumas escolhas tiveram que ser feitas. Algumas palavras poderiam ser
traduzidas de mais de uma forma, com em casos de sinnimos, e foi necessrio escolher
qual das tradues utilizar. Outras palavras como estao, mata, cobre, cobertura e
tomada tem mais de um significado, e dependendo do contexto podem significar coisas
bem distintas. Estao pode ser traduzida como station ou season, mata pode ser do
verbo matar ou de mata relacionada com floresta, por exemplo.

Alm disso, algumas palavras que possuem uma grafia diferente em Portugus
3.6. Criao do dicionrio bilngue 21

Europeu e Portugus Brasileiro foram modificadas no corpus posteriormente, como actual,


facto, actor e actriz para atual, fato, ator e atriz respectivamente.

Durante as tradues alguns bigramas e trigramas de verbos e substantivos fo-


ram gerados para o Ingls, como por exemplo: new_zealand, south_bohemian, euro-
pean_union, stand_out. Depois de ter peneirado as palavras e ter feito as tradues,
obtivemos um dicionrio com um pouco mais de 5000 palavras.

Como mencionado anteriormente, foi necessrio remover stopwords antes de gerar


os modelos com o word2vec. As palavras escolhidas como stopwords foram baseadas na
lista disponibilizadas pelo NLTK, com algumas adaptaes, uma vez que estamos inte-
ressados em diferenas de gnero para o treino do modelo, palavras como ele, ela (no
Portugus) e he, she (no Ingls) foram mantidas no modelo, alm de conjugaes de
verbos.

Tabela 10 Exemplos de stopwords retiradas do Ingls

our ours it its itself


who whom this that these
an the and but if
as until while of at
with about against between into
before after above below to
down in out on off
again further then once here

Tabela 11 Exemplos de stopwords retiradas do Portugus

de os da e o
se por as aquele entre
nos pela havia me como
pelos estes depois este para
isto do mesmo num a
no em esses pelas
que na te aos dos
das esta at esse mas
22 Captulo 3. Metodologia

3.7 Gerando os modelos com o word2vec

Os modelos foram gerados com o word2vec. Para poder rodar o word2vec basta
instalar o Gensim6 , e rodar:
>>> model = Word2Vec(sentences, size=100, window=5, min_count=5, workers=4)
O parmetro sentences o input. Todos os textos da base de dados devem ser
colocadas no formato de frases, como por exemplo:
sentences = [[primeira, frase], [segunda, frase]]
O argumento size o tamanho dos vetores do nosso modelo, window o tamanho
mximo das frases que o modelo vai analisar por vez, e min count quantas vezes uma
palavra precisa aparecer, no mnimo, para ser includa no modelo. Workers o nmero
de threads usados para o treinar o modelo. possvel gravar o modelo e depois rod-lo,
sem precisar treina-lo novamente.

Inicialmente haviam 333M tokens no Ingls e 191M no Portugus. Aps a retirada


do doc, html e pontuao a quantidade passou a ser 332M no Ingls e 185M no Portugus.
Com as mudanas dos n-grams e a retiradas dos stopwords o total de tokens que foram
utilizadas para gerar os modelos foram: 235M para o Ingls e 133M para o Portugus.
Nesse total so considerados todos os tokens dos textos, independente de quem so e
quantas vezes se repetem. No vocabulrio gerado pelo word2vec so considerados quantos
tokens diferentes existem no modelo, removendo repeties. No modelo em Ingls obtive-
mos um vocabulrio de 513k tokens e no Portugus um vocabulrio de 447k tokens. Os
vetores de palavras tem 100 dimenses.

Pode-se testar os modelos de algumas formas, um exemplo o teste de correspon-


dncia que, de forma genrica, representado por A est para B assim como C est para
D. Outro exemplo o teste para identificar qual a palavra que no pertence a um grupo,
por exemplo no grupo gato cachorro vaca cadeira o elemento que no pertence a ele
cadeira, por no ser um animal.

O Google disponibiliza um conjunto de teste7 com aproximadamente 20.000 exem-


plos sintticos e semnticos, que segue a lgica:
A est para B assim como C est para D".
Esse teste foi adaptado e traduzido manualmente para o Portugus. A instruo para
executar esse teste aparenta ser simples8 , bastando uma linha de comando:

model.accuracy(/tmp/questions-words.txt)

Mas, infelizmente, a tentativa de utilizar essa linha de comando no ocorreu como o


esperado. Logo, foi necessrio programar esse teste para analisar as correspondncias.
6 https://radimrehurek.com/gensim/install.html
7 http://word2vec.googlecode.com/svn/trunk/questions-words.txt
8 http://rare-technologies.com/word2vec-tutorial/
3.8. Gradiente descendente estocstico 23

Com o dicionrio em mos, ainda necessrio verificar a cobertura do vocabulrio


no Ingls, pois podem haver palavras que esto no dicionrio e no esto no modelo. As
palavras do Ingls que no se encontravam no modelo tiveram seus pares descartados do
dicionrio, restando ao todo 4811 pares. Desse total 3311 foram utilizadas para treino e
1500 para teste.

3.8 Gradiente descendente estocstico


No experimento de Mikolov foram usadas as 5000 palavras mais frequentes da ln-
gua fonte, e suas tradues geradas automaticamente pelo Google Translate, como treino.
1000 palavras na lngua fonte e suas tradues foram deixadas para teste. Foram repor-
tados os 5 candidatos mais provveis (top 5) para traduo ao invs de uma s palavra
como candidata, pois o top 1 (apenas uma traduo) altamente superestimado devido
a tradues de sinnimos serem contadas como um erro.

Utilizando o dicionrio, mapeamos as palavras da lngua fonte (Portugus) para a


lngua alvo (Ingls) com o mtodo do gradiente descendente estocstico. Foram utilizadas
seis variaes desse mapeamento para comparaes:
1 - Sem a funo sigmoide e com 3311 palavras para treino
2 - Com funo sigmoide e com 3311 palavras para treino
3 - Sem funo sigmoide e repetindo as 3311 palavras 10 vezes
4 - Com funo sigmoide e repetindo as 3311 palavras 10 vezes
5 - Sem a funo sigmoide, com 3311 palavras para treino e distribuio uniforme em
um intervalo pequeno (menor que [0, 1])
6 - Sem a funo sigmoide, com 3311 palavras para treino e distribuio normal em um
intervalo pequeno (menor que [1, 1])

Cada entrada das quatro primeiras matrizes foi gerado inicialmente por uma dis-
tribuio uniforme [0, 1]. As entradas das duas ltimas tiveram o tamanho do intervalo
da distribuio testado, e a mdia, de cada entrada de 6 , foi mantida com o valor zero.
Cada uma das variaes acima gerou uma matriz de traduo diferente. No algoritmo
do gradiente descendente necessrio determinar previamente a taxa de aprendizado,
denotado por . Para isso foram feitos testes para calcular qual seria o valor que gera o
menor erro relativo.

3.9 Hubs
9
O Gensim disponibiliza algumas funes que podem ser utilizadas em modelo.
Dentre essas funes, existe a funo most similar, que pode ser usada para procurar os
9 https://radimrehurek.com/gensim/models/word2vec.html
24 Captulo 3. Metodologia

vizinhos mais prximos de uma palavra, usando o valor do cosseno entre seus vetores
como medida, ou para procurar a palavra mais similar em um teste de correspondncia.

Um dos primeiros testes realizados com os modelos foi a busca dos vizinhos
mais prximos das palavras mapeadas, e este no funcionou como esperado, as tradues
corretas no se encontravam com igual a cinco, dez ou cem. Aps anlise e pesquisa na
literatura, surgiu a suspeita de existirem hubs no espao. Hubs so vetores que tendem a
estar prximos de vrios outros ao mesmo tempo. A presena desses vetores um problema
intrnseco de espaos com altas dimenses.

No trabalho de Dinu [3] foi apresentada uma forma de medir o quanto um vetor
um hub, isto , quanto mais alta sua pontuao mais hubby ele . utilizada a nomen-
clatura hubby para dizer se referir a qualidade de ser hub. Tambm foram propostos dois
mtodos para corrigir globalmente a recuperao de vizinhos.

A partir desse momento os vetores mapeados com as matrizes , do Portugus


para o Ingls, sero chamadas de pivs neste trabalho. Para medir o quo hubby um vetor
com respeito a um conjunto de pivs basta contar quantas vezes ele aparece como um
dos k-vizinhos de cada um dos pivs.

Existem alguns mtodos para corrigir a recuperao a vetores, diminuindo a im-


portncia dos hubs. Um mtodo proposto por Radovanonic et al [14] e Tomasev et al
[16] foi o de calcular as pontuaes de quo hubby cada um dos elementos no espao alvo
eram. Assim dado um rank de vizinhos prximos a um vetor podemos refazer esse rank
diminuindo a importncia dos elementos com uma pontuao alta.

No trabalho de Dinu foram propostos dois mtodos, que neste trabalho foram
reproduzidos. O primeiro mtodo consiste em normalizar os vetores de similaridade. Para
isso necessrio criar vetores de similaridade para cada um dos elemento do espao
alvo, neste caso so todos os vetores do vocabulrio do modelo do Ingls, pois todos tem
potencial de ser uma traduo correta.

Um vetor de similaridade de um dos vetores do espao, possui 1500 dimenses, pois


cada uma das entradas associada com um dos pivs. Por exemplo, na primeira entrada
vai estar o valor do cosseno entre os dois vetores, o vetor do espao alvo em questo e o
primeiro dos 1500 pivs. A normalizao necessria para penalizar os vetores que tem
alta similaridade com muitos pivs. Esta foi calculada usando a funo linalg.norm em
Python. Para normalizar um vetor divide-se cada uma de suas entradas pelq raiz da soma
dos quadrados de todas as entradas.

O segundo mtodo proposto no modifica os pesos das pontuaes de similaridade,


porm modifica o rank dos elementos alvos ao invs de retornar os vizinhos mais prximos
da forma tradicional. Desta forma usada uma abordagem de correo global. A ideia
dessa correo global mudar a forma de listar: ela retorna o elemento do espao alvo
3.9. Hubs 25

no qual o piv aparece com um rank maior. Como o piv no aparece explicitamente no
rank, possvel avaliar sua posio, comparando o valor de similaridade do elemento com
o piv e as demais similaridades que aparecem no rank.
27

4 Resultados

Aps recolher todos os dados do experimento aplicamos testes, que foram regis-
trados nesse captulo assim como os resultados obtidos. Na maioria deles foram utilizadas
as 6 matrizes de traduo, mencionadas previamente, para fins de comparao.
Os testes, assim como os cdigos para limpar os dados e gerar o modelo, foram feito em
Python e esto disponvel no GitHub1 .

4.1 Teste com PCA

A tcnica do PCA foi utilizada logo aps a gerao do modelo usando o word2vec.
Com ela podemos notar alguma semelhana no arranjo geomtrico das palavras dos dois
espaos aqui estudados. Isso ocorre pois palavras com significados parecidos tendem a
ocorrer no mesmo contexto em lnguas distintas.

A ideia de poder achar uma matriz de traduo entre dois espao deriva da ideia
deles possurem um arranjo geomtrico semelhante. Nos grficos a seguir temos alguns
exemplos de representaes vetoriais, projetados em duas dimenses usando a tcnica do
PCA e, rotacionados manualmente para acentuar as similaridades entre as duas lnguas.

Figura 3 Exemplo com animais usando PCA

Figura 4 Exemplo com nmeros usando PCA

1 https://github.com/elianemart/Projeto
28 Captulo 4. Resultados

Figura 5 Exemplo com gneros usando PCA

Figura 6 Exemplo com opostos usando PCA

4.2 Teste de correspondncia

O teste realizado com o modelo de correspondncia disponibilizado pela Google,


em Ingls, no funcionou conforme as instrues fornecidas e foi necessrio adapta-lo,
alm de ter sido feita uma verso em Portugus para este trabalho.

Foram testadas 12 combinaes das correspondncias ( + = ), sendo


A,B,C e D cada uma das palavras a serem testadas. Com quatro palavras obteramos 24
combinaes, mas levando em conta que + = + , o total passa a ser 12.

Na tabela abaixo so mostrados os melhores resultados obtidos em cada um dos


testes. Ocorreram vrios casos em que uma palavra do teste no aparecia no Corpus, logo
isso afetou a verificao da acurcia dos modelos.
4.3. Relaes entre as palavras 29

Tabela 12 Teste de correspondncia

Categoria Portugus Ingls


adjetivo para advrbio 4.53% 12.5%
capitais do mundo 25.69% 67.19%
cidades e estados 12.16% 26.02%
comparativos 16.97% 52.70%
moeda 1.04% 11.43%
famlia 27.42% 54.94%
nacionalidades-adjetivos 3.46% 76.99%
opostos 6.54% 16.26%
capital pases comuns 46.84% 38.02%
passado simples 27.43% 42.17%
plural 9.16% 40.01%
plural- verbos 31.38% 42.99%
particpio 1.04% 44.70%

4.3 Relaes entre as palavras


Utilizando a funo most similar disponvel pelo Gensim2 foram levantadas al-
gumas relaes entre palavras do Portugus e do Ingls. Essa funo retorna ao usurio
qual o vetor de palavra mais prximo do encontrado em uma operao. Nessa seo
sero mostradas 9 relaes de correspondncia, tanto no Portugus quanto no Ingls,
com os resultados divididos em 3 categorias. As relaes testadas nas duas lnguas so
equivalentes.

As categorias dos resultados so: (1) correto; (2) similar; (3) errada. Em todas
relaes existiam palavras que espervamos encontrar, logo se no teste encontrvamos
exatamente a palavra esperada, a relao era classificada na primeira categoria. Se a
palavra encontrada no era exatamente a esperada, porm era uma palavra similar a esta,
a relao era classificada na segunda categoria. E por ltimo, se a palavra encontrada era
completamente diferente da esperada, a relao classificada na terceira categoria.

No Portugus 3 resultados ficaram no tipo 1, 4 no tipo 2 e 2 no tipo 3. No Ingls


2 resultados ficaram no tipo 1, 1 no tipo 2 e 6 no tipo 3.

Do primeiro tipo (resultado correto) no Portugus:

Ele + Atriz - Ela = Ator

Bonito + Sujo - Feio = Limpo


2 https://radimrehurek.com/gensim/models/word2vec.html
30 Captulo 4. Resultados

Maior + Pequeno - Grande = Menor

E no Ingls:

Woman + King - Man = Queen

He + Actress - She = Actor

Do segundo tipo (resultado parcialmente correto) no Portugus:

Mulher + Rei - Homem = Consorte

Menina + Menino - Homem = Moa

Menina + Menino - Mulher = Garoto

Bom + Ruim - Triste = timo

E no Ingls:

Good + Happy - Sad = Pleased

Do terceiro tipo (resultados incorretos) no Portugus:

Frana + Brasil - Francs = Espanha

Frana + Itlia - Paris = Holanda

E no Ingls:

Girl + Boy - Woman = Kid

Girl + Boy - Man = Baby

France + Brazil - French = Argentina

France + Italy - Paris = Spain

Beautiful + Dirty - Ugly = Filthy

Bigger + Small - Big = Larger


4.4. Testes dos alphas 31

4.4 Testes dos alphas


Para utilizar o mtodo do gradiente descendente estocstico necessrio definir o
valor de , a taxa de aprendizado. Para podermos definir valores adequados para em
cada uma das matrizes de traduo (os ), foi realizado um teste com cada uma delas,
onde o parmetro de escolha foram os erros relativos.

Foram testados 12 valores de para cada uma das quatro primeiras matrizes ,
onde ele variou de 106 at 1017 . Os valores de 101 a 105 foram desconsiderados por
darem um erro muito maior que os demais.

Com as duas ltimas matrizes foram testadas combinaes entre os valores de


e um ndice que foi chamado de . O ndice representa a cota superior do intervalo
da distribuio, [0, ]. Para o clculo desse ndice foram testados os valores de 101 a
105 , e do os valores de 106 a 1010 . Com cada uma das matrizes foram gerados
1500 vetores testes , logo, utilizando eles e os vetores correspondentes (os vetores das
tradues corretas), os erros relativos puderam ser calculados da seguinte forma:

1500

=
=1

e

=
1500

Nos grficos abaixo temos os valores de no eixo , e os valores dos no eixo


, para cada uma das matrizes . Os grficos esto em escala logartmica.

Figura 7 Erros de 1
32 Captulo 4. Resultados

Figura 8 Erros de 2

Figura 9 Erros de 3
4.4. Testes dos alphas 33

Figura 10 Erros de 4

Figura 11 Erros de 5
34 Captulo 4. Resultados

Figura 12 Erros de 6

As diferenas dos erros encontrados foram bem pequenas, pois a ordem de grandeza
destes erros foi bem prximas apesar da variao nos valores de . Nos grficos de 5 e
6 o valor de foi fixado previamente em 105 , pois foi o que gerou os menores erros,
enquanto o valor de foi variado. Os valores escolhidos de foram os que resultaram em
menor erro relativo. Para 1 foi 1016 , para 2 foi 1011 , para 3 foi 1011 e para 4 foi
1013 . Para 5 e 6 foi 1010 para e 105 para . De 1 a 4 as diferenas entre os
erros foram menores que 0,16. possvel observar que os valores dos erros, nas primeiras
4 matrizes, oscilam dentro de uma margem pequena, em geral essa margem um valor
prximo a 0,1. Os erros encontrados para as duas ltimas matrizes foram bem menores
que os encontrados para as matrizes anteriores.

4.5 Teste de nmero de hubs em K vizinhos


Este teste consiste em analisar vizinhos de cada um dos pivs e registrar todas
as palavras que aparecem como vizinhas e observar quantas vezes uma mesma palavra
aparece. Neste teste foi utilizada a funo most similar, mencionada previamente, para
encontrar as palavras mais prximas.

Vamos considerar que o total de vezes que uma palavra aparece nos ranks nos
indique o quo hubby uma palavra , ou seja, palavras que obtenham uma pontuao alta
nesse teste so consideradas hubs. O teste foi realizado com = 5, = 10, = 20 e
= 50.
Nas tabelas abaixo temos quantos vizinhos distintos foram gerados em cada caso,
quantos desses vizinhos aparecem entre 10 e 100 vezes, e quantos aparecem mais de 100.
4.5. Teste de nmero de hubs em K vizinhos 35

Tabela 13 Nmero de Hubs com K=5

Matriz Total Entre 10 e 100 Mais de 100


1 3154 75 10
2 3138 69 10
3 3162 64 12
4 3004 76 7
5 3120 68 9
6 6345 0 5

Tabela 14 Nmero de Hubs com K=10

Matriz Total Entre 10 e 100 Mais de 100


1 5946 139 22
2 5823 153 20
3 5924 149 20
4 5635 138 22
5 5811 157 19
6 11999 5 10

Tabela 15 Nmero de Hubs com K=20

Matriz Total Entre 10 e 100 Mais de 100


1 11089 174 46
2 10845 305 43
3 11123 313 41
4 10455 277 46
5 10629 313 46
6 22298 15 20

Tabela 16 Nmero de Hubs com K=50

Matriz Total Entre 10 e 100 Mais de 100


1 24294 761 116
2 24408 739 116
3 24009 738 126
4 23596 757 119
5 23180 741 123
6 48787 105 50
36 Captulo 4. Resultados

Como pode ser observado nas tabelas a cima, h um nmero considervel de pa-
lavras que apareceram repetidas vezes como vizinhas de vrias palavras distintas e este
um indicativo de que existem hubs no espao. Conforme o valor de aumenta, aumentam
tambm o nmero de hubs existentes em valor absoluto. Porm, proporcionalmente ao
crescimento de , os hubs no aumentaram tanto. Menos de 1% dos vizinhos encontrados
obtiveram um valor muito alto (maior que cem) no teste. 6 foi quem obteve os melhores
resultados, apresentando os menores nmeros de hubs em todos os testes.

4.6 Teste da posio da palavra correta nos ranks dos pivs

No word2vec existe a funo most similar, que aqui ser chamada de rank, que
permite escolhermos um valor , onde um nmero natural, ela nos retorna os
vizinhos mais prximos de um vetor, por ordem de proximidade (ordem decrescente). Isto
, ao usar a funo rank em uma palavra ou vetor do modelo, ela nos retorna quais vetores
so seus vizinhos. A similaridade utilizada pelo mtodo o valor do cosseno entre os dois
vetores, logo ela pode variar de 1 a 1.

Nosso interesse analisar os ranks dos pivs (os vetores calculados com as matrizes
) para verificar em qual posio do rank se encontra a palavra alvo (a palavra correta).
Nos grficos a seguir os pivs foram ordenados de forma que ficassem com as posies no
rank em ordem crescente.

Figura 13 Posio nos ranks de 1


4.6. Teste da posio da palavra correta nos ranks dos pivs 37

Figura 14 Posio nos ranks de 2

Figura 15 Posio nos ranks de 3


38 Captulo 4. Resultados

Figura 16 Posio nos ranks de 4

Figura 17 Posio nos ranks de 5


4.7. Teste de similaridade dos pivs com as tradues 39

Figura 18 Posio nos ranks de 6

Podemos observar que a distribuio das posies nos ranks muito similar em
todas as matrizes , apresentando um crescimento linear. Alguns pivs ficaram abaixo
da posio 1000, e a grande maioria ficou bem acima disso. O resultado ideal seria obter
valores pequenos, menores que 10 por exemplo, para todas as posies no rank, pois isso
significaria que as tradues estariam muito boas visto que os pivs estariam muito prxi-
mos dos alvos. O que ocorreu foi bem diferente do cenrio ideal, as posies encontradas
foram muito superiores aos valores esperados, indicando que as tradues esto muito
distantes do desejvel.

4.7 Teste de similaridade dos pivs com as tradues

Vetores de palavras com alta similaridade tendem a serem prximos semantica-


mente. Logo, desejamos que nossos pivs sejam prximos das palavras alvos correspon-
dentes. Portanto, os grficos ideias seriam com todas as similaridades prximas de 1.

Para medir essas similaridades foram calculados os cossenos entre os pivs e as


palavras alvo correspondentes.
40 Captulo 4. Resultados

Figura 19 Similaridade entre pivs e alvos - 1

Figura 20 Similaridade entre pivs e alvos - 2

Figura 21 Similaridade entre pivs e alvos - 3


4.7. Teste de similaridade dos pivs com as tradues 41

Figura 22 Similaridade entre pivs e alvos - 4

Figura 23 Similaridade entre pivs e alvos - 5

Figura 24 Similaridade entre pivs e alvos - 6

Os grficos foram parecidos para cada um dos , apresentando uma inflexo


prxima do ponto zero. Os valores oscilaram entre -0,4 e 0,4. Aproximadamente um tero
dos pivs apresentaram similaridade negativa.
42 Captulo 4. Resultados

4.8 Tratamento de hubs: Normalizar os vetores de similaridade

Nesse teste foram calculados vetores de similaridade de todas as palavras do vo-


cabulrio com os vetores gerados utilizando as matrizes . Os vetores de similaridade
so os vetores, normalizados, cuja entrada o cosseno entre o vetor correspondente
palavra do vocabulrio, e o piv . So 513k palavras no vocabulrio e 1500 pivs.

Para cada um dos pivs analisado qual palavra do vocabulrio possui maior si-
milaridade relativa, a similaridade depois de ser normalizada. As similaridades relativas
encontradas foram todas positivas e entre 0.04 e 0.2. O crescimento a princpio parece ser
linear mas tem um salto de alguns pontos na extremidade direita.

Figura 25 Similaridade relativa - 1

Figura 26 Similaridade relativa - 2


4.8. Tratamento de hubs: Normalizar os vetores de similaridade 43

Figura 27 Similaridade relativa - 3

Figura 28 Similaridade relativa - 4

Figura 29 Similaridade relativa - 5


44 Captulo 4. Resultados

Figura 30 Similaridade relativa - 6

Nessas figuras so mostradas as similaridades relativas, isto , as maiores simila-


ridades encontradas, depois da normalizao dos vetores, para cada um dos pivs. Era
esperado obter apenas similaridades positivas nos grficos, pois s foi armazenada a de
maior valor encontrada para cada um dos pivs. Quanto aos valores das similaridades em
si, no havia uma expectativa, pois estes eram relativos s entradas de vetores normali-
zados.

Verificou-se que, as palavras que obtiveram as maiores similaridades relativas, em


cada uma das matrizes , eram distintas das palavras alvos.

4.9 Tratamento de hubs: Inverter a ordem da fila

Esse teste originalmente prope inverter a ordem fila, ou seja, ao invs de olharmos
que palavras aparecem mais alto no rank de um determinado piv, olharemos em que
palavra esse piv aparece em uma posio mais alta. No possvel verificar com a funo
rank em qual posio um piv aparece, pois os pivs no esto associados a uma palavra
no espao. Porm, possvel estimar em que posio ele estaria, ao comparar o cosseno
entre o piv e a palavra alvo e os cossenos das palavras que esto no rank.

invivel verificar para todas as palavras do vocabulrio, pois essa verificao seria
muito custosa. Logo esse teste foi adaptado da seguinte forma: iremos gerar o rank-100
para um determinado piv, e para cada uma desses 100 vizinhos iremos gerar o rank-1000
e iremos verificar se o piv apareceria na lista e em qual posio.
4.9. Tratamento de hubs: Inverter a ordem da fila 45

Figura 31 Rank invertido - 1

Figura 32 Rank invertido - 2

Figura 33 Rank invertido - 3


46 Captulo 4. Resultados

Figura 34 Rank invertido - 4

Figura 35 Rank invertido - 5

Figura 36 Rank invertido - 6

Nas 6 matrizes obtivemos alguns pivs considerados na posio 1000. A posio


1000 representa os pivs no foram encontrados no rank. Em 1 obtivemos 176 pivs nessa
posio, em 2 foram 141, em 3 foram 237, em 4 foram 219, em 5 foram 257 e em 6
foram 379. A quantidade de pivs encontrados foi bem maior em 6 do que nas demais
4.10. Teste das distncias 47

matrizes, e a que obteve menos foi 2 . Com exceo de 6 , que apresenta um crescimento
bem rpido com relao s posies, as demais matrizes tm menos da metade dos pivs
em posio abaixo de 500.

4.10 Teste das distncias


Nesse teste podemos comparar a alteraes sofridas nas distncias entre os pivs
e as palavras alvos em 3 casos:

1. Com os pivs calculados com as matrizes de traduo e os vetores alvos

2. Com as palavras obtidas pelo teste 1 proposto por Dinu e os vetores alvos

3. Com as palavras obtidas pelo teste 2 proposto por Dinu e os vetores alvos

Foram testadas duas medidas de distncia. A primeira delas foi a edit distance,
que uma maneira de quantificar quo similar morfologicamente so duas palavras. Nesse
mtodo contado o nmero mnimo de operaes necessrias para transformar uma pala-
vra em outra, como por exemplo, de pato para gato necessrio trocar apenas uma letra,
ento contado como 1 de distncia. As operaes so insero, excluso e substituio
de letras. A segunda medida de distncia a norma eucliana.

4.10.1 Edit distance

Nas trs figuras abaixo temos os histogramas do mtodo edit distance. Cada uma
das colunas de uma cor corresponde a uma das matrizes.

Figura 37 Histograma das distncias de palavras, usando o mtodo edit distance, entre
pivs gerados por cada uma das 6 matrizes e as palavras alvos correspon-
dentes.
48 Captulo 4. Resultados

Figura 38 Histograma das distncias de palavras, usando o mtodo edit distance, entre
palavras geradas utilizando o primeiro mtodo de Dinu e as palavras alvos
correspondentes.

Figura 39 Histograma das distncias de palavras, usando o mtodo edit distance, entre
palavras geradas utilizando o segundo mtodo de Dinu e as palavras alvos
correspondentes.

Nos 3 testes obtivemos resultados similares. Na maioria dos casos, para todas as
matrizes , o edit distance encontrado foi 7, e a partir de 13 passavam a no serem muito
comuns. E em pouqussimos casos o edit distance foi um valor bem baixo, como menor
ou igual a 2.

4.10.2 Norma euclidiana

Como as matrizes tem grficos similares, a seguir sero mostradas as normas


euclidianas nos 3 casos apenas para 1 .
4.10. Teste das distncias 49

Figura 40 Norma euclidiana entre os pivs gerados com 1 e os vetores alvos.

Figura 41 Norma euclidiana entre os vetores gerados com as palavras obtidas no teste
1 de Dinu com 1 e os vetores alvos.
50 Captulo 4. Resultados

Figura 42 Norma euclidiana entre os vetores gerados com as palavras obtidas no teste
2 de Dinu com 1 e os vetores alvos.

No primeiro grfico o crescimento a princpio apresentou um comportamento linear


e no final exponencial, mais de dois teros dos pivs teve uma norma menor que 20. No
segundo grfico a maioria dos pivs apresentou uma norma entre 2 e 4, e uma parcela
menor obteve a norma entre 4 e 6. O terceiro grfico foi parecido com o segundo, com a
norma indo at 7 ao invs de 6.

O caso ideal seria obter trs grficos parecidos e na mesma ordem de grandeza.
Porm, como j vimos que os valores das similaridades entre os pivs e os alvos no eram
muito altos, era de se esperar que os vetores no estivessem to prximos, e portanto,
apresentassem uma norma maior que nos demais casos.
51

5 Concluso

O presente trabalho props um modelo de traduo automtica do Portugus para


o Ingls, utilizando o word2vec e o gradiente descendente estocstico. A rea de traduo
automtica uma rea que apresenta grandes desafios, pois extremamente complexo
capturar sutilezas de lnguas distintas. Ao retirar preposies e ao analisar palavras fora
de seu contexto dificilmente teremos boas tradues, alm de ser complicada a escolha de
sinnimos por no existirem sinnimos absolutos.

O modelo foi baseado no trabalho de Mikolov, com a variante do estudo na ex-


plorao da existncia de hubs no experimento, medindo-os e testando mtodos para
suaviz-los. A principal contribuio deste trabalho a reproduo deste experimento
utilizando a lngua portuguesa, abrindo assim um caminho com um grande potencial da
traduo automtica. O trabalho mostrou limitaes ao tentarmos a mesma tcnica em
Portugus, e seus resultados apontam para possveis continuidades para o trabalho.

No teste utilizando a tcnica PCA, foi possvel verificar que existe uma similari-
dade no arranjo geomtrico nos dois espaos, portanto h muito o que explorar. O modelo
do Ingls obteve, em geral, um melhor resultado do que o Portugus no teste de corres-
pondncia, mas o Portugus apresentou um melhor resultado nas relaes de palavras.
Foi possvel averiguar que diferentes abordagens na gerao da matriz de traduo obti-
veram comportamentos similares, mesmo com diferena significativa no erro absoluto. O
trabalhou demonstrou ter bastante potencial de aprimoramento, com diversos testes para
anlise.

5.1 Trabalhos futuros


No decorrer do experimento alguns pontos foram notados como possveis ramifi-
caes, e ficam como sugestes para trabalhos futuros.

Corpus maior

Os dumps da Wikipdia geraram 513k tokens para a lngua inglesa e 447k para
a lngua portuguesa. Seria desejvel ter um corpus maior para ter mais tokens de treino.
Alm disso um dicionrio maior poderia ser interessante. O dicionrio utilizado por Mi-
kolov continha 5K palavras para treino, o deste experimento continha 3K.
Uma opo desejvel tambm fazer o experimento do Ingls para o Portugus e compa-
rar o desempenho das matrizes nas duas direes (PT -> EN e EN -> PT).
52 Captulo 5. Concluso

Mais limpeza

Antes de rodar o word2vec necessrio fazer vrias limpezas no Corpus, e existem


algumas que seriam aconselhveis acrescentar. Uma a remoo de frases estrangeiras.
Diversas vezes no corpus em Portugus foram encontradas palavras ou frases em Ingls,
Francs, Espanhol e outras lnguas. Algumas palavras de fato foram incorporadas na nossa
lngua, e so emprstimos lingusticos, como web por exemplo. Mas quanto as que no o
so, seria desejvel retir-las.

Outra mudana reescrever valores numricos como um nico token aps a retirada
das stopwords. Dessa forma nmeros escritos por extenso no sero considerados palavras
diferentes. Como por exemplo o nmero 31 por extenso fica trinta um (o e uma
stopword e por isso j foi retirado) e na diviso de tokens viram dois tokens distintos o
trinta e o um. O desejvel que ele vire um token s: trinta_um

Deve-se ter o cuidado de avaliar que combinaes numricas so vlidas para no


considerar nmeros como dois_trs e trs_dez ao tentar realizar esse passo de forma
automtica.

Corpus anotado

No word2vec em Ingls a palavra book poderia ter uma representao como verbo
(de reservar) e uma representao como substantivo (de livro), e podemos imaginar que
elas teriam uma representao distintas por se tratarem de classes gramaticais distintas.
No Portugus o mesmo ocorreria como, por exemplo, com casa, pois temos casa como
substantivo e casa como verbo.

Seria aconselhvel realizar esse experimento utilizando corpus anotados, pois dessa
forma diversas palavras polissmicas poderiam ser tratadas de forma distintas. Como foi
mencionado anteriormente, na criao do dicionrio, um dos desafios era a escolha de
uma traduo adequada, em especial para palavras polissmicas, pois a escolha dependia
de fixar um dos significados e ignorar os demais. Com as palavras j sendo diferenciadas
por suas classes, a escolha das tradues se torna mais simplificada. Porm, em alguns
casos, ainda haver problema, como por exemplo a palavra planta pode ser do verbo
plantar, mas tambm tem dois significados distintos como substantivo: o de botnica e o
de arquitetura.

Uma possibilidade tambm acrescentar nos testes mais vetores, utilizando as


demais possveis tradues. Assim poderiam ser testados diferentes vetores como pivs.

Utilizao de outros mtodos

O gradiente descendente estocstico foi escolhido como mtodo para o clculo da


5.1. Trabalhos futuros 53

matriz de traduo por ter sido mencionado como o mtodo utilizado por Mikolov em
seu trabalho. Porm existem outros mtodos que podem ser significativos para gerar essa
matriz como o gradient descent e o conjugate gradient.

Comparao com outra abordagem

Em um trabalho feito por Garcia [8] apresentado uma outra abordagem de


traduo automtica utilizando o word2vec. Ao invs de treinar dois modelos de lnguas
distintas separadamente, ele treina um modelo com um corpus bilngue. Neste trabalho
construdo um modelo de representao de palavras bilngue baseado em uma corpora
paralela, isto , um conjunto de corpus bilngues. Uma ideia de trabalho interessante
comparar os resultados dessas duas abordagens: a utilizada neste trabalho com a utilizada
por Garcia.
55

Referncias

[1] Dean Allemang and James Hendler. Semantic web for the working ontologist: effective
modeling in RDFS and OWL. Elsevier, 2011.

[2] Evandro Dalbem Lopes. Utilizao do modelo skip-gram para representao distri-
buda de palavras no projeto Media Cloud Brasil. Fundao Getulio Vargas, Rio de
Janeiro 2015.

[3] Georgiana Dinu, Angeliki Lazaridou, and Marco Baroni.. Improving zero-shot learning
by mitigating the hubness problem. arXiv preprint arXiv:1412.6568, 2014.

[4] Harris, Zellig S. Distributional structure. Word 10.2-3 (1954): 146-162. 1954

[5] Hutchins, W. John. Machine translation: A brief history. Concise history of the lan-
guage sciences: from the Sumerians to the cognitivists (1995): 431-445, 1995

[6] Karen Sparck Jones. Natural language processing: a historical review. Current issues
in computational linguistics: in honour of Don Walker, pages 316. Springer, 1994.

[7] Luiz Antnio Lopes Mesquita. Sintagmas nominais na indexao automtica: uma
anlise estrutural da distribuio de termos relevantes em teses de doutorado da UFMG
Universidade Federal de Minas Gerais, Minas Gerais, 2012.

[8] Martnez Garcia, Eva, et al. Words vector representations meet machine translation.
Eighth Workshop on Syntax, Semantics and Structure in Statistical Translation (SSST-
8): EMNLP 2014, SIGMT, SIGLEX Workshop: 25 Oct 2014, Doha, Qatar. Association
for Computational Linguistics, 2014

[9] Omer Levy, Yoav Goldberg, and Israel Ramat-Gan. Linguistic regularities in sparse
and explicit word representations. CoNLL-2014, page 171, 2014.

[10] Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. Efficient estimation of
word representations in vector space. In arXiv preprint arXiv:1301.3781, 2013

[11] Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S Corrado, and Jeff Dean. Distributed
representations of words and phrases and their compositionality. In Advances in neural
information processing systems, pages 31113119, 2013

[12] Tomas Mikolov, Wen-tau Yih, and Geoffrey Zweig. Linguistic regularities in conti-
nuous space word representations. In HLT-NAACL, pages 746751, 2013

[13] Tomas Mikolov, Quoc V. Le, and Ilya Sutskever. Exploiting similarities among lan-
guages for machine translation arXiv preprint arXiv:1309.4168, 2013.
56 Referncias

[14] Milos Radovanovi, Alexandros Nanopoulos, and Mirjana Ivanovi. On the existence
of obstinate results in vector space models. In Proceedings of the 33rd international
ACM SIGIR conference on Research and development in information retrieval, pages
186193. ACM, 2010

[15] Rumelhart, David E., Geoffrey E. Hinton, and Ronald J. Williams. Learning repre-
sentations by back-propagating errors. Cognitive modeling, v. 5, n. 3, p. 1, 1988.

[16] Tomaev, Nenad, et al. A probabilistic approach to nearest-neighbor classification:


Naive hubness bayesian kNN, Proc. 20th ACM Int. Conf. on Information and Kno-
wledge Management (CIKM). 2011.

Vous aimerez peut-être aussi