Метод автоматизированного пополнения словаря ударений

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    536,11 Кб
  • Опубликовано:
    2015-04-21
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Метод автоматизированного пополнения словаря ударений

Введение

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

Проблематику культуры речи начали рассматривать еще философы античности, такие как Аристотель, Сократ и Платон. Демократическое государственное устройство Древней Греции способствовало активному вмешательству людей разных сословий в политическую жизнь страны. Гражданам часто приходилось выступать публично. Для того чтобы уметь донести до публики свою точку зрения или наоборот - опровергнуть доводы оппонента, требовались определенные навыки убеждения и опыт устного воздействия на аудиторию.

Такие условия стали предпосылкой к зарождению риторики - науки об искусстве красноречия [1]. Риторика рассматривалась как важнейшая часть культуры мышления (философского, политического и художественного), и позже вошла в число «избранных наук». Принято считать, что понятие «культуры речи» было впервые упомянуто именно в это время.

В нашем государстве появление понятия «культура речи» связывают с возникновением новой советской интеллигенции в начале XX века, сопровождавшейся борьбой за чистоту русского языка. В этот период в свет выходят труды [2] и [3], сформировавшие базис к последующему приобщению людей к грамотной речи. Кроме того, в советский период существовала цензура в сфере СМИ, что благоприятно сказывалось на общем культурном состоянии страны, активно внедряя в массы прообраз грамотной речи.

За последние десятилетия наблюдается спад общего культурного развития общества, произошли значительные негативные перемены в формировании облика русского языка. В первую очередь эта тенденция касается культуры речи. Демократизация средств массовой информации и глобальная информатизация стали негативно сказываться на уровне литературной образованности общества, так как в этих сферах грамотность практически никак не регулируется. Язык художественной литературы, политики, средств массовой информации влияет на формирование языковой культуры и языкового идеала. Читая газеты и журналы, слушая радио- и телепередачи, человек неосознанно запоминает те или иные языковые нормы, устойчивые (в том числе и заведомо ложные) обороты, которые впоследствии закрепляет через прямое общение, Интернет-переписку и т.п. как эталон речи. Расхождения между литературным языком и существующим в настоящее время многообразием речевых «субкультур» очевидны [4]. Все это вместе взятое ведет к обеднению активного словарного запаса. Язык просто меняется, отражая то, что происходит вокруг нас.

Грамотность играет ключевую роль в публичной речи. Если же оратор допускает многочисленные стилистические и грамматические ошибки, слушатель отвлекается от главной мысли. Нарушается автоматизм восприятия, от чего внимание расходуется не на смысл речи, а на распознавание ее отдельных языковых единиц. Кроме того, неграмотная речь через эстетическое отторжение вызывает отторжение информации как таковой. Поэтому соблюдение языковых норм и правил, преодоление штампов и канцеляризмов, жаргонизации и вульгаризации языка существенно облегчает процесс общения [5].

Правила языка и языковые нормы фиксируются в соответствующих лингвистических словарях. Существует огромное множество словарей, различающихся по определенным типологическим признакам (толковые [6], орфографические [7], орфоэпические [8], синонимические [9] и т.д.). Однако со временем словари утрачивают свою актуальность. Словари нуждаются в постоянном регулировании и обновлении, чтобы их содержание было всегда наиболее подробным и полным. Неполнота электронного словаря - проблема вечная и, к счастью, гораздо легче решаемая, чем неполнота «бумажного» варианта. Необходимо только время и аккуратность человека, который пополняет словарь. Аккуратность нужна, в частности и потому, что ввод каждого нового слова может затронуть уже имеющийся размеченный массив: например имя собственное Мѝла «испортит» равноправие нарицательных форм мѝла и мила̀ [10].

Ручной метод пополнения является наиболее распространенным: человек сам вносит соответствующие коррективы, если он обладает конкретными знаниями. Но данный метод требует больших трудозатрат. Поэтому в зависимости от типологии принимаются попытки разработать автоматизированные системы, способные значительно сократить трудоемкость пополнения словарей.

Следует отметить, что невозможно разработать и использовать единый алгоритм пополнения для словарей с различной типологией, так как их строение в корне отличается друг от друга. В каждом отдельно взятом случае следует принимать во внимание все языковые особенности, по которым группируются элементы словаря. Для словаря ударений и орфоэпического словаря до сих пор не было разработано достаточно качественных методик автоматизированного пополнения, в то время как для русского языка эта задача достаточно актуальна: в русском языке нет формальных правил постановки ударения, в отличие от таких языков, как польский, венгерский и др. Расположение ударений играет немаловажную роль в стихосложении.

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

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

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

В данной работе приведено подробное описание разработки такой системы и результаты ее работы.

1. Назначение и область применения

Автоматизированная методика пополнения словарей ударений, описанная в данной работе, может быть внедрена в более крупные системы, использующие такие словари для решения конкретных задач.

.1 Синтез речи

Синтезатор речи - это система преобразования текста в речь. Первые системы синтеза речи начали появляться уже в начале XX века. Все чаще мы можем наблюдать повсеместное использование таких систем, призванных автоматизировать выдачу конкретной информации:

·   воспроизведение электронных книг;

·        воспроизведение информации в информационно-справочных системах для помощи слепым и немым;

·        объявление отправления поездов и авиарейсов;

·        выдача информации о каких-либо технологических процессах на производстве.

Синтезаторы речи все еще далеки от совершенства: требуется большой объем памяти для хранения знаний о том, как воспроизводить текст; часто наблюдается нарушение интонации в слишком длинных предложениях; голос синтезатора, как правило, больше напоминает речь робота, чем речь живого человека. Инженеры постепенно решают каждую из этих проблем, улучшая качество таких систем.

Методы синтеза человеческой речи основаны на использовании двух моделей [11]:

1.     Модель компилятивного синтеза;

2.      Формантно-голосовая модель.

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

Формантно-голосовая модель основана на моделировании речевого тракта человека. Такая модель может быть реализована с применением нейронных сетей и допускает самообучение. Из-за высокой сложности точного моделирования особенностей речевого тракта формантно-голосовая модель обладает относительно низкой точностью синтезируемых звуков речи.

Решение задачи расстановки ударений поможет системам, работающим с заведомо неизвестным текстом, воспроизводить речь более естественно. Для определения ударения можно использовать заготовленный словарь произношений, содержащий сведения об ударении. Система производит поиск нужного слова, находит указание на ударный слог и осуществляет пошаговое воспроизведение каждой фонемы, соблюдая правильную интонацию. Наиболее известными синтезаторами речи, использующими словари ударений, являются Govorilka, Ice Book Reader и Acapela Alyona.

.2 Генерация рифм

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

Генераторы рифм можно разделить на два вида:

·        добавлению рифмующихся строк к изначально заданным

·        подбор рифмы к одному слову

Первый метод генерации почти полностью исключает авторское вмешательство, подбирая строки практически лишенные какой-либо осмысленности. Второй метод является более гибким и точным, требуя от автора лишь уточнения рифмующегося слова из списка готовых вариантов. Именно такие системы наиболее популярны в сети Интернет на данный момент. Для работы таких сервисов необходимо заготовить базу данных словоформ.

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

