Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何保存Python字符串列表以备将来使用_Python_Numpy - Fatal编程技术网

如何保存Python字符串列表以备将来使用

如何保存Python字符串列表以备将来使用,python,numpy,Python,Numpy,我刚刚对43K文档进行了文本预处理(停止单词删除/标记化等)。在python中,结果是处理过的文本文档(字符串)列表。现在,我将把这些经过处理的字符串转换为单词包特征向量 我需要两件事的帮助 1) 。在我的系统上花了45分钟来预处理这些43K文档文本。如果以后重新启动系统,我不想再做同样的事情。如何保存预处理字符串的列表?。我应该简单地将其保存到txt文件中,还是应该使用pickle或json?。就更快地读入内存和无问题而言,哪种方法更可取。我想为一袋单词矩阵(numpy矩阵)做同样的事情 2)

我刚刚对43K文档进行了文本预处理(停止单词删除/标记化等)。在python中,结果是处理过的文本文档(字符串)列表。现在,我将把这些经过处理的字符串转换为单词包特征向量

我需要两件事的帮助

1) 。在我的系统上花了45分钟来预处理这些43K文档文本。如果以后重新启动系统,我不想再做同样的事情。如何保存预处理字符串的列表?。我应该简单地将其保存到txt文件中,还是应该使用pickle或json?。就更快地读入内存和无问题而言,哪种方法更可取。我想为一袋单词矩阵(numpy矩阵)做同样的事情

2) 。稍后我将在这些单词包矩阵上运行LDA或k均值聚类。什么是保存模型的最佳解决方案,这样我就不必再次运行模型了?。酸洗


有人能建议在这两种情况下使用正确的语法进行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”。谢谢:)