mozzicone Come funziona la classificazione del testo? - Unite.AI
Seguici sui social
Corso di perfezionamento sull'intelligenza artificiale:

AI 101

Come funziona la classificazione del testo?

mm
aggiornato on

La classificazione del testo è il processo di analisi delle sequenze di testo e di assegnazione loro di un'etichetta, inserendole in un gruppo in base al loro contenuto. La classificazione del testo è alla base di quasi tutte le attività di intelligenza artificiale o di apprendimento automatico che coinvolgono l’elaborazione del linguaggio naturale (NLP). Con la classificazione del testo, un programma per computer può svolgere un'ampia varietà di compiti diversi come il riconoscimento dello spam, l'analisi del sentiment e le funzioni di chatbot. Come funziona esattamente la classificazione del testo? Quali sono i diversi metodi per effettuare la classificazione del testo? Esploreremo le risposte a queste domande di seguito.

Definizione della classificazione del testo

È importante prendersi un po' di tempo e assicurarsi di aver capito che cos'è la classificazione del testo, in generale, prima di approfondire i diversi metodi di classificazione del testo. La classificazione del testo è uno di quei termini che viene applicato a molti compiti e algoritmi diversi, quindi è utile assicurarsi di aver compreso il concetto di base della classificazione del testo prima di passare all'esplorazione dei diversi modi in cui può essere eseguita.

Tutto ciò che implica la creazione di categorie diverse per il testo e quindi l'etichettatura di campioni di testo diversi come tali categorie può essere considerato classificazione del testo. Finché un sistema esegue questi passaggi di base, può essere considerato un classificatore di testo, indipendentemente dal metodo esatto utilizzato per classificare il testo e indipendentemente da come il classificatore di testo viene infine applicato. Rilevare lo spam nelle e-mail, organizzare i documenti per argomento o titolo e riconoscere l'opinione di una recensione per un prodotto sono tutti esempi di classificazione del testo perché vengono eseguiti prendendo il testo come input e generando un'etichetta di classe per quella parte di testo.

Come funziona la classificazione del testo?

