.RU

Подготовка частотных словарей и конкордансов на компьютере


Подготовка частотных словарей и конкордансов на компьютере

(пособие для филологов)


Общие рассуждения

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

Каковы бы ни были цели исследования, очень часто в начале работы бывает полезно получить самые первые и самые "дешевые" (речь идет о текстах на машинных носителях) сведения о тексте: частотный словник, словоуказатель, конкорданс. Статистические сведения нужны в типологических и исторических исследованиях, при изучении функциональных и авторских стилей, создании лингвистического обеспечения информационно-поисковых систем и систем автоматического перевода, для подготовки учебных словарей. Словоуказатели, в которых для каждого слова указаны адреса появления этого слова в тексте, могут оказать существенную помощь в создании и пополнении словарной картотеки, при изучении древних памятников письменности и в других областях языкознания и литературоведения. Конкордансы, где приведены не только адреса, но и сами отрывки текста, в которых встретилось слово, помогают вести исследования в области стилистики, служат основой для работ, связанных с изучением семантики слова, его морфологических свойств и синтаксических связей. Конкордансы необходимы для коррекции значений слов в толковых словарях, при разработке алгоритмов разрешения многозначности в системах автоматической обработки текстов. (Библиографию по этому поводу можно найти в [3], с. 6-7.)

Здесь, пожалуй, стоит сделать только одно замечание, предназначенное для филологов, впервые начинающих осваивать компьютерную премудрость. Им надо четко усвоить одну простую истину: компьютер не может создавать новую информацию из ничего, он может только перерабатывать имеющиеся данные, опираясь на формальные параметры - зато может делать это быстро, не утомляясь от монотонной и кропотливой работы. Он может легко и безошибочно проделывать скрупулезные и сложные манипуляции, утомительные, а порой и невозможные (при больших объемах материала) для человека, может проанализировать имеющуюся информацию и даже сделать какой-то вывод (опираясь при этом только на формальные признаки), но он не может воспользоваться той информацией, которую вы ему не сообщили, даже если она и кажется вам совершенно очевидной. Если он может осуществить простейший морфологический анализ и преобразовать словоформу в каноническую, словарную форму (лемму), то это только потому, что существует соответствующая программа и соответствующий словарь, в которых тем или иным способом записаны необходимые для этого сведения. Иначе говоря, для компьютера все тексты - это "глокая куздра", он ничего не знает про те слова, которых нет в словаре. Казалось бы, чего проще - определить конец предложения: точка (или другой знак конца предложения) и далее слово с большой буквы. Но такой, например, фрагмент текста, как"им. Октябрьской революции", можно проинтерпретировать по-разному, а как именно - может решить разве что синтаксический анализ. Компьютер никогда не заменит вам голову, но может здорово помочь вам, освободив от рутинной работы, а иногда сделает и то, на что вы не отважились бы при ручной обработке большого текста.

Вернемся, однако, к проблеме, заявленной в названии. Итак, вы решились: словари из текстов - только на компьютере. (Здесь не лишне будет напомнить, что еще в 1969 году в Scholary Publishing появилась статья под символическим названием: The Death of the Handmade Concordance. Автор - J. Raben.). Что для этого нужно? Первое - компьютер. Второе - система (программное обеспечение), которая приспособлена для этого (не вам же этим заниматься – это не ваша стихия). Третье - сами тексты, которые каким-то способом должны оказаться в компьютере.

Начнем с первого - какой должен быть компьютер. Филологу всегда нужен компьютер с большой памятью на жестком магнитном диске (на компьютерном жаргоне называемом "винчестер"). Чем больше ваш текст, тем больше вам надо места на винчестере. Для сколько-нибудь серьезной работы совершенно не приемлемы компьютеры без жесткого диска. Надо учитывать и то, что время обработки тоже зависит от объема текста: чем больше объем, тем дольше обработка. Зато чем выше скорость (тактовая частота) компьютера, тем, естественно, быстрее обработка. Но этот параметр все же не такой критический, как емкость винчестера. К сожалению, филологу чаще всего приходится довольствоваться тем, что осталось от "старшего брата" - естественника, и особенно привередничать не приходится, но запомните, что без достаточного пространства на жестком диске работа будет или затруднена, или совсем невозможна.

Второе - программное обеспечение для обработки текста. Там, где рядом с филологом работает программист, первый может сказать второму: "Слушай, друг, у меня есть текст, устроенный так-то и так-то. Мне из него надо получить то-то и то-то. Можешь это сделать?" Если филолог сможет описать все достаточно формально и не будет требовать невозможного, а программист будет хотя бы немного знаком с лингвистической терминологией и доброжелательно расположен к филологу (или же получит на это задание приказ начальника), то в результате появится программа или комплекс программ, который обработает данный текст и выдаст то, что нужно. Но если ваши входные данные (текст) хоть немного изменятся или вам потребуются другие результаты, то вам опять придется идти на поклон к программисту, а ему - вносить изменения в программы или писать новые. Кроме того, этими программами вряд ли сможет воспользоваться ваш коллега, у которого будут другие запросы. Однако такая ситуация - не столь частое явление. К тому же создано достаточно много универсальных систем обработки текстов, допускающих варьирование (в определенных границах, разумеется) форматов как входных текстов, так и выходных результатов. Очень коротко становимся на некоторых из них.

