Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Белоногов Г.Г. Автоматизированные информационные системы

.pdf
Скачиваний:
9
Добавлен:
25.10.2023
Размер:
14.28 Mб
Скачать

Система разделителей, используемая при такой 'ор­ ганизации словаря, представлена в табл. 6.1. Строки этой

Т а б л и ц а 6.1

 

Т а бл и ц а

раздел ит ел ей д л я

поиска

в словаре

 

а

1

 

2

3

. . .

k — 1

k

M l

М 2

М з

 

^ a, ?і - 1

Mft

б

M l

м

2

^бз

 

М , ft - 1

Mft

в

м ,

м

2

^ вз

 

h - 1

■ ^rft

г

м .

м

2

м ,

 

М . ft - 1

д

м .

М г

М з

 

М . ft - 1

M n

ІО

м .

^Э2

эз

Л'э, К - 1

Mft

м

,

N

юг

N ѵ>г

 

‘V

loft

Э

м

,

 

Л'я, fl- 1

 

я

М 2

Л'яз

Mft

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

В памяти ЭВМ табл. 6.1 записывается в виде после­ довательности групп столбцов. Каждая группа столбцов размещается в 32 ячейках (по числу букв в алфавите), а количество столбцов в группе определяется емкостью ячейки памяти. В одной ячейке может быть записано

п=Е[М/г]

(6.2)

номеров слов, где М — длина ячейки в двоичных разря­ дах; г — длина кода номера слова; Е — оператор выделе­ ния целой части числа.

90

Форма записи разделителей в памяти ЭВМ для слу­ чая, когда в одной ячейке помещается три номера слова, иллюстрируется табл. 6.2. Обозначения строк и столбцов в этой таблице приведены для наглядности. В действи­ тельности они нигде не записываются.

Ф орм а

запаси

двум

Э В М

д л я п =

3

Т а б л и ц а 6.2

 

1

 

 

ерной т аблицы

раздел ит ел ей в памяти

а

 

 

2

 

3

 

 

 

/ѵа1

 

 

N „

 

N „

 

 

 

б

Mh

 

 

М г

 

Ms,

