【发布时间】:2021-08-15 05:58:28
【问题描述】:
我有一个带有自定义分析器的 tfidf 分词器,
def ngrams(text, n=3):
text = str(text)
text = text.lower()
text = ' '+ text +' '
ngrams = zip(*[text[i:] for i in range(n)])
return [''.join(ngram) for ngram in ngrams]
# fit and transform
vectorizer = TfidfVectorizer(min_df=1, analyzer=ngrams)
input_matrix = vectorizer.fit_transform(data)
print(input_matrix.shape)
我想转储它并稍后加载它,但由于我在 tfidf 中用作分析器的名为 ngrams 的自定义方法,我无法这样做。
当我做 pickle.dump 然后加载时,这是我得到的错误,
pickle.dump(vectorizer, open("data", "wb))
vec = pickle.load(open("data", "wb"))
AttributeError: Can't get attribute 'ngrams' on
main'>
有谁知道如何使用自定义方法腌制转储 tfidf。所以我可以使用 pickle.load 来加载。
【问题讨论】:
标签: python python-3.x scikit-learn tf-idf