OCP - Oxford Concordance Program. Созданная в 1980 году, эта система широко использовалась для подготовки конкордансов литературных произведений. Ее достоинством является большой набор возможностей, предоставляемых пользователям для описания формата и структуры обрабатываемых текстов, параметров обработки и форм выдачи результатов. В тексте могут быть выделены внетекстовые включения (способ выделения задает пользователь). Предусмотрена возможность отбирать для обработки определенные порции исходного текста. В описание текста можно включить задание алфавита и знаков препинания, если они отличаются от стандарта (для английского языка). Результатами обработки являются: статистика текста, частотный словник, словоуказатель, конкорданс. Критерием отбора слов в словник может быть длина слова, частота, список слов (возможно, маскированных, т.е. заданных фрагментарно). Так же задаются и те слова, которые исключаются из словника. По заданию пользователя словники будут отсортированы по алфавиту, по частоте, по длине слова. Отсортировать можно и контексты: по левой (до ключевого слова) или по правой (после него) его части, по адресам. Размер контекста задается в словах, символах или граничных маркерах. Система ориентирована в большой степени на выдачу результата в печатном виде, для чего в ней предусмотрено множество параметров, задающих формат печати. Некоторым неудобством можно считать то, что для получения частотного словника, словоуказателя или конкорданса по другому запросу всю обработку исходного текста надо производить заново (существуют другие решения этого вопроса).

Во многом похожа на OCP другая система - TEXTPACK, разработанная в Маннгейме в 1986 году. Существенными для пользователя особенностями этой системы по сравнению с первой являются: первое - весьма ограниченные возможности задания длины контекста для конкорданса (что минус), второе - наличие программы сравнения словников двух текстов, которая выдает общий список с указанием разности частот одинаковых слов (что плюс).

Разработанная в Московском государственном университете в 1987 году Тексто-ориентированная компонента Автоматизированной лексикографической системы УНИЛЕКС (ТО-компонента АЛС УНИЛЕКС) выгодно отличалась от упомянутых выше возможностью обрабатывать не только одноязычные, но и параллельные тексты, а также наличием программы лемматизации (приведения словоформ к словарному виду) для русского языка. Кроме того конкорданс можно было получать не только в пакетном режиме, но и в диалоге (Автоматический конкорданс). Уступала же эта система двум предыдущим отсутствием красивой печати результата. Мы говорим о ней в прошедшем времени, потому что функционировала она на так называемых "больших машинах" типа ЕС ЭВМ, которые к настоящему времени почти полностью "вымерли". Поэтому всю систему пришлось создавать заново на персональных компьютерах, но об этом ниже. Однако она успела славно потрудиться. С ее помощью были созданы частотные словари и конкордансы по русской разговорной речи, русскому фольклору, нескольким драмам М.Горького, стихам Б.Пастернака, селькупско-русским параллельным текстам, литературоведческим текстам, некоторым текстам А.Платонова ([3], с.16-21).

Еще один замечательный пакет программ - ETC - предназначен для подготовки и использования автоматических конкордансов на персональных компьютерах. И хотя в нем есть возможность выдавать результаты на печать, но основная его функция - работа в диалоге.Как и во всех других системах, там есть возможность делать запрос в виде слова, сочетания слова, частей слова, отличие от системы OCP в том, что текст обрабатывается однажды, а далее все операции производятся над словником, содержащим ссылки на текст. Впрочем, так же делается и в большинстве остальных систем. Выигрыш в данном случае - время. Но за все приходится платить: словники с адресами занимают место на диске, причем, больше, чем исходный текст. Еще одно отличие пакета ETC - возможность создавать в нем словарные статьи, т.е. приписывать словам из словника какую-либо информацию, и формировать тезаурус - группировать элементы словника по вашему усмотрению и работать с группами слов.

В Институте русского языка РАН создана система УНИЛЕКС-Т, ставшая преемницей ТО-компоненты АЛС УНИЛЕКС. Вследствие этого она сохранила характерные функции предшественницы: наличие программы лемматизации и режима работы с параллельными текстами. В то же время возможности персонального компьютера позволили существенно улучшить и обогатить диалог с пользователем: запрос по словам, частям речи, частоте, адресам; удобный, как в ETC, способ листания словника. Главным недостатком этой системы мы считаем слишком расточительное ее отношение к дисковой памяти (дурное наследие больших машин): получаемые в результате обработки данные могут занимать в 20 раз больше памяти, чем исходный текст. Это извинительно для экспериментальной разработки, но при использования системы для реальной работы с большими текстами это создает определенные трудности. Ниже мы приведем подробное описание этой системы, а пока обратимся к текстам.

