Automatizzare il flusso di lavoro dell’elaborazione del testo con una sola riga di codice Python
Elaborare i dati di testo per attività di NLP utilizzando la libreria CleanText
L’elaborazione del linguaggio naturale (NLP) è un sottocampo dell’IA che coinvolge le interazioni tra computer e linguaggio naturale. Si occupa di come addestrare un modello di scienza dei dati in grado di comprendere e implementare l’uso del linguaggio naturale. Un tipico progetto di NLP segue vari aspetti della pipeline per addestrare un modello. Le varie fasi della pipeline includono la pulizia del testo, la tokenizzazione, lo stemming, la codifica in vettori numerici e così via, seguite dall’addestramento del modello.
Il set di dati ricavato per le attività di NLP è costituito da dati testuali, provenienti principalmente da Internet. Nella maggior parte dei casi, i dati testuali utilizzati per la modellazione NLP sono sporchi e devono essere puliti nella fase iniziale dell’elaborazione dei dati. Un data scientist dedica la maggior parte del tempo alla preelaborazione dei dati, che include la pulizia dei dati testuali.
“Se ti interessa approfondire altri aspetti in cui si utilizza il Natural Language Processing ed ampliare le tue conoscenze, iscriviti alla nostra specializzazione interamente dedicata al NLP!”
In questo articolo parleremo di un’interessante libreria, CleanText, che facilita il processo di pulizia dei dati testuali e velocizza la pipeline di preelaborazione dei dati.
Cos’è CleanText?
CleanText è una libreria Python open-source che consente di pulire i dati testuali raccolti dal web o dai social media. CleanText consente agli sviluppatori di creare una rappresentazione testuale normalizzata. CleanText utilizza ftfy, unidecode e varie altre regole codificate, tra cui RegEx, per convertire un testo corrotto o sporco in un testo pulito, che può essere ulteriormente elaborato per addestrare un modello NLP.
Installazione:
La libreria CleanText può essere installata da PyPl utilizzando il seguente comando:
Tradotto con www.DeepL.com/Translator (versione gratuita)pip install clean-text
Post-installation, you can import the library by importing it using:
from cleantext import clean
Utilizzo:
La libreria CleanText è dotata di una sola funzione ‘Clean’ che accetta vari parametri che possono essere messi a punto per eseguire la pulizia del testo. La funzione Clean può eseguire 11 tipi di pulizia, tra cui:
Unicode:
Corregge vari errori Unicode.s1 = ‘Zürich’
clean(s1, fix_unicode=True)# Output: zurich
ASCII:
It translated the text to the nearest ASCII representation.
Lower:
Convert the text data into lower case.
Sostituire URLs / Emails / Phone Numbers:
Replaces all the URLs or Emails or Phone numbers present in the text data with a special token.
Sostituire la valuta:
Sostituisce tutte le valute presenti nei dati di testo con un token speciale.
Rimuovi numeri:
Sostituire o rimuovere tutti i numeri con un gettone speciale.
Sostituisci punteggiatura:
Rimuove o sostituisce tutta la punteggiatura presente nei dati di testo con un token speciale.
Combinazione di tutti i parametri:
Abbiamo discusso tutti i parametri singolarmente sopra. Ora combiniamoli tutti nella funzione Clean, chiamiamola per un testo di esempio sporco e osserviamo il risultato del testo pulito.
(Codice dell’autore), CleanText
Quindi, scrivendo una sola riga di codice Python, i dati testuali sporchi possono essere puliti e ulteriormente pre-elaborati.
s2 = "ko\u017eu\u0161\u010dek"
clean(s2, to_ascii=True)# Output: kozuscek
<pre class=”wp-block-code pretty linenums”s3 = "My Name is SATYAM"
clean(s3, lower=True)# Output: my name is satyam
<pre class=”wp-block-code pretty linenums”s4 = "https://www.Google.com and https://www.Bing.com are popular seach engines. You can mail me at satkr7@gmail.com. If not replied call me at 9876543210"clean(s4, no_urls=True, replace_with_url="URL",
no_emails=True, replace_with_email="EMAIL"
no_phone_numbers=True, replace_with_email="PHONE")# Output: url and url are popular search engines. You can mail me at EMAIL. If not replied call me at PHONE
<pre class=”wp-block-code pretty linenums”s5 = "I want ₹ 40"
clean(s5, no_currency_symbols = True)
clean(s5, no_currency_symbols = True, replace_with_currency_symbol="Rupees")# Output: i want 40
# Output: i want rupees 40
s7 = 'abc123def456ghi789zero0'clean(s7, no_digits = True)
clean(s7, no_digits = True, replace_with_digit="")# Output: abc000def000ghi000zero0
# Output: abcdefghizero
s6 = "40,000 is greater than 30,000."
clean(s6, no_punct = True)# Output: 40000 is greater than 30000
Conclusioni:
CleanText è una libreria efficiente che può elaborare o pulire i dati sporchi raccolti per ottenere un testo pulito normalizzato in una sola riga di codice. Lo sviluppatore deve solo regolare i parametri in base alle proprie esigenze. Questo semplifica il lavoro del data scientist, che ora non deve scrivere molte righe di un complesso codice di espressione regolare per pulire il testo. CleanText non funziona solo con testi in lingua inglese, ma può gestire anche il tedesco, semplicemente impostando lang=’de’.
La libreria CleanText copre solo alcuni dei parametri di pulizia del testo e ha margini di miglioramento. Tuttavia, lo sviluppatore può utilizzarla per alcuni compiti di pulizia e poi procedere con la codifica manuale per completare il resto.
Articolo originale di Satyam Kumar