Dopiero zaczynam używać NLTK i nie do końca rozumiem, jak uzyskać listę słów z tekstu. Jeśli używam nltk.word_tokenize()
, otrzymuję listę słów i znaków interpunkcyjnych. Zamiast tego potrzebuję tylko słów. Jak pozbyć się interpunkcji? Również word_tokenize
nie działa z wieloma zdaniami: punkty są dodawane do ostatniego słowa.
word_tokenize()
nie działa z wieloma zdaniami. Aby pozbyć się interpunkcji, możesz użyć wyrażenia regularnego lub isalnum()
funkcji Pythona .
>>> 'with dot.'.translate(None, string.punctuation) 'with dot'
(uwaga bez kropki na końcu wyniku) może powodować problemy, jeśli masz takie rzeczy 'end of sentence.No space'
, w tym przypadku to zrobić w zamian: the_text.translate(string.maketrans(string.punctuation, ' '*len(string.punctuation)))
która zastępuje wszystkie znaki interpunkcyjne z białymi spacjami.
nltk.word_tokenize(the_text.translate(None, string.punctuation))
powinien działać w python2, podczas gdy w python3 możesz to zrobićnltk.work_tokenize(the_text.translate(dict.fromkeys(string.punctuation)))
.