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

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

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

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

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

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

от 25%

Подписываем

договор

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

Скидка 25% при заказе до 5.4.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. ТЕМА 1 Гироскопические приборы самолетов TL 2000 Sting crbon TL 3000 Sirius
3. О структуре федеральных органов исполнительной власти
4. Тема- Учитель сучасної школи 2 год
5. А Если бы одна книга смогла вместить все о человеке наверное отпала бы нужда в книгах
6. Осенний пейзаж в технике батик
7. Равновесная кривая для товара повседневного спроса
8. РЕФЕРАТ дисертації на здобуття наукового ступеня доктора педагогічних наук Київ 2008
9. . Тепловое движение.1
10. Приемственность музыкального воспитания школьников и дошкольнико