Estoy empezando a usar NLTK y no entiendo cómo obtener una lista de palabras del texto. Si lo uso nltk.word_tokenize()
, obtengo una lista de palabras y puntuación. Solo necesito las palabras en su lugar. ¿Cómo puedo deshacerme de la puntuación? Tampoco word_tokenize
funciona con varias oraciones: se agregan puntos a la última palabra.
word_tokenize()
no funciona con múltiples oraciones. Para deshacerse de la puntuación, puede usar una expresión regular o la isalnum()
función de Python .
>>> 'with dot.'.translate(None, string.punctuation) 'with dot'
(nota sin punto al final del resultado) que puede causar problemas si tiene cosas como 'end of sentence.No space'
, en cuyo caso debe hacerse lo siguiente: the_text.translate(string.maketrans(string.punctuation, ' '*len(string.punctuation)))
que sustituye a todos los puntuacion con espacios en blanco.
nltk.word_tokenize(the_text.translate(None, string.punctuation))
debería funcionar en python2 mientras que en python3 puedes hacerlonltk.work_tokenize(the_text.translate(dict.fromkeys(string.punctuation)))
.