PNL con R parte 1: Modelado de temas para identificar temas en reseñas de restaurantes

Publicado el

(Jurriaan Nagelkerke) ( 13 de noviembre de 2020)

Esta historia está escrita por y . Es parte de nuestra NLP con R serie ( Procesamiento de lenguaje natural con fines predictivos con R ) donde usamos Modelado de temas, Incrustaciones de palabras, Transformers y BERT.

En una secuencia de los artículos comparamos diferentes técnicas de PNL para mostrarle cómo obtenemos información valiosa del texto no estructurado. Hace aproximadamente un año recopilamos opiniones sobre restaurantes holandeses. Nos preguntábamos si «la sabiduría de la multitud», las opiniones de los visitantes de los restaurantes, podría usarse para predecir qué restaurantes tienen más probabilidades de recibir una nueva estrella Michelin. Lea esta publicación para ver cómo funcionó. Usamos modelado de temas como nuestra herramienta principal para extraer información de los textos de revisión y lo combinamos con técnicas de modelado predictivo para terminar con nuestras predicciones.

Recibimos mucha atención con nuestras predicciones y también preguntas sobre cómo hicimos la parte de análisis del texto. Para responder a estas preguntas, explicaremos nuestro enfoque con más detalle en los próximos artículos. Pero no dejamos de explorar las técnicas de PNL después de nuestra publicación, y también nos gusta compartir información sobre cómo agregar más técnicas novedosas de PNL. Más específicamente, utilizaremos dos tipos de incrustaciones de palabras: un modelo clásico Word2Vec y un modelo de incrustación GLoVe : usaremos el aprendizaje por transferencia con incrustaciones de palabras previamente entrenadas y usaremos BERT . Comparamos el valor agregado de estas técnicas avanzadas de PNL con nuestro modelo de tema de referencia en el mismo conjunto de datos. Al mostrar lo que hicimos y cómo lo hicimos, esperamos guiar a otros que estén interesados ​​en usar datos textuales para sus propios esfuerzos de ciencia de datos.

En un (artículo anterior) mostramos cómo preparó nuestros datos para utilizarlos en diversas técnicas de PNL. Aquí, comenzamos nuestra serie de artículos sobre técnicas de PNL presentando Modelado de temas y le mostramos cómo identificar temas, visualizar el modelo de tema. resultados. En un (artículo posterior), le mostramos cómo utilizar los resultados del modelo de temas en un modelo predictivo.

¿Qué es el modelado de temas?

Para descubrir los temas que los críticos de restaurantes escriben en sus reseñas de restaurantes, usamos Topic Modeling. Pero, ¿qué es un modelo temático? En el aprendizaje automático y el procesamiento del lenguaje natural, un modelo de tema es un tipo de modelo estadístico que se puede usar para descubrir los temas abstractos que ocurren en una colección de documentos. Hay varios algoritmos para extraer temas de una colección de textos, pero la Latent Dirichlet Allocation es uno de los algoritmos más populares porque es eficiente y da como resultado temas altamente interpretables. La interpretabilidad de los temas es una característica importante de un modelo de temas, ya que no solo queremos encontrar agrupaciones de palabras estadísticamente relevantes, sino que también queremos poder etiquetar los temas identificados con un nombre de tema con el que otros puedan relacionarse. Como tal, el modelado de temas tiene algunas similitudes con las técnicas de agrupamiento como KMeans, donde la interpretación también es tan importante como las métricas estadísticas para determinar qué es una «buena» solución. Blei visualiza cómo funciona el modelado de temas / LDA como:

Como muestra la figura:

  • Cada topic es una distribución sobre palabras
  • Cada documento es una distribución sobre temas

Entonces, una vez que hayamos terminado de modelar el tema de nuestras revisiones:

  • debemos saber cuáles son los temas o temas sobre los que los revisores escriben en sus reseñas de restaurantes,
  • sabemos qué fichas o palabras son más importantes en estos temas, y
  • podemos decir para cada reseña individual en qué medida se trata de los temas identificados y esto puede ser una mezcla: 80\% sobre el tema X y 20\% sobre el tema Y .

Paso 0: Configurar nuestro contexto

Primero , configuramos nuestro entorno de libro de trabajo con los paquetes necesarios para realizar el modelado de temas.

