Реферат по предмету "Информатика, программирование"


Построитель вопросительных предложений

Курсоваяработа
Построительвопросительных предложений

Содержание
Введение
1. Теоретическая часть
1.1 Генерация учебно-тренировочных задач на основе текстаучебного материала
1.2 Постановка вопросов к членам предложения
2. Описание алгоритмов решения задачи
2.1 Выделение отдельных членов предложения
2.2 Построение дерева синтаксического подчинения
2.3 Генерация вопросов
2.3.1 Задание вопроса к слову
2.3.2 Построение вопросительного предложения
Заключение
Список литературы
Приложение 1. Листинг программы разбиения предложения наотдельные слова и поиска вопросительных слов к ним
Приложение 2. Список сокращений

Введение
Информационные технологиив образовании играют все более существенную роль. Современный учебный процесструдно представить без использования компьютерных учебников, задачников,тестирующих и контролирующих систем. Одной из главных задач в таких системахявляется автоматическая генерация вопросительных предложений к различным частямлекционных материалов.
Цель нашей работызаключается в обеспечении автоматизации процесса составления различных тестов,проверок и задач. Для этого требуется рассмотреть несколько способов решенияподобных задач и на их основе составить основной алгоритм решения поставленнойперед нами задачи.
Задача генерациивопросительных предложений разбивается на несколько более простых подзадач:
1.        разборпредложения (выделение отдельных членов предложения, построение дерева синтаксического подчинения);
2.        построениевопросительных предложений на основе полученных результатов;
3.        выводрезультатов.
В нашей работе наиболееподробно будет рассмотрен только второй пункт. Так же будут затронуты проблемыразбора предложения.

1. Теоретическаячасть
 
1.1 Генерацияучебно-тренировочных задач на основе текста учебного материала
/>
Рис. 1
Значительную долюучебного материала КУ и КОС составляет текст. Поэтому идея генерации УТЗ на егооснове представляется весьма логичной. Схема, иллюстрирующая её воплощениеизображена на рис. 1. В неё входят две процедуры. Первая применяется в процессеразработки КУ (КОС), вторая – при его эксплуатации. Очевидно, вторая процедурадолжна быть автоматической. «Идеальная» реализация рассматриваемой схемыимеет место, когда первая процедура является автоматической, т.е анализ текстаи формирование моделей УТЗ для генерации производиться авторской системой безучастия человека. [1]
Методы анализа текстов наестественном языке и построения на их основе моделей представления ПО находятсяв фокусе исследований в области прикладной лингвистики и искусственногоинтеллекта. К числу ключевых проблем, связанных с развитием этих методов,относятся:
·сложность моделирования семантики;
·наличие так называемых«не-факторов», присущих человеческим представлениям и отражаемых втекстах (неточности, неполноты, несогласованности и др.)
·неоднозначность соответствия междуестественно — языковыми и формализованным представлениям (одна и таже мысльможет быть выражена по-разному; дополнительные трудности анализа вызываютсинонимия и омонимия);
·необходимость учета контекста.
Особо отметим последнююпроблему. Человек понимает текст благодаря тому, что он обладает знаниями о ПО,к который данный текст относится. Эти знания составляют контекст, позволяющийпрояснить смысл положений, содержащихся в тексте, а также извлечь из негомысли, которые имелись в виду, но не были выражены явно.
Таким образом, исходныйфрагмент текста, поступающий на вход анализатора, недостачею для построения егоадекватной семантической модели. Наряду с ним необходимо использовать базузнаний, отражающую как общие, так и специфичные для данной ПО представления.Создание такой базы знаний – непростая задача, на сегодняшний день в полноймере нерешенная.
Исходя из сказанного, мысчитаем не рациональным стремиться во что бы то ни стало добитьсяавтоматической Процедуры 1.
Распределение ролей междукомпьютерной системой и человеком в рамках интерактивной процедуры формированийУТЗ может быть разным. Чем выше степень автоматизации, тем эффективнееинструментарий и тем сложнее его реализация.

