CN111159990B - 一种基于模式拓展的通用特殊词识别方法及系统 - Google Patents

一种基于模式拓展的通用特殊词识别方法及系统 Download PDF

Info

Publication number
CN111159990B
CN111159990B CN201911244936.8A CN201911244936A CN111159990B CN 111159990 B CN111159990 B CN 111159990B CN 201911244936 A CN201911244936 A CN 201911244936A CN 111159990 B CN111159990 B CN 111159990B
Authority
CN
China
Prior art keywords
character
word
original
characters
node
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
CN201911244936.8A
Other languages
English (en)
Other versions
CN111159990A (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.)
Institute of Computing Technology of CAS
National Computer Network and Information Security Management Center
Original Assignee
Institute of Computing Technology of CAS
National Computer Network and Information Security Management Center
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 Institute of Computing Technology of CAS, National Computer Network and Information Security Management Center filed Critical Institute of Computing Technology of CAS
Priority to CN201911244936.8A priority Critical patent/CN111159990B/zh
Publication of CN111159990A publication Critical patent/CN111159990A/zh
Application granted granted Critical
Publication of CN111159990B publication Critical patent/CN111159990B/zh
Active 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/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing

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)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明提出一种基于模式拓展的通用特殊词识别方法及系统,提出了一种基于基础词的音形编码,常用汉字音节,常用汉字结构以及特殊字符映射节点来构建前缀树,通过比较字符编码相似度进行模糊匹配,完成新词提取的方法及系统。本发明可以应用于大量文本中特定词的发现提取,某些任务的数据集的提取生成,给定文本数据集的预处理等场景中,比如短信、微博等数据集的筛选以及纠正等文本预处理过程。本发明为下一步的文本分类任务提供了数据来源和基本标注,也对文本数据中新词的发现和纠正提供了帮助。

Description