En nuestro (blog sobre prepar ing los datos textuales) ya introdujimos brevemente tidyverse y tidytext.Aquí, agregamos algunos otros paquetes a la lista:

  • topicmodels es un paquete para estimar modelos de temas con LDA y compilaciones sobre estructuras de datos creadas con el paquete tm
  • tm es un paquete genérico poderoso con todo tipo de funciones de minería de texto, entre las cuales la creación de documentos matrices de términos, que necesitamos para el modelado de temas
  • ldavis es un gran paquete para visualizar e interpretar el modelo de tema y muy útil al etiquetar temas

Paso 1. Cargue datos preprocesados ​​

Antes profundizamos en el lado analítico de las cosas, necesitamos algunos datos textuales preparados. Como saben todos los verdaderos científicos de datos, la preparación adecuada de los datos toma la mayor parte de su tiempo y es más decisiva para la calidad de los resultados del análisis que obtiene. La preparación de datos textuales es otra taza de té en comparación con la preparación de datos numéricos o categóricos estructurados. En este blog, nuestro enfoque está en el análisis de texto. Sin embargo, queremos mostrarle cómo limpiamos y preparamos los datos que recopilamos. En este (blog anterior), explicamos en detalle cómo preprocesamos los datos, lo que da como resultado los siguientes 5 archivos que podemos usar en nuestros análisis de PNL:

  • reviews.csv: un archivo csv con textos de revisión originales y preparados: el combustible para nuestros análisis de PNL. (clave incluida: restoreviewid, de ahí el identificador único para una revisión)
  • labels.csv : a csv con valores 1/0, que indica si la reseña es una reseña de un restaurante Michelin o no (clave incluida: restoreviewid)
  • restoid.csv : un archivo csv con ID de restaurante, para poder determinar qué reseñas pertenecen a qué restaurante (clave incluida: restoreviewid)
  • trainids.csv : un archivo csv con valores de 1/0, que indica si la revisión debe usarse para entrenamiento o prueba; ya dividimos las revisiones en tren / prueba para permitir la reutilización de las mismas muestras para comparaciones justas entre técnicas (clave incluida: restoreviewid)
  • features.csv : un archivo csv con otras características relacionadas con las revisiones (clave incluida: restoreviewid)

Estos archivos con th Los datos limpios y relevantes para las técnicas de PNL se ponen a su disposición a través del almacenamiento público de blobs para que pueda ejecutar todo el código que le presentamos y ver cómo funcionan las cosas con más detalle. Para nuestro modelo de tema, necesitamos tres de estos archivos:

Paso 2: preparar datos para el tema modelado

A partir de los textos de revisión limpios, tenemos que hacer algunas cosas antes de que podamos estimar nuestros modelos de temas:

  1. Tokenize nuestro texto preparado (incluyendo bigrams)
  2. Revisiones de muestra para entrenar nuestro modelo de temas
  3. Filtrar tokens relevantes
  4. Crear matriz de términos del documento

2.1. Tokenice nuestro texto preparado (incluidos los bigrams)

La asignación de Dirichlet latente (LDA), la técnica que usamos para el modelado de temas, es una técnica de «bolsa de palabras». Lo que esto significa es que la técnica de PNL no se fija en el orden de los tokens al analizar el texto. Por lo tanto, no se considera dónde se encuentra el token en el texto y qué otros tokens están cerca del token (tokens anteriores / posteriores) dentro del documento . Es como si todos los tokens del texto del documento se arrojaran a una bolsa, mezclándolos pero conservando la información de que los tokens están en el mismo documento. Como resultado, podríamos perdernos información crucial si hay muchas colocaciones interesantes (combinaciones frecuentes de tokens) en el texto. Ejemplos populares son nombres de personas (Donald Trump, Jonnie Boer) o lugares (Estados Unidos, Den Haag), pero también puede ser importante incluir combinaciones de palabras específicas del contexto en nuestro modelo de tema: witte wijn ( vino blanco ), rode wijn , ( vino tinto ), gaan eten ( ir a comer ). Para asegurarnos de no perdernos estas importantes colocaciones, agregamos los bigrams preparados que están presentes en nuestro texto. Recuerde que ya eliminamos las palabras vacías y las interpunciones en nuestra preparación de datos.

