CN116468007A - 一种基于富文本数据的关键词替换方法及装置 - Google Patents
一种基于富文本数据的关键词替换方法及装置 Download PDFInfo
- Publication number
- CN116468007A CN116468007A CN202310441983.1A CN202310441983A CN116468007A CN 116468007 A CN116468007 A CN 116468007A CN 202310441983 A CN202310441983 A CN 202310441983A CN 116468007 A CN116468007 A CN 116468007A
- Authority
- CN
- China
- Prior art keywords
- keyword
- replaced
- target
- text data
- rich text
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000008569 process Effects 0.000 claims abstract description 15
- 238000010276 construction Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 abstract description 6
- 238000013473 artificial intelligence Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000033772 system development Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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/151—Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供的一种基于富文本数据的关键词替换方法及装置,可应用于人工智能领域或金融领域。本公开可以获得待替换关键词和目标关键词;基于目标富文本数据,对待替换关键词构建相应的next数组;基于KMP字符串匹配算法,利用待替换关键词和next数组,在目标富文本数据的非标签部分确定待替换关键词的起始位置;利用起始位置,将非标签部分中的待替换关键词替换为目标关键词。本公开利用KMP字符串匹配算法实现富文本数据的关键词匹配,可以高效对关键词进行替换操作,降低了关键词匹配过程的时间复杂度,从而减少了系统响应时间,进而提升了用户体验。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种基于富文本数据的关键词替换方法及装置。
背景技术
随着互联网技术的发展,为了满足分享者在平台编写博客,出现了富文本编辑器(Multi-function Text Editor,MTE),富文本编辑器提供类似于Microsoft Word的编辑功能,容易被不会编写HTML的用户或需要设置各种文本格式的用户所使用,因此,富文本编辑器也开始应用到软件系统开发场景中。
然而,由于软件系统开发场景中编辑出的富文本数据的文本长,若需对富文本数据中的某一关键词进行替换操作,使用常规的正则或高级语言提供的字符串查找函数进行关键词匹配的时间复杂度高,增加了系统响应时间,降低了用户体验。
因此,如何提高富文本数据的中的关键词替换效率,成为本领域技术人员急需解决的技术问题。
发明内容
鉴于上述问题,本公开提供一种克服上述问题或者至少部分地解决上述问题的一种基于富文本数据的关键词替换方法及装置,技术方案如下:
一种基于富文本数据的关键词替换方法,包括:
获得待替换关键词和目标关键词;
基于目标富文本数据,对所述待替换关键词构建相应的next数组;
基于KMP字符串匹配算法,利用所述待替换关键词和所述next数组,在目标富文本数据的非标签部分确定所述待替换关键词的起始位置;
利用所述起始位置,将所述非标签部分中的所述待替换关键词替换为所述目标关键词。
可选的,所述基于KMP字符串匹配算法,利用所述待替换关键词和所述next数组,在目标富文本数据的非标签部分确定所述待替换关键词的起始位置,包括:
遍历目标富文本数据中的字符,确定所述目标富文本数据的非标签部分;
基于KMP字符串匹配算法,利用所述待替换关键词在所述非标签部分进行遍历搜索,并在所述遍历搜索过程中基于所述next数组进行回退控制;
在所述非标签部分搜索到所述待替换关键词的情况下,将所述待替换关键词在所述非标签部分的最后一个字符的位置确定为结束位置;
利用所述结束位置和所述待替换关键词的字符长度,在所述非标签部分确定所述待替换关键词的起始位置。
可选的,所述遍历目标富文本数据中的字符,确定所述目标富文本数据的非标签部分,包括:
在所述目标富文本数据中遍历到第一个左括号字符之后,若先遍历到右括号字符,则将所述目标富文本数据中所述右括号字符之后的部分确定为非标签部分,若先遍历到第二个左括号字符,则将所述目标富文本数据中所述第一个左括号字符后的部分确定为非标签部分。
可选的,所述利用所述起始位置,将所述非标签部分中的所述待替换关键词替换为所述目标关键词,包括:
基于所述起始位置,在所述非标签部分截取左字符串文本和右字符串文本;
将所述左字符串文本、所述右字符串文本和所述目标关键词进行拼接;
将所述非标签部分中的所述待替换关键词替换为拼接后的所述目标关键词。
可选的,在将所述左字符串文本、所述右字符串文本和所述目标关键词进行拼接之前,所述方法还包括:
对所述目标关键词进行高亮标记。
一种基于富文本数据的关键词替换装置,包括:关键词获得单元、数组构建单元、起始位置确定单元和关键词替换单元,
所述关键词获得单元,用于获得待替换关键词和目标关键词;
所述数组构建单元,用于基于目标富文本数据,对所述待替换关键词构建相应的next数组;
所述起始位置确定单元,用于基于KMP字符串匹配算法,利用所述待替换关键词和所述next数组,在目标富文本数据的非标签部分确定所述待替换关键词的起始位置;
所述关键词替换单元,用于利用所述起始位置,将所述非标签部分中的所述待替换关键词替换为所述目标关键词。
可选的,所述起始位置确定单元包括:非标签部分确定子单元、搜索子单元、结束位置确定子单元和起始位置确定子单元,
所述非标签部分确定子单元,用于遍历目标富文本数据中的字符,确定所述目标富文本数据的非标签部分;
所述搜索子单元,用于基于KMP字符串匹配算法,利用所述待替换关键词在所述非标签部分进行遍历搜索,并在所述遍历搜索过程中基于所述next数组进行回退控制;
所述结束位置确定子单元,用于在所述非标签部分搜索到所述待替换关键词的情况下,将所述待替换关键词在所述非标签部分的最后一个字符的位置确定为结束位置;
所述起始位置确定子单元,用于利用所述结束位置和所述待替换关键词的字符长度,在所述非标签部分确定所述待替换关键词的起始位置。
可选的,所述非标签部分确定子单元,具体用于在所述目标富文本数据中遍历到第一个左括号字符之后,若先遍历到右括号字符,则将所述目标富文本数据中所述右括号字符之后的部分确定为非标签部分,若先遍历到第二个左括号字符,则将所述目标富文本数据中所述第一个左括号字符后的部分确定为非标签部分。
可选的,所述关键词替换单元包括:左右字符串截取子单元、拼接子单元和替换子单元,
所述左右字符串截取子单元,用于基于所述起始位置,在所述非标签部分截取左字符串文本和右字符串文本;
所述拼接子单元,用于将所述左字符串文本、所述右字符串文本和所述目标关键词进行拼接;
所述替换子单元,用于将所述非标签部分中的所述待替换关键词替换为拼接后的所述目标关键词。
可选的,所述关键词替换单元还包括:高亮标记子单元,
所述高亮标记子单元,用于所述拼接子单元将所述左字符串文本、所述右字符串文本和所述目标关键词进行拼接之前,对所述目标关键词进行高亮标记。
借由上述技术方案,本公开提供的一种基于富文本数据的关键词替换方法及装置,可应用于人工智能领域或金融领域。本公开可以获得待替换关键词和目标关键词;基于目标富文本数据,对待替换关键词构建相应的next数组;基于KMP字符串匹配算法,利用待替换关键词和next数组,在目标富文本数据的非标签部分确定待替换关键词的起始位置;利用起始位置,将非标签部分中的待替换关键词替换为目标关键词。本公开利用KMP字符串匹配算法实现富文本数据的关键词匹配,可以高效对关键词进行替换操作,降低了关键词匹配过程的时间复杂度,从而减少了系统响应时间,进而提升了用户体验。
上述说明仅是本公开技术方案的概述,为了能够更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本公开的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本公开实施例提供的基于富文本数据的关键词替换方法的一种实施方式的流程示意图;
图2示出了本公开实施例提供的基于富文本数据的关键词替换方法的另一种实施方式的流程示意图;
图3示出了本公开实施例提供的基于富文本数据的关键词替换方法的另一种实施方式的流程示意图;
图4示出了本公开实施例提供的基于富文本数据的关键词替换装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图1所示,本公开实施例提供的基于富文本数据的关键词替换方法的一种实施方式的流程示意图,该方法可以包括:
S100、获得待替换关键词和目标关键词。
S200、基于目标富文本数据,对待替换关键词构建相应的next数组。
其中,next数组是一个长度为n(模式串的长度)的数组。next数组的下标标识模式串的子串的长度,子串长度不为0,next数组的数值是从next[1]至next[n-1],即最大子串的长度。next数组里记录的是子串信息,从长度为1的子串开始,到n-1子串结束,记录了它们前后缀最大公共子串的长度(这个子串是指前后缀的子串)。本公开实施例可以根据待替换关键词构建next数组,以便匹配失败时能保证不回退。
具体的,本公开实施例可以对待替换关键词进行分析,初始化一个长度为K的next数组,遍历该next数组。在遍历至该next数组的第i位置时,判断以i-1位置结尾的字符串与以0位置开始的字符串是否相同。假设带替换关键词与目标富文本数据之间相同的字符串最大长度为n,即:K[n-1]==K[i-1]&&K[n-2]==K[i-2]....&&K[n]==K[i],那么next[i]的值为n。由于每个i对应的n的值在next数组中保存,所以在计算next[i]的值时,只需要比对K[i-1]与K[next[i-1]]的值是否相等,如果相等next[i]=next[i-1]+1,如果不相等next[i]=0。
例如:假设待替换关键词K为“abcdabce”,目标富文本数据T为“<span title="abcdeabc">abcdabcdabce</span>”,首先默认next[0]=-1、next[1]=0,因为i=0时i-1无效,i=1时i-1只能与自身比对无意义。当i=2时,K[i-1]不等于K[next[i-1]],所以next[2]=0;当i=5时,K[i-1]=K[4]="a",next[i-1]=0,K[next[i-1]]=K[0]="a",K[4]=k[0],所以next[5]=next[4]+1=1。最终得到next数组为[0,0,0,0,0,1,2,3,4,5,6,7]。
S300、基于KMP字符串匹配算法,利用待替换关键词和next数组,在目标富文本数据的非标签部分确定待替换关键词的起始位置。
本公开实施例可以将待替换关键词与目标富文本数据进行遍历比对,同时过滤目标富文本数据的标签部分中的关键词,利用next数组控制遍历比对过程中的回退操作。例如:在目标富文本数据为“<span title="ZG银行-HF分中心">...ZG银行...</span>”中,需要实际进行匹配的是html标签外的“ZG银行”,而不是“title”的属性值“ZG银行”。
可选的,基于图1所示方法,如图2所示,本公开实施例提供的基于富文本数据的关键词替换方法的另一种实施方式的流程示意图,步骤S300可以包括:
S310、遍历目标富文本数据中的字符,确定目标富文本数据的非标签部分。
可选的,本公开实施例可以在目标富文本数据中遍历到第一个左括号字符之后,若先遍历到右括号字符,则将目标富文本数据中右括号字符之后的部分确定为非标签部分,若先遍历到第二个左括号字符,则将目标富文本数据中第一个左括号字符后的部分确定为非标签部分。
为了便于理解,此处通过举例进行说明:首先遍历目标富文本数据的字符,假设当前遍历到目标富文本数据j位置,如果该j位置的字符为“<”,这确定当前遍历范围仍在标签部分,继续遍历j+1位置,直至遍历到“>”,则确定退出标签部分,可以开始与待替换关键词进行遍历搜索。若在遍历到“>”之前先遍历到了另一个“<”,则回退至第一个“<”的位置,开始与待替换关键词进行遍历搜索。
S320、基于KMP字符串匹配算法,利用待替换关键词在非标签部分进行遍历搜索,并在遍历搜索过程中基于next数组进行回退控制。
S330、在非标签部分搜索到待替换关键词的情况下,将待替换关键词在非标签部分的最后一个字符的位置确定为结束位置。
S340、利用结束位置和待替换关键词的字符长度,在非标签部分确定待替换关键词的起始位置。
为了便于理解,此处通过举例进行说明:假设目标富文本数据为T,待替换关键词为K,若当前遍历至关键词K的x位置,判断T[j]是否与K[x]相等,如果相等,x与j均加1,继续对比T和K的下一位置。如果不相等,查询next[x]的值,判断x是否需要回退,如果next[x]不等于-1,就回退,即x=next[x],继续对比T[j]与K[x],如果next[x]等于-1,那么j加1,继续对比T的下一位置与K的当前位置。如果当前x的值等于关键词K的长度-1,即命中关键词,此时位置j为待替换关键词的结束位置,j-i为待替换关键词的起始位置。按照上述步骤直到遍历完T。
S400、利用起始位置,将非标签部分中的待替换关键词替换为目标关键词。
可选的,基于图1所示方法,如图3所示,本公开实施例提供的基于富文本数据的关键词替换方法的另一种实施方式的流程示意图,步骤S400可以包括:
S410、基于起始位置,在非标签部分截取左字符串文本和右字符串文本。
S420、将左字符串文本、右字符串文本和目标关键词进行拼接。
具体的,本公开实施例可以根据起始位置分别进行截取得到左字符串文本leftStr和右字符串文本rightStr,并将左字符串文本leftStr、右字符串文本rightStr和目标关键词拼接为“leftStr+目标关键词+rightStr”。
可选的,在步骤S420之前,本公开实施例还可以对目标关键词进行高亮标记。
本公开实施例可以对目标关键词使用“span”标签进行包裹,对目标关键词进行高亮标记。例如:对目标关键词使用黄色字体颜色进行高亮标记,则高亮标记的结果为“<spanstyle="color:yellow">目标关键词</span>”。
S430、将非标签部分中的待替换关键词替换为拼接后的目标关键词。
在现有技术中通常使用正则或高级语言提供的字符串查找函数,如java的indexOf方法。由于正则表达式可读性差,虽然功能很强但性能受正则表达式本身和开发语言的正则解析引擎影响。Java的indexOf方法通过嵌套循环实现的暴力匹配,时间复杂度是O(n×m),对于长文本匹配,性能下降明显。本公开基于KMP字符串匹配算法在匹配过程中掌握的已有的数据信息,避免成功匹配部分关键词且最终匹配失败后,需要回退到刚开始匹配成功的位置的下一位置重新匹配,时间复杂度缩短到O(n),对于大文本搜索极大的缩短了系统响应时间,提高用户体验。
本公开提供的一种基于富文本数据的关键词替换方法,可应用于人工智能领域或金融领域。本公开可以获得待替换关键词和目标关键词;基于目标富文本数据,对待替换关键词构建相应的next数组;基于KMP字符串匹配算法,利用待替换关键词和next数组,在目标富文本数据的非标签部分确定待替换关键词的起始位置;利用起始位置,将非标签部分中的待替换关键词替换为目标关键词。本公开利用KMP字符串匹配算法实现富文本数据的关键词匹配,可以高效对关键词进行替换操作,降低了关键词匹配过程的时间复杂度,从而减少了系统响应时间,进而提升了用户体验。
虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
与上述方法实施例相对应,本公开实施例还提供一种基于富文本数据的关键词替换装置,其结构如图4所示,可以包括:关键词获得单元100、数组构建单元200、起始位置确定单元300和关键词替换单元400。
关键词获得单元100,用于获得待替换关键词和目标关键词。
数组构建单元200,用于基于目标富文本数据,对待替换关键词构建相应的next数组。
起始位置确定单元300,用于基于KMP字符串匹配算法,利用待替换关键词和next数组,在目标富文本数据的非标签部分确定待替换关键词的起始位置。
关键词替换单元400,用于利用起始位置,将非标签部分中的待替换关键词替换为目标关键词。
可选的,起始位置确定单元300包括:非标签部分确定子单元、搜索子单元、结束位置确定子单元和起始位置确定子单元。
非标签部分确定子单元,用于遍历目标富文本数据中的字符,确定目标富文本数据的非标签部分。
搜索子单元,用于基于KMP字符串匹配算法,利用待替换关键词在非标签部分进行遍历搜索,并在遍历搜索过程中基于next数组进行回退控制。
结束位置确定子单元,用于在非标签部分搜索到待替换关键词的情况下,将待替换关键词在非标签部分的最后一个字符的位置确定为结束位置。
起始位置确定子单元,用于利用结束位置和待替换关键词的字符长度,在非标签部分确定待替换关键词的起始位置。
可选的,非标签部分确定子单元,具体用于在目标富文本数据中遍历到第一个左括号字符之后,若先遍历到右括号字符,则将目标富文本数据中右括号字符之后的部分确定为非标签部分,若先遍历到第二个左括号字符,则将目标富文本数据中第一个左括号字符后的部分确定为非标签部分。
可选的,关键词替换单元400包括:左右字符串截取子单元、拼接子单元和替换子单元。
左右字符串截取子单元,用于基于起始位置,在非标签部分截取左字符串文本和右字符串文本。
拼接子单元,用于将左字符串文本、右字符串文本和目标关键词进行拼接。
替换子单元,用于将非标签部分中的待替换关键词替换为拼接后的目标关键词。
可选的,关键词替换单元400还包括:高亮标记子单元,
高亮标记子单元,用于拼接子单元将左字符串文本、右字符串文本和目标关键词进行拼接之前,对目标关键词进行高亮标记。
本公开提供的一种基于富文本数据的关键词替换装置,可应用于人工智能领域或金融领域。本公开可以获得待替换关键词和目标关键词;基于目标富文本数据,对待替换关键词构建相应的next数组;基于KMP字符串匹配算法,利用待替换关键词和next数组,在目标富文本数据的非标签部分确定待替换关键词的起始位置;利用起始位置,将非标签部分中的待替换关键词替换为目标关键词。本公开利用KMP字符串匹配算法实现富文本数据的关键词匹配,可以高效对关键词进行替换操作,降低了关键词匹配过程的时间复杂度,从而减少了系统响应时间,进而提升了用户体验。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
所述基于富文本数据的关键词替换装置包括处理器和存储器,上述关键词获得单元100、数组构建单元200、起始位置确定单元300和关键词替换单元400等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来利用KMP字符串匹配算法实现富文本数据的关键词匹配,高效对关键词进行替换操作。
本公开实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现所述基于富文本数据的关键词替换方法。
本公开实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述基于富文本数据的关键词替换方法。
本公开实施例提供了一种电子设备,电子设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,处理器、存储器1002通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述的基于富文本数据的关键词替换方法。本文中的电子设备可以是服务器、PC、PAD、手机等。
本公开还提供了一种计算机程序产品,当在电子设备上执行时,适于执行初始化有基于富文本数据的关键词替换方法步骤的程序。
需要说明的是,本公开提供的一种基于富文本数据的关键词替换方法及装置可用于人工智能领域或金融领域。上述仅为示例,并不对本公开提供的一种基于富文本数据的关键词替换方法及装置的应用领域进行限定。
本公开是参照根据本公开实施例的方法、装置、电子设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,电子设备包括一个或多个处理器(CPU)、存储器和总线。电子设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
在本公开的描述中,需要理解的是,如若涉及术语“上”、“下”、“前”、“后”、“左”和“右”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的位置或元件必须具有特定方位、以特定的方位构成和操作,因此不能理解为本公开的限制。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本公开的实施例可提供为方法、系统或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本公开的实施例而已,并不用于限制本公开。对于本领域技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的权利要求范围之内。
Claims (10)
1.一种基于富文本数据的关键词替换方法,其特征在于,包括:
获得待替换关键词和目标关键词;
基于目标富文本数据,对所述待替换关键词构建相应的next数组;
基于KMP字符串匹配算法,利用所述待替换关键词和所述next数组,在目标富文本数据的非标签部分确定所述待替换关键词的起始位置;
利用所述起始位置,将所述非标签部分中的所述待替换关键词替换为所述目标关键词。
2.根据权利要求1所述的方法,其特征在于,所述基于KMP字符串匹配算法,利用所述待替换关键词和所述next数组,在目标富文本数据的非标签部分确定所述待替换关键词的起始位置,包括:
遍历目标富文本数据中的字符,确定所述目标富文本数据的非标签部分;
基于KMP字符串匹配算法,利用所述待替换关键词在所述非标签部分进行遍历搜索,并在所述遍历搜索过程中基于所述next数组进行回退控制;
在所述非标签部分搜索到所述待替换关键词的情况下,将所述待替换关键词在所述非标签部分的最后一个字符的位置确定为结束位置;
利用所述结束位置和所述待替换关键词的字符长度,在所述非标签部分确定所述待替换关键词的起始位置。
3.根据权利要求2所述的方法,其特征在于,所述遍历目标富文本数据中的字符,确定所述目标富文本数据的非标签部分,包括:
在所述目标富文本数据中遍历到第一个左括号字符之后,若先遍历到右括号字符,则将所述目标富文本数据中所述右括号字符之后的部分确定为非标签部分,若先遍历到第二个左括号字符,则将所述目标富文本数据中所述第一个左括号字符后的部分确定为非标签部分。
4.根据权利要求1所述的方法,其特征在于,所述利用所述起始位置,将所述非标签部分中的所述待替换关键词替换为所述目标关键词,包括:
基于所述起始位置,在所述非标签部分截取左字符串文本和右字符串文本;
将所述左字符串文本、所述右字符串文本和所述目标关键词进行拼接;
将所述非标签部分中的所述待替换关键词替换为拼接后的所述目标关键词。
5.根据权利要求4所述的方法,其特征在于,在将所述左字符串文本、所述右字符串文本和所述目标关键词进行拼接之前,所述方法还包括:
对所述目标关键词进行高亮标记。
6.一种基于富文本数据的关键词替换装置,其特征在于,包括:关键词获得单元、数组构建单元、起始位置确定单元和关键词替换单元,
所述关键词获得单元,用于获得待替换关键词和目标关键词;
所述数组构建单元,用于基于目标富文本数据,对所述待替换关键词构建相应的next数组;
所述起始位置确定单元,用于基于KMP字符串匹配算法,利用所述待替换关键词和所述next数组,在目标富文本数据的非标签部分确定所述待替换关键词的起始位置;
所述关键词替换单元,用于利用所述起始位置,将所述非标签部分中的所述待替换关键词替换为所述目标关键词。
7.根据权利要求6所述的装置,其特征在于,所述起始位置确定单元包括:非标签部分确定子单元、搜索子单元、结束位置确定子单元和起始位置确定子单元,
所述非标签部分确定子单元,用于遍历目标富文本数据中的字符,确定所述目标富文本数据的非标签部分;
所述搜索子单元,用于基于KMP字符串匹配算法,利用所述待替换关键词在所述非标签部分进行遍历搜索,并在所述遍历搜索过程中基于所述next数组进行回退控制;
所述结束位置确定子单元,用于在所述非标签部分搜索到所述待替换关键词的情况下,将所述待替换关键词在所述非标签部分的最后一个字符的位置确定为结束位置;
所述起始位置确定子单元,用于利用所述结束位置和所述待替换关键词的字符长度,在所述非标签部分确定所述待替换关键词的起始位置。
8.根据权利要求7所述的装置,其特征在于,所述非标签部分确定子单元,具体用于在所述目标富文本数据中遍历到第一个左括号字符之后,若先遍历到右括号字符,则将所述目标富文本数据中所述右括号字符之后的部分确定为非标签部分,若先遍历到第二个左括号字符,则将所述目标富文本数据中所述第一个左括号字符后的部分确定为非标签部分。
9.根据权利要求6所述的装置,其特征在于,所述关键词替换单元包括:左右字符串截取子单元、拼接子单元和替换子单元,
所述左右字符串截取子单元,用于基于所述起始位置,在所述非标签部分截取左字符串文本和右字符串文本;
所述拼接子单元,用于将所述左字符串文本、所述右字符串文本和所述目标关键词进行拼接;
所述替换子单元,用于将所述非标签部分中的所述待替换关键词替换为拼接后的所述目标关键词。
10.根据权利要求9所述的装置,其特征在于,所述关键词替换单元还包括:高亮标记子单元,
所述高亮标记子单元,用于所述拼接子单元将所述左字符串文本、所述右字符串文本和所述目标关键词进行拼接之前,对所述目标关键词进行高亮标记。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310441983.1A CN116468007A (zh) | 2023-04-23 | 2023-04-23 | 一种基于富文本数据的关键词替换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310441983.1A CN116468007A (zh) | 2023-04-23 | 2023-04-23 | 一种基于富文本数据的关键词替换方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116468007A true CN116468007A (zh) | 2023-07-21 |
Family
ID=87175037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310441983.1A Pending CN116468007A (zh) | 2023-04-23 | 2023-04-23 | 一种基于富文本数据的关键词替换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116468007A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116842125A (zh) * | 2023-08-28 | 2023-10-03 | 武汉乾云软件开发中心(有限合伙) | 一种富媒体信息的存储方法及自然语言智能检索方法 |
-
2023
- 2023-04-23 CN CN202310441983.1A patent/CN116468007A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116842125A (zh) * | 2023-08-28 | 2023-10-03 | 武汉乾云软件开发中心(有限合伙) | 一种富媒体信息的存储方法及自然语言智能检索方法 |
CN116842125B (zh) * | 2023-08-28 | 2023-12-26 | 武汉乾云软件开发中心(有限合伙) | 一种富媒体信息的存储方法及自然语言智能检索方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11698937B2 (en) | Robust location, retrieval, and display of information for dynamic networks | |
CN109558479B (zh) | 一种规则匹配方法、装置、设备及存储介质 | |
US5978801A (en) | Character and/or character-string retrieving method and storage medium for use for this method | |
US8276060B2 (en) | System and method for annotating documents using a viewer | |
US20030140045A1 (en) | Providing a server-side scripting language and programming tool | |
US7376650B1 (en) | Method and system for redirecting a request using redirection patterns | |
CN116468007A (zh) | 一种基于富文本数据的关键词替换方法及装置 | |
JP3023943B2 (ja) | 文書検索装置 | |
CN109299352B (zh) | 搜索引擎中网站数据的更新方法、装置和搜索引擎 | |
CN109144514B (zh) | Json格式数据解析存储方法及装置 | |
CN110851797A (zh) | 基于区块链的作品创作方法及装置、电子设备 | |
CN116627429A (zh) | 一种汇编代码生成方法、装置及电子设备和存储介质 | |
CN115098062A (zh) | 一种代码生成方法及装置 | |
CN111625728B (zh) | 一种网页文档生成检索目录的方法、装置、设备和介质 | |
CN114969504A (zh) | 结合用户兴趣分析的大数据处理方法及系统 | |
CN100462973C (zh) | Xml文件预处理方法、装置、读取方法和装置 | |
CN105069175A (zh) | 一种基于版本控制系统的信息检索方法及服务器 | |
CN115795193A (zh) | 页面数据提取方法、页面自动化测试方法 | |
US20190266255A1 (en) | Integrated universal file converter | |
CN114818688A (zh) | 一种文本关键内容提取方法、装置及服务器 | |
CN113836367A (zh) | 一种字符反向匹配的方法及装置 | |
US8788483B2 (en) | Method and apparatus for searching in a memory-efficient manner for at least one query data element | |
US20150324333A1 (en) | Systems and methods for automatically generating hyperlinks | |
JP3427679B2 (ja) | 単語検索装置及び単語検索プログラムを記録したコンピュータ読取り可能な記録媒体 | |
CN113127861A (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 |