Pré-processamento de dados

Redes Neurais Recorrentes (RNNs) para Modelagem de Linguagem com Keras

David Cecchini

Data Scientist

Classificação de texto

Aplicações de classificação de texto:

  • Classificação automática de notícias
  • Classificação de documentos para empresas
  • Segmentação de filas no suporte ao cliente
  • E muito mais!
Redes Neurais Recorrentes (RNNs) para Modelagem de Linguagem com Keras

Mudanças da classificação binária

O que muda de binária para multiclasse:

  • Formato da variável de saída y
  • Número de unidades na camada de saída
  • Função de ativação na camada de saída
  • Função de perda
Redes Neurais Recorrentes (RNNs) para Modelagem de Linguagem com Keras

Mudanças da classificação binária

Formato da variável de saída y:

  • One-hot encoding das classes
# Exemplo: num_classes = 3
y[0] = [0, 1, 0]
y.shape = (N, num_classes)

Número de unidades na camada de saída:

# Camada de saída
model.add(Dense(num_classes))
Redes Neurais Recorrentes (RNNs) para Modelagem de Linguagem com Keras

Mudanças da classificação binária

Diferença entre números em uma linha e no espaço, mostrando o uso de one-hot encoding

Redes Neurais Recorrentes (RNNs) para Modelagem de Linguagem com Keras

Mudanças da classificação binária

Função de ativação na camada de saída:

  • softmax fornece a probabilidade de cada classe
# Camada de saída
model.add(Dense(num_classes, activation="softmax"))

Função de perda:

  • Em vez de binária, usamos entropia cruzada categórica
# Compilar o modelo
model.compile(loss='categorical_crossentropy')
Redes Neurais Recorrentes (RNNs) para Modelagem de Linguagem com Keras

Preparando categorias de texto para keras

y = ["sports", "economy", "data_science", "sports", "finance"]
# Transformar em objeto Series do pandas
y_series = pd.Series(y, dtype="category")

# Imprimir os códigos das categorias print(y_series.cat.codes)
0    3
1    1
2    0
3    3
4    2
Redes Neurais Recorrentes (RNNs) para Modelagem de Linguagem com Keras

Pré-processando y

from tensorflow.keras.utils import to_categorical

y = np.array([0, 1, 2]) # Converter para categórico y_prep = to_categorical(y) print(y_prep)
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
Redes Neurais Recorrentes (RNNs) para Modelagem de Linguagem com Keras

Vamos praticar!

Redes Neurais Recorrentes (RNNs) para Modelagem de Linguagem com Keras

Preparing Video For Download...