TF-IDF(词频-逆文档频率)是信息检索的基本方法。然而,它并不是一个完美的模型,当语料库中引入新术语时,它似乎会失效。那么人们如何处理查询或新文档中出现的新术语,特别是高频词汇呢?在传统的余弦匹配中,这些词汇对总匹配结果没有影响。
TF-IDF(词频-逆文档频率)是信息检索的基本方法。然而,它并不是一个完美的模型,当语料库中引入新术语时,它似乎会失效。那么人们如何处理查询或新文档中出现的新术语,特别是高频词汇呢?在传统的余弦匹配中,这些词汇对总匹配结果没有影响。
额,不,它不会崩溃。
假设我有两个文档,A“黄鼠狼山羊”和B“奶酪地鼠”。如果我们实际上将它们表示为向量,它们可能看起来像:
A [1,1,0,0]
B [0,0,1,1]
如果我们在索引文件中分配了这些向量,是的,当添加新术语时就会出现问题。但是诀窍在于,该向量从未存在。关键在于倒排索引。
至于新术语不影响余弦匹配,这取决于你的意思。如果我用查询“marmoset kungfu”搜索我的(A,B)语料库,那么marmoset和kungfu都不存在于语料库中。因此,代表我的查询的向量将与集合中的所有文档正交,并得到一个糟糕的余弦相似度分数。但考虑到没有一个术语匹配,这似乎相当合理。
当你谈到“break down”时,我认为你的意思是新术语对相似度测量没有影响,因为它们在原始词汇定义的向量空间中没有任何表示。
解决这个平滑问题的一种方法是考虑将词汇表固定为较小的词汇表,并将所有出现频率低于某个阈值的单词视为属于特殊的_UNKNOWN_
单词。
然而,我认为你对“break down”的定义不太清楚;你能否澄清一下你的意思?如果你能澄清这一点,也许我们可以讨论解决这些问题的方法。