1.3 Формирование поэтических корпусов


Поэтические произведения являются одним из важнейших источников изучения языка. Однако вследствие трудоемкости обработки таких текстов и их неравномерной доступности исследователи не имеют возможности в полной мере использовать этот материал. Для этих целей следует использовать размеченный корпус поэтических текстов. Такой справочник позволит иметь систематическую картину языковых норм и правил, по которым филологи смогут выявить соответствующие закономерности развития языка. Подавляющее большинство задач с помощью корпуса можно решать эффективно и быстро: во многих случаях получение примеров с заданными свойствами, на сбор которых традиционными методами нужно затратить не один день работы, оказывается возможным буквально за секунды. В других случаях использование корпуса существенно упрощает процедуру получения нужных примеров [12].

Корпус поэтических текстов позволяет изучить следующие аспекты развития языка:

·   Система ударений

·        История произношения

·        История лексики

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

На сайте национального корпуса русского языка (<#"785383.files/image001.gif">e)

Где А = {«-», «/»} - алфавит ритмического рисунка (количество строк матрицы);

e - количество элементов в строфе ритмического рисунка (количество столбцов матрицы);

элементы матрицы - счетчики количества вхождений соответствующего элемента ритмического рисунка в соответствующей позиции.

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

4.5 Формирование эталонного ритмического рисунка

Система готова к созданию эталонного ритмического рисунка. На основе матрицы (9), система приступает к построению гипотез. В зависимости от соотношения значений столбца, относящихся к одному кортежу, возможны следующие ситуации:

·        Если элемент a встречается более одного раза, а элемент b не встретился ни одного раза, в эталон записывается элемент a;

·        Если элемент a встречается более чем в 4 раза чаще, чем элемент b, в эталон записывается элемент a;

·        Если элемент a встречается менее чем в 4 раза чаще, чем элемент b, в эталон записывается элемент a’, означающий то, что в данной позиции наиболее вероятно расположение элемента a, чем элемента b («=» для элемента «-» и «%» для элемента «/»);

·        Если элемент a встречается столько же раз, сколько элемент b, в эталон записывается знак неопределенности - «X»;

В результате получаем эталонный ритмический рисунок.

.6 Расстановка ударений в неизвестных словах и занесение слов в словарь

Система берет для анализа исходный ритмический рисунок. В нем она находит строфы, в которых есть неизвестные слова по наличию в строфе «?» элементов. После этого осуществляется параллельное считывание слов стихотворения и элементов исходного ритмического рисунка (гласная в стихотворении = знак ударности/безударности в ритмическом рисунке). По позиции «?» элемента в исходном ритмическом рисунке система находит элемент эталонного ритмического рисунка, расположенного в аналогичной позиции и пошагово заменяет элементы исходного ритмического рисунка элементами эталона. Например, неизвестное слово «картина», записанное в исходном ритмическом рисунке как «? ? ?», должно определиться как «- / -». По полученному ритмическому рисунку система сможет автономно решить, в какую категорию словаря ударений следует добавить данное слово.

Для этого снова вводится функция (8). Она берет значения своих параметров на основе новой ритмической схемы слова. Для функции слова «клавиатура» параметр v будет равен 5, а параметр a - 4. Далее используется модифицированная формула (7) для определения категории словаря, которую следует дополнить данным словом

(10)   accentRL = vowelNumber - accentLR + 1

Полученное значение представляет собой ссылку на соответствующую категорию словаря. Так слово «клавиатура» будет добавлено в группу №2 (предпоследняя ударная гласная).

Если исходному ритмическому рисунку слова соответствует эталонный ритмический рисунок, у которого имеются неоднозначные или вероятностно ударные/безударные позиции из-за недостатка исходных данных, система передает контроль пользователю для ручного указания позиции ударной гласной. Таким образом, если система не смогла сформулировать однозначную гипотезу постановки ударения в слове «клавиатура» и ритмический рисунок представляет собой, например, «- - - % -», программа останавливает свою работу и ждет команды пользователя. Введенный пользователем результат сохраняется, и по нему происходит описанное выше добавление слова в словарь.

Данная процедура повторяется для всех неизвестных слов в стихотворении.

Последовательность выполнения программы можно представить в виде следующей схемы:

Схема 1. Выполнение программы

 

5. Структура системы

 

.1 Структура словаря


Элементы словаря должны быть сгруппированы по позиции ударной гласной, считая с конца (№1 - группа, в которой хранятся слова с последней ударной гласной, №2 - слова с предпоследней ударной гласной и т. д.) для того, чтобы система имела быстрый доступ к соответствующей категории для оперативного пополнения.

Каждая группа должна быть отсортирована по алфавиту. Сортировочную операцию следует проводить после каждого обновления базы.

 

.2 Структура стихотворения


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

6. Конструкторско-технологическая часть

.1 Выбор технологии программирования

Технология программирования - совокупность методов и средств, используемых в процессе разработки ПО. Технология программирования представляет собой набор технологических инструкций, включающих в себя:

·      указание последовательности выполнения технологических операций;

·              перечисление условий, при которых выполняется та или иная операция;

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

Кроме набора операций и их последовательности, технология также определяет способ описания проектируемой системы. Для разработки системы, описанной в данной работе, была выбрана технология объектно-ориентированного программирования (ООП). В данном разделе, на основе сведений, взятых из [15] и [16], приводится описание данной технологии.

.2 История возникновения ООП

С момента изобретения компьютера методологии программирования радикально изменились. В частности на это повлияла возрастающая сложность программ. К примеру, программы для первых компьютеров представляли собой последовательности машинных команд, записанных в двоичном коде с помощью переключения специальных тумблеров. Такой подход оставался вполне работоспособным до тех пор, пока длина программ не стала превышать несколько сотен строк. По мере увеличения размера программ возникла необходимость в новом способе программирования. В результате появился язык ассемблера, позволяющий закодировать машинные инструкции с помощью символов в более понятный для человека вид. Размер программ продолжал увеличиваться, поэтому программистам понадобился еще более мощный язык программирования, позволяющий работать с гораздо более сложными структурами и алгоритмами. Первым широко известным языком программирования оказался Fortran, с которым связывают начало активного развития и применения языков высокого уровня. Несмотря на это, Fortran трудно назвать ясным и понятным языком, позволяющим создавать простые и наглядные программы.

Шестидесятые годы дали толчок развития структурного программирования. Основными средствами его воплощения стали языки C и Pascal. Структурные языки программирования позволили легко создавать достаточно сложные программы. Кроме того, они характеризуются поддержкой изолированных подпрограмм, локальных переменных и богатым выбором управляющих конструкций. Несмотря на то, что структурные языки представляют собой мощное средство, они не позволяют создавать очень крупные проекты.

Каждый новый метод программирования позволял создавать все более сложные и крупные программы, улучшая предыдущие подходы. До изобретения объектно-ориентированного программирования многие проекты достигали границ, за которыми структурный подход уже не работал. Именно для преодоления этих препятствий была создана объектно-ориентированная парадигма.

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

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

.3 Описание принципов ООП

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

Для поддержки объектно-ориентированного программирования язык должен обладать тремя фундаментальными свойствами: инкапсуляцией, полиморфизмом и наследованием.

Инкапсуляция.

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

Внутри объекта код и данные могут быть закрытыми или открытыми. Закрытый код или данные объекта доступны только из другой части этого же объекта. Иначе говоря, к закрытой части кода или данных невозможно обратиться извне. Если код или данные является открытыми, они доступны из любой части программы. Как правило, открытая часть кода обеспечивает управляемое взаимодействие (интерфейс) с закрытыми элементами объекта.

Полиморфизм.

Полиморфизм - свойство, позволяющее единообразно ссылаться на объекты различных классов. Полиморфизм позволяет упростить программу, создавая один интерфейс для выполнения разных действий. Ответственность за выбор конкретного метода в возникшей ситуации перекладывается на компилятор. Программисту не обязательно вмешиваться в этот процесс. Нужно лишь помнить правила и правильно применять общий интерфейс. Полиморфизм делает классы еще удобнее и облегчает расширение и поддержку программ, основанных на них.

Наследование.

Наследование - это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым, родительским или суперклассом. Новый класс - потомком, наследником или производным классом. Другими словами, это механизм, позволяющий создавать иерархии объектов. При этом свойства объектов, расположенных на более высоких уровнях иерархии, автоматически относятся ко всем порожденным от них объектам.

Большинство объектно-ориентированных языков программирования поддерживает только единичное наследование, т.е. класс может иметь только один класс-родитель. Лишь в некоторых языках возможно так называемое множественное наследование, подразумевающее порождение класса от двух или более классов.

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

.4 Особенности реализации

В современных объектно-ориентированных языках программирования объект является значением того или иного класса. Класс, в свою очередь, представляет собой комплексный тип данных, который имеет в своем составе:

Поля данных

Параметры создаваемого объекта, которые определяют его состояние и свойства. Поля представляют собой некоторые переменные и константы, объявленные для использования данным классом.

Методы.

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

.5 Обоснование выбора технологии

Расширяемость.

Объектно-ориентированные системы являются наиболее открытыми и гораздо легче поддаются внесению изменений и нововведений. Расширение функциональности отдельных блоков ведется отдельно от других частей программы, что существенно сокращает сроки реализации новой логики.

Ясность.

Объектно-ориентированный код легко поддерживать, так как
он следует весьма жёстким правилам написания кода. Например, когда разработчик дополняет или перерабатывает код, он может легко обнаружить внутреннюю структуру кода и поддерживать код время от времени. Кроме того, классы позволяют абстрагироваться от деталей реализации, обладая достаточно наглядной структурой. Благодаря этому, сопровождением программы может заниматься посторонний программист, не тратя времени на понимание логики.

Эффективность.

Идея ООП в действительности была разработана для повышения эффективности и облегчения процесса разработки. Поскольку процесс программирования в ООП представляет собой разбиение какой-то глобальной задачи на ряд подзадач и их последовательное решение, итоговая трудоемкость разработки крайне мала.

Надежность.

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

7. Программная платформа и язык программирования

Для решения поставленной задачи необходимо использовать функциональную, эффективную и удобную платформу для разработки, позволяющую применять принципы объектно-ориентированного программирования. В качестве такой платформы была выбрана среда .NET. В этом разделе приводится подробное описание структуры и возможностей .NET. Подробнее с технологией .NET можно ознакомиться в [17], [18], [19] и [20].

.1 Описание технологии

До начала XXI века применялась методика трансляция программы, заключающаяся в компилировании приложения, написанного в понятном для программиста виде, в последовательность машинных инструкций, понятных процессору. В 2002 году корпорация Microsoft изобретает новую технологию NET. В данной технологии компилирование программы делится на два шага. Сначала программа компилируется в термины машинно-независимого языка (CIL) и сопровождается метаданными - подробными инструкциями о программе и обо всем необходимом для ее успешного выполнения. После этого в дело вступает общеязыковая среда исполнения (CLR), которая переводит управляемый код в набор исполняемых машинных инструкций, обеспечивая различные вспомогательные операции выполнения программы.

Благодаря такому двухфазовому подходу к кодированию упрощается распространение программ: приведенная в CIL программа может выполняться на любом компьютере, имеющем соответствующую среду исполнения. Причем в управляемый код включаются все системные сведения, необходимые для успешной работы программы. Кроме того, такой подход способствует повышеню защищенности данных: в управляемых кодах нет информации о файловой системе и способах запуска, а сама среда исполнения сконструирована таким образом, чтобы программно-аппаратные средства не пострадали от программных ошибок.

.2 Общеязыковая инфраструктура

Для реализации подобной технологии потребовалось создание целой инфраструктуры. Общеязыковая инфраструктура (CLI) - это набор спецификаций, определяющих определенные аспекты технологии .NET:

·   Общая система типов (CTS)

CTS - это некий стандарт, который описывает способы взаимодействия программ и их частей, написанных на разных языках программирования. Каждый компилятор, вырабатывающий CIL-инструкции, должен использовать только типы данных CTS.

·   Общий промежуточный язык (CIL)

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

·   Расширяемые метаданные

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

·   Библиотека классов (.NET Framework)

Библиотека классов - ключевой компонент технологии .NET, позволяющий использовать в программе базовые операции и функции, такие как операции ввода и вывода, обработка исключений, создание Windows приложений и т.д.

·   Служба согласования платформ (P/Invoke)

P/Invoke обеспечивает согласованное взаимодействие между .NET Framework и ОС.

·   Стандартный формат исполняемых файлов

В заголовке файла имеется бит, который указывает на то, что файл относится к .NET. Обнаружив этот бит, загрузчик обращается к среде CLR, которая осуществляет последующую работу с файлом.

.3 Особенности технологии

.3.1 Библиотека классов и пространства имен

Объектная ориентация является отличительно особенностью технологии. В .NET классы организованы в виде ветвящейся древовидной структуры, которые также называются пространствами имен.

Все стандартные пространства имен порождены от пространства System, в котором описан базовый класс Object. В пространстве System определены значащие и ссылочные типы данных, события, интерфейсы и атрибуты.

До технологии .NET практически все промышленные операционные системы строились из функций API (Application Program Interface - интерфейс прикладных программ). Каждая из этих функций в отдельности решала свои небольшие локальные задачи. В системах с .NET роль API-функций играют объекты.

7.3.2 Общеязыковая среда исполнения

Общеязыковая среда исполнения (CLR) играет ключевую роль в организации всей технологии. Она поддерживает строгую систему правил, которой должен следовать промежуточный язык. Этот язык представляет собой код, который называется управляемым. Следует отметить, что входной поток данных может представлять собой и неуправляемый код, а также управляемый и неуправляемый одновременно. Неуправляемые фрагменты входных данных являются обычными машинными инструкциями, которые без изменений поступают в процессор. Указателем на то, что входной поток содержит управляемый код, является специальный бит в заголовке файла. Управляемый код порождает объекты с управляемым временем жизни. Такие объекты автоматически уничтожаются, когда надобность в них отпадает. Это свойство наделяет среду CLR способностью борьбы с утечками памяти, что благоприятно сказывается на производительности программ.

Для создания объектов с управляемым временем жизни в управляемый код помещаются также метаданные, которые содержат некоторые инструкции о порождаемых объектах, их свойствах, методах и событиях. Управляемый код перед запуском должен пройти процесс верификации, который определяет, будет ли код пытаться получить доступ к неправильным адресам памяти или производить другие неверные действия. Код, удовлетворяющий верификации, называется надежным. Возможность верификации позволяет CLR обеспечивать высокий уровень изолированности объектов при минимальном снижении производительности.

CLR облегчает разработку компонентов и программ, объекты которых взаимодействуют с помощью языка CIL. Объекты, написанные на разных языках, могут взаимодействовать друг с другом, и их поведение может быть тесно связанным. Межъязыковое взаимодействие возможно потому, что языковые компиляторы и инструменты целевой машины используют общую систему типов, определенную в CTS, и следуют общим правилам при создании, применении и связывании типов.

.3.3 Автоматическое управление памятью

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

Когда инициируется новый процесс, для него резервируется непрерывное адресное пространство, называемое управляемой кучей. Управляемая куча поддерживает указатель на следующий распределяемый в памяти объект. Первоначально он указывает на базовый адрес управляемой кучи. Все типы указателей распределяются в управляемой куче. Когда создается первый указатель, память для ассоциированного с ним типа начинается с базового адреса кучи. При создании следующего указателя память выделяется непосредственно за первым. Пока адресное пространство доступно, процесс продолжается описанным образом.

Распределение в управляемой куче идет быстрее, чем в неуправляемой. CLR просто наращивает значение указателя кучи, что происходит почти так же быстро, как заталкивание данных в стек. Кроме того, так как новые объекты распределяются в памяти последовательно, приложение обращается к ним быстрее.

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

·   поколение 0 - недавно появившиеся объекты, которые еще не проверялись сборщиком мусора;

·        поколение 1 - объекты, которые пережили одну проверку;

·        поколение 2 - объекты, пережившие более чем одну проверку.

При очередном запуске процесса сбора мусора сборщик проверяет и удаляет ненужные объекты поколения 0. Если при этом освободилось достаточно памяти, уцелевшие объекты переводятся в поколение 1 и процесс сбора завершается. Если после проверки поколения 0 памяти недостаточно, проверяются объекты поколения 1, а затем (при необходимости) - и поколения 2. Таким образом, за счет такой технологии только что созданные объекты обычно удаляются быстрее, а процесс сбора мусора минимизируется по времени.

7.3.4 Сборки

Сборки - фундаментальные части программ для .NET Framework. Сборка выполняет следующие функции:

1)  Сборка содержит код, который выполняет CLR. СIL-код в файле формата РЕ не будет исполняться, если не имеет связанного с ним манифеста сборки. Сборка может иметь только одну точку входа.

