如何在测试集上应用 TFIDF
How to apply TFIDF on test set
假设我有两个文本文件。文件1包含训练集,主要用于定义词汇。文件 2 是用户输入的单词。
d1 = (
"Project 1 details on Machine learning",
"Project 2 detail on machine learning and statics",
"Project 3 is on mach learn as well"
)
d2 = (
"Projects related to machine learning"
)
现在使用sklearn我们找到d1的tfidf
from sklearn.feature_extraction.text import TfidfVectorizer
tfidf_vectorizer = TfidfVectorizer()
tfidf_matrix = tfidf_vectorizer.fit_transform(documents)
print( tfidf_matrix.shape)
现在对于查询 d2,我想根据从 d1 中学到的 vocubarly 计算 tfidf 向量。我应该怎么做?
与 SKLearn
中的任何变换器一样,在你 .fit
训练集(在本例中使用 .fit_transform(d1)
之后)你可以 transform
测试集tfidf_vectorizer.transform(d2)
您可以将第一个矢量化器的 vocabulary_ 属性作为参数传递给第二个矢量化器:
from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer1 = TfidfVectorizer()
vectorizer2 = TfidfVectorizer()
vectorizer1.fit_transform(d1)
vectorizer2 = TfidfVectorizer(vocabulary=vectorizer1.vocabulary_)
vectorizer2.fit_transform(d2)
假设我有两个文本文件。文件1包含训练集,主要用于定义词汇。文件 2 是用户输入的单词。
d1 = (
"Project 1 details on Machine learning",
"Project 2 detail on machine learning and statics",
"Project 3 is on mach learn as well"
)
d2 = (
"Projects related to machine learning"
)
现在使用sklearn我们找到d1的tfidf
from sklearn.feature_extraction.text import TfidfVectorizer
tfidf_vectorizer = TfidfVectorizer()
tfidf_matrix = tfidf_vectorizer.fit_transform(documents)
print( tfidf_matrix.shape)
现在对于查询 d2,我想根据从 d1 中学到的 vocubarly 计算 tfidf 向量。我应该怎么做?
与 SKLearn
中的任何变换器一样,在你 .fit
训练集(在本例中使用 .fit_transform(d1)
之后)你可以 transform
测试集tfidf_vectorizer.transform(d2)
您可以将第一个矢量化器的 vocabulary_ 属性作为参数传递给第二个矢量化器:
from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer1 = TfidfVectorizer()
vectorizer2 = TfidfVectorizer()
vectorizer1.fit_transform(d1)
vectorizer2 = TfidfVectorizer(vocabulary=vectorizer1.vocabulary_)
vectorizer2.fit_transform(d2)