系统的实现范文

2024-09-17

系统的实现范文(精选11篇)

系统的实现 第1篇

计算机公共机房的电脑为了防止病毒和黑客的攻击,一般在每台电脑上安装有瑞星防病毒软件和天网防火墙等软件,这也算是公共场所保护计算机的一个标准配置。瑞星是一个很优秀的国产防病毒软件,除了具有很强的防病毒能力之外,它还能有效地防止电脑用户蓄意从网上下载一些类似于病毒的黑客软件:而天网防火墙的保护计算机免受黑客攻击的能力也是鼎鼎有名的。所以这一标准配置对于防止来自于网络外部的病毒和黑客是非常行之有效的。但是,对于来自于网络内部的破坏者的攻击,以上两个软件就显得无能为力了。

设想这样一个场景:同时停掉一个局域网上的两台电脑上的瑞星和天网两个进程,然后,在其中一台电脑上下载并安装一个黑客软件用于攻击另外一台卸掉保护的机器,由于攻击过程中发送大量的巨型数据包,最后将导致数据包在很短时间内急剧增加,堵塞局域网交换机,从而使整个网络陷入瘫痪状态。上述情景并不是虚构的,而是在有些计算机公共机房经常发生的事情。本文的目的就是设计一个系统用于防止来自网络内部的黑客的蓄意破坏。

2 系统的工作原理

这个应用的工作原理很简单,程序运行过程如下:

1、程序随系统启动开始运行:

2、程序等待一个时间间隔之后扫描系统进程列表:

3、如果系统进程列表中存在指定的防病毒软件或防火墙软件,则转第2步。否则转第4步:

4、强行关闭或重新启动计算机。

本程序的设计过程中主要考虑以下几个方面的问题:(1)系统进程的扫描:检查计算机系统中的指定进程是否在运行:(2)系统关机的实现:根据扫描结果判断是否关机,实现整个网络系统的保护:(3)进程自身的隐藏:实现自我保护。下面就分别讨论这几个问题。

3 系统进程的扫描

扫描本地系统进程的方法很多,最基本的有两种方法,(1)调用PSAPI函数枚举本地系统进程,(2)调用Tool Help API枚举本地系统进程[1]。前者只适用于windows NT/2000系统,者适用于windows NT/2000系统和9X系统。为了保证系统的兼容性,本程序中选择使用后者。

Tool Help API函数一共有12个,在此只需使用其中的三个函数即可。

1、HANDLE WINAPI Create Toolhelp32Snapshot(DWORDdw Flags,DWORD th32Process ID);

Create Toolhelp32Snapshot函数的功能是给系统中的进程做快照。其中第一个参数dw Flags用于指定快照的类型。本程序的目的是枚举系统当前的所有进程,所以该参数指定为T H 3 2 C S_S N A P P R O C E S S。由于第一个参数指定为TH32CS_SNAPPROCESS,从而第二个参数th32Process ID被忽略。函数成功执行之后返回指向快照的HANDLE。

2、BOOL WINAPI Process32First(HANDLE h Snapshot,LPPROCESSENTRY32 lppe);

3、BOOL WINAPI Process32Next(HANDLE h Snapshot,LPPROCESSENTRY32 lppe);

这两个函数联合使用即可遍历系统得每一个进程。Process32First用于获得系统快照中的第一个进程信息,Process32Next获得系统快照中的下一个进程的信息。参数h Snapshot即为Create Toolhelp32Snapshot函数的返回值:lppe是指向PROCESSENTRY32结构的指针,这两个函数调用成功后,lppe所指向的结构中保存了进程的一些信息,比如进程ID、进程的可执行文件名等。需要注意的是,调用Process32First函数时,必须将lppe->dw Size初始化为sizeof(PROCESSENTRY32):

使用以上三个函数遍历系统进程的代码片段如下:

以上代码在遍历系统进程快照时查找是否有需要的两个进程,程序不复杂。需要说明的是,由于windows9x关机的特殊性,所以在遍历系统进程的时候,顺便记录下了explorer.exe进程的信息,下面讲关闭系统时还要提到。PROCESSENTRY32结构的成员很多,在此,只使用了其中的sz Exe File成员,该成员保存的是进程的可执行文件名,在windows9x下sz Exe File成员包含可执行文件的全路径。

当然,为了让本程序具有通用性,即能够监视任意程序是否在运行,可以将需要监视的进程名称存储在config.ini文件中,程序开始启动时从该文件中读取进程信息。当然也可以将程序扫描系统进程列表的间隔时间也存储在上述config.ini文件中。

4 系统关机的实现

1、关闭系统使用Exit Windows Ex函数,该函数的原型如下:

B O O L E x i t W i n d o w s E x(U I N T u F l a g s,D W O R Ddw Reason);

其中参数u Flags用于指定关机类型,由于是强行关闭计算机,所以该参数设为E W X_S H U T D O W N|E W X_F O R C E,EWX_SHUTDOWN用于指定关闭计算机,如果重新启动计算机将此值改为EWX_REBOOT,EWX_FORCE强行结束所有进程,不提示保存未保存的修改(使用此参数有可能导致应用程序数据丢失)。参数dw Reason一般被忽略,不去管它。函数不成功执行返回FALSE:

由于w i n d o w s 9 x和N T/2 0 0 0的差异,在使用Exit Windows Ex时有所差别,在windows9x中强行关闭计算机之前必须先结束explorer.exe进程,这就是为什么在上面遍历系统进程的代码中记录explorer.exe进程的信息的原因。结束进程有两个API函数可用:Exit Process和Terminate Process。Exit Process函数用于结束当前自身进程,Terminate Process函数可用于结束自身或其它进程,因为是本程序结束其他进程,所以应选用Terminate Process函数。该函数的原型如下:

2、BOOL Terminate Process(HANDLE h Process,UINTu Exit Code);

参数u Exit Code没有什么意义,随便指定一个值就可以。参数h Process是指向要结束进程的句柄。该参数通过函数调用Open Process函数得到,Open Process函数原型如下:

3、HANDLE Open Process(DWORD dw Desired Access,BOOL b Inherit Handle,DWORD dw Process Id);

参数dw Desired Access表示希望得到进程的访问权限,由于是要关闭某个进程,所以该值可以设为PROCESS_TERMINATE,在不知道应该需要什么权限的情况下可以简单地将该值设为PROCESS_ALL_ACCESS。

参数b Inherit Handle用于指定打开进程句柄的可继承性,对于本应用来说,该参数指定为TRUE或FALSE都不重要。

参数dw Process Id是要打开的进程的ID。由于在遍历系统进程时已经得到了要结束进程(e x p l o r e r.e x e)的PROCESSENTRY32,该结构的成员th32Process ID保存了explorer进程的ID。

以下是windows9x环境下关机代码:

5 进程的隐藏