2)      Сборка формирует границы защиты. Сборка есть блок, в котором запрашиваются и выдаются разрешения.

)        Сборка формирует границы типа. Каждый идентификатор типа включает имя сборки, в которой он расположен. Тип, загруженный в пределах одной сборки, в общем случае может отличаться от одноименного, но загруженного в другую сборку.

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

)        Сборка определяет границы контроля версий. Сборка представляет собой минимальный блок в CLR, все типы и ресурсы которого имеют ту же версию, что и версия блока.

)        Сборка определяет единицу распространения. В момент старта должны быть загружены только первоначально вызванные сборки. Другие сборки, такие как ресурсы локализации или сборки, содержащие вспомогательные классы, могут загружаться по требованию. Это упрощает приложения и делает их меньше, что облегчает загрузку из Интернета.

)        Сборка является единицей, для которой поддерживается параллельное выполнение.

)        Сборки могут быть статическими и динамическими. Статические сборки включают типы .NET Framework (интерфейсы и классы), а также нужные ресурсы. Статические сборки сохраняются на диске в виде РЕ-файлов. Вы можете использовать .NET Framework для создания динамических сборок, которые не сохраняются на диске и создаются (и запускаются) непосредственно в памяти. После выполнения динамическую сборку можно сохранить на диске.

