Я применяю следующую функцию к набору данных, содержащему ~ 23000 строк, и он работает очень медленно. Я предполагаю, что это потому, что в функцию, которую я использовал для удаления знаков препинания и стоп-слов, есть для циклов . Я запускаю линию, которая применяет text_process
к моему фрейму данных уже почти 15 минут, но мне интересно, есть ли для меня более разумный способ сделать эту обработку.
Открыто для всех предложений!
Вот мой код:
def text_process(text):
"""
Takes in string of text, and does following operations:
1. Removes punctuation + unicode quotations.
2. Removes stopwords.
3. Returns a list of cleaned "tokenized" text.
"""
punctuation = [c for c in string.punctuation] + [u'\u201c',u'\u201d',u'\u2018',u'\u2019']
nopunc = [char for char in text if char not in punctuation]
nopunc = ''.join(nopunc)
return [word.lower() for word in nopunc.split() if word not in
stopwords.words('english')]
pitchfork['content_clean'] = pitchfork['content'].apply(text_process)