CN114490928B - 一种语义搜索的实现方法、系统、计算机设备和存储介质 - Google Patents

一种语义搜索的实现方法、系统、计算机设备和存储介质 Download PDF

Info

Publication number
CN114490928B
CN114490928B CN202111683267.1A CN202111683267A CN114490928B CN 114490928 B CN114490928 B CN 114490928B CN 202111683267 A CN202111683267 A CN 202111683267A CN 114490928 B CN114490928 B CN 114490928B
Authority
CN
China
Prior art keywords
sequence
text
entity
fragment
segment
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
CN202111683267.1A
Other languages
English (en)
Other versions
CN114490928A (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.)
Guangzhou Tungee Technology Co ltd
Original Assignee
Guangzhou Tungee 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 Guangzhou Tungee Technology Co ltd filed Critical Guangzhou Tungee Technology Co ltd
Priority to CN202111683267.1A priority Critical patent/CN114490928B/zh
Publication of CN114490928A publication Critical patent/CN114490928A/zh
Application granted granted Critical
Publication of CN114490928B publication Critical patent/CN114490928B/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/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • 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/35Clustering; Classification
    • G06F16/355Class or cluster creation or modification
    • 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
    • G06F40/295Named entity recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Databases & Information Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种语义搜索的实现方法。包括:将待识别文本输入第一NER模型,得到文本片段标记序列;将片段输入第二NER模型,得到片段实体标记序列;使用预设分类符号和预设节点数据按照预设规则分别对文本片段标记序列和片段实体标记序列进行格式转换,得到文本关系树叶节点序列和片段关系树叶节点序列;分别输入关系树生成模型,得到文本父节点坐标序列和片段父节点坐标序列;分别生成对应的文本关系树结构和片段关系树结构;使用所述片段关系树结构替换所述文本关系树结构中所述包含实体的上下文片段对应的叶节点,生成语义搜索关系树结构。本发明能够增强语义搜索的泛化性,应对复杂查询逻辑的鲁棒性,提高长难语句的识别精度。

Description

