У вас вопросы?
У нас ответы:) SamZan.net

ЛАБОРАТОРНАЯ РАБОТА 7 ИДЕНТИФИКАЦИЯ СЛОВ НАПИСАННЫХ С ОШИБКАМИ ЦЕЛЬ

Работа добавлена на сайт samzan.net: 2016-03-13

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 4.3.2025

ЛАБОРАТОРНАЯ РАБОТА № 7 

ИДЕНТИФИКАЦИЯ СЛОВ, НАПИСАННЫХ С ОШИБКАМИ

ЦЕЛЬ. Целью лабораторной работы является расмотрение способа реализации распознавания ошибочных слов в языке ПРОЛОГ.

КРАТКОЕ ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ.

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

Упростим задачу: будем считать, что имеют место следующие ошибочные ситуации.

  •  Буква написана с ошибкой
  •  Буква пропущена
  •  Вставлена лишняя буква.

Напишем программу, которая эти ситуации выявляет. У нас должны быть образцы слов, например,

word("moloko").

word("kefir").

word("tvorog").

Пользователь должен вводить свое слово, например,

Goal

raspoz("molko",X),

write(X),

readchar(_).

Если система распознает слово (пропущена буква), то она выведет правильное слово на экран.

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

predicates

nondeterm check(string,string)

nondeterm raspoz(string,string)

nondeterm word(string)

Сlauses

raspoz(Y,X):-

word(Z),

check(Y,Z),

X=Z.

word("moloko").

word("kefir").

word("tvorog").

check("",Z):-

str_len(Z,Z1),

Z1<=2.

check(Y,""):-

str_len(Y,Y1),

Y1<=2.

check(Y,Z):-

frontchar(Y,CY,YR),

frontchar(Z,CZ,ZR),

CY=CZ,

check(YR,ZR).

check(Y,Z):-

frontchar(Y,CY,YR),

frontchar(Z,CZ,ZR),

not(CY=CZ),

frontchar(YR,C2,YR2),

frontchar(ZR,Z2,ZR2),

C2=Z2,

check(YR2,ZR2).

check(Y,Z):-    

frontchar(Y,CY,YR),

frontchar(Z,CZ,ZR),

not(CY=CZ),

frontchar(ZR,CZ2,ZR2),

CY=CZ2,

check(YR,ZR2).

check(Y,Z):-       

frontchar(Y,CY,YR),

frontchar(Z,CZ,ZR),

not(CY=CZ),

frontchar(YR,CY2,YR2),

CY2=CZ,

check(YR2,ZR).

Goal

raspoz("molko",X),

write(X),

readchar(_).

В этой программе у нас есть три эталонных слова:

word("moloko").

word("kefir").

word("tvorog").

Вызов для разбора слова реализуется командами

raspoz("molko",X),

write(X),

readchar(_).

Правила

check("",Z):-

str_len(Z,Z1),

Z1<=2.

check(Y,""):-

str_len(Y,Y1),

Y1<=2.

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

Правило

check(Y,Z):-

frontchar(Y,CY,YR),

frontchar(Z,CZ,ZR),

CY=CZ,

check(YR,ZR).

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

Правило

check(Y,Z):-

frontchar(Y,CY,YR),

frontchar(Z,CZ,ZR),

not(CY=CZ),

frontchar(YR,C2,YR2),

frontchar(ZR,Z2,ZR2),

C2=Z2,

check(YR2,ZR2).

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

Наконец, два последних правила для  check(Y,Z) относятся к ситуациям, когда пропущена одна буква во входном слове (тогда сравнивается следующая буква в образце с текущей букве во входном слове), либо вставлена лишняя буква.

ЗАДАНИЕ

1. Допишите правило (-ла) для случая, когда пользователь переставил буквы местами, например, в слове   molook  (=moloko).

2. Допишите правила, которые допускают только такие несоответствия между буквами, которые созвучны, например,

  malako= moloko

  tvorog= tvorok=tvorox

Но слова  muloko  не отождествляется со словом moloko. Т.е. следует задать похожие по звучанию сочетания пар букв.

3. Допишите правила, которые игнорируют в словах спец. символы, например, пробелы или запятые. Так, слово

 mo lo?ko  есть moloko.




1. Сравнительный анализ стилей руководства
2. Переход от тоталитаризма к демократии
3. Тема 51 Моральноетична культура і самореалізація особистости
4. воспитательного процесса с конкретным контингентом занимающихся
5. Історії педагогіки для студентів ІІІ курсу Екзаменатор- доц
6. Статья- Горячие точки современной геронтологии.html
7. Основы автоматики и системы автоматического управления 1.html
8. А. Баиров И. Б. Осипов
9. Слово про слово Мета- познайомити учнів зі спадщиною Василя Олександровича в якій гово
10. Шпаргалка по философии для вступительного экзамена в аспирантуру