Вуль Владимир Абрамович
Шрифт:
Известный математик Дж. Зипф (G.K. Zipf) показал, что все созданные человеком тексты подчиняются некоторым общим закономерностям. Он сформулировал в 1946—1949 годах три таких закона. Рассмотрим формулировки и смысл этих законов. Если взять любой текст, то можно подсчитать, какие слова применяются в нем и сколько раз они встречаются. Количество повторов слова в тексте можно назвать частотой этого слова. Чаще всего встречающемуся слову можно приписать ранг 1, следующему по частоте – ранг 2 и т. д. Если несколько разных слов имеют одинаковые частоты, то учитывается только одно из них. Если разделить частоту повторения слова f на общее количество значащих слов в тексте S, то получим относительную частоту или вероятность встречи этого слова в тексте.
Первый закон Зипфа гласит, что произведение частоты или вероятности встречи слова в тексте на его ранг приблизительно постоянно для любых текстов определенного языка. Сказанное иллюстрируется рис. 8.2, где представлена связь частоты слова в тексте f и его ранга R. Кривая на рис. 8.2 близка к гиперболе вида
f = Const / R,
где Const – некоторая константа.
Следовательно, по первому закону Зипфа, если самое распространенное слово встречается в тексте, например, 100 раз, то следующее по частоте слово вряд ли встретится 99 раз. Частота вхождения второго по популярности слова, с высокой долей вероятности, окажется на уровне 50. (Разумеется, нужно понимать, что в статистике ничего абсолютно точного нет: 50 или 52 – не так уж и важно.) Значение константы в разных языках отличается, но внутри одной языковой группы это значение остается неизменным, для любого текста. Так, например, для английских текстов константа Зипфа равна приблизительно 1470. Для русского языка эта константа близка к 960. Обсуждая первый закон, мы умышленно отказались от рассмотрения того факта, что различные слова могут входить в текст с одинаковой частотой. Дж. Зипф установил, что частота и количество слов, входящих в текст с этой частотой, также связаны между собой определенной зависимостью. Если построить график, отложив по оси абсцисс частоту вхождения слова, а по оси ординат – количество слов, характеризуемых данной частотой, то получившаяся кривая будет сохранять свои параметры для всех без исключения созданных человеком текстов в пределах одного языка. Однако и межъязыковые различия невелики. На каком бы языке текст ни был написан, форма этой кривой Зипфа останется неизменной. Могут незначительно отличаться лишь коэффициенты, отвечающие за наклон кривой (рис. 8.3). Если график построен в полулогарифмическом масштабе, то он состоит из двух отрезков прямых линий с небольшим криволинейным участком между ними. Сказанное иллюстрируется данными рис. 8.3, на котором показаны кривые для французского (кривая 1), английского (кривая 2) и русского (кривая 3) языков.
Полученные Дж. Зипфом результаты могут успешно использоваться на практике для выделения значащих слов в тексте. Все значащие слова для любого текста размещаются в области средних значений ранга и частоты (выделенная область, см. рис. 8.2). Действительно, самые часто встречающиеся слова, ранг которых изменяется от 1 до 4—5, обычно относятся к разряду вспомогательных, а самые редкие – обычно также не имеют решающего смыслового значения для данного текста. От того, как будет задан диапазон значимых слов, зависит многое. Если сделать его слишком широким – нужные термины потонут в море вспомогательных слов. Установив же чрезмерно узкий диапазон, мы рискуем потерять некоторые смысловые термины.
Интересно отметить, что законы Зипфа весьма универсальны. Они применимы не только к текстам, но и ко многим другим статистическим закономерностям, определяемым деятельностью человека. В аналогичную форму выливается, например, зависимость количества городов от числа проживающих в них жителей. Характеристики популярности узлов в сети Интернет – также соответствуют законам Зипфа.
До сих пор рассматривались отдельно взятые документы. Однако каждый такой документ является частью совокупности изданий. Эта совокупность, в частности, может быть реализована в виде базы изданий или документов. Всю эту базу или ее часть, включающую документы одной и той же тематики или направления, можно представить в виде одного, очень большого документа. К этому составному документу также применимы законы Зипфа. Использование понятия "составной документ" позволяет повысить качество выборки значащих слов (или их рейтинг) путем введения нового понятия инверсная частота термина, которая характеризует вес или значимость этого термина. Этот параметр позволяет снизить опасность попадания малозначащих терминов в состав выборки. Инверсная частота i определяется как логарифм отношения общего количества рассматриваемых документов n к числу документов, содержащих данный термин m (под термином может пониматься не только отдельное слово, но и единое по смыслу словосочетание), т. е.i = log2(n/m). (8.1)
С учетом инверсной частоты вес или значимость термина в каждом документе определится выражением
z = f × i/S, (8.2)
где z – вес или значимость термина в издании; f – частота повторения термина в этом издании; i – инверсная частота этого термина в группе издании; S – количество значащих слов в определенном издании. Кстати, вес или значимость одного и того же термина в различных изданиях обычно существенно отличается друг от друга. Роль инверсной частоты в приведенной формуле состоит в том, чтобы уменьшить вес слов и устойчивых словосочетаний, которые выполняют вспомогательные функции в документе, обеспечивая стиль и определенный характер повествования. Для случайных слов и сочетаний мала частота повторения терминов f, а для стоп-слов и вспомогательных понятий стремится к нулю инверсная частота i. Таким образом, вес или значимость термина z позволяет выделить именно ключевые слова и сочетания. Этот же параметр позволяет также ранжировать значащие слова, т. е. построить их последовательность в порядке значимости.
Законы Зипфа используются при пополнении ссылочной базы данных на поисковых серверах, причем весовые коэффициенты основаны не только на весе каждого термина, но могут учитывать и то, какой частью речи является термин, а также его местоположение внутри документа, морфологические особенности и пр. Они же применяются для оценки релевантности найденного в процессе поиска документа, величина которой изменяется от 0 до 1. Релевантность оценивается на основе того, какое количество слов из представленных в поисковом выражении содержится в найденном документе, а также веса каждого из таких слов, представленных в документе.
Дж. Зипф представил свои законы в 1949 году. Позднее они были уточнены на основе ряда практических исследований известным математиком Бенуа Мандельбротом (Benoit Mandlebrot). В настоящее время именно эти законы легли в основу алгоритмов автоматического распознавания текста и различных автоматических поисковых стратегий, некоторые из которых рассмотрены в данной книге.8.3. Автоматизированный анализ текстовой информации с помощью программ-экстракторов
Мы уже несколько раз отмечали, что для любого осмысленного поиска в глобальной сети необходимо предварительно определить перечень ключевых слов, на основании которого затем формулируется запрос. Откуда взять такой текст-источник? Обычно имеется некая информация, на основе которой возник интерес к определенной проблеме. Это может быть научная статья, информационное сообщение, заметка или Web-страница. Если ничего из перечисленного не существует, то следует самому попытаться сформулировать задачу в виде небольшого текстового реферата.
Далее необходимо проанализировать текст-источник на предмет обнаружения в нем основных смысловых терминов или ключевых слов. Как было показано в предшествующем разделе, процесс определения веса или значимости термина в издании легко алгоритмизируется на основе законов Зипфа. Чтобы упростить себе задачу можно воспользоваться одной из простых программ, определяющих частоту, с которой каждое слово встречается в тексте. В частности, можно воспользоваться программой MTAS (файл mtasprog.exe), URL которой www.sas.upenn.edu/~bkat/dwnld.htm . Получив с помощью программы таблицу частот отдельных слов, выберем от 10 до 20 из них, частоты которых лежат посредине частотного диапазона. Если в список попадут отдельные слова, которые не могут трактоваться как термины, то в этом нет ничего плохого – в процессе поиска они могут оказаться полезными. По существу, вы вручную выполнили работу простой программы-экстрактора, т. е. осуществили синтаксический анализ текста и извлечение из него значащих слов и выражений. Также вручную, используя формулы (8.1) и (8.2), можно ранжировать извлеченные из текста ключевые слова и выражения, т. е. присвоить каждому из них определенный вес.
Естественно, что обработка небольших текстов, размеры которых не превышают половины страницы, может быть выполнена вручную по описанной выше методике. Однако для анализа больших работ желательно автоматизировать не только извлечение ключевых слов и выражений и их ранжирование, но и морфологический и синтаксический анализ текста. Именно для этой цели используются программы-экстракторы, рассмотрению которых посвящены три последующих раздела.
8.3.1. Извлечение значащих слов в редакторах MS Word