亚马逊的“统计上不太可能的短语”是如何工作的?

29

类似于“统计不太可能短语”是如何工作的?

根据亚马逊:

亚马逊的“统计不太可能短语”(Statistically Improbable Phrases,SIPs)是“Search Inside!”计划中书籍文本中最具特色的短语。为了识别SIPs,我们的计算机会扫描“Search Inside!”计划中所有书籍的文本。如果他们发现一个短语在特定书籍中相对于所有“Search Inside!”书籍出现的次数很多,那么该短语就是该书籍的SIP。

SIPs在特定书籍内不一定是不可能的,但它们相对于所有“Search Inside!”中的书籍来说是不太可能的。例如,关于税收的书籍中的大多数SIP都与税收相关。但由于我们按照它们的不太可能得分显示SIPs,因此第一个SIP将是这本书提到比其他税收书籍更频繁的税收主题。对于小说作品,SIPs倾向于是独特的单词组合,通常暗示重要情节元素。

例如,对于Joel的第一本书,SIPs包括:leaky abstractions,antialiased text,own dog food,bug count,daily builds,bug database,software schedules。

有趣的是,这些短语通常只由2或3个单词组成。这使得事情变得更加有趣,因为这些短语可以重叠或包含彼此。

6个回答

18

这很像Lucene为给定搜索查询排名文档的方法。他们使用一种称为TF-IDF的度量标准,其中TF是项频率,IDF是逆文档频率。前者在文档中出现查询词越多,文档排名就越高,后者则在查询中具有罕见词汇的文档中排名更高。他们计算它的特定方法是log(文档数/包含该词的文档数) - 即该术语出现频率的倒数。

因此,在您的示例中,相对于Joel的书籍,这些短语是SIP,因为它们是罕见的短语(在少数书中出现),并且它们在他的书中多次出现。

编辑:针对2-gram和3-gram的问题,重叠并不重要。考虑句子“我的两只狗是棕色的”。 在这里,2-gram列表是[“my two”,“two dogs”,“dogs are”,“are brown”],而3-gram列表是[“my two dogs”,“two dogs are”,“dogs are brown”]。如我在评论中提到的那样,对于N个单词的流,带有重叠的2-gram会得到N-1个2-gram和N-2个3-gram。因为2-gram只能等于其他2-gram,同理适用于3-gram,所以可以分别处理每种情况。当处理2-gram时,每个“单词”都将是一个2-gram,等等。


1
不过,这有点棘手,因为短语可能由2或3个单词组成,这些单词可能重叠或包含彼此。tf-idf通常仅用单个术语来描述。 - ʞɔıu
1
我不确定这是否很重要,特别是如果它仅限于长度为3或更短的短语。对于一个由N个标记组成的文本流,您将拥有N-1个二元组和N-1个三元组。当然,一个二元组只会等于另一个二元组,同样,对于三元组也是如此,因此您可以像计算单词一样快速地计算二元组和三元组的IDF值。 - danben
@ʞɔıu:通常用单个术语来描述,但没有必要这样应用。这就是为什么我在我的答案中提到了“一个变体”。danben的解释已经涵盖了它。 - Vinko Vrsalovic
1
2-gram和3-gram之间可能存在重叠,这该怎么办?2-gram和3-gram是否需要不同的idf阈值? - ʞɔıu
1
你有具体的问题吗?我很乐意进一步解释,但我不知道你不明白的是什么。 - danben

12
他们可能在使用tf-idf权重的变体,检测在特定书籍中出现次数很高但在整个语料库减去特定书籍后出现次数较少的短语。对每本书都要重复此操作。
因此,“不可能性”是相对于整个语料库的,并且可以理解为“独特性”或“与图书馆其余部分相比使一本书独特的因素”。
当然,这只是我的猜测。

6
LingPipe有一个关于如何做这个的tutorial,并且他们链接到参考资料。他们没有讨论背后的数学,但是他们的源代码是开放的,所以你可以查看他们的源代码。 我不能说我知道亚马逊在做什么,因为他们可能会保密(或者至少他们没有告诉任何人)。

5
作为起点,你可以看一下马尔科夫链
一个选项:
1. 从完整索引中建立文本语料库。 2. 从单本书构建文本语料库。 3. 对于每个m到n个词的短语,找到每个语料库生成它的概率。 4. 选择N个具有最高概率比率的短语。
一个有趣的扩展是运行一个马尔可夫链生成器,其中权重表是全局和本地语料库之间差异的放大版。这将生成作者风格习惯的“漫画化”版本。

很有趣的是看看这与上面的Lucene方法相比如何。 - Kevin
我怀疑,如果语料库使用的窗口至少与所考虑的短语长度相同,则它可能是等价的。 - BCS

5

很抱歉翻出了一个老帖子,但我因同样的问题来到这里,并发现有一些新的工作可能会对这个伟大的主题有所补充。

我认为SIP(重要短语)比仅仅具有高TF-IDF得分的单词更适用于文档。例如,在关于哈利·波特的文档中,像赫敏·格兰杰霍格沃茨这样的术语往往是更好的SIP,而像魔法伦敦这样的术语则不是。TF-IDF并不能很好地进行区分。

我在这里发现了一个有趣的SIP定义。在这项工作中,短语被建模为n-grams,并计算它们在文档中出现的概率以确定它们的独特性。


1

我相当确定它是SIP的组合,将该书标识为独特的。在你的例子中,几乎不可能有另一本书同时具有“leaky abstractions”和“own dog food”。

但我在这里做一个假设,因为我并不确定。


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