Распознавание кодировки русского текста с помощью нейронной сети. Обоснование выбора метода распознавания, страница 5

Сразу после запуска производится сканирование каталога программы на наличие таблиц перекодировки и таблиц весов, найденные таблицы загружаются в память. Для осуществления распознавания необходимо открыть файл из программы. Текст целиком читается в память и только после этого производится его обработка. Файл побайтно подается на вход нейронной сети, таким образом устанавливая входы первого слоя нейронов. При этом на каждом входе производится подсчет числа символов с соответствующим кодом. После этого вычисляется доля каждого символа в тексте по формуле (1). И только после описанных действий производится запуск в работу нейронной сети. Такой подход обеспечивает максимальную параллельность обработки данных, что снижает затраты времени на анализ. Алгоритм распознавания кодировки приведен на рис.3.

Рисунок 3 Алгоритм распознавания кодировки

2.1.2  Алгоритм перекодирования

Ключевым звеном алгоритма перекодирования является сопоставление кодов исходной и конечной кодировок.

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

Рисунок 4 Алгоритм перекодирования

2.1.3  Алгоритм обучения нейронной сети

Частью алгоритма обучения является алгоритм распознавания кодировки. Отличием является лишь то, что при выполнении этого алгоритма известен ожидаемый результат. И в случае несовпадения ожидаемого и реального результатов производится корректировка весов сети. Алгоритм обучения нейронной сети представлен на рис.5.

Рисунок 5 Алгоритм обучения нейронной сети

2.2  Интерфейс пользователя

Использование RAD значительно упрощает и ускоряет процесс создания интуитивно понятного интерфейса в приложениях. Использование меню, кнопок, форм и окон сообщений позволяет создавать интерфейс, подчиняющийся стандартам Windows и схожий с интерфейсами других приложений.

Во время инициализации переменных приложения и загрузки таблиц перекодировки на экране отображается форма, показанная на рис.6.

Рисунок 6 Визуализация процесса загрузки приложения

В нижней строке формы можно видеть имена файлов кодовых таблиц по мере обнаружения их программой в своем каталоге.

Для определения кодировки файла, необходимо нажать кнопку «Открыть» (или выбрать пункт меню «Файл»®«Открыть…»). После чего отобразится линейка прогресса, показывающая примерное число процентов проделанной работы. Когда процесс распознавания кодировки завершится, пользователь видит это в соответствующем сообщении программы (рис.7).

Рисунок 7 Сообщение об определении кодировки

После определения кодировки можно произвести преобразование текста в любую другую (из доступных) кодировку. Для этого надо выбрать пункт меню «Конвертирование» или нажать соответствующую кнопку в панели. В диалоге перекодировки пользователю предоставляется выбор новой кодировки текста (рис.8).

Рисунок 8 Диалог конвертирования

Диалог обучения нейронной сети вызывается путем выбора пункта меню «Обучение нейронной сети». В этом диалоге от пользователя требуется выбрать название кодировки (или ввести имя неизвестной) для обучения и  имя файла-эталона. Эталон служит для анализа частот повторения различных символов в файле. Эти частоты подаются на вход нейронной сети и вычисляется выход.

К файлу-эталону предъявляются жесткие требования:

1.  он должен быть по возможности большим;

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

3.  эталон должен содержать как можно меньше примесей символов в другой кодировке, латинских символов, цифр и псевдографики.