一种语义搜索的实现方法、系统、计算机设备和存储介质
技术领域
本发明涉及语义搜索技术领域,特别是涉及一种语义搜索的实现方法、系统、计算机设备和存储介质。
背景技术
语义搜索是一种广泛应用在搜索引擎的一种自然语言处理技术,经过对用户输入的自然语言进行语义理解后,解析成底层数据库,包括关系型数据库、非关系型数据库和图数据库等,对应的搜索语句,从而提取用户想搜索的数据和信息。
实体抽取是语义搜索中的重要部分,目前,现有的实体抽取技术主要是通过模板匹配和规则系统来实现,但这种做法的泛化性不高,并且现有的命名实体识别的实现方法也存在精度瓶颈,难以处理多种实体类型的长语句和理解比较困难的语句。并且,现有的语义搜索实现方法也难以处理复杂的查询逻辑,比如与或非关系的多重组合以及嵌套组合等,搜索准确度不高。
发明内容
为了解决上述技术问题,本发明的目的是提供一种结合两级命名实体识别技术和基于父节点分类的关系树生成技术,并利用神经网络的建模能力,能够提高语义搜索技术中的实体抽取部分的泛化性和识别精度,以及增强了语义搜索技术对于复杂查询逻辑的鲁棒性,并且具有良好的扩展性的语义搜索的实现方法、系统、计算机设备和存储介质。
第一方面,本发明提供了一种语义搜索的实现方法,所述方法包括:
将待识别文本输入第一NER模型,得到文本片段标记序列、包含实体的上下文片段、以及片段标记类型分类;
将所述包含实体的上下文片段输入第二NER模型,得到片段实体标记序列、实体、以及实体标记类型分类;
使用预设分类符号和预设节点数据,按照预设规则分别对所述文本片段标记序列和所述片段实体标记序列进行格式转换,得到文本关系树叶节点序列和片段关系树叶节点序列;
将所述文本关系树叶节点序列和所述片段关系树叶节点序列分别输入关系树生成模型,得到文本父节点坐标序列和片段父节点坐标序列;
根据所述文本父节点坐标序列和所述片段父节点坐标序列,分别生成对应的文本关系树结构和片段关系树结构;
使用所述片段关系树结构替换所述文本关系树结构中所述包含实体的上下文片段对应的叶节点,生成语义搜索关系树结构;
根据所述语义搜索关系树结构,生成对应的数据库查询语言。
进一步地,所述将待识别文本输入第一NER模型,得到文本片段标记序列、包含实体的上下文片段、以及片段标记类型分类的步骤包括:
将所述待识别文本输入一级第一NER模型进行序列标注,得到文本片段类型序列;
将所述待识别文本和所述文本片段类型序列输入二级第一NER模型进行片段标记,得到文本片段标记序列、包含实体的上下文片段、以及片段标记类型分类。
进一步地,所述将所述包含实体的上下文片段输入第二NER模型,得到片段实体标记序列、实体、以及实体标记类型分类的步骤包括:
将所述包含实体的上下文片段输入一级第二NER模型进行序列标注,得到片段实体类型序列;
将所述包含实体的上下文片段和所述片段实体类型序列输入二级第二NER模型进行实体标记,得到片段实体标记序列、实体、以及实体标记类型分类。
进一步地,所述使用预设分类符号和预设节点数据,按照预设规则分别对所述文本片段标记序列和所述片段实体标记序列进行格式转换,得到文本关系树叶节点序列和片段关系树叶节点序列的步骤包括:
使用预设分类符号分别替换所述文本片段标记序列中的所述包含实体的上下文片段、和所述片段实体标记序列中的所述实体,得到文本片段标记标签序列和片段实体标记标签序列;
将预设关系节点数据和预设辅助节点数据按照预设规则分别拼接到所述文本片段标记标签序列的尾部、和所述片段实体标记标签序列的尾部,得到文本关系树叶节点序列和片段关系树叶节点序列。
进一步地,所述将所述文本关系树叶节点序列和所述片段关系树叶节点序列分别输入关系树生成模型,得到文本父节点坐标序列和片段父节点坐标序列的步骤包括:
将所述文本关系树叶节点序列输入关系树生成模型,对所述文本关系树叶节点序列中的预设节点数据进行基于索引的分类,生成文本父节点坐标序列;
将所述片段关系树叶节点序列输入关系树生成模型,对所述片段关系树叶节点序列中的预设节点数据进行基于索引的分类,生成片段父节点坐标序列。
进一步地,述一级第一NER模型和所述一级第二NER模型的主干网络均为Bert-CRF模型;
所述二级第一NER模型和所述二级第二NER模型的主干网络均为Bert模型。
进一步地,所述关系树生成模型的主干网络为Bert模型加上定长的Dense全连接层。
第二方面,本发明提供了一种语义搜索的实现系统,所述系统包括:
片段识别模块,用于将待识别文本输入第一NER模型,得到文本片段标记序列、包含实体的上下文片段、以及片段标记类型分类;
实体识别模块,用于将所述包含实体的上下文片段输入第二NER模型,得到片段实体标记序列、实体、以及实体标记类型分类;
节点序列生成模块,用于使用预设分类符号和预设节点数据,按照预设规则分别对所述文本片段标记序列和所述片段实体标记序列进行格式转换,得到文本关系树叶节点序列和片段关系树叶节点序列;
坐标序列生成模块,用于将所述文本关系树叶节点序列和所述片段关系树叶节点序列分别输入关系树生成模型,得到文本父节点坐标序列和片段父节点坐标序列;
关系树生成模块,用于根据所述文本父节点坐标序列和所述片段父节点坐标序列,分别生成对应的文本关系树结构和片段关系树结构;
叶节点替换模块,用于使用所述片段关系树结构替换所述文本关系树结构中所述包含实体的上下文片段对应的叶节点,生成语义搜索关系树结构;
查询语句生成模块,根据所述语义搜索关系树结构,生成对应的数据库查询语言。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
第四方面,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
上述本发明提供了一种语义搜索的实现方法、系统、计算机设备和存储介质。通过所述方法,结合两级命名实体识别技术和基于父节点分类的关系树生成技术,并利用了神经网络的建模能力,本发明不仅能够提高语义搜索技术中的实体抽取部分的泛化性和识别精度,而且还能增强了语义搜索技术对于复杂查询逻辑的鲁棒性,这对于语义搜索领域来说,是非常有意义的。
附图说明
图1是本发明实施例中语义搜索的实现方法的流程示意图;
图2是图1中步骤S10的流程示意图;
图3是图1中步骤S20的流程示意图;
图4是图1中步骤S30的流程示意图;
图5是图1中步骤S40的流程示意图;
图6是图5中步骤S402的基于索引的分类的示意图;
图7是图6中父节点坐标序列对应的关系树结构示意图;
图8是本发明实施例中文本关系树结构和片段关系树结构的示意图;
图9是图8中的关系树结构对应的语义搜索关系树结构示意图;
图10是本发明实施例中语义搜索的实现系统的结构示意图;
图11是本发明实施例中计算机设备的内部结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明第一实施例提出的一种语义搜索的实现方法,其中,包括步骤S10~S70:
步骤S10,将待识别文本输入第一NER模型,得到文本片段标记序列、包含实体的上下文片段、以及片段标记类型分类。
步骤S20,将所述包含实体的上下文片段输入第二NER模型,得到片段实体标记序列、实体、以及实体标记类型分类。
本实施例中为了使命名实体的识别结果更加的精准,没有使用现有的领域数据集进行模型训练,而是基于真实环境的数据重新构建了领域数据集。
对于训练集和测试集中的数据,本实施例中从真实线上环境中获取大量的数据,通过数据挖掘分析,并对数据进行清洗后,得到查询类的数据,生成查询数据集,然后使用根据实际应用环境设置了对应的标签,对查询数据集进行标签标注。比如,对数据清洗后得到如下的数据:
1、我要找广州最近成立的公司
2、我要一个月内吊销的建筑行业公司
3、我要找开在福建的渔场
预设的标签结构为(实体*一级类别*二级类别),具体的标签类别如下表1所示:
Figure BDA0003448406240000061
表1领域数据集标签类别
通过标签结构我们可以得到上述清洗后数据分别对应的标签为:
1、广州*地区*市、最近*时间*成立时间
2、一个月内*时间*注销时间、建筑行业*行业*建筑业
3、福建*地区*省、渔场*行业*农林渔牧
通过真实环境数据构建的领域数据集能够使后续对识别模型的训练结果更加准确,更符合实际情况的需要,当然构建的领域数据集只是一种优选的方式,应当理解的是,本实施例中也可以使用其他现有的领域数据集或者根据实际应用环境重新构建新的领域数据集,在此并不做具体的限制。
除了构建领域数据集之外,我们还构建了命名实体识别模型,本实施例中的命名实体识别模型包括两层命名实体识别模型,即第一NER模型和第二NER模型,其中第一NER模型经过训练之后,可以对输入的用户语句进行包含实体的上下文片段的识别,具体步骤如图2所示:
步骤S101,将所述待识别文本输入一级第一NER模型进行序列标注,得到文本片段类型序列;
步骤S102,将所述待识别文本和所述文本片段类型序列输入二级第一NER模型进行片段标记,得到文本片段标记序列、包含实体的上下文片段、以及片段标记类型分类。
本实施例中第一NER模型包括两级命名实体识别模型,其中一级第一NER模型的主干网络为Bert-CRF模型,Bert是自然语言处理中一种常见通用的预训练模型,CRF是条件随机场,是一种常见通用的序列标注算法,一级第一NER模型主要是识别包含实体的上下文片段,对输入的待识别文本进行序列标注,输出为对应的片段类型序列。
二级第一NER模型的主干网络为Bert模型,本实施例中将待识别文本和一级第一NER模型的输出共同作为二级第一NER模型的输入,二级第一NER模型的作用是通过一级第一NER模型的序列标注,对待识别文本增加特殊token,并对被token标记的片段进行分类。命名实体识别模型的具体搭建过程可以参阅常规的模型搭建方法,在此不再一一描述。
以“我要找不在广州最近成立的公司”作为待识别文本为例,将待识别文本输入一级第一NER模型进行命名实体识别,经过序列标注后,得到的文本片段类型序列为:
O,O,O,R_b,R_i,R_i,R_e,T_b,T_i,T_i,T_e,O,O,O
其中大写字母为实体类型,小写字母为实体位置,如R_b指地区Region的开头(begin),T_i指时间Time的中间(intermediate),实际上文本片段类型序列中的片段可以使用表1中的一级类型标签进行标注,当然也可以使用二级类型标签进行标注,具体的根据实际应用环境灵活设定。
将待识别文本和文本片段类型序列共同输入二级第一NER模型,实际上如果只将文本片段类型序列输入二级第一NER模型,是没有办法准确转换为待识别文本的,因为每个标签类型与具体片段并非一一对应关系,因此要将待识别文本和文本片段类型序列一起作为输入数据,对待识别文本中识别出的包含实体的上下文片段增加特殊token,得到文本片段标记序列:我要找[R]不在广州[R][T]最近成立[T]的公司,[R]不在广州[R]被分类为City,[T]最近成立[T]被分类为FoundTime,其中City为Region的二级分类,FoundTime为Time的二级分类。
也就是说,通过一级第一NER模型,我们得到了两个包含实体的上下文片段:“不在广州”和“最近成立”,然后将识别到的包含实体的上下文片段输入第二NER模型进行识别,具体识别过程如图3所示:
步骤S201,将所述包含实体的上下文片段输入一级第二NER模型进行序列标注,得到片段实体类型序列;
步骤S202,将所述包含实体的上下文片段和所述片段实体类型序列输入二级第二NER模型进行实体标记,得到片段实体标记序列、实体、以及实体标记类型分类。
本实施例中的第二NER模型同样包括两级命名实体识别模型,即一级第二NER模型和二级第二NER模型,和第一NER模型的区别在于,第一NER模型是对包含实体的上下文片段的识别,而第二NER模型则是对实体的识别。其中一级第二NER模型的主干网络也为Bert-CRF模型,二级第二NER模型的主干网络同样为Bert模型,其搭建过程在此也不再一一描述。
将第一NER模型识别出的包含实体的上下文片段输入一级第二NER模型,进行实体识别和序列标注,以“不在广州”为例,经过一级第二NER模型的实体识别和序列标注,得到的片段实体类型序列为:O,O,R_b,R_e,然后将上下文片段和片段实体类型序列共同输入二级第二NER模型,得到片段实体标记序列:不在[R]广州[R],[R]广州[R]被分类为City,其中City为Region的二级分类,同理,对于上下文片段“最近成立”经过二级NER模型识别最终得到的片段实体类型序列为:[T]最近[T]成立,[T]最近[T]被分类为FoundTime,其中FoundTime为Time的二级分类。应当理解的是,对于标签标记如T、F等,可以使用首字母或者多个字母,在此为了方便理解,只用了首字母进行表示,如果有相同的首字母,则可以使用多个字母进行表示,在此不做具体限制。
在现有的语义搜索技术中,实体抽取阶段是必要的,常用的实体抽取实现通常为模板或者正则匹配、或者简单的命名实体识别,不仅繁华小差,而且也不支持细粒度的识别。而本实施例中,通过两层命名实体识别模型,可以将一个复杂的文本进行切词,降低文本的复杂度,并且每层NER模型又包括两级命名实体识别模型,进一步细化实体的细粒度分类,从而提高了识别的准确性,也提高了整个识别过程的效率。
应当理解的是,这种两层和两级的命名实体识别模型只是本实施例的一种优选方式,实际上,根据应用环境,本实施例的NER模型结构可以扩展到多层多级,比如第一NER模型的输出为包含小片段的大片段,第二NER模型的输出为包含实体的小片段,第三NER模型的输出为实体等,并且每个NER模型也同样可以扩展到多级NER模型,如一级第一NER模型、二级第一NER模型、三级第一NER模型等,通过多级的NER模型,将复杂的待识别文本做进一步的多级拆分识别,这种多层的嵌套性可以应对复杂的查询语句,进一步提高了本实施例的扩展性。
步骤S30,使用预设分类符号和预设节点数据,按照预设规则分别对所述文本片段标记序列和所述片段实体标记序列进行格式转换,得到文本关系树叶节点序列和片段关系树叶节点序列。
通过上述步骤得到待识别文本的文本片段标记序列和片段实体标记序列之后,需要将这些序列的格式转换为可以作为关系树生成模型的输入序列的格式,具体的转换步骤如图4所示:
步骤S301,使用预设分类符号分别替换所述文本片段标记序列中的所述包含实体的上下文片段、和所述片段实体标记序列中的所述实体,得到文本片段标记标签序列和片段实体标记标签序列;
步骤S302,将预设关系节点数据和预设辅助节点数据按照预设规则分别拼接到所述文本片段标记标签序列的尾部、和所述片段实体标记标签序列的尾部,得到文本关系树叶节点序列和片段关系树叶节点序列。
本实施例中通过两层命名实体识别,我们得到了每个上下文片段以及每个实体分别对应的细粒度类型,如“我要找不在广州最近成立的公司”中,不在广州为City,最近成立为FoundTime,“不在广州”中,广州为City,“最近成立”中,最近为FoundTime,然后将这些识别到的类型替换掉对应的上下文片段和实体,从而得到文本片段标记标签序列和片段实体标记标签序列,如“我要找[City][FoundTime]的公司”、“不在[City]”和“[FoundTime]成立”。
在数据库中,有很多重要的关系节点,如ElasticSearch中的must,should,eq,neq(not equal),in,nin(not in)等等,而在关系树中也有一些辅助节点如树的根节点root,无效节点的父节点outside及值节点,在本实施例中如city.0,foundtime.0等,其中节点后面有序号代表支持多个同类型节点,如广州和深圳的企业,会处理为[city.0]和[city.1]的企业,为了将文本片段标记标签序列和片段实体标记标签序列转换为符合关系树生成模型的输入格式,我们将这些节点数据和辅助节点进行排列,然后分别拼接到相应的标记标签序列的尾部,作为关系树生成模型的输入数据。其中,关系节点数据如下表2所示,辅助节点数据如下表3所示:
关系节点 说明
must 必须
should 或者
eq 等于
neq 不等于
lte 小于
gte 大于
in 包含
nin 不包含
表2关系节点数据
Figure BDA0003448406240000111
表3辅助节点数据
我们将关系节点的所有数据进行排列,没有固定的排列顺序,只要包含所有关系节点数据即可,如:[must][should][eq][neq][lte][gte][in][nin],将辅助节点的根节点和外部节点排列到关系节点的前面,如:[root][outside][must][should][eq][neq][lte][gte][in][nin],然后将根据实际情况添加一个或多个值节点,其中,对于文本片段标记标签序列的添加规则是,将所有二级标签添加到辅助节点数据和关系节点数据之间,对于片段实体标记标签序列的添加规则是将实体对应的类型标签添加到辅助节点数据和关系节点数据之间,将实体对应的值节点添加到关系节点数据之后。
由于我们的实体标签是根据实际应用环境灵活设置的,为了简化描述,在此,我们假设在“我要找不在广州最近成立的公司”的事例中只有City、FoundTime、Industry三种二级实体类型,并且简化了关系节点的数量,则上述文本片段标记标签序列经过上述格式转换后的文本关系树叶节点序列如下:
我,要,找,[City],[Foundtime],的,公,司,[root],[outside],[City],[Foundtime],[Industry],[must],[should]
上述片段实体标记标签序列经过格式转换后的片段关系树叶节点序列分别为:
不,在,[City.0],[root],[outside],[City],[eq],[neq],[City.0]
[Foundtime.0],成立,[root],[outside],[Foundtime],[lte],[gte],[Foundtime.0]
其中,带有.0的后缀是因为在片段实体标记中,可能会有多个实体,因此以后缀数字作为区分。
也就是说,对于一级NER模型的输出结果,根据之前设置的标签类型,以及关系节点和辅助节点,其文本片段标记标签序列后拼接的数据是固定的,即为辅助节点+标签+关系节点;对于二级NER模型的输出结果,其片段实体标记标签序列后拼接的数据则是根据上下文片段对应的实体和实体类型选择对应的标签和关系节点拼接到辅助节点后面的,应当理解的是具体的拼接规则需要根据实际应用环境来设定,本实施例只是提供了一种优选的拼接规则,而非具体的限定。
步骤S40,将所述文本关系树叶节点序列和所述片段关系树叶节点序列分别输入关系树生成模型,得到文本父节点坐标序列和片段父节点坐标序列。
本实施例中的关系树生成模型使用了Bert模型加上定长全连接Dense层的结构,具体的搭建过程可以参阅常规模型搭建方法,在此不再赘述。本实施例中使用了第二领域数据集对关系树生成模型进行训练,其中第二领域数据集同样是根据真实的线上环境数据构建得到的,对NER模型训练的数据集是查询语句,那么第二领域数据集则经过查询语句NER模型识别之后得到那些叶节点序列,其标签则为叶节点序列对应的父节点序列,具体训练过程在此不在详细描述,训练好的关系树生成模型的父节点序列生成过程如图5所示:
步骤S401,将所述文本关系树叶节点序列输入关系树生成模型,对所述文本关系树叶节点序列中的预设节点数据进行基于索引的分类,生成文本父节点坐标序列;
步骤S402,将所述片段关系树叶节点序列输入关系树生成模型,对所述片段关系树叶节点序列中的预设节点数据进行基于索引的分类,生成片段父节点坐标序列。
仍以上述的“我要找不在广州最近成立的公式”为例,其文本关系树叶节点序列为:我,要,找,[City],[Foundtime],的,公,司,[root],[outside],[City],[Foundtime],[Industry],[must],[should]
将其输入关系树生成模型对应的输入序列为:[-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6],即文本片段类型序列均为-1,其后从0开始顺序排列,同样的,片段关系树叶节点序列对应的输入序列分别为:[-1,-1,-1,0,1,2,3,4,5]和[-1,-1,-1,0,1,2,3,4,5]。
关系树生成模型会对上述输入序列的关系节点和辅助节点进行基于索引的父节点分类,从而生成对应的文本父节点坐标序列和片段父节点坐标序列。
为了简化说明如何进行基于索引的父节点分类,假设我们从上述步骤中得到了如下的输入:[add0][add1]地区[root][add][eq][add0][add1],虽然包含了完整的输入序列,但我们只关注关系节点和辅助节点的分类结果,因此输出只有关系节点和辅助节点的基于索引的父节点分类结果,如图6所示,节点下面的数字代表其坐标,节点上面的数字代表其父节点坐标,那么关系树模型的输出结果就是其父节点坐标序列[0,0,1,2,2]。
通过图6的示例,我们使用同样的关系树生成模型对上述的事例中的文本关系树叶节点序列和片段关系树叶节点序列进行处理,得到的文本父节点坐标序列为:[-1,-1,-1,-1,-1,-1,-1,-1,0,1,5,5,1,0,1],片段父节点坐标序列为:[-1,-1,-1,0,1,0,1,2,4]和[-1,-1,-1,0,1,0,1,2,4]。
步骤S50,根据所述文本父节点坐标序列和所述片段父节点坐标序列,分别生成对应的文本关系树结构和片段关系树结构。
通过上述步骤得到的父节点坐标序列,我们需要将其转化为对应的关系树结构,即,将0对应的root作为根节点,按照数字标号进行关系树的构建,以图6对应的父节点坐标序列为例,可以生成如图7所示的关系树结构。
同样的,对于上述的步骤得到事例对应的父节点坐标序列,其对应输出的关系树结构如图8所示,忽略无效节点outside构建的关系树结构,我们只关心根据根节点root构建的关系树结构,其中图8(a)表示文本关系树结构,图8(b)和(c)分别表示两个片段关系树结构。
步骤S60,使用所述片段关系树结构替换所述文本关系树结构中所述包含实体的上下文片段对应的叶节点,生成语义搜索关系树结构。
本实施例中,文本关系树结构的叶节点对应的是包含实体的上下文片段,而包含实体的上下文片段又被构造成了片段关系树结构,因此,我们可以将片段关系树结构对应替换文本关系树结构中的叶节点,通过这种嵌套,就可以得到待识别文本的基于实体类型的关系树结构,以图8所示的关系树结构为例,通过叶节点替换,可以得到“我要找不在广州最近成立的公司”这个待识别文本对应的如图9所示的完整的语义搜索关系树结构。
步骤S70,根据所述语义搜索关系树结构,生成对应的数据库查询语言。
在得到待识别文本的语义搜索关系树结构之后,可以根据关系树结构中每一个叶节点的父节点分类结果,使用递归、遍历或者其他树生成的方式,将生成的关系树结构转化为数据库的查询语句,具体过程可以参阅常用的树生成方法,在此不再赘述。
应当注意的是,在实际应用中,有可能会出现孤立树和重复子树等问题需要处理,孤立子树是在做父节点分类时,其中一个节点的父节点由于分类出错,没有和根节点关联,也没有和其他节点关联,此时只需要遍历树,判断树是否完整,即有无和根节点关联,不完整的树舍弃掉即可;重复子树则是在做父节点分类时,出现闭环线性,即某个节点的父节点是该节点的子节点,此时只需要遍历树,判断树是否为闭环,闭环的树舍弃即可。当然其他的树算法也可以应用于本实施例中,在此不做具体限制。
以图9所示的语义搜索关系树结构为例,通过递归遍历之后,可以得到对应的查询语句:{'must':[{'City':{'neq':'广州'}},{'FoundTime':{'lte':'最近'}}]},实际上,对于图8所示的(a)(b)(c)三棵树也可以对应转换为查询语句,分别为:(a):{'must':['City','FoundTime']}(b):{'City':{'neq':'广州'}}(c):{'FoundTime':{'lte':'最近'}},将(b)(c)对应带入(a)中的City和FoundTime即为图9对应的查询语句。当然,这只是本实施例中优选的两层NER模型结构,实际上,对于复杂的应用环境可以设置多层的NER模型结构,从而进行多层的树结构的嵌套,可以有效的处理复杂的查询逻辑。
本实施例提供的一种语义搜索的实现方法,相比传统方法依赖模板匹配和规则系统泛化性差,并且难以处理多种实体类型的长难语句和复杂的查询逻辑,本发明能够增强语义搜索的泛化性以及应对复杂查询逻辑的鲁棒性;能够识别更细粒度的实体类型,适合具有多字段的数据库,提高长难语句的识别精度;本发明具有两层甚至多层嵌套性,具有良好的扩展能力,能够有效地处理复杂的查询逻辑。
请参阅图10,基于同一发明构思,本发明第二实施例提出的一种语义搜索的实现系统,包括:
片段识别模块10,用于将待识别文本输入第一NER模型,得到文本片段标记序列、包含实体的上下文片段、以及片段标记类型分类;
实体识别模块20,用于将所述包含实体的上下文片段输入第二NER模型,得到片段实体标记序列、实体、以及实体标记类型分类;
节点序列生成模块30,用于使用预设分类符号和预设节点数据,按照预设规则分别对所述文本片段标记序列和所述片段实体标记序列进行格式转换,得到文本关系树叶节点序列和片段关系树叶节点序列;
坐标序列生成模块40,用于将所述文本关系树叶节点序列和所述片段关系树叶节点序列分别输入关系树生成模型,得到文本父节点坐标序列和片段父节点坐标序列;
关系树生成模块50,用于根据所述文本父节点坐标序列和所述片段父节点坐标序列,分别生成对应的文本关系树结构和片段关系树结构;
叶节点替换模块60,用于使用所述片段关系树结构替换所述文本关系树结构中所述包含实体的上下文片段对应的叶节点,生成语义搜索关系树结构;
查询语句生成模块70,根据所述语义搜索关系树结构,生成对应的数据库查询语言。
本发明实施例提出的语义搜索的实现系统的技术特征和技术效果与本发明实施例提出的方法相同,在此不予赘述。上述语义搜索的实现系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
请参阅图11,一个实施例中计算机设备的内部结构图,该计算机设备具体可以是终端或服务器。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示器和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现语义搜索的实现方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域普通技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算设备可以包括比途中所示更多或更少的部件,或者组合某些部件,或者具有相同的部件布置。
此外,本发明实施例还提出一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法的步骤。
此外,本发明实施例还提出一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法的步骤。
综上,本发明实施例提出的一种语义搜索的实现方法、系统、计算机设备和存储介质,所述方法通过将待识别文本输入第一NER模型,得到文本片段标记序列、包含实体的上下文片段、以及片段标记类型分类;将所述包含实体的上下文片段输入第二NER模型,得到片段实体标记序列、实体、以及实体标记类型分类;使用预设分类符号和预设节点数据,按照预设规则分别对所述文本片段标记序列和所述片段实体标记序列进行格式转换,得到文本关系树叶节点序列和片段关系树叶节点序列;将所述文本关系树叶节点序列和所述片段关系树叶节点序列分别输入关系树生成模型,得到文本父节点坐标序列和片段父节点坐标序列;根据所述文本父节点坐标序列和所述片段父节点坐标序列,分别生成对应的文本关系树结构和片段关系树结构;使用所述片段关系树结构替换所述文本关系树结构中所述包含实体的上下文片段对应的叶节点,生成语义搜索关系树结构;根据所述语义搜索关系树结构,生成对应的数据库查询语言。该方法通过在语义搜索技术中引入两级命名实体识别和基于父节点分类的树生成技术,增强语义搜索的泛化性以及应对复杂查询逻辑的鲁棒性;通过引入两级命名实体识别技术,能识别更细粒度的实体类型,适合具有多字段的数据库,提高长难语句的识别精度;通过引入基于父节点分类的关系树生成技术,重构神经网络的输出层,针对每一个叶节点预测其父节点,进而生成关系树,具有多层嵌套能力,具有良好的扩展性,利用神经网络强大的拟合能力,能够有效地处理复杂的查询逻辑。
本说明书中的各个实施例均采用递进的方式描述,各个实施例直接相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。需要说明的是,上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种优选实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本申请的保护范围。因此,本申请专利的保护范围应以所述权利要求的保护范围为准。

