【问题标题】:How to save and load vocabulary_ from a CountVectorizer?如何从 CountVectorizer 保存和加载词汇表?
【发布时间】:2020-02-09 03:56:33
【问题描述】:

我有一个类,我在其中创建一个 countVectorizer 并使用 fit_transform 创建向量。这会生成一个词汇表_。 我希望这个 CountVectorizer 与一个文件中的词汇表能够在另一个类中重用它。 有人对我有什么建议吗?我已经尝试使用 save_npz 完成所有操作。但它不能正常工作。

这是我尝试保存整个内容时的功能。我不确定这是否正确。

...
count_vect = CountVectorizer()
...

def vectorizeData():

  clean_data = pd.read_feather('../working/' + PROJECT + '_clean.feather') 

  word_count = count_vect.fit_transform(clean_data.text)

  scipy.sparse.save_npz('../working/' + PROJECT + '_countVec.npz', word_count)


和负载


def ModelData():
  ...
  count_vect_test = scipy.sparse.load_npz('../working/' + PROJECT + '_countVec.npz')
  ...

加载后我只有 csr_matrix,但没有 CountVectorizer 对象。

【问题讨论】:

  • 您是否考虑过创建一个CountVectorizer,然后简单地分配给它的vocabulary_ 属性?否则你可以腌制它,尽管腌制很脆弱,因此不是最理想的。
  • 我可以使用现有的词汇表吗?
  • 它只是一个python对象。 vectorizer = CountVectorizer(); vectorizer.vocabulary_ = my_vocab

标签: python machine-learning scikit-learn data-science


【解决方案1】:

您是否尝试过使用 joblib?

https://joblib.readthedocs.io/en/latest/generated/joblib.dump.html

import joblib

# example for saving python object as pkl
joblib.dump(vectorizer, "vectorizer.pkl")

# loading pickled vectorizer
vectorizer = joblib.load("vectorizer.pkl")

【讨论】:

    猜你喜欢
    • 2015-05-07
    • 2015-12-16
    • 2016-09-25
    • 2020-01-15
    • 1970-01-01
    • 2019-03-14
    • 2016-07-02
    • 2019-08-29
    • 1970-01-01
    相关资源
    最近更新 更多