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,