Разработка словаря фонем и морфем узбекского языка на основе информации в Uznet (Для дальнейшего внедрения в Google translator)

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

Рубрика Программирование, компьютеры и кибернетика
Вид диссертация
Язык русский
Дата добавления 24.05.2018
Размер файла 930,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Корень слова (бола) - это неделимая часть слова, которая имеет самостоятельное лексическое значение: йўл - дорога, ёз - пиши, мактаб - школа. Аффикс состоит из: суффикса и окончания.

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

1.5 Обзор методов анализа текстов

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

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

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

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

Семантический анализ проводит анализ текста «по смыслу». С одной стороны, семантический анализ уточняет связи, которые не смог уточнить постсинтаксический анализ, так как многие роли выражаются не только при помощи средств языка, но и с учетом значения слова. С другой стороны, семантический анализ позволяет отфильтровать некоторые значения слов или даже целые варианты разбора как «семантически несвязные». При такой разметке большинству слов в тексте приписывается один или несколько семантических и словообразовательных признаков. Например: 'вещество', 'пространство', 'скорость', 'движение', 'обладание', 'свойство человека', 'отглагольное имя' ит.п. [8].

Выводпо первой главе

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

1. Морфемно - морфологической разметке (ММР) корпуса узбекских текстов.

2. Рассмотрено предназначение системы морфологического разбора словаря. Применение в разных отраслях жизни.

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

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

Глава 2. Корпусное исследование подъязыка предметной области

2.1 Морфологический анализ узбекского текста

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

Основные этапы применения метода.

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

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

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

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

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

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

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

Формальное комбинирование вариантов создает впечатление автоматизма в применении метода. Однако его эвристическая природа весьма существенна и зависит от следующих субъективных факторов:

интуитивное выделение узлов и их признаков, состава вариантов. Отсутствие уверенности, что учтены все (и особенно, перспективные) узлы и варианты;

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

2.2 Сравнение с другими системами морфологического анализа

Морфологический анализатор башкирского языка «bashmorph».

Морфологический анализатор башкирского языка создан в лаборатории в сентябре 2012 года. Программа «Basmorph» предназначена для разбора словоформ башкирского языка, установления их основы, состава и грамматического значения аффиксов, добавляемых к основе при словоизменении и отчасти словообразовании (программа умеет определять словообразовательный аффикс абстрактных существительных -лы?/-лек и аффикс деятеля -сы/-се). Разбор башкирских форм представлен в четырёх равнозначных вариантах: на русском, башкирском, английском языках и в виде стандартного вывода программы, где граммемы даются в виде сокращённых обозначений, по возможности соответствующих Лейпцигским правилам глоссирования.

Грамматические правила, заложенные в логику парсера, основаны на академических описаниях башкирской грамматики и дополнены неучтёнными в грамматиках наблюдениями над реальным функционированием языка. Вывод сформирован по образцу русского парсера Mystem. Однако у башкирского анализатора есть свои особенности. В частности, добавлена возможность представления русскоязычных эквивалентов значений найденных основ. Эта возможность пока охватывает не весь состав словника, внутренний словарь программы находится в стадии пополнения [10].Первая из рассмотренных систем - интеллектуальный морфологический анализатор - представляет собой гибкий инструментарий для обработки текста. По мимо анализа текста происходит наполнения словаря которые могут применятся в орфографии. Но данная система не предоставляет создания терминологических словарей. Есть возможность использования полученных формализаций, методов и алгоритмов в системах обработки естественно-языковых текстов (орфографических корректорах, переводчиках, обучающих системах) и т.д. Вторая расcмотренная система - «bashmorph» - представляет инструментарий для анализа башкирского языка. Форма слова визуально предоставлена в различных вариантах языка. Появляется возможность создания автоматического переводчика с башкирского на 16 русский и английский языки и обратно. С помощью «bashmorph» можно создаватьчастотные словари, которые включают лингвистические единицы (словоформы, словосочетания), которые в ходе исследования текста регистрируются составителем. И указывается частота употребления в данном тексте. А так же заниматься исследованием лексической и грамматической структуры башкирских текстов, ставить промышленные задачи информационного поиска. В процессе изучения узбекской морфологии возникла необходимость создания своего инструментария, который можно было внедрить в систему извлечения терминов узбекского языка. Для извлечения терминов необходим модуль морфологического анализа, который бы работал на уровне отдельных слов и приводил слово и его атрибуты в морфологическую норму.

RuMor - морфологический модуль на языках Перл и php для русского языка, включающий в себя две основные функции: нахождение базовой формы слова или всех его словоформ. Данный модуль может использоваться в поисковых системах для улучшения поиска по документам с русским текстом. В качестве исходных данных для генерации словоформ используется словарь Зализняка, дополненный 30 тысячами основ. Всего в словаре содержится около 125 тысяч основ, что позволяет генерировать более 3500000 словоформ.

