Doctran e LLMs un potente duo per analizzare le lamentele dei consumatori

Doctran e LLMs un duo potente per analizzare le lamentele dei consumatori

Introduzione

Nel mercato altamente competitivo odierno, le aziende si sforzano di comprendere ed affrontare in modo efficace le lamentele dei consumatori. Le lamentele dei consumatori possono portare alla luce una vasta gamma di problemi, dalle imperfezioni dei prodotti e dal cattivo servizio clienti fino agli errori di fatturazione e alle preoccupazioni per la sicurezza. Svolgono un ruolo fondamentale nel loop di feedback (riguardo a prodotti, servizi o esperienze) tra le aziende e i propri clienti. Analizzare e comprendere queste lamentele può fornire preziosi spunti per migliorare prodotti o servizi, la soddisfazione dei clienti e la crescita complessiva dell’azienda. In questo articolo esploreremo come sfruttare la libreria Python Doctran per analizzare le lamentele dei consumatori, estrarre spunti e prendere decisioni basate sui dati.

Obiettivi di apprendimento

In questo articolo imparerai:

  • Ad apprendere la libreria Python Doctran e le sue caratteristiche chiave
  • Il ruolo di Doctran e LLM nella trasformazione e analisi dei documenti
  • Esplorare sei tipi di trasformazioni documentali supportate da Doctran, inclusi estrazione, redazione, interrogazione, raffinamento, sintesi e traduzione
  • Avere una comprensione generale di come convertire dati testuali grezzi provenienti dalle lamentele dei consumatori in spunti pratici
  • Comprendere la struttura dei documenti di Doctran, la classe ExtractProperty per definire uno schema per estrarre proprietà

Questo articolo è stato pubblicato come parte del Data Science Blogathon.

Doctran

Doctran è una moderna libreria Python progettata per la trasformazione e l’analisi dei documenti. Fornisce un insieme di funzioni per preprocessare dati testuali, estrarre informazioni chiave, categorizzare/classificare, interrogare, sintetizzare le informazioni e tradurre il testo in altre lingue. Doctran utilizza LLM (Large Language Models) come modelli basati su OpenAI GPT e librerie NLP open source per analizzare i dati testuali.

Supporta i seguenti sei tipi di trasformazioni documentali:

  1. Estrazione: Per estrarre caratteristiche/proprietà utili da un documento.
  2. Redazione: Per rimuovere informazioni personalmente identificabili (PII) come nome, indirizzo email, numero di telefono, ecc. da un documento prima di inviare i dati ad OpenAI. Internamente fa uso della libreria spaCy per rimuovere le informazioni sensibili.
  3. Interrogazione: Per convertire il documento nel formato domanda e risposta.
  4. Raffinamento: Per eliminare contenuti da un documento che non sono pertinenti a un insieme predefinito di argomenti.
  5. Sintesi: Per rappresentare il documento come un riassunto conciso, completo e significativo.
  6. Traduzione: Per tradurre il documento in altre lingue.

L’integrazione è disponibile anche nel framework LangChain all’interno del modulo document_transformers. LangChain è un framework avanzato per creare applicazioni potenziate da LLM.

LangChain offre la flessibilità di esplorare e utilizzare una vasta gamma di modelli LLM open source e closed source. Consente in modo fluido di connettersi a diverse fonti di dati esterne come PDF, file di testo, fogli di Excel, PPT, ecc. Consente anche di sperimentare diverse prompt, interagire nell’ingegnerizzazione dei prompt, sfruttare catene e agenti incorporati e altro ancora.

All’interno del modulo document_transformers di Langchain, ci sono tre implementazioni: DoctranPropertyExtractor, DoctranQATransformer e DoctranTextTranslator. Questi vengono utilizzati rispettivamente per le trasformazioni del documento di estrazione, interrogazione e traduzione.

Installazione

Doctran può essere facilmente installato utilizzando il comando pip.

pip install doctran

