一种基于文件比较的电子公文痕迹保留方法技术

技术编号:13271260 阅读:91 留言:0更新日期:2016-05-18 20:44
本发明专利技术涉及电子政务技术领域,更具体而言,涉及一种基于文件比较的电子公文痕迹保留方法;提供一种基于最长公共子串匹配的文本比较的电子公文痕迹保留方法。该方法可以有效解决过度标记的问题,并且算法简单,各种编程语言都比较容易实现,可适用于各种操作系统和软件环境;一种基于文件比较的电子公文痕迹保留方法,首先比较原文本和修改后的文本,得出修改后的文本是在原文本基础上插入了哪些字符串,删除了哪些字符串,最后将插入和删除的字符串分别做出标记,进而实现痕迹保留;本发明专利技术主要应用在修改电子文本方面。

【技术实现步骤摘要】

本专利技术涉及电子政务
,更具体而言,涉及。
技术介绍
随着我国信息化进程的不断推进,电子政务已成为政务部门提升履行职责能力和水平的重要途径。电子公文流转作为电子政务建设的核心和基础,已成为政务部门信息化的重要内容。在电子公文流转过程中,根据业务需求,会有不同环节的人员对其内容进行修改。基于信息完整性、安全性方面的要求,每个人的修改痕迹必须保留。目前,最常用的痕迹保留方法是在客户端使用MicrosoftWord进行文档编辑,并将公文保存为Word文档,利用Word自带的文档修订功能实现公文流转过程中各个环节的痕迹保留;第二种方法是在客户端安装WebOf f ice控件,公文同样以Word文档形式保存,利用WebOf f ice提供的在线修订功能,实现痕迹保留;第三种方法是基于ZEN的痕迹保留方法,其原理是利用JavaScript脚本分析客户端所有对文档的修改操作,并将这些操作归纳为增加和删除两种类型,然后对增加和删除的内容分别做出标记,从而达到痕迹保留的目的。这些方法有一个共同特点:保留的痕迹是用户的操作过程,即用户删除一段文本时,做一个删除标记,用户增加一段文本时,做一个插入标记。经常有这种情况:用户删除一个字,然后发现删除错误,又重新输入这个字。虽然用户在实质上并没有更改这些文字,但其痕迹保留的结果将显示删除和插入两个标记,这就造成了过度标记。当用户对文本做频繁修改时,其痕迹保留结果将显得十分混乱。为解决此问题,提出了一种基于文本比较的痕迹保留方法。常用的文本比较方法有编辑距离算法(Levenshtein Distance,LD)、最长公共子序列(Longest CommonSubsequences,LCS)算法、Nakatsu算法等。其中LD算法的需要构建一个M+2行N+2列的矩阵(其中m和η分别为需比较的两个文本的长度),并且从矩阵的左上依次迭代计算到右下,其空间复杂度为0(丽),其时间复杂度也为0(丽);LCS算法与LD算法思想上一致,其空间复杂度也为0(mn),其时间复杂度不小0(Mlog(N))。这两种方法在两个文本均较短时比较有用,但当文本较长时,其占用空间太大,难以适用。而Nakatsu相较前两种算法在时间和空间上有了很大的改善,但只能求解部分最长的公共子串,不能求解所有最佳匹配。这些方法常用于字符串相似度分析,不适于电子公文痕迹保留中的文本比较。因此,有必要对其进行改进。
技术实现思路
为了克服现有技术中所存在的不足,提供一种基于最长公共子串匹配的文本比较的电子公文痕迹保留方法。该方法可以有效解决过度标记的问题,并且算法简单,各种编程语言都比较容易实现,可适用于各种操作系统和软件环境。为了解决上述技术问题,本专利技术所采用的技术方案为: ,首先比较原文本和修改后的文本,得出修改后的文本是在原文本基础上插入了哪些字符串,删除了哪些字符串,最后将插入和删除的字符串分别做出标记,进而实现痕迹保留。所述比较原文本和修改后的文本具体为,首先将原文本记为Str_l,修改后的文本记为Str_2,然后按照下述步骤进行: 第一步,将Str_l作为文本I,Str_2作为文本2; 第二步,用S_1存储文本1,S_2存储文本2,采用最长公共子串匹配算法找出S_0PS_2中最长的公共子串P,并记录P分别在3_1和5_2中所处的开始位置和长度,此时,?将5_1分割为L_S_1和R_S_1两个子串,将S_2分割为L_S_2和R_S_2两个子串; 第三步,将L_S_1和L_S_2分别作为新的文本I和文本2,重复第二步的过程,继续查找其最长公共子串,并将其再次分割为两部分,直到没有剩余部分或剩余部分没有公共子串,同理,R_S_1和R_S_2也按照上述步骤进行; 按照第二步和第三步的原理循环进行,最终将产生^1和3_2的一系列公共子串,将这些子串按其在S_1中的位置顺序进行从小到大排列,表示为Pl,P2...Pk,此时,其在S_2中的位置也是按从小到大的顺序排列;S_1中,Pi(l < i <k)将字符串分割为k+1段,记为D1,D2...Dk+Ι,同理,S_2中,Pi(l < i Sk)也将字符串分割为k+1段,记为A1,A2...Ak+1,其中,Di(l <i<k+l)和Ai(l < i<k+l)可以是空字符串; 通过D1、Ai和Pi,就可以表示出从3_1到S_2的修改痕迹,其中:Di是删除的部分,Ai是增加的部分,Pi是保留的部分。所述最长公共子串匹配算法,是一种基于逐字交错的最长公共子串匹配算法,具体为,有两个字符串3_1和5_2,其中5_1的长度为111,5_2的长度为11,11^11,若5_1的长度比5_2的长度大,将两个字符串进行交换;假设?为3_1与5_2的最长公共子串,那么求取其P的步骤如下: 第一步,WS_1的起始位置和S_2的起始位置开始,一个字符一个字符逐一比较,对应位置的字符相同则记录下来,连续相同的字符就构成了公共子串,逐一比较完成后,可找出这种对应关系下的所有子串,记录其最长的一个Pmax_l,并将Pmax_l赋给P; 第二步,将S_1向右移一个字符位置,则3_1与3_2的对应关系变成3_1的第I个字符对应S_2的第2个字符,然后按照第一步所述方法逐一比较,得到这种对应关系下的最长公共子串Pmax_2;然后S_1继续右移,并计算Pmax_i,其中i为Sj右移的次数减1,直到^1与5_2没有对应字符或对应字符的总数小于等于P的长度。在此过程中,每得出一个Pmax_i,都需要比较其长度是否大于P的长度,如果大于则将Pmax_i赋给P,以保证P中保存7S_0PS_2的最长公共子串。与现有技术相比本专利技术所具有的有益效果为: 本专利技术是比较原文本和修改后的文本,得出修改后的文本是在修改前的文本基础上插入了哪些字符串,删除了哪些字符串,最后将插入和删除的部分分别做出标记,进而实现痕迹保留,有效的解决了过度标记的问题,所得结果能更清晰地反映用户的修改内容,且算法简单,各种编程语言都比较容易实现,适用于各种操作系统和软件环境。【附图说明】下面通过附图对本专利技术的【具体实施方式】作进一步详细的说明。图la、图1b和图1c为本专利技术的工作过程图; 图2为本专利技术的工作流程图; 图3a和图3b为本专利技术最长公共子串匹配原理图。【具体实施方式】下面实施例结合附图对本专利技术作进一步的描述。为表述方便以及与LCS算法的区别,本专利技术的方法命名为LCSS(Longest CommonSubstring)算法。假设将修改前的文本(源文本)记为Str_l,修改后的文本(目标文本)记为Str_2。如图1a-图1c所示,本方法的工作流程如下: 第一步,将Str_l作为文本I,Str_2作为文本2。第二步,用S_1存储文本I,S_2存储文本2(图1a中以细实线表示),利用最长公共子串匹配算法找出^1和5_2中最长的公共子串P(图1a中以粗实线表示),并记录P分别在S_1和5_2中所处的开始位置和长度。此时,P会将S_1分割为L_S_1和R_S_1两个子串,将S_2分割为L_S_2和R_S_2两个子串。第三步,如图lbJ#L_Sj和L_S_2分别作为文本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/CN105589838.html" title="一种基于文件比较的电子公文痕迹保留方法原文来自X技术">基于文件比较的电子公文痕迹保留方法</a>

【技术保护点】
一种基于文件比较的电子公文痕迹保留方法,其特征在于:首先比较原文本和修改后的文本,得出修改后的文本是在原文本基础上插入了哪些字符串,删除了哪些字符串,最后将插入和删除的字符串分别做出标记,进而实现痕迹保留。

【技术特征摘要】

【专利技术属性】
技术研发人员:张游杰吴伟张清萍马俊明
申请(专利权)人:中国电子科技集团公司第三十三研究所
类型:发明
国别省市:山西;14

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1