我正在尝试使用IDF分数在我庞大的文档库中找到有趣的短语
我基本上需要亚马逊的统计上不可能的短语,即将文件与其他文件区分开来的短语
我遇到的问题是我的数据中有一些(3,4)-grams具有超高idf实际上由组件unigrams和bigrams组成,它们的idf真的很低。
例如,“你从未尝试过”有一个非常高的idf,而每个组件unigrams都有很低的idf ..
我需要提出一个函数,它可以记录n-gram及其所有组件(nk)-grams的文档频率,并返回一个更有意义的度量,衡量这个短语将父文档与其余文档区分开来的程度。 />
如果我正在处理概率,我会尝试插值或退避模型。我不确定这些模型可以很好地运用哪些假设/直觉,以及它们对IDF分数的表现如何。
有谁有更好的想法?
答案 0 :(得分:4)
我认为“你从未尝试过”是一个你不想提取的短语,但它具有很高的IDF。问题在于,将会有大量的n-gram只出现在一个文档中,因此IDF得分最高。
NLP中有很多平滑技术。本文[Chen&Goodman]对其中许多内容进行了很好的总结。特别是,您可能会对 Kneser-Ney 平滑算法感兴趣,该算法以您建议的方式工作(退回到较低的n-gram长度)。
这些方法通常用于语言建模的任务,即在给定非常大的语言语料库的情况下估计n-gram发生的概率。我真的不知道如何将它们与IDF分数整合,或者即使这真的是你想做的事情。