如何保存Python字符串列表以备将来使用
我刚刚对43K文档进行了文本预处理(停止单词删除/标记化等)。在python中,结果是处理过的文本文档(字符串)列表。现在,我将把这些经过处理的字符串转换为单词包特征向量 我需要两件事的帮助 1) 。在我的系统上花了45分钟来预处理这些43K文档文本。如果以后重新启动系统,我不想再做同样的事情。如何保存预处理字符串的列表?。我应该简单地将其保存到txt文件中,还是应该使用pickle或json?。就更快地读入内存和无问题而言,哪种方法更可取。我想为一袋单词矩阵(numpy矩阵)做同样的事情 2) 。稍后我将在这些单词包矩阵上运行LDA或k均值聚类。什么是保存模型的最佳解决方案,这样我就不必再次运行模型了?。酸洗如何保存Python字符串列表以备将来使用,python,numpy,Python,Numpy,我刚刚对43K文档进行了文本预处理(停止单词删除/标记化等)。在python中,结果是处理过的文本文档(字符串)列表。现在,我将把这些经过处理的字符串转换为单词包特征向量 我需要两件事的帮助 1) 。在我的系统上花了45分钟来预处理这些43K文档文本。如果以后重新启动系统,我不想再做同样的事情。如何保存预处理字符串的列表?。我应该简单地将其保存到txt文件中,还是应该使用pickle或json?。就更快地读入内存和无问题而言,哪种方法更可取。我想为一袋单词矩阵(numpy矩阵)做同样的事情 2)
有人能建议在这两种情况下使用正确的语法进行pickle,并在pickle是解决方案时重新阅读吗?我会对其进行pickle,其优点是可以将列表存储为对象。但很难预测文件会有多大 我也会对模型做同样的处理 使用以下功能保存和加载:
import cPickle
import gzip
def load(file_name):
# load the model
stream = gzip.open(file_name, "rb")
model = cPickle.load(stream)
stream.close()
return model
def save(file_name, model):
# save the model
stream = gzip.open(file_name, "wb")
cPickle.dump(model, stream)
stream.close()
然后简单地做一些事情,比如:
model = [0.5, 0.1, 0.3, -0.2, 1.5]
save("/path/to/model_1", model]
model = load("/path/to/model_1")
我不知道你的模型会是什么样子,所以我用了一个简单的权重向量作为例子。只要存储你想要的任何对象。我使用sklearn joblib,它比使用cPickle和gzip的另一个答案更快(我的测试是170ms对430ms)。代码简单而酷。:) 要使用
joblib.dump
保存,
和joblib.load
读取
from sklearn.externals import joblib
joblib.dump(clf, 'filename.pkl')
clf = joblib.load('filename.pkl')
查看更多详细信息:先阅读此内容,然后自己在一个小文件上试用-pickle或np.save应该会有帮助,从未尝试过json…如果答案是正确的,请将其设置为“correct”。谢谢:)