¿Cómo implementar un modelo Doc2Vec usando Gensim?

Estás leyendo la publicación: ¿Cómo implementar un modelo Doc2Vec usando Gensim?

Hay muchas técnicas avanzadas utilizadas en PNL, como bolsa de palabras, bolsa de n palabras, word2vec, etc., para representar las palabras en un formato vectorial. Esto es necesario para desarrollar aplicaciones avanzadas como modelos de lenguaje, resúmenes de texto, etc. Doc2Vec es una técnica similar para representar palabras en forma de vector. Este modelo viene con varios beneficios en comparación con el popular modelo Word2Vec. En este artículo, discutiremos el modelo Doc2Vec con una manera fácil de implementarlo usando Gensim. Los puntos principales que se discutirán en este artículo se enumeran a continuación.

Tabla de contenido

  1. ¿Qué es el modelo Doc2Vec?
  2. Resumen sobre Gensim
  3. Implementando Doc2Vec usando Gensim

Empecemos por comprender el modelo Doc2Vec.

¿Qué es el modelo Doc2Vec?

En el campo del procesamiento del lenguaje natural, encontramos diversas técnicas para representar datos de texto como un vector para análisis como una bolsa de palabras y Word2Vec. Estas técnicas se centran en representar documentos como un vector de longitud fija. Podemos encontrar algunas de las desventajas de representar el texto como un vector de longitud fija, ya que los modelos pueden perder la información sobre la relación semántica entre las palabras. Por ejemplo, estos modelos no son capaces de representar la palabra como ‘poderoso está más cerca de la fuerza’.

Doc2Vec es bastante similar a los modelos de Word2Vec. En uno de nuestros artículos, podemos encontrar información detallada sobre los modelos de Word2Vec. Al resumir este artículo, podemos decir que los modelos word2vec son métodos para obtener la incrustación de palabras de todo el corpus. Mientras que Doc2Vec propone un método para obtener incrustaciones de palabras a partir de párrafos del corpus. También podemos considerar estos vectores de palabras como vectores de párrafo en lugar de representaciones vectoriales de todo el corpus.

Mientras investigamos el Doc2Vec, en este documento encontramos que los investigadores han utilizado algoritmos de aprendizaje no supervisados ​​para aprender representaciones vectoriales distribuidas continuas. Podemos entender el modelado Doc2Vec como un método que aprende la representación vectorial de texto mientras que la vectorización se aplica a las pequeñas piezas de documentos de texto, desde una frase o una oración hasta un documento grande. Este método se puede utilizar para predecir palabras en párrafos. Estos modelos pueden funcionar concatenando el párrafo con varios vectores de palabras de un párrafo y prediciendo la palabra en un contexto determinado.

🔥 Recomendado:  Cómo construir un sitio web para su negocio en casa

En el fondo, podemos decir que aprender a partir de vectores de párrafos es una idea tomada de aprender usando los vectores de palabras. A pesar de predecir la siguiente palabra en la oración usando un vector de palabra que es una factorización aleatoria, podemos predecir la siguiente palabra usando el vector de párrafo donde también puede tener información sobre la relación semántica y puede ser útil para obtener mejores resultados.

En una matriz vectorial de párrafo podemos encontrar los siguientes componentes:

  • Representación vectorial de párrafo: es una asignación de cada párrafo a un vector único.
  • Representación vectorial de palabras: mapeo de cada palabra de un párrafo en un vector único.

El siguiente diagrama puede ser una representación del aprendizaje utilizando un vector de párrafo.

Fuente de imagen

El uso de ID de párrafo como un vector único hace que Doc2Vec sea diferente de word2Vec. Podemos considerar este vector como otra palabra que funciona como una memoria para el procedimiento y al usar este algoritmo de memoria recuerda el contexto actual de las palabras y predice lo que falta de acuerdo con el contexto actual.

La implementación del modelo Doc2Vec se puede realizar utilizando la biblioteca Gensim. En este artículo, veremos la implementación de Doc2Vec pero antes de esto, es necesario conocer la biblioteca Gensim porque también puede ayudarnos en la implementación de otros modelos.

Resumen sobre Gensim

