CN109492218B - 一种基于确定有穷状态机的同义词快速替换方法 - Google Patents

一种基于确定有穷状态机的同义词快速替换方法 Download PDF

Info

Publication number
CN109492218B
CN109492218B CN201811230063.0A CN201811230063A CN109492218B CN 109492218 B CN109492218 B CN 109492218B CN 201811230063 A CN201811230063 A CN 201811230063A CN 109492218 B CN109492218 B CN 109492218B
Authority
CN
China
Prior art keywords
synonym
hash table
replaced
dfa
words
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
Application number
CN201811230063.0A
Other languages
English (en)
Other versions
CN109492218A (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.)
Inspur Software Co Ltd
Original Assignee
Inspur Software 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 Inspur Software Co Ltd filed Critical Inspur Software Co Ltd
Priority to CN201811230063.0A priority Critical patent/CN109492218B/zh
Publication of CN109492218A publication Critical patent/CN109492218A/zh
Application granted granted Critical
Publication of CN109492218B publication Critical patent/CN109492218B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/247Thesauruses; Synonyms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于确定有穷状态机的同义词快速替换方法,具体方法包括首先将同义词字符列表通过有穷状态机DFA构建同义词哈希表;然后利用同义词哈希表查找并快速定位待替换词,最后将待替换词一起替换。本发明的一种基于确定有穷状态机的同义词快速替换方法该方法相对于传统的替代方法,查询速度更快,适合大规模语料的同义词替换,为语料相似度的计算提供了基础。

Description