Относительно текстов вам надо будет решить главный вопрос: как их заставить очутиться в компьютере. Если вы хотите заняться текстом, который уже опубликован, то перед вами открываются такие возможности. Первое: обратиться в Машинный фонд русского языка, находящийся в Институте русского языка РАН. Там имеется небольшой, но постоянно пополняющийся, архив текстов на машинных носителях (дискетах и магнитных лентах) произведений, написанных на русском языке. Это русская классика, современные писатели и поэты, публицистика и литературоведение. Есть там и кое-какие неопубликованные материалы: тексты русской разговорной речи шестидесятых годов, тексты диалогов справочной службы 09. Каталог архива опубликован в первом выпуске Бюллетеня Машинного фонда русского языка ([2],с.45-65). Если в архиве Машинного фонда текста нет, то вам придется пойти по одному из тех путей, который прошли тексты, попавшие в архив: попытаться найти магнитную копию текста в какой-либо типографии или издательстве; прочитать текст сканером; ввести его руками. В типографии или издательстве можно обнаружить интересующий вас текст только в том случае, если он издавался недавно и с применением компьютерного или фотонабора, так что этот путь имеет весьма ограниченные возможности. И конечно, за копию текста на машинных носителях вам придется заплатить. Свои ограничения имеет и сканирование: качество бумаги и печати, однородность текста - но для ввода большинства текстов, изданных типографским способом, этот путь приемлем, и вам остается только найти доступный для вас сканер. И, наконец, у вас в запасе всегда есть последний вариант: ввести текст руками. В том же случае, если ваш текст существует только в рукописном варианте, то это и единственный путь. Вы можете, конечно, и не сами вводить его, а нанять кого-то или использовать дармовую силу в лице студентов, проходящих практику. Наш собственный опыт относительно ручного ввода говорит о том, что лучше всего эту работу может сделать только тот человек, который сам заинтересован в качестве результата, то есть вы сами. Если вы печатаете на пишущей машинке, то вы убедитесь, что работа за компьютером похожа на печатание на машинке, но гораздо легче и приятнее, а поэтому и быстрее. К тому же вас должна будет согревать мысль о том, что благодаря вам текст становится доступным и для ваших коллег (как российских, так и зарубежных), которые смогут исследовать его с различных точек зрения и в разных аспектах.

Теперь несколько слов о результатах: частотных словниках, словоуказателях и конкордансах. Любая компьютерная система данного типа может выдать частотный словник в различной упорядоченности: по алфавиту прямой и обратный, по частоте, в некоторых системах - по длине слова, при осуществлении лемматизации - по частям речи. Что касается словоуказателей и конкордансов, то здесь при получении результата в виде готового словаря возникают некоторые проблемы. При компьютерной подготовке традиционных словоуказателей и конкордансов трудно, а порой и невозможно преодолеть противоречие между стремлением к полноте охвата материала и требованием его обозримости и практической доступности. Например, когда перед составителем словаря встает вопрос, включать в него все адреса и контексты на служебные слова, составляющие обычно примерно третью часть объема словоуказателя или конкорданса, он решается либо в пользу полноты, либо в пользу обозримости. Первое решение подразумевает включение в словарь всех слов со всеми адресами и всеми контекстами, второе - разной степени урезание служебных слов: от полного их исключения из словника до представления полного словника, но с неполными перечнями адресов и/или контекстов. И то, и другое решение имеет свои недостатки: в первом случае со словарем трудно работать тем исследователям, которых интересуют только полнозначные слова, второй же вариант совершенно не устраивает специалистов, занимающихся служебными словами. Еще один принципиальный вопрос должны решить авторы, приступающие к работе по созданию конкорданса в законченном виде, - вопрос о представлении контекста. Для стихотворных произведений за основу обычно берется строка, то есть в качестве контекста выступает одна или несколько слов. Более сложной задачей является определение контекста для прозаических текстов. Здесь возможны разные подходы к решению этой проблемы, одни из которых опираются на лингвистические принципы, другие - на формальные. Выделение контекста по лингвистически осмысленным признакам – предложение или другой синтаксически законченный отрезок текста – оказывается неудовлетворительным по нескольким причинам. Во-первых, само понятие синтаксической законченности не является достаточно определенным; во-вторых, выделение предложения или другого синтаксически законченного фрагмента текста требует наличия программ автоматического синтаксического анализа и соответствующего словаря, поскольку недостаточно ориентироваться при этом только на знаки препинания; в-третьих, даже если мы выделим в качестве контекста хотя бы настоящее предложение, то оно далеко не всегда может удовлетворить каждого пользователя этого конкорданса. Трудности реализации лингвистического подхода приводят к тому, что на практике при составлении конкорданса с помощью компьютера контекст выделяется по формальным признакам: фиксированное число знаков или слов влево и вправо от ключевого слова. К формальным можно отнести и метод выделения контекста по предложениям - в тех случаях, когда в тексте явно заданы их формальные границы. Важно при этом отметить то, что в любом из этих случаев размер контекста жестко фиксирован и одинаков для всех слов словаря. Этих недостатков лишены те системы, в которых имеется диалоговый режим, позволяющий каждому конкретному пользователю просматривать те слова, которые его интересуют в данный момент, а выдаваемые на экран контексты - увеличивать или уменьшать по своему усмотрению. В этом случае весь конкорданс как бы утоплен внутри базы данных, а на поверхность выдаются контексты такого размера и на такие слова, которые необходимы данному пользователю в данный момент. Достигается это за счет того, что весь текст хранится в компьютере целиком, и каждый раз из него вырезается нужный фрагмент. Такой способ функционирования конкорданса на компьютере мы называем Автоматическим конкордансом.

