Guida a CleanText: un pacchetto Python per pulire i dati di testo non elaborati


Il mondo reale è un posto disordinato e disordinato. Ognuno ha opinioni diverse, ma non possono fare a meno di essere d’accordo su questo fatto! Cos’altro è disordinato? Dati!! Tantissimi dati che raccogliamo, raschiamo o estraiamo da numerose fonti. Così disordinato che in un sondaggio è stato detto che i data scientist passano circa il 60% del loro tempo a pulire i dati. Sfortunatamente, circa il 50-55% lo trova abbastanza divertente. Sì, è piacevole.

Ma sappiamo che la pulizia dei dati richiede molto tempo, giusto? Inoltre, di tanto in tanto sono comparsi molti strumenti. Il compito è rendere questo compito cruciale e vitale più sopportabile (almeno un po’ più sopportabile). La comunità Python ospita un sacco di librerie per rendere i dati ordinati e umm… leggibili? Questo può variare da frame di dati senza fine a stilizzarli o se si tratta di analizzare set di dati.

L’uso di NLTK e Regex è conosciuto in tutta la comunità così tanto che spesso miniamo cos’altro c’è davvero che possiamo usare per questo compito gravoso. Questo blog parla di una nuova libreria (rilasciata solo l’anno scorso, gennaio 2020) chiamata CleanText. CleanText è un pacchetto Python open source (comune per quasi tutti i pacchetti che vediamo) specifico per la pulizia dei dati grezzi (come suggerisce il nome e credo che potresti aver indovinato).

Pacchetto semplice e facile da usare con codice minimalista da scrivere con un sacco di funzionalità da sfruttare (lo vogliamo tutti, giusto?). Quindi ci sono due metodi (sì, principalmente ce ne sono solo due in questo caso), vale a dire:

clean: esegue la pulizia del testo non elaborato e quindi restituisce il testo pulito sotto forma di stringa.
clean_words: come sopra, pulisce il testo non elaborato ma restituirà un elenco di parole pulite (ancora meglio)
La cosa bella del pacchetto CleanText non è la quantità di operazioni che supporta, ma la facilità con cui puoi usarle. Un elenco di questi è menzionato di seguito e in seguito scriveremo del codice che mostri tutto ciò per una migliore comprensione.

Rimozione di cifre dal testo.
Conversione dell’intero testo in una struttura minuscola uniforme.
Rimuovendo le stopword, scegli anche una lingua per l’applicazione delle stopword.
Lo stemming è un processo in cui abbiamo bisogno di convertire parole con significato simile o una radice comune in una singola parola. Ad esempio, mangiare, mangiare, mangiare, mangiare appartengono alla parola radice mangiare e quindi essere convertiti in quello.
E così via.
Abbastanza introduzione; vediamo come installare e utilizzare il testo pulito. 

Implementazione del codice di CleanText
Installazione
Il pacchetto CleanText richiede Python3 e NLTK per l’esecuzione. 

Per l’installazione tramite pip, utilizzare il comando seguente.

!pip install cleantext

Successivamente, importa la libreria.

import cleantext

Avremo bisogno di sfruttare le parole non significative dalla libreria NLTK da utilizzare nella nostra implementazione.

import nltk
nltk.download(‘stopword’)
Come accennato in precedenza, ci sono due metodi che possiamo usare; questi sono come sotto.

Questo restituirà il testo in formato stringa.

cleantext.clean(“your_raw_text_here”, all= True) 

Per aver restituito un elenco di parole pulite

cleantext.clean_words(“your_raw_text_here”, all= True) 

Applicazione che utilizza esempi
Due metodi principali, come discusso, sono mostrati di seguito, in primo luogo.

cleantext.clean(“the_text_input_by_you”, all= True) 

Output – ‘thetextinputbyy’

In secondo luogo, 

cleantext.clean_words(‘Your s$ample !!!! tExt3% to   cleaN566556+2+59*/133 wiLL GO he123re’, all=True)

Output – [‘sampl’ , ‘text’ , ‘clean’]

Si noti che ogni operazione è stata eseguita e quindi ci è stato fornito l’output.

 UNICODE 
Testo con lettere codificate con caratteri Unicode, Unicode diverso per lettere diverse. Esistono diverse codifiche come UTF-8, UTF-32 e così via. 

a1 = ‘Zurigo’
”’
L’argomento fix_unicode ci aiuterà a rimuovere 
gli errori unicode presenti nel nostro testo
”’
clean(a1, fix_unicode=True)
Notare che la “u” è stata codificata e dobbiamo convertirla in un carattere normale descritto da ASCII poiché il primo non verrà riconosciuto come lettera in lingua inglese e verrà scartato.

Questo può essere il caso di molte di queste parole, che sono incluse da diverse lingue in inglese.

RAPPRESENTAZIONE ASCII PI VICINA 
Abbreviato da American Standard Code for Information Interchange, questa è una codifica dei caratteri proprio come Unicode. Sono utilizzati per rappresentare il testo in computer e apparecchiature di telecomunicazione. Questo serve a creare uno standard per i set di caratteri in modo che diversi dispositivi possano comunicare tra loro.

a2 = “ko\u017eu\u0161\u010dek”
”’
l’argomento to_ascii convertirà il 
presente codifica in testo
”’
clean(a2, to_ascii=Vero)
Questo produrrà – ‘kozuscek’


 

