Смекни!
smekni.com

Автоматизированная интеллектуальная система классификации информационных сообщений средств массовой (стр. 7 из 8)

5. ГОСТ 19.402-78.ЕСПД. Описание программы.

6. ГОСТ 12.1.005-88 Общие санитарно-гигиенические требования к воздуху в рабочей зоне.

7. ГОСТ 19.701-90 Схемы алгоритмов, программ, данных и систем.

8. ГОСТ 34.201-89 Информационная технология. Виды, комплектность и обозначение документов при создании автоматизированных систем.

9. ГОСТ 34.602-89 Информационная технология. Техническое задание на создание автоматизированной системы.

10. СанПиН 2.2.2/2.4.1340-03 Гигиенические требования к персональным электронно-вычислительным машинам и организации работы.

11. Р.2.2.2006-05 Гигиенические критерии оценки условий труда по показателям вредности и опасности окружающей среды, тяжести и напряженности трудового процесса.

12. СанПиН 2.2.548-96 Общие санитарно-гигиенические требования к воздуху в рабочей зоне.

13. Андрейчиков А.В., Андрейчикова О.Н. Интеллектуальные информационные системы: Учебник. – М.: Финансы и статистика, 2004. – 424 с.: ил.

14. Базы данных в Delphi 7. Самоучитель/ В. Понамарев. – СПб.: Питер, 2003. – 224 с.: ил.

15. Башмаков А.И., Башмаков И.А. Интеллектуальные информационные технологии: Учеб. пособие. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2005. – 304 с.: ил.

16. Бобровский С.И. Delphi 7. Учебный курс.– СПб.: Питер, 2003. – 736с.

17. Глушаков С.В., Клевцов А.Л. Программирование в среде Delphi 7. – Харьков: Фолио, 2003. – 528с.

18. Гофман В.Э., Хомоненко А.Д. Работа с базами данных в Delphi / В. - 2-е изд. – СПб.: БХВ – Петербург, 2002. – 624с.: ил.

19. Девятков В.В. Системы искусственного интеллекта: Учеб. пособие для вузов. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2001. – 352 с.: ил.

20. Диго С.М. Проектирование баз данных: Учебник. – М.: Финансы и статистика, 1988. – 216с.

21. Дубнов П.Ю. Access 2000: Программирование баз данных. – М.: ДМК, 2000. – 272с.: ил.

22. Пономарев В. Базы данных в Delphi 7: Самоучитель. – М. и др.: Питер, 2003. – 224с.: ил.

23. Средства защиты в машиностроении: Расчет и проектирование: Справочник/С.В. Белов, А.Ф. Козьяков, О.Ф. Партолин и др.; Под ред. С.В. Белова. – М.: Машиностроение, 1989. – 368 с.: ил.

24. Типовые нормы времени на программирование задач для ЭВМ. – М.: Экономика, 1989.

25. http://google.ru/com/str.zip

26. http://google.ru//narod.ru/Hem/infon.zip


Приложение 1. Структура входных и выходных документов

Результаты классификации информационных сообщений СМИ

Код Наименование рубрики Название Текст Ключевые слова Результат

Отчет по результатам классификации статьи

Дата публикации:_________________

Файл публикации:________________

Название публикации:_____________

Ключевые слова:__________________

Автор публикации: ________________

Текст публикации: _______________

Код Наименование По названию По тексту По ключевым словам Результат

Отчет по обработанным статьям файла

Дата публикации: ____________________

Название публикации: ________________

Ключевые слова: _____________________

Автор публикации: ___________________

Текст публикации: ___________________

Сопоставленные рубрики: _______________


Приложение 2. Текст программы

unituMain;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, OleServer, WordXP;

type

TfrmMain = class(TForm)

mnMain: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

wa: TWordApplication;

wd: TWordDocument;

wf: TWordFont;

N12: TMenuItem;

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N12Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frmMain: TfrmMain;

implementation

uses uInputModule, uClassify, uEditDictModule, uClassifySettings,

uDataModule, uGetFileName, uEditPubl;

{$R *.dfm}

procedure TfrmMain.N2Click(Sender: TObject);

begin

frmInputForm.ShowModal;

end;

procedure TfrmMain.N3Click(Sender: TObject);

begin

frmClassify.ShowModal;

end;

procedure TfrmMain.N5Click(Sender: TObject);

begin

frmEditDict.ShowModal;

end;

procedure TfrmMain.N7Click(Sender: TObject);

begin

frmClassifySettings.ShowModal;

end;

procedure TfrmMain.N9Click(Sender: TObject);

begin

Close;

