Extracción de características e incrustaciones en el procesamiento del lenguaje natural

Share on facebook
Share on twitter
Share on linkedin
Share on telegram
Share on whatsapp

Contenidos

Este artículo fue publicado como parte del Blogatón de ciencia de datos

Introducción

En el procesamiento del lenguaje natural, la extracción de características es uno de los pasos triviales que se deben seguir para comprender mejor el contexto de lo que estamos tratando. Después de limpiar y normalizar el texto inicial, debemos transformarlo en sus características para usarlo en el modelado. Usamos algún método particular para asignar pesos a palabras particulares dentro de nuestro documento antes de modelarlas. Optamos por la representación numérica de palabras individuales, ya que es fácil para la computadora procesar números; en tales casos, optamos por incrustaciones de palabras.

56750extraction-using-python-2342259

Fuente: https://www.analyticsvidhya.com/blog/2020/06/nlp-project-information-extraction/

En este artículo, discutiremos los diversos métodos de extracción de características e incrustaciones de palabras que se practican en el procesamiento del lenguaje natural.

Extracción de características:

Bolsa de palabras:

En este método, tomamos cada documento como una colección o bolsa que contiene todas las palabras. La idea es analizar los documentos. El documento aquí se refiere a una unidad. En caso de que queramos encontrar todos los tweets negativos durante la pandemia, cada tweet aquí es un documento. Para obtener la bolsa de palabras siempre realizamos todos esos pasos previos como limpieza, derivación, lematización, etc… Luego generamos un conjunto de todas las palabras que están disponibles antes de enviarlo para modelar.

«La entrada es la mejor parte del fútbol» -> {‘entrada’, ‘mejor’, ‘parte’, ‘fútbol’}

Podemos obtener palabras repetidas dentro de nuestro documento. Una mejor representación es una forma vectorial, que nos puede decir cuántas veces puede aparecer cada palabra en un documento. Lo siguiente se denomina matriz de términos del documento y se muestra a continuación:

¿Qué es una matriz de documentos a término?  Extracción e incrustaciones de funciones

Fuente: https://qphs.fs.quoracdn.net/main-qimg-27639a9e2f88baab88a2c575a1de2005

Nos informa sobre la relación entre un documento y los términos. Cada uno de los valores de la tabla se refiere al término frecuencia. Para encontrar la similitud, elegimos la medida de similitud del coseno.

TF-IDF:

Un problema que encontramos en el enfoque de la bolsa de palabras es que trata todas las palabras por igual, pero en un documento, existe una alta probabilidad de que determinadas palabras se repitan con más frecuencia que otras. En un reportaje sobre la victoria de Messi en la Copa América, la palabra Messi se repetiría con más frecuencia. No podemos darle a Messi el mismo peso que cualquier otra palabra de ese documento. En el reportaje, si tomamos cada frase como un documento, podemos contar la cantidad de documentos cada vez que aparece Messi. Este método se llama frecuencia de documentos.

Luego dividimos la frecuencia del término por la frecuencia del documento de esa palabra. Esto nos ayuda con la frecuencia de aparición de términos en ese documento e inversamente al número de documentos en los que aparece. Por lo tanto, tenemos el TF-IDF. La idea es asignar pesos particulares a las palabras que nos dicen qué tan importantes son en el documento.

88298tfidf_ex3-6125265

Fuente: https://sci2lab.github.io/ml_tutorial/tfidf/

Codificación one-hot:

Para un mejor análisis del texto que queremos procesar, debemos crear una representación numérica de cada palabra. Esto se puede solucionar utilizando el método de codificación One-hot. Aquí tratamos cada palabra como una clase y en un documento, donde sea que esté la palabra, le asignamos 1 en la tabla y todas las demás palabras en ese documento obtienen 0. Esto es similar a la bolsa de palabras, pero aquí solo mantenemos cada palabra en una bolsa.

856111_arm6z5jeptcq082dyn9ndq-5489465

Fuente: https: //towardsdatascience.com/word-embedding-in-nlp-one-hot-encoding-and-skip-gram-neural-network-81b424da58f2

Incrustación de palabras:

La codificación one-hot funciona bien cuando tenemos un pequeño conjunto de datos. Cuando hay un vocabulario enorme, podemos codificarlo usando este método ya que la complejidad aumenta mucho. Necesitamos un método que pueda controlar el tamaño de las palabras que representamos. Hacemos esto limitándolo a un vector de tamaño fijo. Queremos encontrar una incrustación para cada palabra. Queremos que nos muestren algunas propiedades. Por ejemplo, si dos palabras son similares, deben estar más cerca una de la otra en representación, y dos palabras opuestas si existen sus pares, ambas deben tener la misma diferencia de distancias. Estos nos ayudan a encontrar sinónimos, analogías, etc.