1.2 Постановкавопросов к членам предложения
Идея методов генерациивопросов к членам предложения заключается в следующем. Из текста выбираетсяпредложение. Для него составляется грамматическая спецификация, служащая ядроммодели задачи. С помощью нее в модели описываются члены предложения, к которымимеет смысл ставить вопросы. Для каждого из них определяется семантическийкласс, содержащий естественно-языковые выражения, представляющие некорректныеальтернативные варианты ответа или его неисключающие компоненты.
По сути формулировкавопроса к какому-то члену предложения строится на основе исходного предложенияпутем удаления из него данного члена и подчиненных ему синтаксических единиц,добавления вопросительного слова или словосочетания, а также изменения порядкаоставшихся членов.
Основные этапыинтерактивной процедуры формирования модели УТЗ приведены в таблице 1.
Таблица 1.Этапы, выполняемые автором Этапы, выполняемые системой 1. Составление запроса на выборку предложений 2. Анализ текста учебного материала и формирование множества предложений, релевантных запросу 3. Выбор предложения из сформированного множества 4. Обработка предложения с целью упрощения его структуры 5. Составление грамматической спецификации предложения. При необходимости возврат на предыдущий этап для корректировки предложения 6. Выбор членов предложения, к которым имеет смысл ставить вопросы 7. Для каждого выбранного члена указание вопросительного слова или словосочетания. Продолжение работы в рамках процедуры либо выход из нее

Отметим, что не всепредложения подходят для генерации вопросов. К потенциально применимымотносятся предложения, являющиеся повествовательными, синтаксически членимыми иполными в плане грамматической структуры. Предпочтение при выборе стоитотдавать простым двусоставным предложениям с прямым порядком слов. Осложненныеи сложные предложения также могут использоваться, однако сложность ихсинтаксической структуры необходимо ограничить.
Выбор предложения натретьем этапе производится автором либо реализуется автоматически. Во второмслучае критерием служит максимум степени релевантности предложения поисковомузапросу.
Обработка предложения начетвертом этапе может включать:
·       разбиениесложного предложения на части, соответствующие простым предложениям;
·       заменаместоимений наименованиями обозначаемых имя сущностей;
·       преобразованиенеполного предложения к эквивалентному ему полному;
·       удалениенесущественных в смысловом отношении фрагментов;
·       раскрытиенеоднозначностей, интерпретация которых зависит от контекста.
Развитые программныесредства анализа текста, автоматически выполняющие грамматический разборпредложений, могут использоваться на пятом этапе. Вариант разбора, предложенныйсистемой, корректируется и дополняется автором.
Наличие в инструментариипредставительного тезауруса позволяет частично автоматизировать решение задачседьмого этапа. Вопросительное слово или словосочетание выбирается взависимости от типа предложений, грамматической роли члена, к которомуставиться вопрос, типа ассоциируемой с ним предикативной единицы, а такжесвязей между этим членом и другими синтаксическими элементами предложения.
2. Описаниеалгоритмов решения задачи
 
2.1 Выделениеотдельных членов предложения
Выделение отдельных словв предложении является простой задачей по поиску лексем в строке. За этот этапотвечает следующий алгоритм:
1.     ввод исходнойстроки;
2.     еслирассматриваемый символ в строке пробел, то пропускаем все пробелы, пока невстретим букву;
3.     еслирассматриваемый символ буква, то добавляем его и каждый следующий символ, еслион буква, к слову, пока не встретим какой-либо знак препинания;
4.     увеличиваемсчетчик слов на 1 и добавляем полученное слово в массив;
5.     если исходнаястрока не закончилась, переходим к шагу 2, иначе заканчиваем работу.
Данному алгоритмусоответствует нижеприведенная программа:
char res[20]; // Буфер для хранения слова
char *tmp; // Ссылка на исходную строку
 
