Aula 02 - Implementando Word2Vec em Python

1- Introdução 


Nessa aula iremos ver um exemplo de implementação de como utilizar o Word2Vec na linguagem python. É claro que o exemplo que utilizaremos o algoritmo já está pré implementado e estaremos apenas utilizando o código. Vale a pena compreender cada passo, pois a partir deste código você poderá reutiliza-lo para suas aplicações.

2- Implementação


O primeiro passo é importar as bibliotecas necessárias para realizar a extração, pré-processamento e criação do modelo.

import nltk
import urllib
import bs4 as bs
import re
from gensim.models import Word2Vec
from nltk.corpus import stopwords

Para nosso exemplo, utilizemos um artigo qualquer da wikipedia:

# pega os dados e transforma tudo em uma string
source = urllib.request.urlopen('https://en.wikipedia.org/wiki/Global_warming')

soup = bs.BeautifulSoup(source, 'lxml')
text = ""
for paragraph in soup.find_all('p'):
    text+= paragraph.text

A seguir realizaremos o pré-processamento dos dados obtidos removendo todas as palavras e símbolos desnecessários para o treinamento do nosso modelo:

# faz o pré processamento removendo caracteres que podem atrapalhar
text = re.sub(r'\[[0-9]*\]', ' ', text)
text = re.sub(r'\s+', ' ', text)
text = text.lower()
text = re.sub(r'[@#\$%&\*\(\)\<\>\'\":;\]\[-]',' ', text)
text = re.sub(r'\d', ' ', text)
text = re.sub(r'\s+', ' ', text)

Como um passo adicional ao pré-processamento removeremos as stopwords:

sentences = nltk.sent_tokenize(text)

sentences = [nltk.word_tokenize(sentence) for sentence in sentences]

#faz a remoção de stopwords

for i in range(len(sentences)):
    sentences[i] = [word for word in sentences[i] if word not in stopwords.words('English')]

Por fim, utilizaremos o Word2vec para encontrar palavras similares:

model = Word2Vec(sentences, min_count=1)

words = model.wv.vocab

vector = model.wv['global']

# busca a palavra mais similar
similar = model.wv.most_similar('global')
print (similar)


3- Conclusão


O modelo Word2Vec possui diversas funcionalidades, cabe ao profissional de ciências de dados entender como isso poderá ser utilizado em uma nova abordagem de PLN. As palavras similares, por exemplo, podem ser utilizadas para encontrar sugestões de palavras para buscas efetuadas pelo usuário em mecanismos de busca. 








Aula 02 - Implementando Word2Vec em Python Aula 02 - Implementando Word2Vec em Python Reviewed by Vinicius dos Santos on 05:37:00 Rating: 5

Nenhum comentário

Escreve ai sua opinião!