Foto: Quinn Dombrowski via Flickr, CC BY SA 2.0, (https://www.flickr.com/photos/quinnanya/4714794045)

La maggior parte dei metodi di classificazione del testo può essere inserita in una delle tre diverse categorie: metodi basati su regole o metodi di apprendimento automatico.

Metodi di classificazione basati su regole

I metodi di classificazione del testo basati su regole operano attraverso l'uso di regole linguistiche esplicitamente progettate. Il sistema utilizza le regole create dall'ingegnere per determinare a quale classe deve appartenere una determinata parte di testo, cercando indizi sotto forma di elementi di testo semanticamente rilevanti. Ogni regola ha uno schema che il testo deve corrispondere per essere inserito nella categoria corrispondente.

Per essere più concreti, supponiamo che tu voglia progettare un classificatore di testo in grado di distinguere argomenti di conversazione comuni, come il tempo, i film o il cibo. Per consentire al tuo classificatore di testo di riconoscere la discussione sul tempo, potresti dirgli di cercare parole relative al tempo nel corpo dei campioni di testo che sta alimentando. Avresti un elenco di parole chiave, frasi e altri modelli pertinenti che potrebbero essere utilizzati per distinguere l'argomento. Ad esempio, potresti istruire il classificatore a cercare parole come "vento", "pioggia", "sole", "neve" o "nuvola". Potresti quindi fare in modo che il classificatore esamini il testo di input e conti il ​​numero di volte in cui queste parole compaiono nel corpo del testo e se appaiono più comunemente delle parole relative ai film, classificheresti il ​​testo come appartenente alla classe meteorologica.

Il vantaggio dei sistemi basati su regole è che i loro input e output sono prevedibili e interpretabili dagli esseri umani e possono essere migliorati attraverso l'intervento manuale dell'ingegnere. Tuttavia, anche i metodi di classificazione basati su regole sono alquanto fragili e spesso hanno difficoltà a generalizzare perché possono aderire solo ai modelli predefiniti che sono stati programmati. Ad esempio, la parola "nuvola" potrebbe riferirsi all'umidità nel cielo, o potrebbe riferirsi a una nuvola digitale in cui sono archiviati i dati. È difficile per i sistemi basati su regole gestire queste sfumature senza che gli ingegneri trascorrano una discreta quantità di tempo cercando di anticipare e adattarsi manualmente a queste sottigliezze.

Sistemi di apprendimento automatico

Come accennato in precedenza, i sistemi basati su regole hanno dei limiti, poiché le loro funzioni e regole devono essere pre-programmate. Al contrario, i sistemi di classificazione basati sull'apprendimento automatico operano applicando algoritmi che analizzano i set di dati per i modelli associati a una particolare classe.

Gli algoritmi di apprendimento automatico vengono alimentati con istanze pre-etichettate/pre-classificate che vengono analizzate per le funzionalità pertinenti. Queste istanze pre-etichettate sono i dati di addestramento.

Il classificatore di machine learning analizza i dati di addestramento e apprende i modelli associati alle diverse classi. Successivamente, le istanze invisibili vengono private delle loro etichette e inviate all'algoritmo di classificazione che assegna alle istanze un'etichetta. Le etichette assegnate vengono quindi confrontate con le etichette originali per vedere quanto fosse accurato il classificatore di machine learning, misurando quanto bene il modello ha appreso quali modelli prevedono quali classi.

Gli algoritmi di apprendimento automatico operano analizzando i dati numerici. Ciò significa che per utilizzare un algoritmo di apprendimento automatico sui dati di testo, il testo deve essere convertito in un formato numerico. Esistono vari metodi per codificare i dati di testo come dati numerici e creare metodi di apprendimento automatico attorno a questi dati. Tratteremo alcuni dei diversi modi per rappresentare i dati di testo di seguito.

Borsa-di-parole

Bag-di-parole è uno degli approcci più comunemente utilizzati per la codifica e la rappresentazione dei dati di testo. Il termine "sacco di parole" deriva dal fatto che essenzialmente prendi tutte le parole nei documenti e le metti tutte in un "sacco" senza prestare attenzione all'ordine delle parole o alla grammatica, prestando attenzione solo al frequenza delle parole nella borsa. Ciò si traduce in un lungo array, o vettore, contenente una singola rappresentazione di tutte le parole nei documenti di input. Quindi, se ci sono 10000 parole univoche in totale nei documenti di input, i vettori delle caratteristiche saranno lunghi 10000 parole. Ecco come viene calcolata la dimensione del vettore word bag/feature.

Foto: gk_ via Machinelearning.co, (https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)

Dopo aver determinato la dimensione del vettore delle caratteristiche, a ogni documento nell'elenco dei documenti totali viene assegnato il proprio vettore riempito di numeri che indicano quante volte la parola in questione appare nel documento corrente. Ciò significa che se la parola "cibo" appare otto volte all'interno di un documento di testo, il corrispondente vettore di caratteristiche/array di caratteristiche avrà un otto nella posizione corrispondente.

In altre parole, tutte le parole univoche che appaiono nei documenti di input sono tutte impilate in un sacchetto e quindi ogni documento riceve un vettore di parole della stessa dimensione, che viene poi riempito con il numero di volte in cui le diverse parole appaiono nel documento .

I set di dati di testo contengono spesso un numero elevato di parole univoche, ma la maggior parte di esse non viene utilizzata molto frequentemente. Per questo motivo, il numero di parole utilizzate per creare il vettore di parole è tipicamente limitato a un valore scelto (N) e quindi la dimensione del vettore di caratteristiche sarà Nx1.

Frequenza termine-Frequenza documento inversa (TF-IDF)

Un altro modo per rappresentare un documento basato sulle parole in esso contenute è doppiato Frequenza termine-Frequenza documento inversa (TF-IDF). Un approccio TF-IDF crea anche un vettore che rappresenta il documento in base alle parole in esso contenute, ma a differenza di Bag-of-words queste parole sono ponderato non solo per la loro frequenza. TF-IDF considera l'importanza delle parole nei documenti, tentando di quantificare quanto sia rilevante quella parola per l'oggetto del documento. In altre parole, TF-IDF analizza la pertinenza anziché la frequenza e il conteggio delle parole in un vettore di caratteristiche viene sostituito da un punteggio TF-IDF calcolato rispetto all'intero set di dati.

Un approccio TF-IDF opera calcolando innanzitutto la frequenza dei termini, il numero di volte in cui i termini univoci compaiono all'interno di un documento specifico. Tuttavia, TF-IDF si preoccupa anche di limitare l'influenza di parole estremamente comuni come "il", "o" e "e", poiché queste "parole non significative" sono molto comuni ma trasmettono pochissime informazioni sul contenuto del documento. Queste parole devono essere scontate, che è ciò a cui si riferisce la parte "frequenza del documento inverso" di TF-IDF. Ciò è dovuto al fatto che maggiore è il numero di documenti in cui compare una parola specifica, meno utile è quella parola per distinguerla dagli altri documenti nell'elenco di tutti i documenti. La formula che TF-IDF utilizza per calcolare l'importanza di una parola è progettata per preservare le parole più frequenti e semanticamente più ricche.

I vettori di caratteristiche creati dall'approccio TF-IDF contengono valori normalizzati che si sommano a uno, assegnando a ciascuna parola un valore ponderato come calcolato dalla formula TF-IDF.

Incorporamenti di parole

Incorporamenti di parole sono metodi di rappresentazione del testo che assicurano che parole con significati simili abbiano rappresentazioni numeriche simili.

Incorporamenti di parole operano “vettorizzando” le parole, nel senso che rappresentano le parole come vettori a valori reali in uno spazio vettoriale. I vettori esistono in una griglia o matrice e hanno una direzione e una lunghezza (o grandezza). Quando si rappresentano le parole come vettori, le parole vengono convertite in vettori composti da valori reali. Ogni parola è mappata su un vettore e le parole che hanno un significato simile hanno direzione e grandezza simili. Questo tipo di codifica consente a un algoritmo di apprendimento automatico di apprendere complicate relazioni tra parole.

Gli incorporamenti che rappresentano parole diverse vengono creati in relazione a come vengono utilizzate le parole in questione. Poiché le parole utilizzate in modi simili avranno vettori simili, il processo di creazione di incorporamenti di parole traduce automaticamente parte del significato delle parole. L'approccio di un sacco di parole, al contrario, crea rappresentazioni fragili in cui parole diverse avranno rappresentazioni dissimili anche se utilizzate in contesti molto simili.

Di conseguenza, gli incorporamenti di parole sono più efficaci nel catturare il contesto delle parole all'interno di una frase.

Esistono diversi algoritmi e approcci utilizzati per creare incorporamenti di parole. Alcuni dei metodi di incorporamento di parole più comuni e affidabili includono: livelli di incorporamento, word2vec e GloVe.

Incorporamento dei livelli

Un modo potenziale per utilizzare gli incorporamenti di parole insieme a un sistema di machine learning/deep learning è quello di utilizzare un livello di incorporamento. I livelli di incorporamento sono livelli di apprendimento profondo che convertono le parole in incorporamenti che vengono poi inseriti nel resto del sistema di apprendimento profondo. Gli incorporamenti di parole vengono appresi mentre la rete si allena per un'attività specifica basata su testo.

In un approccio di incorporamento di parole, parole simili avranno rappresentazioni simili e saranno più vicine l'una all'altra rispetto a parole diverse.

Per utilizzare i livelli di incorporamento, il testo deve essere prima elaborato. Il testo nel documento deve essere codificato a caldo e la dimensione del vettore deve essere specificata in anticipo. Il testo one-hot viene quindi convertito in vettori di parole e i vettori vengono passati al modello di apprendimento automatico.

Parola2Vec

Parola2Vec è un altro metodo comune per incorporare parole. Word2Vec utilizza metodi statistici per convertire le parole in incorporamenti ed è ottimizzato per l'uso con modelli basati su reti neurali. Word2Vec è stato sviluppato dai ricercatori di Google ed è uno dei metodi di incorporamento più comunemente utilizzati, in quanto fornisce in modo affidabile incorporamenti utili e ricchi. Le rappresentazioni Word2Vec sono utili per identificare elementi comuni semantici e sintattici nel linguaggio. Ciò significa che le rappresentazioni di Word2Vec catturano relazioni tra concetti simili, essendo in grado di distinguere che la comunanza tra "King" e "Queen" è la regalità e che "King" implica "man-ness" mentre Queen implica "Woman-ness".

Guanto

GloVE, o vettore globale per la rappresentazione delle parole, si basa sugli algoritmi di incorporamento utilizzati da Word2Vec. I metodi di incorporamento di GloVe combinano aspetti di Word2Vec e tecniche di fattorizzazione della matrice come l'analisi semantica latente. Il vantaggio di Word2Vec è che può catturare il contesto, ma come compromesso cattura male le statistiche globali del testo. Al contrario, le rappresentazioni vettoriali tradizionali sono utili per determinare le statistiche globali del testo, ma non sono utili per determinare il contesto di parole e frasi. GloVE attinge dal meglio di entrambi gli approcci, creando un contesto di parole basato su statistiche di testo globali.

Blogger e programmatore con specialità in machine Learning ed Deep Learning temi. Daniel spera di aiutare gli altri a usare il potere dell'intelligenza artificiale per il bene sociale.