Usando PNL para automatizar la categorización de la descripción del usuario

8

Tengo un gran archivo de quejas de clientes sobre los productos que posee mi empresa y me gustaría hacer un análisis de datos sobre esas descripciones y etiquetar una categoría para cada uno de ellos.

Por ejemplo: necesito calcular la cantidad de quejas en el lado del Software y Hardware de mi producto a partir de las quejas de los clientes. Actualmente, estoy usando Excel para hacer el análisis de datos que buscan una gran cantidad de trabajo manual para obtener un nombre de etiqueta para las quejas.

¿Hay alguna forma en PNL de construir y entrenar un modelo para automatizar este proceso? He estado leyendo cosas sobre la PNL durante los últimos días y parece que la PNL tiene muchas características buenas para comenzar a abordar este problema. ¿Podría alguien guiarme con la forma en que debería usar la PNL para abordar este problema?

SRS
fuente
¿Tienes alguna habilidad de programación? Hay muchas maneras de hacer esto, puedo sugerir algo con suerte basado en algo que ha usado en el pasado.
sheldonkreger
Tengo un buen conocimiento en Java. He usado R para un par de tareas de minería de datos. Actualmente estoy estudiando Python para usar PNL.
SRS

Respuestas:

6

Una forma de manejar esto es usar 'clasificación supervisada'. En este modelo, clasifica manualmente un subconjunto de datos y lo utiliza para entrenar su algoritmo. Luego, introduce los datos restantes en su software para clasificarlos.

Esto se logra con NLTK para Python (nltk.org).

Si simplemente está buscando cadenas como "hardware" y "software", este es un caso de uso simple, y probablemente obtendrá resultados decentes utilizando un 'extractor de características', que informa a su clasificador qué frases en el documento son relevantes.

Si bien es posible implementar un método automatizado para encontrar las palabras clave, parece que ya tiene una lista en mente, por lo que puede omitir ese paso y simplemente usar las etiquetas que conoce. (Si sus resultados no son satisfactorios la primera vez, esto es algo que podría probar más adelante).

Esa es una descripción general para comenzar. Si no está satisfecho con los resultados iniciales, puede refinar su clasificador introduciendo métodos más complejos, como la segmentación de oraciones, la identificación de los tipos de actos de diálogo y los árboles de decisión. ¡El cielo es el límite (o más probablemente, tu tiempo es el límite)!

Más información en:

http://www.nltk.org/book/ch06.html

Sheldonkreger
fuente
Esta estrategia básica también funcionaría si encontraras un kit de herramientas de PNL en otro idioma que conozcas, como Java. Simplemente no estoy familiarizado con eso.
sheldonkreger
1

Sheldon tiene razón, esto suena como un caso de uso bastante típico para la clasificación supervisada. Si todas las quejas de sus clientes son software o hardware (es decir, cero quejas individuales cubren ambas categorías y cero están fuera de estas dos clases), entonces todo lo que necesita es un clasificador binario, lo que simplifica las cosas de lo contrario.

Si está buscando un juego de herramientas NLP basado en Java que admita algo como esto, debe consultar el Clasificador de Stanford: http://nlp.stanford.edu/software/classifier.shtml : tiene licencia como software de código abierto en la GPL

Su página wiki debería ayudarlo a comenzar a usar el clasificador: http://www-nlp.stanford.edu/wiki/Software/Classifier : tenga en cuenta que deberá anotar manualmente una gran muestra de sus datos como conjunto de entrenamiento, como mencionó Sheldon.

Charlie Greenbacker
fuente
La clasificación de software / hardware es como la tarea de muestra que intenté trabajar con la categorización. Tengo en mente varias otras categorías que tendrían una comprensión profunda de lo que está mal con los productos, al leer el caso del cliente y etiquetar la categoría apropiada. Comencé a leer NLPTK usando Python, pero me gustaría saber el tipo de funciones que debería estar buscando para abordar este caso
SRS
No se trata simplemente de buscar funciones mágicas. Lo que desea hacer es crear un clasificador utilizando aprendizaje automático supervisado. Estos son los pasos ... 1. anotar manualmente una muestra de sus datos como un conjunto de entrenamiento, 2. extraer características de sus datos para entrenar (para texto, esto podría ser algo así como ngrams), 3. construir el modelo clasificador usando una biblioteca de aprendizaje automático, 4. aplique el modelo clasificador a los nuevos datos. Algunas bibliotecas como Stanford Classifier lo ayudarán con los pasos 2 y 3.
Charlie Greenbacker