Comprensione della necessità di NLP nel tuo chatbot
Poiché i chatbot sono diventati sempre più diffusi negli ultimi anni, hanno prevalentemente funzionato come conversazioni lineari con script in cui l’output del chatbot è predeterminato. Nella maggior parte dei casi, funziona perfettamente.
Tuttavia, i chatbot sono in grado di fare molto di più. Con l’introduzione di Natural Language Processing (NLP), gli sviluppatori sono ora in grado di mettere davvero la “chat” in chatbot.
Che cos’è NLP?
La NLP è un processo tecnologico che consente ai computer di ricavare significato dagli input di testo dell’utente. Nel fare ciò, tenta di comprendere l’intento dell’input, piuttosto che solo le informazioni sull’intento stesso. Esistono diversi modi in cui è possibile creare questa funzione. Questi variano e possono essere scelti in base al modo in cui si intende implementare e utilizzare la NLP.
Nel contesto dei chatbot, integrare la NLP significa aggiungere un tocco più umano. Se hai creato un chatbot e lo hai distribuito per uso pubblico, è probabile che tu abbia visto gli utenti tentare di porre domande. Sembra molto in linea con la natura umana che gli utenti proveranno a bloccare il chatbot e buttarlo via. Puoi tentare di porre rimedio a ciò aggiungendo risposte predefinite, tuttavia ciò tende a scarseggiare abbastanza spesso poiché è quasi impossibile prevedere quali domande verranno poste, nonché il modo in cui verranno poste.
Con la NLP, sei in grado di “addestrare” il tuo chatbot sulle varie interazioni che attraverserà e contribuire a semplificare le risposte che genera. Per la maggior parte, la formazione consiste nel fornire esempi di contenuti che incontrerà. Fornire più esempi al tuo chatbot fornisce una base più ampia con cui può interpretare e rispondere a domande e comandi. Questo può richiedere un po ‘di tempo, ma produce risultati che ne valgono la pena.
Perché dovremmo aver bisogno di una libreria NLP?
L’elaborazione del linguaggio naturale (NLP) è un componente chiave in molti sistemi di scienza dei dati che devono comprendere o ragionare su un testo. I casi d’uso più comuni comprendono la risposta alle domande, la parafrasi o il riepilogo, l’analisi dei sentimenti, la BI del linguaggio naturale, la modellizzazione del linguaggio e la disambiguazione.
La NLP è essenziale in un numero crescente di applicazioni AI. L’estrazione di informazioni accurate da testo libero è un must se stai costruendo un chatbot, effettuando ricerche in un database di brevetti, abbinando i pazienti a studi clinici, classificando il servizio clienti o le chiamate di vendita, estraendo fatti da rapporti finanziari o risolvendo uno di questi 44 casi d’uso 17 settori .
A causa della popolarità della NLP e dell’hype in Data Science negli ultimi anni, ci sono molte grandi librerie NLP sviluppate e anche i neofiti appassionati di scienza dei dati hanno iniziato a giocare con varie tecniche NLP usando queste librerie open source.
Sotto sono elencate alcune librerie di NLP più popolari che sono state ampiamente utilizzate nella comunità e in vari livelli di sviluppo.
- Natural Language Toolkit (NLTK): il toolkit completo per tutte le tecniche di NLP.
- TextBlob: API di strumenti NLP di facile utilizzo, costruita su NLTK e Pattern.
- SpaCy: NLP di forza industriale con Python e Cython.
- Gensim: modellazione di argomenti per esseri umani
- Stanford Core NLP: servizi e pacchetti NLP del gruppo Stanford NLP.
- Fasttext: libreria NLP per l’apprendimento degli incastri delle parole e la classificazione delle frasi creata dal laboratorio di ricerca AI (Facebook) di AI
Ovviamente, ci sono molte più biblioteche nel campo generale della NLP, ma ci concentriamo qui su biblioteche di uso generale e non su quelle che soddisfano casi d’uso specifici. Date tutte queste librerie, puoi chiedere perché avremmo bisogno di un’altra libreria NLP.
Cercheremo di rispondere a questa domanda nei seguenti argomenti:
A.Un’unica soluzione unificata per tutte le esigenze della NLP
Quando si desidera fornire software NLP scalabile, ad alte prestazioni e ad alta precisione per un uso reale della produzione, nessuna di queste librerie offre una soluzione unificata.
Tieni presente che qualsiasi pipeline NLP è sempre solo una parte di una pipeline di elaborazione dati più grande: ad esempio, rispondere alle domande comporta il caricamento di dati di training, la trasformazione, l’applicazione di annotatori NLP, la creazione di funzionalità, la formazione dei modelli di estrazione di valore, la valutazione dei risultati (treno / test split o cross-validation) e stima dell’iperparametro. Abbiamo bisogno di una soluzione all-in-one per alleviare l’onere della preelaborazione del testo e collegare i punti tra le varie fasi della risoluzione di un problema di scienza dei dati con la NLP. Quindi, possiamo dire che una buona libreria NLP dovrebbe essere in grado di trasformare correttamente il testo libero in funzionalità strutturate e di farti addestrare i tuoi modelli NLP che possono essere facilmente inseriti nella pipeline downstream machine learning (ML) o deep learning (DL) con nessun problema.
- Approfitta dell’apprendimento del trasferimento e dell’implementazione dei più recenti e grandi algoritmi e modelli nella ricerca sulla NLP
Il trasferimento dell’apprendimento è un mezzo per estrarre la conoscenza da un’impostazione di origine e applicarla a un’impostazione di destinazione diversa, ed è un modo altamente efficace per continuare a migliorare l’accuratezza dei modelli di NLP e per ottenere accuratezze affidabili anche con piccoli dati sfruttando quelli già esistenti dati etichettati di alcuni compiti o domini correlati. Di conseguenza, non è necessario accumulare milioni di punti dati per formare un modello all’avanguardia.
Grandi cambiamenti sono in corso nel mondo della NLP negli ultimi anni e una moderna biblioteca NLP su scala industriale dovrebbe essere in grado di implementare gli algoritmi e i modelli più recenti e più grandi – non è facile mentre la NLP sta vivendo il suo momento e lo stato dell’arte di ImageNet i modelli artistici vengono superati due volte al mese .
Il lungo regno dei vettori di parole come tecnica di rappresentazione di base della NLP ha visto un’entusiasmante nuova linea di sfidanti come ELMo , BERT , RoBERTa , ALBERT , XLNet , Ernie , ULMFiT , OpenAI , che sono tutti open source, compresi i modelli pre-addestrati e può essere sintonizzato o riutilizzato senza un grande sforzo di elaborazione. Questi lavori hanno fatto notizia , dimostrando che i modelli linguistici pre-addestrati possono essere utilizzati per ottenere risultati all’avanguardia su una vasta gamma di attività della NLP, a volte persino superando i parametri di riferimento a livello umano.
- Mancanza di qualsiasi libreria NLP completamente supportata da Spark
Essendo un motore di elaborazione dei dati distribuito in memoria per scopi generici, Apache Spark ha attirato molta attenzione dall’industria e ha già una propria libreria ML ( SparkML ) e alcuni altri moduli per alcune attività NLP ma non copre tutta la NLP attività necessarie per avere una soluzione a tutti gli effetti. Quando si tenta di utilizzare Spark nella pipeline, in genere è necessario utilizzare altre librerie NLP per eseguire determinate attività e quindi provare a reintegrare i passi intermedi in Spark. Tuttavia, suddividere il framework di elaborazione dei dati dai framework NLP significa che la maggior parte del tempo di elaborazione viene impiegato per serializzare e copiare le stringhe avanti e indietro ed è altamente inefficiente.
- Fornire una libreria NLP mission-critical di livello aziendale
Molti dei pacchetti NLP più popolari oggi hanno radici accademiche – che mostrano compromessi nella progettazione che favoriscono la facilità di prototipazione sulle prestazioni di runtime, ampiezza di opzioni rispetto a semplici API minimaliste e minimizzazione di scalabilità, gestione degli errori, consumo di memoria frugale e codice riutilizzare.
La libreria è già in uso nei progetti aziendali, il che significa che il primo livello di bug, refactoring, colli di bottiglia imprevisti e problemi di serializzazione sono stati risolti. La copertura dei test unitari e la documentazione di riferimento sono a un livello che ci ha reso comodi per rendere il codice open source.
Spark NLP è già in uso nei progetti aziendali per vari casi d’uso
In breve, c’era una necessità immediata di avere una libreria NLP che fosse un’API di facile apprendimento, che fosse disponibile nel tuo linguaggio di programmazione preferito, che supportasse i linguaggi umani per cui ti serviva, che fosse molto veloce e che si ridimensionasse su grandi set di dati incluso lo streaming e casi d’uso distribuiti.
Considerando tutti questi problemi, i limiti delle famose librerie NLP e le recenti tendenze del settore, John Snow Labs , una società globale di AI che aiuta le organizzazioni sanitarie e di scienze della vita a far funzionare l’IA più velocemente, ha deciso di assumere la guida e ha sviluppato la libreria Spark NLP.
John Snow Labs è una pluripremiata società di analisi dei dati che guida e sponsorizza lo sviluppo della libreria Spark NLP. La società fornisce supporto commerciale, indennizzo e consulenza. Ciò fornisce alla biblioteca un sostegno finanziario a lungo termine, un team di sviluppo attivo finanziato e un flusso crescente di progetti del mondo reale che guidano la solidità e la definizione delle priorità della roadmap.