如何从 CountVectorizer 保存和加载词汇表?
Posted
技术标签:
【中文标题】如何从 CountVectorizer 保存和加载词汇表?【英文标题】:How to save and load vocabulary_ from a 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
【参考方案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")
【讨论】:
以上是关于如何从 CountVectorizer 保存和加载词汇表?的主要内容,如果未能解决你的问题,请参考以下文章
加载泡菜 NotFittedError:CountVectorizer - 未安装词汇
从 CountVectorizer 按类别提取 n 个最高频率