Después de agregar bigrams a los textos cargados y limpios, dividimos los textos nuevamente para terminar con un marco de datos donde cada fila es una combinación de revisión y token. Filtramos las reseñas que se han vuelto demasiado cortas (5 tokens) después de eliminar las palabras vacías. En este formato, estamos listos para nuestros últimos preparativos antes de que podamos comenzar a modelar temas.

2.2 Revisiones de muestra para entrenar nuestro modelo de temas

En nuestro siguiente paso, filtraremos los tokens más relevantes para incluirlos en la matriz de términos del documento y posteriormente en el modelado de temas.Pero primero debemos determinar qué documentos (revisiones) son más importantes para nosotros. Por algunas razones, no queremos usar todas reseñas como entrada para nuestro modelo de tema:

  • Al final, queremos usar los temas en un modelo de predicción para predecir estrellas Michelin. Es una buena práctica dejar a un lado un conjunto de pruebas antes de construir el modelo de tema y usar sus resultados en la tarea predictiva posterior. De esta manera, construimos nuestro modelo temático y nuestra predicción en datos de trenes y mantenemos los datos de prueba sin ver hasta la evaluación.
  • Como se muestra a continuación, no más del 3\% de todas las reseñas son reseñas de Michelin. Al aumentar la proporción de reseñas Michelin en el conjunto de trenes que usamos para el modelado de temas, es más probable que se identifiquen los temas específicos que se debaten en las reseñas Michelin.

Por estos motivos, centrará el resto de la preparación hacia nuestro modelo de tema y la estimación de los modelos de tema en un subconjunto de revisiones. Este subconjunto contiene solo revisiones que ya están especificadas como casos de capacitación en nuestro cuaderno de preparación de datos. Dentro de este subconjunto, tomamos todas las reseñas de Michelin (aproximadamente 3.000) y las complementamos con reseñas que no son de Michelin para terminar con alrededor de 10.000 reseñas:

# A tibble: 2 x 3
ind\_michelin n pct

1 0 141554 97\%
2 1 4313 3\%
# A tibble: 5 x 5
# Groups: train\_smpl, train [3]
train\_smpl train ind\_michelin n\_reviews n\_tokens

1 0 0 0 40997 433179
2 0 0 1 1290 35129
3 0 1 0 88505 773887
4 1 1 0 7181 111435
5 1 1 1 2971 70548
[1] "10152 unique reviews and 163137 unique tokens selected to train topic model"

2.3 Filtrar tokens

Ahora que hemos agregado bigrams a los tokens y hemos vuelto a tokenizar nuestros textos, todavía tenemos muchos, muchos tokens únicos disponibles para nuestro modelo de tema . Es una buena práctica deshacerse de la cola larga de los términos poco frecuentes. Primero, echemos un vistazo a cómo se ve la distribución de la frecuencia del token. Recuerde que en nuestro (blog de preparación de datos) ya eliminamos todas las palabras vacías de los textos, incluidas 128 palabras vacías personalizadas de alta frecuencia que especificamos al observar la frecuencia del token al preparar los datos.

La gráfica anterior muestra claramente que una gran cantidad de tokens únicos ocurre raramente en todas las reseñas, el 75\% ocurre solo una vez.

Céntrese en los tokens que ocurren 5 veces o more in train Corpus

Como podemos ver en el recuento de frecuencia de tokens, hay muchos tokens que ocurren solo una o unas pocas veces: Alrededor del 92\% de todos los tokens únicos ocurren menos de 5 veces en nuestro corpus de reseñas. Estos tokens de baja frecuencia afectan el análisis del modelo de tema. Para centrarnos en los tokens de uso frecuente, seleccionamos tokens que ocurren 5 veces o más en los datos de tren preparados. Con suerte, esto es suficiente para aprender temas de los tokens que ocurren juntos en las mismas revisiones. Al optimizar nuestro modelo de temas, podemos variar la frecuencia mínima para evaluar el impacto en los resultados.

¿Por qué no TF-IDF?

