CN114090928B - 嵌套html实体解码方法、装置、计算机设备和存储介质 - Google Patents
嵌套html实体解码方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114090928B CN114090928B CN202210076706.0A CN202210076706A CN114090928B CN 114090928 B CN114090928 B CN 114090928B CN 202210076706 A CN202210076706 A CN 202210076706A CN 114090928 B CN114090928 B CN 114090928B
- Authority
- CN
- China
- Prior art keywords
- state
- character
- transition
- condition
- decoded
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Document Processing Apparatus (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及文本处理技术领域,提供了一种嵌套HTML方法、装置、计算机设备和存储介质,所述方法包括:获取HTML文本,得到待解码字符串;将所述待解码字符串输入确定有限状态转译器;按照所述待解码字符串中各字符的顺序以及对应前一个字符的状态位置,分别匹配各字符所满足的转移条件,根据所述转移条件对应的转换方式将各所述字符在所述确定有限状态转译器中进行状态转移;当状态转移到所述确定有限状态转译器的最终状态集时,输出状态转移后的待解码字符串,得到解码字符串。采用本方法能够提高嵌套HTML实体解码的处理效率。
Description
技术领域
本发明属于文本处理技术领域,尤其涉及一种嵌套HTML实体解码方法、装置、计算机设备和存储介质。
背景技术
丰富多彩的网页是由HTML(Hyper Text Markup Language,超文本标记语言)文本经过网页浏览器渲染而来的,因此互联网上存在海量的HTML文本。HTML文本是用规定的纯文本标签与展示内容文本按照标记语言规范定义的文本,由于标签文本字符串与展示内容文本字符串存在冲突等原因,使得一部分特殊展示内容字符不可用原字符直接写入HTML文本,而需要HTML规范规定对应关系写入编码后的字符串,这些特殊展示内容字符称为HTML实体。同时,由于HTML实体编码字符串中本身存在特殊字符,且HTML文本或其中的实体编码字符串可能会成为某种网页程序的输入,这使得编码HTML实体的特殊字符会在后者程序中成为实体从而形成了嵌套HTML实体。
因此,当网页浏览器渲染或计算机自动处理程序处理HTML文本时,需要通过HTML实体解码或HTML实体转义将HTML文本中的实体或者嵌套实体编码字符串还原为对应的HTML实体字符。由于HTML文本本质上还是字符串,所以传统的HTML实体解码技术一般使用字符串替换方法实现,主要通过逐字扫描待解码字符串,将字符串中的每个字都与所有的HTML实体编码字符串集合逐一匹配,匹配上则对目标位置的HTML实体进行解码。
然而,嵌套HTML实体的解码是在利用上述解码方式对字符串进行解码之后,再将所输出的字符串作为输入再次进行该过程的解码,如此反复直到状态收敛为止。现有这种重复输入输出解码字符串的方式,需要反复从头扫描待解码字符串,导致处理效率低下。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高处理效率的嵌套HTML实体解码方法、装置、计算机设备和存储介质。
本发明提供一种嵌套HTML实体解码方法,包括:
获取HTML文本,得到待解码字符串;
将所述待解码字符串输入确定有限状态转译器;
按照所述待解码字符串中各字符的顺序以及对应前一个字符的状态位置,分别匹配各字符所满足的转移条件,根据所述转移条件对应的转换方式将各所述字符在所述确定有限状态转译器中进行状态转移;
当状态转移到所述确定有限状态转译器的最终状态集时,输出状态转移后的待解码字符串,得到解码字符串。
在其中一个实施例中,所述按照所述待解码字符串中各字符的顺序以及对应前一个字符的状态位置,分别匹配各字符所满足的转移条件,包括:
在当前字符为所述待解码字符串中的首个字符时,从初始状态对应的转移条件中匹配所述首个字符满足的转移条件;
在当前字符为所述待解码字符串中的非首个字符时,确定所述非首个字符对应的前一个字符状态转移后的状态位置;
从所述状态位置对应的转移条件中匹配所述非首个字符满足的转移条件。
在其中一个实施例中,所述根据所述转移条件对应的转换方式将各所述字符在所述确定有限状态转译器中进行状态转移,包括:
当所述转移条件附带序列坍缩转换标识时,在所述确定有限状态转译器中利用序列坍缩转换将所述字符从当前的状态转移到所述转移条件指向的状态;
当所述转移条件未附带序列坍缩转换标识时,在所述确定有限状态转译器中利用等变转换将所述字符从当前的状态转移到所述转移条件指向的状态。
在其中一个实施例中,所述确定有限状态转译器的状态包括初始状态、第一状态、第二状态、第三状态和最终状态集;
所述初始状态转移到所述第一状态、所述第一状态转移到所述第一状态,以及所述第二状态转移到所述第一状态的转移条件均为第一转移条件;
所述初始状态、所述第一状态以及所述第二状态转移到所述最终状态集的转移条件均为第二转移条件;
所述初始状态转移到所述初始状态的转移条件为第三转移条件;
所述第一状态、所述第二状态转移到所述初始状态的转移条件均为第四转移条件,所述第三状态转移所述初始状态的转移条件为附带序列坍缩转换标识的第四转移条件;
所述第一状态转移到所述第二状态的转译条件为第五转移条件;
所述第二状态转移到所述第二状态的转移条件为第六转移条件,所述第二状态转移到所述第三状态的转移条件为第七转移条件;
所述第三状态转移到所述第一状态的转移条件为附带序列坍缩转换标识的第一转移条件,所述第三状态转移到所述第二状态的转移条件为附带序列坍缩转换标识的第八转移条件,所述第三状态转移到所述第三状态的转移条件为附带序列坍缩转换标识的第九转移条件。
在其中一个实施例中,所述第一转移条件为所述字符是&;所述第二转移条件为所述字符是结束信号;
所述第三转移条件为所述字符不是结束信号且不是字符&;
所述第四转移条件为所述字符不是结束信号、不是字符&且不能匹配HTML实体编码后续字符;
所述第五转移条件为所述字符不是结束信号、不是字符&但能匹配HTML实体编码后续字符;
所述第六转移条件为所述字符能匹配HTML实体编码后续字符、不是结束信号且不是实体的末尾字符;
所述第七转移条件为所述字符能匹配HTML实体编码后续字符且是实体的末尾字符;
所述第八转移条件为所述字符不是结束信号、不是字符&、能匹配HTML实体编码后续字符且不是实体的末尾字符;
所述第九转移条件为所述字符不是结束信号、不是字符&、能匹配HTML实体编码后续字符但是实体的末尾字符。
一种嵌套HTML实体解码装置,包括:
获取模块,用于获取HTML文本,得到待解码字符串;
输入模块,用于将所述待解码字符串输入确定有限状态转译器;
匹配转移模块,用于按照所述待解码字符串中各字符的顺序以及对应前一个字符的状态位置,分别匹配各字符所满足的转移条件,根据所述转移条件对应的转换方式将各所述字符在所述确定有限状态转译器中进行状态转移;
输出模块,用于当状态转移到所述确定有限状态转译器的最终状态集时,输出状态转移后的待解码字符串,得到解码字符串。
在其中一个实施例中,所述匹配转移模块包括条件匹配子模块,用于在当前字符为所述待解码字符串中的首个字符时,从初始状态对应的转移条件中匹配所述首个字符满足的转移条件;在当前字符为所述待解码字符串中的非首个字符时,确定所述非首个字符对应的前一个字符状态转移后的状态位置;从所述状态位置对应的转移条件中匹配所述非首个字符满足的转移条件。
在其中一个实施例中,所述匹配转移模块包括状态转移子模块,用于当所述转移条件附带序列坍缩转换标识时,在所述确定有限状态转译器中利用序列坍缩转换将所述字符从当前的状态转移到所述转移条件指向的状态;当所述转移条件未附带序列坍缩转换标识时,在所述确定有限状态转译器中利用等变转换将所述字符从当前的状态转移到所述转移条件指向的状态。
本发明还提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器存储由计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的嵌套HTML实体解码方法的步骤。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的嵌套HTML实体解码方法的步骤。
上述嵌套HTML实体解码方法、装置、计算机设备和存储介质,获取HTML文本得到待解码字符串之后,通过将待解码字符串输入确定有限状态转译器,进而按照待解码字符串中各字符的顺序以及对应前一个字符的状态位置,分别匹配各字符所满足的转移条件,根据转移条件对应的转换方式将各字符在确定有限状态转译器中进行状态转移,直到状态转移到确定有限状态转译器的最终状态集时,输出状态转移后的待解码字符串得到解码字符串。该方法通过确定有限状态转译器对字符串中各字符分别进行状态转移实现HTML实体解码,能够依靠转译器当下所记录的各字符状态持续地进行解码,即使是嵌套HTML实体也能够只要一次输入就能完成所有实体的解码,无需反复输入输出重复从头扫描,从而提高了解码的效率。
附图说明
图1为一个实施例中嵌套HTML实体解码方法的应用环境图。
图2为一个实施例中嵌套HTML实体解码方法的流程示意图。
图3为一个实施例中DFST系统的结构示意图。
图4为一个实施例中嵌套HTML实体解码装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本申请提供的嵌套HTML实体解码方法,可以应用于如图1所示的应用环境中,该应用环境涉及终端102和服务器104。其中,终端102通过网络与服务器104进行通信。终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和携带式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
当终端102接收到对HTML文本进行实体解码指令时,可以由终端102单独实现上述嵌套HTML实体解码方法。也可以由终端102将实体解码指令发送给通信的服务器104,由服务器104实现上述嵌套HTML实体解码方法。以服务器104为例,具体的,服务器104获取HTML文本,得到待解码字符串;服务器104将待解码字符串输入确定有限状态转译器;服务器104按照待解码字符串中各字符的顺序以及对应前一个字符的状态位置,分别匹配各字符所满足的转移条件,根据转移条件对应的转换方式将各字符在确定有限状态转译器中进行状态转移;当状态转移到确定有限状态转译器的最终状态集时,服务器104输出状态转移后的待解码字符串,得到解码字符串。
在一个实施例中,如图2所示,提供一种嵌套HTML实体解码方法,以该方法应用于服务器为例进行说明,包括以下步骤:
步骤S201,获取HTML文本,得到待解码字符串。
具体的,HTML文本是用规定的纯文本标签与展示内容文本按照标记语言规范定义的文本,即为本实施例需要进行解码的待解码字符串。因此,当服务器接收到实体解码指令之后,可以通过互联网采集的方式或者从指定存储路径中获取的方式得到HTML文本。然后,对HTML文本经过清洗等文本预处理操作后作为待解码字符串。待解码字符串可能是嵌套HTML实体,也可能是非嵌套的HTML实体。本实施例中嵌套HTML实体可以理解为是存在多层内嵌的实体,简单理解就是实体内还包括实体。比如,由于某个实体字符在HTML文本中无法直接写入,需要按照HTML规范写入对应编码后的字符串,如果编码后的字符串中不含实体,此时便只是一个普通的单层HTML实体。但是,如果编码后的字符串中还存在实体,也就是还需要对该实体进行编码,此时得到的就是嵌套HTML实体。
步骤S202,将待解码字符串输入确定有限状态转译器。
其中,本实施例的确定有限状态转译器(Deterministic Finite-StateTransducer,DFST)是一种在DFSA(Deterministic Finite-State Automaton,确定有限状态自动机)上定义转换函数的序列转换模型。DFSA是计算机科学计算理论领域中的一种用于匹配字符串的模型,主要通常由状态集、符号表、状态转移函数、初始状态、可接受最终状态集(在本实施例中可以理解为是最终状态集)五大要素构成。其接受一个字符串,对其中每个字符逐一匹配,匹配时根据DFSA当前字符、当前状态以及状态转移函数决定DFSA下一个状态。如此对字符串中的字符按序进行,直到匹配完字符串中所有字符。因此,如果一个自动机系统的状态集有限且状态间转移是确定的,则称其为确定的有限状态自动机DFSA。
具体的,本实施例的DFST是除包含DFSA要素之外还额外包括序列转换函数的系统,该序列转换函数定义了在匹配序列的过程中如何转译字符,直到最终完成从一个输入序列到输出序列,即输入字符串到输出字符串的转换过程。总的来说,本实施例DFST系统总共包括六大构成要素,构成要素M=(Q,∑,δ,q0,I,F),其中Q为状态集,∑为符号表,δ是状态转移函数,q0为初始状态,I为序列转换函数,F为可接受最终状态集(即本实施例中的最终状态集)。而由于本实施例是通过设计的DFST实现实体解码来避免反复从头扫描实现嵌套HTML实体解码,因此当服务器获取得到待解码字符串之后,将该待解码字符串输入至DFST系统中。
步骤S203,按照待解码字符串中各字符的顺序以及对应前一个字符的状态位置,分别匹配各字符所满足的转移条件,根据转移条件对应的转换方式将各字符在确定有限状态转译器中进行状态转移。
其中,字符的顺序是指字符在字符串中的排序,前一个字符是指位于该字符前一位的字符,比如字符串“1“”中字符3对应的前一个字符是#。转移条件是指在DFST中字符能够实现状态转移所需要满足的条件,转移条件连接着两个相同或者不同的状态,这两个状态之间能够进行转移所要满足的便是转移条件,任意两组状态之间所对应的转移条件可以相同也可以不同。转换方式即为DFST中进行状态转移的方式,与序列转换函数I所对应。状态转移从字面意思上是指字符从一个状态转换成另外一个状态,由于本实施例适用于实体解码,所以状态转移在本实施例中实际上就是实体解码的过程,即编码后的字符通过解码还原得到实际字符的过程。
具体的,当服务器将待解码字符串输入到DFST系统中之后,便按照待解码字符串中各字符的顺序,逐一对字符进行状态转移。也就是说,待解码字符中各字符的状态转移是按照字符的顺序依次进行,只有前一个字符完成状态转移之后才能进行本字符的状态转移。并且,字符的状态转移需要匹配对应的转移条件,匹配上转移条件才能够确定转移到哪个状态。所以字符的状态转移需要基于对应前一个字符的状态位置匹配的到该字符所满足的转移条件之后,基于该转移条件对应的转换方式进行状态转移,转移到转移条件所指向的状态。
步骤S204,当状态转移到确定有限状态转译器的最终状态集时,输出状态转移后的待解码字符串,得到解码字符串。
具体的,当在DFST中对待解码字符串中各字符依次进行状态转换直到结束信号为止,结束信号是一个不同于输入序列中的任何元素的特殊符号,其一般被追加到输入序列的末尾字符之后,形成一个比原始输入序列多一个元素的新序列,用于DFST系统判断是否结束。因此,到了结束信号之后,此时的待解码字符串的状态会在最终状态集的位置,表示整个字符串已解码完毕,因此从DFST中输出完成状态转移后的待解码字符,得到的就是解码之后的字符串,即解码字符串。
上述嵌套HTML实体解码方法,获取HTML文本得到待解码字符串之后,通过将待解码字符串输入确定有限状态转译器,进而按照待解码字符串中各字符的顺序以及对应前一个字符的状态位置,分别匹配各字符所满足的转移条件,根据转移条件对应的转换方式将各字符在确定有限状态转译器中进行状态转移,直到状态转移到确定有限状态转译器的最终状态集时,输出状态转移后的待解码字符串得到解码字符串。该方法通过确定有限状态转译器对字符串中各字符分别进行状态转移实现HTML实体解码,能够依靠转译器当下所记录的各字符状态持续地进行解码,即使是嵌套HTML实体也能够只要一次输入就能完成所有实体的解码,无需反复输入输出重复从头扫描,从而提高了解码的效率。
在一个实施例中,按照待解码字符串中各字符的顺序以及对应前一个字符的状态位置,分别匹配各字符所满足的转移条件,包括:在当前字符为待解码字符串中的首个字符时,从初始状态对应的转移条件中匹配首个字符满足的转移条件;在当前字符为待解码字符串中的非首个字符时,确定非首个字符对应的前一个字符状态转移后的状态位置;从状态位置对应的转移条件中匹配非首个字符满足的转移条件。
具体的,由于待解码字符串中的首个字符在之前是不存在任何字符的,所以当待解码字符串输入到DFST系统开始对各字符进行状态转移时,需要基于当前进行状态转移的字符是否为首个字符来区分匹配转移条件的状态位置。在当前字符为首个字符时,其当前所处的位置一定是DFST系统中的初始位置q0,所以首个字符的转移条件从初始状态转出所对应的转移条件中进行匹配,也就是从初始状态转移到其他状态的转移条件中进行匹配。而在当前字符不是首个字符时,则需要现确定该非首个字符对应前一个字符进行状态转移后的状态位置,然后以该状态位置转出所对应的转移条件中匹配满足的转移条件。比如,第二个字符进行状态转移时,首先确定第一个字符进行状态转移后的状态位置,假设第一个字符从初始状态转移到了第一状态,则第二字符的转移条件则从第一状态转移到其他状态的转移条件中进行匹配。
在一个实施例中,根据转移条件对应的转换方式将各字符在确定有限状态转译器中进行状态转移,包括:当转移条件附带序列坍缩转换标识时,在确定有限状态转译器中利用序列坍缩转换将字符从当前的状态转移到转移条件指向的状态;当转移条件未附带序列坍缩转换标识时,在确定有限状态转译器中利用等变转换将字符从当前的状态转移到转移条件指向的状态。
其中,本实施例中的转换方式包括序列坍缩转换和等变转换两种方式,序列坍缩转换是指将一个字符串转换为一个更短字符串的过程,即类似于∑m×Qm→∑n×Qn,n<m。但是,本实施例中的序列坍缩转换不同的是将长字符串坍缩到一个字符,即∑m×Qm→∑×Q,m>1。而等变转换是一种原样输出的转换,即x→x。序列坍缩转换标识用于表示满足该转移条件的转换方式为序列坍缩转换,本实施例用“e:”打头作为序列坍缩转换标识。
具体的,当匹配确定好字符的转移条件后,服务器进一步判断转移条件是否附带有序列坍缩转换标识“e:”。当确定字符满足的转移条件附带有序列坍缩转换标识“e:”时,则利用序列坍缩转换对该字符进行状态转移,而当确定字符的满足的转移条件未附带有序列坍缩转换标识“e:”,则利用等变转换对该字符进行状态转移。由于转移条件是针对两个状态设置的,所以状态转移便是从当前状态转移到转换条件所指向的状态。
在一个实施例中,如图3所示,提供一种用于嵌套HTML实体解码(Nested HTMLEntities Decoding,NHED)的DFST结构图,基于图3所示的结构对嵌套HTML实体解码方法进行详细的解释说明。
如图3所示,本实施例的DFST系统所包含的状态集包括初始状态q0、第一状态q1、第二状态q2、第三状态q3以及最终状态集q4,其中初始状态q0、第一状态q1、第二状态q2、第三状态q3在结构图中用单圆圈表示,最终状态集q4用双圆圈表示。而状态与状态之间的有向边表示状态转移,有向边的起始节点表示状态转移所用状态转移函数的输入状态,有向边的终止节点则是状态转移函数的输出状态,所有的有向边即构成DFST的状态转移函数δ。
有向边上的符号即为字符所需要满足的转移条件,即状态转移函数δ由所有的有向边及边上的转移条件描述。其中,转移条件包括第一转移条件、第二转移条件、第三转移条件、第四转移条件、第五转移条件、第六转移条件、第七转移条件、第八转移条件和第九转移条件,各转移条件具体含义如下所示:
第一转移条件对应于初始状态q0转移到第一状态q1、第一状态q1转移到第一状态q1,以及第二状态q2转移到第一状态q1。第一转移条件为“&”,表示需要进行状态转移的字符是&,&字符是HTML实体编码字符串的指示起始字符,同时此处转译条件未附带序列坍缩转换标识,所以转移方式的等变转换,即转换是原样输出字符。而附带序列坍缩转换标识的第一转移条件“e:&”对应于第三状态q3转移到第一状态q1,表示字符满足条件“&” 进行转换时需要基于序列坍缩转换方式进行。
第二转移条件对应于初始状态q0转移到最终状态集q4、第一状态q1转移到最终状态集q4,以及第二状态q2转移到最终状态集q4。第二转移条件为“//”,表示字符是结束信号。
第三转移条件对应于初始状态q0转移到初始状态q0,为第三转移条件为“!&”,表示字符不是结束信号且不是字符&。
第四转移条件对应于第一状态q1转移到初始状态q0、第二状态q2转移到初始状态q0,第四转移条件为“!&+!/c”,表示不是结束信号、不是字符&且不能匹配HTML实体编码后续字符。而附带序列坍缩转换标识的第四转移条件对应于第三状态q3转移到初始状态q0,附带序列坍缩转换标识的第四转移条件为“e:!&+!/c”,表示满足转移条件“!&+!/c”进行转换时需要基于序列坍缩转换方式进行。
第五转移条件对应于第一状态q1转移到第二状态q2,第五转移条件为“!&+/c”,表示不是结束信号、不是字符&但能匹配HTML实体编码后续字符。
第六转移条件对应于第二状态q2转移到第二状态q2,第六转移条件为“/c+!/f”,表示能匹配HTML实体编码后续字符、不是结束信号且不是实体的末尾字符。
第七转移条件对应于第二状态q2转移到第三状态q3,第七转移条件为“/c+/f”,表示能匹配HTML实体编码后续字符且是实体的末尾字符。
附带序列坍缩转换标识的第八转移条件对应于第三状态q3转移到第二状态q2,附带序列坍缩转换标识的第八转移条件为“e:!&+/c+!/f”,表示满足条件不是结束信号、不是字符&、能匹配HTML实体编码后续字符且不是实体的末尾字符进行转换时需要基于序列坍缩转换方式进行。
附带序列坍缩转换标识的第九转移条件对应于第三状态q3转移到第三状态q3,附带序列坍缩转换标识的第九转移条件为“e:!&+/c+/f”,表示不是结束信号、不是字符&、能匹配HTML实体编码后续字符但是实体的末尾字符。
由此可见,该结构图中,双斜杠//表示结束信号。符号“!”表示逻辑非(不是结束信号的同时需要满足位于!之后的条件),如“!&”表示字符不是结束信号且不是字符“&”,“!/c”表示字符不是结束信号且不满足“/c”。符号“+”表示逻辑与(需要同时满足+号两边的条件),比如“/c+/f”表示需要满足“/c”的同时满足“/f”。其中,符号“/c”表示能匹配HTML实体编码后续字符,比如字符英文分号“t”可连续在“&l”后构成“<;”实体,“/c”蕴含了匹配目标字符不是“&”。“/f”表示该字符是一个实体的末尾字符,如实体“<;”中的分号字符“;”。所以,由定义可知条件“/c”蕴含“!&”,“!/c”蕴含“!/f”,以及“!&”、“!/c”和“!/f”蕴含“!//”,且根据图3结构图可知任意状态之间的转移也是确定的,所以状态集是确定的,相应的DFST系统也是确定的。
具体的,以实体字符“1“”(不含外围成对双引号)编码后对应的嵌套HTML实体“1& ldquo;”为例对本实施例的嵌套HTML实体解码方式进行解释说明。按照传统的解码方式,将实体“1& ldquo;”输入之后,扫描匹配解码第一层的实体之后只能输出“1“”,但此时“1& ldquo;”还是包括实体,所以想要解码完全就需要再次将“1& ldquo;”输入进行扫描匹配解码,才能得到未编码的实体字符串“1“”(不含外围成对双引号)。由此可知传统方式进行解码时,所嵌套的实体越多则需要更多次的重复输入输出扫描匹配解码。而本实施例,将嵌套HTML实体“1& ldquo;”输入到DFST之后,对于字符1匹配状态转移q0=>q0,同时满足的转移条件未带有标识“e:”,所以对字符1进行等变转换,输出的还是1,状态位置依旧也在初始状态q0处。然后后续字符串“&”按照顺序依次对字符&、#、3、8、;进行状态转移,其匹配的转移流程为q0=>q1=>q2=>q2=>q2=>q3,q0=>q1表示字符&的转换,q1=>q2表示字符#的转换,q2=>q2表示字符3的转换,再次的q2=>q2表示字符8的转换,q2=>q3表示字符;的转换。此时,到了第三状态q3,后续字符“ldquo;”中的字符1所满足的转移条件带有坍缩转换标识“e:”,所以需要进行序列坍缩转换,输出HTML解码实体“&”,剩余未转换的字符依次按照该方式进行后续匹配转移,最终会再次地进行序列坍缩转换输出HTML实体左双引号““”(不含外围成对双引号),最终输出两个字符的序列“1“”(不含外围成对双引号)。由此可见,本实施例利用DFST只需一次输入便可完成嵌套HTML实体的解码,通过恰当的状态转换和序列转换达到高性能及时的解码嵌套HTML实体,而无需重复输入输出从头扫描匹配,相比传统的方式提高了处理的效率。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供一种嵌套HTML实体解码装置,包括:
获取模块401,用于获取HTML文本,得到待解码字符串;
输入模块402,用于将待解码字符串输入确定有限状态转译器;
匹配转移模块403,用于按照待解码字符串中各字符的顺序以及对应前一个字符的状态位置,分别匹配各字符所满足的转移条件,根据转移条件对应的转换方式将各字符在确定有限状态转译器中进行状态转移;
输出模块404,用于当状态转移到确定有限状态转译器的最终状态集时,输出状态转移后的待解码字符串,得到解码字符串。
在一个实施例中,匹配转移模块403包括条件匹配子模块,用于在当前字符为待解码字符串中的首个字符时,从初始状态对应的转移条件中匹配首个字符满足的转移条件;在当前字符为待解码字符串中的非首个字符时,确定非首个字符对应的前一个字符状态转移后的状态位置;从状态位置对应的转移条件中匹配非首个字符满足的转移条件。
在一个实施例中,匹配转移模块403包括状态转移子模块,用于当转移条件附带序列坍缩转换标识时,在确定有限状态转译器中利用序列坍缩转换将字符从当前的状态转移到转移条件指向的状态;当转移条件未附带序列坍缩转换标识时,在确定有限状态转译器中利用等变转换将字符从当前的状态转移到转移条件指向的状态。
关于嵌套HTML实体解码装置的具体限定可以参见上文中对于嵌套HTML实体解码方法的限定,在此不再赘述。上述嵌套HTML实体解码装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个嵌套HTML实体解码方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。
在一个实施例中,提供一种计算机设备,该计算机设备可以是服务器,包括处理器,存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种嵌套HTML实体解码方法。示例性的,计算机程序可以被分割成一个或多个模块,一个或者多个模块被存储在存储器中,并由处理器执行以完成本发明。一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机装置中的执行过程。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本领域技术人员可以理解,本实施例中所示出的计算机设备结构,仅仅是与本发明方案相关的部分结构,并不构成对本发明所应用于其上的计算机设备的限定,具体的计算机设备可以包括更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取HTML文本,得到待解码字符串;
将待解码字符串输入确定有限状态转译器;
按照待解码字符串中各字符的顺序以及对应前一个字符的状态位置,分别匹配各字符所满足的转移条件,根据转移条件对应的转换方式将各字符在确定有限状态转译器中进行状态转移;
当状态转移到确定有限状态转译器的最终状态集时,输出状态转移后的待解码字符串,得到解码字符串。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在当前字符为待解码字符串中的首个字符时,从初始状态对应的转移条件中匹配首个字符满足的转移条件;在当前字符为待解码字符串中的非首个字符时,确定非首个字符对应的前一个字符状态转移后的状态位置;从状态位置对应的转移条件中匹配非首个字符满足的转移条件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当转移条件附带序列坍缩转换标识时,在确定有限状态转译器中利用序列坍缩转换将字符从当前的状态转移到转移条件指向的状态;当转移条件未附带序列坍缩转换标识时,在确定有限状态转译器中利用等变转换将字符从当前的状态转移到转移条件指向的状态。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取HTML文本,得到待解码字符串;
将待解码字符串输入确定有限状态转译器;
按照待解码字符串中各字符的顺序以及对应前一个字符的状态位置,分别匹配各字符所满足的转移条件,根据转移条件对应的转换方式将各字符在确定有限状态转译器中进行状态转移;
当状态转移到确定有限状态转译器的最终状态集时,输出状态转移后的待解码字符串,得到解码字符串。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在当前字符为待解码字符串中的首个字符时,从初始状态对应的转移条件中匹配首个字符满足的转移条件;在当前字符为待解码字符串中的非首个字符时,确定非首个字符对应的前一个字符状态转移后的状态位置;从状态位置对应的转移条件中匹配非首个字符满足的转移条件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当转移条件附带序列坍缩转换标识时,在确定有限状态转译器中利用序列坍缩转换将字符从当前的状态转移到转移条件指向的状态;当转移条件未附带序列坍缩转换标识时,在确定有限状态转译器中利用等变转换将字符从当前的状态转移到转移条件指向的状态。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种嵌套HTML实体解码方法,其特征在于,包括:
获取HTML文本,得到待解码字符串;
将所述待解码字符串输入确定有限状态转译器;
按照所述待解码字符串中各字符的顺序以及对应前一个字符的状态位置,分别匹配各字符所满足的转移条件,根据所述转移条件对应的转换方式将各所述字符在所述确定有限状态转译器中进行状态转移;
当状态转移到所述确定有限状态转译器的最终状态集时,输出状态转移后的待解码字符串,得到解码字符串;
所述按照所述待解码字符串中各字符的顺序以及对应前一个字符的状态位置,分别匹配各字符所满足的转移条件,包括:
在当前字符为所述待解码字符串中的首个字符时,从初始状态对应的转移条件中匹配所述首个字符满足的转移条件;
在当前字符为所述待解码字符串中的非首个字符时,确定所述非首个字符对应的前一个字符状态转移后的状态位置;
从所述状态位置对应的转移条件中匹配所述非首个字符满足的转移条件。
2.根据权利要求1所述的方法,其特征在于,所述根据所述转移条件对应的转换方式将各所述字符在所述确定有限状态转译器中进行状态转移,包括:
当所述转移条件附带序列坍缩转换标识时,在所述确定有限状态转译器中利用序列坍缩转换将所述字符从当前的状态转移到所述转移条件指向的状态;
当所述转移条件未附带序列坍缩转换标识时,在所述确定有限状态转译器中利用等变转换将所述字符从当前的状态转移到所述转移条件指向的状态。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述确定有限状态转译器的状态包括初始状态、第一状态、第二状态、第三状态和最终状态集;
所述初始状态转移到所述第一状态、所述第一状态转移到所述第一状态,以及所述第二状态转移到所述第一状态的转移条件均为第一转移条件;
所述初始状态、所述第一状态以及所述第二状态转移到所述最终状态集的转移条件均为第二转移条件;
所述初始状态转移到所述初始状态的转移条件为第三转移条件;
所述第一状态、所述第二状态转移到所述初始状态的转移条件均为第四转移条件,所述第三状态转移所述初始状态的转移条件为附带序列坍缩转换标识的第四转移条件;
所述第一状态转移到所述第二状态的转译条件为第五转移条件;
所述第二状态转移到所述第二状态的转移条件为第六转移条件,所述第二状态转移到所述第三状态的转移条件为第七转移条件;
所述第三状态转移到所述第一状态的转移条件为附带序列坍缩转换标识的第一转移条件,所述第三状态转移到所述第二状态的转移条件为附带序列坍缩转换标识的第八转移条件,所述第三状态转移到所述第三状态的转移条件为附带序列坍缩转换标识的第九转移条件。
4.根据权利要求3所述的方法,其特征在于,所述第一转移条件为所述字符是&;所述第二转移条件为所述字符不是结束信号;
所述第三转移条件为所述字符不是结束信号且不是字符&;
所述第四转移条件为所述字符不是结束信号、不是字符&且不能匹配HTML实体编码后续字符;
所述第五转移条件为所述字符不是结束信号、不是字符&但能匹配HTML实体编码后续字符;
所述第六转移条件为所述字符能匹配HTML实体编码后续字符、不是结束信号且不是实体的末尾字符;
所述第七转移条件为所述字符能匹配HTML实体编码后续字符且是实体的末尾字符;
所述第八转移条件为所述字符不是结束信号、不是字符&、能匹配HTML实体编码后续字符且不是实体的末尾字符;
所述第九转移条件为所述字符不是结束信号、不是字符&、能匹配HTML实体编码后续字符但是实体的末尾字符。
5.一种嵌套HTML实体解码装置,其特征在于,包括:
获取模块,用于获取HTML文本,得到待解码字符串;
输入模块,用于将所述待解码字符串输入确定有限状态转译器;
匹配转移模块,用于按照所述待解码字符串中各字符的顺序以及对应前一个字符的状态位置,分别匹配各字符所满足的转移条件,根据所述转移条件对应的转换方式将各所述字符在所述确定有限状态转译器中进行状态转移;
输出模块,用于当状态转移到所述确定有限状态转译器的最终状态集时,输出状态转移后的待解码字符串,得到解码字符串;
所述匹配转移模块包括条件匹配子模块,用于在当前字符为所述待解码字符串中的首个字符时,从初始状态对应的转移条件中匹配所述首个字符满足的转移条件;在当前字符为所述待解码字符串中的非首个字符时,确定所述非首个字符对应的前一个字符状态转移后的状态位置;从所述状态位置对应的转移条件中匹配所述非首个字符满足的转移条件。
6.根据权利要求5所述的装置,其特征在于,所述匹配转移模块包括状态转移子模块,用于当所述转移条件附带序列坍缩转换标识时,在所述确定有限状态转译器中利用序列坍缩转换将所述字符从当前的状态转移到所述转移条件指向的状态;当所述转移条件未附带序列坍缩转换标识时,在所述确定有限状态转译器中利用等变转换将所述字符从当前的状态转移到所述转移条件指向的状态。
7.一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,其特征在于,所述处理器用于执行所述计算机程序时实现权利要求1-4中任意一项所述的嵌套HTML实体解码方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-4中任意一项所述的嵌套HTML实体解码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210076706.0A CN114090928B (zh) | 2022-01-24 | 2022-01-24 | 嵌套html实体解码方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210076706.0A CN114090928B (zh) | 2022-01-24 | 2022-01-24 | 嵌套html实体解码方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114090928A CN114090928A (zh) | 2022-02-25 |
CN114090928B true CN114090928B (zh) | 2022-04-08 |
Family
ID=80309237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210076706.0A Active CN114090928B (zh) | 2022-01-24 | 2022-01-24 | 嵌套html实体解码方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114090928B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104834856A (zh) * | 2015-05-11 | 2015-08-12 | 福建六壬网安股份有限公司 | 一种新型正则表达式调用接口实现方式 |
CN110582760A (zh) * | 2017-03-29 | 2019-12-17 | 甲骨文国际公司 | 用于提供消息编码/解码作为服务的方法、系统和计算机可读介质 |
CN112784127A (zh) * | 2021-03-12 | 2021-05-11 | 清华大学 | 多字符串模式匹配方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190065613A1 (en) * | 2017-08-28 | 2019-02-28 | Go Daddy Operating Company, LLC | Generating a website from digital image metadata |
-
2022
- 2022-01-24 CN CN202210076706.0A patent/CN114090928B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104834856A (zh) * | 2015-05-11 | 2015-08-12 | 福建六壬网安股份有限公司 | 一种新型正则表达式调用接口实现方式 |
CN110582760A (zh) * | 2017-03-29 | 2019-12-17 | 甲骨文国际公司 | 用于提供消息编码/解码作为服务的方法、系统和计算机可读介质 |
CN112784127A (zh) * | 2021-03-12 | 2021-05-11 | 清华大学 | 多字符串模式匹配方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
javascript处理html的encode(转码)和decode(解码)总结;孤傲苍狼;《http://www.cnblogs.com/xdp-gacl/p/3722642.html》;20140512;第1-7页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114090928A (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3767516A1 (en) | Named entity recognition method, apparatus, and computer-readable recording medium | |
KR102466399B1 (ko) | 핵심 엔티티를 레이블링하는 방법, 장치 및 전자 기기 | |
JP5128629B2 (ja) | 品詞タグ付けシステム、品詞タグ付けモデルのトレーニング装置および方法 | |
CN111249736B (zh) | 代码处理方法及装置 | |
CN110704547B (zh) | 基于神经网络的关系抽取数据生成方法、模型及训练方法 | |
JPWO2009017131A1 (ja) | ε遷移を含まない非決定性有限オートマトン生成システムと方法およびプログラム | |
CN110134780B (zh) | 文档摘要的生成方法、装置、设备、计算机可读存储介质 | |
US20180365594A1 (en) | Systems and methods for generative learning | |
CN113032580B (zh) | 关联档案推荐方法、系统及电子设备 | |
WO2022142011A1 (zh) | 一种地址识别方法、装置、计算机设备及存储介质 | |
CN116702723A (zh) | 一种合同段落标注模型的训练方法、装置及设备 | |
CN111626065A (zh) | 神经机器翻译模型的训练方法、装置及存储介质 | |
CN114528394B (zh) | 一种基于掩码语言模型的文本三元组提取方法及装置 | |
US11972218B1 (en) | Specific target-oriented social media tweet sentiment analysis method | |
CN114090928B (zh) | 嵌套html实体解码方法、装置、计算机设备和存储介质 | |
CN112052329A (zh) | 文本摘要生成方法、装置、计算机设备及可读存储介质 | |
CN110502236B (zh) | 基于多尺度特征解码的前端代码生成方法、系统及设备 | |
CN115454423A (zh) | 静态网页的生成方法、生成装置、电子设备及存储介质 | |
JP6261669B2 (ja) | クエリ校正システムおよび方法 | |
WO2023092719A1 (zh) | 病历数据的信息抽取方法、终端设备及可读存储介质 | |
CN115186738A (zh) | 模型训练方法、装置和存储介质 | |
WO2022141855A1 (zh) | 文本正则方法、装置、电子设备及存储介质 | |
CN112286579B (zh) | 数据处理方法、装置、计算机可读存储介质和计算机设备 | |
CN113591493B (zh) | 翻译模型的训练方法及翻译模型的装置 | |
CN117010391A (zh) | 一种同时面向封闭域与开放域的联合属性抽取方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |