Sto appena iniziando a usare NLTK e non capisco come ottenere un elenco di parole dal testo. Se uso nltk.word_tokenize()
, ottengo un elenco di parole e punteggiatura. Mi servono invece solo le parole. Come posso eliminare la punteggiatura? Inoltre word_tokenize
non funziona con più frasi: i punti vengono aggiunti all'ultima parola.
word_tokenize()
non funziona con più frasi. Per eliminare la punteggiatura, puoi utilizzare un'espressione regolare o la isalnum()
funzione di Python .
>>> 'with dot.'.translate(None, string.punctuation) 'with dot'
(nota n punto alla fine del risultato) Può causare problemi se avete le cose come 'end of sentence.No space'
, in questo caso fare questo, invece: the_text.translate(string.maketrans(string.punctuation, ' '*len(string.punctuation)))
che sostituisce tutta la punteggiatura con spazi bianchi.
nltk.word_tokenize(the_text.translate(None, string.punctuation))
dovrebbe funzionare in python2 mentre in python3 puoi farlonltk.work_tokenize(the_text.translate(dict.fromkeys(string.punctuation)))
.