据我所知,IDF用于计算有多少文档包含该术语(类似于概念)。您可以在训练集中计算IDF(以及TF),因为您已经拥有所有文档。但是,如果我没有预先准备测试集,并且我正在按顺序获取测试文档(例如来自网络爬虫),那么当进行测试时,我如何计算文档中单词的IDF值?
据我所知,IDF用于计算有多少文档包含该术语(类似于概念)。您可以在训练集中计算IDF(以及TF),因为您已经拥有所有文档。但是,如果我没有预先准备测试集,并且我正在按顺序获取测试文档(例如来自网络爬虫),那么当进行测试时,我如何计算文档中单词的IDF值?
如果您的数据集足够大,您可以仅使用训练集来计算IDF。在测试阶段,如果新词出现在训练集中,则使用训练集的IDF值。如果该词是新词,则使用训练集文档数量来计算IDF。 为了获得更好的结果,有些情况下可以使用平滑方法。
如果你只在索引/爬取了一堆文档之后进行测试,那么你可以在完成爬取后计算IDF。当你遇到新文档或新术语时,你不必计算IDF。你可以在需要进行一些TD-IDF或其他计算时即时计算它。
如果这还不够,出于某种原因,你仍然可以使用另一个文件数据集的IDF,最好是与相同类型的文件。