一种基于确定有穷状态机的同义词快速替换方法
技术领域
本发明涉及自然语言处理领域,具体涉及到智能问答中含有同义词的语料相似度计算中,对语料同义词的快速替换。
背景技术
在一个字符串中查找是否存在另外一个字符串最直观的算法是朴素算法。假设长串L的字符数量为n,子串l的长度为m,在长串L中查找子串需要把每个字符都做比较,最终的时间复杂度为o(n*m);在长串L中查找S个不同的子串 l1,l2LlS,则时间复杂度为o(n*S*m)。朴素算法的优点是思路简单易于理解,但是存在的弊端是存在大量的重复计算。
经典字符匹配算法是KMP算法,该算法是典型的字符串查找算法。假设长串 L的字符数量为n,子串l的长度为m,则查找的时间复杂度为o(n+m),而对于S 个子串l1,l2LlS,确认每个子串是否在长串L中的时间复杂度为o(S(n+m))。KMP算法的优点是在单个子串匹配时优势明显,但存在的弊端是在多字符串匹配时,其时间复杂度与子串的数量成正相关。
DFA全称Deterministic Finite Automaton,即确定有穷状态机。DFA算法在敏感词搜索中应用较为广泛,可以将一个句子或一篇文章中的敏感词快速替换为特殊字符“*”,但存在的弊端是像同义词这种多对多的替换几乎没有。
发明内容
本发明的技术任务是针对以上不足之处,提供一种基于确定有穷状态机的同义词快速替换方法。
本发明解决其技术问题所采用的技术方案是:一种基于确定有穷状态机的同义词快速替换方法,首先将同义词字符列表通过有穷状态机DFA构建同义词哈希表;然后利用同义词哈希表查找并快速定位待替换词,最后将待替换词一起替换。
进一步,优选的方法为,所述的查找流程包括遍历语料中的每一个字符,以字符为键值在DFA哈希表中查找同义词,若只匹配到一个字符,则在DFA哈希表中找到相应的子树继续匹配查询,直到完整的字符被完全匹配出来,匹配后则记录待替换词,最后将语料中的待替换词一起全部替换;
若语料中只包含同义词哈希表中的一个字符,但不包含完整的同义词,则该词不会被匹配出来。
进一步,优选的方法为,所述的同义词哈希表的构造流程包括:
所述的DFA哈希表的构造流程包括:
是否遍历待替换词列表,若是,结束;若否,则进入下一步;
是否遍历待替换词所有字符;若是,则构建叶子节点;若否,则进入下一步;
根据字符获取子表;判断子表是否存在,若不存在,则构建新的子节点,若存在,则DFA哈希表为当前子表。
进一步,优选的方法为,所述的DFA哈希表适用于中文字符串或英文字符串。
一种基于确定有穷状态机的同义词快速替换系统,包括哈希表构造模块、同义词查找模块和同义词替换模块;
所述的哈希表构造模块,用于将同义词字符列表通过有穷状态机DFA构建同义词哈希表;
所述的同义词查找模块,用于查找并快速定位待替换词;
所述的同义词替换模块,用于替换待替换词。
进一步,优选的结构为,所述的同义词查找模块,用于在查找过程中,如果当前状态没有与所述待匹配信息的字符相匹配的下一状态,跳转到所述当前状态的失败状态继续匹配。
进一步,优选的结构为,所述的哈希表构造模块,遍历单元、获取单元以及构建单元;
遍历单元,用于遍历待替换词列表以及待替换词的所有字符;
获取单元,用于根据字符获取子表;
构建单元,用于构建叶子节点。
一种基于确定有穷状态机的同义词快速替换系统的服务器,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-4中任一所述的方法。
本发明的一种基于确定有穷状态机的同义词快速替换方法和现有技术相比,有益效果如下:
1、本发明是基于有穷状态机,将待匹配信息在由预设的关键字构成的有穷状态及DFA中进行匹配,由此关键字的匹配变成了状态机的跳转;在匹配过程中,如果当前状态没有与所述待匹配信息的字符相匹配的下一状态,则跳转到所述当前状态的失败状态继续匹配,所述待匹配信息的匹配过程只需要随着所述DFA状态一步一步地往下一状态跳转,无需返回上一状态以匹配其他关键字,从而可以确保所述待匹配信息只需要扫描一遍即可完成匹配,极大地提高了匹配效率;
2、有状态机的速度优势,又对有穷状态机进行改进的多同义词替换算法,可以将多同义词替换时间复杂度由o(S(n+m))提高到o(n+m);
3、为智能问答语料相似度计算节约了时间,并为语料词向量计算扫除同义词干扰;
4、适用于中文字符串、英文字符串或其他特殊文本字符串的处理。
附图说明
下面结合附图对本发明进一步说明。
附图1为DFA哈希表链表结构图;
附图2为DFA哈希表的构造流程图;
附图3为同义词替换流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
DFA全称为:Deterministic Finite Automaton,即确定有穷状态机。有一个有限状态集合和一些从一个状态通向另一个状态的边,每条边上标记有一个符号,其中一个状态是初态,某些状态是终态。但不同于不确定的有限自动机,DFA中不会有从同一状态出发的两条边标志有相同的符号。简单点说就是,它是是通过event和当前的state得到下一个state,即event+state=nextstate。理解为系统中有多个节点,通过传递进入的event,来确定走哪个路由至另一个节点,而节点是有限的。
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数 f(key)为哈希(Hash)函数。
本发明为一种基于确定有穷状态机的同义词快速替换方法,有状态机的速度优势,又对有穷状态机进行改进的多同义词替换算法,其中自然语言文本字符串的多子串的替换,多子串的哈希表构造可以是中文、英文或其他特殊字符,因此该方法适用于中文字符串、因为或其他特殊文本字符串的处理;解决了DFA 算法中没有同义词这种多对多的替换的情况。
实施例1:
首先进行同义词DFA哈希表构造:
以下面一组同义词为例,“指不胜屈”为同义词的替代词,“不计其数”、“不可胜数”、“举不胜举”为语料中待替代的同义词,以替代词列表为基础构建DFA 哈希表如附图1所示。
用json结构表示如下所示:
Figure BDA0001836922420000041
Figure BDA0001836922420000051
构造DFA哈希表的流程如附图2所示。
DFA哈希表Java代码实现如下:
Figure DEST_PATH_IMAGE001
然后,查找并替换同义词:
以中文语料“世博会建筑中的名作佳构是指不胜屈的”为例,查找并替换语料中的同义词。遍历语料中的每一个字符,以字符为健值在DFA哈希表中查找同义词。当匹配到“指”时,中DFA哈希表中找到该子树继续匹配查询,直到“指不胜屈”被完全匹配出来,匹配后则记录待替换词,最后一起将语料中的待替换词全部替换。
若语料中只包含DFA哈希表中的一个字符,但不包含完整的同义词,则该词不会被匹配出来。例如,语料“资金已经按时到位,桥梁竣工指日可待了”中包含哈希表的健值“指”,但其子树中并没有键值“日”的子树,所有并不会把单个字符匹配出。其实现流程如附图3所示。
基于DFA的同义词替换方法的Java代码实现如下:
Figure DEST_PATH_IMAGE002
假设知识库中待替换的知识条目有K条,平均每条有
Figure BDA0001836922420000072
个字符,待匹配总字符数为n,即
Figure BDA0001836922420000073
同义词词库有S个关键同义词,每个关键同义词对应
Figure BDA0001836922420000079
个同义词,每个同义词数量为μ个,同义词词库总字符为m;则本发明从构建DFA 哈希表到匹配并替换同义词的时间复杂度为:
Figure BDA0001836922420000074
由于DFA哈希表是一次构建多次使用,所以对于单条语料的同义词替换,本发明的时间复杂度为
Figure BDA0001836922420000075
以经典的KMP字符串匹配算法为例,单条语料KMP算法匹配一个同义词的时间复杂度为
Figure BDA0001836922420000076
一条语料中往往有多个同义词,因此匹配同义词库中的所有同义词的时间复杂度为
Figure BDA0001836922420000077
将整个知识库的语料进行同义词替换的时间复杂度为
Figure BDA0001836922420000078
由表1-1的对比可以看出本发明的方法无论在单条语料还是整个知识库的同义词替换,在时间上远优于传统的方法。
表1-1
Figure BDA0001836922420000081
本发明的方法相对于传统的替代方法,查询速度更快,适合大规模语料的同义词替换,为语料相似度的计算提供了基础。为智能问答语料相似度计算节约了时间,并为语料词向量计算扫除同义词干扰。
本发明是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