很显然,本进程必须在进程列表中隐藏起来,否则会被用户关闭,就起不到它的作用了,所以下面的工作将讨论如何隐藏进程,在此只讨论在9x下的进程隐藏方法。在windows NT/2000环境下,进程的隐藏稍稍有点复杂,在此先不讨论。

在windows9x下,只要将进程注册为系统服务,那么该服务进程在进程列表中就看不见了[2]。使用函数Register Service Process注册或取消注册服务进程,该函数在windows NT/2000下不能使用。函数原型如下:

DWORD Register Service Process(DWORD dw Process Id,DWORD dw Type);

参数dw Process Id指定进程要注册的进程ID,如果为NULL,则指定当前进程。参数dw Type指定操作是注册服务还是注销服务。如果为1,注册进程为服务,如果为0,取消注册服务。函数成功执行返回1,否则返回0。

需要说明的是,函数Register Service Process在KERNEL32.DLL中定义,调用之前必须使用Load Library动态装载该DLL文件,并调用用Get Proc Address得到Register Service Process函数的指针,然后通过指针执行该函数。

下面是将当前进程注册为服务的代码,本文中已经将这一功能封装成函数。

当执行完以上函数后,在进程列表中就不显示当前进程了,进程很好地保护了自己,同时也保护了整个计算机系统和网络。

当然,为了使程序在系统启动时自动运行起来,可以在系统注册表的相关条目下设置本程序为自动运行即可,因为公共场所的计算机一般安装有还原卡,所以不必担心用户修改注册表的问题。

6 测试结果

在安装有天网和瑞星的计算机上运行本程序,通过手动停止这两个进程中的任何一个进程或两个进程都停止,在不超过40秒时间(这个时间的选取参考的是用户停止防火墙和防病毒进程、下载安装黑客软件以及进行攻击的时间之和,这个时间也是本程序扫描系统进程的时间间隔)内系统自动关闭,能有效地保护了整个计算机网络。

7 结束语

本程序在开发过程中充分考虑到有些A P I函数在N T及win9x两种环境的差别,并在windows2000及windows98两种环境下联合开发,因此在win9x及NT两种环境下都能正常运行。

消耗系统资源少,占用内存2.5M,CPU资源消耗几乎是0%,对于其他进程的运行几乎没有影响(测试机器配置为P4 2.0G256MRAM Windows XP)。

摘要:本文介绍了在windows环境中监视进程及关闭计算机保护系统的程序的实现过程。详细讨论了在开发过程中应注意的几个主要问题:系统进程的遍历,系统关机的实现,在任务列表中隐藏进程等。程序使用VC++6.0环境开发完成。实验结果证明,程序运行过程中对系统资源消耗极少,满足性能需求。

关键词:关闭系统,进程隐藏,注册服务,进程监视

参考文献

[1]微软MSDN文档:

系统的实现 第2篇

激光捷联惯导系统中转位系统的设计与实现

