Deep Learning with Python

Capítulo 6: Deep learning for text and sequences

Tipos de dados a serem trabalhados:


Algoritmos fundamentais:


Aplicações possíveis:


Aplicações que faremos:

Vetorizando texto:

O que são n-grams?

N-grama


alt text

Tokens e vetorização

alt text

One-hot encoding

alt text

One-hot encoding com palavras

One-hot encoding com caracteres

One-hot encoding com o Keras

Ainda que seja possível fazer o one-hot encoding 'na mão', é recomendado que seja feito com o Keras, pois ele saberá lidar com várias issues importantes quando lidamos com texto.

One-hot encoding para grandes vocabulários

Quando a quantidade de tokens for suficientemente grande, vale usar o one-hot encoding hashing trick

Uma função hash é um algoritmo que mapeia dados de comprimento variável para dados de comprimento fixo.

Embeddings

alt text

alt text

alt text

Material interessante sobre word2vec: The Illustrated Word2vec

Embeddings com Tensorflow: Embedding Projector

O Keras possui uma camada própria para isso, que facilita a vida: Embedding Layer

A camada Embedding é uma espécie de dicionário que mapeia as índices inteiros em vetores densos.

Word index -> Embedding layer -> Corresponding word vector

Precisamos de um vetor 2D de shape (samples, sequence_lenght) como entrada.

A camada Embedding aceita sequências de diversos tamanhos, mas todos as sequências de um mesmo batch precisa ser do mesmo tamanho:

  • sequências pequenas são preenchidas por zeros e sequências grandes são truncadas.

A camada retorna uma tensor 3D (samples, sequence_length, embedding_dimensionality), que pode ser processada por uma camada RNN ou uma camada convolutiva 1D.

IMDB Case

Obtivemos uma acurácia de ~75%

Esse modelo não leva em conta as relações entre as palavras e a estrutura da sequência.

Próximo encontro

alt text

Continuação 6.1

08/11

EMBEDDINGS PRÉ-TREINADOS


From raw text to word embeddings

Transformando cada review em uma lista de strings

Vetorizando os dados