Ora che abbiamo conosciuto la libreria Doctran, esploriamo i diversi tipi di trasformazioni documentali disponibili in Doctran utilizzando la seguente lamentele dei consumatori racchiusa tra tre apici inversi (“`).

“`

26 novembre 2021

Il Manager

Reparto Servizio Clienti

Taurus Shop

New Delhi – 110023

Oggetto: Reclamo su lavatrice ‘VIP’ difettosa

Egregio Signore,

Ho acquistato una lavatrice automatica il 15 luglio 2022, modello n. G 24 e la fattura è la numero 1598.

La scorsa settimana, la lavatrice si è improvvisamente fermata di funzionare e non ha più funzionato nonostante tutti i nostri sforzi. La macchina si ferma dopo il processo di risciacquo, causando molti problemi. Inoltre, da ieri la macchina ha iniziato anche a emettere rumori forti, creandoci disagi.

La prego di inviare un tecnico per ripararla e, se necessario, sostituirla entro la settimana successiva.

Nell’attesa di una risposta tempestiva

Cordialmente

“`

Caricamento del reclamo come documento Doctran

Per eseguire la trasformazione del documento utilizzando Doctran, è necessario convertire il testo grezzo in un documento Doctran. Un documento Doctran è un tipo di dato fondamentale ottimizzato per la ricerca vettoriale. Rappresenta una parte di dati non strutturati. Consiste in un contenuto grezzo e metadati associati.

Istanziare un oggetto Doctran specificando la chiave OPENAI_API_KEY nel parametro open_ai_key. Successivamente, analizzare il contenuto grezzo come documento Doctran chiamando il metodo parse sul testo Doctran.

sample_complain  = """26 novembre 2021Il ManagerReparto Servizio ClientiTaurus ShopNew Delhi - 110023Oggetto: Reclamo su lavatrice 'VIP' difettosaEgregio Signore,Ho acquistato una lavatrice automatica il 15 luglio 2022, modello n. G 24 e la fattura è la numero 1598.La scorsa settimana, la lavatrice si è improvvisamente fermata di funzionare e non ha più funzionato nonostante tutti i nostri sforzi. La macchina si ferma dopo il processo di risciacquo, causando molti problemi. Inoltre, da ieri la macchina ha iniziato anche a emettere rumori forti, creandoci disagi.La prego di inviare un tecnico per ripararla e, se necessario, sostituirla entro la settimana successiva.Nell'attesa di una risposta tempestivaCordialmente"""doctran = Doctran(openai_api_key=OPENAI_API_KEY)document = doctran.parse(content=sample_complain)print(document.raw_content)

Output:

DocTransformers

1. Estrai

Una delle funzioni principali di Doctran è estrarre proprietà chiave da un documento. Internamente, utilizza le chiamate alle funzioni di OpenAI per estrarre le proprietà (punti dati) da un documento. Utilizza il modello OpenAI GPT-4 con un limite di token di 8000.

GPT-4, abbreviazione di Generative Pre-trained Transformer 4, è un grande modello di linguaggio multimodale sviluppato da OpenAI. Rispetto ai suoi predecessori, GPT-4 dimostra una capacità avanzata nel gestire compiti complessi. Inoltre, può utilizzare input visivi (come immagini, grafici, meme, ecc.) insieme al testo. Il modello ha raggiunto una performance di livello umano su una varietà di benchmark professionali e accademici, inclusi gli esami di diritto uniforme.

Dobbiamo definire uno schema istanziando la classe ExtractProperty per ciascuna proprietà che vogliamo estrarre. Lo schema comprende diversi elementi chiave: un nome della proprietà, una descrizione, un tipo di dato, un elenco di valori selezionabili e un indicatore di obbligatorietà che è un flag booleano.

Qui, abbiamo specificato quattro proprietà – Categoria, Sentimento, Aggressività e Lingua.

from doctran import ExtractPropertyproperties = [    ExtractProperty(        name="Categoria",         description="Di che tipo di reclamo dei consumatori si tratta",        type="string",        enum=["Prodotto o Servizio", "Tempo di Attesa", "Consegna", "Gap di Comunicazione", "Personale"],        required=True        ),    ExtractProperty(        name="Sentimento",         description = "Valuta la polarità/sentimento",        type="string",        enum = ["Positivo", "Negativo", "Neutrale"],        required=True        ),     ExtractProperty(        name="Aggressività",         description="""descrive quanto il reclamo sia aggressivo,         più alto è il numero più è aggressivo""",        type="number",        enum=[1, 2, 3, 4, 5],        required=True        ),       ExtractProperty(        name="Lingua",         type="string",        description = "lingua di origine",        enum = ["Inglese", "Hindi", "Spagnolo", "Italiano", "Tedesco"],        required=True        )         ]

Per recuperare le proprietà, possiamo chiamare la funzione extract() sul documento. Questa funzione prende le proprietà come parametro.

extracted_doc = await document.extract(properties=properties).execute()

L’operazione di estrazione restituisce un nuovo documento con le proprietà fornite nella chiave extracted_properties.

print(extracted_doc.extracted_properties)

Output:

2. Interrogazione

Doctran ci consente di convertire il contenuto di un documento in formato Q&A. Le query degli utenti sono tipicamente formulate come domande. Quindi, per migliorare i risultati di ricerca quando si utilizza un database vettoriale, può essere utile trasformare le informazioni in domande. La creazione di indici da queste domande permette un recupero del contesto migliore rispetto all’indicizzazione del testo originale.

Per interrogare il documento, utilizziamo la funzione interrogate() integrata. Restituisce un nuovo documento e il set di Q&A generato è disponibile nell’attributo extracted_properties.

interrogated_doc = await document.interrogate().execute()print(interrogated_doc.extracted_properties['questions_and_answers'])

Output:

3. Riassunto

Utilizzando doctran, possiamo anche generare un riassunto conciso e significativo del testo originale. Invocare la funzione summarize() per riassumere il documento. Inoltre, specificare il token_limit per configurare la dimensione del riassunto.

summarized_doc = await document.summarize(token_limit=30).execute()print(summarized_doc.transformed_content)

Output:

4. Traduzione

Tradurre documenti in altre lingue può essere utile specialmente quando si prevede che gli utenti consultino la base di conoscenza in diverse lingue, o quando non sono disponibili modelli di embedding all’avanguardia per una determinata lingua.

La traduzione linguistica per il caso d’uso dei reclami dei consumatori può essere utile per le aziende globali con una base di clienti multilingue. Utilizzando la funzione integrata translate() possiamo tradurre le informazioni in altre lingue come l’hindi, lo spagnolo, l’italiano, il tedesco, ecc.

translated_doc = await document.translate(language="italian").execute()print(translated_doc.transformed_content)

Output:

Conclusioni

Nell’era della presa di decisioni basata sui dati, l’analisi dei reclami dei consumatori è un processo vitale che può portare a prodotti e servizi migliori e, in definitiva, a una maggiore soddisfazione del cliente. Utilizzando LLM e strumenti avanzati di NLP possiamo convertire i dati testuali grezzi in informazioni utilizzabili che stimolano la crescita e il miglioramento delle aziende. In questo articolo, abbiamo discusso di doctran, dei diversi tipi di trasformazioni dei documenti supportate da questa libreria con l’aiuto dei reclami dei consumatori.

Punti chiave

  • I reclami dei consumatori non sono solo lamentele ma anche fonti preziose di feedback che possono fornire informazioni cruciali per le aziende.
  • La libreria Python doctran, insieme a Large Language Models (LLMs) come GPT-4, offre un potente set di strumenti per trasformare e analizzare i documenti. Supporta varie trasformazioni come estrazione, redazione, interrogazione, riassunto e traduzione.
  • Le capacità di estrazione di Doctran utilizzando il modello GPT-4 di OpenAI possono aiutare le aziende a estrarre le proprietà chiave dai documenti.
  • La conversione del contenuto del documento in un formato domanda-risposta utilizzando la funzione di interrogazione di doctran migliora il recupero del contesto. Questo approccio è prezioso per la creazione di indici di ricerca efficaci e per facilitare migliori risultati di ricerca.
  • Le aziende con una base di clienti globale possono beneficiare delle capacità di traduzione linguistica di doctran, rendendo le informazioni accessibili in più lingue. Inoltre, offre la possibilità di generare riassunti concisi e significativi dei contenuti testuali.

Domande frequenti

I media mostrati in questo articolo non sono di proprietà di Analytics Vidhya e vengono utilizzati a discrezione dell’autore.