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

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

Скачать Бесплатно!
Для того чтобы скачать эту работу.
1. Пожалуйста введите слова с картинки:

2. И нажмите на эту кнопку.
закрыть



>._Ножков И.М. Морфологическая и синтаксическая обработка текста (модели и программы). - М., 2003.

. Сегалович И. Реализация словаря на основе разряженой хэш-таблицы.

семинара Dialog. - М., 1995

 

 

ПРИЛОЖЕНИЕ А

 

Техническое задание

 

А.1 Общие сведения

 

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

Дипломный проект проектируется студентом пятого курса Государственного университета информатики и искусственного интеллекта, факультета Современных компьютерных информационных технологий, группы ИС-06а(с) Дордолан Виталием Юрьевичем.

Основанием для создания программного продукта является задание, выданное кафедрой cистем искусственного интеллекта (СИИ) факультета СКИТ ГУИиИИ, согласно учебного плана специальности "Интеллектуальные системы принятия решений" (ИСПР).

Плановый срок начала работы по созданию дипломного проекта: 23.03.2010.

Срок сдачи работы: 17.06.2011

 

А.2 Назначение и цели создания проекта

 

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

Целью данной работы является изучение понятия семантики; разработка алгоритма работы системы на основе семантического анализа; реализация алгоритма на языке программирования.

 

А.3 Требования к проекту

 

А.3.1 Требования к интерфейсу

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

 

А.3.2 Требования к интерактивности

Согласно заданию, к интерактивности проекта выдвигаются следующие требования:

добавление/редактирование/удаление текста;

добавление словарей;

вывод справочной информации;

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

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

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

 

А.3.3 Требования к видам обеспечения

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

 

А.3.3.1 Требования к программному обеспечению

Минимальное и рекомендуемое программное беспечение, на котором будет работать разрабатываемое ПО:

операционная система - Microsoft Windows XP;

архиватор WinRar;

уставленная машинно-независимая платформа .NET Framework 3.5;

текстовой редактор.

Требования к программному обеспечению подразумевает наличие ОС Windows XP и выше.

 

А.3.3.2 Требования к техническому обеспечению

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

а) процессор CPU - Pentium I и выше;

б) объем памяти RAM не менее 32 Мб;

в) свободное дисковое пространство около 100 Mб;

г) графический адаптер SVGA;

д) SVGA-монитор с разрешением не менее 800Ч600.

 

 

ПРИЛОЖЕНИЕ Б

 

ЭКРАННЫЕ ФОРМЫ

 

Рисунок Б.1 - Форма редактора входного текста

 

Рисунок Б.2 - Форма графематического разбора

 

Рисунок Б.3 - Форма морфологического анализа

 

Рисунок Б.4 - Форма статистического анализа

 

Рисунок В.5 - Форма семантического построения

 

 

ПРИЛОЖЕНИЕ В

 

ЛИСТИНГ ПРОГРАММЫ

 

//************************************************************

// Programm

//************************************************************System;System.Collections.Generic;System.Linq;System.Windows.Forms;System.Text;MorphologyModule;SemanticSystem

{class Program

{

///

/// Главная точка входа для приложения.

///

[STAThread]void Main()

{.EnableVisualStyles();.SetCompatibleTextRenderingDefault(false);.Run(new Form1());

}

}

}LinguisticalModule

{enum PartSpeech { Noun, Ajective, Verb, End, Separator };struct OnPartsSpeech

{PartSpeech Patr;int iAnword;

}enum Discripts { RLE, LLE, DC, GRAUNK, PUN };struct Lemm

{string Text;Discripts Discript;string Morph;byte MorphCid;

}struct TopGraph //Граф

{int id;string Top; //ВершинаList Relationships; //Связи

}Ling

{[] DEL = { (char)0x9, (char)0xA, (char)0xB, (char)0xC,

(char)0xD, (char)0x20, (char)0xA0, (char)0x2000,

(char)0x2001, (char)0x2002, (char)0x2003,

(char)0x2004, (char)0x2005, (char)0x2006,

(char)0x2007, (char)0x2008, (char)0x2009,

(char)0x200A, (char)0x200B, (char)0x3000,

(char)0xFEFF, };[] SIG = { '.', ',', '-', '!', '?', ';', ':', '(', ')'};[] RLE = { 'й','ц','у','к','е','н','г','ш','щ','з','х','ъ','ф',

'ы','в','а','п','р','о','л','д','ж','э','я','ч','с',

'м','и','т','ь','б','ю','ё',

'Й','Ц','У','К','Е','Н','Г','Ш','Щ','З','Х','Ъ','Ф',

'Ы','В','А','П','Р','О','Л','Д','Ж','Э','Я','Ч','С',

'М','И','Т','Ь','Б','Ю','Ё' };[] LLE = { 'q','w','e','r','t','y','u','i','o','p','a','s','d',

'f','g','h','j','k','l','z','x','c','v','b','n','m',

'Q','W','E','R','T','Y','U','I','O','P','A','S','D',

'F','G','H','J','K','L','Z','X','C','V','B','N','M' };[] DC = { '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' };[] END = { '.','!','?'};Lemm LemmDiscript(string text)

{lemm = new Lemm();.Text = text;rle, lle, dc;= text.IndexOfAny(RLE);= text.IndexOfAny(LLE);= text.IndexOfAny(DC);((dc == -1) & (lle == -1) & (rle != -1))

{.Discript = Discripts.RLE; //RLE

}if ((rle == -1) & (dc == -1) & (lle != -1))

{.Discript = Discripts.LLE; //LLE

}if ((rle == -1) & (lle == -1) & (dc != -1))

{.Discript = Discripts.DC; //DC

}

{(text.IndexOfAny(SIG) != -1)

{.Discript = Discripts.PUN; //PUN

}lemm.Discript = Discripts.GRAUNK; //GRAUNK

}lemm;

}Queue GraphematicAnalysis(string Text) //

Графематический разбор

{();starti = 0;deli = 0, sigi = 0;

{= Text.IndexOfAny(DEL, starti);= Text.IndexOfAny(SIG, starti);(deli < sigi)

{(deli == starti)

{++;

}if (deli > starti)

{.Enqueue(LemmDiscript(Text.Substring(starti, deli - starti)));= deli + 1;

}if (deli == -1)

{(sigi > starti)

s