Как я могу найти только "интересные" слова из корпуса?

Я разбираю предложения. Я хочу знать соответствующий контент каждого предложения, который определяется как "полу-уникальные слова" по отношению к остальной части корпуса. Нечто похожее на "статистически невероятные фразы" Амазонки, которые, как представляется, (часто) передают характер книги через нечетные строки слов.

Мой первый проход состоял в том, чтобы начать составлять общий список слов. Это выбивает простые, такие как a, the, from и т.д. Очевидно, что этот список довольно длинный.

Одна идея состоит в том, чтобы сгенерировать этот список: создать гистограмму частоты слов корпуса и отбросить верхние 10% или что-то подобное (IE the происходит 700 раз, from 600 раз, но micropayments только 50, который находится под отсечкой и, следовательно, имеет значение).

Еще один алгоритм, который я только что узнал из Hacker News сегодня, - это Tf idf, который выглядит так, как будто это может быть полезно.

Какие другие подходы будут работать лучше, чем мои две идеи?

Ответ 1

Взгляните на в этой статье (Уровень статистики слов: поиск ключевых слов в литературных текстах и ​​символических последовательностях, опубликованных в Phys. Rev. E).

Изображение на первой странице вместе с его заголовком объясняет важнейшее наблюдение. В "Дон Кихоте" слова "но" и "Кихот" появляются с одинаковыми частотами, но их спектры совершенно разные (вхождения "Кихота" группируются, а вхождения "но" более равномерно распределены). Поэтому "Кихот" можно классифицировать как интересное слово (ключевое слово), в то время как "но" игнорируется.

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

Ответ 2

Я думаю, что Амазонка называет "Statiscal Improbable Phrases" - это слова, которые невероятны в отношении их огромного массива данных. Фактически, даже если слово повторяется 1000 раз в данной книге A, если эта книга является единственным местом, где она появляется, то это SIP, потому что вероятность того, что она появляется в любой заданной книге, является zilch (потому что это специфические для книги A). Вы не можете дублировать это богатство данных, чтобы сравнивать информацию, если вы не работаете с большим количеством данных.

Сколько данных? Хорошо, если вы анализируете литературные тексты, то вы захотите загрузить и обработать пару тысяч книг из Гутенберга. Но если вы анализируете юридические тексты, то вам придется специально подпитывать содержание юридических книг.

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

Например, hapax legomenon, также известный в области сетевого анализа как 1-мышь, может представлять особый интерес. Это слова, которые появляются только один раз в данном тексте. Например, у Джеймса Джойса Улисса эти слова появляются только один раз: постэксильные, коррозионные, романии, макрокосм, диакона, сжимаемость, аунги. Это не статистические невероятные фразы (как и "Леопольд Блум" ), поэтому они не характеризуют книгу. Но они являются терминами, которые достаточно редки, что они появляются только один раз в этом выражении автора, поэтому вы можете считать, что они каким-то образом характеризуют его выражение. Это слова, которые, в отличие от обычных слов типа "the", "color", "bad" и т.д., Он явно стремился использовать.

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

Ответ 3

TF-IDF - это один из способов. Если вы хотите поговорить о предложениях, а не о словах, в дополнение к превосходным ссылкам выше, простую схему:

Создайте цепочку markov из большого массива образцов. В двух словах вы строите цепочку марков, записывая частоту каждого n-кортежа в тексте ввода. Например, предложение "это тест" с 3-мя корнями будет (это, есть, а), (есть, а, тест). Затем вы группируете каждый n-кортеж на первые n-1 термины, позволяя вам ответить на вопрос "учитывая предыдущие n-1 слова, какова вероятность следующего слова?"

Теперь, для каждого предложения во входном документе, пересечь цепь Маркова. Вычислите вероятность видеть предложение, умножив все вероятности, с которыми вы сталкиваетесь, когда вы перемещаете цепочку вместе. Это дает вам оценку того, как "вероятно" это предложение во входном корпусе. Вы можете умножить эту вероятность на длину предложения, поскольку более длительные предложения менее вероятны, статистически.

Теперь вы связали с каждым предложением в своем вводе вероятность. Выберите наименее вероятные предложения - это "интересные", для некоторого определения интересного.