MyStem - стеммер от Яндекса, производит морфологический анализ текста на русском языке; по сути простой стеммер, может только нормальную форму получить и вывести морфологическую информацию по слову. Работает очень шустро, но на уровне ОС (операционной системы), на сервере требует запуск «демона» (daemon). Для слов, отсутствующих в словаре, порождаются гипотезы, может работать и без словаря эвристическим способом. Это и плюс и минус: плюс -- даст нормальную форму даже для несловарного слова; минус -- иногда ошибается и выдает бред. Бесплатен для некоммерческого использования.

Morphlogy -- определяет словоформы слов, корни и начальные формы. Если нужно реализовать поиск с учетом словоформ, то это совсем просто -- нужно просто получить корень слова с помощью phpMorphy ($root=$morphy->getPseudoRoot ($words);) и провести поиск по базе данных SQL-оператором LIKE. На данный момент словари есть для русского, английского и немецкого языков.

Ispell - одна из наиболее популярных бесплатных программ проверки орфографии на Unix-системах. В рамках проекта ispell создано множество словарей для разных языков, распространяемых под лицензией GPL, которые в определенных пределах можно использовать и для задачи морфоанализа. Эти словари изначально создавались для проверки орфографии, поэтому качество морфоанализатора основанного на этих словарях заметно ниже словарей специализированных. Словари ispell обычно состоят из двух файлов: файл с правилами генерации словоформ (так называемый affix-файл) и собственно словарь, где для каждого слова указаны номера правил, которые нужно применить к этому слову. Скрипт поддерживает preffix правила (правила приставок), но для каждой возможной приставки в словарь будет добавлено отдельное слово, потому что, как правило, приставки изменяют смысл слова и логично считать это слово отдельным. Например: подъезд №1 дома №2; объезд болота с левой стороны; заезд в гараж дальше.

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

2.3 Алгоритм морфологического анализа

Алгоритм морфологического анализа по правилу в тексте заключается в следующем: Модуль нормализации в процессе своей работы осуществляет следующую последовательность шагов:

1 шаг: Выполняется поиск слова в словаре начальных форм. Если слово в словаре найдено, то шаг 5.

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

3 шаг: Выполняется поиск всех гипотетический аффиксов в словаре аффиксов. Все найденные аффиксы добавляются в список аффиксов. Если ни один новый аффикс не найден, то переходим к шагу 2.

4 шаг: Выполняется поиск начальной части слова в словаре начальных форм. Если слово не найдено, то переходим к шагу 2.

5 шаг: В результат добавляется найденная основа и сопутствующий набор аффиксов. Переход к шагу 2.

Определение нормальной формы слова.

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

Продемонстрируем результат морфологического анализа на примере (рис. 2.1.)

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

На вход подается словоформа технологияларнинг, происходит поиск в словарях аффиксов нинг, лар и основы технология. На основе морфологического класса основы (сущ.) и аффиксов вычисляем морфологическою информацию: лар <мн.число>, нинг<род.падеж>.

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

2.4 Правило присоединения окончаний в узбекском языке

Окончания в узбекском языке прибавляются по определенному правилу, которое представлено в таком виде:

С=ОС+КЖ+ТЖ+СЖ+ЖЖ (1)

где С - словоформа; ОС - основа слова; КЖ -окончание множественного числа; ТЖ -притяжательное окончание; СЖ -падежное окончание; ЖЖ -окончание формы спряжения.

2.5 Процесс образования нормальной формы слова

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

Нормальная форма слова - это форма слова (строка), принятая для обозначения понятия, связанного с данным словом Словоформа - это форма слова (строка), связанная с нормальной формой слова и указывающая на особенности употребления данного слова. Будем считать, что <wform> характеризуется пятеркой -

<lineWforms; PSpeech; Nform; PSpeechNform; MorphParam>.

Wform -словоформа;

Line Wform -строка словоформы;

PSpeech -часть речи. Nform -нормальная форма, от которой была образована данная словоформа;

PSpeech -часть речи нормальной формы;

Nform -нормальной формой, от которой была образована данная словоформа;

Morph Param -набор морфологических параметров, приписываемых к данной словоформе;

2.6 Структура разработанной системы

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

Рис 2.2 Общая схема выделения терминов

На этапе графематического анализа, после разбиения текста на слова, происходит поиск составных слов, которые должны рассматриваться как одно (с точки зрения морфологического анализатора). Морфологический анализ работает на уровне отдельных слов (в том числе составных) и возвращает морфологическую норму и атрибуты данного слова. При этом может оказаться, что одной словоформе может быть сопоставлено несколько возможных вариантов слов. Синтаксический анализатор может осуществлять поиск словосочетаний на основе синтаксичеких шаблонов сборки именных групп, аналогично [13-14]. В результате анализа приведенные к нормальному виду слова и словосочетания помещаются в предварительный словарь терминов.

На текущий момент недоступны программные инструменты, проводящие морфологический анализ текстов на узбекском языке. Поэтому разработанный специализированный модуль и морфологическая модель узбекского языка для системы UzMor [14], предназначенной для автоматизированного создания терминологических словарей.

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

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

Данный модуль является компонентной программного комплекса обеспечивающего выделение терминов из текста. Система состоит из 4 модулей: графематического анализа, морфологического анализа, синтаксического и генератора словарей (см. пример на Рис.5).

Анализатор словоформ позволяет (см. пример Рис. 6.):

• Производить наполнение словаря начальных форм, если в словаре нет такой формы.

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

• Модуль представляет возможность просмотра результата обработки слова.

• Отображается найденная в словаре основа слова, аффиксы которые были извлечены из словоформы.

• Есть возможность загрузки словарей основ и аффиксов

Вывод по второй главе

  • Во втором разделе был рассмотен морфологический анализ узбекского текста. Изучены правила и методы присоединения окончаний на узбекском языке и процесс образования нормальной формы слова. Рассмотрено структура разрабатываемой системы и синтаксическое аннотирование. В результате исследования определён алгоритм и схема работы системы морфологического анализатора.

Глава 3. Программная реализация морфологического анализатора

3.1 Обоснование выбора средств и технологий разработки

При разработке системы «Разработка словаря морфологического разбора»выбрана технология DENWER, которая опирается на системы с открытым кодом.

Язык программирования PHP был выбран для реализации данной системы как объектно-ориентированный язык программирования. Система разработана на основу webframework Kohana, ранее Blue Flame, это PHP5 веб-фреймворк с открытым кодом, который использует архитектурную модель HMVC (Hierarchical Model View Controller -- Иерархические Модель-Контроллер-Вид). Его цели -- быть безопасным, лёгким и простым в использовании. Строгое PHP5 ООП. Предполагает много плюсов: защита видимости, автоматическая подгрузка классов, перегрузка свойств и методов, интерфейсы, абстрактные классы, и применение паттерна одиночка (singleton). Массивы GET, POST, COOKIE, и SESSION работают как предполагается. Kohana не ограничивает доступ к глобальным переменным, но предоставляет ту же фильтрацию и XSS защиту, что и CodeIgniter.

Каскадные ресурсы, модули и наследование. Контроллеры, модели, библиотеки, хелперы, и виды могут быть загружены из любого места вашей системы, приложения, или модуля. Опции конфигурации наследуемы и могут динамически перезаписываться каждым приложением.Нет конфликтов пространств имён. Суффиксы классов, как «_Controller», используются для предотвращения конфликтов пространства имён. Это позволяет пользовательским контроллерам и моделям загружаться в одно и то же время.

Настоящая автозагрузка классов. Действует для библиотек, контроллеров, моделей, и хелперов. Это не предзагрузка, а настоящая динамическая подгрузка классов при их инициализации.

Хелперы -- статические классы, не функции. Для примера, вместо использования «form_open()», вы можете использовать «form::open()».

Связанность драйверов библиотек и API.

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

3.2 Программная реализация морфологического словаря

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

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

Размер сгенерированного словаря для узбекского языка составляет примерно 7 Мб. Модуль имеет два режима работы: с загруженным в память словарем и режим работы со словарем, хранящимся на жестком диске. Первый режим обеспечивает наиболее быструю скорость работы и предпочтителен во время индексации, когда необходимо обрабатывать большие объемы информации. Второй режим удобен во время поиска, когда нужно обработать всего несколько слов, и нет необходимости считывать в память весь словарь. Скорость работы модуля в режиме нормализации около 7000 слов в секунду (в режиме работы с жестким диском примерно в два раза меньше), что вполне достаточно для локального поискового механизма (PHP версия на данный момент работает со скоростью около 1000 слов в секунду).

Использование

Модуль состоит из трех основных файлов:

