книги из ГПНТБ / Белоногов Г.Г. Автоматизированные информационные системы
.pdfСистема разделителей, используемая при такой 'ор ганизации словаря, представлена в табл. 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 |