- •Нижегородский Государственный Технический Университет им р.Е. Алексеева
- •Содержание
- •1.1.1.1 Шаблонные системы
- •1.1.1.2 Генерация текстов на основе базы данных
- •1.1.1.3 Генерация текстов из семантического представления
- •Морфологический разбор слов
- •1.3.3 Выбор средств реализации
- •2.2 Разработка алгоритма морфологического разбора
- •Выбор текста предметной области, на основе которого будет происходить синтез
- •Построение словарей для словосочетаний и триграмм
- •Считывание условий синтеза нового текста
- •Генерация текста
- •Вывод результата
- •2.4.3 Соглашение об именовании классов, переменных и методов
- •3 Расчеты и оценки качества получаемого текста
- •4 Разработка руководства пользователя
2.4.3 Соглашение об именовании классов, переменных и методов
Очень важно, чтобы программист при просмотре чужого кода быстро понимал его. Читаемость кода достигается шаблонизацией типичных выражений и соглашением о наименовании. Такой подход позволяет задействовать быстрые ассоциативные механизмы нашего мозга и не привлекать медленное сознание там, где без него можно обойтись.
Также, единый стиль позволяет учесть часто встречающиеся ошибки в кодировании и избежать их. Самый важный момент в стиле – это стиль обозначения имен переменных. В идеале, прочитав некое название, можно сходу определить, что именно оно обозначает – тип, переменную, константу, функцию, или что-то еще.
Имена функций, переменных, классов и файлов выбраны так, что отражают смысл сущности за которой закреплены. Для обозначения типов и переменных используются существительные, а обозначения функций – глаголы. Длинна имени подобрана таким образом, чтобы четко описать что делает эта переменная или функция. Названия не содержат аббревиатур, за исключением общеизвестных (например, DNS). К названию глобальной переменной добавляется префикс g_, для констант – k_.
В написании составных имен преобладает стиль CamelCase. При таком написании несколько слов пишутся слитно без пробелов, при этом каждое слово пишется с заглавной буквы. Различают два варианта CamelCase-написания в зависимости от того, прописная или строчная первая буква: UpperCamelCase (PascalCase) и lowerCamelCase. В Microsoft .NET принято использовать UpperCamelCase для наименования классов и методов. В качестве альтернативы применяется способ создания имён в программном коде стиль_через_подчёркивание.
|
|
|
|
|
ВКР-НГТУ-230200.62-(07-КТ-2)-28-2010 ПЗ
|
Лист |
|
|
|
|
|
||
25 |
||||||
Изм. |
Лист |
№ докум. |
Подп. |
Дата |
3 Расчеты и оценки качества получаемого текста
В качестве примера работы программы генерируется текст длинной 3000 слов и оценивается его качество, при помощи частотного словаря, взятого с web-ресурса http://bokrcorpora.narod.ru/frqlist/frqlist.html. Выбранный словарь содержит 5000 наиболее часто используемых лемм, что покрывает 82.0604% текста. Исходный текст выбирается случайным образом.
Рисунок 3 – Исходный и сгенерированный тексты
Сравниваются эмпирические частоты F самых употребляемых слов с их словарными значениями с учетом погрешности ΔF. Частоты вычисляются по формуле:
F = Nслова / Nкол-во слов ,
где Nслова – число повторений данного слова в тексте, а Nкол-во слов – общее количество слов в тексте. Подробный расчет приведен на примере предлога «в».
F«в» = 113/3000 = 0,0376 F «в» слов. = 28176.20/ 1000000 = 0,02818
ΔF«в» = 0,00005 ΔF «в» слов. = 9005.34 / 1000000 = 0,0090
F«в» = 0,0376 ± 0,00005 F «в» слов. = 0,02818 ± 0,0090
Аналогично рассчитываются частоты других слов (см. Табл.4).
|
|
|
|
|
ВКР-НГТУ-230200.62-(07-КТ-2)-28-2010 ПЗ
|
Лист |
|
|
|
|
|
||
26 |
||||||
Изм. |
Лист |
№ докум. |
Подп. |
Дата |
Таблица 4 – Сравнение частот некоторых слов
слово |
эмпирическая частота |
теоретическая частота |
в |
0,0376 ± 0,00005 |
0,02818 ± 0,0090 |
и |
0,031 ± 0,0005 |
0,0348 ± 0,0101 |
как |
0,011 ± 0,0005 |
0,0069 ± 0,0036 |
человек |
0,002 ± 0,0005 |
0,0028 ± 0,0023 |
Полученный результат указывает, что частоты употребления слов в сгенерированном тексте с учетом погрешности, совпадают с теоретическими.
Другим индикатором качества составления текста является закон Ципфа (Зипфа), который гласит, что если составить список из всех слов текста и отсортировать его в порядке убывания частоты(F) используемости слов, то для любого слова произведение его порядкового номера(R) в этом списке на частоту использования будет равно постоянной величине(C). С поправкой Мандельброта соотношение примет вид: FRY = C, где Y – близкая к единице переменная величина, меняющейся в зависимости от параметров текста, например жанра. Среднее значение этой величины для русскоязычного текста равно 0,88254. Подробный расчет приведен на примере слов «и» и «с», занимающих 2 и 3 место в ряду убывания частоты использования соответственно.
F «и» = 93/3000 = 0,031 F «с» = 64/3000 = 0,02133
R «и» = 2 R «с» = 3
FRY = 0,031 • 2 0,88254 = 0,0571 FRY = 0,02133 • 3 0,88254 = 0,0568
Применяя закон к другим словам, можно получить график, отражающий общую зависимость (см. рис. 4).
Рисунок 4 – Общий вид кривой, отображающей закон Ципфа
Оценив характеристики двумя способами, приходим к выводу, что выходной набор слов подчиняется основным закономерностям присущим тексту, а значит, генерация произведена очень качественно.
|
|
|
|
|
ВКР-НГТУ-230200.62-(07-КТ-2)-28-2010 ПЗ
|
Лист |
|
|
|
|
|
||
27 |
||||||
Изм. |
Лист |
№ докум. |
Подп. |
Дата |