Minería de textos y clasificación de reseñas de películas a través de RapidMiner.

Daniel Gomez Jaramillo
4 min readAug 18, 2019

--

Una de las tareas más complejas en los métodos de clasificación supervisados es contar con un conjunto de datos etiquetado que permita en una primera instancia entrenar un modelo y luego validar el mismo. Dentro del proceso de minería de textos existen pocos corpus que pueden ser usados para estos procesos. Por tanto, el objetivo será crear un conjunto de datos etiquetado que permita formar un modelo de clasificación para reconocer las reseñas positivas o negativas de un conjunto de películas.

Fuente de datos: https://www.cinemablend.com/reviews/

Repositorios del proyecto: https://github.com/esdanielgomez/MovieClassificationRMP/

PARTE 1: Recopilación de los datos no estructurados.

Para este proceso se empieza con la extracción de los enlaces de los comentarios de las películas (1470 en total) a través de 30 páginas en el sitio.

REPOSITORIO: Final_A

En este caso se están seleccionando tanto el enlace del comentario como su valoración en estrellas (Ponderada entre 1.0 y 5.0):

REPOSITORIO: Final_B

Ahora como siguiente paso, se dividen los comentarios en dos secciones: Positivos y Negativos:

Para los comentarios negativos se realiza la selección de los comentarios con valoración de menor o igual a 3.0:

Y para los comentarios negativos con valoración mayor a 3.0:

Posteriormente se obtiene la información de las películas, en el cual, el mas relevante es para este estudio es el atributo Comentario:

El proceso para obtener los comentarios es el siguiente:

Finalmente, esos comentarios son almacenados en dos archivos de Excel (datasetComentariosNegativos.xlsx y datasetComentariosPositivos.xlsx).

REPOSITORIO: Final_C

A continuación se seleccionan 650 comentarios de películas por dataset (Positivos y Negativos) y se elaboran dos nuevos datasets para los datos de entrenamiento y los datos para las pruebas posteriores.

PARTE 2: Preparación de los datos.

Hasta este momento los datos se encuentran organizados de esta manera:

REPOSITORIO: Final_D

A continuación, se ejecutan actividades de pre-procesamiento para eliminar las etiquetas HTML, las palabras vacías en Ingles y a través de un diccionario personalizado, entre otros procesos:

Process Documents from Data:

PARTE 3: Identificar características clave.

REPOSITORIO: Final_D (En el mismo repositorio que la parte 2).

El resultado del proceso previo (Parte 2) devuelve una tabla estructurada que consta de una fila por cada entrada extraída desde la página web y un número de columnas que indican los diferentes tokens que forman parte del documento y su peso de ocurrencia. No obstante intentar ejecutar un proceso de aprendizaje con tantas variables resulta una tarea muy costosa. Por tanto, en este proceso el objetivo es filtrar aquellas columnas (tokens) mediante algún método de selección de características.

Para ello se emplea el operador Weight of Information Gain para clasificar las características por su relevancia con el atributo de etiqueta basándose en la relación de ganancia de la información.

Asimismo, se emplea el operador Select by Weights el cual selecciona solo aquellos atributos de un conjunto de entrada cuyos pesos satisfacen el criterio especificado con respecto a los pesos de entrada. En este caso a través del atributo top k en el cual se seleccionan las mejores 90 características del conjunto de datos.

PARTE 4 Y 5: Construir el modelo de entrenamiento y aplicarlo.

Para construir el modelo de entrenamiento se utilizan dos algoritmos: Naive Bayes y SVM, en el cual se puede identificar cuál proporciona la mejor precisión y rendimiento.

Asimismo, dentro del mismo proceso, se aplican los dos modelos entrenados sobre los datos de prueba y se verifica su precisión (Los datos de este dataset de pruebas son pre-procesados en las partes anteriores).

Modelo y validación NB (Naive Bayes)

Modelo y validación SVM (Support Vector Machine)

--

--

Daniel Gomez Jaramillo
Daniel Gomez Jaramillo

Written by Daniel Gomez Jaramillo

Microsoft MVP (Most Valuable Professional)

No responses yet