Secuenciación de PNL

La secuenciación de PNL es la secuencia de números que generaremos a partir de un gran corpus o cuerpo de declaraciones mediante el entrenamiento de una red neuronal. Tomaremos un conjunto de oraciones y les asignaremos tokens numéricos basados ​​en las oraciones del conjunto de entrenamiento.

Ejemplo:

sentences = [
'I love geeksforgeeks',
'You love geeksforgeeks',
'What do you think about geeksforgeeks?'
]

Word Index: {'geeksforgeeks': 1, 'love': 2, 'you': 3, 'i': 4,
             'what': 5, 'do': 6, 'think': 7, 'about': 8}

Sequences: [[4, 2, 1], [3, 2, 1], [5, 6, 3, 7, 8, 1]]

Ahora, si el conjunto de prueba consta de la palabra que la red no ha visto antes, o si tenemos que predecir la palabra en la oración, entonces podemos agregar un token de marcador de posición simple.

Let the test set be :

 test_data = [
'i really love geeksforgeeks',
'Do you like geeksforgeeks'
]

Luego definiremos un marcador de posición adicional para las palabras que no ha visto antes. El marcador de posición por defecto obtiene el índice como 1.

Índice de palabras =  {‘placeholder’: 1, ‘geeksforgeeks’: 2, ‘love’: 3, ‘you’: 4, ‘i’: 5, ‘what’: 6, ‘do’: 7, ‘think’: 8, ‘sobre’: 9}

Secuencias =  [[5, 3, 2], [4, 3, 2], [6, 7, 4, 8, 9, 2]]

Como la palabra ‘realmente’ y ‘me gusta’ no se ha encontrado antes, simplemente se reemplaza por el marcador de posición que está indexado por 1.

Entonces, la secuencia de prueba ahora se convierte en,

Secuencia de prueba = [[5, 1, 3, 2], [7, 4, 1, 2]]

Código: Implementación con TensorFlow

# importing all the modules required
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
  
# the initial corpus of sentences or the training set
sentences = [
    'I love geeksforgeeks',
    'You love geeksforgeeks',
    'What do you think about geeksforgeeks?'
]
  
tokenizer = Tokenizer(num_words = 100)
  
# the tokenizer also removes punctuations
tokenizer.fit_on_texts(sentences)  
word_index = tokenizer.word_index
sequences = tokenizer.texts_to_sequences(sentences)
print("Word Index: ", word_index)
print("Sequences: ", sequences)
  
# defining a placeholder token and naming it as placeholder
tokenizer = Tokenizer(num_words=100, 
                      oov_token="placeholder")
tokenizer.fit_on_texts(sentences)
word_index = tokenizer.word_index
  
  
sequences = tokenizer.texts_to_sequences(sentences)
print("\nSequences = ", sequences)
  
  
# the training data with words the network hasn't encountered
test_data = [
    'i really love geeksforgeeks',
    'Do you like geeksforgeeks'
]
  
test_seq = tokenizer.texts_to_sequences(test_data)
print("\nTest Sequence = ", test_seq)

Producción: 

Word Index:  {'geeksforgeeks': 1, 'love': 2, 'you': 3, 'i': 4, 'what': 5, 'do': 6, 'think': 7, 'about': 8}
Sequences:  [[4, 2, 1], [3, 2, 1], [5, 6, 3, 7, 8, 1]]

Sequences =  [[5, 3, 2], [4, 3, 2], [6, 7, 4, 8, 9, 2]]

Test Sequence =  [[5, 1, 3, 2], [7, 4, 1, 2]]

Publicación traducida automáticamente

Artículo escrito por sangy987 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *