Usando a PNL para automatizar a categorização da descrição do usuário

8

Tenho um enorme arquivo de reclamações de clientes sobre os produtos que minha empresa possui e gostaria de fazer uma análise de dados nessas descrições e marcar uma categoria para cada uma delas.

Por exemplo: preciso descobrir o número de reclamações no lado de Software e Hardware do meu produto a partir das reclamações dos clientes. Atualmente, estou usando o Excel para fazer a análise de dados, que busca uma quantidade significativa de trabalho manual para obter um nome de tag para as reclamações.

Existe uma maneira na PNL de construir e treinar um modelo para automatizar esse processo? Eu tenho lido coisas sobre a PNL nos últimos dois dias e parece que a PNL tem muitos recursos bons para começar a lidar com esse problema. Alguém poderia me orientar sobre como devo usar a PNL para resolver esse problema?

SRS
fonte
Você tem alguma habilidade de programação? Existem muitas maneiras de fazer isso, posso sugerir algo com base em algo que você usou no passado.
sheldonkreger
Eu tenho um bom conhecimento em Java. Eu usei o R para algumas tarefas de mineração de dados. Atualmente, estou estudando Python para usar a PNL.
SRS

Respostas:

6

Uma maneira de lidar com isso é usar a 'classificação supervisionada'. Nesse modelo, você classifica manualmente um subconjunto dos dados e o utiliza para treinar seu algoritmo. Em seguida, você alimenta os dados restantes no seu software para classificá-los.

Isso é realizado com o NLTK para Python (nltk.org).

Se você está simplesmente procurando por strings como "hardware" e "software", este é um caso de uso simples, e você provavelmente obterá resultados decentes usando um 'extrator de recursos', que informa ao seu classificador quais frases no documento são relevantes.

Embora seja possível implementar um método automatizado para encontrar as palavras-chave, parece que você já tem uma lista em mente. Assim, você pode pular essa etapa e usar as tags de que está ciente. (Se seus resultados não forem satisfatórios na primeira vez, é algo que você pode tentar mais tarde).

Essa é uma visão geral para começar. Se você não estiver satisfeito com os resultados iniciais, poderá refinar seu classificador introduzindo métodos mais complexos, como segmentação de sentenças, identificação de tipos de atos de diálogo e árvores de decisão. O céu é o limite (ou mais provável, seu tempo é o limite)!

Mais informações em:

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

sheldonkreger
fonte
Essa estratégia básica também funcionaria se você encontrasse um kit de ferramentas de PNL em outro idioma conhecido, como Java. Só não estou familiarizado com isso.
sheldonkreger
1

Sheldon está correto, isso soa como um caso de uso bastante típico para classificação supervisionada. Se todas as reclamações de seus clientes são de software ou hardware (ou seja, zero reclamações individuais cobrem ambas as categorias e zero estão fora dessas duas classes), tudo o que você precisa é de um classificador binário, o que torna as coisas mais simples do que poderiam ser.

Se você estiver procurando por um kit de ferramentas NLP baseado em Java que suporte algo assim, consulte o Stanford Classifier: http://nlp.stanford.edu/software/classifier.shtml - ele é licenciado como software de código aberto sob a GPL.

A página wiki deles deve ajudá-lo a começar a usar o classificador: http://www-nlp.stanford.edu/wiki/Software/Classifier - lembre-se de que você precisará anotar manualmente uma grande amostra de seus dados como um conjunto de treinamento, como Sheldon mencionou.

Charlie Greenbacker
fonte
A classificação de software / hardware é como a tarefa de exemplo que tentei trabalhar com a categorização. Existem várias outras categorias que tenho em mente que exigiriam uma compreensão profunda do que há de errado com os produtos, lendo o caso do cliente e identificando a categoria apropriada. Comecei a ler o NLPTK usando python, mas gostaria de saber o tipo de funções que devo procurar para resolver esse caso.
SRS
Não é uma questão simples de procurar funções mágicas. O que você quer fazer é criar um classificador usando o aprendizado de máquina supervisionado. Estas são as etapas ... 1. anote manualmente uma amostra de seus dados como um conjunto de treinamento, 2. extraia recursos de seus dados para treinar (para texto, isso pode ser algo como ngrams), 3. construa o modelo do classificador usando uma biblioteca de aprendizado de máquina, 4. aplique o modelo do classificador a novos dados. Algumas bibliotecas como o Stanford Classifier o ajudarão nas etapas 2 e 3. #
Charlie Greenbacker