一种基于模式拓展的通用特殊词识别方法及系统
技术领域
本发明涉及特殊新词提取领域,特别是一种利用汉字音形编码、汉字音节以及汉字结构构建前缀树进行模糊匹配,发现并提取特殊新词的技术领域。
背景技术
随着网络文化的快速发展以及信息知识的大爆炸,用户创造了大量拥有新的含义,新的表现形式的词汇,这些新词通常具有如下变化特点:
1)音似替换。用读音相似的字,替换原词中的一个或多个字,形成新词。能够通过新词读音,表达原词的意思。
2)形似替换。用结构相似的字,替换原词中的一个或多个字,形成新词。能够通过新词的部分结构,表达原词的意思。
3)拼音替换。用原词中的一个或多个字的拼音对其进行替换,形成新词。能够通过拼音,表达原词的意思。
4)缩写替换。用原词中的一个或多个汉字的拼音缩写对其进行替换,形成新词。能够通过上下文及缩写,表达原词的意思。
5)特殊字符替换。用特殊字符,替换原词中的一个或多个字,形成新词。能够通过前后的字符,表达原词的意思。
6)汉字拆分替换。用原词中的一个或多个汉字的拆分结构对其进行替换,形成新词。能够通过整体观察,表达原词的意思。
7)数字替换。用音似数字,替换原词中的一个或多个字,形成新词。能够通过整体读音,表达原词的意思。
上述所列变化形式的具体例子如图2所示。此外,文本中可能还存在除了以上定义的其他新词。
目前常用的特殊新词提取效果并不理想,现阶段的方法有如下几类:
1.基于正则表达式匹配的词提取方法
正则表达式是一种用于匹配具体模式的方法,需要自定义正则表达式,然后去每个文本中进行表达式匹配,匹配到符合该表达式的字符串就得到一个结果。这种方式需要定义复杂的匹配模式,容易考虑不周,造成大量误匹配。而且对于没有结构上具体模式的新词,就无法进行匹配,比如音似形似的新词,提取结果不能保证准确性,正则表达式多样且冗长,对于快速更新的查找对象,这种方式无法很快地进行拓展,需要专业开发人员提取新的正则表达式,对用户不友好,存在很明显的速度慢的问题。
2.基于KMP的单模式匹配的词提取方法
一般的单模式匹配算法枚举每一个文本串元素,然后开始向后比较,比较失败后从头开始重新比对,复杂度高。基于KMP的单模式匹配算法,每次匹配失败后,不会从头开始匹配,而是根据已知数据,从某个特定位置开始匹配,节约时间。虽然有助于降低复杂度,但是单模式算法用于查找一个元素,且不便于用户方便快捷的拓展新的提取对象,对于大量快速产生的文本数据,效率不高。
3.基于AC的多模式匹配的词提取方法
多模式匹配算法可以查找并提取多个词,比单模式匹配的范围更广。基于AC的多模式匹配算法将模式组记录为字典树的形式,以节点表示不同的状态,边表示状态的转移。当一个状态处有一个模式串终结则标记一下。匹配过程是从初始状态开始,以字符流输入,进行适当的状态转移,如果可以抵达某一标记终结的状态,则成功匹配模式,串值为从初始状态到终结点的路径构成的值。基于AC的多模式匹配算法能够进行多个新词查找提取,但其需要使用待提取的新词预先创建字典树,且匹配过程为精确匹配,字典树里已有的新词才能被匹配到,不具有很好的覆盖面,字典树容易过于庞大,构建字典树时间开销会因此增加,降低匹配效率。
发明内容
本发明的内容是为了解决针对大量文本数据提取新词效率低,匹配模式复杂,匹配对象不易拓展,匹配覆盖面低等难题。提出了一种基于基础词的音形编码,常用汉字音节,常用汉字结构以及特殊字符映射节点来构建前缀树,通过比较字符编码相似度进行模糊匹配,完成新词提取的方法及系统。字典树的节点保存汉字字符,前缀树的节点保存汉字字符及其音形编码;字典树匹配失败,指针指向上一层相同字符,继续从失败字符开始匹配;前缀树匹配失败,指针直接指向根节点,从根节点重新匹配失败字符。
具体来说,本发明提供了一种基于模式拓展的通用特殊词识别方法,其中包括:
步骤1、从数据库中加载原词,通过对该原词进行模式拓展,构建原词前缀树,获取待特殊词识别的文本,并将文本中字符依次输入该原词前缀树,判断该字符是否为字母,若是,则执行步骤2,否则判断该字符是否为部首,若是,则执行步骤3,否则判定该字符为汉字执行步骤4;
步骤2、通过拼音前缀树确定该字符及其后的字符片段是否构成拼音,若是,则将拼音前缀树中匹配到的最长路径音节存入音节列表,否则输出空的音节列表,该原词前缀树的每层判断该音节列表对应音码的节点是否存在,若存在执行步骤5,否则执行步骤1获取文本中下一个字符;
步骤3、如果遇到字符是部首,则将该字符及其后续字符进行汉字前缀树匹配,如果得到该字符及其后续字符对应的原字,该原词前缀树的每层判断该原字对应音码的节点是否存在,若存在执行步骤5,否则执行步骤1获取文本中下一个字符;
步骤4、该原词前缀树的每层判断该汉字对应unicode索引的节点是否存在,若存在执行步骤5,否则执行步骤1获取文本中下一个字符;
步骤5、指针指向该原词前缀树下一层关联的节点,文本输入的字符移动到下一个字符,然后在下一层遍历数组查找相似度最高的节点,存在则继续下一层,直到该节点匹配到路径结束,输出该路径构成的原词,文本输入构成的新词,以及word存放的文本信息,得到包含原词、新词和文本的三元组,作为特殊词识别结果。
所述的基于模式拓展的通用特殊词识别方法,其中该步骤1包括:
对输入文本进行预处理,清除文本中的空格以及连续的特殊字符,遍历文本字符,判断并转换数字,判断并确定拼音位置,判断并还原汉字拆分。
所述的基于模式拓展的通用特殊词识别方法,其中该步骤1包括:
从数据库加载原词,获取原词的拼音首字母缩写;依次替换原词不同位置的汉字,从而进行模式拓展,得到拓展词;
将原词和拓展词构建前缀树,该前缀树每个节点拥有一个next指针,指向下一个有关联的字符;每个节点还拥有一个结束标记,若结束标记为真表示匹配到相关字符,否则指针指向根节点,从当前字符开始重新匹配相关原词;
该前缀树的每层为一个数组,数组用于映射各个字符的unicode编码,以此编码为该字符在树中节点的索引下标;
对于每一个原词,遍历其每个汉字,如果是汉字,则获取其unicode编码,在数组对应下标处创建节点,赋予其音形编码,字符;如果是特殊字符,则将其索引统一映射到65536的位置,在该位置创建节点,赋予其字符,当原词遍历完,将最后创建的节点的end标记修改为True,表示此处为原词结束位置,该节点的next指向根节点,以完成该原词前缀树的建立。
所述的基于模式拓展的通用特殊词识别方法,其中该模式拓展具体包括利用原词,拓展生成其缩写以及不同位置特殊字符替代的词模板。
本发明还提出了一种基于模式拓展的通用特殊词识别系统,其中包括:
模块1、从数据库中加载原词,通过对该原词进行模式拓展,构建原词前缀树,获取待特殊词识别的文本,并将文本中字符依次输入该原词前缀树,判断该字符是否为字母,若是,则执行模块2,否则判断该字符是否为部首,若是,则执行模块3,否则判定该字符为汉字执行模块4;
模块2、通过拼音前缀树确定该字符及其后的字符片段是否构成拼音,若是,则将拼音前缀树中匹配到的最长路径音节存入音节列表,否则输出空的音节列表,该原词前缀树的每层判断该音节列表对应音码的节点是否存在,若存在执行模块5,否则执行模块1获取文本中下一个字符;
模块3、如果遇到字符是部首,则将该字符及其后续字符进行汉字前缀树匹配,如果得到该字符及其后续字符对应的原字,该原词前缀树的每层判断该原字对应音码的节点是否存在,若存在执行模块5,否则执行模块1获取文本中下一个字符;
模块4、该原词前缀树的每层判断该汉字对应unicode索引的节点是否存在,若存在执行模块5,否则执行模块1获取文本中下一个字符;
模块5、指针指向该原词前缀树下一层关联的节点,文本输入的字符移动到下一个字符,然后在下一层遍历数组查找相似度最高的节点,存在则继续下一层,直到该节点匹配到路径结束,输出该路径构成的原词,文本输入构成的新词,以及word存放的文本信息,得到包含原词、新词和文本的三元组,作为特殊词识别结果。
所述的基于模式拓展的通用特殊词识别系统,其中该模块1包括:
对输入文本进行预处理,清除文本中的空格以及连续的特殊字符,遍历文本字符,判断并转换数字,判断并确定拼音位置,判断并还原汉字拆分。
所述的基于模式拓展的通用特殊词识别系统,其中该模块1包括:
从数据库加载原词,获取原词的拼音首字母缩写;依次替换原词不同位置的汉字,从而进行模式拓展,得到拓展词;
将原词和拓展词构建前缀树,该前缀树每个节点拥有一个next指针,指向下一个有关联的字符;每个节点还拥有一个结束标记,若结束标记为真表示匹配到相关字符,否则指针指向根节点,从当前字符开始重新匹配相关原词;
该前缀树的每层为一个数组,数组用于映射各个字符的unicode编码,以此编码为该字符在树中节点的索引下标;
对于每一个原词,遍历其每个汉字,如果是汉字,则获取其unicode编码,在数组对应下标处创建节点,赋予其音形编码,字符;如果是特殊字符,则将其索引统一映射到65536的位置,在该位置创建节点,赋予其字符,当原词遍历完,将最后创建的节点的end标记修改为True,表示此处为原词结束位置,该节点的next指向根节点,以完成该原词前缀树的建立。
所述的基于模式拓展的通用特殊词识别系统,其中该模式拓展具体包括利用原词,拓展生成其缩写以及不同位置特殊字符替代的词模板。
由以上方案可知,本发明的优点在于:
本发明可以应用于大量文本中特定词的发现提取,某些任务的数据集的提取生成,给定文本数据集的预处理等场景中,比如短信、微博等数据集的筛选以及纠正等文本预处理过程。本发明实验采用大量的短文本数据,按照本发明的流程和计算过程,对文本数据进行特定模式的新词匹配。整个过程把需要处理的文本数据输入给原词前缀树,原词前缀树给出文本中存在的不同变化模式的新词,取得较高的准确率。本发明为下一步的文本分类任务提供了数据来源和基本标注,也对文本数据中新词(非正式词汇)的发现和纠正提供了帮助。
附图说明
图1为总体结构流程设计图;
图2为变化模型样例图表。
具体实施方式
针对上述方法查找提取新词效率低,匹配模式不易拓展,容易产生错误匹配,匹配覆盖面低,导致提取结果不准确的问题,本发明设计了一种基于汉字音形编码、汉字音节以及汉字结构的多模式前缀子树匹配方法,其优势在于采用模糊匹配扩大新词覆盖面,仅仅需要少量原词(变化模式所基于的那个词)作为模板构建字典树,减少字典树构建开销,用户易于拓展新的查找提取对象。
一种基于特定拓展的通用特殊词识别算法及系统涉及到的技术关键点主要包括原词前缀树,汉字音节前缀树,汉字结构前缀树的构建、音形编码模糊匹配模块、汉字音节匹配模块模块、汉字结构匹配模块等,主要的技术关键点和技术效果说明如下:
关键点1,在对原词构建前缀树的时候,首先把原词进行模式拓展,目的是能够包括缩写以及特殊字符替换这类变化模式。模式拓展即利用原词,拓展生成其缩写以及不同位置特殊字符替代的词模板,如对原词进行模式拓展得到缩写及特殊字符替换模板。然后基于这部分原词及模板构建前缀树,树的每层构建了一个特殊字符映射节点,所有特殊字符将映射到同一个节点,使得匹配更加泛化。
技术效果,这种进行了模式拓展的原词前缀树,通过增加变化模板和特殊字符映射节点,提高了多模式匹配的泛化能力。针对日新月异的大量数据,能够有效的匹配某个原词的该类型所出现的变化结果。
关键点2,汉字音节和汉字结构前缀树主要用于匹配拼音和拆分的汉字,利用汉字有限的音节和6000个常用汉字的结构表构建前缀树,对于拼音替换类,首先需要剔除文本中的英文,然后需要进行最长路径匹配,如想要匹配“xiao”这个拼音,需要经过“xi”,“xia”,“xiao”。最后对于找出来的拼音的处理是通过在原词前缀树里进行音码的相似度计算来匹配,对于拆分汉字的处理是通过将其恢复成原字,然后在原词前缀树里进行音形编码的相似度计算来匹配。
技术效果,通过对文本进行预处理,剔除英文单词,然后在音节前缀树中进行最长路径匹配,能够有效的提取拼音,供后续用音节编码进行相似度比较;汉字结构前缀树由于常用汉字拆分也就拆成两个字居多,所以树的高度不是很高,查询效率高,汉字复原效果好。
关键点3,在原词前缀树的匹配过程中,采用音形编码或音码进行汉字相似度比较。针对汉字形式的匹配,采用其音形编码与原词前缀树中的对应层存在的汉字进行相似度计算,由于原词的差异性较大,所以采用最大相似度所在的节点来确定其匹配的路径,初始根节点到最终节点的路径组成的串即为对应的原词。针对拼音形式的匹配,采用其音码与原词前缀树中的对应层存在的汉字的音码部分进行相似度计算,采用最大相似度所在的节点来确定其匹配的路径。
技术效果,目前真实数据中大量的变化的新词还是以音似形似的方式出现,通过计算汉字-汉字的音形编码相似度和汉字-拼音的音节编码相似度,能够有效的提升模糊匹配的泛化能力,用户可通过类似搜索引擎窗口的形式,输入目标原词,完成原词前缀树的插入和构建,查询文本中基于该词的不同变化模式的词。匹配的结果为<原词,新词,文本>格式,有利于下一步采用深入学习技术进行模型训练。
本发明中构建了原词前缀树、音节前缀树、汉字结构前缀树,通过汉字-汉字的音形编码相似度计算以及汉字-拼音的音节编码相似度计算,完成音似,形似,汉字拆分,拼音替换等变化模式的匹配。通过添加特殊字符映射节点以及模式拓展,完成特殊字符替换,缩写等变化模式的匹配。通过阿拉伯数字转汉字数字,完成数字音似的变化模式的匹配。本发明融合了文本中的多种主要的变化模式,完成了基于少量原词的多模式模糊匹配算法和系统。整体方案如图1所示。
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
本发明为了融合多种新词变化模式,解决匹配模式复杂,匹配对象不易拓展、匹配覆盖面低等难题。提出了一种基于基础词的音形编码,常用汉字音节、常用汉字结构以及特殊字符映射节点来构建前缀树,通过比较字符编码相似度进行模糊匹配,完成新词提取的方法及系统。本发明采用大量短文本信息进行实验测试,提供基本原词构建原词前缀树,进行多模式字符串模糊匹配,返回结果,格式为<原词,新词,文本>。具体实施方案如下:
步骤1、对输入短文本进行预处理,清除文本中的空格以及连续的特殊字符,遍历文本字符,判断并转换数字,判断并确定拼音位置,判断并还原汉字拆分,具体步骤如下所示:
步骤1-1、将短文本信息的原始描述信息进行数据清洗,包括去除文本信息中的空格,连续的特殊符号,网页链接等,由于存在“特殊符号替换”这一类变化模式,所以无法清洗太多字符;
步骤1-2、遍历清洗后的短文本信息,构建阿拉伯数字-汉字数字字典,如果当前字符为阿拉伯数字,则根据字典,将其替换成汉字数字,以便进入原词前缀树进行匹配;
步骤1-3、将替换后的短文本信息进行音节前缀树匹配,首先需要构建音节前缀树,汉字音节约420个,前缀树的第一层为各个音节的第一个字母,第二层为各个音节的次位字母,依次类推;具有关联的字母之间为一条路径;各个音节最后字母所在节点有结束标记,此时从根节点到结束标记所在节点构成的路径即为一个音节;结束标记所在的节点有指向根节点的指针;各个节点匹配失败时指向根节点,当前字符重新从根节点开始进行匹配。大多数音节存在嵌套的情况,如“xi”,“xia”,“xian”,“xiang”,所以进行匹配的时候需要进行最长路径匹配,判断下一字符所构成的路径是否存在,如果存在就指向下一层的该节点,否则输出音节,指向根节点;
步骤1-4、将替换后的短文本信息进行汉字拆分结构前缀树匹配,首先需要构建汉字结构前缀树,常用汉字6981个,绝大多数拆分结果为两个字,得到汉字结构字典。前缀树的第一层为拆分结果的第一个字符,第二层为拆分结果的第二个字符,依次类推;具有关联的字符之间为一条路径;各个拆分结构的最后一个字符所在节点有结束标记,此时从根节点到结束标记所在的节点构成的路径即为一个拆分结构;匹配到的拆分结构在结构字典里对应一个汉字;结束标记所在节点有指向根节点的指针;各个节点匹配失败时指向根节点,当前字符重新从根节点开始进行匹配。由于汉字的部首只有267个,当进行匹配的时候,先判断当前字符是否可能是部首,如果是,则对该字符及其后两个或多个字符进行预判断,判断其能否匹配汉字结构前缀树中的某条路径,如果匹配,则还原成原汉字,指向根节点,留待后续进行音形编码相似度比较;否则指向根节点,进行新的匹配,具体构建方法如下;
步骤2、获取原词,对原词进行模式拓展,构建原词前缀树,具体步骤为:
步骤2-1、从数据库加载原词,获取原词的拼音首字母缩写;依次替换原词不同位置的汉字为“*”,构造不同的模板,从而进行模式拓展;
步骤2-2、将原词和拓展的词构建前缀树,前缀树每个节点拥有一个next指针,指向下一个有关联的字符;每个节点还拥有一个end标记,为True表示匹配到相关字符,False表示没有,此时指针指向根节点,从当前字符开始重新匹配相关原词;每个节点的val代表其汉字音形编码,char代表该汉字本身,word代表其路径构成的原词。
步骤2-3、前缀树的每一层是采用一个65538的数组,由于原词都比较短小,所以前缀树高度不高。数组的前65535个位置用于映射各个字符的unicode编码,以此编码为该字符在树中节点的索引下标;数组的65536位置用于映射特殊字符,所以特殊字符不采用其unicode编码,而全部进行模糊处理,映射到同一节点,相当于在路径中忽略特殊字符。例如将同类型变化匹配同一条路径,从而扩大匹配的泛化能力。数组的65537位置为保留位置。
步骤2-4、对于每一个原词,遍历其每个汉字,如果是汉字,则获取其unicode编码,在数组对应下标处创建节点,赋予其音形编码,字符;如果是特殊字符,则将其索引统一映射到65536的位置,在该位置创建节点,赋予其字符。当原词遍历完,将最后创建的节点的end标记修改为True,表示此处为原词结束位置,该节点的next指向根节点。每个相关连节点之间建立路径,此外还有一个指针指向根节点,匹配失败后直接返回根节点。至此步骤完成了原词前缀树的建立。
步骤3、将清洗后的文本,进行原词前缀树匹配。遍历文本信息,遇到阿拉伯数字,进行阿拉伯数字转汉字数字;遇到拼音,则取出对应音节,索引指向拼音之后的位置;遇到拆分字符,则取出拆分字符,进行还原,索引指向拆分字符之后的位置。具体步骤如下:
步骤3-1、先通过拼音前缀树确定文本中是否存在拼音,拼音前缀树中匹配到的最长路径音节存入一个列表,如果遍历完成不为空则返回该列表,否则为None。返回的含有音节的列表将用于查找在文本中对应的下标区间,遍历文本的时候将跳过这些区间,这些区间构成的音节将通过音码的方式在原词前缀树中进行相似度计算和匹配,具体方法如下:
步骤3-2、然后通过一个含有部首的字典,判断是否当前字符是部首,如果是,将该字符及其后续字符进行汉字前缀树匹配,匹配成功则输出对应的原字,该原字将用于原词前缀树中进行音形编码的相似度计算和匹配。
步骤3-3、原词前缀树的每层只需判断对应unicode索引的节点是否存在,如果存在,则表示通过该节点,指针指向其下一层关联的节点;然后在下一层遍历数组查找相似度最高的节点,存在则继续下一层,直到该节点的end标记为True,表示匹配到路径结束,发现一个相似的原词,输出该路径构成的原词,文本输入的满足条件的字符拼接构成的新词,以及输入的整个文本信息,以<原词,新词,文本>形式输出。如果不存在,则指针指向根节点,从当前匹配失败的字符开始,重新从根节点开始匹配。
char:定义为每个节点存放汉字的变量名。在构建原词前缀树的时候,每个节点用这个变量来存放单个汉字。新词的组成是文本字符依次输入原词前缀树的时候,每判断通过一个节点,会拼接这个输入的字符,最后构成整个新词。
word:叶子节点存放原词的变量名(叶子节点是指每条路径的最后一个节点);在一条路径匹配成功后,取出叶子节点的word变量,其值即为这条路径各节点字符组成的原词;word存放的是整个原词,是在路径匹配成功之后,直接从叶子结点读取的值,这个值是原词,而不是文本信息。
步骤4、测试算法和系统的时候,初始测试是3500条的筛选后的相关变化的文本数据,之后的测试数据是370万的短文本信息数据,原词前缀树,拼音前缀树,汉字拆分前缀树的构建能够在几秒内完成;通过分析发现,新词的变化以音似的居多,所以音码的权重为0.8,形码的权重为0.2,相似度阈值为0.85;在阈值较高时,匹配结果较为准确,能够匹配多种变化模式的新词;在370万数据上测试也能得到较好的结果,且匹配效率高。
以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
本发明还提出了一种基于模式拓展的通用特殊词识别系统,其中包括:
模块1、从数据库中加载原词,通过对该原词进行模式拓展,构建原词前缀树,获取待特殊词识别的文本,并将文本中字符依次输入该原词前缀树,判断该字符是否为字母,若是,则执行模块2,否则判断该字符是否为部首,若是,则执行模块3,否则判定该字符为汉字执行模块4;
模块2、通过拼音前缀树确定该字符及其后的字符片段是否构成拼音,若是,则将拼音前缀树中匹配到的最长路径音节存入音节列表,否则输出空的音节列表,该原词前缀树的每层判断该音节列表对应音码的节点是否存在,若存在执行模块5,否则执行模块1获取文本中下一个字符;
模块3、如果遇到字符是部首,则将该字符及其后续字符进行汉字前缀树匹配,如果得到该字符及其后续字符对应的原字,该原词前缀树的每层判断该原字对应音码的节点是否存在,若存在执行模块5,否则执行模块1获取文本中下一个字符;
模块4、该原词前缀树的每层判断该汉字对应unicode索引的节点是否存在,若存在执行模块5,否则执行模块1获取文本中下一个字符;
模块5、指针指向该原词前缀树下一层关联的节点,文本输入的字符移动到下一个字符,然后在下一层遍历数组查找相似度最高的节点,存在则继续下一层,直到该节点匹配到路径结束,输出该路径构成的原词,文本输入构成的新词,以及word存放的文本信息,得到包含原词、新词和文本的三元组,作为特殊词识别结果。
所述的基于模式拓展的通用特殊词识别系统,其中该模块1包括:
对输入文本进行预处理,清除文本中的空格以及连续的特殊字符,遍历文本字符,判断并转换数字,判断并确定拼音位置,判断并还原汉字拆分。
所述的基于模式拓展的通用特殊词识别系统,其中该模块1包括:
从数据库加载原词,获取原词的拼音首字母缩写;依次替换原词不同位置的汉字,从而进行模式拓展,得到拓展词;
将原词和拓展词构建前缀树,该前缀树每个节点拥有一个next指针,指向下一个有关联的字符;每个节点还拥有一个结束标记,若结束标记为真表示匹配到相关字符,否则指针指向根节点,从当前字符开始重新匹配相关原词;
该前缀树的每层为一个数组,数组用于映射各个字符的unicode编码,以此编码为该字符在树中节点的索引下标;
对于每一个原词,遍历其每个汉字,如果是汉字,则获取其unicode编码,在数组对应下标处创建节点,赋予其音形编码,字符;如果是特殊字符,则将其索引统一映射到65536的位置,在该位置创建节点,赋予其字符,当原词遍历完,将最后创建的节点的end标记修改为True,表示此处为原词结束位置,该节点的next指向根节点,以完成该原词前缀树的建立。
所述的基于模式拓展的通用特殊词识别系统,其中该模式拓展具体包括利用原词,拓展生成其缩写以及不同位置特殊字符替代的词模板。

Claims (4)

1.一种基于模式拓展的通用特殊词识别方法,其特征在于,包括:
步骤1、从数据库中加载原词,通过对该原词进行模式拓展,构建原词前缀树,该模式拓展包括利用原词,拓展生成其缩写以及不同位置特殊字符替代的词模板;获取待特殊词识别的文本,并将文本中字符依次输入该原词前缀树,判断该字符是否为字母,若是,则执行步骤2,否则判断该字符是否为部首,若是,则执行步骤3,否则判定该字符为汉字执行步骤4;
步骤2、通过拼音前缀树确定该字符及其后的字符片段是否构成拼音,若是,则将拼音前缀树中匹配到的最长路径音节存入音节列表,否则输出空的音节列表,该原词前缀树的每层判断该音节列表对应音码的节点是否存在,若存在执行步骤5,否则执行步骤1获取文本中下一个字符;
步骤3、如果遇到字符是部首,则将该字符及其后续字符进行原词前缀树匹配,如果得到该字符及其后续字符对应的原字,该原词前缀树的每层判断该原字对应音码的节点是否存在,若存在执行步骤5,否则执行步骤1获取文本中下一个字符;
步骤4、该原词前缀树的每层判断该汉字对应unicode索引的节点是否存在,若存在执行步骤5,否则执行步骤1获取文本中下一个字符;
步骤5、指针指向该原词前缀树下一层关联的节点,文本输入的字符移动到下一个字符,然后在下一层遍历数组查找相似度最高的节点,存在则继续下一层,直到该节点匹配到路径结束,输出该路径构成的原词,文本输入构成的新词,以及word存放的文本信息,得到包含原词、新词和文本的三元组,作为特殊词识别结果;
该步骤1包括:
从数据库加载原词,获取原词的拼音首字母缩写;依次替换原词不同位置的汉字,从而进行模式拓展,得到拓展词;
将原词和拓展词构建前缀树,该前缀树每个节点拥有一个next指针,指向下一个有关联的字符;每个节点还拥有一个结束标记,若结束标记为真表示匹配到相关字符,否则指针指向根节点,从当前字符开始重新匹配相关原词;
该前缀树的每层为一个65538的数组,数组的前65535个位置用于映射各个字符的unicode编码,以此编码为该字符在树中节点的索引下标;数组的65536位置用于映射特殊字符;
对于每一个原词,遍历其每个汉字,如果是汉字,则获取其unicode编码,在数组对应下标处创建节点,赋予其音形编码,字符;如果是特殊字符,则将其索引统一映射到65536的位置,在该位置创建节点,赋予其字符,当原词遍历完,将最后创建的节点的end标记修改为True,表示此处为原词结束位置,该节点的next指向根节点,以完成该原词前缀树的建立。
2.如权利要求1所述的基于模式拓展的通用特殊词识别方法,其特征在于,该步骤1包括:
对输入文本进行预处理,清除文本中的空格以及连续的特殊字符,遍历文本字符,判断并转换数字,判断并确定拼音位置,判断并还原汉字拆分。
3.一种基于模式拓展的通用特殊词识别系统,其特征在于,包括:
模块1、从数据库中加载原词,通过对该原词进行模式拓展,构建原词前缀树,该模式拓展包括利用原词,拓展生成其缩写以及不同位置特殊字符替代的词模板;获取待特殊词识别的文本,并将文本中字符依次输入该原词前缀树,判断该字符是否为字母,若是,则执行模块2,否则判断该字符是否为部首,若是,则执行模块3,否则判定该字符为汉字执行模块4;
模块2、通过拼音前缀树确定该字符及其后的字符片段是否构成拼音,若是,则将拼音前缀树中匹配到的最长路径音节存入音节列表,否则输出空的音节列表,该原词前缀树的每层判断该音节列表对应音码的节点是否存在,若存在执行模块5,否则执行模块1获取文本中下一个字符;
模块3、如果遇到字符是部首,则将该字符及其后续字符进行原词前缀树匹配,如果得到该字符及其后续字符对应的原字,该原词前缀树的每层判断该原字对应音码的节点是否存在,若存在执行模块5,否则执行模块1获取文本中下一个字符;
模块4、该原词前缀树的每层判断该汉字对应unicode索引的节点是否存在,若存在执行模块5,否则执行模块1获取文本中下一个字符;
模块5、指针指向该原词前缀树下一层关联的节点,文本输入的字符移动到下一个字符,然后在下一层遍历数组查找相似度最高的节点,存在则继续下一层,直到该节点匹配到路径结束,输出该路径构成的原词,文本输入构成的新词,以及word存放的文本信息,得到包含原词、新词和文本的三元组,作为特殊词识别结果;
该模块1包括:
从数据库加载原词,获取原词的拼音首字母缩写;依次替换原词不同位置的汉字,从而进行模式拓展,得到拓展词;
将原词和拓展词构建前缀树,该前缀树每个节点拥有一个next指针,指向下一个有关联的字符;每个节点还拥有一个结束标记,若结束标记为真表示匹配到相关字符,否则指针指向根节点,从当前字符开始重新匹配相关原词;
该前缀树的每层为一个65538的数组,数组的前65535个位置用于映射各个字符的unicode编码,以此编码为该字符在树中节点的索引下标;数组的65536位置用于映射特殊字符;
对于每一个原词,遍历其每个汉字,如果是汉字,则获取其unicode编码,在数组对应下标处创建节点,赋予其音形编码,字符;如果是特殊字符,则将其索引统一映射到65536的位置,在该位置创建节点,赋予其字符,当原词遍历完,将最后创建的节点的end标记修改为True,表示此处为原词结束位置,该节点的next指向根节点,以完成该原词前缀树的建立。
4.如权利要求3所述的基于模式拓展的通用特殊词识别系统,其特征在于,该模块1包括:
对输入文本进行预处理,清除文本中的空格以及连续的特殊字符,遍历文本字符,判断并转换数字,判断并确定拼音位置,判断并还原汉字拆分。
CN201911244936.8A 2019-12-06 2019-12-06 一种基于模式拓展的通用特殊词识别方法及系统 Active CN111159990B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911244936.8A CN111159990B (zh) 2019-12-06 2019-12-06 一种基于模式拓展的通用特殊词识别方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911244936.8A CN111159990B (zh) 2019-12-06 2019-12-06 一种基于模式拓展的通用特殊词识别方法及系统