end;

procedure TfrmMain.N11Click(Sender: TObject);

var tmpl, Template, NewTemplate, ItemIndex: olevariant;

ARange: Range;

pars: Paragraphs;

par: Paragraph;

st: string;

vcol: OleVariant;

iStat: integer;

begin

dmIAS.aqFiles.Close;

dmIAS.aqFiles.Open;

frmGetFileName.cbFiles.Items.Clear;

frmGetFileName.cbFiles.Text:= dmIAS.aqFiles.FieldByName('file').AsString;

while not dmIAS.aqFiles.Eof do

begin

frmGetFileName.cbFiles.Items.Add(dmIAS.aqFiles.FieldByName('file').AsString);

dmIAS.aqFiles.Next;

end;

frmGetFileName.iMD:= 0;

frmGetFileName.ShowModal;

if (frmGetFileName.iMD = 0) or (frmGetFileName.cbFiles.Text = '')

then exit;

dmIAS.aqExe.Close;

dmIAS.aqExe.SQL.Text:= 'Select * from qObrPubl where file = :file';

dmIAS.aqExe.Parameters.ParamByName('file').Value:= frmGetFileName.cbFiles.Text;

dmIAS.aqExe.Open;

try

wa.Connect;

wa.Visible := True;

except

MessageDlg('АуВас Word неустановлен :(', mtError, [mbOk], 0);

Abort;

end;

ItemIndex:= 1;

Template:= EmptyParam;

NewTemplate := False;

// Созданиедокумента

wa.Documents.Add(Template, NewTemplate, EmptyParam, EmptyParam) ;

wd.ConnectTo(wa.Documents.Item(ItemIndex));

wd.PageSetup.Set_Orientation(wdOrientLandscape);

wa.Options.CheckSpellingAsYouType := False;

wa.Options.CheckGrammarAsYouType := False;

ARange:= wd.Range(EmptyParam, EmptyParam);

pars:= wd.Paragraphs;

tmpl:= ARange;

par:= pars.Add(tmpl);

wf.ConnectTo(wd.Sentences.Get_Last.Font);

wd.Range.Paragraphs.Set_Alignment(wdAlignParagraphLeft);

wa.Selection.Font.Bold:= 1;

wa.Selection.Font.Size:= 16;

st:= 'Отчетпообработаннымстатьямфайла ' + frmGetFileName.cbFiles.Text;

