Estou começando a usar o NLTK e não entendo como obter uma lista de palavras do texto. Se eu usar nltk.word_tokenize(), recebo uma lista de palavras e pontuação. Eu preciso apenas das palavras. Como posso me livrar da pontuação? Também word_tokenizenão funciona com várias frases: pontos são adicionados à última palavra.
word_tokenize()que não funciona com várias frases. Para se livrar da pontuação, você pode usar uma expressão regular ou a isalnum()função python .
>>> 'with dot.'.translate(None, string.punctuation) 'with dot'(nota sem ponto no final do resultado) Isso pode causar problemas se você tem coisas como 'end of sentence.No space', caso em que fazer isso em vez disso: the_text.translate(string.maketrans(string.punctuation, ' '*len(string.punctuation)))que substitui toda a pontuação com espaços em branco.
nltk.word_tokenize(the_text.translate(None, string.punctuation))deve funcionar em python2 enquanto em python3 você pode fazernltk.work_tokenize(the_text.translate(dict.fromkeys(string.punctuation))).