Come puoi vedere, il testo attuale è intatto e la codifica nel nostro testo è stata convertita con successo in testo. Questo accade con i dati quando si eseguono attività di PNL; quindi questa è un’operazione utile che può essere facilmente eseguita.

MINUSCOLE
Le lettere maiuscole e minuscole sono considerate diverse; quindi, dobbiamo cambiarli in minuscolo (preferibilmente). Pur comprendendo il testo per dargli un significato, questo non ha molta importanza, quindi dovrebbe essere eseguito.

a3 = “Il mio nome è il capitano James Kirk”
”’
argomento semplice più basso usato 
in questa operazione
”’
pulito (a3, inferiore = vero)
Come ho detto, è necessario un codice minimalista per gestire queste attività utilizzando questa libreria.

SOSTITUISCI URL 
Molte volte incontriamo situazioni in cui dobbiamo sostituire gli URL con qualche altra stringa particolare. Di solito, ciò richiede espressioni Regex complesse (le odio), la soluzione è mostrata di seguito.

a4 = “https://www.Google.com ha superato https://www.Bing.com nel volume di ricerca”
”’
argomento no_urls si assicura che non lo facciamo 
avere qualsiasi URL nel testo di output.
argomento sostituire come suggerisce il nome will 
sostituisci url con il nostro testo menzionato
”’
clean(a4, no_urls=True, replace_with_url=”URL”)
L’uso di questo pacchetto ci fa credere che usare Python sia davvero come scrivere codice in inglese.

Metodi diretti, argomenti. Semplice dentro e semplice fuori.

SOSTITUISCI VALUTA
Incontriamo anche casi in cui ci sono simboli di valuta nel nostro testo; possiamo rimuoverli completamente (no, non aiuta) o sostituirli con del testo (che è molto meglio). Di seguito è riportato un esempio, utilizzando la rupia, che è la valuta standard in India.

s5 = “Voglio ₹ 40”
”’
argomento per rimuovere il 
simboli di valuta dal testo
”’
pulito(s5, 
      no_currency_symbols = Vero)
”’
Argomento utile per sostituirlo 
simbolo di valuta con testo
”’
pulito (a5, 
      no_currency_symbols = Vero, 
      replace_with_currency_symbol=”Rupie”)
Non solo abbiamo rimosso il simbolo della valuta, che non significherà nulla per il modello, ma l’abbiamo anche sostituito con il nostro testo senza soluzione di continuità.

SOSTITUZIONE DI PUNTEGGIO
Questa è senza dubbio l’operazione più utile di cui abbiamo bisogno durante la gestione delle attività relative alla lingua.

Questi non aggiungono alcun valore alle attività che eseguiamo sul dump del testo che abbiamo.

a6 = “80.000 è maggiore di 70.000”
”’
solo un argomento, no_punct
farà questo compito
”’
clean(a6, no_punct = True)
”’
un altro argomento utile da usare 
in combinazione con no_punct
”’
clean(a6, no_punct = True, replace_with_punct = “6”)
Puoi anche modificare le punteggiature da conservare e da rimuovere. Super amichevole vero?!

RIMOZIONE DEI NUMERI
Un’altra importante operazione o manipolazione sui dati di testo che è vitale in quanto ciò non aggiungerà alcun valore semantico o sintattico.

a7 = ‘abc123def456ghi789zero0’
”’
argomento no_digits come suggerisce il nome 
rimuovi tutte le cifre
”’
clean(a7, no_digits = True)
”’
anche qui possiamo sostituire quelli 
cifre usando questo argomento
”’
clean(a7, no_digits = True, replace_with_digit=””)
COMBINANDO TUTTO
finale = “””
Zurigo ha un famoso sito web https://www.zuerich.com/ 
CHE ACCETTA 40.000 € e aggiungendo una stringa casuale, :
abc123def456ghi789zero0 per questa demo. ‘ 
     “””
pulito (finale, 
      fix_unicode=Vero, 
      to_ascii=Vero, 
      inferiore=vero, 
      no_urls=Vero, 
      no_numbers=Vero, 
      no_digits=Vero, 
      no_currency_symbols=Vero, 
      no_punct=Vero, 
      replace_with_punct=””, 
      replace_with_url=”<URL>”, 
      replace_with_number=”<NUMBER>”, 
      replace_with_digit=””, 
      replace_with_currency_symbol=”<CUR>”)
Consiglio di utilizzare questo pacchetto che richiede pochissimo tempo per implementare e provare diverse combinazioni dei metodi sopra menzionati. Il taccuino è presente qui per riferimento. Tutto il codice è scritto Google Colab. 

Nota finale
Quindi questa è stata un’introduzione più l’implementazione del codice della libreria di pulizia del testo più semplice che abbia mai usato. Questa libreria è costruita sulla migliore e la mia preferita di Python. Il vantaggio di CleanText è che devi codificare meno, è come se stessi scrivendo in inglese!! Consiglio vivamente ai lettori di questo blog di provare questo pacchetto per le loro attività di PNL perché è necessaria la pulizia del testo.  

da https://analyticsindiamag.com/guide-to-cleantext-a-python-package-to-clean-raw-text-data/

Di ihal