Claims (7)

1.一种语义搜索的实现方法,其特征在于,包括:
将待识别文本输入第一NER模型,得到文本片段标记序列、包含实体的上下文片段、以及片段标记类型分类;具体为:将所述待识别文本输入一级第一NER模型进行序列标注,得到文本片段类型序列;
将所述待识别文本和所述文本片段类型序列输入二级第一NER模型进行片段标记,得到文本片段标记序列、包含实体的上下文片段、以及片段标记类型分类;
将所述包含实体的上下文片段输入第二NER模型,得到片段实体标记序列、实体、以及实体标记类型分类;具体为:将所述包含实体的上下文片段输入一级第二NER模型进行序列标注,得到片段实体类型序列;
将所述包含实体的上下文片段和所述片段实体类型序列输入二级第二NER模型进行实体标记,得到片段实体标记序列、实体、以及实体标记类型分类;
使用预设分类符号和预设节点数据,按照预设规则分别对所述文本片段标记序列和所述片段实体标记序列进行格式转换,得到文本关系树叶节点序列和片段关系树叶节点序列;
将所述文本关系树叶节点序列和所述片段关系树叶节点序列分别输入关系树生成模型,得到文本父节点坐标序列和片段父节点坐标序列;具体为:将所述文本关系树叶节点序列输入关系树生成模型,对所述文本关系树叶节点序列中的预设节点数据进行基于索引的分类,生成文本父节点坐标序列;
将所述片段关系树叶节点序列输入关系树生成模型,对所述片段关系树叶节点序列中的预设节点数据进行基于索引的分类,生成片段父节点坐标序列;
根据所述文本父节点坐标序列和所述片段父节点坐标序列,分别生成对应的文本关系树结构和片段关系树结构;
使用所述片段关系树结构替换所述文本关系树结构中所述包含实体的上下文片段对应的叶节点,生成语义搜索关系树结构;
根据所述语义搜索关系树结构,生成对应的数据库查询语言。
2.根据权利要求1所述的语义搜索的实现方法,其特征在于,所述使用预设分类符号和预设节点数据,按照预设规则分别对所述文本片段标记序列和所述片段实体标记序列进行格式转换,得到文本关系树叶节点序列和片段关系树叶节点序列的步骤包括:
使用预设分类符号分别替换所述文本片段标记序列中的所述包含实体的上下文片段、和所述片段实体标记序列中的所述实体,得到文本片段标记标签序列和片段实体标记标签序列;
将预设关系节点数据和预设辅助节点数据按照预设规则分别拼接到所述文本片段标记标签序列的尾部、和所述片段实体标记标签序列的尾部,得到文本关系树叶节点序列和片段关系树叶节点序列。
3.根据权利要求1所述的语义搜索的实现方法,其特征在于,所述一级第一NER模型和所述一级第二NER模型的主干网络均为Bert-CRF模型;
所述二级第一NER模型和所述二级第二NER模型的主干网络均为Bert模型。
4.根据权利要求1所述的语义搜索的实现方法,其特征在于,所述关系树生成模型的主干网络为Bert模型加上定长的Dense全连接层。
5.一种语义搜索的实现系统,其特征在于,所述系统包括:
片段识别模块,用于将待识别文本输入第一NER模型,得到文本片段标记序列、包含实体的上下文片段、以及片段标记类型分类;具体为:将所述待识别文本输入一级第一NER模型进行序列标注,得到文本片段类型序列;
将所述待识别文本和所述文本片段类型序列输入二级第一NER模型进行片段标记,得到文本片段标记序列、包含实体的上下文片段、以及片段标记类型分类;
实体识别模块,用于将所述包含实体的上下文片段输入第二NER模型,得到片段实体标记序列、实体、以及实体标记类型分类;具体为:将所述包含实体的上下文片段输入一级第二NER模型进行序列标注,得到片段实体类型序列;
将所述包含实体的上下文片段和所述片段实体类型序列输入二级第二NER模型进行实体标记,得到片段实体标记序列、实体、以及实体标记类型分类;
节点序列生成模块,用于使用预设分类符号和预设节点数据,按照预设规则分别对所述文本片段标记序列和所述片段实体标记序列进行格式转换,得到文本关系树叶节点序列和片段关系树叶节点序列;
坐标序列生成模块,用于将所述文本关系树叶节点序列和所述片段关系树叶节点序列分别输入关系树生成模型,得到文本父节点坐标序列和片段父节点坐标序列;具体为:将所述文本关系树叶节点序列输入关系树生成模型,对所述文本关系树叶节点序列中的预设节点数据进行基于索引的分类,生成文本父节点坐标序列;
将所述片段关系树叶节点序列输入关系树生成模型,对所述片段关系树叶节点序列中的预设节点数据进行基于索引的分类,生成片段父节点坐标序列;
关系树生成模块,用于根据所述文本父节点坐标序列和所述片段父节点坐标序列,分别生成对应的文本关系树结构和片段关系树结构;
叶节点替换模块,用于使用所述片段关系树结构替换所述文本关系树结构中所述包含实体的上下文片段对应的叶节点,生成语义搜索关系树结构;
查询语句生成模块,根据所述语义搜索关系树结构,生成对应的数据库查询语言。
6.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
CN202111683267.1A 2021-12-31 2021-12-31 一种语义搜索的实现方法、系统、计算机设备和存储介质 Active CN114490928B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111683267.1A CN114490928B (zh) 2021-12-31 2021-12-31 一种语义搜索的实现方法、系统、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111683267.1A CN114490928B (zh) 2021-12-31 2021-12-31 一种语义搜索的实现方法、系统、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN114490928A CN114490928A (zh) 2022-05-13
CN114490928B true CN114490928B (zh) 2023-03-24