int words(){
char *r;
memset(res,0,20); // Обнуление буфера слова
r=res;
if(*tmp==0)return0; // Если исходная строка пуста или закончилась, выход из подпрограммы
while(*tmp==' '||*tmp=='\t')tmp++; // Пропуск пробелов
if(islower(*tmp)||isupper(*tmp)) // Если рассматриваемый символ буква…
{
 while(islower(*tmp)||isupper(*tmp))*r++=*tmp++; // Добавляем к буферу словаочередной символ, если он буква
 tmp++;
}
return 1;
}
Функция words() возвращает в качестве результатадва значения: 1 и 0. 1 возвращается в том случае, когда найдено слово. Если жепросмотр строки закончился или строка изначально была пуста, возвращается 0.Поэтому данная функция должна вызываться в цикле вида :
while(words()!=0){
         arr[i]=(word*)calloc(1,sizeof(word));// Добавление новой записи в массив
         memset(arr[i]->wrd,0,20);
         strcpy(arr[i]->wrd,res); // Запись результата работы функции в массив
         i++; // Увеличение количества найденыхслов
}
Так как мы рассматриваемтолько простые предложения и предполагаем, что числительные и порядковыепишутся словами, то функция words()не учитывает знаки препинания и цифры.
После выделения слов впредложении идет этап анализа полученных результатов. То есть, для каждогослова создается список его параметров (часть речи, падеж, род, число и т.д.),которые хранятся в структуре вида:
struct word{
         char wrd[20]; //слово
         char qwrd[40]; //вопрос к слову
         char params[6]; // параметры слова
}.
Если же какой-то параметрне учитывается или у данного слова его нет, то в масиве params он обозначается как число 255 (или FF в шестнадцатиричной системе). Остальныезначения могуь лежать в интервале от 0 до 254.
2.2Построение дерева синтаксического подчинения
Один из самых трудоемкихэтапов в разборе предложений это построение дерева подчинения. Данная задача невходит в рамки нашего исследования, т. к. является проблемой из областиприкладной лингвистики.
Однако хотелось бысказать, что на данный момент нам известен один способ решения: с помощьюсемантической нейронной сети[2].
2.3Генерация вопросов
По сути, формулировкавопроса к какому-то члену предложения строится на онове исходного предложенияпутем удаления из него данного члена и подчененных ему синтаксических единиц,добавления вопросительного слова или словосочетания, а также изменения порядкаоставшихся членов.
Отметим, что не всепредложения подходят для генерации вопросов. К потенциально применимымотносятся предложения, являющиеся повествовательными, синтаксически членимыми иполными в плане граматической структуры. Предпочтение при выборе стоит отдаватьпростым двусоставным предложениям с прямым порядком слов. Осложненные и сложныепредложения также могут использоваться, однако сложность их синтаксическойструктуры необходимо ограничить.