450121_sajdxesdjspmiohyzln3_a-8520616

Fuente: https://miro.medium.com/max/1400/1*sAJdxEsDjsPMioHyzlN3_A.png

Word2Vec:

Word2Vec se usa ampliamente en la mayoría de los modelos de PNL. Transforma la palabra en vectores. Word2vec es una red de dos capas que procesa texto con palabras. La entrada está en el corpus de texto y la salida es un conjunto de vectores: los vectores de características representan las palabras en ese corpus. Si bien Word2vec no es una red neuronal profunda, convierte texto en una forma inequívoca de cálculo para redes neuronales profundas. El propósito y el beneficio de Word2vec es recopilar vectores de las mismas palabras en el espacio vectorial. Es decir, encuentra similitudes matemáticas. Word2vec crea vectores que se distribuyen mediante presentaciones numéricas de elementos de palabras, características como el contexto de palabras individuales. Lo hace sin intervención humana.

Con suficientes datos, uso y condiciones, Word2vec puede hacer las predicciones más precisas sobre el significado de una palabra basándose en apariencias anteriores. Esa conjetura se puede usar para formar combinaciones de palabras y palabras (por ejemplo, “grande”, es decir, “grande” para decir que “pequeño” es “diminuto”), o agrupar textos y separarlos por tema. Esas colecciones pueden formar la base para la búsqueda, el análisis emocional y las recomendaciones en varios campos, como la investigación científica, el descubrimiento legal, el comercio electrónico y la gestión de relaciones con los clientes. El resultado de la red Word2vec es un glosario donde cada elemento tiene un vector adjunto, que se puede incrustar en una red de lectura en profundidad o simplemente pedirle que encuentre la relación entre las palabras.

Word2Vec puede capturar muy bien el significado contextual de las palabras. Hay dos sabores. En uno de los métodos, se nos dan las palabras vecinas llamadas bolsa continua de palabras (CBoW), y en el que se nos da la palabra del medio llamada skip-gram y predecimos las palabras vecinas. Una vez que obtenemos un conjunto de pesos previamente entrenados, podemos guardarlo y esto se puede usar más tarde para la vectorización de palabras sin la necesidad de transformar nuevamente. Los almacenamos en una tabla de búsqueda.

38289word2vec_diagrams-4430378

Fuente: https://wiki.pathmind.com/word2vec

Guante:

GloVe – vector global para representación de palabras. Se utiliza un algoritmo de aprendizaje no supervisado de Stanford para generar palabras integradas combinando una matriz de palabras para la co-ocurrencia de palabras de la matriz del corpus. El texto incrustado emergente muestra un formato de línea atractivo para una palabra en un espacio vectorial. El modelo GloVe se entrena en la matriz de co-ocurrencia global de nivel cero, que muestra la frecuencia con la que las palabras se encuentran en un corpus particular. Completar esta matriz requiere una pasada por corporación completa para recopilar estadísticas. Para un corpus grande, esta transacción puede costar una computadora, pero es un gasto único en el futuro. La capacitación de seguimiento posterior es mucho más rápida porque la cantidad de entradas que no son de la matriz suele ser mucho menor que la cantidad total de entradas en el corpus.

La siguiente es una representación visual de incrustaciones de palabras:

619221_gcc7b_v7okwutyn1nahymq-5523351

Fuente: https://miro.medium.com/max/1400/1*gcC7b_v7OKWutYN1NAHyMQ.png

Referencias:

1. Imagen – https://www.develandoo.com/blog/do-robots-read/

2. https://nlp.stanford.edu/projects/glove/

3. https://wiki.pathmind.com/word2vec

4. https://www.udacity.com/course/natural-language-processing-nanodegree–nd892

Conclusión:

214550_xjhcghipvnmwp0wo-6693379

Fuente: https: //medium.com/datatobiz/the-past-present-and-the-future-of-natural-language-processing-9f207821cbf6

Sobre mí: Soy un estudiante de investigación interesado en el campo del aprendizaje profundo y el procesamiento del lenguaje natural y actualmente estoy realizando un posgrado en Inteligencia Artificial.

No dudes en conectarte conmigo en:

1. Linkedin: https://www.linkedin.com/in/siddharth-m-426a9614a/

2. Github: https://github.com/Siddharth1698

Los medios que se muestran en este artículo no son propiedad de DataPeaker y se utilizan a discreción del autor.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.