СТРУКТУРНЫЕ ПРЕОБРАЗОВАНИЯ
ТЕКСТОВОЙ ФОРМЫ
Задание
Осуществить иерархически-сетевое преобразование двух текстовых последовательностей, заданных преподавателем.
Последовательность выполнения
1. Преобразовать текстовые последовательности к двоичному виду, используя таблицу кодов ASCII.
2. Выполнить иерархически-сетевое преобразование первой текстовой последовательности I1(a) при k=2. В отчете отразить все шаги алгоритма.
3. Построить многодольный граф полученной нейросемантической структуры (НСС).
4. Вычислить коэффициент выигрыша ресурса (1.1) для полученной НСС.
5. Рассчитать частоты dij и значения порога dp (1.2) для каждого слоя НСС.
6. Построить графики распределения частот для каждого слоя (словаря) НСС.
7. Выполнить иерархически-сетевое преобразование второй текстовой последовательности I1(a) при k=2, используя уже составленные словари НСС. В отчете отразить все шаги алгоритма.
8. Скорректировать многодольный граф НСС. Вычислить коэффициент выигрыша ресурса (1.1) для полученной НСС. Сравнить данные коэффициенты для 1-й и 2-й НСС. Сделать выводы.
9. Рассчитать частоты dij и значения порога dp для каждого слоя новой НСС.
10. Построить графики распределения частот для каждого слоя (словаря) НСС, сравнить их с предыдущими. Сделать выводы.
Теоретическая часть
Иерархически-сетевое преобразование текстовой формы (иерархически-сетевая рекурсия)
Чтобы понять идею иерархически-сетевого преобразования, рассмотрим формирование нейро-семантической структуры (НСС) на произвольной текстовой последовательности I(a) длины l, начиная с t0
Разделим последовательность I(a) на отрезки s (слова) длиной по k символов.
t0
================================= l
| k | k | k | . . . | k |
На отрезках s построим словарь S(s). Вместо отрезков s в текстовой последовательности I(a) поставим их номера (индексы, ссылки) в словаре S. В результате исходная последовательность I(a) перейдет в последовательность ссылок, аналогичную I(a), но более короткую (m1 = l/k) и словарь S1.
1 2 n1
1 1 2 . . . m1 + |=====||=====|...|=====| S1
Проводя такую же процедуру, но уже с последовательностью ссылок, мы получаем новую последовательность ссылок но уже в k2 раз более короткую (m2 = l/ k2), чем исходная I(a) и иерархическую структуру словарей S1 и S2.
1 1 2 1 3 4 5 6 7 . . . m1
| k | k | . . . | k |
1 2 n2
|=====||=====|...|=====| S2
1 2 3 1 . . . m2 + |=====||=====|...|=====| S1
Многократно, а точнее, N=[logk(l)] раз повторяя эту процедуру мы получаем N-уровневую иерархическую структуру словарей и преобразованную исходную текстовую последовательность I(a) длиной в один символ-код, который всегда равен единице и соответственно его можно опустить. Т.е. вся исходная текстовая последовательность I(a) перешла в иерархическую структуру словарей (многодольный граф).
1
|=====| SN
. . .
1 2 n2
|=====||=====|...|=====| S2
1 + |=====||=====|...|=====| S1
Это взаимно однозначное преобразование. Проводя его в обратном порядке, мы получаем исходную последовательность I(a) длиной в l символов.
Как пример рассмотрим формирование НСС уже на конкретной последовательности, приведенной к двоичному виду:
l0={01100101011011011010001101101001}.
На первом шаге выберем некоторую длину, например k1=2, и разделим исходную последовательность длиной l0 на подпоследовательности (цепочки) по k1 символов.
Каждую уникальную цепочку по k1 символов занесем в словарь в порядке ее появления в l0 (L1 - 1-й слой НСС), а вместо нее поставим ссылку на эту цепочку символов в словаре.
1-й шаг k1=2
l0 01100101011011011010001101101001
Номера цепочек
в словаре
Последовательность ссылок 1 2 3 4
l1 1 2 1 1 1 2 3 1 2 2 4 3 1 2 2 1 + "01"10"11"00" L1
В результате исходная последовательность символов превратится в последовательность ссылок (l1) и словарь (L1), причем, число элементов в последовательности ссылок l1 в k1 раз меньше, чем число символов в исходном тексте l0.
Повторим эту процедуру. Разделим последовательность ссылок l1 по k2 (k2=2) ссылок и сформируем новый иерархический словарь, представляющий совокупность словарей L1 и L2.
2-й шаг k2=2
l1 1211123122431221 Номера цепочек в словарях
1 2 3 4 5 6
12 11 31 22 43 21 L2
l2 1 2 1 3 4 5 1 6 + "01"10"11"00" L1
В результате получим последовательность ссылок l2 на словарь L2 и два словаря L1 и L2, причем, число элементов в этой последовательности (l2) в k2 раз меньше, чем число число элементов в последовательности l1.
Многократно (а точнее [logk(l)], где k - параметр системы) раз применяя эту процедуру, получим рекурсивно-ссылочную НСС вместо исходного текста l0.
3-й шаг k3=2
l2 12134516 Номера цепочек в словарях
1 2 3 4 5 6
12 13 45 16 L3
12 11 31 22 43 21 L2
l3 1 2 3 4 + "01"10"11"00" L1
4-й шаг k4=2
Номера цепочек в словарях
l3 1234 1 2 3 4 5 6
12 34 L4
12 13 45 16 L3
12 11 31 22 43 21 L2
l4 1 2 + "01"10"11"00" L1
5-й шаг k5=2
Имена
l4 12 словарей
12 L5
12 34 L4
12 13 45 16 L3
12 11 31 22 43 21 L2
l5 1 + "01"10"11"00" L1
Таким образом, исходная последовательность символов полностью переходит в НСС (рис 1.1). Следует отметить, что если на каком-либо шаге построения НСС длина последней цепочки символов в li последовательности меньше параметра ki, то эту цепочку следует дополнить символами “0”.
П олученную НСС можно преобразовать до более привычного вида, добавив новый словарь с "привычными" терминальными элементами "0" и "1" (алфавит - А) и заменив терминальные элементы словаря L1, ссылками на новые терминальные элементы. В результате НСС приобретет следующий вид (рис. 1.2).
Все словари (слои) этой НСС строятся по одному принципу, кроме А (или 1-го) словаря. Этот словарь является "терминальным" и служит для интерфейса между НСС и исходным текстом l0, который кодируется в двоичном виде.
НСС и исходный текст l0 являются взаимопереводимыми и эквивалентными с точки зрения содержимой информации, но НСС обладает рядом полезных свойств, которые заслуживают особого рассмотрения, а соответственно и НСС.
Данное структурное описание НСС можно представить в виде многодольного графа (рис. 1.3).
Д ля большинства предметных областей при данном преобразовании текстовой формы (I(a)) в иерархически-сетевую нейросемантическую структуру (НСС) происходит выигрыш в ресурсе (R>1). Для этого определяют коэффициент выигрыша ресурса
R=R(I(a)) / R(НСС), (1.1)
где R(I(a)) – ресурс исходной текстовой последовательности, определяемый в битах; R(HCC) - ресурс НСС, определяемый как размер памяти, необходимый для хранения НСС (без учета кодирования номеров словарей).
Для рассмотренного примера коэффициент выигрыша ресурса составляет
R=32/95=0,337.
Очевидно, что если разделять текстовую форму в процессе ее преобразования на адаптирующиеся отрезки длиной в k=f(ИП,I(a)), то можно существенно улучшить соотношение (1.1). Для этого выполняют нейро-лингвистическое преобразование.
Нейро-лингвистическое преобразование
Механизм адаптации длины отрезков иерархически-сетевого преобразования текстовой формы с целью повышения эффективности соотношение (1.1) называется нейро-лингвистическим преобразованием.
Суть его заключается в следующем. Для всех элементов словарей НСС рассчитываются значения счетчиков, которые определяют - сколько раз использовался этот элемент словаря (d) в процессе НСС преобразования.
Затем в каждом словаре (S1, S2, ... , SN) вычисляется значение порога dpj
,
, (1.2)
где dpj – пороговое значение для j–го словаря; dij - частота встречаемости i–го элемента j–го словаря.
З атем помечаются все элементы словарей (*), частота активации которых превышает dp (рис. 1.4).
Далее, осуществляется итеративный прогон уже обработанной текстовой последовательности (или же берется следующая порция) I(a) и закрашиваются участки, соответствующие "активным" элементам словаря S1.
======*****==******======******====******====== I(a)
. . . |///////| |/////////| >k |/////////| |////////| . . .
k k
Со всеми незакрашенными участками I(a) между закрашенными осуществляется вышеописанное иерархически-сетевое преобразование. Для всех остатков меньших k (k) формируются неполные элементы словаря S1. Аналогичная процедура повторяется для словарей S2, S3, ... , SN.
Затем снова подсчитываются частоты использования элементов словарей, и выполняется закраска текстовых последовательностей, и т.д., до тех пор пока не получается минимальная структура иерархических словарей. При этом коэффициент выигрыша ресурса возрастает и формируется нейро-семантическая структура с элементами иерархических словарей переменной длины (k).
-