昨天做NLP词频矩阵处理时候,遇到内存不足的问题,遇到memoryerror的情况。查了不少资料,都让我在大的机器上跑,但是有时候资源有限。
由于我的句子中的每个词语都是重要的,所以不设置停用词,也就是countvectoirze才符合我的需求,而并非TFIDFVECTORIZE,TFIDF是为了减小句子中的一些出现频率高但是却没有意义的词的权重。因此我选择了countvectorize。
当数据量小的时候, 我们可以这样进行词频矩阵
from sklearn.feature_extraction.text import CountVectorizer
count_vec=CountVectorizer(token_pattern=r"(?u)\b[^/]+\b")
X_count_train = count_vec.fit_transform(word_list1)
X_count_train= X_count_train.toarray()
#结果
成功输出!
但是当我的数据量有130W+的句子。其中存在重复项70W+。一些电脑内存不够时,就会出现memoryerror!!
以下为做COUNTVECTORIZE词频矩阵代码:
from sklearn.feature_extraction.text import CountVectorizer
count_vec=CountVectorizer(token_pattern=r"(?u)\b[^/]+\b")
X_count_train = count_vec.fit_transform(word_list