[■

Первый

участок

ю

М о,

 

 

^ 1 0 2

 

/Ѵю з

 

 

 

 

 

 

я

N al

 

 

N„2

 

М »

 

 

 

а

4

 

 

5

 

6

 

 

 

М *

 

 

tf.5

 

N t .

 

 

 

б

N t4

 

 

N t ,

 

Nto

 

Второй

участок

ю

^ 10 4

 

 

/ Ѵ .0 5

 

^Юб

 

 

 

 

 

 

 

я

К *

 

 

N "

 

N*s

 

 

 

а

к - - 2

 

k — 3

k

 

 

 

N a, ft - г

^ a , ft -

з

N tx

 

 

 

б

N t, к - 2

Ms, h -

з

Ntk

J-

Последний

ю

^ K J .f t -

2

N Ю, к - 3

Alraft

 

участок

я

N К,к - 2

^ п , ft- 3

М л

 

 

 

91

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

Участок таблицы разделителей определяется но

формуле

 

Аа=Е[1— 1/ф і,

(6.3)

в которой Ао — адрес ячейки, предшествующей первой

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

т — количество букв

в

алфавите; символы п и Е имеют

тот же смысл, что и

в

формуле (6.2). Адрес ячейки на

участке определяют,

прибавляя код первой буквы слова

к начальному адресу

А0, а позицию номера слова в ячейке определяют по формуле

Z,= Res [(/—\)Іп]+\,

(6.4)

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

V=

Щ/макс*

 

где V— количество клеток

в табл. 6.1; от — число

букв

в алфавите; /макс — максимальная длина слова.

Для

т — 32 и /макс = 28 ц= 896.

Если в одной ячейке памяти

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

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

Число пустых клеток можно сократить, если двумер­ ную таблицу разделителей построить только для основ­ ной массы более коротких слов словаря, а для длинных слов использовать небольшую одномерную таблицу,

92

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

дет к усложнению алгоритма

поиска по

словарю и

к снижению скорости поиска.

 

 

 

Описанный способ организации словаря можно рас­

сматривать

в качестве

частного случая

г н е з д о в о г о

с п о с о б а

(см. гл. 5),

когда

обращение

к

начальным

адресам участков словаря производится по сверткам ко­ дов слов (код свертки образуется из кода первой буквы и кода длины слова). Поиск на выделенном участке словаря производится последовательным просмотром буквенных кодов слов.

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

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

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

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

словаря, а вторая отсылка

указывает место записи

(в пределах данного массива

ячеек) адреса буквенного

кода (я+1)-го слова участка.

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

93

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

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

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

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

94

Г л а в а 7 ТОЧНЫЕ ПРОЦЕДУРЫ МОРФОЛОГИЧЕСКОГО АНАЛИЗА И СИНТЕЗА СЛОВ

Морфологическая классификация слов

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

ского анализа слов, так и без

него.

В последнем случае

в словаре необходимо хранить

все

(или наиболее часто

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

Различные способы морфологического анализа раз­ рабатывались в связи с задачей автоматического пере­ вода текстовых сообщений с русского языка на иностран­ ные или с иностранных языков на русский (см., например, работы [48, 62, 90, 133]). Мы проиллюстрируем идею морфологического анализа и синтеза русских слов на примере того алгоритма, который был разработан авто­ ром совместно с Т. С. Белоноговой и А. К. Родионовой

ипроверен на ЭВМ.

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

условно названы м о р ф о л о г и ч е с к ими.

95

Изменения форм слов могут носить различный ха­ рактер. Они могут быть связаны как с изменением ос­ новы слова, так и с изменением его окончания. Измене­

ние буквенного состава основ

имеет место, например,

в следующих парах форм слов:

сижу— сидишь, шел —

шли, тренировка — тренировок,

нес — несли, кто — кого,

время — времени, судно— суда,

человек—люди. Измене­

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

По характеру изменения буквенного состава все ос­ новы слов могут быть отнесены к одному из следующих

четырех

типов:

тип I— неизменяемые

основы

слов;

тип

II — основы

слов, у которых

имеет

место чередова­

ние

гласных; тип

III — основы

слов,

у

которых

имеет

место

чередование

согласных;

тип

IV — изменяемые

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

и III. К основам

типа IV относятся, в частности, супплетивные формы слов (например, следующие формы слов: кто, кого, кем, что, чего, он, ему и др.).

Морфологические классы слов делятся на два вида: 1) основоизменительные классы, характеризующие систе­ му изменения основ, и 2) флективные классы слов. Флективные классы изменяемых слов выделялись на ос­ нове анализа их синтаксической функции и систем падеж­ ных, личных и родовых окончаний. Классы неизменяе­ мых слов выделялись только по синтаксическому принци­ пу. Список флективных классов слов приведен в табл. 7.1, а распределение частот их появления в текстах и в сло­ варях— в приложении 1.

По своей синтаксической функции изменяемые слова объединены в следующие группы: 1) существительные; 2) прилагательные; 3) глаголы в личной форме; 4) гла­ голы прошедшего времени, краткие прилагательные и причастия; 5) количественные числительные. Группа «существительные», в свою очередь, состоит из несколь­ ких подгрупп, выделенных по признакам рода и одушев­ ленности (для существительных мужского и женского рода). В каждой группе и подгруппе слова распределе­ ны по флективным классам.

Флективный класс может быть охарактеризован либо некоторой системой признаков, либо словом-представи- телем, которое является носителем этих признаков

96

Т а б л и ц а 7.1

ФЛ ЕКТИВНЫ Е КЛАССЫ СЛ О В

А. Существительные

 

 

1)

Окончания:

 

п/п.

Слово-представитель

и\т. пад., ед. число,