Сборки созданы для упрощения распространения программ и для решения проблем контроля версий, характерных для приложений, основанных на компонентах.

Существует две проблемы совместимости версий:

1)  Невозможно выразить версионные правила взаимодействия между частями приложения и обеспечить их реализацию силами ОС. Текущий подход руководствуется правилом обратной совместимости, которое часто трудно гарантировать. Определения интерфейсов должны быть статическими, раз и навсегда опубликованными, и фрагменты кода должны поддерживать обратную совместимость. Более того, код обычно разрабатывается так, что в каждый момент времени на данном компьютере может быть установлена и запущена единственная версия объекта или DLL.

2)      Нет путей согласования между наборами компонентов, которые собирались совместно, и набором, представленным в момент запуска.

Объединение этих двух проблем порождает конфликты DLL, когда установка одного приложения может нарушить функциональность другого из-за того, что вновь установленный компонент несовместим с предыдущей версией. При возникновении такой ситуации у ОС нет средств обнаружения и устранения проблемы.

ОС Windows частично решает проблему с помощью двух приемов:

1)  Windows разрешает размещать вспомогательные библиотеки DLL в той же папке, что и исполняемый файл. Такие компоненты отыскиваются первыми, и поэтому другие версии игнорируются.

2)      Windows блокирует файлы, которые помещаются в системную папку System32 при установке ОС, и не позволяет другим приложениям замещать их.

Для решения проблем совместимости версий сборки делают следующее.

·   Разрешают разработчику указывать версионные правила взаимодействия между различными компонентами;

·        Реализуют инфраструктуру поддержки версионности;

·        Реализуют возможность параллельного выполнения разных компонентов.

Параллельное выполнение объектов и приложений означает, что CLR дает приложению средства вызова той или иной версии DLL для использования ее специфических возможностей. CLR разрешает параллельное выполнение произвольного количества разных версий одного объекта одновременно в рамках одной сборки.

7.4 Домены приложений

Параллельно запускаемые на одном компьютере программы всемерно изолированы друг от друга. Приложения изолированы прежде всего из-за того, что адресные указатели зависят от процесса. Указатель, переданный из одного приложения другому, никак не может в нем использоваться. Более того, нельзя из одного процесса обратиться непосредственно к другому. Вместо этого приходится применять механизм представителей, которые реализуют косвенные вызовы.

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

Изоляция приложений важна также для безопасности программ. Например, можно запускать приложения из веб-приложения в единственном процессе браузера так, что приложения не будут иметь доступ к другим данным и ресурсам.

Код, исполняемый в одном приложении, не имеет непосредственного доступа к коду или ресурсу другого приложения. CLR обеспечивает изоляцию путем предотвращения вызовов между объектами в разных доменах приложений. Объекты, которыми обмениваются домены, могут быть копиями или передаваться через представителей. Если объект - копия, то его вызов является локальным. Это означает, что и получатель объекта, и сам объект находятся в одном домене. Если объект получен через представителя, то этот объект - удаленный. В этом случае получатель и объект находятся в разных доменах. Как следствие, доступ к метаданным объекта должны иметь оба домена, чтобы обеспечить правильную работу встроенного компилятора для вызова методов.

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