(uzmor.php - программный код модуля.

Mor.php - основной файл словаря.

prof.php - дополнительная информация о словоформах, необходимая для построения полной парадигмы.

Также есть два дополнительных скрипта:

add_word.php - позволяет добавить в словарь свои собственные слова.

В начале скрипта необходимо подключить модуль:

include"uzmor.php";

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

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

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

Функция возвращает массив возможных словоформ. Слово должно быть в своей нормальной (словарной) форме.

Для генерации всех словоформ заданного слова используется функция get_all_forms. Функция возвращает массив возможных словоформ. Слово может быть в произвольной форме. Если данная форма может быть получена путем изменения разных слов, функция вернет объединенный список словоформ всех возможных основ для данного слова. Для генерации полной парадигмы слова используется функция get_full_paradigm.

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

Номер правила словоформирования ("rule") является внутренним номером, который может меняться от версии к версии.

Список кодов слов и словоформ, а также соответствующую текстовую расшифровку кодов можно посмотреть в исходниках модуля.

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

Для приведения слова в конкретную форму используется функция uzmor_set_wordform. На вход функции подается словарная форма слова, номер правила и код требуемой словоформы. Функция возвращает строку со словоформой или "-1" в случае ошибки (например когда в правиле словообразования отсутствует требуемая словоформа). В отличие от предыдущей функции, которая возвращала массив возможных вариантов, данная функция всегда возвращает только один вариант, поэтому на вход ей нужно подавать правильный номер правила, по которому изменяется слово. Номер правила нужно предварительно получить используя функцию uzmor_get_word_info. Например нужно получить винительный падеж множественного числа слова "кошка". Применив функцию uzmor_get_word_info мы узнаем, что данное слово может означать как одущевленный предмет (животное), так и неодушевленный (инструмент). И в каждом случае используется свое правило. И в результате мы получим либо "кошек" для одушевленного существительного, либо "кошки" для неодушевленного. Примечание: модуль рассчитан на работу с данными в кодировке win-1251.

Кодировки

Поскольку потенциально морфологический анализатор может работать с несколькими языками одновременно (используя словари от программы ispell или самостоятельно созданные словари), то сам модуль не имеет никакой информации о кодировках. Скрипт работает с байтами и обязанность программиста подавать на вход данные в необходимом формате. Практически любой символ может являться буквой при создании новых словарей, за исключением двух служебных символов: "|" и "#".

Оригинальный словарь для узбекского языка использует кодировку Windows-1251, слова содержатся в словаре в нижнем регистре. Соответственно на вход модуля нужно подавать данные в этой же кодировке и в нижнем регистре. Сам модуль не производит никаких преобразований над входными данными. Также нужно учесть, что в словаре не используется буква "ё", поэтому ее нужно заменять на "е".

При использовании словарей от ispell разработчик должен решить в какой кодировке добавить слова в словарь и при необходимости самостоятельно перекодировать исходные словари. Некоторые словари используют буквы как в верхнем так и в нижнем регистре. В этом случае скрипт генерации бинарного словаря автоматически преобразует все слова к нижнему регистру, для чего ему необходимо указать, какие символы относятся к верхнему, а какие к нижнему регистру. Пользователи имеют возможность самостоятельно пополнять словарь новыми словами, используя скрипт "add_word.php". Поместите этот скрипт в одной директории с модулем UzMor (uzmor.php) и бинарным словарем (tree.php). Создайте поддиректорию "my_dic", в которой будут размещаться ваши словари. Файлы словарей должны иметь расширение "dic" (например "new_dictionary.dic"). Файлы пользовательских словарей являются обычными текстовыми файлами, в которых для каждого нового слова нужно в скобках указать по какому правилу оно изменяется. Для этого нужно подобрать другое слово из тех, которые уже есть в словаре, и которое имеет такой же набор словоформ, что и новое слово.

Например:

индиец (австралиец)

ноченька (авоська)

поддельный (абажурный)

согласие (абонирование)

вернуть (блеснуть)

фотография (аббревиация)

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

Например:

город (город, города, городом, городе, городами, городам, городах)

дом (город)Затем нужно запустить скрипт "add_word.php" и новые слова будут добавлены в словарь.

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

Результаты работы скрипта пишутся в файл "log.txt", где можно посмотреть, какие слова не были добавлены (это может произойти, если в скобках написано слово, которое отсутствует в словаре).

Перед изменением словаря создается резервная копия файла - "tree.fin.bak" (этот файл будет перезаписан при следующем запуске "add_word.php", поэтому желательно сохранить резервную копию оригинального словаря в другом месте).

В словаре предусмотрено место для 2000 правил, на данный момент уже существует 1088 правил. Следовательно для пользовательских словарей остается около 900 правил.

Использование словарей ispell

ispell это одна из наиболее популярных бесплатных программ проверки орфографии на Unix-системах. В рамках проекта ispell создано множество словарей для разных языков, распространяемых под лицензией GPL, которые в определенных пределах можно использовать и для задачи морфоанализа. Но нужно учесть, что изначально эти словари создавались для проверки орфографии, поэтому качество морфоанализатора основанного на этих словарях заметно ниже специализированных словарей. Также нужно учесть, что скрипт конвертации словарей ispell в формат UzMor поддерживает только часть возможностей ispell и абсолютно корректная конвертация словарей для всех языков не гарантируется. Скрипт конвертации проверялся на словарях для английского, немецкого и украинского языков.

Словари ispell обычно состоят из двух файлов: файл с правилами генерации словоформ (так называемый affix файл) и собственно словарь, где для каждого слова указаны номера правил, которые нужно применить к этому слову. Если аффикс файл или словарь разбиты на части, их нужно слить вместе. Скрипт конвертации поддерживает preffix правила (правила приставок), но для каждой возможной приставки в словарь будет добавлено отдельное слово, потому что как правило приставки изменяют смысл слова и логично считать это отдельным словом. Соответственно для тех языков, где приставки участвуют в формировании словоформ, использование UzMor невозможно.

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

3.3 Структура базы данных

Основные таблицы базы данных:

1. Словарь узбекского языка (таблица MorfDictionary);

2. Наборы окончаний с правилами изменения основы слова (таблица Endings);

3. Имена и описатели классов слов узбекского языка (таблица Words);

4. Типы слов (таблица Wordtipe);

5. Типы окончаний (таблицаEndstypes);

6. Пользователи (таблицаUsers);

7. База знаний. (таблицаRules);

MorfDictionary - Таблица для хранения базы слов и окончаний для ускорения вывода результата. Таблица хранит слова заполненные экспертами.

Words - Список основ в которой имеются поля: Name-основа, описание основы, partofspeech-фонетическое описание, тип основы.

Rules - База знаний. Правила для морфологического анализа.

3.4 Интеллектуальный морфологический анализатор

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

#-разделитель между словами,

(-начало слова,

)-конец слова,

!-начало признака словоформы (падеж и т.д.),

*-конец признака словоформы.

пример слова «бола -ребенок»(основа слова) и двух его словоформ «болам -мой ребенок», «боланг -твой ребенок»(в узбекском языке одушевленные существительные изменяются по лицам с помощью личных окончаний). Рецептор возбуждается на символ начала слова «(». Далее переходит в состояние «б», при подаче символа «б», далее последовательно «(бо», «(бол», «(бола», и затем одновременно два субсостояния «(болам)» и «(боланг)» структура связей леммы определяет следующие признаки: имя существительное, одушевленное, притяжательное окончание первого лица),притяжательное окончание. При подаче на лемму слова «(болам)» она переходит в возбужденные субсостояния: «(болам)», «!зе*», «!жа*», «!11*» а при подаче слова «баланг» в возбужденные субсостояния: «(баланг)», «!зе*», «!жа*», «!22*».

Нейроны распознают отдельные символы входной символьной последовательности. На выходе генерируется сигнал, означающий наличие или отсутствие соответствующего символа в анализируемом тексте. Нейроны выдают результат распознавания отдельных фрагментов входной символьной последовательности. Для обозначения таких фрагментов во входной символьной последовательности применяются метасимволы скобок: "(" и ")". Тогда приведенный пример перепишется в виде: ((бола)м), ((бола)нг), (((бола)м)нинг), (((бола)нг)да) [9].

3.5 Руководство пользователя

Разработанная система размещена в глабальной сети Интенрент.

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

Рис. 3.1 Главная страница морфологического анализатора

Раздел «Анализ»не посредственно можно проанализировать текст. Для примера введём слово«bolalar»

Рис.3.2 Результат анализа слова «bolalar»

В рисунке 3.2. указан результаты анализа текста bolalar. Программа определила основу слова bolaи аффикс типа множественного числа «lar»

Так же программа сможет определить более сложные словообразования. Для примера рассмотрим другой пример bolalarning в рис. 3.3.

Рис.3.3 Разборслова «bolalarning»

На рис. 3.4. и рис. 3.5 показана анализсложного разбора т.е в слове учувствуют более одного вспомогательных элементов словообразования.На рис. 3.6 показан разбор слова binokorlarning. Система определила основу слова «bino».

Аффиксы:

«kor» - словообразующая.

«lar» - множественное число.

«ning» - принадлежность.

Рис. 3.4 Разборслова «binokorlar»

Рис. 3.5 Разборслова «binokorlarning»

Рис.3.6 База основ узбекского языка

На рисунке 3.7. показано предварительная база основ узбекского языка,которую можно увеличивать с помощью раздела O'zaklar. Каждая основа имеет перевод на русский язык, а так же дополнительные формы слова и тип слова. Базу слов может редактировать только администратор или пользователь со статусом «Эксперт».

Рис.3.7 База окончаний

На рис. № 3.7 указана база окончаний, аффиксов и других типов окончаний.

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

Рис. 3.8 Форма регистрации для пользователей

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

Рис. 3.9 Режим «Эксперта»

Вывод по третьей главе

  • В результате исследований разработан интеллектуальный морфологический анализатор. Обоснованы средства и технологии разработки. Был проведён тест по определённой базе слов. Разработан руководство пользователя.По результатам исследования определены задачи для внедрения системы морфологического анализатора во всемирную систему Googletranslator. Проведён анализ недостатков приложения и решены пути их дальнейшего решения. Система установлена во всемирную сеть Интернет и дсотупна для общего пользования.

Заключение

В процессе решения поставленных в работе задач были достигнуты следующие цели:

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

- Построение морфологической таблицы для узбекского языка.

- Построение иерархии семантических признаков для разметки научных текстов.

- Создание семантической разметки корпуса научных текстов на узбекском языке

- Разработано представление словоформ

- Реализован алгоритм анализа слов

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

- Проведены тесты

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

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

1. Закон Республики Узбекистан № 560-II от 11.12.2003 «Об информатизации»

2. Указ Президента Республики Узбекистан № УП-3080 от 30.05.2002 «О дальнейшем развитии компьютеризации и внедрении информационно-коммуникационных технологий»

3. Закон Республики Узбекистан № 611-II от 29.04.2004 «Об электронном документообороте»

4. Доклад Президента Республики Узбекистан Ислама Каримова на заседании Кабинета Министров, посвященном основным итогам социально-экономического развития страны в 2013 году и важнейшим приоритетам экономической программы на 2014 год. - 17.01.2014

5. Кузнецов М., Симдянов И. MySQL 5. Наиболее полное руководство. - М.: БХВ-Петербург, 2010. - 1024с.

6. Фаулер М., Скотт К. UML. Основы. - СПб.: Символ-Плюс, 2002. - 192с.

7. Буч Г., Рамбо Дж. UML. Руководство пользователя. - М.: ДМК Пресс, 2007. - 496 с.

8. Стандарт ISO/IEC 19505-1, Информационные технологии. Унифицированный язык моделирования группы по управлению объектами (OMGUML) . Часть 1. Инфраструктура, 2012 г.

9. Ларман К. Применение UML и шаблонов проектирования. 2-е издание. - М.: Вильямс, 2004. - 624 с.

10. Макконнелл С. Совершенный код. - М.: Русская редакция, 2005. - 896с.

11. Кузнецов М., Симдянов И. MySQL 5. Наиболее полное руководство - М.: БХВ-Петербург, 2010. - 1024с.

12. Wikipedia: MVC. - URL:http://ru.wikipedia.org/wiki/Морфология

13. Райордан Р. Основы реляционных баз данных. - М: Русская редакция, 2001. - 384с.

Приложение

Morph/css/app.css

@import url(bootstrap.min.css);

@import url(bootstrap-theme.min.css);

.menu {

list-style: none;

border-bottom: 0.1em solid black;

margin-bottom: 2em;

padding: 0 0 0.5em;

}

.menu:before {

content: "[";

}

.menu:after {

content: "]";

}

.menu > li {

display: inline;

}

.menu > li:before {

content: "|";

padding-right: 0.3em;

}

.menu > li:nth-child(1):before {

content: "";

padding: 0;

}

Morph/js/app.js

'use strict';

// Declare app level module which depends on filters, and services

angular.module('myApp', [

'ngRoute',

'myApp.filters',

'myApp.services',

'myApp.directives',

'myApp.controllers'

]).

config(['$routeProvider', function($routeProvider) {

$routeProvider.when('/root', {templateUrl: '/app/partials/root.html', controller: 'rootCtrl'});

$routeProvider.when('/roots', {templateUrl: '/app/partials/roots.html', controller: 'rootsCtrl'});

$routeProvider.when('/account', {templateUrl: '/app/partials/account.html', controller: 'accCtrl'});

$routeProvider.when('/suffixes', {templateUrl: '/app/partials/suffixes.html', controller: 'suffCtrl'});

$routeProvider.otherwise({ redirectTo: '/roots' });

}]);

Morph/js/controllers.js

'use strict';

/* Controllers */

angular.module('myApp.controllers', [] ).

controller('rootsCtrl', [ '$scope', '$http', function( $scope, $http ) {

$scope.error = false;

$scope.errorMsg = '';

$scope.success = false;

$scope.successMsg = '';

$http.post('/app/php/index.php', { action: 'roots' })

.success( function( data, status, headers, config) {

$scope.roots = data;

}).error(function(data, status, headers, config) {

$scope.errorMsg = "Database error";+

$scope.error = true;

});

$scope.addroot = function ( name ) {

$http.post('/app/php/index.php', { action: 'addroot', name: name })

.success( function( data, status, headers, config) {

location.reload();

}).error(function(data, status, headers, config) {

$scope.errorMsg = "Database error";

$scope.error = true;

});

}

$scope.deleteroot = function ( id ) {

if( !confirm("O`chirvurimi?") )

{

return false;

}

$http.post('/app/php/index.php', { action: 'delroot', id: id })

.success( function( data, status, headers, config) {

location.reload();

}).error(function(data, status, headers, config) {

$scope.errorMsg = "Database error";

$scope.error = true;

});

}

}]).

controller('suffCtrl', [ '$scope', '$http', function( $scope, $http ) {

$scope.error = false;

$scope.errorMsg = '';

$http.post('/app/php/index.php', { action: 'suffs' })

.success( function( data, status, headers, config) {

$scope.suffs = data;

}).error(function(data, status, headers, config) {

$scope.errorMsg = "Database error";

$scope.error = true;

});

$scope.addsuff = function ( name, desc ) {

$http.post('/app/php/index.php', { action: 'addsuff', name: name, desc: desc })

.success( function( data, status, headers, config) {

location.reload();

}).error(function(data, status, headers, config) {

$scope.errorMsg = "Database error";

$scope.error = true;

});

}

$scope.delsuff = function ( id ) {

if( !confirm("O`chirvurimi?") )

{

return false;

}

$http.post('/app/php/index.php', { action: 'delsuff', id: id })

.success( function( data, status, headers, config) {

location.reload();

}).error(function(data, status, headers, config) {

$scope.errorMsg = "Database error";

$scope.error = true;

});

}

}]).

controller('rootCtrl', [ '$scope', '$http', function( $scope, $http ) {

$http.post('/app/php/index.php', { action: 'all' })

.success( function( data, status, headers, config) {

$scope.roots = data.roots;

$scope.suffixes = data.suffixes;

}).error(function(data, status, headers, config) {

$scope.errorMsg = "Database error";

$scope.error = true;

});

$scope.error = false;

$scope.errorMsg = '';

$scope.type = false;

$scope.root = '';

$scope.suffixes;

$scope.findroot = function( word, roots, suffixes ){

var suff;

var root;

var suffs = new Object();

for( var i in roots ){

var search = new RegExp( roots[i].root,'i' );

if( search.test( word ) )

{

root = roots[i].root;

}

}

suff = word.replace( RegExp( root,'i' ) , '' );

for( var i in suffixes ){

var search = new RegExp( suffixes[i].name,'i' );

if( search.test( suff ) )

{

suffs[i] = { name: suffixes[i].name, type: suffixes[i].type };

suff = suff.replace( search, '' );

if( suff == '' ){

break;

}

}

}

$scope.suffixes = suffs;

$scope.root = root;

$scope.type = true;

}

}])

.controller('accCtrl', [function() {

}]);

Morph/js/directives.js

'use strict';

/* Directives */

angular.module('myApp.directives', []).

directive('ngEdit', ['$http', function( $http ) {

return function( scope, elm, attrs ) {

elm.on('dblclick', function(){

var val = elm.text();

var html = '<input type="text" class="form-control input-sm" ng-blur="" value="'+ val +'">'

elm.html( html );

var input = elm.find('input');

input.bind('blur', function(){

var inputVal = input.val();

elm.html( inputVal );

$http.post('/app/php/index.php', { action: 'uproot', val: inputVal, id:attrs.ngEdit })

.error( function( data, status, headers, config ) {

$scope.errorMsg = "Database error";

$scope.error = true;

});

})

});

};

}]).

directive('ngEditt', ['$http', function( $http ) {

return function( scope, elm, attrs ) {

elm.on('dblclick', function(){

var att = attrs.ngEditt.split(",");

var col = att[1];

var id = att[0];

var val = elm.text();

var html = '<input type="text" class="form-control input-sm" value="'+ val +'">'

elm.html( html );

var input = elm.find('input');

input.bind('blur', function(){

var inputVal = input.val();

elm.html( inputVal );

$http.post('/app/php/index.php', { action: 'upsuff', val: inputVal, col: col, id: id })

.error( function( data, status, headers, config ) {

$scope.errorMsg = "Database error";

$scope.error = true;

});

})

});

};

}])

Morph/js/filters.js

'use strict';

/* Filters */

angular.module('myApp.filters', []).

filter('interpolate', ['version', function(version) {

return function(text) {

return String(text).replace(/\%VERSION\%/mg, version);

}

}]);

Morph/js/services.js

'use strict';

/* Services */

// Demonstrate how to register services

// In this case it is a simple value service.

angular.module('myApp.services', []).

value('version', '0.1');

Morph/partials/account.html

<form role="form">

<div class="form-group">

<label for="exampleInputEmail1">Login</label>

<input type="text" class="form-control" id="exampleInputEmail1" placeholder="Login">

</div>

<div class="form-group">

<label for="exampleInputEmail1">Email</label>

<input type="email" class="form-control" id="exampleInputEmail1" placeholder="email">

</div>

<div class="form-group">

<label for="exampleInputPassword1">Parol</label>

<input type="password" class="form-control" id="exampleInputPassword1" placeholder="parol">

</div>

<div class="checkbox">

<label>

<input type="checkbox"> Proffessional

</label>

</div>

<button type="submit" class="btn btn-primary" ng-click="alert('Siz ro`yhatdan o`tdingiz'); location.reload();">Account yaratish</button>

</form>

Morph/partials/root.html

<div class='row'>

<div class='col-md-3'>

<div class="input-group" style='margin: 20px 0;'>

<input type="text" class="form-control" placeholder='So`z' ng-model='query'>

<span class="input-group-btn">

<button class="btn btn-primary" type="button" ng-click="findroot( query, roots, suffixes )">tahlil</button>

</span>

</div>

</div>

</div>

<div class='row' ng-show='type'>

<table class="table table-bordered">

<colgroup>

<col width="5%">

</colgroup>

<tr>

<th>#</th>

<th>O`zak</th>

</tr>

<tr>

<td>1</td>

<td>{{root}}</td>

</tr>

</table>

<table class="table table-bordered">

<colgroup>

<col width="5%">

</colgroup>

<tr>

<th>#</th>

<th>Qo`shimchalar</th>

<th>Turi</th>

</tr>

<tr ng-repeat="suffix in suffixes">

<td>1</td>

<td>{{ suffix.name }}</td>

<td>{{ suffix.type }}</td>

</tr>

</table>

</div>

Morph/partials/roots.html

<div class="alert alert-danger alert-dismissable" ng-show='error' style='margin: 10px 0;'>

<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>

{{ errorMsg }}

</div>

<div class='row'>

<div class='col-md-3'>

<div class="form-group" style='margin: 20px 0;'>

<label class="control-label" for="root">Yangi o'zak qo`shish</label>

<div class='input-group'>

<input type="text" class="form-control" placeholder='o`zak' ng-model='name' id='root'><span class="input-group-addon glyphicon glyphicon-plus" ng-click="addroot( name )" style='background: #428BCA; color: #fff; cursor:pointer;'></span>

</div>

</div>

</div>

</div>

<table class="table table-bordered">

<colgroup>

<col width='5%' >

<col width='40%' >

</colgroup>

<thead>

<tr>

<th>#</th>

<th>O'zak</th>

<th>Boshqarish</th>

</tr>

</thead>

<tbody>

<tr ng-repeat="root in roots" >

<td>{{ $index + 1 }}</td>

<td><span ng-edit="{{root.id}}">{{ root.root }}</span></td>

<td>

<button type="button" class="btn btn-danger btn-xs" ng-click='deleteroot( root.id )'>o'chirish</button>

</td>

</tr>

</tbody>

</table>

Morph/partials/suffixes.html

<div class="alert alert-danger alert-dismissable" ng-show='error' style='margin: 10px 0;'><button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>

{{ errorMsg }}

</div>

<div class='row' style='margin-bottom: 20px;'>

<h4>Yangi qo'shimcha qo'shish</h4>

<form class="form-inline" role="form">

<div class="form-group" >

<input type="text" class="form-control" placeholder="qo'shimcha" ng-model='name' id='root'>

...

Подобные документы

  • Анализ предметной области "Ремонт часов", с использованием СУБД MySQL, языка HTML, технологии PHP и ADO и выбора скриптовых языков VBScript или JavaScript. Нормализация базы данных. Пошаговое описание нормализации базы данных (методом ER-диаграмм).

    курсовая работа [782,4 K], добавлен 18.06.2010

  • Проблемы внедрения информационных технологий. Автоматизация работы пользователя. Основные этапы проектирования базы данных. Функционирование предметной области. Специализированные языки обработки данных. Обоснование выбора основных технических средств.

    курсовая работа [61,9 K], добавлен 08.02.2012

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

    курсовая работа [793,5 K], добавлен 31.01.2016

  • Функции автоматического рабочего места инженера АТС, структура соответствующей базы данных и обоснование выбора языка программирования. Разработка алгоритмического обеспечения. Программная реализация, основное содержание и принципы работы с таблицами.

    дипломная работа [449,8 K], добавлен 06.01.2014

  • Исследование технологии проектирования базы данных. Локальные и удаленные базы данных. Архитектуры и типы сетей. Программная разработка информационной структуры предметной области. Обоснование выбора архитектуры "клиент-сервер" и операционной системы.

    дипломная работа [1,1 M], добавлен 15.02.2017

  • Осуществление анализа предметной области и определение модели базы данных. Реализация базы данных в среде Microsoft Access. Создание и исследование формы ввода информации, запросов с условиями выбора, диаграмм по результатам вычислений и отчетов.

    курсовая работа [246,1 K], добавлен 19.10.2013

  • Анализ предметной области с использованием моделей методологии ARIS и разработка ER-диаграммы. Описание входной и выходной информации для проектирования реляционной базы данных. Разработка управляющих запросов и связей между ними с помощью языка SQL.

    курсовая работа [975,2 K], добавлен 30.01.2014

  • Анализ предметной области объекта автоматизации "Компьютерные курсы". Обзор информационных технологий, подходящих для разработки информационной системы. Требования к разрабатываемой базе данных и ее проектирование, особенности ее программной реализации.

    курсовая работа [369,8 K], добавлен 30.05.2013

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

    презентация [278,1 K], добавлен 16.10.2013

  • Общая характеристика киноиндустрии как предметной области работы. Разработка базы данных и дерева вопросов для получения информации для выбора фильма. Программная реализация экспертной системы. Тестирование системы и создание руководства пользователя.

    курсовая работа [1,9 M], добавлен 19.05.2014

  • Создание программного обеспечения, организующего базу данных тренажёрного зала. Описание предметной области; предикаты языка Пролог для работы с БД: ввод/вывод, управление окнами. Разработка структуры базы данных, интерфейс; содержание файла "Zal.ddb".

    курсовая работа [821,6 K], добавлен 07.06.2013

  • Анализ предметной области - магазин "Канцелярские товары". Проектирование и реализация базы данных в MS SQL Server. Перечень хранимой информации: таблицы, поля, типы. Моделирование предметной области. Выделение сущностей, атрибутов, ключей, связей.

    курсовая работа [2,2 M], добавлен 05.02.2015

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

    дипломная работа [645,3 K], добавлен 21.11.2010

  • Анализ предметной области, этапы проектирования автоматизированных информационных систем. Инструментальные системы разработки программного обеспечения. Роль CASE-средств в проектировании информационной модели. Логическая модель проектируемой базы данных.

    курсовая работа [410,6 K], добавлен 21.03.2011

  • База данных как поименованная совокупность структурированных данных, относящихся к определенной предметной области. Ее типы и структура, особенности архитектуры. Функциональные особенности языка структурированных запросов (SQL). Разработка базы данных.

    курсовая работа [639,8 K], добавлен 14.12.2022

  • Разновидности систем управления базами данных. Анализ предметной области. Разработка структуры и ведение базы данных. Структурированный язык запросов SQL. Организация выбора информации из базы данных. Общие принципы проектирования экранных форм, макросов.

    курсовая работа [3,1 M], добавлен 26.02.2016

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

    реферат [403,8 K], добавлен 02.02.2014

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

    курсовая работа [318,6 K], добавлен 24.12.2014

  • Нормализация предметной области "Сайт знакомств" и ее программная реализация с использованием СУБД MySQL, языка HTML, технологии PHP и ADO, скриптовых языков VBScript или JavaScript. Руководство программиста, тестирование, исходный текст приложения.

    реферат [29,0 K], добавлен 09.09.2010

  • Определение автоматизированных информационных систем. Обоснование выбора среды разработки информационной системы. Создание запросов для выбора информации. Логическая и физическая структура реляционной базы данных. Разработка интерфейса пользователя.

    курсовая работа [2,1 M], добавлен 16.04.2017

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.