如何使用 pickle 存储和加载 TFIdf 矢量化器?

How do you Store and load a TFIdf vectorizer using pickle?

def custom1(input):
      List1=[] 
    for i in input:
        List1.append(i)
    return List1
vectorizer = TfidfVectorizer(tokenizer=custom1)

安装我的矢量化器后。我转储了它,但是当我加载我的矢量化器时,它说它找不到模块 custom1。有人可以帮忙吗?还有其他方法可以加载和保存矢量化器吗?

AttributeError: 无法在 main'

上获取属性 'custom1'

首先我不明白你的函数在做什么,因为它只是将一个数组复制到另一个数组。能否详细说明一下?

如果你想使用 pickle 存储一些东西,只需调用

pickle.dump(vectorizer, open("vectorizer.pickle", "wb"))

以后要重新加载它,您可以使用

vectorizer = pickle.load(open("vectorizer.pickle", "rb"))

要腌制一个函数,我建议使用 Cloudpickle

def custom1(input):
  return input

pickledfunction = cloudpickle.dumps(custom1)
pickle.loads(pickledfunction)([1,2,3])