Государственное образовательное учреждение
высшего профессионального образования
Кубанский государственный технологический университет
Армавирский механико-технологический институт
Кафедра внутризаводского электрооборудования и автоматики
к курсовому проекту
по дисциплине: Теория языков программирования
на тему:
«Распознавание словестественного языка с использованием нейросетей»
на курсовой проект
Студенту
специальности 230105(2204) «Программное обеспечение вычислительной техники и автоматизированных систем»
Тема проекта: «Распознавание слов естественного языка с использованием нейросетей»
Содержание задания:
1. Настройка и обучение нейросети.
2. Лексический анализ текста, формирование таблицы лексем.
3. Распознавание типа слов.
Требования: язык программирования C#, объектный метод проектирования, класс выполняющий распознавание, оформить в виде библиотечного компонента, составить тесты и написать программу для тестирование своих библиотечных классов.
Объем работы:
Пояснительная записка 30 – 35 листов
Графическая часть 2-3 листа формата А3
Рекомендуемая литература:
2. Осовский С. Нейронные сети для обработки информации.-М.:Финансы и статистика, 2004.
3. Уоссермен Ф. Нейрокомпьютерная техника: теория и практика. — М.: Мир, 1992.
4. Ключко В.И., Ермоленко В.В. Нейрокомпьютерные системы. Базы знаний. Учеб. пособие Изд-во КубГТУ,1999.-100с.
ГОСТ Р ИСО 9001-2001 Системы менеджмента качества. Требования.
ГОСТ 7.1-2003 СИБИД. Библиографическая запись. Библиографическое описание. Общие требования и правила составления.
ГОСТ 19.101-77 ЕСПД. Виды программ и программных документов.
ГОСТ 19.102-77 ЕСПД. Стадии разработки.
ГОСТ 19.103-77 ЕСПД. Обозначение программ и программных документов.
ГОСТ 19.105-78 ЕСПД. Общие требования к программным документам
ГОСТ 19.202-78 ЕСПД. Спецификация. Требования к содержанию и оформлению.
ГОСТ 19.404-79 ЕСПД. Пояснительная записка Требования к содержанию и оформлению.
ГОСТ 19.701-90 ЕСПД. Схемы алгоритмов, программ, данных и систем. Обозначения условные и правила выполнения.
Реферат
Пояснительная записка к курсовому проекту содержит 17 рисунков, 4 литературных источников, 3 приложения. К пояснительной записке прилагается 1 диск с готовой программой и материалами к ней, а также графическая часть, состоящая из трех листов.
ЛЕКСЕМА, НЕЙРОННАЯ СЕТЬ, ВХОДНОЙ СЛОЙ, СКРЫТЫЙ СЛОЙ, ВЫХОДНОЙ СЛОЙ, ОБУЧАЮЩАЯ ВЫБОРКА, ТЕСТОВАЯ ВЫБОРКА, ХЕШ-ТАБЛИЦА, ТАБЛИЦА ЛЕКСЕМ
Объект: лексический анализатор слов естественного языка с использованием нейросети.
Цель: закрепление теоретических знаний по дисциплине «Теория языков программирование и методов трансляции», получить практические навыки проектирования и разработки элементов транслятора.
Произведен выбор нейросети, рассмотрен ее алгоритм, представлена программная реализация на языке C# в библиотеке классов и написана тестирующая программа.
Содержание
Введение
1. Анализ нейронных сетей
1.1 Выбор разновидности сети
1.2 Модель многослойного персептрона с обучением по методу обратного распространения ошибки
1.3 Постановка задачи
2. Проектирование библиотеки классов для реализации нейросети и тестовой программы
2.1 Программная реализация нейросети обратного распространения ошибки
2.2 Класс перевода текста в двоичный вид
2.3 Класс хеш-таблицы и методов работы с ней
2.4 Класс разбиения текста на лексемы и распознавания
2.5 Описание тестирующей программы
2.6 Результаты тестирования
3. Руководство программисту
Заключение
Список используемой литературы
Приложения
Цель данного проекта: применение нейронной сети в лексическом анализе слов естественного языка.
Задачи: смоделировать, программно реализовать, настроить и обучить нейросеть для лексического анализа слов естественного языка.
Входной информацией являются параметры нейросети, файлы с обучающей выборкой.
Выходной информацией является таблица лексем.
Результатом курсового проекта должна быть программа-анализатор слов естественного языка с использованием нейросети.
1. Анализ нейронных сетей
1.1 Выбор разновидности сети
Искусственные нейронные сети — математические модели, а также их программные или аппаратные реализации, построенные по принципу организации и функционирования биологических нейронных сетей — сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге, и при попытке смоделировать эти процессы. Первой такой попыткой были нейронные сети Маккалока и Питтса. Впоследствии, после разработки алгоритмов обучения, получаемые модели стали использовать в практических целях: в задачах прогнозирования, для распознавания образов, в задачах управления и др.
Искусственные нейронные сети представляют собой систему соединённых и взаимодействующих между собой простых процессоров (искусственных нейронов). Такие процессоры обычно довольно просты, особенно в сравнении с процессорами, используемыми в персональных компьютерах. Каждый процессор подобной сети имеет дело только с сигналами, которые он периодически получает, и сигналами, которые он периодически посылает другим процессорам. И тем не менее, будучи соединёнными в достаточно большую сеть с управляемым взаимодействием, такие локально простые процессоры вместе способны выполнять довольно сложные задачи.
Существует много разновидностей нейронных сетей, но наиболее распространенными являются сети Кохонена, Хопфилда, обратного распространения ошибки.
Недостатками сети Кохонена является ее сложность и проблемы при классификации похожих образов. Сеть Хопфилда также может стать нестабильной, если обучающие примеры являются слишком похожими. Данные недостатки являются существенными, т.к. сходные по написанию слова естественного могут относиться к разным частям речи. Соответственно, для реализации лексического анализатора наиболее подходящей является сеть обратного распространения ошибки. Обратное распространение - первый эффективный алгоритм обучения многослойных нейронных сетей. Один из самых популярных алгоритмов обучения, с его помощью были решены и решаются многочисленные практические задачи.
1.2 Модель многослойного персептрона с обучением по методу обратного распространения ошибки
Ф. Розенблаттом использовал в своем персептроне не дифференцируемую ступенчатую функцию активации. Возможно, именно это помешало ему найти эффективный алгоритм обучения, хотя сам термин Back Propagation восходит к его попыткам обобщить свое правило обучения одного нейрона на многослойную сеть.
Разберем этот ключевой для нейрокомпьютинга метод несколько подробнее.
Алгоритм обратного распространения - это итеративный градиентный алгоритм, который используется с целью минимизации среднеквадратичного отклонения текущего выхода многослойного персептрона и желаемого выхода.
Алгоритм обратного распространения используется для обучения многослойных нейронных сетей с последовательными связями. Нейроны в таких сетях делятся на группы с общим входным сигналом - слои. На каждый нейрон первого слоя подаются все элементы внешнего входного сигнала. Все выходы нейронов m-го слоя подаются на каждый нейрон слоя m+1. Нейроны выполняют взвешенное суммирование элементов входных сигналов. К сумме элементов входных сигналов, помноженных на соответствующие синаптические веса, прибавляется смещение (порог) нейрона. Над результатом суммирования выполняется нелинейное преобразование - функция активации (передаточная функция). Значение функции активации есть выход нейрона.
На рисунке 1 показана укрупненная схема многослойной сети (многослойного персептрона). Нейроны представлены кружками, связи между нейронами - линиями со стрелками.
Рисунок 1 - Многослойный персептрон
Обозначим входы n-го слоя нейронов
, весовые коэффициенты wij. Нейроны этого слоя вычисляют соответствующие линейные комбинации ai: (1)и передают их на следующий слой, пропуская через нелинейную функцию активации:
. (2)Нелинейная функция f называется активационной и может иметь различный вид, как показано на рисунке 2. Одной из наиболее распространенных является нелинейная функция с насыщением, так называемая логистическая функция или сигмоид (т.е. функция S-образного вида):
(3)