CN103530430A - 一种含格式的html富文本数据的跨标签处理方法及系统 - Google Patents

一种含格式的html富文本数据的跨标签处理方法及系统 Download PDF

Info

Publication number
CN103530430A
CN103530430A CN201310545888.2A CN201310545888A CN103530430A CN 103530430 A CN103530430 A CN 103530430A CN 201310545888 A CN201310545888 A CN 201310545888A CN 103530430 A CN103530430 A CN 103530430A
Authority
CN
China
Prior art keywords
character string
pure
distance
node
input quantity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310545888.2A
Other languages
English (en)
Other versions
CN103530430B (zh
Inventor
邢世康
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Focus Technology Co Ltd
Original Assignee
Focus Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Focus Technology Co Ltd filed Critical Focus Technology Co Ltd
Priority to CN201310545888.2A priority Critical patent/CN103530430B/zh
Publication of CN103530430A publication Critical patent/CN103530430A/zh
Application granted granted Critical
Publication of CN103530430B publication Critical patent/CN103530430B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • G06F16/88Mark-up to mark-up conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种含格式的html富文本数据的跨标签处理方法及系统,根据接收的含格式的html富文本数据,把它转换成不含格式的纯文本,然后通过业务处理,消除文本中的攻击代码、不规范的书写、以及敏感词等不合法、违禁的不安全因素,然后把处理后的纯文本按照相似度匹配最佳效果的方式重新恢复到原有的格式,转换成正确并安全的含格式的html富文本数据,在网站上展示,提高了网站的安全性和内容的质量。

Description

一种含格式的html富文本数据的跨标签处理方法及系统
技术领域
本发明应用在web互联网领域,具体涉及一种含格式的html富文本数据的跨标签处理方法及系统。
背景技术
互联网中需要处理大量用户提交的数据,大多数情况下,用户提交的数据都是由纯文字组成,但很多情况下,用户提交的信息是含有格式标签的富文本数据,例如博客中具有丰富多样展现形式的信息,用户使用的自主建站服务以及电子商务卖家都具备多样化展示的功能。
因为在很多领域用户能编辑定制化的html富文本数据,这些富文本数据都含有格式标签。但是用户提交的html富文本数据中包含有很多不可靠因素,它们会产生一些负面因素,影响网站内容,以及网站运行的质量和安全,总结起来,这些负面因素主要包括以下几类:
(1)不安全的因素,例如攻击代码等。
(2)提交的内容不规范,影响网站内容的质量。
(3)提交的内容含有不健康、违禁的内容。
例如,提交的html富文本数据包含有“<strong>pass</strong>word”,这段含有格式的文本中,其中“pass”显示为粗体,“word”为正常字体,在页面显示效果类似“password”,其中“<strong></strong>”为格式标签。假设其中的“pass”和“word”都是可被网站允许的正常单词,但是组合起来的“password”是敏感词,是需要被禁止的。在这种情况下,由于“password”在提交的HTML富文本数据是表现为“<strong>pass</strong>word”,“password”被格式标签“</strong>”分离成“pass”和“word”,而系统认为“pass”和“word”是合法的单词,都是允许通过。在类似这种情况下,如果含有格式的富文本数据不进行跨标签处理,将会把不健康、违禁的、以及不合法的内容显示出来。
从处理方法来看,google的网页翻译工具涉及到类似情况的处理,但在html网页翻译的处理上,google目前还只是实现对各个标签内部文本数据的处理,并没有涉及到跨标签的富文本数据的处理。
类似这种跨标签的处理需求有很多,跨标签的处理存在两种情况,一种是只做分析,这种情况下对html富文本数据进行解析,提取其中实际有效的文字,然后做分析。另一种是不仅做分析,还要做处理,然后再返回处理过后信息内容,例如对于上述中“password”识别后,将“password”单词转换为“Pasword”,并在转换后,并恢复既定的富文本格式,并且在恢复处理中,使最终结果为最佳效果:“<strong>Pas</strong>word”,而不是“<strong>Pasw</strong>ord”或其他结果。
目前有一些方法处理这种跨标签问题,其中占位还原法用的比较普遍,这种方法通常对html富文本数据进行逐字分析,找到其中的标签,并用特定标志进行标识,对整个富文本数据作完标识后,再根据业务对标识处进行处理。这种方法一般只能用来处理一种业务,通用性不强,而互联网处理方面情况众多,业务复杂,需要处理方法具有一定的通用性。
为了防止用户提交的html富文本数据不会破坏整个网站的安全性,以及网站整体协调性,需要作大量的分析处理,有时候还需要对拼写不规范的文本做自动化规范处理,这个过程不仅需要对html富文本数据做细致的分析,而且要进行跨标签的文本处理工作,这些工作对网站整体的质量来说都是非常必要的。
发明内容
针对以上的问题,本发明提出一种含格式的html富文本数据的跨标签处理方法及系统,根据接收的含格式的html富文本数据,把它转换成不含格式的纯文本,然后通过业务处理,消除文本中的攻击代码、不规范的书写、以及敏感词等不合法、违禁的不安全因素,然后把处理后的纯文本按照相似度匹配最佳效果的方式重新恢复到原有的格式,转换成安全的含格式的html富文本数据,在网站上展示,提高了网站的安全性和内容的质量。
本发明技术方案如下
一种含格式的html富文本数据的跨标签处理方法,包括:
首先,采用parse机制,将html富文本数据作为parse分析器的输入,转换为类似DOM的树结构对象,html富文本数据中的纯文本数据将填写到树结构对象节点中,形成了多个节点纯字符串片段。
其中,DOM是以面向对象方式描述的文档模型,定义了表示和修改文档所需的对象、对象的行为和属性,以及这些对象之间的关系,可以把DOM认为是页面上数据和结构的一个树形表示,DOM模型是在客户端的浏览器上使用。
对于parse机制,一般来说,将一组字符串作为输入,进行解析转换成特定对象结构的机制,特定对象结构指计算机程序领域的一组数据结构对象,在本发明中指的是类似DOM的树结构对象。
上述的树结构对象采用与DOM的相似的树形结构,与DOM不同的是,它可以在服务器上使用。
在树结构对象中,根据各个节点中包含的纯字符串片段,按顺序拼接这些文本数据,与parse分析器的输入(即html富文本)对应,形成不包含格式标签的纯文本字符串数据。
对该纯文本字符串数据进行校验、具体业务处理,包括敏感词替换、单词书写纠错、专有名词识别格式化、大小写格式化等等一系列字符串处理。最后,生成修正后的纯文本字符串数据。
将修正后的纯文本字符串数据与树结构对象中各个节点的纯字符串片段进行相似度匹配计算,逐个计算出纯文本字符串数据中单词与节点中纯字符片段内容之间的距离。根据局部最优的原则,选出距离局部最小的纯文本字符串,将其替换填入相应的节点纯字符串片段内。其中,相似度匹配算法默认采取了一种字符最短路径算法的改进算法,在最短路径的基础上,通过距离计算和最佳整体距离匹配来计算最佳匹配。
将所有的节点纯字符串片段与修正后的字符串数据匹配完成后,形成了新的树结构对象,再对新的树结构对象进行转换处理,通过parse逆向形成完整的html富文本数据。
这时形成的html富文本数据是含有格式标签的,能够在客户端浏览器上显示各种丰富的效果。
进一步,在以上各个处理阶段中,各个阶段分工明确,各个阶段之间独立性强,可以对各个阶段进行调整、取舍,进一步实现对相关的含格式富文本数据纠错和安全性过滤等功能。
一种含格式的html富文本数据的跨标签处理系统,包括:
本系统由Parse分析器、节点分析器、纯文本处理器、相似度匹配处理器、文本转换器组成。Parse分析器、节点分析器、纯文本处理器、相似度匹配处理器、文本转换器顺次连接。
Parse分析器,用于对接收到的html富文本数据进行分析,并转换成类似DOM的树结构对象,html富文本数据中的纯文本数据将填写到树结构对象节点中,形成了多个节点纯字符串片段,并且树结构对象可以正在服务器上使用。
节点分析器,用于根据树结构对象中的各个节点中包含的纯字符串片段,按顺序拼接这些纯字符串,形成与parse分析器的输入(即html富文本)对应的不包含格式标签的纯文本字符串数据。
纯文本处理器,用于处理节点分析器形成的纯文本字符串数据,对他们进行校验以及具体业务处理,包括敏感词替换、单词书写纠错、专有名词识别格式化、大小写格式化等一系列字符串处理操作。
相似度匹配处理器,用于接收纯文本处理器处理后形成的修正后的纯文本字符串数据,将修正后的字符串数据与树结构对象中各个节点的纯字符片段进行相似度匹配,根据局部最优原则,选出距离局部最小的纯文本字符串,替换填入相应的节点纯字符片段内,并输出新的树结构对象。
文本转换器,用于对新的树结构对象进行转换处理,通过parse逆向形成完整的html富文本数据。
本发明中包含的一种相似度匹配的方法,包括:
基于Levenshtein_distance算法,计算两个字符的距离:
lev a , b ( i , j ) = max ( i , j ) if min ( i , j ) = 0 , min lev a , b ( i - 1 , j ) + 1 lev a , b ( i , j - 1 ) + 1 lev a , b ( i - 1 , j - 1 ) + [ a i &NotEqual; b j ] otherwise .
在该算法上增加了缓存处理以提高距离计算速度。
基于以上字符距离计算,首先选择树结构对象的节点中的文本数据,与修正后的纯文本字符串进行距离计算,根据计算的结果,选择执行左右探寻,匹配最佳的结果。具体方法为:
当处于修正后纯文本字符串的开始位置时,首先从树结构对象中第一个节点,取得包含其中的纯字符串片段,作为第一输入量,并计算此字符串片段的长度,然后在修正后的纯文本字符串中,从开始位置起,取得相同长度的字符串,作为第二输入量。通过Levenshtein_distance算法,计算这2个输入量的距离。
如果计算的距离结果为0,则以第二输入量最后1个字符在修正后纯文本字符串中的位置标记为结束位,并把第二输入量替换填入对应的节点纯字符片段内,完成1次匹配。然后在树结构对象中,按序从下一节点中取得其中的纯文本字符串片段,作为新的第一输入量,并计算此文本片段的长度,在修正后的纯文本字符串中,把标记的结束位开始作为新的起始位置,向后取得相同长度的字符串,作为第二输入量,开始新一轮的距离计算。
如果计算的距离结果不为0,在修正后纯文本字符串中的当前位置上,向右增加一个字符,补入第二输入量,作为新的第二输入量,再次计算这2个计算输入量的距离,进行向右探寻。如果新的距离结果小于等于上一次的距离结果,则第二输入量在修正后纯文本字符串的当前位置中,再次向右增加一个字符,补入第二输入量,作为新的第二输入量,计算这2个计算输入量的距离;如果距离结果大于上一次的计算结果,则停止向右探寻,开始向左探寻。在最初第二输入量的基础上,减少其最右的一个字符,作为新的第二输入量,计算2个计算输入量的距离,如果计算的结果小于等于最初的距离结果,则第二输入量继续减少其最右的一个字符,作为新的第二输入量,再次计算这2个计算输入量的距离;如果计算的结果大于原来的计算结果,则停止向左探寻,本次计算结束。
从上述计算的一组距离结果中,按照局部最优的原则,选择结果最小的距离值,作为待选对象。如果待选对象只有1个,则把这个待选对象作为最优结果,其对应的第二输入量替换填入对应的节点纯字符串片段内,则以第二输入量最后字符在纯文本字符串中的位置为结束位。
如果待选对象有多个,则需要与相邻的下一组第一输入量、第二输入量的距离结果结合来综合考虑。
对于待选对象有多个的情况,在修正后纯文本字符串中,他们的位置肯定是连续排在一起的。标出所有待选对象最后一个字符在修正后纯文本字符串中的位置作为待选位置。首先把最右的待选位置作为新的匹配计算的起始位置,然后在树结构对象中,按序从下一节点中取得其中的纯字符串片段,作为第一输入量,并计算此文本片段的长度,然后在修正后的纯文本字符串中,从标记的起始位置起,取得相同长度的字符串,作为第二输入量。开始新一轮的距离计算,并进行左右探寻,得出一组距离结果。
然后,从连续多个待选位置中,向左移一位,作为新的起始位置,开始新一轮的距离计算,得出一组距离结果。直到把所有待选对象对应的待选位置都完成了距离的计算,最后得到多组距离结果。
综合多组距离结果,计算出其中最小距离值,作为待选对象,如果待选对象只有1个,则作为局部最优结果,根据对应的第二输入量,确定其在纯文本字符串中的最终的起始和结束位置,并且把这个最终起始位置作为与树结构对象中上一个节点匹配的第二输入量的结束位置,确定了上一个第二输入量的值。同时把这个最终结束位置作为下一次匹配计算的起始位置。
把上一个第二输入量和这次计算得出的最优第二输入量替换填入对应的节点纯字符片段内。
把修正后纯文本字符串的这个结束位置作为下一次匹配计算的起始位置,开始新一轮的距离计算。
这样每次进行下一轮匹配时,将之前匹配的多个待选对象作为一个重要考量因子,根据上轮得到的多个待选对象对此轮的匹配结果进行优化调整,得到整体的最优结果,并记录最新产生的最优匹配位置,依次直到所有文本找到最合适的匹配位置。
如此循环,直到最后把纯文本字符串中所有的内容都替换填入树结构对象的对应的节点纯字符片段内。
本发明的这种处理方式与常规的带格式标签处理方式相比,例如占位替换方式,有以下几个优势:
1、本发明的方法统一性强,具备很大范围的适用性。针对复杂的跨标签文本的各种异常情况的处理,都可以采用统一的方式进行,并尽可能保留原有的富文本格式,通过这种方法,将带格式文本完全转换成纯文本,利用相似度匹配算法,最大程度使处理结果保留原有标签,以及合适的分词顺序。本发明的相似度匹配算法保证了在绝大数的带格式文本处理需求下,相似度匹配这个步骤不需要做任何改动而自动完成的,而转换为树结构对象和生成纯文本也具备通用性,最终针对不同业务处理需求,只需要把它转换成纯文本处理,编写对应的纯文本处理方法即可,简化了带格式文本的处理复杂度。而对纯文本的处理已经很成熟,这样,针对带格式文本处理通过使用本发明的方法,成本降低。
2、本发明是可以通过“两地”的部署来处理。将一段html富文本数据发送给另外一台远程服务器,在远程服务器上分析处理后,再将处理后的纯文本再返回给原来发送html富文本数据的客户端上,进行后续的格式回复处理,这样分离了数据与表现的职能,有利于提高网站的维护性,并易于进行分布式文本处理。
3、各个阶段分工明确,对带格式的html字符串处理有清晰的处理步骤,各个环节职责明确,这在数据的安全性和可靠性上有很大的保障,而且由于各阶段独立性强,可以快速对各步骤的安排进行调整,从而方便进一步实现对相关的含格式富文本数据纠错和安全性过滤等功能。
4、本发明提出的方法应用扩展性强。本发明不仅仅使用于html的富文本数据,适用于任意标签文本的处理。
5、本发明采用相似度匹配的方式,支持当前业务中语义逻辑的干涉,能够辅助筛选出最佳匹配,保证了纯文本字符处理后与原带格式文本的最佳匹配关系。
附图说明
图1本发明的系统结构图。
图2本发明的树结构对象结构示意图。
图3本发明方法的处理流程图。
图4本发明实施例的处理前的树结构对象示意图。
图5本发明实施例的处理后的树结构对象示意图。
图6本发明的一种相似度匹配的方法的处理流程图。
具体实施方式
本发明提出一种含格式的html富文本数据的跨标签处理方法及系统,消除文本中的攻击代码、不规范的书写、以及的敏感词等不合法、违禁的不安全因素,在用户内容多样化展示的同时,提高了网站的安全性和内容的质量。
参阅图1所示,本发明实施例的系统结构,包括
本系统由Parse分析器11、节点分析器12、纯文本处理器13、相似度匹配处理器14、文本转换器15组成。Parse分析器11、节点分析器12、纯文本处理器13、模糊匹配处理器14、文本转换器15顺次连接。
Parse分析器11,用于对接收到的html富文本数据进行分析,并转换成类似DOM的树结构对象,并且树结构对象可以正在服务器上使用。
节点分析器12,用于根据树结构对象中的各个节点中包含的纯字符串片段,按顺序拼接这些纯字符串,形成与parse分析器的输入(即html富文本)对应的不包含格式标签的纯文本字符串数据。
纯文本处理器13,用于处理节点分析器12形成的纯文本字符串数据,对他们进行校验以及具体业务处理,包括敏感词替换、单词书写纠错、专有名词识别格式化、大小写格式化等一系列字符串处理操作。
相似度匹配处理器14,用于接收纯文本处理器13处理后形成的修正后的纯文本字符串数据,将修正后的字符串数据与树结构对象中各个节点的纯字符片段进行相似度匹配,根据计算的最优结果,将修正后的字符串数据替换填入最佳的节点纯字符片段内,并输出新的树结构对象。
文本转换器15,用于对新的树结构对象进行转换处理,通过parse逆向形成完整的html富文本数据。
参阅图2所示,本发明实施例的树结构对象结构,包括根元素21、元素22、文本23、属性24。
其中,根元素21是整个树形结构的根节点,在本实施例中指<html>;根元素21由多个元素22组成,在本实施例中指<head>、<body>、<title>、<a>、<h1>;元素22由其他元素、文本23、属性24组成,在此处文本23就是纯字符串片段,在本实施例中,属性24指href。
参阅图3所示,本发明实施例的处理流程。假设存在以下一段带格式文本进行处理:
Figure BDA0000409141700000091
如果没有经过处理,则这是一段html源码,在浏览器下显示效果如下:
I forrget
my password
上述显示文本中,假设存在2个地方的问题:
●“forrget”发生了拼写错误。
●“password”是一个,敏感词。
根据这段html富文本数据,具体详细的处理流程如下。
包括:
步骤31:首先,采用parse机制,将html富文本数据作为parse分析器的输入,转换为类似DOM的树结构对象,具体结构如图4所示。
其中,DOM实际上是以面向对象方式描述的文档模型。DOM定义了表示和修改文档所需的对象、对象的行为和属性,以及这些对象之间的关系,可以把DOM认为是页面上数据和结构的一个树形表示,DOM模型是在客户端的浏览器上使用。
上述的树结构对象也是采用与DOM的相似的结构,其特点是能在服务器上运行使用。
步骤32:根据树结构对象中的各个节点中包含的纯字符串片段,按顺序拼接这些字符串数据,形成与parse分析器的输入(即html富文本)对应的不包含格式标签的纯文本字符串数据。
从树形结构上处理得出这段带格式文本对应的纯文本数据:
I forrget/r/n my password
步骤33:对该纯文本字符串数据进行校验和具体业务处理,包括敏感词替换、单词书写纠错、专有名词识别格式化、大小写格式化等等一系列字符串处理。最后,生成修正后的纯文本字符串数据。
这此例中,对纯文本进行处理,这段文本中“forrget”拼写错误,应该为“forget”,另外“password”为业务上的敏感词,虽然源数据中“pass”和“word”为分属于两个标签的单词,但通过转换为纯文本成功识别出为敏感词,然后进行过滤。最后处理得到:
I forget/r/n my
其中,“forrget”被改为:“forget”,敏感词“password”被过滤。
步骤34:将修正后的纯文本字符串数据与树结构对象中各个节点的纯字符串片段进行相似度匹配,选出最优结果,将最优的匹配字符串数据替换填入树结构对象中最佳的节点纯字符串片段内,处理后,树结构对象如图5所示。
其中,相似度匹配算法默认采取了一种字符最短路径算法的改进算法,在最短路径的基础上,通过距离预算和最佳整体距离匹配方法来计算最佳匹配。
通过本发明的方法,在该实例中,将带格式的文本转换为纯文本的处理方式,很方便的识别出敏感词,单词纠错等处理,在纯文本处理完后,根据本发明的模糊匹配算法,将处理后的文本已最合适的位置进行标签还原,最大程度上保证标签不被破坏。
例如本实例中:
<span style="color:red">forr</span>
<span>get</span>
将“forrget”纠正为“forget”时,可以有两种结果。
第一种为:
<span style="color:red">forg</span>
<span>et</span>
这种方式保留了第一个span标签下字符数不变,都为4个字符;
第二种为:
<span style="color:red">for</span>
<span>get</span>
这种方式最大程度上保留了原有标签的含义,让get保持不变,将第一个span内单词去掉一个字符,这是相似度匹配后的最佳匹配结果。
步骤35:等所有的节点纯字符片段与修正后的字符串数据匹配完成后,形成了新的树结构对象,再对新的树结构对象进行转换处理,通过parse逆向形成完整的html富文本数据。
在本例中,最后生成的html富文本数据为:
Figure BDA0000409141700000111
这时形成的html富文本数据是含有格式标签的,能够在客户端浏览器上显示各种丰富的效果。
在本例中,最后显示的效果为:
I forget
my
参阅图6所示,本发明的一种相似度匹配的方法的处理流程,包括
步骤610:树结构对象节点纯字符串片段与修正后纯文本开始比较。
步骤611:把树结构对象某个节点文本片段的字符串作为第一输入量,并计算其长度,从修正后的纯文本中截取相同长度的字符串,作为第二输入量。
步骤612,基于Levenshtein_distance算法:
lev a , b ( i , j ) = max ( i , j ) if min ( i , j ) = 0 , min lev a , b ( i - 1 , j ) + 1 lev a , b ( i , j - 1 ) + 1 lev a , b ( i - 1 , j - 1 ) + [ a i &NotEqual; b j ] otherwise .
计算两个输入量的距离,判别结果是否为0,若为0,转到步骤623,否则,转到步骤613。
步骤613:判断正在处理的第二输入量是否是修正后纯文本的首字符,如果是转到步骤620,否则,转到步骤614。
步骤614:判断是否还存在未处理的待选对象,如果有,转到步骤615,否则,转到步骤622。
步骤615:向右探索。根据第二输入量处于纯文本字符串中的位置,向右增加一个字符,作为新的第二输入量,再次计算这2个计算输入量的距离,进行向右探寻。
步骤616:判断这次的距离结果值和上次的距离结果值相比,是否在减小。如果减小了,转到步骤615,否则转到步骤617。
步骤617:停止向右探索。
步骤618:开始向左探索。第二输入量恢复到截取完成时的初始值,减少其最右的一个字符,作为新的第二输入量,计算2个计算输入量的距离,如果计算的结果小于等于最初的距离结果,则第二输入量继续减少其最右的一个字符,作为新的第二输入量,再次计算这2个计算输入量的距离。
步骤619:判断这次的距离结果值和上次的距离结果值相比,是否在减小。如果减小了,转到步骤618,否则转到步骤620。
步骤620:停止向左探索。
步骤621:得到新一组距离结果。转到步骤614。
步骤622:得到多组距离结果值。比较,得出最小的距离结果值。
步骤623:把最小距离值,作为待选对象,如果待选对象只有1个,则作为最优结果,根据对应的第二输入量,确定其在纯文本字符串中的最终的起始和结束位置,并且把这个最终起始位置作为与树结构对象中上一个节点配对的第二输入量的结束位置,把这个最终结束位置作为下一次匹配计算的起始位置,同时确定了上一个第二输入量的值。
步骤624:判断修正后的纯文本是否全部匹配处理结束,如果没有,转到步骤611,否则,转到步骤625。
步骤625:匹配工作结束。
根据以上方法,先取上例中的部分数据进一步详细说明相似度匹配方法。
对于上例中,修正后的纯文本字符串为:
I forget/r/n my
为了更能体现本方法中左右探寻的过程,在此处,只取纯文本字符串“I forget”来与树结构对象中的节点文本片段进行匹配来说明。
(1)如图4,从树结构对象中的第一个节点取得文本数据:“I”,作为第一输入量,并计算它的长度为1。
(2)从修正后的纯文本字符串“I forget”中,从开始位置取1位字符,即为“I”,作为第二输入量。
(3)通过Levenshtein_distance算法,计算这2个输入量的距离,计算得出距离结果为0,说明2个输入量完全相同,把第二输入量替换填入树结构对象的第1个节点纯字符串片段内。在纯文本字符串“I forget”中,把“I”标记为结束位。
(4)从树结构对象中的第2个节点取得文本数据:“forr”,作为第一输入量,并计算它的长度为4。
(5)在修正后的纯文本字符串“I forget”中,从上次标记的结束位“I”开始,向后取4位字符,即“forg”,作为第二输入量。
(6)计算这2个输入量的距离,计算得出距离结果为1,由于结果不为0,则进行向右探索,在“I forget”中,向右多取1个字符,即把“forge”作为第二输入量。
(7)计算这2个输入量的距离,计算得出距离结果为2,结果大于上一次计算的距离结果1,停止向右探寻。
(8)开始向左探寻,把第二输入量恢复到初始值:“forg”,从右边减去一个字符,变成“for”,作为新的第二输入量。
(9)计算这2个输入量的距离,计算得出距离结果为1,结果等于第二输入量最初值时的距离结果1,进行向左探寻,把第二输入量“for”,从右边再减去一个字符,变成“fo”,作为新的第二输入量。
(10)计算这2个输入量的距离,计算得出距离结果为2,结果大于上一次计算的距离结果1,停止向左探寻。
(11)比较这一组距离结果,选出其中的最小值作为待选对象,本次计算中,最小值为1,待选对象有2个:“forg”、“for”。
(12)先取待选对象“forg”,以“g”为结束位。
(13)从树结构对象中的第3个节点取得文本数据:“get”,作为第一输入量,并计算它的长度为3。
(14)根据待选对象“forg”,从结束位“g”开始向后取3位字符,但对于“I forget”来说,只取到2位字符“et”,作为第二输入量,计算2个输入量的距离为1,因为“et”是最后2位,不可能向右探索,那么开始向左探索,把第二输入量“et”右边减去1个字符,变成“e”,作为新的第二输入量,计算2个输入量的距离为2,大于上一次的距离结果1,停止向左探索,那么比较这组距离结果,最小值为1。
(15)取待选对象“for”,以“r”为结束位。从结束位“r”开始向后取3位字符,获得“get”,作为第二输入量,计算2个输入量的距离为0,则选取待选对象“for”,把待选对象“for”替换填入树结构对象的第2个节点纯字符片段内,即把“forr”替换成“for”。
(16)同时将第二输入量“get”填入树结构对象的第3个节点纯字符片段内。
这样形成新树结构对象,如图5。
以上实施例只是对于本发明的部分功能进行描述,但实施例和附图并不是用来限定本发明的。在不脱离本发明之精神和范围内,所做的任何等效变化或润饰,同样属于本发明之保护范围,因此本发明的保护范围应当以本申请的权利要求所界定的内容为标准。

Claims (9)

1.一种含格式的html富文本数据的跨标签处理方法,其特征在于包括以下步骤:
步骤一、采用parse机制,将html富文本数据作为parse分析器的输入,转换为类似DOM的树结构对象,html富文本数据中的纯文本数据将填写到树结构对象节点中,形成了多个节点纯字符串片段;
步骤二、在树结构对象中,根据各个节点中包含的纯字符串片段,按顺序拼接这些文本数据,与parse分析器的输入(即html富文本)对应,形成不包含格式标签的纯文本字符串数据。
步骤三、对该纯文本字符串数据进行校验、具体业务处理,生成修正后的纯文本字符串数据;
步骤四、将修正后的纯文本字符串数据与树结构对象中各个节点的纯字符串片段进行相似度匹配计算,逐个计算出纯文本字符串数据中单词与节点中纯字符片段内容之间的距离;
步骤五、将所有的节点纯字符串片段与修正后的字符串数据匹配完成后,形成了新的树结构对象,再对新的树结构对象进行转换处理,通过parse逆向形成完整的html富文本数据。
2.根据权利要求1所述的跨标签处理方法,其特征在于:步骤一中,所述DOM是以面向对象方式描述的文档模型,定义了表示和修改文档所需的对象、对象的行为和属性,以及这些对象之间的关系,DOM是页面上数据和结构的一个树形表示,DOM模型是在客户端的浏览器上使用;
所述parse机制,是将一组字符串作为输入,进行解析转换成特定对象结构的机制;所述特定对象结构指计算机程序领域的一组数据结构对象,即类似DOM的树结构对象。
所述树结构对象采用与DOM的相似的树形结构,与DOM不同的是,它可以在服务器上使用。
3.根据权利要求1所述的跨标签处理方法,其特征在于:步骤三中,所述处理包括敏感词替换、单词书写纠错、专有名词识别格式化、大小写格式化一系列字符串处理,生成修正后的纯文本字符串数据。
4.根据权利要求1所述的跨标签处理方法,其特征在于:步骤四中,根据局部最优的原则,选出距离局部最小的纯文本字符串,将其替换填入相应的节点纯字符串片段内。其中,相似度匹配算法默认采取了一种字符最短路径算法的改进算法,在最短路径的基础上,通过距离计算和最佳整体距离匹配来计算最佳匹配。
5.一种含格式的html富文本数据的跨标签处理系统,其特征在于:它由Parse分析器、节点分析器、纯文本处理器、相似度匹配处理器、文本转换器组成。Parse分析器、节点分析器、纯文本处理器、相似度匹配处理器、文本转换器顺次连接;
所述Parse分析器,用于对接收到的html富文本数据进行分析,并转换成类似DOM的树结构对象,html富文本数据中的纯文本数据将填写到树结构对象节点中,形成了多个节点纯字符串片段,并且树结构对象可以正在服务器上使用;
所述节点分析器,用于根据树结构对象中的各个节点中包含的纯字符串片段,按顺序拼接这些纯字符串,形成与parse分析器的输入(即html富文本)对应的不包含格式标签的纯文本字符串数据;
所述纯文本处理器,用于处理节点分析器形成的纯文本字符串数据,对他们进行校验以及具体业务处理,包括敏感词替换、单词书写纠错、专有名词识别格式化、大小写格式化一系列字符串处理操作;
所述相似度匹配处理器,用于接收纯文本处理器处理后形成的修正后的纯文本字符串数据,将修正后的字符串数据与树结构对象中各个节点的纯字符片段进行相似度匹配,根据局部最优原则,选出距离局部最小的纯文本字符串,替换填入相应的节点纯字符片段内,并输出新的树结构对象;
所述文本转换器,用于对新的树结构对象进行转换处理,通过parse逆向形成完整的html富文本数据。
6.一种相似度匹配的方法,其特征在于,它包括:
基于Levenshtein_distance算法,计算两个字符的距离:
lev a , b ( i , j ) = max ( i , j ) if min ( i , j ) = 0 , min lev a , b ( i - 1 , j ) + 1 lev a , b ( i , j - 1 ) + 1 lev a , b ( i - 1 , j - 1 ) + [ a i &NotEqual; b j ] otherwise .
基于以上字符距离计算,首先选择树结构对象的节点中的文本数据,与修正后的纯文本字符串进行距离计算,根据计算的结果,选择执行左右探寻,匹配最佳的结果。
7.根据权利要求6所述的相似度匹配的方法,其特征在于:在Levenshtein_distance算法上增加缓存处理以提高距离计算速度。
8.根据权利要求6所述的相似度匹配的方法,其特征在于,具体步骤为:
当处于修正后纯文本字符串的开始位置时,首先从树结构对象中第一个节点,取得包含其中的纯字符串片段,作为第一输入量,并计算此字符串片段的长度,然后在修正后的纯文本字符串中,从开始位置起,取得相同长度的字符串,作为第二输入量;通过Levenshtein_distance算法,计算这2个输入量的距离;
如果计算的距离结果为0,则以第二输入量最后1个字符在修正后纯文本字符串中的位置标记为结束位,并把第二输入量替换填入对应的节点纯字符片段内,完成1次匹配;然后在树结构对象中,按序从下一节点中取得其中的纯文本字符串片段,作为新的第一输入量,并计算此文本片段的长度,在修正后的纯文本字符串中,把标记的结束位开始作为新的起始位置,向后取得相同长度的字符串,作为第二输入量,开始新一轮的距离计算;
如果计算的距离结果不为0,在修正后纯文本字符串中的当前位置上,向右增加一个字符,补入第二输入量,作为新的第二输入量,再次计算这2个计算输入量的距离,进行向右探寻;如果新的距离结果小于等于上一次的距离结果,则第二输入量在修正后纯文本字符串的当前位置中,再次向右增加一个字符,补入第二输入量,作为新的第二输入量,计算这2个计算输入量的距离;如果距离结果大于上一次的计算结果,则停止向右探寻,开始向左探寻;在最初第二输入量的基础上,减少其最右的一个字符,作为新的第二输入量,计算2个计算输入量的距离,如果计算的结果小于等于最初的距离结果,则第二输入量继续减少其最右的一个字符,作为新的第二输入量,再次计算这2个计算输入量的距离;如果计算的结果大于原来的计算结果,则停止向左探寻,本次计算结束;
从上述计算的一组距离结果中,按照局部最优的原则,选择结果最小的距离值,作为待选对象;如果待选对象只有1个,则把这个待选对象作为最优结果,其对应的第二输入量替换填入对应的节点纯字符串片段内,则以第二输入量最后字符在纯文本字符串中的位置为结束位;
如果待选对象有多个,则需要与相邻的下一组第一输入量、第二输入量的距离结果结合来综合考虑;
对于待选对象有多个的情况,在修正后纯文本字符串中,他们的位置是连续排在一起的;标出所有待选对象最后一个字符在修正后纯文本字符串中的位置作为待选位置;首先把最右的待选位置作为新的匹配计算的起始位置,然后在树结构对象中,按序从下一节点中取得其中的纯字符串片段,作为第一输入量,并计算此文本片段的长度,然后在修正后的纯文本字符串中,从标记的起始位置起,取得相同长度的字符串,作为第二输入量;开始新一轮的距离计算,并进行左右探寻,得出一组距离结果;
然后,从连续多个待选位置中,向左移一位,作为新的起始位置,开始新一轮的距离计算,得出一组距离结果;直到把所有待选对象对应的待选位置都完成了距离的计算,最后得到多组距离结果;
综合多组距离结果,计算出其中最小距离值,作为待选对象,如果待选对象只有1个,则作为局部最优结果,根据对应的第二输入量,确定其在纯文本字符串中的最终的起始和结束位置,并且把这个最终起始位置作为与树结构对象中上一个节点匹配的第二输入量的结束位置,确定了上一个第二输入量的值;同时把这个最终结束位置作为下一次匹配计算的起始位置;
把上一个第二输入量和这次计算得出的最优第二输入量替换填入对应的节点纯字符片段内。
9.根据权利要求8所述的相似度匹配的方法,其特征在于:
把修正后纯文本字符串的结束位置作为下一次匹配计算的起始位置,开始新一轮的距离计算;
每次进行下一轮匹配时,将之前匹配的多个待选对象作为一个重要考量因子,根据上轮得到的多个待选对象对此轮的匹配结果进行优化调整,得到整体的最优结果,并记录最新产生的最优匹配位置,依次直到所有文本找到最合适的匹配位置;
如此循环,直到最后把纯文本字符串中所有的内容都替换填入树结构对象的对应的节点纯字符片段内。
CN201310545888.2A 2013-11-06 2013-11-06 一种含格式的html富文本数据的跨标签处理方法及系统 Expired - Fee Related CN103530430B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310545888.2A CN103530430B (zh) 2013-11-06 2013-11-06 一种含格式的html富文本数据的跨标签处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310545888.2A CN103530430B (zh) 2013-11-06 2013-11-06 一种含格式的html富文本数据的跨标签处理方法及系统

Publications (2)

Publication Number Publication Date
CN103530430A true CN103530430A (zh) 2014-01-22
CN103530430B CN103530430B (zh) 2016-05-25

Family

ID=49932439

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310545888.2A Expired - Fee Related CN103530430B (zh) 2013-11-06 2013-11-06 一种含格式的html富文本数据的跨标签处理方法及系统

Country Status (1)

Country Link
CN (1) CN103530430B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183706A (zh) * 2014-05-27 2015-12-23 腾讯科技(北京)有限公司 富文本处理方法和装置
CN106294493A (zh) * 2015-06-08 2017-01-04 腾讯科技(深圳)有限公司 实现文档格式转换的方法及装置
CN108805862A (zh) * 2018-05-02 2018-11-13 南京大学 一种基于改进结构相似度的标签鉴别方法
CN109451018A (zh) * 2018-11-07 2019-03-08 掌阅科技股份有限公司 信息对象的推送方法、计算设备及计算机存储介质
CN109871685A (zh) * 2019-02-19 2019-06-11 腾讯科技(深圳)有限公司 一种rtf文件的解析方法及装置
CN109918679A (zh) * 2019-03-22 2019-06-21 成都晟堃科技有限责任公司 一种解析纸质保单数据的方法
CN112101010A (zh) * 2020-11-23 2020-12-18 中博信息技术研究院有限公司 一种基于bert的电信行业oa办公自动化文稿审核的方法
CN112560405A (zh) * 2020-12-14 2021-03-26 央视国际网络无锡有限公司 一种从分词净文本到富格式文本的着色方法
CN112748928A (zh) * 2020-12-30 2021-05-04 平安普惠企业管理有限公司 富文本数据处理方法、装置、计算机设备及存储介质
CN113378515A (zh) * 2021-08-16 2021-09-10 宜科(天津)电子有限公司 一种基于生产数据的文本生成系统
CN116340467A (zh) * 2023-05-11 2023-06-27 腾讯科技(深圳)有限公司 文本处理方法、装置、电子设备及计算机可读存储介质
CN118407960A (zh) * 2024-07-03 2024-07-30 山东海德尼克液压科技有限公司 一种具备性能在线监测的液压阀智能控制方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011063561A1 (en) * 2009-11-25 2011-06-03 Hewlett-Packard Development Company, L. P. Data extraction method, computer program product and system
CN102184189A (zh) * 2011-04-18 2011-09-14 北京理工大学 基于dom节点文本密度的网页核心块确定方法
CN103324668A (zh) * 2013-05-20 2013-09-25 吴涛军 一种在网页上标记文本的标记系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011063561A1 (en) * 2009-11-25 2011-06-03 Hewlett-Packard Development Company, L. P. Data extraction method, computer program product and system
CN102184189A (zh) * 2011-04-18 2011-09-14 北京理工大学 基于dom节点文本密度的网页核心块确定方法
CN103324668A (zh) * 2013-05-20 2013-09-25 吴涛军 一种在网页上标记文本的标记系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吉胜军: "基于Levenshtein distance算法的句子相似度计算", 《电脑知识与技术》 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183706A (zh) * 2014-05-27 2015-12-23 腾讯科技(北京)有限公司 富文本处理方法和装置
CN106294493A (zh) * 2015-06-08 2017-01-04 腾讯科技(深圳)有限公司 实现文档格式转换的方法及装置
CN106294493B (zh) * 2015-06-08 2020-05-08 腾讯科技(深圳)有限公司 实现文档格式转换的方法及装置
CN108805862B (zh) * 2018-05-02 2021-08-13 南京大学 一种基于改进结构相似度的标签鉴别方法
CN108805862A (zh) * 2018-05-02 2018-11-13 南京大学 一种基于改进结构相似度的标签鉴别方法
CN109451018A (zh) * 2018-11-07 2019-03-08 掌阅科技股份有限公司 信息对象的推送方法、计算设备及计算机存储介质
CN109451018B (zh) * 2018-11-07 2021-03-19 掌阅科技股份有限公司 信息对象的推送方法、计算设备及计算机存储介质
CN109871685A (zh) * 2019-02-19 2019-06-11 腾讯科技(深圳)有限公司 一种rtf文件的解析方法及装置
CN109871685B (zh) * 2019-02-19 2023-08-08 腾讯科技(深圳)有限公司 一种rtf文件的解析方法及装置
CN109918679A (zh) * 2019-03-22 2019-06-21 成都晟堃科技有限责任公司 一种解析纸质保单数据的方法
CN109918679B (zh) * 2019-03-22 2023-04-11 成都晟堃科技有限责任公司 一种解析纸质保单数据的方法
CN112101010A (zh) * 2020-11-23 2020-12-18 中博信息技术研究院有限公司 一种基于bert的电信行业oa办公自动化文稿审核的方法
CN112560405A (zh) * 2020-12-14 2021-03-26 央视国际网络无锡有限公司 一种从分词净文本到富格式文本的着色方法
CN112560405B (zh) * 2020-12-14 2024-04-05 央视国际网络无锡有限公司 一种从分词净文本到富格式文本的着色方法
CN112748928A (zh) * 2020-12-30 2021-05-04 平安普惠企业管理有限公司 富文本数据处理方法、装置、计算机设备及存储介质
CN113378515A (zh) * 2021-08-16 2021-09-10 宜科(天津)电子有限公司 一种基于生产数据的文本生成系统
CN116340467A (zh) * 2023-05-11 2023-06-27 腾讯科技(深圳)有限公司 文本处理方法、装置、电子设备及计算机可读存储介质
CN116340467B (zh) * 2023-05-11 2023-11-17 腾讯科技(深圳)有限公司 文本处理方法、装置、电子设备、及计算机可读存储介质
CN118407960A (zh) * 2024-07-03 2024-07-30 山东海德尼克液压科技有限公司 一种具备性能在线监测的液压阀智能控制方法及系统
CN118407960B (zh) * 2024-07-03 2024-10-11 山东海德尼克液压科技有限公司 一种具备性能在线监测的液压阀智能控制方法及系统

Also Published As

Publication number Publication date
CN103530430B (zh) 2016-05-25

Similar Documents

Publication Publication Date Title
CN103530430A (zh) 一种含格式的html富文本数据的跨标签处理方法及系统
KR101146539B1 (ko) 비-로마자 문자 및 단어의 철자 정정을 위한 시스템 및방법
US7606816B2 (en) Record boundary identification and extraction through pattern mining
US8825466B1 (en) Modification of annotated bilingual segment pairs in syntax-based machine translation
CN102810097B (zh) 网页正文内容提取方法及装置
CN105975625A (zh) 一种面向英文搜索引擎的中式英文查询纠错方法和系统
CN109635288A (zh) 一种基于深度神经网络的简历抽取方法
WO2021030600A1 (en) Web element rediscovery system and method
US20120030206A1 (en) Employing Topic Models for Semantic Class Mining
US9110852B1 (en) Methods and systems for extracting information from text
US20190108215A1 (en) Automated quantitative assessment of text complexity
CN109657114B (zh) 一种抽取网页半结构化数据的方法
CN113590784A (zh) 三元组信息抽取方法、装置、电子设备、及存储介质
US20230028664A1 (en) System and method for automatically tagging documents
CN113159969A (zh) 一种金融长文本复核系统
CN105630772A (zh) 一种网页评论内容的抽取方法
CN112257462A (zh) 一种基于神经机器翻译技术的超文本标记语言翻译方法
CN115048940A (zh) 基于实体词属性特征和回译的中文金融文本数据增强方法
CN106372232B (zh) 基于人工智能的信息挖掘方法和装置
CN112733517A (zh) 需求模板符合性检查的方法、电子设备及存储介质
CN107766384A (zh) 一种确定页面发布时间的方法和装置
CN108845985B (zh) 一种信息匹配方法和信息匹配装置
CN102945231B (zh) 一种面向增量式翻译的结构化语言模型构建方法及系统
CN115510362A (zh) 一种根据自然语言说明文档自动生成web前端代码系统
CN111966881A (zh) 一种网页信息提取方法及系统、电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160525