Publications (2)

Publication Number Publication Date
CN111159990A CN111159990A (zh) 2020-05-15
CN111159990B true CN111159990B (zh) 2022-09-30

Family

ID=70555730

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911244936.8A Active CN111159990B (zh) 2019-12-06 2019-12-06 一种基于模式拓展的通用特殊词识别方法及系统

Country Status (1)

Country Link
CN (1) CN111159990B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112001170B (zh) * 2020-05-29 2023-05-09 中国人民大学 一种识别经过变形的敏感词的方法和系统
CN111680500B (zh) * 2020-06-10 2023-07-14 深圳前海微众银行股份有限公司 地址识别方法、装置、设备与计算机可读存储介质
CN111782892B (zh) * 2020-06-30 2023-09-19 中国平安人寿保险股份有限公司 基于前缀树的相似字符识别方法、设备、装置和存储介质
CN113779176A (zh) * 2020-12-14 2021-12-10 北京沃东天骏信息技术有限公司 查询请求补全方法、装置、电子设备和存储介质
CN112989838B (zh) * 2021-05-17 2021-08-31 北京智慧易科技有限公司 文本联系实体提取方法、装置、设备及可读存储介质
CN113792129A (zh) * 2021-09-16 2021-12-14 平安普惠企业管理有限公司 一种智能会话方法、装置、计算机设备及介质
CN114091436B (zh) * 2022-01-21 2022-05-17 万商云集(成都)科技股份有限公司 一种基于决策树及变体识别的敏感词检测方法
CN116701963A (zh) * 2023-08-09 2023-09-05 北京智精灵科技有限公司 一种字符串模糊匹配的方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1691298A1 (en) * 2002-07-03 2006-08-16 2012244 Ontario Inc. Method and system of creating and using Chinese language data and user-corrected data
CN106951437A (zh) * 2017-02-08 2017-07-14 中国科学院信息工程研究所 适于多个中文敏感词句的识别处理方法及装置
CN107463666A (zh) * 2017-08-02 2017-12-12 成都德尔塔信息科技有限公司 一种基于文本内容的敏感词过滤方法
CN109325243A (zh) * 2018-10-22 2019-02-12 内蒙古大学 字符级基于序列模型的蒙古文切词方法及其切词系统
CN110457423A (zh) * 2019-06-24 2019-11-15 平安科技(深圳)有限公司 一种知识图谱实体链接方法、装置、计算机设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1691298A1 (en) * 2002-07-03 2006-08-16 2012244 Ontario Inc. Method and system of creating and using Chinese language data and user-corrected data
CN106951437A (zh) * 2017-02-08 2017-07-14 中国科学院信息工程研究所 适于多个中文敏感词句的识别处理方法及装置
CN107463666A (zh) * 2017-08-02 2017-12-12 成都德尔塔信息科技有限公司 一种基于文本内容的敏感词过滤方法
CN109325243A (zh) * 2018-10-22 2019-02-12 内蒙古大学 字符级基于序列模型的蒙古文切词方法及其切词系统
CN110457423A (zh) * 2019-06-24 2019-11-15 平安科技(深圳)有限公司 一种知识图谱实体链接方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN111159990A (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
CN111159990B (zh) 一种基于模式拓展的通用特殊词识别方法及系统
US11256856B2 (en) Method, device, and system, for identifying data elements in data structures
CN103810998B (zh) 基于移动终端设备的离线语音识别方法以及实现方法
CN103970798A (zh) 数据的搜索和匹配
KR101729461B1 (ko) 자연 언어 처리 시스템, 자연 언어 처리 방법, 및 자연 언어 처리 프로그램
CN113591457A (zh) 文本纠错方法、装置、设备及存储介质
CN115599902B (zh) 一种基于知识图谱的油气百科问答方法及系统
CN110782892B (zh) 语音文本纠错方法
CN103823857A (zh) 基于自然语言处理的空间信息检索方法
CN114036930A (zh) 文本纠错方法、装置、设备及计算机可读介质
KR20230009564A (ko) 앙상블 스코어를 이용한 학습 데이터 교정 방법 및 그 장치
KR101379128B1 (ko) 사전 생성 장치, 사전 생성 방법 및 사전 생성 프로그램을 기억하는 컴퓨터 판독 가능 기록 매체
EP4364044A1 (en) Automated troubleshooter
CN112447172B (zh) 一种语音识别文本的质量提升方法和装置
CN113420766B (zh) 一种融合语言信息的低资源语种ocr方法
JP7487532B2 (ja) 画像ブロックの認識結果の補正方法及び装置、並びに記憶媒体
CN112884087A (zh) 一种生物增强子及其类型的识别方法
CN110619877A (zh) 应用于激光笔的语音识别人机交互方法、装置、系统和存储介质
CN115795060A (zh) 一种基于知识增强的实体对齐方法
JP5252596B2 (ja) 文字認識装置、文字認識方法及びプログラム
CN114861669A (zh) 一种融入拼音信息的中文实体链接方法
CN110413779B (zh) 一种针对电力行业的词向量训练方法及其系统、介质
CN109947891B (zh) 文书解析方法及装置
CN106663094A (zh) 用于线性广义ll识别和上下文感知解析的方法和系统
Ananth Handwritten Text Recognition using Deep Learning and Word Beam Search

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