【问题标题】:Calculating IDF (as in TF-IDF) when testing?测试时计算IDF(如TF-IDF)?
【发布时间】:2012-04-23 21:22:26
【问题描述】:

据我了解,IDF 用于计算有多少文档具有该术语(有点想法)。您可以在训练集中计算 IDF(连同 TF),因为您事先拥有所有文档。但是如果我事先没有测试集并且我以顺序方式获取测试文档(比如从网络爬虫),那么在测试时我将如何计算文档中单词的 IDF ?

【问题讨论】:

    标签: text classification information-retrieval tf-idf


    【解决方案1】:

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

    【讨论】:

    • 这个答案对我来说很有意义。但是,我想知道您是否可以参考任何论文或文章?并且,我想知道是否有任何图书馆可以用来解决这个问题?
    • 这是我编辑的评论:这个答案对我来说部分有意义。但是,我想知道您是否可以参考任何论文或文章?问题是,假设你已经训练了你的模型,一旦你在测试文档中有一个新词,即使你可以使用你的大数据集计算那个词的 IDF,但你仍然会有不同数量的特征在训练和测试集中,它是行不通的。
    【解决方案2】:

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

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

    【讨论】:

    • “如果您只在索引/抓取一大堆文档后执行测试” - 不是真的。当我收到爬虫的页面时,我必须确定该页面在那一刻是相关的还是不相关的。正如您提到的那样计算另一个文档数据集的 IDF 是这种情况下的做法?
    猜你喜欢
    • 1970-01-01
    • 2017-11-14
    • 2015-04-17
    • 2020-05-11
    • 1970-01-01
    • 2021-12-15
    • 2015-05-07
    • 2016-09-03
    • 1970-01-01
    相关资源
    最近更新 更多