.5 Компилирования программы

.5.1 Компилирование в промежуточный язык CIL

При создании управляемого кода компилятор языка программирования, поддерживающего .NET, переводит исходный код в набор машинно-независимых инструкций языка CIL. Эти инструкции могут затем легко транслироваться в машинно-зависимые. Язык CIL включает инструкции для загрузки, сохранения, инициализации объектов, вызова их методов, а также для логических и арифметических операций, операций управления потоками, прямого доступа к памяти, поддержки исключений и др.

Одновременно с CIL-инструкциями производятся метаданные. СIL и метаданные содержатся в выполняемом файле формата РЕ. Этот файловый формат, который объединяет CIL-код и метаданные, предоставляет операционной системе компьютера всю необходимую информацию для создания CLR-объектов. Присутствие в CIL-кодах метаданных позволяет коду описывать самого себя и, таким образом, отказаться от библиотек типов и языка IDL. CLR находит и извлекает метаданные из РЕ-файла по мере надобности в ходе прогона.

7.5.2 Компилирование CIL-инструкций в машинные инструкции

Перед выполнением CIL-кода он должен быть преобразован в машинные инструкции. В процессе компиляции подсчитываются также те фрагменты кода, которые могут никогда не вызываться. Компилятор преобразует CIL-инструкции по мере надобности и вставляет заглушки на место вызова любого метода. При первом же вызове кода заглушка передается компилятору, который заменяет заглушку реальным кодом. Такого рода обращения к компилятору производятся непосредственно из реальных машинных инструкций, ранее сгенерированных компилятором. Такая методика позволяет существенно повысить скорость исполнения программ.

В ходе компиляции CIL-кода он передается верификационному процессу. При верификации в CIL-коде и метаданных происходит поиск ненадежных фрагментов. Под надежностью типов объектов подразумевается степень их изолированности от других объектов и надежность защиты их от ошибочного или злонамеренного разрушения.

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

.5.3 Исполнение кода

CLR обеспечивает инфраструктуру, которая позволяет управлять процессом исполнения машинного кода, а также предоставляет различные службы, которые могут быть использованы во время исполнения. Перед вызовом метода он должен быть скомпилирован в машинные инструкции. Каждый метод, для которого есть CIL-код, должен вначале генерироваться в машинный и затем выполняться. Каждый следующий раз компилятор не вызывается, но используется созданный им код. Этот процесс повторяется до конца прогона.

Во время выполнения управляемый код получает дополнительное обслуживание, к которому относятся сбор мусора, повышенная защита, взаимодействие с неуправляемым кодом, поддержка межъязыковой отладки, улучшение распространения программ и контроля версий.

.6 Обоснование выбора платформы для разработки

.6.1 Объектно-ориентированный подход

Платформа .NET изначально строится на принципах объектно-ориентированного программирования.

7.6.2 Мощный инструментарий

Поставляемая вместе со средой библиотека базовых классов обладает достаточным функционалом для решения задач практически любой сложности.

.6.3 Разделение кода

В .NET способ разделения кода между приложениями значительно отличается от предшествующих реализаций за счет использования сборок. Сборки обладают формальными средствами для управления версиями и допускают одновременное существование рядом нескольких различных версий сборок.

.6.4 Поддержка языков высокого уровня

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

.6.5 Visual Studio

Среда разработки Visual Studio, поставляемая вместе с .NET, предоставляет необходимый инструментарий для эффективного и быстрого создания приложений с графическим интерфейсом.

.7 Язык программирования C#

Появление технологии .NET повлекло за собой массовую реконструкцию некоторых языков программирования, стремящихся использовать те или иные возможности платформы, такие как C++ и Visual Basic. Microsoft решили предложить разработчикам альтернативу - язык, ориентированный специально .NET и создали C#. Сами разработчики языка описывают его, как простой, современный, объектно-ориентированный и безопасный язык программирования. Синтаксически C# напоминает C++ и Java, что позволило программистам за достаточно короткое время изучить тонкости нового языка.

Несмотря на то, что C# и .NET предназначены в первую очередь для веб-разработки, их также активно применяют для создания приложений, которые должны устанавливаться на машине конечного пользователя, где и будет выполняться вся обработка данных. Разработку таких приложений обеспечивает библиотека Windows Forms, позволяющая проектировать графический интерфейс. Система, описанная в данной работе, разработана именно с помощью библиотеки Windows Forms.

.7.1 Обоснование выбора языка программирования

·   Язык программирования C# претендует на подлинную объектную ориентированность.

·        Язык программирования C# призван реализовать компонентно-ориентированный подход к программированию, который способствует меньшей машинно-архитектурной зависимости результирующего программного кода, большей гибкости, переносимости и легкости повторного использования программ.

·        Принципиально важным отличием от предшественников является изначальная ориентация на безопасность кода.

·        Расширенная поддержка событийно-ориентированного программирования.

·        Язык программирования C# является «родным» для создания приложений в среде Microsoft .NET, поскольку наиболее тесно и эффективно интегрирован с ней.

8. Охрана труда

8.1 Основные термины охраны труда


Охрана труда - система сохранения жизни и здоровья работников в процессе трудовой деятельности, включающая в себя правовые, социально-экономические, организационно-технические, санитарно-гигиенические, лечебно-профилактические, реабилитационные и иные мероприятия [21].

Цель охраны труда - свести к минимуму вероятность поражения или заболевания работающего персонала при максимальной производительности труда.

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

Производственная деятельность - совокупность действий работников с применением средств труда, необходимых для превращения ресурсов в готовую продукцию, включающих в себя производство и переработку различных видов сырья, строительство, оказание различных видов услуг. [21]

Условия труда - совокупность факторов производственной среды и трудового процесса, оказывающих влияние на работоспособность и здоровье работника. [21]

Безопасность - состояние, при котором риск для здоровья и безопасности персонала находится на приемлемом уровне [22].

Безопасные условия труда - условия труда, при которых воздействие на работающих вредных и (или) опасных производственных факторов исключено либо уровни их воздействия не превышают установленных нормативов [21].

Техника безопасности - система организационных мероприятий, технических средств и методов, предотвращающих воздействие на работающих опасных производственных факторов. [23]

Вредный производственный фактор - производственный фактор, воздействие которого на работника может привести к его заболеванию. [21]

Опасный производственный фактор - производственный фактор, воздействие которого на работника может привести к его травме. [21]

В соответствии со стандартом [24] опасные и вредные производственные факторы подразделяются по природе действия на следующие группы:

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

) Химические - вещества и соединения, различные по агрегатному состоянию и обладающие токсическим, раздражающим, канцерогенным и мутагенным действиями на организм человека и влияющие на его репродуктивную функцию.

) Биологические - патогенные микроорганизмы (бактерии, вирусы, риккетсии, спирохеты) и продукты их жизнедеятельности, а также животные и растения.

) Психофизиологические - факторы трудового процесса. К ним относятся физические (статические и динамические перегрузки) и нервно-психические перегрузки (умственное перенапряжение, перенапряжение анализаторов, монотонность труда, эмоциональные перегрузки).