Family

ID=81509812

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111683267.1A Active CN114490928B (zh) 2021-12-31 2021-12-31 一种语义搜索的实现方法、系统、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN114490928B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10437833B1 (en) * 2016-10-05 2019-10-08 Ontocord, LLC Scalable natural language processing for large and dynamic text environments
CN111782781A (zh) * 2020-05-29 2020-10-16 平安科技(深圳)有限公司 一种语义分析方法、装置、计算机设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090019032A1 (en) * 2007-07-13 2009-01-15 Siemens Aktiengesellschaft Method and a system for semantic relation extraction
CN101446944A (zh) * 2008-12-10 2009-06-03 苏州大学 一种自然语言句子的语义关系树的构造和比较方法
CN107491534B (zh) * 2017-08-22 2020-11-20 北京百度网讯科技有限公司 信息处理方法和装置
US20190236102A1 (en) * 2018-01-29 2019-08-01 Planet Data Solutions System and method for differential document analysis and storage
CN112989005B (zh) * 2021-04-16 2022-07-12 重庆中国三峡博物馆 一种基于分阶段查询的知识图谱常识问答方法及系统
CN113283243B (zh) * 2021-06-09 2022-07-26 广东工业大学 一种实体与关系联合抽取的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10437833B1 (en) * 2016-10-05 2019-10-08 Ontocord, LLC Scalable natural language processing for large and dynamic text environments
CN111782781A (zh) * 2020-05-29 2020-10-16 平安科技(深圳)有限公司 一种语义分析方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN114490928A (zh) 2022-05-13

