Существует тонна, касающаяся удаления знаков препинания, но я не могу найти что-либо, чтобы ее сохранить.Сохранять препинание в python nltk.word_tokenize
Если я:
from nltk import word_tokenize
test_str = "Some Co Inc. Other Co L.P."
word_tokenize(test_str)
Out[1]: ['Some', 'Co', 'Inc.', 'Other', 'Co', 'L.P', '.']
последний "" помещается в свой собственный токен. Однако, если вместо этого есть другое слово в конце, последнее «.» сохраняется:
from nltk import word_tokenize
test_str = "Some Co Inc. Other Co L.P. Another Co"
word_tokenize(test_str)
Out[1]: ['Some', 'Co', 'Inc.', 'Other', 'Co', 'L.P.', 'Another', 'Co']
Я бы хотел, чтобы это всегда выполнялось как второй случай. На данный момент я занимаюсь хакерством:
from nltk import word_tokenize
test_str = "Some Co Inc. Other Co L.P."
word_tokenize(test_str + " |||")
так как я чувствую себя довольно уверенно в том, чтобы выбрасывать «|||» в любой момент времени, но не знаю, какую другую пунктуацию я могу захотеть сохранить, которая может быть удалена. Есть ли лучший способ сделать это?
Почему бы не использовать 'test_str.split()' вместо этого? Он не вводит пустые токены между повторяющимися пробелами, а также удаляет ведущие и конечные пробелы. – lenz