Вредные производственные факторы могут приводить к снижению трудоспособности и профессиональным заболеваниям, опасные факторы - к производственному травматизму и несчастным случаям на производстве.

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

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

Направленность правового регулирования охраны труда определена ст. 37 Конституции РФ, устанавливающей, что каждый имеет право на труд в условиях, отвечающих требованиям безопасности и гигиены. Согласно ст. 212 [21], посвященной обязанностям работодателя по обеспечению безопасных условий и охраны труда, работодатель обязан обеспечить:

·        соответствующие требованиям охраны труда условия труда на каждом рабочем месте <#"785383.files/image003.gif">= 3,74,2 = 15, 54 (м2);

. Определения индекса помещения

= = 1,035;

. Определения коэффициента использования:

Коэффициент использования рассчитывается на основе значений коэффициентов отражения и индекса помещения:

U = 41;

.3 Определение требуемого количества светильников:

= = 3,31;

Выводы

В данной главе были проанализированы основные производственные факторы, которые могут возникнуть при выполнении дипломной работы.

Также были приведены причины их возникновения и основные меры по предотвращению и снижению их негативного воздействия на человека. Для помещения, параметры которого указаны в 6.1, было рассчитано количество светильников, необходимых для благоприятных рабочих условий: осветительная установка должна состоять из 4 светильников ЛВО 4x18 с равномерным распределением по поверхности потолка.

10. Экологическая часть проекта

.1 Влияние ЭМИ на здоровье человека

Тело человека имеет собственное электромагнитное поле (ЭМП), благодаря которому все клетки организма гармонично работают. Электромагнитные излучения (ЭМИ) человека еще называют биополем. Это поле является основной защитной оболочкой человеческого организма от любого негативного влияния. Разрушая ее, органы становятся гораздо более уязвимыми для любых болезнетворных факторов. Слабые электромагнитные поля (ЭМП) мощностью сотые и даже тысячные доли Ватт высокой частоты для человека опасны тем, что интенсивность таких полей совпадает с интенсивностью излучений организма человека при обычном функционировании всех систем и органов в его теле. Биологический эффект электромагнитных полей в условиях длительного многолетнего воздействия накапливается. В результате собственное поле человека искажается, и развиваются множества заболеваний, включая дегенеративные процессы центральной нервной системы, рак крови, опухоли мозга и различные гормональные заболевания.

Наиболее чувствительные к влиянию электромагнитного излучения следующие системы организма человека:

Нервная система

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

Иммунная система

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

Эндокринная система

Исследования показали, что при действии ЭМИ, происходила стимуляция гипофизарно-адреналиновой системы, что сопровождалось увеличением содержания адреналина в крови, активацией процессов свертывания крови. Из-за большого объема адреналина в крови возрастает нагрузка на сердечно-сосудистую систему организма. Происходит сгущение крови, в результате чего клетки недополучают кислород. Негативное влияние ЭМИ также проявляется в форме лабильности пульса и артериального давления. Отмечаются фазовые изменения состава периферической крови.

Половая система

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

.2 Влияние ПК на здоровье человека

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

Однако наиболее опасными являются источники слабого электромагнитного излучения, которое действует на человека в течение длительного промежутка времени. К таким источникам относится в основном аудио-видео и бытовая техника. Наиболее существенное влияние на организм человека оказывают мобильные телефоны, СВЧ печи, компьютеры и телевизоры. Проблема электромагнитного излучения ПК встает особенно остро ввиду следующих причин:

·   Два источника электромагнитного излучения: монитор и системный блок;

·   Необходимость работы на слишком близком расстоянии;

·        Длительное время работы за компьютером.

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

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

Монитор, особенно его боковые и задние стенки, является очень мощным источником ЭМИ. И хотя с каждым годом принимаются все более жесткие нормы, ограничивающие мощность излучения монитора, это приводит лишь к нанесению более качественного защитного покрытия на лицевую часть экрана, а боковые и задняя панели все также остаются мощными источниками излучения. Основными источниками электромагнитного излучения монитора являются электронно-лучевая трубка (ЭЛТ), узлы разверток, импульсный источник питания и видеоусилитель.

Согласно последним исследованиям человеческий организм наиболее чувствителен к электромагнитному полю, находящемуся на частотах 40 - 70 ГГц, так как длины волн на этих частотах соизмеримы с размерами клеток и достаточно незначительного уровня электромагнитного поля, чтоб нанести существенный урон здоровью человека. Отличительной же особенностью современных компьютеров является увеличение рабочих частот центрального процессора и периферийных устройств, а также повышение потребляемой мощности до 400 - 500Вт. В результате этого уровень излучения системного блока на частотах 40 - 70 ГГц за последние 2 - 3 года увеличился в тысячи раз и стал намного более серьезной проблемой, чем излучение монитора.

.3 Способы защиты от ЭМИ

Электромагнитное излучение с поверхности и через поверхность экрана электронно-лучевой трубки может быть частично экранировано с помощью проводящего покрытия, наносимого на внутреннюю или внешнюю поверхность предохранительного стекла или с помощью дополнительного защитного фильтра, который располагается перед экраном [32].

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

При рассмотрении вопроса о размещении рабочих мест операторов персональных компьютеров в помещении необходимо учитывать, что в этом случае на человека может оказывать негативное воздействие не только непосредственно тот компьютер, за которым он работает, но и другие ПК в помещении. Видеодисплейные терминалы должны по возможности размещаться в один ряд на расстоянии более одного метра от стен. Рабочие места операторов ПК должны быть удалены один от другого более чем на 1,5 метра. Однако следует учитывать, что каким бы ни было расположение компьютеров, задняя стенка компьютера не должна быть направлена в сторону других рабочих мест. Если этого невозможно достичь с помощью рациональной планировки помещения, то в конструкции рабочего стола необходимо предусмотреть возможность монтирования магнитного экрана со стороны, к которой обращена тыльная часть видеомонитора

При выборе и покупке компьютера следует придерживаться следующих правил:

1.  Не приобретать компьютеры без сертификата соответствия Госстандарта России.

2.      При наличии сертификата следует убедиться в его подлинности.

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

.        С вопросами, связанными с подлинностью сертификата, или какими-либо другими следует обращаться за разъяснениями в орган по сертификации.

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

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

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

Выводы

В данной главе было рассмотрено воздействие электромагнитного излучения на человека и перечислены основные меры по защите. В ходе выполнения дипломной работы соблюдались нормы по минимизации негативного воздействия ЭМИ, производимого ПЭВМ, такие как правильная расстановка оборудования в помещении по отношению к человеку и регулярные перерывы в работе. Для выполнения работы использовалась аппаратура, соответствующая основным нормам и требованиям безопасности, описанным в [25] и [26].

11. Решение задачи на ЭВМ

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

11.1 Интерфейс

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

Для реализации события его источник должен:

a.   Наряду с полями, методами и свойствами класса объявить событие как член класса;

b.      Передать получателям события информацию о наступившем событии в необходимый момент времени;.    Получить обратный ответ от получателей и выполнить необходимое действие.