Примечание

2)

тв. пад., ед. число,

N °

 

 

 

 

 

 

3) им. пад., мн. число,

 

 

 

А )

род. пад., мн. число

 

Сущ ест вит ельны е м уж ского рода неодуш евленны е

001

телефон

 

+ * , ом,

ы, OB

 

 

 

002

тираж

 

+

,

ом,

и,

ей

См . п.

012

 

003

огонь

 

ь,

 

ем,

и,

ей

 

004

перебой

 

й,

 

ем,

и,

ев

См. п.

005

бук­

005

санаторий

 

й,

,

ем,

и,

ев

Основы

на

006

бланк

 

+

ом,

и,

ов

ву „и“

 

007

сапог

 

+

,

ом,

и,

-f-

 

 

 

010

лес

 

+ ,

ом,

а,

ов

 

 

 

011

колодец

 

4 -, ем, ы,

ев

 

 

 

012

путь (класс состоит

из

 

 

 

 

 

 

 

013

одного слова)

 

й,

 

ем,

я,

ев

 

 

 

край

 

 

 

 

 

014

брус

 

+ ,

ом,

я,

ев

 

 

 

015

глаз

 

4 -,

ом,

а,

+

 

 

 

016

зародыш

 

4 -,

ем,

и,

ей

 

 

 

017

волос

 

4 -,

ом,

ы,

+

 

 

 

020

лагерь

м уж скогоь, ем,родая,

одушей

 

 

 

021

Сущ ест вит ельны е

евленны е

 

 

кузнец

 

+

,

ом,

ы,

ов

 

 

 

022

солдат

 

4 -,

ом,

ы,

+

См. п.

024.

 

023

сосед

 

4 -,

ом,

и,

ей

ж,

024

врач

 

4 -, ом, и,

ей

Основы

на

025

пролетарий

 

й,

 

ем,

и,

ев

ч, ш, щ

 

026

воробей

 

ей,

ем,

и,

ев

 

 

 

027

конь

 

ь,

ем,

и,

ей

 

 

 

030

учитель

 

ь,

ем,

я,

ей

 

 

 

031

сапожник

 

+

,

ом,

и,

ов

 

 

 

032

испанец

 

+ ,

ем,

ы,

ев

 

 

 

033

юноша

 

а,

ей,

и,

ей

 

 

 

034

мужчина

 

а,

ой,

ы,

+

 

 

 

035

судья

 

я,

ей,

и,

ей

 

 

 

036

товарищ;

 

+

,

ем,

и,

ей

 

»

 

037

гражданин

 

4 -,

ом,

е,

+

 

 

040

профессор

 

4 -,

ом,

а,

ов

 

 

 

04 і

муж

 

4 -,

ем,

я,

ей

 

 

 

042

Иванов

 

4 -, ым, ы, ых

 

 

 

043

сын

 

4 -,

ом,

я,

ей

 

 

 

* Символ . + * обозначает нулевое окончание.

7 -3 1 0

97

П р о д о л ж е н и е т а б л . 7.1

м?

 

1)

Окончания:

 

Словопредставитель

им. пад., ед. число,

Примечание

п/п.

2) тв. пад., ед. число,

 

3)

им. пад., мн. число,

 

 

 

4)

род. пад., мн. число

 

044

Сущ ест вит ел ьны е ж ен ского рода

 

одуш евленны е

 

 

женщина

а,

ой,

ы,

+

 

 

 

 

045

переводчица

а,

ей,

ы,

+

Основы

на

бук­

046

нутрия

я,

ей,

и,

й

047

швея

я,

ей,

и,

й

ву

„и“

 

См .

п.

046

 

050

цапля

я,

ей,

и,

ь

 

 

 

 

051

санитарка

а,

ой,

и,

+

 

 

 

 

052

мышь

ь,

ю,

и,

ей

 

 

 

 

053

Иванова

а,

ой,

ы,

ых

 

 

 

 