Después de leer algo sobre herramientas de análisis de texto, quizás se pregunte: ¿Por qué no usamos TF-IDF para seleccionar los tokens más relevantes? TF-IDF significa Frecuencia de término – Frecuencia de documento inversa. Esta métrica combina la Frecuencia de términos: ¿con qué frecuencia está presente el token en un documento? – con el inverso de la frecuencia del documento – ¿en cuántos documentos únicos está presente el término? Aunque TF-IDF es a menudo una buena opción para seleccionar los tokens más relevantes, no es en nuestro contexto, donde el tamaño del documento es limitado y la recurrencia del mismo token en el mismo texto es baja. Con poca frecuencia, un token tiene una Frecuencia de Término superior a 1. Como resultado, solo la parte de Frecuencia Inversa del Documento es decisiva y esto favorece los tokens que solo ocurren en una o dos revisiones. Por esta razón, no usamos TF-IDF aquí, pero miramos la frecuencia general para elegir tokens relevantes para el modelado de temas. También debido a que ya eliminamos la lista personalizada de palabras vacías de nuestro texto, por lo tanto, los tokens demasiado frecuentes ya se eliminaron.

Al filtrar los tokens poco frecuentes, hemos disminuido el número de tokens a considerar en nuestro LDA de forma espectacular, centrándose en los 12K (8\%) tokens más frecuentes y eliminando los 146K (92\%) tokens que son demasiado infrecuentes en el corpus. Sin embargo, estos tokens seleccionados todavía representan el 73\% de todos los tokens en los documentos:

# A tibble: 2 x 5
min\_5\_freq n\_unique\_tokens n\_tokens pct\_unique\_tokens pct\_all\_tokens

1 token frequency: 2 token frequency: >=5 12525 518146 8\% 73\%

2.4 Crear DTM

Después de filtrar los tokens que queremos usar para construir nuestro modelo de tema, podemos crear la entrada para LDA. Esto requiere una document-term-matrix o DTM por lo tanto, una matriz con en las filas todos nuestros documentos (reseñas) y en las columnas todos los términos (el tokens relevantes). Tenga en cuenta que usamos la frecuencia de token general para el parámetro value.Puede esperar la frecuencia de términos específicos del documento aquí, sin embargo, usamos la frecuencia general de los tokens para dar mucho más énfasis en la búsqueda del modelo de temas a los términos que son más frecuentes en general; dada la corta extensión de las reseñas (en comparación con los libros o artículos que se utilizan a menudo en el modelado de temas), la probabilidad de que un solo token aparezca con más frecuencia en la reseña es limitada.

DTM dimensions: 
Documents (10152) x Tokens (12525) (average token frequency: 702.3)

Paso 3: Desarrollar el modelo de tema

Ahora que tenemos un DTM, ¡estamos listos para comenzar a modelar el tema! Hasta ahora, ya tomamos bastantes decisiones con impacto en el resultado de nuestro análisis: qué extensión mínima de revisión usar, qué palabras vacías excluir, qué n -gramas para incluir, la frecuencia mínima de tokens para usar tokens … Y se deben hacer algunas elecciones más.

LDA tiene una serie de parámetros que afectan el resultado, de los cuales los más importantes son:

  • k : ¡El número de temas! Sí, este es un parámetro y no un resultado. De manera similar a las técnicas de agrupación en clústeres como KMeans, debe indicar cuántos clústeres / temas desea identificar ify.
  • método : el paquete topicmodels habilita diferentes métodos de optimización, VEM algorithm o Gibbs sampling, el valor predeterminado es VEM.
  • control : lista de variables de control para guiar la estimación; los parámetros relevantes dependen del método elegido VEM o Gibbs, pero los más importantes son:
  • nstart : la cantidad de ejecuciones a realizar con la misma configuración pero diferentes semillas
  • semilla : Para la reproducibilidad, se puede establecer una semilla aleatoria. Si nstart> 1, debe proporcionar varias semillas, 1 por nstart (p. Ej., C (123, 234 «, 345»))
  • best : Si es VERDADERO (predeterminado), solo se mantiene la ejecución con el resultado de mejor ajuste, de conjunto, si es FALSO se devuelve una lista de todas las ejecuciones para que pueda examinar todas de ellos.

Para obtener una descripción general completa de todos los parámetros y configuraciones disponibles, consulte la viñeta del paquete topicmodels .

