Installazione di NLTK in Linux
Per installare NLTK in Ubuntu, eseguire il comando di seguito:
$ sudo apt install python3-nltk
I pacchetti NLTK sono disponibili in tutte le principali distribuzioni Linux. Cerca la parola chiave "NLTK" nel gestore dei pacchetti per installare i pacchetti. Se per qualche motivo, NLTK non è disponibile nei repository della tua distribuzione, è possibile installarlo dal gestore dei pacchetti PIP eseguendo il comando di seguito:
$ pip install --user -u nltk
Nota che dovrai prima installare PIP dal tuo gestore pacchetti per il comando sopra per funzionare. Su alcune distribuzioni, può essere chiamato PIP3. Puoi anche seguire istruzioni di installazione dettagliate disponibili sul sito ufficiale di NLTK.
Estrarre frasi da un paragrafo usando NLTK
Per i paragrafi senza punteggi e spaziatura complessi, è possibile utilizzare il tokenizer della frase NLTK incorporato, chiamato "Punkt Tokenizer", che viene fornito con un modello pre-addestrato. Puoi anche utilizzare i tuoi modelli di dati addestrati per tokenizzare il testo in frasi. I modelli di dati addestrati su misura sono fuori dall'ambito di questo articolo, quindi il codice seguente utilizzerà il tokenizer inglese Punkt integrato. Per scaricare il file delle risorse Punkt, eseguire i seguenti tre comandi in successione e attendere che il download finisca:
$ Python3
$ import nltk
$ nltk.Download ('Punkt')
Un paragrafo di "Alice's Adventures in Wonderland" sarà utilizzato nel campione di codice di seguito:
importare nltkL'esecuzione del codice sopra ti darà il seguente output:
Il tokenizer della frase Punkt incorporato funziona bene se vuoi tokenizzare semplici paragrafi. Dopo aver importato il modulo NLTK, tutto ciò che devi fare è utilizzare il metodo "Sent_Tokenize ()" su un corpus di testo di grandi dimensioni. Tuttavia, il tokenizzatore della frase punkt potrebbe non rilevare correttamente le frasi quando esiste un paragrafo complesso che contiene molti segni di punteggiatura, segni esclamativi, abbreviazioni o simboli ripetitivi. Non è possibile definire un modo standard per superare questi problemi. Dovrai scrivere codice personalizzato per affrontare questi problemi utilizzando Regex, Manipolation String o addestrando il proprio modello di dati invece di utilizzare il modello di dati Punkt incorporato.
Puoi anche provare a modificare il modello Punkt esistente per correggere la tokenizzazione errata utilizzando alcuni parametri aggiuntivi. Per fare ciò, segui la documentazione ufficiale di tokenization disponibile qui. Per utilizzare le tue modifiche personalizzate, è richiesta una leggera modifica del codice:
da nltk.tokenizzare.Punkt Import PunktsentenceTokenizer, PunktParametersIl codice sopra fa lo stesso lavoro del metodo "Sent_Tokenize ()". Tuttavia, ora puoi definire le tue regole utilizzando i metodi integrati e passarle come argomenti, come descritto nella documentazione. Ad esempio, alcune abbreviazioni sono state aggiunte al codice sopra. Se queste abbreviazioni sono seguite dalla punteggiatura, non verranno suddivissioni in una nuova frase. Il comportamento normale è usare un punto o un periodo come indicazione della fine di una frase.
Conclusione
NLTK e i suoi metodi di tokenizzazione sono abbastanza efficienti nel tokenizzazione e nell'elaborazione dei dati di testo. Tuttavia, i modelli pre-addestrati potrebbero non funzionare al 100% con diversi tipi di testi. Potrebbe essere necessario migliorare i modelli esistenti, addestrare e fornire il proprio o scrivere il tuo codice per correggere le anomalie.