054

Сущ ест вит ельны е

ж енского

рода

неодуш евленны е

 

 

речь

ь,

ю,

и,

ей

Основы на ж , ч,

055

грань

ь,

ю,

и,

ей

ш ,

щ.

 

См. п.

054

 

056

колба

а,

ой,

ы, +

 

 

 

 

057

задача

а,

ей,

и,

+

 

 

 

 

060

заготовка

а,

ой,

и,

+

Основы

на

бук­

061

линия

я,

ей,

и,

й

062

галерея

я,

ей,

и,

 

й

ву

„и“

 

 

См . п.

061

 

063

земля

я,

ей,

и,

ь

 

 

 

 

064

эскадрилья

я,

ей,

и,

ий

 

 

 

 

065

статья

я,

ей,

и,

ей

 

 

 

 

066

башня

я,

ей,

и,

+

 

 

 

 

067

улица

а,

ей,

ы,

+

 

 

 

 

070

Сущ ест вит ельны е

среднего рода

 

 

 

 

место

о,

ом,

а,

+

 

 

 

 

071

облако

о,

ом,

а,

ов

 

 

 

 

072

поле

е,

ем,

я,

ей

 

 

 

 

073

сомнение

е,

ем,

я,

й

 

 

 

 

074

жилище

е,

ем,

а,

+

 

 

 

 

075

перо

о,

ом,

я,

ев

 

 

 

 

076

время

я,

ем,

а,

+

 

 

 

 

077

побережье

е,

ем,

я,

ий

 

 

 

 

100

колено

о,

ом,

и,

ей

 

 

 

 

101

очко

о,

ом,

и,

ов

 

 

 

 

102

ружье

е,

ем,

я,

ей

 

 

 

 

99

fc . П р и л а г а т е л ь н ы е

п/п.

 

 

 

Окончания:

 

Слово-представитель

1) им. п., муж. р., ед. ч.,

2) им. п., жен. р., ед. ч.,

 

 

4) им, п., множ. ч.

 

 

 

3) род. п., муж. р., ед. ч.,

103

главный

ый, ая,

ого,

ые

105

104

передний

ий,

яя,

его,

ие

106

107

хороший

ий,

ая,

его,

ие

ПО

легкий

ий,

ая,

ого,

ие

111

годовой

ой,

ая,

ого,

ые

112

плохой

ой,

ая,

ого,

ие

113

третий

ий,

я,

его,

и

114

этот,

сам

+ ,

а,

ого,

и

115

мой,

твой, свой

й,

я,

его,

и

 

наш,

ваш

+ ,

а,

его,

и

 

весь

 

ь,

я,

его,

е

 

 

В . Глаголы в личной форме

 

 

п/п.

Слово-представитель

Окончания 1, 2 и 3-го лица ед. ч. и

3-го лица ми. ч.

делать

116

ю,

ешь,

ет,

ют

120

117

строить

ю,

ишь,

ит,

ят

121

122

писать

у ,

ешь,

ет,

ут

123

стучать

у , ишь, ит, ат

124

бежать

у,

ишь,

ит,

ут

 

хотеть

у,

ешь,

ет,

ят

 

зависеть

у,

ишь,

ит,

ят

Г. Глаголы прошедшего врем ени, краткие прилагательны е

ипричастия9

Слово-представитель

Окончания ед. и множ, числа

п/п.

ехал

(глагол)

+ .

о,

а,

и

127

125

силен

(прилагательное)

+ ,

о,

а,

ы

126

130

 

присущ

(прилагательн.)

+ .

е> а,

и

 

краток

(прилагательн.)

+ , о, а, и

 

 

 

Д . Количественные

числительные

 

 

п/п.

 

 

Слово-представитель

 

 

 

два,

две

 

 

 

 

13!

 

 

 

 

132

 

 

 

 

 

три

 

 

 

 

 

 

7

99

Соседние файлы в папке книги из ГПНТБ