亚马逊的统计上不可能的短语如何运作?

ʞɔı*_*ɔıu 27 algorithm nlp platform-agnostic

"统计不可能的短语"有什么用?

根据亚马逊的说法:

Amazon.com的统计上不可能的短语,或"SIP",是Search Inside!™计划中书籍文本中最独特的短语.为了识别SIP,我们的计算机扫描搜索内部的所有书籍的文本!程序.如果他们发现相对于所有搜索内部的特定书籍中出现了很多次的短语!书,那个短语是那本书的SIP.

SIP在某本书中并不一定不太可能,但相对于Search Inside中的所有书籍而言,它们是不可能的.例如,关于税收的书籍的大多数SIP都与税收相关.但是因为我们按照不可能性得分的顺序显示SIP,所以第一个SIP将涉及税务主题,本书比其他税书更频繁地提及.对于小说作品,SIP往往是独特的单词组合,经常暗示重要的情节元素.

例如,对于Joel的第一本书,SIP是:泄漏抽象,抗锯齿文本,自己的狗食,错误计数,每日构建,错误数据库,软件时间表

一个有趣的复杂因素是这些是2或3个单词的短语.这使事情变得更有趣,因为这些短语可以相互重叠或相互包含.

dan*_*ben 17

这很像Lucene为给定搜索查询排序文档的方式.他们使用称为TF-IDF的度量,其中TF是术语频率,idf是逆文档频率.前者对文档的排名越高,查询术语在该文档中出现的越多,如果文档中的查询条件在所有文档中不常出现,则后者对文档进行排序.他们计算它的具体方式是log(文档数/带有术语的文档数) - 即该术语出现的频率的倒数.

所以在你的例子中,这些短语是相对于乔尔的书的SIP,因为它们是罕见的短语(出现在几本书中),并且在他的书中出现了多次.

编辑:回答关于2克和3克的问题,重叠无关紧要.考虑一句"我的两只狗是棕色的".在这里,2克的列表是["我的两个","两只狗","狗是","是棕色的"],3克的列表是["我的两只狗","两只狗是","狗是棕色的"].正如我在评论中提到的那样,对于N个单词流,你会得到N-1 2-gram和N-2 3-gram.因为2克只能等于其他2克,同样3克,你可以分别处理这些情况.处理2克时,每个"单词"将是2克等.


Vin*_*vic 10

他们可能正在使用tf-idf权重的变化,检测在特定书中出现很多次但在整个语料库中减去特定书籍的次数很少.对每本书重复一遍.

因此,"不可能性"与整个语料库相关,可以理解为"唯一性",或"与图书馆其他部分相比,使图书独特的原因".

当然,我只是在猜测.


BCS*_*BCS 5

作为一个起点,我会看看Markov Chains.

一种选择:

  1. 从完整索引构建文本语料库.
  2. 从一本书中构建一个文本语料库.
  3. 对于每个m到n个单词短语,找到每个语料库生成它的概率.
  4. 选择具有最高概率比的N个短语.

一个有趣的扩展是运行马尔可夫链生成器,其中权重表是全局和局部语料库之间差异的放大.这将产生作者风格特质的"漫画"(字面意思).


Ken*_*oom 5

LingPipe有一个关于如何执行此操作的教程,并且它们链接到引用.他们不讨论它背后的数学,但他们的源代码是开放的,所以你可以查看他们的源代码.

我不能说我知道亚马逊做了什么,因为他们可能保守秘密(或者至少他们只是没有打扰告诉任何人).


arr*_*rac 5

很抱歉恢复旧线程,但我在这里遇到了同样的问题,并发现有一些更新的工作可能会添加到很棒的线程中。

我觉得 SIP 对文档来说更独特,而不仅仅是具有高 TF-IDF 分数的单词。例如,在关于哈利波特的文档中,像赫敏格兰杰霍格沃茨这样的术语往往是更好的 SIP,而像魔法伦敦这样的术语则不是。TF-IDF 并不擅长做出这种区分。

我在这里遇到了一个有趣的 SIP 定义。在这项工作中,短语被建模为 n-gram,并计算它们在文档中出现的概率以识别它们的唯一性。