gpt4 book ai didi

python - 具有先前预处理数据的 TFIDF

转载 作者:行者123 更新时间:2023-12-01 04:38:14 25 4
gpt4 key购买 nike

我正在尝试依次使用多种信息检索技术。对于每一个,我希望以完全相同的方式对文本进行预处理。我的预处理文本以单词列表的形式提供。不幸的是 scikit-learns 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 进行预处理并在之后重用其预处理后的数据?

最佳答案

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

tfidf = TfidfVectorizer(tokenizer=None)

您必须使用仅转发数据的分词器。此外,您还必须确保矢量化器不会将列表转换为小写(这不起作用)。一个有效的例子是:

from sklearn.feature_extraction.text import TfidfVectorizer

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

tfidf = TfidfVectorizer(tokenizer=lambda i:i, lowercase=False)
result_train = tfidf.fit_transform(train_data)

关于python - 具有先前预处理数据的 TFIDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31330584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com