已预处理的TFIDF

2024-05-16 11:44:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试一个接一个地使用几种信息检索技术。对于每一个,我希望文本被以完全相同的方式进行预处理。我的预处理文本以单词列表的形式提供。不幸的是,scikit发现TfidfVectorizer似乎只接受字符串列表。目前我是这样做的(当然效率很低):

from sklearn.feature_extraction.text import TfidfVectorizer

train_data = [["the","sun","is","bright"],["blue","is","the","sky"]]

tfidf = TfidfVectorizer(tokenizer=lambda i:i.split(","))
converted_train = map(lambda i:",".join(i), train_data)
result_train = tfidf.fit_transform(converted_train)

有没有一种方法可以使用scikit-learns-TfidfVectorizer直接对这种预处理的数据执行信息检索?在

如果没有,是否可以让TfidfVectorizer执行预处理并在之后重用其预处理的数据?在


Tags: the数据lambda文本列表datais方式
1条回答
网友
1楼 · 发布于 2024-05-16 11:44:14

我自己找到了答案。我的问题是,我只是使用None作为TfidfVectorizer的标记器:

tfidf = TfidfVectorizer(tokenizer=None)

你必须使用一个只转发数据的标记器。你还必须确保向量器不会将列表转换成小写(这不起作用)。一个有效的例子是:

^{pr2}$

相关问题 更多 >