Тексто-лексикографическая система УНИЛЕКС-Т


Общие сведения

Основная задача этого пособия - рассказать о конкретнойсистеме, созданной в Институте русского языка РАН и предназначенной для обработки текстов с целью получения частотных словников, словоуказателей и конкордансов. Выше мы дали краткие сведения и о некоторых других подобных системах. Во многом их функции схожи, но в каждой есть какой-то нюанс, отсутствующий в других системах. Главное отличие нашей системы - ее ориентация на русский язык, наличие в ней программы лемматизации и возможность работы с параллельными текстами. Для российского пользователя это, по-видимому, одна из самых доступных систем. Конечно, она имеет свои ограничения как по исходным текстам, так и по набору функций, но система продолжает развиваться и совершенствоваться с учетом реальных пожеланий реальных пользователей.

Итак, система УНИЛЕКС-Т предназначена как для получения традиционных частотных словарей, словоуказателей и конкордансов, так и для формирования базы данных, позволяющей работать со словником и текстами в режиме "запрос - ответ", то есть в режиме Автоматического конкорданса. В системе не предусмотрено задание параметров для красивой (полиграфической) печати, поскольку основные пользователи системы - филологи-исследователи, для которых частотные словари, словоуказатели и конкордансы являются не конечным продуктом, предназначенным для издания, а промежуточными рабочими материалами. В частности, результаты обработки текста могут быть использованы в качестве заготовок словарных статей или как картотека при создании, пополнении или коррекции словаря, причем вход в картотеку возможен по разным параметрам: по словоформе, частоте словоформы, а при осуществлении лемматизации - дополнительно по лемме, частоте леммы и части речи. Надо сказать, что система все же более ориентирована именно на конкордансы, поэтому она может показаться несколько сложноватой для тех, кого интересуют только частотные словники, но нет никаких принципиальных препятствий, которые мешали бы использовать ее только для получения частотных словарей.

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

воспользоваться еще возможностью отсортировать словник по

разным параметрам: по алфавиту (прямой и обратный словарь), по

частоте, а если есть леммы и части речи, то по ним. Для

получения словоуказателя или конкорданса по некоторому списку

слов пользователь должен составить запрос по определенным

правилам (если по всему словнику, то запрос не нужен).

Элементами запроса могут быть словоформы, леммы, части речи,

адреса. Размер контекста задается или числом символов, или

числом фрагментов (если текст фрагментирован). Так же можно

получить и выборку из частотного словаря, при этом подсчитывается

вторая относительная частота - относительно общего объема

выборки. Мы, однако, рекомендуем загрузить словник в базу

данных - это позволит работать в наиболее удобном для

пользователя режиме: просматривать словник и контексты на

экране и только то, что ему нужно, отправлять в отдельный

список - файл. (Мы долго пытались избегать слова "файл", но

все же без него не обойтись, поскольку это одно из базовых и

наиболее употребительных понятий для всех, кто имеет дело с

компьютерами. По формальному определению файл - это

поименованная область на накопителе внешней памяти.

Ограничиваясь использованием этого термина относительно только

персональных компьютеров, можно сказать, что все, что

записывается на жестком или гибком диске, записывается в виде

файла, имеющего имя, по которому пользователь или программа (с

помощью операционной системы) легко может найти нужные

данные.)

Далее мы постараемся подробнейшим образом изложить

инструкцию по использованию системы УНИЛЕКС-Т. Предполагается,

что пользователь уже имеет хотя бы начальные навыки работы с

компьютером. Если это не так, то можно воспользоваться

какими-нибудь пособиями для начинающих (например, популярной

книжкой В.Э.Фигурнова "IBM PC для пользователя", но имеется и

масса других пособий). Итак, переходим к инструкции.


Подготовка исходного текста

Поскольку данная система является частью Лингвистического

программно-источникового пакета УНИЛЕКС+, который в свою очередь

входит в состав Машинного фонда русского языка, в требованиях к

формату исходного текста мы следовали концепции разметки для

источников в Машинном фонде русского языка, изложенной в [1]

(с.144-164).