wa.Selection.InsertAfter(st+#13);

wa.Selection.InsertAfter(' '+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

iStat:= -1;

while not dmIAS.aqExe.Eof do

begin

if iStat <> dmIAS.aqExe.FieldByName('id_publ').AsInteger

then

begin

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

wa.Selection.Font.Bold:= 0;

wa.Selection.Font.Size:= 14;

wa.Selection.InsertAfter(' '+#13);

wa.Selection.InsertAfter(' '+#13);

st:= 'Датапубликации: ';

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

if (dmIAS.aqExe.FieldByName('data').AsString = '30.12.1899')

then st:= ' '

else st:= dmIAS.aqExe.FieldByName('data').AsString;

wa.Selection.InsertAfter(st+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= 'Названиепубликации: ';

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= dmIAS.aqExe.FieldByName('name_publ').AsString;

wa.Selection.InsertAfter(st+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= 'Ключевыеслова: ';

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= dmIAS.aqExe.FieldByName('keywords').AsString;

wa.Selection.InsertAfter(st+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= 'Авторпубликации: ';

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= dmIAS.aqExe.FieldByName('author').AsString;

wa.Selection.InsertAfter(st+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= 'Текстпубликации: ';

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= dmIAS.aqExe.FieldByName('text_publ').AsString;

wa.Selection.InsertAfter(st+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= 'Сопоставленныерубрики:';

wa.Selection.InsertAfter(st+#13);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

st:= dmIAS.aqExe.FieldByName('indx').AsString

+ ' '

+ dmIAS.aqExe.FieldByName('name_r').AsString;

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

iStat:= dmIAS.aqExe.FieldByName('id_publ').AsInteger;

end

else

begin

wa.Selection.InsertAfter(' '+#13);

st:= dmIAS.aqExe.FieldByName('indx').AsString

+ ' '

+ dmIAS.aqExe.FieldByName('name_r').AsString;

wa.Selection.InsertAfter(st);

vcol := wdCollapseEnd;

wa.Selection.Collapse(vcol);

end;

dmIAS.aqExe.Next;

end;

wa.Disconnect;

end;

procedure TfrmMain.N12Click(Sender: TObject);

begin

frmEditPubl.ShowModal;

end;

end.

unit uFuzzySearch;

interface

function IndistinctMatching(MaxMatching:Integer; strInputMatching:WideString; strInputStandart:WideString):Integer;

implementation

uses SysUtils;

type

TRetCount = packed record

lngSubRows : Word;

lngCountLike : Word;

end;

function Matching(StrInputA:WideString; StrInputB:WideString; lngLen:Integer):TRetCount;

Var

TempRet : TRetCount;

PosStrB : Integer;

PosStrA : Integer;

StrA : WideString;

StrB : WideString;

StrTempA : WideString;

StrTempB : WideString;

begin

StrA := String(StrInputA);

StrB := String(StrInputB);

For PosStrA:= 1 To Length(strA) - lngLen + 1 do

begin

StrTempA:= System.Copy(strA, PosStrA, lngLen);

For PosStrB:= 1 To Length(strB) - lngLen + 1 do

begin

StrTempB:= System.Copy(strB, PosStrB, lngLen);

If SysUtils.AnsiCompareText(StrTempA,StrTempB) = 0 Then

begin

Inc(TempRet.lngCountLike);

break;

end;

end;

Inc(TempRet.lngSubRows);

end; // PosStrA

Matching.lngCountLike:= TempRet.lngCountLike;

Matching.lngSubRows := TempRet.lngSubRows;

end; { function }

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

function IndistinctMatching(MaxMatching:Integer; strInputMatching:WideString; strInputStandart:WideString):Integer;

Var

gret : TRetCount;

tret : TRetCount;

lngCurLen: Integer ; //текущаядлинаподстроки

begin

//если не передан какой-либо параметр, то выход

If (MaxMatching = 0) Or (Length(strInputMatching) = 0) Or

(Length(strInputStandart) = 0) Then

begin

IndistinctMatching:= 0;

exit;

end;

gret.lngCountLike:= 0;

gret.lngSubRows := 0;

// Цикл прохода по длине сравниваемой фразы

For lngCurLen:= 1 To MaxMatching do

begin

//Сравниваем строку A со строкой B

tret:= Matching(strInputMatching, strInputStandart, lngCurLen);

gret.lngCountLike := gret.lngCountLike + tret.lngCountLike;

gret.lngSubRows := gret.lngSubRows + tret.lngSubRows;

//Сравниваем строку B со строкой A

//tret:= Matching(strInputStandart, strInputMatching, lngCurLen);

//gret.lngCountLike := gret.lngCountLike + tret.lngCountLike;

//gret.lngSubRows := gret.lngSubRows + tret.lngSubRows;

end;

If gret.lngSubRows = 0 Then

begin

IndistinctMatching:= 0;

exit;

end;

IndistinctMatching:= Trunc((gret.lngCountLike / gret.lngSubRows) * 100);

end;

end.

unit uClassify;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, Mask, DBCtrls, Grids, DBGridEh, ComCtrls,

WordXP, OleServer;

type

TfrmClassify = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Label1: TLabel;

DBNavigator1: TDBNavigator;

dbmText: TDBMemo;

Panel3: TPanel;

Label7: TLabel;

Button2: TButton;

Panel4: TPanel;

Label6: TLabel;

Label3: TLabel;

dbAuthor: TDBEdit;

Label2: TLabel;

dbDate: TDBEdit;

Label4: TLabel;

dbName: TDBEdit;

Label5: TLabel;

dbKeywords: TDBEdit;

pbClassify: TProgressBar;

dbgClassify: TDBGridEh;

Button1: TButton;

Label8: TLabel;

dbFile: TDBEdit;

lblCountArticles: TLabel;

Button3: TButton;

wd: TWordDocument;

wa: TWordApplication;

wf: TWordFont;

procedure SetDBElemColor(flColor: boolean);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frmClassify: TfrmClassify;

implementation

uses uDataModule, uFuzzySearch, uClassifySettings, uStructs;

{$R *.dfm}

procedure TfrmClassify.SetDBElemColor(flColor: boolean);

begin

if frmClassify = nil

then exit;

if flColor

then

begin

dbName.Color:= clMoneyGreen;

dbKeywords.Color:= clMoneyGreen;

dbmText.Color:= clMoneyGreen;

end

else

begin

dbName.Color:= clWindow;

dbKeywords.Color:= clWindow;

dbmText.Color:= clWindow;

end;

end;

procedure TfrmClassify.Button1Click(Sender: TObject);

var id_publ, id_rubr, level,

Name_cnt, Text_cnt, Key_cnt, im,

iNamePorog12, iTextPorog12, iKeyPorog12,