Utilizzo di NLP per automatizzare la categorizzazione della descrizione dell'utente


8

Ho un enorme archivio di reclami dei clienti sui prodotti di proprietà della mia azienda e vorrei fare un'analisi dei dati su tali descrizioni e taggare una categoria per ognuno di essi.

Ad esempio: ho bisogno di capire il numero di reclami sul lato Software e Hardware del mio prodotto dai reclami dei clienti. Attualmente sto usando Excel per fare l'analisi dei dati che cercano una notevole quantità di lavoro manuale per ottenere un nome tag per i reclami.

C'è un modo in NLP per costruire e formare un modello per automatizzare questo processo? Ho letto cose sulla PNL negli ultimi due giorni e sembra che la PNL abbia molte buone caratteristiche per iniziare a risolvere questo problema. Qualcuno potrebbe guidarmi nel modo in cui dovrei usare la PNL per risolvere questo problema?


Hai qualche abilità di programmazione? Ci sono molti modi per farlo, posso suggerire qualcosa di speranzoso basato su qualcosa che hai usato in passato.
Sheldonkreger,

Ho una buona conoscenza di Java. Ho usato R per un paio di attività di data mining. Attualmente sto studiando Python per l'utilizzo della PNL.
SRS

Risposte:


6

Un modo per gestirlo è utilizzare la "classificazione controllata". In questo modello, classifichi manualmente un sottoinsieme dei dati e lo usi per addestrare l'algoritmo. Quindi, inserisci i dati rimanenti nel tuo software per classificarli.

Ciò viene realizzato con NLTK per Python (nltk.org).

Se stai semplicemente cercando stringhe come "hardware" e "software", questo è un semplice caso d'uso e probabilmente otterrai risultati decenti usando un "estrattore di funzioni", che informa il tuo classificatore quali frasi nel documento sono rilevanti.

Sebbene sia possibile implementare un metodo automatizzato per trovare le parole chiave, sembra che tu abbia già in mente un elenco, quindi puoi saltare quel passaggio e usare solo i tag di cui sei a conoscenza. (Se i risultati non sono soddisfacenti la prima volta, questo è qualcosa che potresti provare in seguito).

Questa è una panoramica per iniziare. Se non sei soddisfatto dei risultati iniziali, puoi perfezionare il tuo classificatore introducendo metodi più complessi, come la segmentazione delle frasi, l'identificazione dei tipi di atti di dialogo e gli alberi delle decisioni. Il cielo è il limite (o più probabilmente, il tuo tempo è il limite)!

Maggiori informazioni su:

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


Questa strategia di base funzionerebbe anche se avessi trovato un toolkit NLP in un'altra lingua che conosci, come Java. Non ho familiarità con quelli.
sheldonkreger,

1

Sheldon ha ragione, sembra un caso d'uso abbastanza tipico per la classificazione controllata. Se tutti i reclami dei clienti sono software o hardware (ovvero, zero reclami individuali coprono entrambe le categorie e zero sono al di fuori di queste due classi), tutto ciò che serve è un classificatore binario, il che rende le cose più semplici di quanto altrimenti potrebbero essere.

Se stai cercando un toolkit NLP basato su Java che supporti qualcosa del genere, dai un'occhiata al Classificatore di Stanford: http://nlp.stanford.edu/software/classifier.shtml - è concesso in licenza come software open source sotto la GPL.

La loro pagina wiki dovrebbe aiutarti a iniziare a utilizzare il classificatore: http://www-nlp.stanford.edu/wiki/Software/Classifier - tieni presente che dovrai annotare manualmente un ampio campione dei tuoi dati come set di allenamento, come menzionato da Sheldon.


La classificazione software / hardware è come l'attività di esempio che ho provato a lavorare con la categorizzazione. Ci sono molte altre categorie che ho in mente che prenderebbero una profonda comprensione di ciò che è sbagliato con i prodotti, leggendo il caso del cliente e tag la categoria appropriata. Ho iniziato a leggere NLPTK usando Python ma vorrei sapere il tipo di funzioni che dovrei cercare per affrontare questo caso
SRS,

Non si tratta semplicemente di cercare funzioni magiche. Quello che vuoi fare è costruire un classificatore usando l'apprendimento automatico supervisionato. Questi sono i passaggi ... 1. Annota manualmente un campione dei tuoi dati come set di addestramento, 2. Estrai le funzioni dai tuoi dati su cui allenarti (per il testo, potrebbe essere qualcosa di simile agli ngram), 3. Costruisci il modello di classificazione usando una libreria di apprendimento automatico, 4. applicare il modello di classificazione ai nuovi dati. Alcune biblioteche come Stanford Classifier ti aiuteranno con i passaggi 2 e 3.
Charlie Greenbacker,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.