Как работает «Статистически невероятные фразы» Amazon? - PullRequest
26 голосов
/ 06 января 2010

Как работает что-то вроде Статистически Невероятных Фраз?

Согласно Амазонке:

Статистически невероятный Amazon.com Фразы, или «глотки», являются наиболее Отличительные фразы в тексте книги в программе Search Inside! ™. Чтобы идентифицировать SIP, наши компьютеры сканируют текст всех книг в Поиске Внутри! программа. Если они находят фразу это происходит большое количество раз в конкретная книга по отношению ко всем Поиск внутри! книги, эта фраза SIP в этой книге.

SIP не обязательно невероятны в определенной книге, но они невероятно по отношению ко всем книгам в Ищите внутри! Например, большинство SIP К книге по налогам относятся налоги. Но потому что мы показываем SIP в порядке их оценка невероятности, Первые SIP будут на темы налогообложения, которые эта книга упоминает чаще, чем другие налоговые книги. Для художественных произведений, ГЛОТКИ имеют тенденцию быть отличительным словом комбинации, которые часто намекают на важные элементы сюжета.

Например, для первой книги Джоэла, SIP: утечка абстракций, сглаженный текст, собачья еда, количество ошибок, ежедневные сборки, база данных ошибок, расписания программ

Одним интересным осложнением является то, что это фразы из 2 или 3 слов. Это делает вещи немного интереснее, потому что эти фразы могут накладываться друг на друга или содержать друг друга.

Ответы [ 6 ]

17 голосов
/ 06 января 2010

Это очень похоже на то, как Lucene ранжирует документы по заданному поисковому запросу. Они используют метрику, называемую TF-IDF, где TF - это термин «частота», а «idf» - обратная частота документа. Первый ранжирует документ тем выше, чем больше терминов запроса появляются в этом документе, а второй ранжирует документ тем выше, если в нем есть термины из запроса, которые встречаются нечасто во всех документах. Конкретным способом их вычисления является журнал (количество документов / количество документов с термином), т. Е. Обратная частота появления термина.

Итак, в вашем примере эти фразы являются SIP-файлами относительно книги Джоэла, потому что они являются редкими фразами (встречаются в нескольких книгах) и встречаются в его книге несколько раз.

Редактировать : в ответ на вопрос о 2 и 3 граммах перекрытие не имеет значения. Рассмотрим предложение «мои две собаки коричневые». Здесь список из 2 граммов - [«мои двое», «две собаки», «собаки есть», «коричневые»], а список из 3 граммов - [«мои две собаки», «две собаки ", собаки коричневые"]. Как я уже упоминал в своем комментарии, с перекрытием вы получаете N-1 2 грамма и N-2 3 грамма за поток из N слов. Поскольку 2 грамма могут равняться только другим 2 граммам, а также 3 граммам, вы можете обрабатывать каждый из этих случаев отдельно. При обработке 2 грамма каждое «слово» будет 2 граммом и т. Д.

10 голосов
/ 06 января 2010

Возможно, они используют вариацию веса tf-idf , обнаруживая фразы, которые встречаются много раз в конкретной книге, но несколько раз во всем корпусе минус конкретная книга. Повторите для каждой книги.

Таким образом, «невероятность» относится ко всему корпусу и может пониматься как «уникальность» или «то, что делает книгу уникальной по сравнению с остальной частью библиотеки».

Конечно, я просто догадываюсь.

5 голосов
/ 13 января 2010

LingPipe имеет учебник о том, как это сделать, и они ссылаются на ссылки. Они не обсуждают математику за этим, но их исходный код открыт, так что вы можете посмотреть их исходный код.

Не могу сказать, что знаю, что делает Amazon, потому что они, вероятно, держат это в секрете (или, по крайней мере, они просто не удосужились никому рассказать).

5 голосов
/ 06 января 2010

В качестве отправной точки я бы посмотрел на Марковские цепи .

Один вариант:

  1. создание текстового корпуса из полного индекса.
  2. создать текстовый корпус из одной книги.
  3. для каждой фразы из m в n слов найдите вероятность того, что каждый корпус будет генерировать ее.
  4. выберите N фраз с наибольшим отношением вероятностей.

Интересным расширением будет запуск генератора цепей Маркова, где ваша таблица весов является увеличением разницы между глобальным и локальным корпусом. Это породило бы «карикатуру» (в буквальном смысле) стилистических особенностей автора.

3 голосов
/ 06 июня 2012

Извините за возрождение старого потока, но я попал сюда по тому же вопросу и обнаружил, что есть некоторые более новые работы, которые могут добавить к большому потоку.

Мне кажется, что SIP более уникальны для документа, чем просто слова с высокими показателями TF-IDF. Например, в документе о Гарри Поттере такие термины, как Гермиона Грейнджер и Хогвартс , как правило, лучше SIP, где такие термины, как magic и Лондон нет. TF-IDF не очень хорош в проведении этого различия.

Я наткнулся на интересное определение SIP здесь . В этой работе фразы смоделированы как n-граммы, и их вероятность появления в документе вычисляется для определения их уникальности.

1 голос
/ 06 января 2010

Я уверен, что это комбинация SIP, которые идентифицируют книгу как уникальную. В вашем примере очень редко, почти невозможно, чтобы в другой книге были «дырявые абстракции» и «собственный корм для собак» в той же книге.

Я, однако, делаю здесь предположение, поскольку точно не знаю.

...