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_tokenize
nã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)))
.