часть часть часть
После складывания:
731- средняя часть
462 - левая часть, «завернутая» по месту стыка со средней частью
861 - правая «завернутая» часть.
После сложения совпавших цифр (сложение идет до достижения значения цифры): (7+4+8)(3+6+6)(1+2+1) = (19)(15)(4) = (1+9)(1+5)(4) = (10)(6)(4) = (1+0)(6)(4) = 164
Таким образом, относительный адрес для ключа КОМПЬЮТЕР, полученный вторым способом, равен 164,
- метод деления. Числовое значение ключа делится на количество адресов памяти, в которой размещается список. Остаток от деления – относительный адрес. Например, для ключа 264731168 и для числа адресов 989 (999 – 10) остаток от деления равен 593. Это и есть относительный адрес для ключа КОМПЬЮТЕР,
- метод сдвига. Числовое значение ключа делится на две равные части, которые смещаются друг навстречу другу так, чтобы общее число разрядов стало равно порядку адресов памяти. Совпавшие разряды складываются. Например, для ключа 264731168 и для тех же адресов:
02647[1] 31168левая правая
часть часть
правой и левой частей числа
02647 после сдвига 311683 3 7 (10)(15) = 337(1+0)(1+5)=33716
Поскольку полученное число имеет порядок, больший трех, процедура сдвига повторяется:
033 716левая часть правая часть
033 после сдвига749 – конечный результат – относительный адрес для ключа КОМПЬЮТЕР.
Очевидно, и этот этап дает потерю информации.
3) вычисление абсолютного адреса. Исходная информация – диапазон изменения относительных адресов (очевидно, от 0 до 999) и адреса размещения элементов списка в памяти (напомним, что список занимает кластеры с адресами от 10 до 999). Тогда абсолютный адрес для элементов списка получается по формуле:
<начальный адрес размещения списка> + <относительный адрес элемента> * const,
где const – константа, получаемая по формуле:
число доступных адресов / максимальный относительный адрес, причем число доступных адресов – разность между максимальным и минимальным адресами размещения списка в памяти.
Для нашего случая const = 989 / 999 = 0,989
Тогда, например, для относительного адреса 199 абсолютный адрес (читай – номер кластера) равен 10 + 199*0,989 = 10+197 = 207.
Одной из проблем при создании информационных систем является работа со структурированными данными, которые чаще всего являются линейными списками – упорядоченным множеством элементов, порядковые номера которых определяют местоположение элемента в списке. Элементы списка имеют структуру – они состоят из конечного множества полей, каждое из которых имеет определенный смысл, например, фамилии, адреса и т.д. Для таких списков важна задача адресации элементов списков – определение адреса элемента списка по одному из его полей или по совокупному набору полей. Такие поля называются ключевыми (или ключами) (в простейшем случае ключом, например, может быть номер зачетной книжки студента).
Программы автоматического обнаружения и исправления ошибок в текстах на естественных языках (назовем их автокорректорами - АК, хотя терминология ещё не сложилась) получают все большее распространение. Они используются, в частности, в пакетах WINWORD и EXCEL для проверки орфографии текстовой информации.
Говоря точнее, АК производят автоматически лишь обнаружение ошибок, а собственно коррекция ведется обычно при участии человека.
1.1. Методы обнаружения ошибок
Известны, по крайней мере, три метода автоматизированного обнаружения орфографических ошибок в текстах - статистический, полиграммный и словарный.
При статистическом методе из текста одна за другой выделяются составляющие его словоформы, а их перечень по ходу проверки упорядочивается согласно частоте встречаемости. По завершении просмотра текста упорядоченный перечень предъявляется человеку для контроля, например, через экран дисплея. Орографические ошибки и описки в сколь-нибудь грамотном тексте несистематичны и редки, так что искаженные ими слова оказываются где-то в конце перечня. Заметив их здесь, контролирующее лицо может автоматизированно найти их в тексте и исправить.
При полиграммном методе все встречающиеся в тексте двух- или трехбуквенные сочетания (биграммы и триграммы) проверяются по таблице их допустимости в данном естественном языке. Если в словоформе не содержится недопустимых полиграмм, она считается правильной, а иначе - сомнительной, и тогда предъявляется человеку для визуального контроля и, если нужно, исправления.
При словарном методе все входящие в текст словоформы, после упорядочения или без него, в своем исходном текстовом виде или после морфологического анализа, сравниваются с содержимым заранее составленного машинного словаря. Если словарь такую словоформу допускает, она считается правильной, а иначе предъявляется контролеру. Он может оставить слово как есть; оставить его и вставить в словарь, так что далее в сеансе подобное слово будет опознаваться системой без замечаний; заменить (исправить) слово в данном месте; потребовать подобных замен по всем дальнейшему тексту; отредактировать слово вместе с его окружением. Операции над сомнительным участком текста, указанные или иные возможные, могут комбинироваться исходя из замысла проектировщика АК.
Результаты неоднократных исследований показали, что только словарный метод экономит труд человека и ведет к минимуму ошибочных действий обоих родов - пропуска текстовых ошибок, с одной стороны, и отнесения правильных слов к сомнительным, с другой. Поэтому словарный метод стал доминирующим, хотя полиграммный метод иногда и применяют как вспомогательный.
1.2. Автоматизация процесса исправления
Можно предложить три степени автоматизации процесса коррекции текста:
1) только обнаружение ошибок,
2) обнаружение их и выдвижение гипотез (альтернатив, кандидатов) по исправлению;
3) обнаружение ошибок, выдвижение гипотез и принятие одной из них (если хотя бы одна выдвинута системой) в качестве автоматически вносимого исправления.
Без первой степени АК немыслим.
Вторая и третья степень возможны только при словарном методе. Уже вторая существенно облегчает внесение исправлений, ибо в большинстве случаев исключает перенабор сомнительного слова. Особенно полезны найденные альтернативы, когда контролирующее текст лицо нетвердо знает данный естественный язык или конкретную терминологическую область. Однако выдвижение гипотез требует больших переборов с поиском по словарю. Поэтому современные АК часто имеют средство выдвижения гипотез лишь в качестве факультативного, запускаемого, если требуется, избирательно для данного сомнительного слова.
Третья степень автоматизации заманчива и одновременно опасна. Заманчивость заключается в полной автоматизации процесса исправления. Опасность же в том, что ни один словарь, в том числе - заключенный в человеческом мозгу, никогда не бывает исчерпывающе полным. Когда незнакомое слово встречает система, основанная на неполном словаре, она может "исправить" его на ближайшее ей знакомое, порой резко исказив исходный смысл текста. Особо опасно править собственные имена лиц, фирм, изделий, Заманчиво уметь пропускать (обходить) собственные имена и сугубо специальные термины, априори полагая их правильными, но безошибочные способы обхода, особенно - терминов, нам не известны.
Чисто автоматическому исправлению мог бы способствовать автоматический синтаксический и семантический анализ проверяемого текста, но он ещё не стал принадлежностью обычных АК. И даже при его наличии лишь человек сможет диагностировать быстро меняющиеся совокупности собственных имен, терминов и аббревиатур, а также окказионализмы - случайно появляющиеся словесные новации.
В связи со сказанным полная автоматизация исправлений может применяться лишь в любом из следующих ограничительных условий:
I) Текст имеет вид перечня терминов и терминологических словосочетаний в стандартной их форме, так что в АК достаточно иметь словарь, замкнутый по объему и проблематике. При этом все термины между собой "непохожи" (например, в словаре нет одновременно АДСОРБЦИЯ и АБСОРБЦИЯ).