Python - Introduzione all'elaborazione del testo

L'elaborazione del testo ha un'applicazione diretta all'elaborazione del linguaggio naturale, noto anche come NLP. La PNL ha lo scopo di elaborare le lingue parlate o scritte dagli esseri umani quando comunicano tra loro. Questo è diverso dalla comunicazione tra un computer e un essere umano in cui la comunicazione è avvizzire un programma per computer scritto da umani o qualche gesto da umano come fare clic con il mouse in qualche posizione. La PNL cerca di comprendere il linguaggio naturale parlato dagli esseri umani e classificarlo, analizzarlo e, se necessario, rispondervi. Python ha un ricco set di librerie che soddisfano le esigenze della PNL. Il Natural Language Tool Kit (NLTK) è una suite di tali librerie che fornisce le funzionalità richieste per la PNL.

Di seguito sono riportate alcune applicazioni che utilizzano NLP e indirettamente NLTK di python.

Riassunto

Molte volte, abbiamo bisogno di ottenere il riassunto di un articolo di notizie, una trama di un film o una grande storia. Sono tutti scritti in linguaggio umano e senza PNL dobbiamo fare affidamento sull'interpretazione di un altro umano e sulla presentazione di tale sintesi a noi. Ma con l'aiuto della PNL possiamo scrivere programmi per utilizzare NLTK e riassumere il testo lungo con vari parametri, come qual è la percentuale di testo che vogliamo nell'output finale, scegliere le parole positive e negative per il riepilogo ecc. I feed di notizie online si basano su tali tecniche di riepilogo per presentare approfondimenti di notizie.

Strumenti basati sulla voce

Gli strumenti vocali come le mele Siri o Amazon Alexa si affidano alla PNL per comprendere l'interazione folle con gli umani. Hanno un ampio set di dati di addestramento di parole, frasi e grammatica per interpretare la domanda o il comando proveniente da un essere umano ed elaborarlo. Sebbene si tratti di voce, indirettamente viene anche tradotta in testo e il testo risultante dalla voce viene portato attraverso il sistema PNL per produrre risultati.

Estrazione delle informazioni

Il Web scrapping è un esempio comune di estrazione di dati dalle pagine Web utilizzando codice Python. Qui potrebbe non essere strettamente basato sulla PNL, ma coinvolge l'elaborazione del testo. Ad esempio, se dobbiamo estrarre solo le intestazioni presenti in una pagina html, allora cerchiamo il tag h1 nella struttura della pagina e troviamo un modo per estrarre il testo solo tra quei tag. Questo richiede un programma di elaborazione del testo da Python.

Filtro antispam

Lo spam nelle e-mail può essere identificato ed eliminato analizzando il testo nella riga dell'oggetto così come nel contenuto del messaggio. Poiché le e-mail di spam vengono solitamente inviate in blocco a molti destinatari, anche se i loro oggetti e contenuti hanno poche variazioni, possono essere abbinati e contrassegnati per contrassegnarli come spam. Anche in questo caso è necessario l'uso delle librerie NLTK.

Traduzione linguistica

La traduzione linguistica computerizzata si basa fortemente sulla PNL. Poiché sempre più lingue vengono utilizzate nella piattaforma online, diventa una necessità automatizzare la traduzione da una lingua umana a un'altra. Ciò comporterà la programmazione per gestire il vocabolario, la grammatica e l'etichettatura contestuale delle lingue coinvolte nella traduzione. Ancora una volta, NLTK viene utilizzato per gestire tali requisiti.

Sentiment Analysis

Per scoprire la reazione generale alla performance di un film, potremmo dover leggere migliaia di post di feedback dal pubblico. Ma anche questo può essere automatizzato utilizzando la classificazione di feedback positivo e negativo attraverso le parole e l'analisi delle frasi. E poi misurare la frequenza delle recensioni positive e negative per trovare il sentiment generale del pubblico. Questo ovviamente necessita dell'analisi del linguaggio umano scritto dal pubblico e NLTK è usato pesantemente qui per elaborare il testo.