2.3.1Задание вопроса к слову
На наш взгляд, самымпростым способом задания вопроса к слову будет выбор подходящеговопросительного слова из заранее подготовленной таблицы по некоторым критериям.Такой подход можно наблюдать в базах данных, когда по некоторым исходнымпараметрам выбираются подходящие результаты. Например:
Пусть задана таблица свопросительными словами или словосочетаниями QTABLE.
Для того, что бы задатьвопрос к слову «раму», надо сделать следующий запрос:
SELECT * FROMQTABLE WHERE params=wparams,
где wparams – список атрибутов слова, к которомузадается вопрос (в этом примере это «сущ., ед., нар., неод.»).
Результатом работыданного запроса будет вопросительное слово «что».
В нашей работе за этотэтап отвечает функция getqword(). Алгоритм ееработы заключается в следующем:
Пусть у нас есть файл, вкотором хранятся структуры word,в которых заданы только параметры и вопросительные слова. Функция принимает вкачестве параметра структуру word.По заданным параметрам из базы данных (в нашем случае это файл qwrds.dat) выбирается вопросительное слово или словосочетание изаписывается в соответствующее поле во входной структуре. Если жевопросительное слово не найдено, то функция возвращает 0.
Код функции getqword():
intgetqword(word *wrd){
         FILE*f;
         intres=0;
         wordtmp;
         f=fopen(«qwrds.dat»,«r»); // Открытие базы данных
         while(fread(&tmp,sizeof(word),1,f)>0){// Пока есть записи...
                   if((wrd->params[0]&tmp.params[0])&&\
                   (wrd->params[1]&tmp.params[5])&&\
                   (wrd->params[2]&tmp.params[5])&&\
                   (wrd->params[3]&tmp.params[5])&&\
                   (wrd->params[4]&tmp.params[5])&&\
                   (wrd->params[5]&tmp.params[5])){
                            strcpy(wrd->qwrd,tmp.qwrd); // Запись результата во входную структуру
                            res=1;
                            break;
                   }
         }
         fclose(f);
         returnres; // выход из функции
}
2.3.2Построение вопросительного предложения
Опишем правила построениявопросов. Для того чтобы сформировать вопрос к главному члену, необходимопредставить структуру предложения в виде тройки:
(pq, Ps, Pn),                                                                               (1)
где pq – член, к которому ставится вопрос(подлежащее или сказуемое);
Ps – множество членов, транзитивноподчиненных pq;
Pn – множество прочих членов.
Выражение (1) определяетаспекты синтаксической структуры, существенные при постановке вопроса к pq. Позиции, занимаемые составляющими(1), не отражают порядка слов в предложении. Например, pq может располагаться в его середине,а компоненты, соответствующие Pn, в начале и конце.
Структура вопроса кподлежащему двусоставного предложения описывает кортеж:
(wq, pop, Pn`),                                                                            (2)
где wq – вопросительное слово илисловосочетание;
pop – сказуемое (pop Î Pn);
Pn` — Pn\{pop}.
Из (2) видно, что изпредложения удаляются pq и Ps. На первое место wq, после него указывается pop, за которым приводятся оставшиесячлены из Pn`. Выделение pop из Pn фиксирует изменение порядка слов,относящихся к Pn, по сравнению с исходнымпредложением. Таким образом, (2) отражает порядок слов в вопросе на уровне егодекомпозиции на wq, pop и Pn`. Порядок слов в рамках pop и Pn` соответствует исходномупредложению.
Следующий кортежопределяет структуру вопроса к сказуемому двусоставного предложения:
(wq, Pn, Psq),                                                                             (3)
где Psq Í Ps.
В контексте (3) Pn состоит из подлежащего и транзитивноподчиненных ему членов. Другое отличие (3) от (2) заключается в том, что приформировании вопроса из предложения могут быть удалены не все члены,транзитивно подчиненные pq. Кчислу обязательно удаляемых относятся определения, дополнения, придаточныеизъяснительные, определительные, образа действия, меры и степени, а так же всетранзитивно подчиненные им члены. Обстоятельства и другие виды придаточныхмогут быть как удалены, так и оставлены в вопросе.
Для выражения правилапостроения вопросов к второстепенным членам перепишем (1), выделив еще двакомпонента в структуре предложения:
(Pmq,Pmn, pq, Ps, Pn),                                                                (4)
где Pmq = (pmq.1, pmq.2, …, pmq.i) – цепочка второстепенных членов, транзитивноподчиняющих pq;
Pmn – множество, включающее: главныечлены, однородный по отношению к главному члену, которому подчинен pq; второстепенные члены, однородные поотношению к элементам Pmq; второстепенные члены, транзитивно подчиненные этим главными второстепенным членам;
Pn – множество прочих членов невходящих в Pmq, Pmn и Ps.
Место, которое занимаютэлементы из Pmq и Pmn в структуре предложения, иллюстрирует ориентированныйграф, изображенный на рис. 2. Его вершины соответствуют главным («Г») ивторостепенным («В») членам предложения, а ребра – отношениям подчинения.Множества однородных членов охватывают прямоугольники. Гиперребро в виде овалаобозначает ПЕ. Вершина, ассоциируемая с членом pq, к которому задается вопрос, выделена жирной рамкой.

/>
Рис. 2
Из рис. 2 видно, чтоцепочка Pmq задает путь, ведущий из вершины pq к вершине подчиняющего ее главногочлена, образованный транзитивными вершинами второстепенных членов. Вершины,представляющие элементы Pmn,помечены крестиками. При построении вопроса соответствующие члены удаляются изпредложения.
Структуру вопроса квторостепенному члену определяет кортеж:
(pmq.i, pmq.i-1, …, pmq.2, wq, pmq.1, Pp, Pn`),                                  (5)
где Pp – множество, состоящее из главногочлена, непосредственно подчиняющего pmq.iили pq, и транзитивно подчиненных емучленов, исключая pq и элементы из Pmq и Pmn;
Pn` = Pn\Pp.
При единичной длине Pmq вместо (5) используем кортеж:
(wq, pmq.1, Pp, Pn`).                                                                    (6)
Если pq непосредственно подчинен главному члену,то Pmq не задается, а структура вопросаимеет вид:
(wq, Pp, Pn`).                                                                             (7)
При обработке предложенияв рамках интерактивной процедуры формирования модели УТЗ следует стремиться ктому, чтобы Pmq содержала не больше трех элементов.
Примеры вопросов разныхтипов приведены в таблице 2.
Таблица 2.Тип вопроса Примеры Вопрос к подлежащему М. Планк впервые предположил, что энергия осциллятора принимает дискретные значения, пропорциональные частоте колебаний. Кто предположил впервые, что энергия осциллятора принимает дискретные значения, пропорциональные частоте колебаний?
wq
pop
Pn` В трансформаторе тока первичная обмотка включается в цепь измеряемого тока, а вторичная обмотка включается в цепь измерительных приборов и реле защиты. Что включается в трансформаторе тока последовательно в цепь измеряемого тока?
wq
pop
Pn` Что включается в трансформаторе тока в цепь измерительных приборов и реле защиты?
wq
pop
Pn` Вопрос к сказуемому Сальник герметизирует зазор между подвижной и неподвижной частями машины. 1-й вариант вопроса: Что делает сальник между подвижной и неподвижной частями машины?
wq
Pn
Psq 2-й вариант вопроса: Что делает сальник?
wq
Pn Вопрос к определению Кварцевые пески широко применяются в производстве стекла, фарфора, динаса и силикатного кирпича. Какие пески широко применяются в производстве стекла, фарфора, динаса и силикатного кирпича?
wq
pmq.1
Pp В производстве какого кирпича широко применяются кварцевые пески?
pmq.2
wq
pmq.1
Pp В какую цепь в трансформаторе тока включается последовательно первичная обмотка?
wq
pmq.1
Pp
Pn` В цепь какого реле В трансформаторе тока включается Вторичная обмотка?
pmq.2
wq
pmq.1
Pp
Pn` Какие значения принимает энергия осциллятора?
wq
pmq.1
Pp
Pn` Вопрос к дополнению Что широко применяется в производстве стекла, фарфора, динаса и силикатного кирпича?
wq
Pp Куда в трансформаторе тока включается последовательно первичная обмотка?
wq
Pp
Pn` Вопрос к обстоятельству Как в трансформаторе тока включается в цепь измеряемого тока первичная обмотка?
wq
Pp
Pn` Где включается последовательно в цепь измеряемого тока первичная обмотка? включается в цепь измерительных приборов и реле защиты вторичная обмотка?
wq
Pp
Pn` Вопрос ко всему придаточному Что впервые предположил М.Планк?
wq
Pp
Pn`

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

Списоклитературы
1.        Башмаков А.И.,Башмаков И.А. Разработка компьютерных учебников и обучающих систем. М.: Филинъ,2003
2.        Семантическаянейронная сеть, как формальный язык описания и обработки смысла текстов наестественном языке [Электронный ресурс]http://www.shuklin.com/ai/ht/ru/ai00001f.aspx –Загл. С экрана. Яз. Рус.
3.        Греков В.Ф.,Крючков С.Е., Чешко Л.А Пособие для занятий по русскому языку. М.: Просвящение,1990
4.        Гладкий А.В.Формальные грамматики и языки. М.,: Наука, 1973.
5.        Розенталь Д.Э.Управление в русском языке. Словарь-справочник. М.: Книга, 1986.
6.        Апресян Ю.Д.,Богуславский И.М., Иомдин Л.Л., Лазурский А.В., Перцов Н.В., Санников В.З.,Цинман Л.Л. Лингвистическое обеспечение системы ЭТАП-2. М.: Наука, 1989
7.        Розенталь Д.Э.,Голуб И.Б., Теленкова М.А. Современный русский язык: Учебное пособие. М.:Международные отношения, 1994. 560 с.
8.        Синтаксическийразбор в системах статистического анализа текста [Электронный ресурс] www.metric.ru/publications.asp?ob_no=306 –Загл. С экрана. Яз. Рус.
9.        Автоматическаягенерация позитивных и негативных тестов для тестирования фазы синтаксическогоанализа [Электронный ресурс] citforum.univ.kiev.ua/SE/testing/generation/
–Загл. С экрана. Яз. Рус.

Приложение1
Листинг программыразбиения предложения на отдельные слова и поиска вопросительных слов к ним
#include
#include
#include
#include
typedefstruct{
         charwrd[20];
         charqwrd[40];
         charparams[6];
} word;
char res[20];
char *tmp;
int words(){
         char*r;
         memset(res,0,20);
         r=res;
         if(*tmp==0)return0;
         while(!(islower(*tmp)||isupper(*tmp)))tmp++;
         if(islower(*tmp)||isupper(*tmp))
                   while(islower(*tmp)||isupper(*tmp))*r++=*tmp++;
         tmp++;
         return1;
}
intgetqword(word *wrd){
         FILE*f;
         intres=0;
         wordtmp;
         f=fopen(«qwrds.dat»,«r»);
         while(fread(&tmp,sizeof(word),1,f)>0){
                   if((wrd->params[0]&tmp.params[0])&&\
                   (wrd->params[1]&tmp.params[5])&&\
                   (wrd->params[2]&tmp.params[5])&&\
                   (wrd->params[3]&tmp.params[5])&&\
                   (wrd->params[4]&tmp.params[5])&&\
                   (wrd->params[5]&tmp.params[5])){
                            strcpy(wrd->qwrd,tmp.qwrd);
                            res=1;
                            break;
                   }
         }
         fclose(f);
         returnres;
}
int main(intargc, char *argv[])
{
         charstr[1000];
         word*arr[100];
         inti=0,j;
         memset(str,0,1000);
         printf(«Inputstring:»);
         gets(str);
         tmp=str;
         while(words()!=0){
                   arr[i]=(word*)calloc(1,sizeof(word));
                   memset(arr[i]->wrd,0,20);
                   strcpy(arr[i]->wrd,res);
                   i++;
         }
         for(j=0;j
                   if(getqword(arr[i])==0)
printf(“Вопрос к слову не найден!!!\n”);
         return 0;
}

Приложение2
Список сокращений
КУ – компьютерный учебник
КОС – компьютернаяобучающая система
УТЗ –учебно-тренировочная задача
ПО – предметная область
СНС – синтаксическинеразложимое словосочетание
ПЕ – предикативнаяединица


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

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

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Развитие планеты Земля после образования Солнечной системы
Реферат Генезис и сущность человека
Реферат Наличие брата или сестры как фактор, облегчающий адаптацию в обществе
Реферат Русская культура и революция
Реферат Категория рода у имён сцществительных
Реферат О.Бальзак "Почему несчастен отец Горио?"
Реферат История болезни, селикоз. Вибрационная болезнь
Реферат Использование современного программного обеспечения для проектировании цепной передачи в металлорежущем станке
Реферат Школа и педагогика в России первой половины XIX века
Реферат Влияние конфликтов на эффективность управления организацией на примере ЗАО Миэль-недвижимост
Реферат Стоимость ценность и полезность
Реферат Путешествие к трансцендентному: впечатления от философской книги Николая Бердяева "Самознание"
Реферат Революция 1848-1849 в Европе
Реферат Христианство и мифология сравнительный взгляд
Реферат Проблема свободы человека в условиях развертывающегося научно-технического развития