Будем исходить из предположения, что текст, которым вы

собираетесь заниматься, уже находится на дискетах или в

компьютере. Если вы хотите получить качественный и достоверный

результат, постарайтесь прежде всего вычитать текст. Если это

типографская копия, которую до этого никто не правил, то вам

придется немало повозиться с ней, чтобы привести ее в приемлемый

вид. При вводе текста через сканер тоже возможны ошибки, чаще

всего однотипные. И даже текст, введенный руками, может содержать

чудовищное количество ошибок, если его вводили полуграмотные и

безответственные люди.

Некоторые требования к тексту в целом таковы. Первое - в нем

не должно быть переносов. Если вам достался текст с переносами,

не отчаивайтесь: многие редакторы (например, Лексикон) могут

автоматически переформатировать текст так, что переносы уберутся

(а целостность слов, конечно, сохранится). Второе - длину строки

надо сделать не более 70 знаков (включая, естественно, пробелы,

знаки препинания и прочие символы). Изменить длину строки, если

она слишком большая, также можно в редакторе. И третье -

внимательно проследите, как в тексте представлены тире. Они

обязательно должны быть окружены пробелами (иначе тире

воспримется как дефис, и два слова сольются в одно - с дефисом).

В этом вам тоде может помочь редактор - там есть команда поиска

любой строки символов.

Но вот текст вычитан, исправлен. Что дальше? Прежде всего

подумайте, что вы хотите получить из текста, какую информацию.

Если текст совершенно однороден (для вас), то есть все слова и

все фрагменты текста совершенно равноправны, то с ним почти

ничего не надо делать. Вот тот минимум, который необходим в любом

случае и достаточен - в простейшем.

1. Разделите ваш текст на модули - такие куски текста, каждый

из которых занимает не более 60 Кбайт, т.е. не более 60 тысяч

символов, включая и все знаки-не буквы. Для компьютера все равно,

но для вас будет лучше, если это будет какое-то осмысленное

членение: на главы, стихотворения, акты (для драмы). Каждый

модуль в начале должен иметь имя, а в конце - признак конца. Имя

модуля располагается в начале его, перед началом вашего текста,

на отдельной строке, с самого начала строки, т.е. с первой

позиции. Сначала надо поставить символ * и далее без пробела -

собственно имя модуля, состоящее не более чем из 30 символов.

Если вы не хотите напрягаться, можно просто пронумеровать модули

подряд: 1, 2, 3 и т.д. Однако будет лучше, если имена модулей

будут иметь какой-то смысл. Например, вы имеете дело с корпусом

текстов одного поэта. Тогда в имя модуля можно включить,

допустим, номер тома, части, цикла, подцикла, стихотворения,

дату, причем отвести под каждый параметр определенные позиции в

имени модуля. Впоследствии это позволит вам делать из общего

словника выборки по отдельным годам, томам, циклам и пр. Даже

если сначала вам кажется это ненужным, все равно стоит сделать

более или менее осмысленное именование модулей. Итак, имя модуля

может выглядеть, например, так:

*АБ0101

*0010051993SH001

*01

Предупреждение: имя модуля текста не должно состоять из одних

нулей и не может включать в себя пробелы.

Признак конца модуля также располагается на отдельной строке,

с самого начала строки, т.е. с первой позиции, после текста

модуля. В отличие от имени модуля его не надо придумывать - это

должна быть следующая последовательность символов: &&& , т.е. три

идущие подряд, без пробелов, символа &.

Так надо оформить все модули. Чтобы не усложнять вам жизнь

будем предполагать, что все модули находятся в одном файле. Если

вы не собираетесь использовать программу автоматической

расстановки маркеров строки и абзаца, то имя файла должно иметь

расширение .txt, в противном случае - без расширения.

2. Еще одна необходимая вещь - нулевой модуль. Он должен

находиться перед модулями текста, в начале файла. Этот модуль,

имя которого состоит из любого допустимого количества нулей,

содержит так называемую схему модуля, описывающую некоторые

особенности структуры вашего текста. В самом простейшем случае

нулевой модуль может быть пустым. В общем же случае схема

содержит атрибуты и маркеры. Маркеры определяют дальнейшее

членение модуля (если необходимо), и о них мы расскажем позже.

Атрибуты задают название корпуса, администратора данных и список

знаков препинания (каждый атрибут необязателен). Формат атрибутов

следующий:

NAME='Корпус текств "Русская народная песня"';

DATA='А.Б.Пугачева';

^ PUNKT=' .,?!;:"#+|@$()[]{}';

После имени атрибута (NAME=, DATA=, PUNKT=) идет его значение,

заключенное в апострофы, после чего - точка с запятой. Атрибуты

NAME и DATA не влияют на обработку, это просто справочная

информация. В знаки препинания надо включать только те символы,

которые не могут встретиться внутри слова и которые не войдут в

словник (в частности, туда можно включить цифры, если они вам не

нужны). По умолчанию в список знаков препинания входят все

