У меня есть вопрос с предварительной обработкой моего текстового корпуса.Я хочу удалить все не алфавитно-цифровые символы из текста.У меня есть несколько подходов, но они не совсем решают проблему.
Например, у меня есть предложение:
A B C D ,5 .. AAA55AAA aaa.bbb.ccc
В результате я хочу получить:
'A' 'B' 'C' 'D' 'AAA' 'AAA' 'aaa' 'bbb' 'ccc'
Я пробовал NLTK:
from nltk.tokenize import word_tokenize
tokens = word_tokenize(my_sentence)
, но у него есть метод isalpha () :
words = [word for word in tokens if word.isalpha()]
В результате это будет:
'A', 'B', 'C', 'D'
Так что это не решает мою проблему.Удаляются все слова, содержащие не-буквенные символы
И еще:
import string
table = str.maketrans('', '', string.punctuation)
sripped = [w.translate(table) for w in tokens]
, но удаляются только знаки препинания (и все слова):
'A', 'B', 'C', 'D', '5', '', 'AAA55AAA'
Есть лилюбое решение, использующее НЛТК или что-л.еще?Или единственный способ решить проблему - использовать регулярные выражения для каждого слова?(на самом деле не хочу этого делать, потому что регулярные выражения работают долгое время, особенно на больших файлах)