TF-IDF和之前未见过的术语

8

TF-IDF(词频-逆文档频率)是信息检索的基本方法。然而,它并不是一个完美的模型,当语料库中引入新术语时,它似乎会失效。那么人们如何处理查询或新文档中出现的新术语,特别是高频词汇呢?在传统的余弦匹配中,这些词汇对总匹配结果没有影响。


2
有一个相关的Facebook技术讲座,Peter Norvig在其中讨论了这个问题。在关于分词的部分(大约5:30),他实际上通过说“如果你缺少一个单词 - 如果它是一个你从未见过的单词,你必须做一点小技巧”来概述了这个问题。这暗示着这是一个已知的问题,有一个不完全平凡的解决方案,因为他没有告诉我们这个技巧是什么。 - hippietrail
2个回答

3

额,不,它不会崩溃。

假设我有两个文档,A“黄鼠狼山羊”和B“奶酪地鼠”。如果我们实际上将它们表示为向量,它们可能看起来像:

A [1,1,0,0]
B [0,0,1,1]

如果我们在索引文件中分配了这些向量,是的,当添加新术语时就会出现问题。但是诀窍在于,该向量从未存在。关键在于倒排索引

至于新术语不影响余弦匹配,这取决于你的意思。如果我用查询“marmoset kungfu”搜索我的(A,B)语料库,那么marmoset和kungfu都不存在于语料库中。因此,代表我的查询的向量将与集合中的所有文档正交,并得到一个糟糕的余弦相似度分数。但考虑到没有一个术语匹配,这似乎相当合理。


1

当你谈到“break down”时,我认为你的意思是新术语对相似度测量没有影响,因为它们在原始词汇定义的向量空间中没有任何表示。

解决这个平滑问题的一种方法是考虑将词汇表固定为较小的词汇表,并将所有出现频率低于某个阈值的单词视为属于特殊的_UNKNOWN_单词。

然而,我认为你对“break down”的定义不太清楚;你能否澄清一下你的意思?如果你能澄清这一点,也许我们可以讨论解决这些问题的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接