Создание исследовательского прототипа системы идентификации табличных данных
Рефераты >> Программирование и компьютеры >> Создание исследовательского прототипа системы идентификации табличных данных

SDLeft:integer;

SDRight:integer);

Интерполяция сплайна первого порядка

procedure InterpolationLinear(

var startNo:integer;

SDLeft:integer;

SDRight:integer);

Интерполяция сплайна с фиксированными границами

procedure InterpolationSplineFixed(

var startNo:integer;

RightBorder:boolean;

SDLeft:integer;

SDRight:integer);

function SetPoint(point: integer; side: integer; xx: double; yy:

double): boolean;

function Invert( A:Tmatr; k:integer; var A1:Tmatr ):double;

6.2 Описание интерфейса.

При запуске программы на экране монитора появляется форма с названием ”MainForm”. Это основное окно, которое отображается на экране с самого начала и не исчезает до завершения работы. Оно содержит такое средство управления как главное меню (Main Menu), которое состоит из следующих пунктов: “File”, ”Contractors”, ”Base”, ”Settings”, ”Help”. На рисунке представлен результат работы блока предварительной обработки строковых данных.

Работа с приложением начинается с установки параметров. При выборе в главной форме из меню “Settings” пункта “Common…” появляется окно диалога (рис.4). На котором пользователь при помощи “мыши” формирует справочник признаков и справочник единиц измерения.

Далее добавление нового документа осуществляется путем выбора из меню “File” пункта “Add Base”. Открывается окно мастера импорта текстового документа, в котором разделителем полей является символ табуляции.

Для редактирования внутреннего представления документа в иерархической структуре можно использовать следующее окно. “Base\\Edit”.

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

Заключение.

В данной работе были решены следующие задачи. Первое, что было сделано – это изучена и проанализирована предметная область - торговые предприятия, продуктов питания. Реализована возможность представления данных в иерархической структуре. Был построен алгоритм, вычисляющий меру похожести двух табличных позиций. Изучена среда разработки приложений C++ Builder 5 и создан проект. На данном этапе разработка приложения не остановлена, она продолжается. Следующим ее этапом будет реализация иерархического идентификатора, улучшение блока транскрипции, возможно, если будет необходимо, перевода с одного языка в другой. Также будет перенесен окончательный выбор признаков в блок предварительной обработки. И, наконец, построение механизма анализа идентифицированных документов.

Список литературы

1. К. Верхаген Р. Дейн Ф. Грун «Распознавание образов. Состояние и перспективы» - Москва: Издательство «Радио и связь» 1985г.

2.

Приложение.

//---------------------------------------------------------------------------

#ifndef PositionH

#define PositionH

#include <stdio.h>

const int FlowNum=5;

const int NumbersNum=5;

const int WordsNum=20;

const int ChangeSymbolsNum=1;

const int RusLatErrorsNum=11;

//Ôóíêöèè ôèëüòðà

class TSettings{

public:

AnsiString DelSyms;

AnsiString CyrSyms;

AnsiString LatSyms;

AnsiString NumSyms;

AnsiString NumNDelim;

AnsiString Delimiters;

AnsiString ChangeSyms[ChangeSymbolsNum][2];

AnsiString SpecSyms;

char Errors[RusLatErrorsNum][2]; //îøèáêè

TSettings();

~TSettings();

//Transcript

AnsiString Sim[26][3];

AnsiString Complex[13][2];

AnsiString Control[4][2];

};

//---------------------------------------------------------------------------

#endif

#include <vcl.h>

#pragma hdrstop

#include "Position.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

TSettings T;

bool IsQuantity(AnsiString Word)

{

for(int i=1;i<=Word.Length();i++)

if(T.NumSyms.Pos(Word[i])!=0) return(true);

return(false);

}

TSettings::TSettings(){

DelSyms=AnsiString();

CyrSyms=AnsiString();

LatSyms=AnsiString();

NumSyms=AnsiString();

Delimiters=AnsiString();

SpecSyms=AnsiString();

for(int i=0;i<ChangeSymbolsNum;i++)

for(int j=0;j<2;j++)

ChangeSyms[i][j]=AnsiString();

ChangeSyms[0][0]=AnsiString("&");

ChangeSyms[0][1]=AnsiString(" è ");

// ChangeSyms[1][0]=AnsiString("%");

// ChangeSyms[1][1]=AnsiString("% ");

Delimiters=AnsiString(".,");

SpecSyms=AnsiString("%");

//×èñëà

for(int i=48;i<=57;i++)

NumSyms=NumSyms+AnsiString(char(i));

NumNDelim=NumSyms+AnsiString(DecimalSeparator);

//Ëàòèíñêèå ñèìâîëû

for(int i=65;i<=90;i++)

LatSyms=LatSyms+AnsiString(char(i));

for(int i=97;i<=122;i++)

LatSyms=LatSyms+AnsiString(char(i));

//Ðóññêèå ñèìâîëû

for(int i=192;i<=255;i++)

CyrSyms=CyrSyms+AnsiString(char(i));

//Äëÿ óäàëåíèÿ

for(int i=1;i<=47;i++)

switch(i){

case 37 :break;

case 38 :break;

case 32 :break;

case 46 :break;

case 44 :break;

default: DelSyms=DelSyms+AnsiString(char(i));

}

for(int i=58;i<=64;i++)

DelSyms=DelSyms+AnsiString(char(i));

for(int i=91;i<=96;i++)

DelSyms=DelSyms+AnsiString(char(i));

for (int i=123;i<=191;i++)

DelSyms=DelSyms+AnsiString(char(i));

Errors[0][0]=char(241); Errors[0][1]=char(99);

Errors[1][0]=char(226); Errors[1][1]=char(98);

Errors[2][0]=char(224); Errors[2][1]=char(97);


Страница: