Вам нужно оптимизировать алгоритм, использовать меньше памяти, перевести все что возможно на итераторы.
Например этот код в теории создает 3 гигантских массива:
corpus_neg=[i.decode('utf-8') for i in data_text_score['text'][data_text_score['score']==0]]
corpus_pos=[i.decode('utf-8') for i in data_text_score['text'][data_text_score['score']==1]]
corpus_all=corpus_neg+corpus_pos
Можно изменить например так, corpus_all вернет те же данные без использования списков.
def corpus_all():
for i in data_text_score['text'][data_text_score['score']==0]:
yield i.decode('utf-8')
for i in data_text_score['text'][data_text_score['score']==1]:
yield i.decode('utf-8')