Смекни!
smekni.com

Построитель вопросительных предложений (стр. 3 из 3)

В процессе работы над темой «Построитель вопросительных предложений» были рассмотрены алгоритмы построения вопросительных предложений и разбора исходного предложения на составные части.

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

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


Список литературы

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. Синтаксический разбор в системах статистического анализа текста [Электронный ресурс] http://www.metric.ru/publications.asp?ob_no=306 –Загл. С экрана. Яз. Рус.

9. Автоматическая генерация позитивных и негативных тестов для тестирования фазы синтаксического анализа [Электронный ресурс] http://citforum.univ.kiev.ua/SE/testing/generation/ –Загл. С экрана. Яз. Рус.


Приложение 1

Листинг программы разбиения предложения на отдельные слова и поиска вопросительных слов к ним

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <alloc.h>

typedef struct{

char wrd[20];

char qwrd[40];

char params[6];

} word;

char res[20];

char *tmp;

int words(){

char *r;

memset(res,0,20);

r=res;

if(*tmp==0)return 0;

while(!(islower(*tmp)||isupper(*tmp)))tmp++;

if(islower(*tmp)||isupper(*tmp))

while(islower(*tmp)||isupper(*tmp))*r++=*tmp++;

tmp++;

return 1;

}

int getqword(word *wrd){

FILE *f;

int res=0;

word tmp;

f=fopen("qwrds.dat","r");

while(fread(&tmp,sizeof(word),1,f)>0){

if((wrd->params[0]&tmp.params[0])&& &bsol;

(wrd->params[1]&tmp.params[5])&& &bsol;

(wrd->params[2]&tmp.params[5])&& &bsol;

(wrd->params[3]&tmp.params[5])&& &bsol;

(wrd->params[4]&tmp.params[5])&& &bsol;

(wrd->params[5]&tmp.params[5])){

strcpy(wrd->qwrd,tmp.qwrd);

res=1;

break;

}

}

fclose(f);

return res;

}

int main(int argc, char *argv[])

{

char str[1000];

word *arr[100];

int i=0,j;

memset(str,0,1000);

printf("Input string:");

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<i;j++)

if(getqword(arr[i])==0)

printf(“Вопрос к слову не найден!!!&bsol;n”);

return 0;

}


Приложение 2

Список сокращений

КУ – компьютерный учебник

КОС – компьютерная обучающая система

УТЗ – учебно-тренировочная задача

ПО – предметная область

СНС – синтаксически неразложимое словосочетание

ПЕ – предикативная единица