символы, не являющиеся буквами и цифрами, кроме дефиса.

Итак, файл с самой минимальной разметкой выглядит примерно

так:

*000

&&&

*001001

Текст модуля 1.

&&&

*001002

Текст модуля 2.

&&&

Это пример оформления файла, состоящего из двух модулей,

причем внутри модулей никакой дополнительной разметки нет, о чем

нас заранее извещает пустой нулевой модуль. В этом случае адрес

слова будет состоять только из имени модуля и номера слова внутри

модуля, а размер контекста для конкорданса можно задавать только

числом символов.

Более дробное членение текста понадобится вам, если вы

захотите иметь более точный адрес (номер абзаца, строфы,

строки), выделить отдельные части модуля или иметь возможность

задавать размер контекста не только числом символов, но и

числом указанных вами фрагментов (строк, строф, предложений и

пр.). В этом случае в тексте модуля все эти разделители должны

быть указаны в явном виде. Только разделители абзацев и строк

можно вставить автоматически (разделители абзацев ставятся на

место пустой строки). Этот механизм можно использовать и для

вставки разделителей строф. Но если вы хотите, чтобы контекст

выдавался по предложениям, то вы сами должны перед каждым

предложением поставить его маркер - наша система определять

границу предложения, к сожалению, не умеет. Но вот нумеровать

предложения, строки, абзацы вам уже не надо, даже если вы

хотите в адресе иметь их номера (а иначе зачем их ставить?) -

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

маркер ставится перед всеми фрагментами, которые он разделяет.

Например, ## - разделитель абзацев, а || - разделитель строк.

Тогда модуль текста может выглядеть так:

*EXMPL01НМД

##

|| На муромской дороге

|| Стояли три сосны.

|| Мы с миленьким прощались

|| До будущей весны.

##

|| Он клялся и божился

|| Одну меня любить.

|| и т.д.

&&&

Это пример маркеров-разделителей. Есть еще маркеры-выделители,

они бывают нужны в том случае, когда надо именно выделить

отдельные фрагменты текста, как бы дать им особый статус. Тогда

можно эти слова, например, не включать в словник (хотя они будут

оставаться в тексте). А включив их в словник, можно впоследствии

получить словник только по ним, или наоборот - исключить их на

время из обработки. Маркеры такого рода подобны скобкам, поэтому

должны быть определены начальный и конечный маркеры. Например, вы

хотите выделить, с одной стороны, заголовки, чтобы иметь

возможность потом получить отдельно словник заголовков. С другой

стороны, вы хотите выделить примечания составителя и имена

персонажей, чтобы не включать их в основной словник, но в то же

время и не убирать их из текста. Допустим, вы выбрали для

заголовков маркеры <>, для обозначения персонажей - {п и п},

а для примечаний составителя - {{ и }}. Тогда ваш модуль текста

может выглядеть так:

*EXMPL02ShGm

<>

{{ История сюжета.

Легенду о Гамлете впервые записал в конце XII века датский

летописец Саксон Грамматик.

... }}

{п Бернардо п}

Кто здесь?

...

&&&

Как вы могли заметить, маркер представляет собой

последовательность символов (от одного до четырех), не

встречающуюся в основном тексте. Надо только следить за тем,

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

всего сделать все маркеры одинаковой длины. Мы рекомендуем

брать двухсимвольные маркеры. Односимвольные маркеры можно

использовать только при очень простом членении модуля,

поскольку "экзотических" знаков не так уж много. Когда же мы

берем два знака, общее число возможных маркеров резко

возрастает, т.к. маркер можно комбинировать из одного

экзотического и одного обычного знака - ведь надо, чтобы такая

последовательность не встречалась в тексте, а не каждый символ

по-отдельности. Поэтому, по-видимому, двухсимвольные маркеры -

это самый оптимальный вариант. По причинам, которые станут для

вас очевидными, когда вы дойдете до описания шаблонов, не

следует использовать в маркерах символы * и ?.

Теперь надо сообщить системе, какие вы используете маркеры,

иначе она их либо включит в словник, приняв за обычные слова,

либо проигнорирует, приняв за знаки препинания. Информацию о

маркерах вы должны поместить в нулевом модуле после атрибутов.

Каждый маркер-разделитель занимает отдельную строку, как и

каждая пара маркеров-выделителей (начальный и конечный).

Объединив первый и второй пример, можно для них написать такой

нулевой модуль (схему модуля).

Схема модуля Пояснения

*000 Имя модуля

NAME='Примеры 1 и 2'; Имя корпуса текстов

DATA='П.Карлов'; Администратор данных

{{ ... }} Маркеры примечаний

{п ... п} Маркеры персонажей

<> Маркеры заголовков

## Маркер абзаца (строфы)

|| Маркер строки

&&& Признак конца модуля

Из примера видно, что маркеры-выделители в нулевом модуле

задаются так: начальный маркер, пробел, три точки, пробел,

конечный маркер. Ни в коем случае нельзя потерять пробел, иначе

точки будут считаться частью маркера.

Чтобы дать системе задание пронумеровать маркеры, надо после

первого (или единственного) маркера, в круглых скобках, указать

маркер того фрагмента, внутри которого надо нумеровать данный

фрагмент. При этом маркером модуля считается признак конца модуля

(&&&). Например, абзацы и заголовки надо пронумеровать внутри

модуля, а строки - внутри абзацев. Тогда список маркеров в схеме

модуля примет такой вид:

{{ ... }}

{п ... п}

<>

## (&&&)

|| (##)

Бывает еще и такая ситуация, что пользователь сам ставит

номера. Такую особую ситуацию также надо особо обозначить в схеме

модуля, а именно - пустыми скобками. Например, мы решили сами

проставить номера страниц, выбрав для этого маркер #S. В модуле

текста номер должен стоять сразу за маркером, без пробелов,

например: #S1, или #S01, или #S17. А в схеме модуля эта ситуация

должна быть отражена так:

#S ()

Попробуем теперь в одном примере дать все эти варианты.

Текст файла Пояснения

*0 Имя нулевого модуля

NAME='У.Шекспир. Гамлет'; Имя корпуса текстов

DATA='Клавдиев'; Администратор данных

{{ ... }} Маркеры примечаний

{п ... п} Маркеры персонажей

<> Маркеры заголовков

#S () Страницы (уже пронумерованы)

Ремарки (нумеровать внутри модуля)

## (&&&) Реплики (нумеровать внутри модуля)

|| (##) Строки (нумеровать внутри реплик)

&&& Конец модуля


*ШкГм0000

#S05

<> Заголовок

{{ История сюжета Примечания

... }}

&&&


*ШкГм0101 Цифры - номер акта и номер действия

#S06



{п Бернардо п}


Кто здесь?

{п Франциско п}


Нет, сам ты кто, сначала отвечай.

...

#S07

...

{п Бернардо п}


Ну, доброй ночи.

А встретятся Гораций и Марцелл,

Подсменные мои, - поторопите.

...

&&&

Обратите внимание на то, что маркеры реплик и строк указаны в

схеме модуля, но отсутствуют (пока) в модуле текста. Они будут

проставлены автоматически - для этого мы оставили по пустой

строке после каждого имени персонажа, когда начинается новая

реплика. Как это делается, будет показано несколько позже.


Шаблоны в стоп-словаре и запросе

Итак, текст подготовлен. Теперь пора вспомнить о том, что мы

хотели некоторые выделенные фрагменты не включать в словник. Для

этого существует такой механизм, как стоп-словарь. В нем задаются

те слова, которые не войдут в словник. Похожий формат имеет и

файл запросов, о котором речь пойдет позже, но способы задания

информации в этих двух файлах одинаковы. Каждый из них может

состоять из нескольких строк (от 1 до 100). В стоп-словаре

элементами могут быть словоформа и адрес, в запросе - словоформа,

лемма, часть речи и адрес. Каждый элемент имеет свою помету:

перед словоформой ставится символ / (в стоп-словаре может быть

опущен), и она пишется малыми буквами; лемма не выделяется какими

-либо символами, но пишется обязательно большими буквами; часть

речи заключается в круглые скобки и задается именно так, как она

зафиксирована в списке частей речи (при получении статистики

после лемматизации); адрес предваряется символом #. Самым

замечательным свойством стоп-словаря и файла запроса является то,

что элементы запроса можно задавать с помощью так называемых

шаблонов. Сущность шаблона заключается в том, что одной строкой

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


ponyatie-inostrannij-grazhdanin-stranica-11.html
ponyatie-internet-na-personalnom-kompyutere.html
ponyatie-istini-v-filosofii.html
ponyatie-kachestvo-obsluzhivanie-turizma.html
ponyatie-klassifikaciya-i-ocenka-materialno-proizvodstvennih-zapasov.html
ponyatie-klassifikaciya-i-soderzhanie-osnovnih-funkcij-gosudarstva-chast-7.html
  • essay.bystrickaya.ru/dopustit-k-vstupitelnim-ispitaniyam-i-uchastiyu-v-konkurse-zachislit-na-1-kurs.html
  • thescience.bystrickaya.ru/hod-uroka-mesto-kursa-v-obrazovatelnom-processe.html
  • zanyatie.bystrickaya.ru/metodicheskie-ukazaniya-po-vipolneniyu-kontrolnoj-raboti-po-discipline-cenoobrazovanie-dlya-studentov-obuchayushihsya-po-specialnosti-080105.html
  • nauka.bystrickaya.ru/uchebno-metodicheskij-kompleks-po-discipline-istoriya-ekonomicheskih-uchenij-vipiska-iz-gos-vpo.html
  • university.bystrickaya.ru/glava-9-ya-okej-ti-okej.html
  • zanyatie.bystrickaya.ru/upravlenie-kachestvom-produkcii-na-predpriyatii-12.html
  • ekzamen.bystrickaya.ru/rossijskie-smi-o-mchs-monitoring-za-23-iyunya-2010-g-stranica-4.html
  • nauka.bystrickaya.ru/v-kievskoj-visshej-obedinennoj-voennoj-shkole-mihail-grigorkevich-bragin-vatutin-put-generala-19011944.html
  • gramota.bystrickaya.ru/zadachi-formirovanie-polozhitelnogo-samootnoshenie-i-prinyatiya-drugih-formirovanie-refleksivnih-umenij.html
  • otsenki.bystrickaya.ru/sozdanie-mecha-istoriko-kulturnij-kontekst-dzen-i-put-mecha-opit-postizheniya-psihologii-samuraya.html
  • uchitel.bystrickaya.ru/rabochaya-programma-disciplini-biologiya-i-mikrobiologiya-dlya-specialnostej-260301-tehnologiya-myasa-i-myasnih-produktov-260303-tehnologiya-moloka-i-molochnih-produktov-260302-tehnologiya-ribi-i-ribnih-produktov.html
  • portfolio.bystrickaya.ru/osnovnaya-literatura-uchebno-metodicheskij-kompleks-po-discipline-teoriya-organizacii-rostov-na-donu.html
  • uchitel.bystrickaya.ru/razdel-iii-obrazovatelnaya-sistema-mou-sosh-s-kozlovo-programma-razvitiya-municipalnogo-obsheobrazovatelnogo-uchrezhdeniya.html
  • upbringing.bystrickaya.ru/magnitnaya-meshalka-ritm-01-obshestvo-s-ogranichennoj-otvetstvennostyu-labtehkomplekt.html
  • esse.bystrickaya.ru/programma-sorevnovanij-30-go-aprelya-9-00-9-30-registraciya-komand.html
  • universitet.bystrickaya.ru/tematicheskij-plan-izucheniya-disciplini-etnografiya.html
  • institut.bystrickaya.ru/temi-lekcij-i-n-denisov-14-oktyabrya-2000-g.html
  • znanie.bystrickaya.ru/advokatura-uchebnoe-posobie-dlya-vuzov.html
  • college.bystrickaya.ru/23-adaptivnie-organizacionnie-strukturi-na-srednem-urovne-upravleniya-turisticheskoj-tnk.html
  • literatura.bystrickaya.ru/sergej-mamontov-pohodi-i-koni.html
  • university.bystrickaya.ru/glava-bengalskata-majka-proniknata-ot-radost-avtobiografiya-na-edin-jogin-paramahansa-jogananda-predgovor.html
  • studies.bystrickaya.ru/glava-vosmaya-kniga-pervaya-vneshnee-povestvovanie-3.html
  • esse.bystrickaya.ru/programma-v-mezhdunarodnoj-letnej-shkoli-po-yuridicheskoj-antropologii-g-hanti-mansijsk-5-12-avgusta-2007-g.html
  • uchenik.bystrickaya.ru/harakteristika-osnovnih-otraslej-pravovoj-statistiki-ee-znachenie-v-prakticheskoj-rabote-pravoohranitelnih-organov-chast-3.html
  • urok.bystrickaya.ru/prikaz-ot-13-yanvarya-2012-goda-5-oprovedenii-municipalnogo-smotra-stroya-i-pesni-sredi.html
  • esse.bystrickaya.ru/r-s-belkin-kriminalisticheskaya-enciklopediya-stranica-12.html
  • obrazovanie.bystrickaya.ru/pravila-pravoj-ruki-17-zamechaniya-dlya-programmistov-na-c-17-glava-1-stranica-2.html
  • nauka.bystrickaya.ru/v-yu-petrov-02-marta-2011-g.html
  • klass.bystrickaya.ru/57organi-gosudarstvennogo-upravleniya-oboronoj-shpargalka-po-administrativnomu-pravu-olga-vladimirovna-kostkova.html
  • laboratornaya.bystrickaya.ru/razdel-1-osnovnaya-problematika-istoki-i-etapi-razvitiya-teorii-mezhdunarodnih-otnoshenij.html
  • turn.bystrickaya.ru/otdel-narodnogo-tvorchestva-otchet-astrahanskogo-oblastnogo-metodicheskogo-centra-narodnoj-kulturi-za-2008-god.html
  • composition.bystrickaya.ru/poeticheskij-mir-marini-cvetaevoj.html
  • otsenki.bystrickaya.ru/scenarij-poslednego-uroka-v-11-klasse-v-stranica-2.html
  • znaniya.bystrickaya.ru/rabochaya-programma-po-tehnologii-v-5-klasse-stranica-4.html
  • paragraf.bystrickaya.ru/vvedenie-rukovodstvo-po-ustanovke-i-nastrojke-32-razryadnoj-operacionnoj-sistemi.html
  • © bystrickaya.ru
    Мобильный рефератник - для мобильных людей.