Claims (3)

1.一种基于确定有穷状态机的同义词快速替换方法,其特征在于,首先将同义词字符列表通过有穷状态机DFA构建同义词哈希表;然后利用同义词哈希表查找并快速定位待替换词,最后将待替换词一起替换;
所述的查找流程包括遍历语料中的每一个字符,以字符为键值在DFA哈希表中查找同义词,若只匹配到一个字符,则在同义词哈希表中找到相应的子树继续匹配查询,直到完整的字符被完全匹配出来,匹配后则记录待替换词,最后将语料中的待替换词一起全部替换;
若语料中只包含DFA哈希表中的一个字符,但不包含完整的同义词,则该词不会被匹配出来;
所述的DFA哈希表的构造流程包括:
是否遍历待替换词列表,若是,结束;若否,则进入下一步;
是否遍历待替换词所有字符;若是,则构建叶子节点;若否,则进入下一步;
根据字符获取子表;判断子表是否存在,若不存在,则构建新的子节点,若存在,则DFA哈希表为当前子表;
所述的DFA哈希表适用于中文字符串或英文字符串。
2.一种基于确定有穷状态机的同义词快速替换系统,其特征在于,包括哈希表构造模块、同义词查找模块和同义词替换模块;
所述的哈希表构造模块,用于将同义词字符列表通过有穷状态机DFA构建同义词哈希表;
所述的同义词查找模块,用于查找并快速定位待替换词;
所述的同义词替换模块,用于替换待替换词;
所述的哈希表构造模块,用于在查找过程中,如果当前状态没有与所述待匹配信息的字符相匹配的下一状态,跳转到所述当前状态的失败状态继续匹配;
所述的哈希表构造模块,遍历单元、获取单元以及构建单元;
遍历单元,用于遍历待替换词列表以及待替换词的所有字符;
获取单元,用于根据字符获取子表;
构建单元,用于构建叶子节点。
3.一种基于确定有穷状态机的同义词快速替换系统的服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1中所述的方法。
CN201811230063.0A 2018-10-22 2018-10-22 一种基于确定有穷状态机的同义词快速替换方法 Active CN109492218B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811230063.0A CN109492218B (zh) 2018-10-22 2018-10-22 一种基于确定有穷状态机的同义词快速替换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811230063.0A CN109492218B (zh) 2018-10-22 2018-10-22 一种基于确定有穷状态机的同义词快速替换方法

