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_tokenizenon 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))).