Estimar el modelo de tema LDA

El parámetro más impactante es k : el número de temas para identificar. ¿Cómo elegir un valor para k? Esto es en parte el resultado de una discusión (¿qué número de temas esperamos encontrar en este contexto?) Y del error & de prueba (prueba con diferentes valores de k, evalúa los resultados). Es posible que a algunos científicos de datos no les guste esto, prefieren mirar las estadísticas para guiarlos en este proceso, pero para aquellos familiarizados con otras técnicas de ciencia de datos no supervisadas como KMeans esto no es tan nuevo. La agrupación y también el modelado de temas es hasta cierto punto más arte que ciencia. Guiado por técnicas y medidas estadísticas, un científico de datos esculpe una solución de modelado de temas que se adapta a las necesidades (comerciales). En caso de que necesite un punto de partida para k con algunos antecedentes estadísticos, puede probar este enfoque o este enfoque.

Comencemos con un modelo de temas para identificar 3 temas y explorar el resultado. No tenemos ninguna razón para cambiar otros valores predeterminados en este momento.

Evaluar modelo de tema

El modelo de tema está ajustado, así que, ¡exploremos!

El objeto lda ajustado contiene una serie de matrices:

  • phi : matriz con distribución de tokens (en filas) sobre temas (en columnas)
  • theta : matriz con distribución de documentos (por lo tanto: reseñas, en filas) sobre temas (en columnas)

Tanto para phi como para theta, la suma de todas las columnas es igual a 1, lo que significa:

  • Para phi, la suma de todos los puntajes de token dentro de un tema es 1 – puntajes más altos significan mayor importancia de ese token dentro del tema .
  • Para theta, la suma de todos los puntajes de los temas dentro de un documento es 1 – puntajes más altos significa que el tema está más presente en ese documento.

Para explorar nuestro modelo de tema, comencemos por mirar los tokens más importantes por tema. Para hacerlo, necesitamos especificar cuándo un token es importante para un tema. Podríamos argumentar que el token es importante para el tema cuando tiene una alta probabilidad de ocurrir dentro de un tema p(token|topic). Veamos cómo se ve esto para nuestro modelo de temas de 3 temas. Usaremos una función ordenada del paquete tidytext, que ayuda a preparar los datos del modelo de temas para visualizar los tokens más importantes. por tema: tidy().

Con este gráfico, tenemos una primera idea de lo que representan los temas de nuestro primer modelo de temas. Como podemos ver en la trama, observar la probabilidad de token por tema tiene la desventaja de que los tokens que tienen una frecuencia general alta tienen una mayor probabilidad de aparecer en el top 10 para múltiples temas. Por ejemplo, restaurante aparece en varios top 10 de temas. Solo mirar las probabilidades generales del tema podría ocultar que los tokens específicos algo menos frecuentes están muy relacionados con un tema específico. Para analizar eso, podemos hacer que la frecuencia del token en el tema sea relativa a la frecuencia general del token: p(token|topic)/p(token). Esto muestra qué tokens están fuertemente relacionados con el tema, independientemente de la frecuencia del token.

Tomar (solo) el último enfoque tiene sus propias desventajas, destacando tokens importantes que podrían no ocurrir en tantas críticas. El mejor enfoque podría estar en algún punto intermedio: para evaluar un modelo de tema, es más valioso poder explorar el modelo de tema desde ambas perspectivas (probabilidad de término absoluto y probabilidad de término relativa) y tal vez incluso una combinación de los dos. Por esta razón, el paquete LDAvis es tan valioso porque le permite hacer exactamente eso. LDAvis necesita un JSON que contenga información sobre su modelo de tema y vocabulario:

Una nota al margen aquí: el paquete LDAvis R se puede utilizar desde R o RStudio pero no directamente desde un entorno portátil como Jupyter o Databricks. Por lo tanto, usamos el puerto pyLDAvis para el paquete LDAvis, ya que esto facilita la inclusión de la maravillosa herramienta LDAvis en un portátil. Sin embargo, en algunos navegadores, pyLDAvis no funciona correctamente. Si esto sucede, consulte un ejemplo a continuación. No dudes en descargar este cuaderno y probar el LDAvis por ti mismo.

