48139 (Построитель вопросительных предложений), страница 2
Описание файла
Документ из архива "Построитель вопросительных предложений", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "48139"
Текст 2 страницы из документа "48139"
В нашей работе за этот этап отвечает функция getqword(). Алгоритм ее работы заключается в следующем:
Пусть у нас есть файл, в котором хранятся структуры word, в которых заданы только параметры и вопросительные слова. Функция принимает в качестве параметра структуру word. По заданным параметрам из базы данных (в нашем случае это файл qwrds.dat) выбирается вопросительное слово или словосочетание и записывается в соответствующее поле во входной структуре. Если же вопросительное слово не найдено, то функция возвращает 0.
Код функции getqword():
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])&& \
(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);
return res; // выход из функции
}
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` |
Заключение