Skip to main content
 首页 » 编程设计

python之如何在 Python 中序列化 CObject

2025年05月04日13cloudgamer

我使用 NLTK 和 svmlight python 库训练了一个 SVM 分类器,当我调用 pickle.dump(my_classifier, outfile, 1) 为了保存我的分类器,它抛出了这个错误:

File "/usr/lib/python2.7/pickle.py", line 313, in save 
    (t.__name__, obj)) 
    pickle.PicklingError: Can't pickle 'PyCObject' object: <PyCObject object at 0xc1cbd50> 

我读到我们不能 pickle CObject,但我没有找到保存我的工作的解决方案:/

我该如何继续?我使用 python 2.7.3

就其值(value)而言,对于了解 NLTK 的人来说,当我挑选其他分类器(如 MaxentClassifier 或 NaiveBayesClassifier 反对 SvmClassifier,我觉得跟svmlight库有关系,不过我是第一次用。

请您参考如下方法:

您可以使用 svmlight 库中的方法 write_model(model, filename) 来保存它。也许您可以教 pickle 将其用作 pickle 的自定义协议(protocol)。