Para ejecutar LDAvis localmente con R o RStudio, puede ejecutar serVis(json) . Para explorar el LDAvis interactivo de la siguiente serigrafía, consulte este enlace .

El gráfico del lado izquierdo muestra el tamaño de Temas ( ¿Cuántos documentos se atribuyen al tema?) así como la distancia entre los Temas ( ¿Qué Temas están más o menos relacionados entre sí? ). El lado derecho muestra los tokens importantes para el tema seleccionado (o los tokens más importantes en general en el modelo de tema cuando no se selecciona ningún tema). Con el control deslizante superior derecho podemos cambiar lambda, donde lambda decide cuánto favorecemos mirar la probabilidad absoluta del token dentro del tema (p(token|topic), lambda = 1) o preferimos el token relativo probabilidad dentro del tema (p(token|topic)/p(token), lambda = 0). Jugar con esta visualización es a menudo la mejor manera de familiarizarse con los temas identificados. Y, lo más importante, ¡descifrar una etiqueta de tema adecuada para cada uno de los temas! Esto también es de gran ayuda para decidir si el modelo de tema actual es suficiente para su tarea posterior o si desea modificar algunas configuraciones (k, método, semilla, …) o incluso los datos (cambiar documentos o tokens seleccionados) para obtener un mejor resultado.

Iteraciones hacia su modelo de tema ganador

Lo dijimos antes: topic modeling es, al igual que el análisis de conglomerados y otros métodos no supervisados Técnicas de aprendizaje automático: ¡más arte que ciencia! Por lo tanto, probablemente pasará bastante tiempo ajustando su modelo de tema antes de terminar con su «mejor» modelo de tema. Ponemos «lo mejor» entre comillas porque lo que es «lo mejor» depende en gran medida tanto de las aplicaciones que tenga en mente con su modelo de tema como de su creatividad. ¡Así que esto es bastante subjetivo! Durante el proceso de encontrar su «mejor» modelo de tema, probablemente tenga algunos momentos en los que cree que no encontrará ninguna solución que pueda utilizar y otros momentos en los que experimente el éxtasis de ver esos temas intrínsecos cobrar vida a través del tokens que lo dominan.Para crear su modelo de tema óptimo, estas son sus herramientas más importantes:

  • change k – el número de temas
  • excluir tokens «demasiado dominantes (frecuentes)» adicionales (estos podrían ser demasiado dominante y suprimir la búsqueda de subdominios más interesantes en su texto)
  • aumentar la frecuencia mínima del token para centrarse en los tokens más dominantes
  • documentos de muestra para centrarse en los documentos más relevantes para encontrar temas importantes , podríamos cambiar la estrategia de muestreo

Aparte de estos parámetros, también tiene algunos parámetros LDA que puede variar, pero en nuestra experiencia, los parámetros anteriores son los más importantes para empezar. Mientras que aumentar o disminuir k solo significa que tiene que volver a estimar su LDA, cambiar el muestreo de reseñas o los tokens a considerar significa que también tiene que volver a crear su DTM.

¿Qué hicimos? Después de sudar mucho, maldecir y explorar muchas soluciones, hicimos lo siguiente:

  • cambiar k a 7 temas.
  • Combinar algunos tokens y excluir algunos tokens
  • Explore varios resultados de semilla (con nstart y best=FALSE) para encontrar el mejor modelo de tema interpretable **
  • Finalmente, seleccione la mejor semilla y configure best=TRUE para mantener solo el mejor modelo LDA

** El permite realizar múltiples ejecuciones especificando el parámetro nstart para establecer el número de ejecuciones y con seed establecido las semillas para guiar estos recorridos. Cuando se configura best=TRUE solo se conserva la solución con la mejor probabilidad de registro, configurarla en best=FALSE le permite explorar todos los modelos de tema (el El objeto devuelto ahora es una lista de todos los modelos de temas).

La iteración y la comparación de resultados dieron como resultado 7 temas que podríamos etiquetar muy bien con nombres de temas de los que los revisores hablan cuando opinan sobre restaurantes. Aquí está nuestra solución para los temas con las etiquetas ya agregadas:

DTM dimensions: 
Documents (10152) x Tokens (12496) (average token frequency: 416.26)

