logo
Информационно-поисковые и информационно-справочные системы в обучении информатике

2.3.2 Второй закон Зипфа "количество - частота"

Рассматривая первый закон, Зипф установил, что разные слова входят в текст с одинаковой частотой и что частота и количество слов, входящих в текст с этой частотой, тоже связаны между собой. Если построить график, отложив по одной оси (оси Х) частоту вхождения слова, а по другой (оси Y) -количество слов в данной частоте, то получившаяся кривая будет сохранять свои параметры для всех без исключения созданных человеком текстов. Как и в предыдущем случае, это утверждение верно в пределах одного языка.

Рис. 2 Второй закон Зипфа

Однако и межъязыковые различия невелики. На каком бы языке текст ни был написан, форма кривой Зипфа останется неизменной и коэффициенты, отвечающие за наклон кривой отличаются незначительно [рис. 2]. Законы Зипфа универсальны, они применимы не только к текстам, аналогичный эффект наблюдается при рассмотрении зависимости количества городов от числа проживающих в них жителей. Характеристики популярности узлов в сети Интернет - тоже отвечают законам Зипфа. Исследования показывают, что наиболее значимые слова лежат в средней части диаграммы. Слова, которые попадаются слишком часто, в основном оказываются предлогами, местоимениями, в английском - артиклями и т.п. Редко встречающиеся слова тоже, в большинстве случаев, не имеют решающего смыслового значения.

От того, как будет выставлен диапазон значимых слов, зависит многое. Каждая поисковая система решает проблему по-своему, руководствуясь общим объемом текста, специальными словарями и т.п. Проведем эксперимент. Подвергнем абзац текста математическому анализу и попытаемся определить список значимых слов.

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

Выделим зону значимых слов. Пусть это будут слова с рангом 2, 3 и частотой 3, 2 соответственно. (Обратите внимание, как смещение или расширение зоны значимых слов влияет на их состав.)

Давайте теперь проанализируем выделенную нами область значимых слов. Не все слова, которые попали в нее, отражают смысл текста. Смысл абзаца очень точно выражают слова: «зипфа», «манускриптов», «войнича», «законам». Запрос типа: + "закон* зипфа" + "манускрипт* войнича" непременно найдет нам этот документ. Однако в область попали и слова: «на», «не», «для», «например», «это». Эти слова являются "шумом", помехой, которая затрудняет правильный выбор. "Шум" можно уменьшить путем предварительного исключения из исследуемого текста некоторых слов. Для этого создается словарь ненужных стоп-слов (словарь называется стоп-лист). Например, для английского текста стоп-словами станут термины: «the», «a», «an», «in», «to», «of», «and», «that»... и так далее. Для русского текста в стоп-лист могли бы быть включены все предлоги, частицы, личные местоимения и т. п. Наверняка попали бы и слова из нашего "шума": «на», «не», «для», «это». Есть и другие способы повысить точность оценки значимости терминов.

До сих пор мы рассматривали отдельно взятый документ, не принимая во внимание, что он входит в базу данных наряду с множеством других документов. Если представить всю базу данных как единый документ, к ней можно будет применить те же законы, что и к единичному документу. Посмотрите на список терминов в нашем примере. В одной группе находятся слова-термины «зипфа» и «не» - они входят в документ равное количество раз. Исследовав остальные документы базы данных на предмет вхождения в них этих терминов, мы, обнаружим, что «не» встречается очень часто, в то время как «зипфа» довольно редко. Вышеизложенное позволяет сделать вывод: слово «зипфа» должно стать термином, в то время как «не» следует отбросить, как ненужное слово. Чтобы избавиться от лишних слов и в тоже время поднять рейтинг значимых слов, вводят инверсную частоту термина. Значение этого параметра тем меньше, чем чаще слово встречается в документах базы данных. Вычисляют его по формуле:

Инверсная частота термина i = log (количество документов в базе данных / количество документов с термином i).

Теперь каждому термину можно присвоить весовой коэффициент, отражающий его значимость:

Вес термина i в документе j = частота термина i в документе j х инверсная частота термина i.

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

Современные способы индексирования не ограничиваются анализом перечисленных параметров текста. Поисковая машина может строить весовые коэффициенты с учетом местоположения термина внутри документа, взаимного расположения терминов, частей речи, морфологических особенностей и т.п.

В качестве терминов могут выступать не только отдельные слова, но и словосочетания. Джорж Зипф (George K. Zipf) опубликовал свои законы в 1949 году. Пять лет спустя знаменитый математик Беноит Мандлеброт (Benoit Mandlebrot) внес небольшие изменения в формулы Зипфа, добившись более точного соответствия теории практике. Без этих законов сегодня не обходится ни одна система автоматического поиска информации. Как следует из законов, математический анализ позволяет машине с хорошей точностью, без участия человека распознать суть текста. [16, с 30]