Similar Documents

Publication Publication Date Title
Liu et al. A survey of CRF algorithm based knowledge extraction of elementary mathematics in Chinese
Demir et al. Improving named entity recognition for morphologically rich languages using word embeddings
CN105706092B (zh) 四值模拟的方法和系统
Zhu et al. Improving Chinese named entity recognition by large-scale syntactic dependency graph
CN113641830B (zh) 模型预训练方法、装置、电子设备和存储介质
CN114547619B (zh) 一种基于树的漏洞修复系统及修复方法
CN113609838B (zh) 文档信息抽取及图谱化方法和系统
CN110245349A (zh) 一种句法依存分析方法、装置及一种电子设备
CN114580424A (zh) 一种用于法律文书的命名实体识别的标注方法和装置
CN115600605A (zh) 一种中文实体关系联合抽取方法、系统、设备及存储介质
CN115762659A (zh) 融合smiles序列和分子图的分子预训练表示方法及系统
Wei et al. GP-GCN: Global features of orthogonal projection and local dependency fused graph convolutional networks for aspect-level sentiment classification
CN116386895B (zh) 基于异构图神经网络的流行病舆情实体识别方法与装置
CN112148879B (zh) 一种自动给代码打数据结构标签的计算机可读存储介质
Zhao et al. Relation extraction: advancements through deep learning and entity-related features
CN114490928B (zh) 一种语义搜索的实现方法、系统、计算机设备和存储介质
Li et al. Effective representation for easy-first dependency parsing
CN116340507A (zh) 一种基于混合权重和双通道图卷积的方面级情感分析方法
CN114757181B (zh) 基于先验知识端到端的事件抽取模型的训练、事件抽取方法及装置
CN115169370A (zh) 语料数据增强方法、装置、计算机设备及介质
CN111523302B (zh) 一种句法分析方法、装置、存储介质及电子设备
Ryu et al. Transformer‐based reranking for improving Korean morphological analysis systems
CN112182204A (zh) 构建中文命名实体标注的语料库的方法、装置
Rajbhoj et al. DocToModel: Automated Authoring of Models from Diverse Requirements Specification Documents
CN116595192B (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