2012-04-11 34 views
4

据我所知,IDF被用来计算有多少文件有这个词(只是这个想法)。由于您事先拥有所有文档,因此可以在训练集中计算IDF(以及TF)。但是如果我事先没有测试集并且以顺序的方式获取测试文档(例如来自网络爬行器),那么如何在测试文档时计算文档中文字的IDF ?测试时计算IDF(如在TF-IDF中)?

回答

2

对于这种状态,如果你的数据集足够大,你可以使用IDF的训练集。在测试阶段,如果新术语是在训练集中使用训练的IDF,并且如果该术语是新的,则使用训练集文档的数量来计算IDF。 对于某些目的,您可以使用平滑方法获得更好的结果。

+0

这个答案对我有意义。但是,我想知道是否有任何纸张或文章可供您参考?而且,我想知道是否有任何图书馆可以用于此事? – Pedram 2017-06-23 02:17:08

+0

这是我编辑的评论:这个答案部分对我有意义。但是,我想知道是否有任何纸张或文章可供您参考?问题是,假设你已经训练了你的模型,一旦你在测试文档中有一个新的单词,即使你可以使用你的大数据集计算该单词的IDF,但是你仍然会有不同数量的特征在训练和测试集中,它不会工作。 – Pedram 2017-06-23 02:23:09

0

如果您只在索引/抓取大量文档之后执行测试,则可以在抓取完成后计算IDF。遇到新文档或新术语时,您不必计算IDF。当你需要做一些TD-IDF或其他计算时,你可以随时进行计算。

如果这还不够,出于某种原因,您仍然可以使用其他文档数据集的IDF,最好使用相同类型的文档。

+0

“如果您只在索引/抓取大量文档之后执行测试” - 并非如此。当我通过抓取工具收到页面时,我必须决定该页面在那一刻是相关还是不相关。正如你所提到的计算另一个文件数据集的IDF是否在这种情况下的做法? – KillBill 2012-04-16 14:16:57