Le organizzazioni moderne elaborano quantità di testo sempre maggiori. Sebbene alcuni compiti come l'annotazione legale debbano essere eseguiti da professionisti esperti con anni di esperienza nel settore, altri processi richiedono tipi più semplici di ordinamento, elaborazione e analisi, nei quali il machine learning può essere spesso d'aiuto.
La categorizzazione del contenuto del testo è un'attività comune di machine learning, in genere denominata "classificazione dei contenuti", che include tutti i tipi di applicazioni, dall'analisi del sentiment nella recensione del prodotto di consumo in un sito di vendita al dettaglio al routing delle richieste di assistenza clienti all'appropriato agente di supporto. AutoML Natural Language aiuta gli sviluppatori e i data scientist a creare modelli di classificazione dei contenuti personalizzati, senza programmazione. L'API Natural Language di Google Cloud aiuta a classificare il testo immesso in una serie di categorie predefinite. Se queste categorie sono adatte per te, l'API è un ottimo punto di partenza, ma se hai bisogno di categorie personalizzate, l'opzione migliore è molto probabilmente creare un modello con AutoML Natural Language.
In questo post ti guideremo attraverso l'intero processo di utilizzo di AutoML Natural Language. Utilizzeremo il set di dati 20 Newsgroups, che consiste di circa 20.000 post equamente divisi in 20 newsgroup diversi ed è frequentemente utilizzato per la classificazione dei contenuti e le attività di clustering.
Come vedrai, questo può essere un esercizio divertente e complicato, dal momento che i post in genere usano un linguaggio informale e a volte vanno fuori tema. Inoltre, alcuni dei newsgroup che useremo del set di dati si sovrappongono un po'; ad esempio, due gruppi diversi tra loro trattano l'argomento dell'hardware per PC e Mac.
Preparazione dei datiIniziamo innanzitutto scaricando i dati. Ho incluso un link a un notebook Jupyter che eseguirà il download del set di dati raw per poi convertirlo nel formato CSV previsto da AutoML Natural Language. AutoML Natural Language cerca il testo o un URL nella prima colonna e l'etichetta nella seconda colonna. Nel nostro esempio, assegniamo un'etichetta a ciascun campione, sebbene AutoML Natural Language supporti anche più etichette.
Per scaricare i dati, puoi semplicemente eseguire il notebook nell'ambiente di Google Colab ospitato, oppure puoi trovare il codice sorgente su GitHub.
Importazione dei datiOra siamo pronti per accedere alla UI di AutoML Natural Language. Iniziamo creando un nuovo set di dati facendo clic sul pulsante New Dataset (Nuovo set di dati). Crea un nome come twenty_newsgroups e carica il CSV scaricato nel passaggio precedente.
google automl natural language.png
Addestramento del modelloL'endpoint impiegherà alcuni minuti per importare il testo di addestramento. Al termine dell'operazione, verrà visualizzato l'elenco degli elementi di testo e di ogni etichetta associata. Puoi eseguire il drill-down negli elementi di testo per etichette specifiche sul lato sinistro.
tracking model.png
Dopo aver caricato i dati, puoi passare alla fase successiva addestrando il tuo modello. Ci vorranno diverse ore perché venga restituito il modello ottimale, a quel punto riceverai un'e-mail di notifica sullo stato dell'addestramento.
Valutazione del modelloUna volta completato l'addestramento del modello, verrà visualizzata un dashboard con una serie di metriche. AutoML Natural Language genera queste metriche confrontando le previsioni con le etichette effettive nel set di test. Se non hai familiarità con queste metriche, ti consigliamo di approfondire l'argomento con il Google Machine Learning Crash Course. In breve, il richiamo indica quanto il modello è riuscito a trovare le istanze dell'etichetta corretta (riducendo al minimo i falsi negativi). La precisione indica quanto è riuscito a evitare le istanze di etichettatura errate (riducendo al minimo i falsi positivi).
evaluate model.png
Le metriche di precisione e richiamo mostrate in questo esempio sono basate su una soglia di punteggio pari a 0,5. Puoi provare a modificare questa soglia per vedere come tale modifica influisca sulle metriche. Come puoi notare, è un compromesso tra precisione e richiamo. Se la confidenza richiesta per applicare un'etichetta sale da 0,5 a 0,9, ad esempio, la precisione aumenterà perché sarà meno probabile che il modello sbagli l'etichettatura di un campione. D'altra parte, il richiamo diminuirà perché qualsiasi campione tra 0,5 e 0,9 precedentemente identificato non sarà etichettato.
all labels.png
Sotto questo paragrafo, troverai una matrice di confusione. Questo strumento può aiutarti a valutare con maggiore precisione l'accuratezza del modello a livello di etichette. Non scoprirai solo la frequenza con cui il modello identifica correttamente le etichette, ma anche quali etichette ha identificato in modo errato. È possibile eseguire il drill-down per visualizzare esempi specifici di falsi positivi e negativi. Ciò può rivelarsi molto utile perché di dirà se è necessario aggiungere più dati di addestramento per aiutare il tuo modello a distinguere meglio le etichette che spesso non è riuscito a prevedere.
confusion matrix.png
PrevisioneDivertiti a provarla su un testo di esempio. Passando alla scheda Predict (Previsione), puoi incollare o digitare un testo e vedere come viene etichettato dal modello appena addestrato. Iniziamo con un esempio facile. Prenderò il primo paragrafo di un articolo di Google sulle tendenze del settore automobilistico e lo incollerò lì. Fantastico! Accuratezza del 100%.
test your model.png
Puoi provare con altri esempi, inserendo un testo che potrebbe essere un po' più difficile da distinguere per il modello. Vedrai anche come richiamare una previsione usando l'API in fondo. Per ulteriori dettagli, la documentazione fornisce esempi in Python, Java e Node.js.
ConclusioniUna volta creato un modello personalizzato che organizza il contenuto in categorie, puoi utilizzare gli efficaci strumenti di valutazione di AutoML Natural Language per valutare l'accuratezza del modello. Ti aiuteranno a perfezionare la soglia e, potenzialmente, ad aggiungere ulteriori dati per compensare eventuali punti deboli. Prova tu stesso!