Para explorar el LDAvis interactivo de la siguiente serigrafía, vaya a este archivo html .

Aunque algunos temas aún son una combinación de cosas, nos complace utilizar esta solución para predecir estrellas Michelin. Vemos algunas distinciones claras entre los temas identificados y esperamos que la traducción del texto sin formato de cada reseña a un vector de probabilidades para estos temas ayude a predecir las estrellas Michelin. Aquí hay una descripción general de los temas con las etiquetas que les damos y sus tokens más frecuentes:

Modelado de temas: resumen

En este En este artículo le mostramos cómo se puede construir un modelo de tema para identificar las construcciones latentes o los «temas» de los que hablan los revisores en sus reseñas de restaurantes. Como ha visto, hay bastantes opciones que tomar antes de que tengamos nuestro modelo de tema «mejor» final y algunas de esas opciones no son fáciles de tomar ya que las estadísticas de orientación no siempre están disponibles. Recuerde lo que dijimos antes: el modelado de temas es una técnica sin supervisión y esto lo convierte en «más arte que ciencia». Lo importante para muchos casos de uso es que terminas con temas que puedes interpretar y explicar, ya que necesitas poder interpretar las funciones que has creado aquí mientras las usas en tareas posteriores. ¡Con nuestro modelo de 7 temas, estamos seguros de que podemos hacerlo!

Beneficios

Una gran cosa sobre el modelado de temas, y especialmente LDA, es que cuando todos los ajustes y las dificultades están hecho, es probable que termine con una cantidad manejable de temas bien interpretables. Esto le permite agregar para cada documento la distribución sobre esos temas. Dado que las probabilidades del tema suman 1 y son valores numéricos, ahora ha resumido los textos no estructurados y de diferente longitud en solo unas pocas características nuevas y fáciles de procesar. Características que pueden ser de gran valor en tareas posteriores como el modelado predictivo o las tareas de segmentación.

Inconvenientes

El mayor inconveniente del modelado de temas es probablemente la subjetividad para encontrar el «mejor» modelo . Por lo tanto, puede que le lleve bastante tiempo y esfuerzo encontrar una solución de modelo de tema adecuada. Puede haber múltiples soluciones estadísticamente equivalentes que pueden diferir sustancialmente en los temas resultantes.Por lo tanto, cuando vuelve a ejecutar el análisis con datos o configuraciones ligeramente diferentes, siempre existe la posibilidad de que la interpretación del modelo cambie drásticamente. Especialmente cuando no hay una solución de tema dominante presente en sus datos textuales, cada ejecución puede generar resultados diferentes. Asegúrese de realizar un seguimiento de las ejecuciones anteriores, asegurando las semillas y los conjuntos de datos utilizados para no experimentar la frustración de encontrar una hermosa solución de modelo de tema que pueda interpretar en una descripción agradable y luego perderla para no restaurarla nunca más.

Mirando hacia el futuro

Anteriormente, especificamos nuestro objetivo: predecir qué restaurantes tienen una estrella Michelin. En uno de nuestros (próximos blogs), usamos la distribución por temas en los textos de revisión para predecir si la revisión es una revisión Michelin o no. También agregamos esas predicciones sobre todas las reseñas que ha tenido un restaurante para evaluar hasta qué punto podemos predecir las estrellas Michelin. Aparte de esto, usaremos (otras técnicas) (word2vec, GloVe, BERT) para resumir los textos de revisión en características que podemos usar para predecir estrellas Michelin y mostraremos qué enfoque funciona mejor. Comenzaremos presentando técnicas de incrustación de palabras (word2vec, GloVe) en nuestro próximo blog y le mostraremos cómo transformar nuestros textos de revisión en incrustaciones y cómo interpretarlos y visualizarlos.

Este artículo es parte de nuestra PNL con la serie R . Puede encontrar una descripción general de todos los artículos de la serie aquí.

  • Anterior en esta serie: (Preparación de datos para el procesamiento del lenguaje natural)
  • Siguiente en esta serie : (Entrenamiento del modelo de incrustación de palabras y visualización de resultados)

¿Desea hacerlo usted mismo? No dude en descargar Databricks Notebook o el script R desde nuestra página gitlab .

Deja una respuesta

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