
L’elaborazione dei dati più elementare richiesta da qualsiasi progetto di elaborazione del linguaggio naturale (NLP) è convertire i dati di testo in dati numerici. Finché i dati sono in formato testo non possiamo eseguire alcun tipo di azione di calcolo su di essi.
Sono disponibili più metodi per questa conversione di dati da testo a numerico. Questo tutorial spiegherà uno dei vettorizzatori più basilari, il metodo CountVectorizer nella libreria scikit-learn.
Questo metodo è molto semplice. Prende la frequenza di occorrenza di ciascuna parola come valore numerico. Un esempio lo renderà chiaro.
Nel seguente blocco di codice:
- Importeremo il metodo CountVectorizer.
- Chiama il metodo.
- Adatta i dati di testo al metodo CountVectorizer e convertili in un array.
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer #This is the text to be vectorized
text = ("Hello Everyone! This is Lilly. My aunt's name is also Lilly. I love my aunt.\
I am trying to learn how to use count vectorizer.")
cv= CountVectorizer()
count_matrix = cv.fit_transform(text)
cnt_arr = count_matrix.toarray()
cnt_arr
Produzione:
array(((1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1)),
dtype=int64)
Qui ho i valori numerici che rappresentano i dati di testo sopra.
Come facciamo a sapere quali valori rappresentano quali parole nel testo?
Per renderlo chiaro, sarà utile convertire l’array in un DataFrame in cui i nomi delle colonne saranno le parole stesse.
cnt_df = pd.DataFrame(data = cnt_arr, columns = cv.get_feature_names())
cnt_df
Ora si vede chiaramente. Il valore della parola “anche” è 1, il che significa che “anche” è apparso solo una volta nel test. La parola “zia” ricorre due volte nel testo. Quindi, il valore della parola “zia” è 2.
Nell’ultimo esempio, tutte le frasi erano in una stringa. Quindi, abbiamo solo una riga di dati per quattro frasi. Riorganizziamo il testo e…
Fonte: towardsdatascience.com