研究激光捷联惯导系统中的转位控制技术.采用捷联惯导系统本身的RLG实现转位系统的闭环数字控制,给出了转位伺服系统的结构组成以及数字控制器的设计方法和设计过程,给出了数字控制器的`计算机实现方法和软件流程.仿真及调试结果表明,所设计的转位伺服系统满足捷联惯导系统的要求,既保证了转动的平稳性,克服了到位撞击问题,又不增大体积、增加成本.

作 者:缪玲娟 牛勇 MIAO Ling-juan NIU Yong  作者单位:北京理工大学自动控制系,北京,100081 刊 名:北京理工大学学报  ISTIC EI PKU英文刊名:JOURNAL OF BEIJING INSTITUTE OF TECHNOLOGY 年,卷(期):2000 20(4) 分类号:V241.622 关键词:激光陀螺(RLG)   伺服系统   单片机  

工资管理系统的实现 第3篇

随着计算机技术的飞速发展,利用计算机实现人事工资的管理势在必行。工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力。用计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,同时计算机具有手工管理所无法比拟的优点,例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事工资管理的效率,也是企业的科学化、正规化管理与世界接轨的重要条件。

二、用户功能的需求分析

1.学院的工资发放标准

a.应发工资包括以下几部分:基本工资、职务工资、教学津贴、科研津贴等。

b.代扣代缴包括以下几个部分:保险金、住房公积金、代扣所得税。

c.其他:职工实发工资 = 应发工资 - 代扣代缴 + 其他各项补发。

2.具体需求

a.提供各项数据的录入、修改、查询功能。包括部门信息、职工信息、工资的发放标准以及教师每月课时登记;自动生成每月的应发工资,由操作人员填入各项代扣代缴费用后,自动生成实发工资。

b.要求提供的报表

基本报表: 每月工资发放表、教职工花名册、部门各职称职工人数统计表。

综合报表:分部门各职称工资构成统计表。

3.系统维护

提供简单的用户管理的功能,如增加、删除用户,设置、修改用户口令。为了兼顾安全性和方便性,在用户管理上针对不同的角色,实现不同的操作权限。

三、功能划分

根据需求分析,将系统划分为7个功能模块,分别为用户登录、系统管理、数据录入、数据查询、基本报表生成、综合报表生成、用户管理。

四、数据描述

1.静态数据

数据库中表单的个数和表单中数据属性的个数是静态数据。

2.动态数据

建立数据库时输入的数据,对数据库进行查询时输出的数据都属于动态数据。

3.数据库描述

本系统的数据库由8个表组成,分别为部门信息表、职工信息表、职称信息表、职务信息表、教学津贴发放标准、科研津贴发放标准、人工资信息表、用户表。

4.数据采集

数据来源:数据主要来源于职工,即职工是数据源,职工的基本信息,职务信息,职称信息等作为数据源输入。其他的教学津贴发放标准、科研津贴发放标准、职称工资标准由学校统一录入。

数据出路:主要是反馈给各个院系和学校领导以及职工个人等。

五、总体设计

本软件是基于Web的工资管理系统,开发结构为数据库/应用服务器/客户端的三层结构,即数据层/逻辑层/表示层,系统在J2EE[1]平台上得以实现;考虑到实际情况,本系统的用户可能是财务管理者,也可能是普通职员,为了兼顾安全性和方便性,在用户管理上针对不同的角色,实现不同的操作权限。

六、实现功能

通过努力,本软件能基本上完成需求中的功能。实现工资和人事管理的初级应用。

程序中遇到的问题和解决办法[2]:

1.由于操作员口令直接存放在数据库中,在系统运行时数据库文件必须存在,这样,人们可以通过直接获取操作员口令,给系统的安全性带来了比较大的隐患。

解决办法:对口令进行加密,加密的思路是,规定口令最长为10位,逐位取出来后,让每位字符的ASCII码值作二进制的异或运算,然后重新组合来新的口令。用二进制异或运算作加密算法的好处是,由于同一个异或运算两次就成了原来的,只需将密文再加一个密,这样在编程上就比较容易实现。在程序编制完成后,可将有关源程序删除,编译成可执行文件,这样,口令就不容易被泄密。

2.由于系统对数据库操作比较频繁,而连接数据库不仅要开销一定的通讯和内存资源,还必须完成用户验证、安全上下文配置这类任务,因而往往成为最为耗时的操作。

解决办法:使用tomcat的自带连接池。多个请求共享一个连接,减少了连接数据库的开销。

3.代码优化方面,jsp[3]代码中大量的使用scriptlet,使代码晦涩难懂,增加了代码的维护困难。

解决办法:使用jstl标准的标签。

4.报表输出时,原来采用的是直接在网页中画表格。这样做无法实现用户的手动定制。比如设置表格大小、字体等。

解决办法:使用微软自带的web控件。这个控件在网页中显示的样式跟excel类似。可以控制显示大小,排序等功能,最主要的是它能将数据导入到excel,使用excel进行编辑和打印。

参考文献

[1] 飞思科技产品研发中心.J2EE应用开发(WebLogic+Jbuilder)[M].北京:电子工业出版社.2003.

[2] James W.Cooper.Java Design Patterns[M].北京:中国电力出版社.2003.

延时播出系统的实现 第4篇

经过多年的建设, 目前我台播控系统已经完全实现了数字化、网络化和硬盘化, 但是随着使用年限的增加, 系统暴露出了越来越多的问题, 因此, 我们决定在现有设备的基础上, 搭建一套延时时间更长, 操作更加灵活, 可以对素材进行灵活编辑的延时播出系统。

2 延时播出的作用

所谓延时播出系统主要是指在直播过程中在播出系统中加入延时系统, 使现场信号人为地滞后若干时间。这样做的目的是使播出操作人员能够有充裕的时间对现场信号进行处理。

3 延时播出设备

3.1 固态延时器

3.1.1 固态延时器原理

固态延时器是使用固态存储器件RAM写入一定时长的数字播出信号, 在一定时间后再读出播出。由于存储器件容量有限, 所以固态延时器的延时时间也是很有限的, 一般为数分钟。

3.1.2 固态延时器特点

⑴结构简单, 稳定可靠。⑵所有设置调节在面板上直接操作。⑶视音频延迟时间可选范围为1秒至数分钟。⑷采用动态缓存技术, 其缓冲区大小相对也就受到一定的限制。⑸应急操作比较简单, 应急处理精度很差, 有可能出现画面情节跳动、不连续的情况。⑹掉电后无法保存素材。

3.2 硬盘延时播出系统

3.2.1 硬盘延时播出的概念

我们知道延时播出是相对于实时播出的一个概念, 也就是直播节目的延时播出。至于磁带节目通过上载再按播出时序表在一定时间后播出我们不认为是延时播出, 而是按时播出。

3.2.2 硬盘延时播出系统特点

⑴高灵活性, 可以插播和编辑。⑵延时时间由硬盘大小决定。⑶应急处理精确到帧, 从而使延时应急处理画面流畅, 避免出现生硬的连接画面。⑷应急节目素材编排与调度更加灵活, 可以进行非线性检索。⑸延时操作相对复杂, 由于采用软件控制其延时播出进程, 所以对操作人员的反应与熟练程度要求也比较高。

4 硬盘系统延时和固态延时的比较

硬盘延时和固态延时所组成的系统差异很大, 比较两者, 则有表1:

由此可见, 硬盘服务器延时播出系统和固态延时器的延时播出各有千秋, 它们的合理配置和使用, 为直播节目的安全播出提供了强有力的保证。

5 延时播出系统的设计与实现

目前, 我部门负责的主要直播节目有两类, 一类是自制的新闻类节目, 另一类则是大型晚会节目。新闻类节目的延时时间要求较短;而大型晚会节目延时时间要求较长。因此, 新闻类节目的延时由固态延时器完成, 而晚会类延时较长的节目, 由硬盘延时系统完成。所以, 我们决定以现有的Omneon服务器为基础, 搭建新的硬盘延时播出系统。我们腾出两台Omneon服务器作为延时服务器, 平时兼做频道的备2播出通道:

⑴SERVER1作为主延时服务器, 装有一块5001编解码模块, 提供一编两解三个视频通道, 其中, CHA可以在编码与解码之间切换, 而CHB和CHC只能解码。所以, 我们将CHA设为直播信号主上载通道, CHB设为延时播出主通道, 而CHC则设为延时编辑审看主通道。

⑵SERVER2作为备延时服务器, 与SERVER1完全镜像, 提高了延时播出系统的安全性。这两台服务器我们平时作为备2服务器使用 (具体的通道配置就不多做介绍了) , 当遇到需要长时间延时的节目时, 作为延时服务器使用, 而平时的新闻类节目则使用操作方便, 经济实用的固态延时器。

6 延时播出软件

延时播出软件需要完成以下功能:⑴输入信号的编码录制控制。⑵已录制片段的回看、审片功能。⑶延时播出信号的控制。⑷主备延时操作的同步。

而我们所用的延时播出软件经过多次调试, 基本达到了以上要求, 具体功能如下:

在延时播出控制界面可方便进行延时时间设置、垫片设置、系统设置等操作, 同时可直观的看到磁盘剩余时间、应急操作记录、主备延时器同步操作等系统信息。

对于已采集素材的修改操作界面, 借鉴了非线编软件的一些基本思路。已采集的待播节目可通过一个小的画面窗, , 进行节目播出前回放, 以便较为精确找到需修改的节目片断位置, 设置出点、入点。然后根据节目需要进行覆盖、删播和插播等简单修改。更加适应直播情况下的使用。

流媒体系统的实现与组成 第5篇

当一个网站提供VOD的串流内容时,需要使用转档/转码工具,将一般的多媒体文件进行高品质、适合网络上串流的压缩,再将转好的文件传送到服务器端传输,

若网站要提供的是转播服务,则需要在空中将音频及视频内容截取后,直接传到服务器端,并由服务器放送出去,而直播式的传送可以透过Unicast或Multicast来实现。

一个完整的流媒体平台,包括流服务应用软件、集中分布式视频系统、视频业务管理媒体发布系统、视频采集制作端系统、媒体内容检索系统、数字版权管理(DRM)、媒体存储系统、客户端系统等重要组成部分。

点击阅读更多学院相关文章>>

数字识别系统的实现 第6篇

关键词:数字识别,预处理,BP网络

1、引言

人们往往对数字识别的系统要求是高识别率和更高的可靠性, 因为在关于金额方面的数字识别时, 比如写支票, 需要识别系统正确的识别指定的金额, 再进行一些有关金额的操作, 如果出现数字识别错误, 使得关于金额的活动无法顺利进行下去, 这样不仅没有给人们带来方便, 反而增加了不少的麻烦。为了使数字识别系统有更高的识别率和更高的可靠性, 往往运用多种方法进行字符的识别。根据使用的特征不同, 分为统计特征和结构特征方法。统计特征包括笔画、圆、轮廓、端点等, 统计特征的分类器易于训练, 并且在给定的训练集上有较高的识别率;结构特征包括点密度的测量、特征区域、矩等, 它的优点则在于识别过程中可以很好的组合结构和几何知识, 可以让识别具有较高的可靠性。在众多研究领域中, 尤以BP (Back Propagation) 网络的数字识别算法应用最为广泛, 此处通过VC进行编码实现该模型[1,2,3]。

2、BP网络

BP网络作为一种常用的神经网络模型, 在各个领域都有广泛应用, 下面我们主要介绍其学习过程[4]。

设BP网络包括m个连接点, 输出f (X) , 任意节连接点的输出记做f (Xk) , 记为Yk。有s个样本 (Xv, Yv) , v=1, 2, 3, ..., M, 对某一输入Xv, BP网络输出为Yk, 节点i的输出为Miv, 节点j的输入为

使用平方型误差函数, 其中Yv是网络的实际输出,

定义公式

其中,

于是有,

当j为输出节点时,

若就j不是输出节点,

所以得出,

根据上面的算法总结出BP网络学习的过程。

第一步根据训练样本求权值矩阵和学习速率时都需要设置变量和参数。

第二步用小的非零向量赋予各个权值矩阵, 随机的来进行初始化。

第三步输入随机样本。

第四步分别求出神经元接收到的信息和将要传递出去的信息。

第五步根据实际传递出去的信息和期望下次接收到的信息结果求得误差。如果满足期望, 就转到第八步;不满足转第六步。

第六步判断计算的重复次数是否达到最大值, 已经达到就转到第八步, 若没有达到按照相反的方向计算各层神经元的小范围梯度。

第七步将权值矩阵的值修改为神经元局部梯度。

第八步查看样本是否已经训练完, 如果完成就结束, 不然跳转到第三步。

从实践了解到, 以下两点特别重要。

(1) 将权值赋予初始值。应该将初始值设为随机数以避免权值的调整同向, 权值的初始值的选择应该根据以往的经验选取, 出现频率最高的小值是最佳选择对象。

(2) 初始权值不应该被设置的非常大。初始值设置的不合适就会影响网络的训练, 会使学习误差过于小, 导致训练的结果无法结束, 就会造成训练失败。

3、图像预处理

运用多种关键技术将图像进行预处理, 将每个数字的特征提取出来。要将图像信息转化为认识的讯号, 使得识别更加准确。图像预处理技术是数字识别系统中的一些常规的技术, 虽然有的不是系统的核心技术, 但却是不可缺少的支持技术, 是识别前的重要步骤, 预处理是网络训练的前奏, 是必要的过程, 图像预处理流程图, 如图1所示。

4、相关技术

4.1 细化

图像特征提取有许多方式方法, 代表的有数字骨架、粗网格、笔画密度、外轮廓、像素的百分比等的提取方法。可划分为基于特征特征提取的串行方式, 还有基于神经网络的并行方式。通过轮廓跟踪法原理的串行方式, 顺序扫描每个边缘的像素点, 对即将要删除的点进行标记, 扫描完成之后删除该点。并行算法图像的点被划分成几个子进程, 要检查的每个子进程中有可以删除的点, 等到可删除的点删除后, 重新安排图像点的排列顺序, 作为一个过程来检查的对象[5,6]。

4.2 平滑滤波

线性滤波器和非线性滤波器往往是被人们应用最多的两种滤波方式。

4.2.1 线性滤波器

线性滤波器的响应决定于滤波器的样版扫描过的相应位置的点的成绩之和与滤波器本身自定的系数决定的, n×n的模板, 在图像中点 (h, k) 处的响应输出可表示为R, 如下式 (11) 所示。

Wi是滤波器模板的系数, Zi是滤波器模板所扫描的子图像的相应像素的灰度值, 其中i=1, 2, 3, ..., k;k=1, 2, 3, ..., n*n。

高通滤波器、低通滤波器和带通滤波器是线性滤波器的不同特性的三个归类。

4.2.2 非线性滤波器

非线性滤波器也是基于像素的邻域进行处理, 与模板的扫描方法类似, 但是其输出结果一般来说直接取决于像素邻域的值, 包括中值滤波, 最大、最小值滤波器等。

本文采用的均值滤波, 中值滤波和高斯滤波均属于平滑滤波的范畴, 通过这些平滑滤波的方法使图像中的噪音消除实现图像的平滑。

4.3 直方图均衡

直方图均衡化是基于直方图修正的分布式的累积函数进行变换的方法, 是通过更改原来需要均衡的图像的灰度值, 将少数的像素灰度级减少, 多数的灰度级进行拓宽, 使图像直方图变化成为均匀分布的状态, 提高要识别图像的对比度, 有着更加清晰的效果。

5、仿真实验

在对图像进行预处理以及特征提取之后, 对网络进行训练, 选择训练样本, 如图2所示。

5.1 训练网络

如果在图像预处理之前设置的归一化后的参数和上一次训练时的参数不同, 则必须在此次归一化参数设置之后进行网络训练, 如果上次训练过后的和此次设置的归一化参数相同, 则可以不再对网络进行训练, 因为训练的参数已经在上一次的网络训练中被保存了下来, 因此可以在相同归一化参数的前提下, 对其做过预处理之后, 可直接进行数字识别。在新的归一化参数的设置之后, 对网络进行训练, 可对训练网络参数进行设置, 默认参数。首先设置隐层节点个数为10个, 最小均方误差为0.001, 训练步长为0.015。得到测试结果为, 迭代次数4058次, 平均误差为0.0010。

5.2 字符识别

训练过后, 对其图片进行识别, 识别结果如图3所示。

6、结语

随着人们对数据的自动输入需求越来越迫切, 光学识别技术 (OCR) 也应运而生的被运用在生活中, 这种技术的重点是通过专用的形式和对写作的限制, 以方便机器的自动识别, 不仅速度高而且识别也非常的准确。财政, 税收和金融是数字识别应用最为广泛的领域, 使用计算机自动识别并录入, 无无疑节省了很多时间, 金钱和劳动。例如:邮件分拣, 现在虽然电子邮件被广泛使用的, 但随着网上购物等多元化的邮递方式, 数字识别对邮件业务也也越来越重要。数字识别往往与光学条码识别相结合, 使得数字识别应用更加广泛。

参考文献

[1]易小波, 周海伟.VC平台下视频捕获的实现[J].工业控制计算机, 2006 (33) :27.

[2]赵宏宇.手写体数字识别的一种模糊神经网络方法[J].西南交通大学学报, 1997 (3) :32.

[3]Hasan soltanzadeh, Mohammad Rahmati.Recogniton of Per-sian Hand written Digits Using Image Profiles of MultipleOrientations[J].Pattern Recognition Leaers, 2004 (35) :68-70.

[4]J C.Burges.A tutorialon support vector mathines forpattern recognition[J].Data mining and Knowledge Discovery Press, 1998 (23) :62~65.

[5]杜敏, 辛大欣.基于混合特征提取的手写体数字识别方法的研究[J].西安交通大学学报, 1996 (56) :93~99.

系统的实现 第7篇

关键词:安卓图形显示系统,图形混合系统,窗口管理服务

1 Android图形显示

Android应用通常由一个或多个基本组件组成,Activity是负责应用与用户交互的组件,内部包括Window窗口。图1是Android应用和Surface系统交互的流程框图,通过一系列的操作步骤,对Activity和WMS、Surface Flinger之间的关系进行初步的展示。

(1)系统启动一个新的Activity。

(2)WMS为Activity创建一个Phone Window类型的窗口,并注册到WMS。

(3)Surface Flinger为Surface分配资源,通过共享内存的方式,与应用共同操作Surface数据缓冲区。

(4)应用在Surface上绘制UI窗口的全部视图。

(5)Surface Flinger把全部应用的Surface图形数据混合起来进行显示输出。

通过对一个Android应用Activity图形显示流程的分析,对掌握Surface架构的运行机制有很大的帮助。

2 Window Manager Service(WMS)

WMS是由System_Server进程启动的,负责应用程序窗口的创建、控制和管理等工作,并完成系统消息的收集和分发工作。如图2所示。应用请求创建窗口时,和应用直接交互的是Window Manager Impl对象,它会创建一个View Root类负责与WMS的交互。

IWindow Session和IWindow是标准的aidl接口,用于View Root和WMS之间的交互。其中,IWindow Session接口用于View Root与WMS内部类Session进行跨进程通信。IWindow接口用于WMS调用View Root内部的W类,完成派发按键消息等功能。

WMS会创建一个Surface Composer Client对象与窗口对应,它是与Surface Flinger服务进行交互的接口。

3 Surface Flinger

Surface Flinger也是由System_Server进程启动系统服务进程,它负责分配和管理Surface图形显示系统需要的资源,并完成Surface Compose图形混合的工作用于显示。

如图3所示,Surface Flinger服务创建Layer对象对应Activity的Surface,并按照Z轴顺序进行管理。Surface Flinger通过调用Android定义的显示设备HAL层Display Hardware,为Layer分配Graphic Buffer显示缓冲区。一般为一个Layer分配两个Graphic Buffer,方便进行Page Flipping显示操作(FrontBuf用于输出,Back Buf用于绘制)。

Surface Flinger服务为每个Surface Composer Client创建Client类对象。Client对象里面包括一个创建在共享缓冲区上的Shared Client对象。Activity和Surface Flinger通过这个对象实现对Graphics Buffer的访问同步。

Shared Client有31个Shared Buf Stack对用来管理Graphic Buffer,因此每个Activity最多可以支持31个Surface图层显示。

4 Activity Surface视图绘制

应用通过调用以下3步骤,完成UI窗口视图的绘制:

(1)Lock Canvas,获取并锁定Surface对应的Graphics Bu中的Back Buffer,与Canvas绑定,用来存储Surface图形内容。

(2)图形绘制。Canvas类封装了图形绘制函数,通过调用这些功能函数可以完成视图绘制的工作。若系统支持GPU硬件加速,则使用GPU完成视图绘制工作,否则ARM完成相关的工作。

(3)unlock Canvas And Post,解除Back Buffer锁定,完成Page Flip(Back Buffer和Front Buffer交换),发送信号给SurfaceFlinger,进行Surface Compose工作。

5 Surface Flinger Surface Compose

Surface Flinger系统服务进行Surface Compose的工作流程,如图5所示。

(1)等待事务处理或等待重绘事件。

(2)如果有事务请求,则进行事务处理。比如窗口90度旋转操作等。

(3)各个Layer从Graphic Buffer中的Front Buffer中获取新数据,并生成一张Open GL中的纹理信息。

(4)按照Zorder设置顺序,利用Open GL接口绘制每个Layer的纹理信息。

(5)遍历各个显示层的finish Page Flip函数,释放FrontBuffer。

(6)Surface Compose后的图像用来显示。

6 结语

在Android Surface系统中,Window Manager Service服务实现系统对应用activity窗口管理和消息派发等功能,SurfaceFlinger服务实现系统显示资源管理和应用图形统一绘制、输出功能。

参考文献

[1]邓凡平.深入理解Android:卷Ι.北京:机械工业出版社,2011.

[2]金泰延,宋亨周,朴知勋,等.Android框架解密北京:人民邮电出版社,2012.

系统的实现 第8篇

核磁医疗设备的制冷系统由冷头、压缩机、水冷机组三个部分组成,冷头是制冷部件,为超导磁体提供20K,77K两级低温,冷头和吸附器由于其使用寿命的原因,它的故障特点是渐变性的,可以通过分析每日液氦量及压力变化率来掌握运行情况。压缩机主要为冷头提供高压氦气,由冷头返回的低压氦气,经过压缩机压缩提升压力,与水冷机组提供的冷却水换热、滤油这几个过程,将高压氦气输送回冷头,建立氦气循环过程。通过冷头和压缩机的不停的工作,就可以源源不断地为磁共振提供冷量,以达到减少液氦蒸发的目的。如果液氦泄露的过多,核磁将无法运行甚至失超,造成重大事故。也就是说如何保护液氦,防止液氦的泄露,保证其制冷系统的正常运行是核磁设备能否正常工作的关键。由于压缩机本身的故障率极低,因此从整体上看制水冷系统故障的高发区为水冷机组,水冷机组主要由两台水冷机构成,这两台水冷机循环工作为压缩机提供换热用冷却水,通过压缩机与水冷机的热交换保证液氦能够在一定的温度范围内循环。

通过对水冷机的研究,我们发现其本身的运行监控系统很完善,但它有一个致命的缺点就是无法把报警信号及时主动的传递给维修人员。通过建立水冷机故障报警系统,可以解决在科室人员少、工作量大、特别是在节假日或无人值守的情况下,使器械科维修人员在水冷系统发生故障时,及时赶到现场进行故障维修,以保证MR的正常运行。

2解决方案

为了解决报警信号及时传递的问题,我们通过反复研究终于找到了一个突破口,那就是当水冷机工作异常时其本身报警指示灯的两端会产生一个1.8V左右的直流电压;而当水冷机工作正常时其报警指示灯的两端的电压为0V。抓住这点,我们就可以建立一个自动的报警系统(见图1)。

3系统的实现与运行

GPRS数据采集器的RS-232串口连接扩展智能设备,上位软件通过配套的虚拟串口可完全透明的与扩展设备进行通讯传输数据,从而实现智能设备数据的无线透明传输。

基于GPRS数据采集器的这一功能,利用直流电压隔离器采集水冷机报警指示灯两端的模拟电压信号转换成标准的4~20mA的电流信号。再将转换的电流信号输送给GPRS数据采集器,通过事先在数据采集器上设置好的电压的上限值和下限值,当接收的模拟信号超过设置电压的上限值和下限值时,就会有报警信号产生,并触发其内部通讯系统中相应的通讯通道中的事先设置好的点对点的报警短信负责人的电话号及报警短信的内容,完成短信发送的功能。当水冷机工作异常时,相关负责人的手机上将接收到相关的短信,在模拟量的报警短信上会自动包含当前真实的采集值。

利用GPRS数据采集器的虚拟串口可添加采集和透明传输的功能,通过虚拟串口可实现在服务器上软件和处理模块GPRS数据的连接,在服务器上运行通用组态软件,在添加好的虚拟串口下使用标准的MODBUS RTU驱动,将通道设置好就可以查看GPRS数据。

我们首先选KL-W7211型网由作为GPRS数据采集器,它是由模拟量采集、RS-232串口通讯、报警短信及GPRS数据传输于一体的综合性数据采集器。其技术参数如下。

输入输出通道数:4路模拟量、4路开关量输入、1路继电器输出;外型尺寸:121mm×70mm×26mm;供电电源:宽压供电(9~36VDC);工作环境:-30~70oC、5%~95%RH、室内安装;功耗:登陆网络后的功耗<1.25W;通讯方式:TCP/UDP;协议类型:MODBUS-RTU;继电器输出类型:常开、常闭干节点输出;天线:内置;输入模拟量类型:0~20mA或0~10V;开关量:干节点/5~24V电平量。

传感器采用采用特制隔离模块WBV344U01-0.5型直流电压传感器,对报警电压实时测量,具有高精度、高隔离、宽频响、低漂移、低功耗、温度范围宽、抗干扰能力强等特点。由于同一系列和型号的产品输入范围相差很大,我们选用0~5V直流电压传感器,它的基本参数如下。

输入范围:10mV~5V;输出规格4~20mV;输出特性:平均电流;供电电源:+24Vdc;负载能力:6V;响应时间:<150ms。

在GPRS数据采集器的相应通道上设置好电压的上限值为1.5V和下限值为-99.9V(仅作上限报警,关闭下限报警),以及相对应的通道的报警短信的电话号及相应的报警短信内容。

建立报警系统过程所遇到的问题,就是在运行后,相关的维护人员手机关机时无法收到短信,因此要求能同时给多位负责人发送报警短信,为此我们利用软件的群发功能,解决了这一问题。

这样可以通过短信或软件网络系统及时有效地处理维修水冷机所发生的故障。对所发生的故障实现自动监控的目的是可以随时观察水冷机的运转是否正常,还可以在软件网络系统中添加其他的容易发生故障的采样点,如可以把检验科的温度和湿度监控添加到软件网络系统。完全可以实现网络化地监控所有设备运转是否正常的自动监控报警系统。

参考文献

[1]梅晓榕.自动控制元件及线路[M].哈尔滨:哈尔滨工业大学出版社,1998.

[2]郑君里.信号与系统[M].北京:高等教育出版社,2000.

[3]李友善.自动控制原理[M].北京:国防工业出版社,2002.

系统的实现 第9篇

随着计算机技术的飞速发展、计算机在企业管理中应用的普及, 利用计算机来实现企业人事的管理势在必行。目前很多企业的人事管理还处于人工管理的阶段, 效率低下, 已经远远落后于当今技术的发展, 并且人工管理的弊端也愈来愈严重。计算机信息化管理有着储存信息量大、速度快等许多优点, 处理信息及时快捷。企业人事管理系统是现代企业管理工作不可缺少的一部分, 是适应现代企业制度的要求, 推动企业劳动人事走向科学化、规范化的必要条件。

二、开发工具简介

(一) Visual C++6.0简介

Visual C++6.0是采用面向对象程序设计思想进行编程的典型开发语言。它是用来在Windows环境下开发应用程序, 是一种功能强大、行之有效的可视化编程工具。Visual C++6.0以可视化技术为基础, 以C++语言为蓝本, 以众多的集成工具为骨架, 在计算机领域的诸多方面都发挥着重要的作用, 其以实用的开发环境和集成的工具集让用户高效率地开发应用程序。

(二) SQL Server 2000简介

SQL Server 2000是Microsoft公司推出的数据库管理系统, 是当前非常流行的数据库系统之一, 拥有较大的市场占有率和广泛的用户群体。SQL Server 2000是真正的客户机/服务器体系结构, 具有图形化的用户界面, 使系统管理和数据库管理更加直观、简单, 丰富的编程接口工具为用户进行程序设计提供了更大的选择余地。

三、系统功能设计

本系统是为了更好地实现人事信息管理, 主要根据查看员工的各种信息需求所设计, 可以很好地管理数据。主要功能有:数据入库、查询、修改和删除等。本系统的流程如图1所示:

四、查询功能的实现

企业人事管理系统中, 非常重要的功能就是查询, 不同类型的用户有不同的查询结果。

创建一个查询对话框, 对话框的ID属性设置为IDD_EMPMAN_DIALOG, 对应的类为CempManDlg。

对话框IDD_EMPMAN_DIALOG中包含的主要控件及其对应的成员变量如表1所示。

员工信息管理对话框的查询结果如图2所示:

员工信息管理查询结果

查询关键代码如下:

五、结语

本系统主要完成了查询功能模块的设计, 实现了部门上级下级的查询和员工按部门和员工状态的查询。

参考文献

[1]马建红.Visual C++程序设计与软件技术基础[M].北京:中国水利水电出版社, 2002.

[2]王正军.Visual C++6.0程序设计从入门到精通[M].北京:人民邮电出版社, 2006.

[3]启明工作室.Visual C+++SQL Sever数据库系统开发与实例[M].北京:人民邮电出版社, 2004.

系统的实现 第10篇

摘 要:网络计费流程改造实际是利用一个网络通信系统实时传送计费信息。既然数据是在网络中传送,这必然涉及网络的安全问题,如何加强网络通信的安全性,链路加密、端端加密是最常用且最有效的手段。

关键词:网络计费;加密;算法

1 网络计费需要加密安全

网络计费需要保证信息安全,如何加强密钥安全是一个重要问题,可以通过改进加密系统以及密钥的生成来提高RSA系统的安全性。例如可以通过实例将DES加密算法与RSA加密算法的结合,以此来提高通信系统数据传输的安全性。一个通信系统结构框图如图1所示。

对于局域网通信,可采用以下两种具体措施进行加密传输。这些措施的加、解密功能都可以采用下述算法实现。

1.1 链路加密

链路加密是传输数据仅在物理层前的数据链路层进行加密。接收方是传送路径上的各台节点机,信息在每台节点机内都要被解密和再加密,依次进行,直至到达目的地。

1.2 端——端加密

端——端加密是为数据从一端传送到另一端提供的加密方式。数据在发送端被加密,在最终目的地(接收端)解密,中间节点处不以明文的形式出现。采用端一端加密是在应用层完成,即传输前的高层中完成。除报头外的的报文均以密文的形式贯穿于全部传输过程。只是在发送端和最终端才有加、解密设备,而在中间任何节点报文均不解密,因此,不需要有密码设备。同链路加密相比,可减少密码设备的数量。另一方面,信息是由报头和报文组成的,报文为要传送的信息,报头为路由选择信息。由于网络传输中要涉及到路由选择,在链路加密时,报文和报头两者均须加密。而在端一端加密时,由于通道上的每一个中间节点虽不对报文解密,但为将报文传送到目的地,必须检查路由选择信息,因此,只能加密报文,而不能对报头加密。这样就容易被某些通信分析发觉,而从中获取某些敏感信息。

1.3 加密传输方式的比较

数据保密变换使数据通信更安全,但不能保证在传输过程中绝对不会泄密。因为在传输过程中,还有泄密的隐患。采用链路加密方式,从起点到终点,要经过许多中间节点,在每个节点地均要暴露明文(节点加密方法除外),如果链路上的某一节点安全防护比较薄弱,那么按照木桶原理(木桶水量是由最低一块木板决定),虽然采取了加密措施,但整个链路的安全只相当于最薄弱的节点处的安全状况。

采用端一端加密方式,只是发送方加密报文,接收方解密报文,中间节点不必加、解密,也就不需要密码装置。此外,加密可采用软件实现,使用起来很方便。在端一端加密方式下,每对用户之间都存在一条虚拟的保密信道,每对用户应共享密钥(传统密码保密体制,非公钥体制下),所需的密钥总数等于用户对的数目。对于几个用户,若两两通信,共需密钥n*(n-1)/2 种,每个用户需(n-1)种。这个数目将随网上通信用户的增加而增加。为安全起见,每隔一段时间还要更换密钥,有时甚至只能使用一次密钥,密钥的用量很大。

链路加密,每条物理链路上,不管用户多少,可使用一种密钥。在极限情况下,每个节点都与另外一个单独的节点相连,密钥的数目也只是n*(n -1)/ 2种。这里n是节点数而非用户数,一个节点一般有多个用户。从身份认证的角度看,链路加密只能认证节点,而不是用户。使用节点A密钥的报文仅保证它来自节点A。报文可能来自A的任何用户,也可能来自另一个路过节点A的用户。因此链路加密不能提供用户鉴别。端一端加密对用户是可见的,可以看到加密后的结果,起点、终点很明确,可以进行用户认证。

链路加密在链路两端都使用加密设备,保障了整个通信链路的安全,但需提供多个密钥,需频繁地加、解密,在节点中数据易受到攻击。端端加密仅在通信线路的两端加、解密,可有效防止对网络上链路和两端节点的攻击,但由于中间节点无法读取报头,无法为传输的数据选择路由,所以报头必须以明文形式传输,用户数据可加密传输,虽然用户数据部分安全,但易受到业务流量分析的攻击。总之,链路加密对用户来说比较容易,使用的密钥较少,而端一端加密比较灵活。对链路加密中各节点安全状况不放心的用户也可使用端一端加密方式。

2 网络计费系统流程改造

2.1 网络计费流程简介

在网络企业中,最终提供到用户手中的账单的生成分为两部分,即原始通话记录和话单分拣处理。原始通话记录在交换机中直接生成,不同的交换机生成的原始通话记录制式不同,原始计费文件格式有相当的差别,有的交换机生成的原始通话记录文件可直接通过后台进行阅读处理,有的则需要进行转换处理,现在一般采取后一种方式。以德国西门子公司生产的EWSD数字程控交换机为例,交换机所带的每一用户的每一次成功通话都要经过摘机一通话一挂机三个步骤,从摘机开始交换机即对其监控,通话结束后立即形成一个通话记录,根据通话的性质存在于不同的文件中,如长话通话通常存在的文件为工A工CAMA。通常来讲,这个计费文件的空间应相当大,因为一个交换机通常带上万甚至几十万个用户,因此而产生的通话记录非常多,形成的计费文件也就非常大。通常,每隔一定的时间就要对计费文件进行处理一次,通过光盘(磁盘)将计费文件从交换机中拷贝出来,送交帐务处理中心进行分拣,一个月中取出过多次计费文件就要对其进行复合连接,形成一个完整文件,以保证用户账单的连续性、准确性。经过帐务处理,形成每一用户的通话账单。

2.2 网络计费流程的改造

最初的计费流程存在较多的不安全性,方式比较原始,不能够适应日益高速发展的通信业的要求,大量人为因素存在,计费的及时性、实时性很难保证。在这个环路中,哪一个环节出现问题,带来的问题可能就是巨大的。为解决这一问题,必须采用实时计费的方式,图2所描述的即是方法之一。

实时计费主要是利用了计算机网络对计费数据及时传送。从EWSD交换机的LAU板上连接125线缆,以双备份的形式连接到采集器上,采集器的主要作用是采集计费数据,它实际上是一个采集网关,由交换机定时向其传送计费数据,它在采集计费数据的过程中并不改变文件的性质,更不改变其内容,它实际上起到了一个协议转换的作用,文件在交换机与采集器之间是通过125协议传输,经过采集器的功能转换,在以后的传输过程中是利用TCP.IP协议进行传输,它同时还对文件有校验的功能。采集器与计算机局域网相连,它通过HUB传到局域网中,由特定的服务器对其内容进行采集。

采用了图2所示的方式可以实现实时计费功能扩展,但由于计算机通信的相对开放性,这期间必然存在安全隐患。且计算机通信中不可避免地存在数据丢包现象,这必然要影响到计费的准确性。因此必须对两种计费传送方式做一个比较,在认为相对安全且条件成熟时方可正式使用。

3 网络计费流程改造加、解密算法的实现

3.1 通信网中的加密方式使用

由于链路加密、端端加密各有自己的优缺点,将两种加密方式结合起来使用可很好地提高网络的安全性。主机之间用端端加密方式加密数据报中用户的数据部分,用链路加密方式对整个数据报再加密。当数据在网络中传递时,每一节点都首先使用链路加密密钥去解密数据报以读取报头,确定了路由以后,继续用下一链路加密密钥去加密,并继续在网络中传送,直至端节点。用这种方式在网络中传输数据,除了内部节点有数据报头明文出现外,整个网络中传送的都是加密的数据,大大提高了网络的安全性。具体实现方式见图3,其中图中两个黑色小图标表示端端加密,其它链路上的小图标表示在各段链路上实现链路加密。

3.2 通信网中的加、解密算法的实现

本通信系统是基于工nternet的客户/服务器方式建立的。用三重DES算法加密要传送的明文数据,接受方用同样的密钥进行解密,从而获得明文数据。之所以用三重DES算法是为了增强其加密强度,它的密钥长度为128-129bit 。 设三重DES的密钥分别为K2、K2,K2、K2等信息用RSA算法对其加密和数字签名及身份认证等运算,身份认证后,将传送的用户数据信息进行加密、解密,完成正常的数据通信。

由于对称密码算法加、解密速度快,密钥不便于传递,加密强度不高,本系统中传送的用户数据信息是实时传送,恰恰需要高效、快速的加、解密处理。通信系统中常常需要同时传送多路信息,需要有多个私有密钥,利用公钥密码对其进行密钥管理、传递密钥及数字签名等可提高安全性。将二者结合可使用户数据信息安全高效地加密传递。

设传送的明文数据信息为M,用三重DES算法进行加、解密。发送方A端(交换机)先用第一个密钥加密,然后用第二个密钥解密,最后用第一个密钥加密。密文数据用C表示,两个密钥分别为K2,K2,则:

C=Ek,(D,2(E k,(M )))

用RSA算法对系统进行密钥加密及数字签名。假设发送方和接受方分别为A,B,A 的三重DES密钥分别为K Kz记为MoA 的私人密钥由自己保管,公开密钥由B以一定条件从CA处获得,B的私人密钥和公开密钥以同样方式保管。

加、解密过程和数字签名过程如下:

(1)A 用私人密钥对密钥签名,记为S,(M )。

(2)A用他从B处获得的公开密钥对签名的信息加密,并且送给Bo,记为ER(Sa(M))。

(3)B用他的私人密钥解密,DA(Ed(S,(M)))= S,(M )。

(4) B用A的公开密钥验证,并恢复出密钥V}(S,(M )) =M,

至此,三重DES密钥就可由A安全送至B处,通过解密得到密钥,并且对A、B双方进行了数字签名和身份认证。

参考文献

[1]卢开澄.计算机密码学一计算机网络中的数据保密与安全[M].清华大学出版社,2003.

信息检索系统的实现研究 第11篇

信息检索(Information Retrieval),是指将信息按一定的方式组织和存储起来,并根据信息用户的需要找出有关的信息过程,所以它的全称又叫“信息的存储与检索(Information Storage and Retrieval),这是广义的信息检索。狭义的信息检索则仅指该过程的后半部分,即从信息集合中找出所需要的信息的过程,相当于人们通常所说的信息查寻(Information Search)。计算机信息检索,是指以计算机技术为手段,通过现代检索方式进行信息检索的方法。信息检索的数学模型,简称信息检索模型,是对信息检索任务及其实现方法的一种抽象描述。

1 信息检索模型

现有的经典信息检索模型主要分为三类:

一类是基于集合理论和布尔代数的一种简单的检索模型,其中最典型的是布尔模型。由于集合的概念非常直观,所以此模型为普通用户提供了一种易于掌握的框架。在信息检索的早期大多采用此模型,然而它的缺点也是明显的。首先,它的检索策略基于二值判定标准,文档要么相关,要么不相关,没有级别的变化,这就难以提高检索性能。其次,尽管布尔表达式有确切的语义,但通常很难准确地将用户的信息需求转换成布尔表达式。

第二类是基于代数理论的模型,通常称作向量模型。该模型将文档和检索请求表示为所有索引项张成的向量空间中的点,通过向量的空间关系来定义和计算相关度函数。

向量模型认为用二值权值存在着太多的局限,并提出了一种框架以便能够进行部分匹配,即通过给查询和文献中的标引词分配非二值权值来实现这个目标。这些语词的权值用于计算在系统中的文献和用户查询之间的相似度。向量模型通过对检出文献按相似度降序排列的方式来实现文献与查询的部分匹配。这样做最明显的效果就是结果集(answer set)内的文献排列顺序比通过布尔模型得到的结果集要合理得多,从某种意义上讲,能更好地匹配用户信息需求。

第三类是基于概率统计理论的模型,即信息检索的概率模型。

概率模型试图在概率的框架下解决信息检索的问题,其基本思想是:给定一个用户查询,存在一个文档集合,该集合只包含完全相关的文献而不包括其它不相关的文献,我们把这个文献集合称之为理想结果集。对于理想结果集的表述,在检索其中的文献时不存在任何的问题。因此,我们可以把构造查询的过程看成是详细描述理想结果集属性的过程,这类似于把信息检索看成是聚类问题。然而,问题在于我们并不能确切地知道这些理想结果集即属性是什么,我们所知道的只是能够用标引词的语义来描述这些属性。因为这些属性在查询时是未知的,那么在初始的时候就要努力猜测这些属性是什么。这个初始的猜测允许我们形成一个初步的对理想结果集的概率描述,用于检索出初始的文献集。在改进理想结果集的概率描述这一目标的指引下,开始与用户的交互行为。

2 概率模型的特点

(1)信息检索过程中存在着大量的不确定性,如用户检索目的的不确定,检索目标的不确定,以及检索结果的不确定等。因此用概率理论来描述这些不确定性,就具有自然、直观的特点。概率模型是从理论上研究信息检索的基本模型。

(2)信息检索过程其实是检索系统对用户检索需求的逐步了解的过程。大量实践证明,相关反馈(R e l e v a n c e Feedback)是提高检索结果的有力技术。而基于Bayes概率的信度修正理论,不但为该过程提供了理论支持,而且已经为此建立了大量实用的方法。

(3)信息检索与自然语言处理之间有着天然的联系。近年来以大规模真实语料库的处理为基本方法的语料库语言学(Corpus Linguistics)取得了较大的进展,由此建立起来的统计语言模型是一个主要成果。基于两种同样的概率本质,如何将这些研究成果用于信息检索,建立基于语言模型的检索模型就成了一个必然的想法,并且也有望获得较好的检索结果。

3 具体实现

为了构建一个信息检索的概率模型平台,做了一个基于开源信息检索库Xapian的具体实现,Xapian设计为一个高度可适应的工具集,可以让开发人员方便地为自己的应用程序增加高级索引和搜索功能,提供的语言绑定支持Perl、Python、PHP、Java等等,在这里采用的是PHP调用实现。实现分为两步:

第一步是做索引,对某一篇文档自动分词,记录并存到我们指定的xapian数据库。关键代码如下:

第二步根据检索词,到对应的xapian数据库检索找到相关内容的。关键代码如下:

测试结果:可以对文本进行中文自动分词、英文分单词,自动索引到特定数据库。搜索可以支持布尔查询,相关性反馈查询,实现了信息概率检索模型的基本功能。

参考文献

[1]Ricardo Baeza-Yates,Berthier Ribeiro-Neto.Modern Information Retrieval[M].ACM Press,1999.

[2]邢永康,马少平.信息检索的概率模型[C].计算机科学,2003,8.

[3]Xapian-the open source search engineDocumentation[M].http://www.xapian.org/docs/.

上一篇:施肥模式研究下一篇:办学形式