Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Оисание Перцептрона ARS-3.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
572 Кб
Скачать
☆

Распознавание текстовой информации.

В матрицу 8х8 обучающей выборки (матрицу рецепторов) можно заносить не только графические объекты, но и различные коды. Например, используя таблицу ASCII, можно научить перцептрон отличать кошку от собаки и от зайца. Кодирование символов можно производить либо вручную – по таблице ASCII (впрочем, для этой цели подойдёт любой код)

(основная часть альтернативной таблицы ASCII (American Standard Code for Information Interchange) представлена в Таблице № 1)

Таблица 2 Альтернативная кодировочная таблица кода ASCII

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

0

0

1

1

2

пробел

!

“

#

$

%

&

’

(

)

*

+

,

-

.

/

2

3

0

1

2

3

4

5

6

7

8

9

:

;

<

=

>

?

3

4

@

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

4

5

Р

Q

R

S

T

U

V

W

X

Y

Z

[

\

]

^

_

5

6

‘

a

b

c

d

e

f

g

h

i

j

k

l

m

n

o

6

7

p

q

r

s

t

u

v

w

x

y

z

{

|

}

7

8

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

8

9

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ъ

Ы

Ь

Э

Ю

Я

9

A

а

б

в

г

д

е

ж

з

и

й

к

л

м

н

о

п

A

B

р

с

т

у

ф

х

ц

ч

ш

щ

ъ

ы

ь

э

ю

я

B

C

C

D

D

E

р

с

т

у

ф

х

ц

ч

ш

щ

ъ

ы

ь

э

ю

я

E

F

Е

е

№

F

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

Запишите слово кошка в кодах ASCII - каждая буква в этом коде занимает один байт. Условимся каждой букве отводить одну строку (8 рецепторов), единицы кода заносить в матрицу, зажигая соответствующий рецептор. Тогда, буква “а” (ее код ASCII - шестнадцатиричное число “A0”) займет целую строку и будет находиться в пятой строке матрицы рецепторов. 10100000, пятая строка матрицы примет вид:

10100000.

В первой и четвёртой строках нужно поместить код ASCII буквы “к”, во второй – буквы “о”, в третьей – буквы “ш”

Набрав слово “кошка”, научим нейросеть воспринимать его, как символ номер 1. Затем сообщим нейросети, что это слово, набранное в других строках, обозначает то же самое. Затем скажем нейросети, что “котик” и “кот” - это тоже кошки (т.е. тоже соответствуют символу с номером 1).

Аналогично научим нейросеть понятиям “собака” (собачка, песик,...) - понятие номер 2, и “заяц” (зайчик, заинька,...) - понятие номер 3. В результате этой работы будет сформирована обучающая выборка.

После обучения поинтересуйтесь у нейросети, как она считает, кто из названных зверей больше подходит к понятию “кусачка”? На кого больше похож “медведь”?

Результат оформите в виде отчёта, проиллюстрированного соответствующими экранами.

Пример:

Сохраним файл Digits.def под другим именем: rep_6.def. Затем откроем созданный файл и удалим все содержимое после слова facts.

Приступим к созданию обучающей выборки. В матрицах рецепторов 8х8 создадим примеры.

Нейросеть может различать не только графическую информацию, но и различные коды. Текстовая информация может быть представлена в виде двоичной записи шестнадцатеричных кодов ASCII, соответствующих символов. Закодировав таким образом ряд слов, можно находить соответствие между ними и другими словами. Например, можно отличить «кошку» от «собаки» и «зайца», а затем определить на кого из них похожи «медведь» и «кусачка».

Так как для выполнения работ нам не нужна вся таблица 1, а нужны только строки с прописными русскими символами, сделаем для себя вспомогательную Табличку № 2.

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

A

а

б

в

г

д

е

ж

з

и

й

к

л

м

н

о

п

A

B

р

с

т

у

ф

х

ц

ч

ш

щ

ъ

ы

ь

э

ю

я

B

Научим нейросеть различать «кошку», «собаку» и «зайца». Для этого подготовим соответствующую обучающую выборку.

Для начала закодируем слово «кошка» в ASCII, а затем переведем полученные коды в двоичные и запишем в виде матрицы 8х8 (Таблица № 3). В эту же таблицу занесем формы слов «киска» и «кот». В обучающей выборке слова, принадлежащие к классу кошек, будут иметь код 1.

кошка

киска

кот

10101010

10101110

10111000

10101010

10100000

........

........

........

1

AA

AE

B8

AA

A0

10101010

10101000

10110001

10101010

10100000

........

........

........

1

AA

A8

B1

AA

A0

10101010

10101110

10110010

........

........

........

........

........

1

AA

AE

B2

Таблица 3

Проделаем то же для класса собак и зайцев.

Закодируем формы слов «собака», «собачка», «песик» (Таблица № 4).

В обучающей выборке слова, принадлежащие к классу собак, будут иметь код 2.

собака

собачка

песик

10110001

10101110

10100001

10100000

10101010

10100000

........

........

2

B1

AE

A1

A0

AA

A0

10110001

10101110

10100001

10100000

10110111

10101010

10100000

........

2

B1

AE

A1

A0

B7

AA

A0

10101111

10100101

10110001

10101000

10101010

........

........

........

2

AF

A5

B1

A8

AA

Таблица 4

Закодируем формы слов «заяц», «зайчик», «заинька» (Таблица № 5).

В обучающей выборке слова, принадлежащие к классу зайцев, будут иметь код 3.

заяц

зайчик

заинька

10100111

10100000

10111111

10110110

........

........

........

........

3

A7

A0

BF

B6

10100111

10100000

10101001

10110111

10101000

10101010

........

........

3

A7

A0

A9

B7

A8

AA

10100111

10100000

10101000

10101101

10111100

10101010

10100000

........

3

A7

A0

A8

AD

BC

AA

A0

Таблица 5

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

Сохраним полученную выборку и обучим программу данной выборке.

Теперь проверим, к какому классу программа отнесет слова «кусачка» и «медведь»? Для этого закодируем формы соответствующих слов (Таблица № 7).

кусачка

медведь

10101010

10110011

10110001

10100000

10110111

10101010

10100000

........

AA

B3

B1

A0

B7

AA

A0

10101100

10100101

10100100

10100010

10100101

10100100

10111100

........

AC

A5

A4

A2

A5

A4

BC

Таблица 6