Publications (2)

Publication Number Publication Date
CN109492218A CN109492218A (zh) 2019-03-19
CN109492218B true CN109492218B (zh) 2023-03-21

Family

ID=65692457

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811230063.0A Active CN109492218B (zh) 2018-10-22 2018-10-22 一种基于确定有穷状态机的同义词快速替换方法

Country Status (1)

Country Link
CN (1) CN109492218B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521356A (zh) * 2011-12-13 2012-06-27 曙光信息产业(北京)有限公司 基于确定有限状态自动机的正则表达式匹配设备和方法
CN106874294A (zh) * 2015-12-14 2017-06-20 阿里巴巴集团控股有限公司 一种信息匹配方法及装置
CN107463666A (zh) * 2017-08-02 2017-12-12 成都德尔塔信息科技有限公司 一种基于文本内容的敏感词过滤方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0413743D0 (en) * 2004-06-19 2004-07-21 Ibm Method and system for approximate string matching

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521356A (zh) * 2011-12-13 2012-06-27 曙光信息产业(北京)有限公司 基于确定有限状态自动机的正则表达式匹配设备和方法
CN106874294A (zh) * 2015-12-14 2017-06-20 阿里巴巴集团控股有限公司 一种信息匹配方法及装置
CN107463666A (zh) * 2017-08-02 2017-12-12 成都德尔塔信息科技有限公司 一种基于文本内容的敏感词过滤方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种改进的基于同义词替换的中文文本信息隐藏方法;甘灿等;《东南大学学报(自然科学版)》;20070920;全文 *

Also Published As

Publication number Publication date
CN109492218A (zh) 2019-03-19

Similar Documents

Publication Publication Date Title
Bennani-Smires et al. Simple unsupervised keyphrase extraction using sentence embeddings
Efthymiou et al. Matching web tables with knowledge base entities: from entity lookups to entity embeddings
US10387801B2 (en) Method of and system for generating a prediction model and determining an accuracy of a prediction model
US10558754B2 (en) Method and system for automating training of named entity recognition in natural language processing
Mansuri et al. Integrating unstructured data into relational databases
US8510322B2 (en) Enriched search features based in part on discovering people-centric search intent
US20160078047A1 (en) Method for obtaining search suggestions from fuzzy score matching and population frequencies
Zhou et al. Resolving surface forms to wikipedia topics
US20100325133A1 (en) Determining a similarity measure between queries
US20130339001A1 (en) Spelling candidate generation
US8825620B1 (en) Behavioral word segmentation for use in processing search queries
JP2022024102A (ja) 検索モデルのトレーニング方法、目標対象の検索方法及びその装置
CN110321437B (zh) 一种语料数据处理方法、装置、电子设备及介质
CN107748778B (zh) 一种提取地址的方法及装置
US10810258B1 (en) Efficient graph tree based address autocomplete and autocorrection
US20120330947A1 (en) Name-Search System and Method
Shang et al. A framework to construct knowledge base for cyber security
Abdelmageed et al. Jentab: A toolkit for semantic table annotations
CN111143513A (zh) 一种敏感词识别方法、装置及电子设备
Kameya et al. RP-growth: top-k mining of relevant patterns with minimum support raising
Adar et al. Building a scientific concept hierarchy database (schbase)
Mukherjee et al. Automated knowledge provider system with natural language query processing
CN116860991A (zh) 面向api推荐的基于知识图谱驱动路径优化的意图澄清方法
CN109492218B (zh) 一种基于确定有穷状态机的同义词快速替换方法
Gentile et al. Early steps towards web scale information extraction with lodie

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
CB02 Change of applicant information

Address after: 271000 Langchao science and Technology Park, 527 Dongyue street, Tai'an City, Shandong Province

Applicant after: INSPUR SOFTWARE Co.,Ltd.

Address before: No. 1036, Shandong high tech Zone wave road, Ji'nan, Shandong

Applicant before: INSPUR SOFTWARE Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant