Файл: Белоногов Г.Г. Автоматизированные информационные системы.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.04.2024

Просмотров: 158

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ление длин его элементов, могут быть приближенно определены по формулам, приведенным в гл. 16. В таб­ лице разделителей для каждого участка словаря с за­ данной длиной элементов указывается начальный ад­ рес, размер участка и объем заполненной части участ­ ка. Участки словаря могут быть укрупнены таким обра­ зом, 'что в один массив попадут все элементы, занимаю­ щие не более одной ячейки, в другой — двухъячеечные элементы, в третий — трехъячеечные и т. д.

Группировка элементов словаря по длине удобна при организации поиска в нем и включении в него новых элементов, так как порядок выполнения обеих, процедур зависит от «ячеечности» словоформ и основ слов. Перед включением в словарь нового элемента для него подго­ тавливается место: все коды, превосходящие по величи­ не код нового элемента, перемещаются в сторону резер­ ва. Одновременно в таблице разделителей корректирует­ ся объем заполненной части обрабатываемого участка словаря.

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

При включении новых элементов в словарь, упорядо­ ченный по длине и численным значениям кодов слово­ форм, необходимо перемещать значительные по объему массивы. Этого можно избежать, если для составления словаря использовать способ свертывания кодов в соче­ тании с цепным способом поиска и соответствующим образом организовать распределение памяти (см. гл. 5).

Поле оперативной памяти машины, предназначенное для словаря, делится на две части. Одна из них отво­ дится под буквенные коды слов, другая — под отсылоч­ ные адреса и коды связи между ними. Отсылочные адре­ са указывают места хранения буквенных кодов слово­ форм или основ слов, а коды связи устанавливают связь между отсылочными адресами, соответствующими одно­ му и тому же коду свертки. Вторая часть словаря назы­ вается его адресной частью. Массив ячеек адресной ча­ сти словаря делится, в свою очередь, на два участка, имеющих одинаковую структуру. Обращение к первому

198

участку производится по кодам сверток слов, а ко вто­ рому— по кодам связи. В каждой ячейке адресной чаети словаря обычно записывается один отсылочный адрес и один код связи. Код связи может отсутствовать, если отсылочный адрес является последним в ряду отсылоч­ ных адресов, соответствующих одному и тому же коду свертки.

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

Ей

Е2, . . . ,

Ет— номера ячеек, в которых хранится ис­

 

 

 

ходный текст (каждое слово начина­

Ru

Rz,

•••

ется с новой ячейки);

 

 

Rn — номера ячеек для записи буквенных ко­

Си

Сг,

. . .,

дов словаря;

части словаря;

Cq— номера ячеек адресной

 

 

 

Si — номер первой свободной ячейки второ­

 

 

 

го участка адресной части словаря;

 

 

 

А — адресная отсылка к буквенному

коду

 

 

 

словоформы;

адресной

части

 

 

 

В — код связи (в ячейке

 

 

 

словаря записывается

один код А и

 

 

 

один код В ) ;

 

 

 

 

D, F — номера рабочих ячеек;

 

 

выражение вида Fi-i-Fh обозначает последовательность ячеек, начинающуюся с ячейки Fi и оканчивающуюся ячейкой Fk\ выражения вида (С*), (D), (F{-i-Fh) обозна­ чают коды, записанные по адресам С;, D, F\-i-Fk.

Алгоритм автоматического составления словаря словоформ

1.Положить Ei = Eh.Ri = Ru Si = Si.

2.Проверить ( Е і ) на наличие признака конца текста. При поло­ жительном результате проверки — конец работы алгоритма, при от­ рицательном — перейти к п. 3.

3.Подсчитать количество ячеек к, занимаемых очередной слово­

формой текста, и

занести

( Е і - и Е і+к -

t) в ячейки

F x+ - F h.

Перейти

 

 

к п . 4.

 

 

 

 

199



 

і

 

4.М .

Положить

E i =

E i+ h , перейти к п. 5.

М

и наложить

С

 

=

5.

Сформировать

по коду (Е.-ьЕУ) код свертки

 

 

 

 

 

Перейти

к п.

6.

 

 

6.Перенести (С,) в ячейку D . Перейти к п. 7.

7.Проверить для (D ) выполнение условия А = 0. Если условие

выполнено, перейти к п. 8,

если не

выполнено

— к от. 10.

буквенный

8. Записать

в ячейку С,- величину

A = R t

и

перенести

код словоформы

из ячеек

/д н - Е й в

 

ячейки

Еі-ьЕг + й -ь

Перейти

кп. 9.

9.Положить R i = R i + k. Перейти к п. 2.

10. Проверить коды (Ej-bEj,) и (A -^ -A + k — 1) на совпадение. При положительном результате прсіверки перейти к п. 2, при отри­

цательном— к п.

11.

D

)

выполнение

условия

В =

0.

Если

условие

11.

Проверить

для

(

 

выполнено, перейти к

п.

12,

если не выполнено — к

от. 14.

С,- — ве­

F i^ - F12.k

Записать вR iячейку+ R i + k -Si -;

величину

A = R it

а в

ячейку

личину

B = S i

и

перенестиS i

буквенный

код

словоформы из ячеек

13.

в ячейку

С і =

В ,

 

 

Перейти

к п. 13.

 

 

 

 

Увеличить

на единицу. Перейти к п. 9.

 

 

 

 

Составленный14. Положить

словарьперейти к(переченьп. 6.

буквенных

кодов

словоформ) выдается на печать. При необходимости он предварительно упорядочивается по алфавиту. Для этого используются известные методы сортировки информации [16], которые могут применяться также и для составления словарей, если после окончания процесса сортировки в результирующем массиве устранить дублирование оди­ наковых словоформ.

При составлении частотных словарей для каждого элемента словаря в памяти ЭВМ предусматривается от­ дельный счетчик, в котором фиксируются случаи появ­ ления этого элемента в тексте.

Составление словарей словоформ и словарей основ слов на ЭВМ с ограниченной емкостью оперативной памяти

Если объем словаря превосходит емкость оператив­ ной памяти машины, то при его составлении приходится прибегать к специальным приемам. Существо этих прие­ мов заключается в том, что в памяти машины в оконча­ тельном виде формируется не весь словарь, а лишь от­ дельные его участки, которые по мере готовности выда­ ются на печать. Рассмотрим три таких приема: 1) состав­ ление словаря по участкам; 2) двухступенчатое состав­ ление словаря; 3) составление словаря способом «пере­ полнения».

20«


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

вследующем. По объему исходного -текста приближенно определяется объем будущего словаря. Далее по неко­ торым признакам (например, по длине словоформ или основ слов или по их начальной букве) словарь разби­ вается на такие участки, которые заведомо вписываются

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

рые удовлетворяют заданным условиям (например, име­ ют заданную длину или начинаются с определенной бук­ вы алфавита). Процедура формирования участка слова­ ря аналогична процедуре составления всего словаря в оперативной памяти большого объема.

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

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

201 *


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

Составление словарей наименований понятий на ЭВМ

Задача ставится следующим образом. Даны перечни наименований понятий (именных словосочетаний) в раз­ личной форме с повторениями одних и тех же элементов. Требуется отобрать из этих перечней разные по смыслу наименования понятий и представить их в форме, приня­ той для записи машинного словаря. Для решения этой задачи необходим машинный словарь основ слов, вклю­ чающий все основы, которые могут встретиться в имен­ ных словосочетаниях. Такой словарь составляется зара­ нее по описанной выше методике или формируется в процессе составления словаря именных словосочета­ ний.

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

Принципы упорядочения кодов понятий могут быть разными и определяются конкретными условиями при­ менения словаря. Удобно располагать коды понятий в по­ рядке возрастания числа номеров слов, входящих в их состав, а в пределах группы кодов с одинаковым коли­ чеством слов — в порядке возрастания численных значе­ ний этих кодов. Дублирующие элементы исключаются из словаря путем проверки кодов понятий на совпадение и применения трансформаций, связанных с перестановка­ ми слов (перестановка прилагательных, определяющих одно и то же существительное, перестановка слов и групп слов, соединенных союзом «и» и т. п. ,[25]). Возможность

2 0 2

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

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

Участие человека можно исключить, если применять приближенные методы кодирования наименований поня­ тий, рассмотренные в гл. 9. Эти методы редко приводят к ложному отождествлению разных по смыслу понятий и они весьма просты в реализации. Резко упрощается н процедура автоматического составления словарей на­ именований понятий. Например, можно составлять сло­ варь следующим образом. После пословного кодирования словосочетаний в их кодах на первое место ставится но­ мер главного слова, а все другие номера слов упорядочи­ ваются по возрастанию их величины. Далее полученные коды сортируются с исключением повторений одинако­ вых элементов. При таком подходе автоматически учиты­

ваются трансформации

с перестановками слов,

а если

в процессе пословного

кодирования заменить

номера

основ слов на номера их смысловых эквивалентов, то будут учтены и трансформации с изменением основ слов.

Описанные процедуры автоматического составления словаря наименований понятий основаны на серийной обработке всего исходного списка словосочетаний. Они неудобны для пополнения словарей и для внесения в них изменений. Более удобными в этом отношении являются ассоциативно-адресные- методы, и в частности узловой способ, описанный в гл. 5 и 6. Этот способ позволяет составлять словарь наименований понятий «с нуля» и вносить в него любые изменения.

Требования, предъявляемые к словарю наименований понятий в процессе кодирования и декодирования ин­ формации, противоречивы. В процессе кодирования ре­ шается задача распознавания терминов-,' и здесь требу­ ется приводить трансформационные варианты словосо­ четаний к канонической форме. При этом может теряться информация о порядке следования Ң 9 формах слов

§ 0 3