Incrustación de palabras usando Universal Sentence Encoder en Python

A diferencia de las técnicas de incrustación de palabras en las que representa palabras en vectores, en Incrustaciones de oraciones, la oración completa o el texto junto con su información semántica se asigna a vectores de números reales. Esta técnica permite comprender y procesar información útil de un texto completo, que luego se puede utilizar para comprender mejor el contexto o el significado de la oración.

En este artículo, aprenderá cómo crear vectores para una oración completa utilizando Universal Sentence Encoder .

Por ejemplo:

Consideremos dos oraciones: –

  1. ¿Cuantos años tienes?
  2. ¿Cual es tu edad?

Las dos oraciones anteriores tienen un significado similar, es decir, estamos tratando de preguntar la edad de la persona. En las dos oraciones anteriores, las palabras individuales y sus vectores no darán una buena idea de lo que una oración completa está tratando de transmitir, ni podrán clasificar si estas dos oraciones son similares o no. Entonces, en tales escenarios, las incrustaciones de oraciones funcionan mejor que las incrustaciones de palabras.

Existen varias técnicas de incorporación de oraciones como Doc2Vec, SentenceBERT, Universal Sentence Encoder, etc.

Codificador de oraciones universal

Universal Sentence Encoder codifica oraciones completas o texto en vectores de números reales que se pueden usar para agrupar, similitud de oraciones, clasificación de texto y otras tareas de procesamiento de lenguaje natural (NLP). El modelo preentrenado está disponible aquí bajo la licencia Apache-2.0. El modelo preentrenado se entrena en texto, oraciones, frases, párrafos, etc. de más de una palabra de longitud mediante un codificador de red de promedio profundo ( DAN ).

Implementación de incrustaciones de oraciones usando Universal Sentence Encoder: 

Ejecute estos comandos antes de ejecutar el código en su terminal para instalar las bibliotecas necesarias.

instalación de pip «flujo de tensor> = 2.0.0»

pip install –actualizar tensorflow-hub

Programa:

Python3

# import necessary libraries
import tensorflow_hub as hub
  
# Load pre-trained universal sentence encoder model
embed = hub.load("https://tfhub.dev/google/universal-sentence-encoder/4")
  
# Sentences for which you want to create embeddings,
# passed as an array in embed()
Sentences = [
    "How old are you",
    "What is your age",
    "I love to watch Television",
    "I am wearing a wrist watch"
]
embeddings = embed(Sentences)
  
# Printing embeddings of each sentence
print(embeddings)
  
# To print each embeddings along with its corresponding 
# sentence below code can be used.
for i in range(len(Sentences)):
    print(Sentences[i])
    print(embeddings[i])

Producción: 

tf.Tensor(

[[-0.06045125 -0.00204541 0.02656925 … 0.00764413 -0.02669661

   0.05110302]

 [-0.08415682 -0.08687923 0.03446117 … -0.01439389 -0.04546221

   0.03639965]

 [ 0,0816019 -0,01570276 -0,05659245 … -0,07133699 0,11040762

  -0.0071095 ]

 [-0.00369539 0.03064634 -0.05556112 … 0.01751423 0.0316496

  -0.05139377]], forma=(4, 512), dtype=float32)

Explicación:

La salida anterior representa oraciones de entrada en sus vectores correspondientes usando el codificador de oraciones universales.

Publicación traducida automáticamente

Artículo escrito por Puneet Goel 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 *