Speech Analytics | Applicati alle campagne di vendita in outbound 2017-11-06T11:37:12+00:00

Project Description

Agos ogni mese si affida ad alcuni call center esterni per promozionare i propri clienti: vengono effettuate all’incirca 250.000 telefonate su una serie di prodotti sia di credito che assicurativi. Questa attività rappresenta chiaramente una voce di spesa molto consistente, anche se redditizia. Come si può ottimizzare sia la scelta dei target che le modalità di vendita? Attraverso l’ “ascolto del cliente”: analizzare il parlato delle telefonate per cogliere informazioni che il servizio clienti non registra. A partire dal mese di Febbraio 2017 è iniziata una fase di test in cui, su specifiche campagne di vendita di polizze assicurative, viene chiesto ai clienti il permesso di registrare la conversazione. L’obiettivo del presente lavoro riguarda innanzitutto l’impostazione dei task di trascrizione (speech-to-text) e un primo approccio di sentiment analysis al fine di individuare i clienti sui quali un’eccessiva pressione commerciale può comportare l’assunzione di un atteggiamento astioso nei confronti del brand Agos. Lo scopo è quello di ridurre la frequenza di contatto sui clienti che manifestano un atteggiamento negativo al fine di diminuire un eventuale senso di fastidio che questo tipo di attività promozionale può generare. Si lascia ad analisi successive il compito di lavorare su aspetti quali  topic recognition ed entity extraction, che possono risultare utili per la definizione di proposte specifiche. I dati analizzati sono costituiti da un campione di circa 1.000 registrazioni riguardati soltanto clienti che non hanno aderito all’assicurazione proposta. Le campagne prese in esame sono le seguenti:

  • Cross-Selling: il target è costituito da clienti che possiedono già una polizza infortuni; a questi viene proposta l’estensione della copertura anche per la malattia.
  • Winback: il target è costituito da clienti che hanno avuto una polizza infortuni in passato; a questi viene proposta una nuova polizza dello stesso tipo.

Ognuna delle telefonate raccolte è stata classificata attribuendo un sentiment negativo o positivo. Inizialmente si era ipotizzata una divisione in tre categorie (considerando anche il sentiment neutrale)  ma due considerazioni hanno portato ad abbandonare questa scelta: in primo luogo il focus dell’analisi sono i clienti scontenti, secondariamente è emerso che il confine tra sentiment neutrale e positivo è poco definito. Nel complesso, quindi, si è individuato un 15% di clienti che hanno mostrato un atteggiamento infastidito o scontento.
Successivamente alla fase di raccolta dati, la prima attività svolta riguarda la conversione dei file audio in file di testo, in modo da rendere il contenuto della chiamata accessibile ai normali strumenti di analisi. Questa attività è stata realizzata tramite l’accesso (con l’utilizzo di uno script Python) ad un servizio di Google denominato Speech API. Un’eventuale automatizzazione di questa attività è stata per il momento solo ipotizzata e sarà valutata in seconda battuta sulla base dei risultati conseguiti. Ottenuti quindi i file in formato testo la fase successiva ha riguardato il text mining, finalizzato innanzitutto all’impostazione di una semplice sentiment analysis. A tale scopo si è fatto riferimento al pacchetto TextWiller di R, specializzato in questo tipo di analisi sulla lingua italiana. In breve, l’analisi ha riguardato:

  • Processing del testo: Rimozione di numeri e punteggiatura.
  • Stemming: le parole vengono “troncate” e riportate alla loro radice (o “stemma”).
  • Definizione di un dizionario di riferimento per l’individuazione dei termini con connotazione positiva e connotazione negativa.
  • Scoring delle telefonate sulla base del numero di parole presenti in ognuno dei dizionari.

Gli esiti della classificazione hanno dato risultati soddisfacenti, mostrandosi in grado di individuare le telefonate negative con una sensitivity del 60% e una precision del 47%, per un’accuracy complessiva del 84%. Approfondendo i casi in cui il sentiment non è stato correttamente riconosciuto emerge che ciò è dovuto a una scarsa qualità dei file audio originali.Ad ogni modo è stato raggiunto con successo l’obiettivo di implementare un processo end-to-end che a partire dai file audio consente di ottenere un’indicazione su eventuale segnali di insofferenza da parte del cliente. Rimangono aperte diverse strade su cui è possibile intervenire per migliorare tale processo, sia per quanto riguarda la fase di trascrizione che quella di analisi:

  • Migliorare la qualità del testo trascritto attraverso la selezione dei chunk in base ai valori di confidence forniti dall’API.
  • Ampliamento del campione preso in esame, al fine di ottenere una miglior conoscenza delle caratteristiche dei dati e una migliore definizione dei dizionari di riferimento.
  • Valutazione dei bigrammi e trigrammi oltre alle parole singole.
  • Utilizzo di ulteriori tecniche di analisi del testo, sia per quanto riguarda la sentiment analysis (più elaborati modelli di classificazione) che altri tipi di analisi (topic recognition ed entity extraction).
  1. Google Cloud Speech API – https://cloud.google.com/speech/
  2. TextWiller – https://github.com/livioivil/TextWiller

Project Details