+-

对于从文本中提取特征,如何检查矢量化器(例如TfIdfVectorizer或CountVectorizer)是否已经适合训练数据?
特别是,我希望代码能够自动判断矢量化器是否已经适合.
特别是,我希望代码能够自动判断矢量化器是否已经适合.
from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer()
def vectorize_data(texts):
# if vectorizer has not been already fit
vectorizer.fit_transform(texts)
# else
vectorizer.transform(texts)
最佳答案
您可以使用基本上用于执行此操作的
check_is_fitted.
在source of TfidfVectorizer.transform()中,您可以检查其用法:
def transform(self, raw_documents, copy=True):
# This is what you need.
check_is_fitted(self, '_tfidf', 'The tfidf vector is not fitted')
X = super(TfidfVectorizer, self).transform(raw_documents)
return self._tfidf.transform(X, copy=False)
所以在你的情况下,你可以这样做:
from sklearn.utils.validation import check_is_fitted
def vectorize_data(texts):
try:
check_is_fitted(vectorizer, '_tfidf', 'The tfidf vector is not fitted')
except NotFittedError:
vectorizer.fit(texts)
# In all cases vectorizer if fit here, so just call transform()
vectorizer.transform(texts)
点击查看更多相关文章
转载注明原文:python – Scikit-学习如何检查模型(例如TfidfVectorizer)是否已经适合 - 乐贴网