Gensim es una biblioteca de Python de código abierto para el procesamiento de texto. Principalmente trabaja en el campo de la representación de documentos de texto como vectores semánticos. La palabra Gensim significa generar similar. Profundizando en la arquitectura que encontramos para el procesamiento de texto, esta biblioteca utiliza algoritmos no supervisados ​​de aprendizaje automático. Usando los algoritmos de Gensim podemos automatizar el proceso de encontrar la estructura semántica de los datos de texto. Examina principalmente el patrón de co-ocurrencia estadística bajo el corpus de datos. Dado que utiliza algoritmos de aprendizaje no supervisados, la mayoría de las veces no requerimos ninguna intervención humana. Usando esta biblioteca podemos utilizar las siguientes cosas de modelado de datos de texto:

  • Sentido práctico: Con esta biblioteca podemos utilizar algunos de los algoritmos que se han generado para resolver problemas del mundo real. Esta biblioteca está más enfocada en problemas del mundo real que en problemas académicos.
  • Actuación: Esta biblioteca proporciona una implementación altamente optimizada de algoritmos de espacio vectorial que utiliza C, BLAS y mapeo de memoria.
  • Independencia de la memoria: Al usar esta biblioteca, no necesitamos entrenar todo el corpus completamente en RAM al mismo tiempo. También podemos procesar grandes corpus a escala web mediante la transmisión de datos.
🔥 Recomendado:  Trampas comunes de la migración de la plataforma de comercio electrónico (y cómo evitarlas)

Esta biblioteca es compatible con todas las versiones de python que están en condiciones de trabajo. Podemos instalar esta librería usando la siguiente línea de códigos:

!pip instalar –actualizar Gensim

En este artículo, vamos a realizar el modelado de Doc2Vec utilizando la biblioteca Gensim. Echemos un vistazo a cómo podemos implementar el modelo Doc2Vec.

Implementando Doc2Vec usando Gensim

Como hemos comentado en el punto anterior, podemos implementar fácilmente el modelo Doc2Vec utilizando la biblioteca Gensim. Hemos visto los pasos de instalación en lo anterior y después de la instalación, estamos listos para usar esta biblioteca. Comencemos importando la biblioteca.

importar Gensim importar Gensim.downloader como api

En lo anterior, hemos llamado a la biblioteca Gensim y su módulo de descarga API. Dado que con esta biblioteca también obtenemos algunos conjuntos de datos para la práctica, utilizaremos el conjunto de datos de texto 8 proporcionado por Gensim.

Descarguemos el conjunto de datos usando las siguientes líneas de códigos:

conjunto de datos = api.load(“text8”) datos = [d for d in dataset]

Producción:

Ahora estamos listos para usar el conjunto de datos que hemos descargado. Vamos a obtener datos para el entrenamiento.

def documento_etiquetado(lista_de_lista_de_palabras): for i, lista_de_palabras in enumerate(lista_de_lista_de_palabras): yield Gensim.models.doc2vec.TaggedDocument(lista_de_palabras, [i]) entrenamiento_datos = lista(documento_etiquetado(datos))

Revisemos nuestro conjunto de datos:

entrenamiento_datos [:1]

Producción:

Aquí podemos ver la primera lista de palabras etiquetadas. Esta lista también se puede considerar como nuestro primer vector de párrafo. Ahora estamos obligados a instanciar el modelo Doc2Vec. Podemos hacerlo usando las siguientes líneas de códigos:

modelo = Gensim.models.doc2vec.Doc2Vec(vector_size=40, min_count=2, epochs=30)

En la instanciación anterior, hemos definido el vector de tamaño 40 con un recuento mínimo de 2 palabras con 30 épocas. Ahora podemos convertir el formato de las palabras usando las siguientes líneas de códigos:

🔥 Recomendado:  Una guía para la edición de iluminación de imágenes con OpenCV

modelo.build_vocab(data_training)

Hagamos una inferencia a partir del modelo en formato numérico.

imprimir(modelo.inferir_vector([‘violent’, ‘means’, ‘to’, ‘destroy’, ‘the’,’organization’]))

Producción:

Aquí, en el resultado anterior, podemos ver que hemos verificado cuál es el estado de una palabra diferente en la representación vectorial y tenemos una lista que significa que cada palabra tiene una fuerza diferente de la relación semántica en diferentes vectores de párrafo. Así funciona el modelo Doc2Vec utilizando la biblioteca Gensim y proporciona diferentes medidas de relación con las palabras según los vectores de párrafo. Para esta medida, infer_vector usa la similitud del coseno.

Ultimas palabras

En este artículo, hemos discutido el modelo Doc2Vec y la biblioteca Gensim. Junto con esta introducción, hemos visto cómo podemos implementar el modelo Doc2Vec de una manera muy fácil utilizando la biblioteca Gensim. Dado que esta biblioteca se centra en problemas del mundo real, animo a los usuarios a usar esta biblioteca para sus proyectos de la vida real.

Referencias