Создание исследовательского прототипа системы идентификации табличных данныхРефераты >> Программирование и компьютеры >> Создание исследовательского прототипа системы идентификации табличных данных
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”. На рисунке представлен результат работы блока предварительной обработки строковых данных.
Заключение.
В данной работе были решены следующие задачи. Первое, что было сделано – это изучена и проанализирована предметная область - торговые предприятия, продуктов питания. Реализована возможность представления данных в иерархической структуре. Был построен алгоритм, вычисляющий меру похожести двух табличных позиций. Изучена среда разработки приложений 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);