В данной работе все элементы интерфейса реализованы при помощи данного механизма.

Программа состоит из двух окон. Окно 1 содержит все основные элементы, необходимые для анализа и обработки словарей (рис.1).

Рис. 1. Интерфейс приложения (Окно 1)

Каждый элемент Окна 1 выполняет определенные функции. Перечень элементов и их описание приведены в таблице 1.

Таблица 1. Элементы интерфейса (Окно 1)

Название

Тип

Описание

1

DictionaryFolderPath

Текстовое поле

Отображение полного пути к директории, содержащей словарь.

2

DictonaryVolumeValue

Надпись

Отображение объема словаря.

3

OpenDictFolderButton

Кнопка

Открыть указанную директорию со словарем в проводнике Windows.

4

SetDefaultDictPathButton

Кнопка

Выбор директории приложения в качестве директории со словарем.

5

BrowseDictionaryFolderButton

Кнопка

Выбор директории, содержащей словарь, вручную.

6

UploadPoemButton

Кнопка

Выбор файла-стихотворения.

7

AnalyzeButton

Кнопка

Анализ стихотворения, разработка ритмического рисунка и эталонного ритмического рисунка.

8

UpdateButton

Кнопка

Добавление новых слов в словарь ударений.

9

PoemTextBox

Текстовое поле

Отображение текста загруженного стихотворения.

10

RhythmicPatternTextBox

Текстовое поле

Отображение ритмического рисунка загруженного стихотворения.

11

UnknownWordsTextBox

Текстовое поле

Отображение списка неизвестных слов.

12

AbsolutePatternTextBox

Текстовое поле

Отображение эталонного ритмического рисунка

13

WordTotalValue

Надпись

Отображение количества слов в стихотворении.

14

WordUnknownValue

Надпись

Отображение количества неизвестных слов в стихотворении.


В том случае, когда система не обладает достаточными данными, чтобы самостоятельно определить ударение в текущем слове, система отображает Окно 2 (рис. 2), предназначенное для работы с такими исключениями.

Рисунок 2. Интерфейс приложения (Окно 2)

Перечень элементов Окна 2 и их описание приведены в таблице 2.

Таблица 2. Элементы интерфейса (Окно 2)

Тип

Описание

1

UncertainWordLabel

Надпись

Отображение текущего слова.

2

AccentLabel

Надпись

Отображение предположительно верной позиции ударной гласной на основе имеющихся данных.

3

AccentComboBox

Список

Указание верной позиции ударной гласной в текущем слове.

4

SkipButton

Кнопка

Пропуск текущего слова.

5

ApplyButton

Кнопка

Подтвердить ввод позиции ударной гласной.


11.2 Описание классов

Объектно-ориентрованная концепция программирования подразумевает использование классов. Для реализации метода, описанного в I.4; были разработаны классы, содержащие необходимые поля и методы. Все поля класса являются скрытыми (private), доступ к ним осуществляет через соответствующие методы.

11.2.1 Класс «Poem»

Поля

Название

Тип

Описание

text

string

Текст загруженного стихотворения.

name

string

Название загруженного стихотворения. Названию стихотворения соответствует название текстового файла, содержащего стихотворение.

pattern

string

Схема ритмического рисунка стихотворения.

absPattern

string

Схема эталонного ритмического рисунка стихотворения.

unknownWords

string

Неизвестные слова, найденные в стихотворении.

wordTotalValue

int

Количество слов в стихотворении.

wordUnknownValue

int

Количество неизвестных слов в стихотворении.


Методы

Название

Тип

Описание

GetPoemText()

string

Доступ к данным, хранящимся в переменной text.

GetPoemName()

string

Доступ к данным, хранящимся в переменной name.

GetPoemPattern()

string

Доступ к данным, хранящимся в переменной pattern.

GetAbsPattern()

String

Доступ к данным, хранящимся в переменной absPattern.

GetUnknownWords()

string

Доступ к данным, хранящимся в переменной unknownWords.

GetWordTotalValue()

int

Доступ к данным, хранящимся в переменной wordTotalValue.

GetWordUnknownValue()

int

Доступ к данным, хранящимся в переменной wordUnknownValue.

UploadPoem()

void

Загрузка стихотворения в систему.

Analyze()

void

Анализ загруженного стихотворения (подсчет общего количества слов, поиск неизвестных слов, подсчет количества неизвестных слов, формирование ритмического рисунка).

FormAbsPattern()

void

Формирование эталонного ритмического рисунка.

UpdateDictionary()

void

Добавление новых слов в словарь.


Класс «Dictionary»

Поля

Название

Тип

Описание

path

string

Путь к директории со словарем.

volume

int

Объем словаря.

Методы

Название

Тип

Описание

GetPath()

string

Доступ к данным, хранящимся в переменной path.

GetVolume()

int

Доступ к данным, хранящимся в переменной volume.

ChooseFolder()

void

Выбор директории со словарем.

ChooseDefaultFolder()

void

Выбор директории приложения в качестве директории со словарем.

SortDictionaries()

void

Сортировка словарей (удаление дубликатов, упорядочивание по алфавиту).

GetDictInfo()

void

Определение объема словаря.


.3 Результаты работы системы

Для оценки работоспособности системы смоделируем ситуацию: возьмем небольшое стихотворение, заранее заготовив к нему словарь ударений таким образом, чтобы некоторые слова, присутствующие в стихотворении, заведомо отсутствовали в словаре. Ниже представлено стихотворение и сформированный системой ритмический рисунок:

(11)   Я помню чудное мгновенье:          X??/--???

Передо мной явилась ты,                        ???X-/-X

Как мимолетное виденье,                        X--/--???

Как гений чистой красоты.            X??/---/

В томленьях грусти безнадежной ?????--/-

В тревогах шумной суеты,                      ???/---/

Звучал мне долго голос нежный             -/X??????

И снились милые черты.                         X??/---/

Шли годы. Бурь порыв мятежный                   X??X-/???

Рассеял прежние мечты,                          ???/---/

И я забыл твой голос нежный,                XX-/X????

Твои небесные черты.                    -/-/---/

В глуши, во мраке заточенья                  -/X??????

Тянулись тихо дни мои                           -/-??X-/

Без божества, без вдохновенья,     X--/X????

Без слез, без жизни, без любви.     XXX??X-/

Душе настало пробужденье:                   -/???????

И вот опять явилась ты,                          XX-/-/-X

Как мимолетное виденье,                        X--/--???

Как гений чистой красоты.            X??/---/

И сердце бьется в упоенье,            X????--/-

И для него воскресли вновь           XX-/???X

И божество, и вдохновенье,           X--/X????

И жизнь, и слезы, и любовь.          XXX??X-/

«-» элементы обозначают безударные позиции, «/» - ударные позиции. «X» элементы обозначают односложные слова. По расположению «?» элементов легко определить, какие слова система не смогла обнаружить в словаре. Эти слова выделены курсивом в тексте.

Анализ структуры стихотворения показывает следующую информацию:

(12)   Количество слов: 129

Количество неизвестных слов: 31

Следует отметить, что система производит подсчет не уникальных словоформ, а всех слов, которые содержатся в стихотворении. Так слово «виденье» встречается в тексте два раза, следовательно, это слово подвергнется подсчету два раза.

В каждой строфе равное количество слогов на четных и на нечетных строках соответственно: 9-8-9-8. Эти значения определяют количество значащих столбцов при построении матрицы.

В результате сбора статистических сведений получается следующая таблица:

Строка №1


1

2

3

4

5

6

7

8

9

Безударная позиция (-)

2

0

0

0

2

3

2

0

2

Ударная позиция (/)

0

2

0

1

0

1

0

2

0


Строка №2


1

2

3

4

5

6

7

8

Безударная позиция (-)

1

0

3

0

4

2

5

0

Ударная позиция (/)

0

1

0

4

0

2

0

3


Строка №3


1

2

3

4

5

6

7

8

9

Безударная позиция (-)

1

4

5

0

2

2

0

0

0

Ударная позиция (/)

0

1

0

5

0

0

0

0

0


Строка №4


1

2

3

4

5

6

7

8

Безударная позиция (-)

1

0

1

0

4

4

6

0

Ударная позиция (/)

0

1

0

4

0

0

0

6


В результате обработки данных таблицы, система получает необходимые сведения для построения эталонного ритмического рисунка:

(13)   -/X%-=-/-

=%-/-X-/

=--/--XXX

=%=/---/

К этому моменту главное окно приложения принимает вид, изображенный на рис. 3.

Рисунок 3. Пример работы программы (Окно 1)

На основе полученной схемы начинается расстановка ударений в неизвестных словах. Если слову соответствует схема, не содержащая элемент «/», либо этот элемент встречается в слове более одного раза, то система временно останавливает свою работу, передавая управление пользователю для указания правильной позиции ударения. Например, слову «рассеял» соответствует «=%-». Система рассчитала, что с наибольшей вероятностью ударение будет падать на второй слог, обозначенный в (13) символом «%». Для подтверждения гипотезы пользователь должен подтвердить правильность этого предположения, либо указать другое расположение ударения (рис. 4).

Рисунок 4. Пример работы программы (Окно 2)

В случае со словом «виденье», которому соответствует схема «XXX», система не способна разработать гипотезу. Пользователю необходимо определить позицию ударения без подсказки системы (рис. 5).

Рисунок 5. Пример работы программы (Окно 2)

Выполнив все вышеописанные действия, система успешно добавляет новые слова в соответствующие разделы словаря, после чего прекращает свою работу.

Заключение

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

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

Список использованной литературы

1. А.А. Тахо-Годи. «Античные риторики». М., Изд-во Московского университета, 1978. - Серия "Университетская библиотека";

2. Г. О. Винокур <http://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%BD%D0%BE%D0%BA%D1%83%D1%80,_%D0%93%D1%80%D0%B8%D0%B3%D0%BE%D1%80%D0%B8%D0%B9_%D0%9E%D1%81%D0%B8%D0%BF%D0%BE%D0%B2%D0%B8%D1%87>. «Культура языка». М.: Лабиринт, 2006;

. С. П. Обнорский <http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D0%BD%D0%BE%D1%80%D1%81%D0%BA%D0%B8%D0%B9,_%D0%A1%D0%B5%D1%80%D0%B3%D0%B5%D0%B9_%D0%9F%D0%B5%D1%82%D1%80%D0%BE%D0%B2%D0%B8%D1%87>. «Культура русского языка». Издательство Академии Наук СССР <http://www.ozon.ru/context/detail/id/858205/>, 1940;

. Сапунов, Б. «Русский язык и этика экрана». //Высшее образование в России. -2000. - № 55;

. Самсонов Н.Б. «Русский язык и культура речи». Оникс 21 век <http://my-shop.ru/shop/producer/34/sort/a/page/1.html>. 2010

. Ожегов C. И. и Шведова Н. Ю. «Толковый словарь русского языка», 1997;

. Еськова Н. А. «Орфографический словарь русского языка», 1996;

. С. Н. Борунова, В. Л. Воронцова, Н. А. Еськова, Р. И. Аванесов <http://www.ozon.ru/context/detail/id/106199/>. «Орфоэпический словарь русского языка. Произношение, ударение, грамматические формы», 1997;

. Горбачевич К. С. «Русский синонимический словарь», 1996;

. Л.М. Захаров. «Словарь для автоматического синтеза речи»;

11. А. Фролов, Г. Фролов. «Синтез и распознавание речи. Современные решения», 2003;

. Е. А. Гришина, К. М. Корчагин, В. А. Плунгян, Д. В. Сичинава. «Поэтический корпус в рамках Национального корпуса русского языка: общая структура и перспективы использования» // Национальный корпус русского языка: 2006-2008. Новые результаты и перспективы. СПб.: Нестор-История, 2009, 71-113;

. В. Лефельдт. «Акцент и ударение в русском языке». Studia philological, 2006;

/ R. M. Kaplan. «A Method for Tokenizing Text», 2005.

15. Кнут Д. «Искусство программирования». И.Д. Вильямс, 2007.

. Е.В. Пышкин. «Основные концепции и механизмы ООП». БХВ-Петербург, 2005.

. Джеффри Рихтер. «Программирование на платформе Microsoft .NET Framework». Русская редакция, 2003.

. Дэвид Платт. «Знакомство с Microsoft .NET». Русская редакция, 2001.

. Нейгел К., Ивьен Б., Глинн Дж., Уотсон К. «C# 4.0 и платформа .NET4». И.Д. Вильямс, 2011.

. Валерий Фаронов. «Создание приложение с помощью C#». Эксмо, 2008.

. Трудовой Кодекс РФ от 30.01.2001 №193-Ф3.

. ГОСТ Р 12.0.006-2002. Система стандартов безопасности труда. Общие требования к управлению охраной труда в организации.

23. ГОСТ 12.0.002-80*. Система стандартов безопасности труда. Термины и определения.

24. ГОСТ 12.0.003-74 ССБТ <http://www.znakcomplect.ru/dokumenty/index.php?&direction=0&order=&directory=GOSTy>. Опасные и вредные производственные факторы. Классификация.

. СанПиН 2.2.2/2.4.1340-03. Гигиенические требования к ПЭВМ и организации работы.

. ТОИ Р-45-084-01. Типовая инструкция по охране труда при работе на персональном компьютере.

. ГОСТ 12.1.005-88 ССБТ. Система стандартов безопасности труда. Общие санитарно-гигиенические требования к воздуху рабочей зоны.

. СанПиН 2.2.4.548-96. Гигиенические требования к микроклимату производственных помещений.

. СНиП 23-05-95. Естественное и искусственное помещение.

. СанПиН 2.2.1/2.1.1.1278-03. Гигиенические требования к естественному, искусственному и совмещенному освещению жилых и общественных зданий.

. СНиП 11-4-79. Санитарные правила и нормы. Искусственное освещение.

. Давыдов И. И. «Биологическое действие, нормирование и защита от электромагнитных излучений». // И. И. Давыдов. - 1984.

. Кирикова О. В. «Защита от электромагнитных полей», 1992.

Похожие работы на - Метод автоматизированного пополнения словаря ударений

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!