一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种自然语言语义提取方法和系统与流程

2022-02-19 23:30:18 来源:中国专利 TAG:


1.本发明涉及语义识别技术领域,特别地涉及一种应用于信息推荐系统的自然语言语义提取方法和系统。


背景技术:

2.在目前的信息时代,各类专业或综合信息平台都能够为具有供需关系的用户双方提供其所需要的信息。例如,专业的招聘平台为作为供应方的招聘者和作为需求方的求职者同时提供了众多的招聘信息和求职信息;一些综合性网站提供了大量的广告招标信息和广告投放需求信息等等。以招聘市场为例,绝大部分求职者及招聘者都会选择从一些网络招聘平台上寻找合适的职位及人才。通常,求职者和招聘者会在诸如招聘网站、招聘app等平台上注册,求职者在其上填写简历,其中记载个人信息及希望谋求的职位,而招聘者则填写招聘信息,其中记载公司信息、招聘的具体职位及职位要求等信息。或者,求职者在未登录状态在搜索栏填写关键词直接搜索职位。由于招聘平台上汇集了大量的信息,如果单纯依赖求职者、招聘者人工手动搜索,在海量信息中找到适合自已的职位或人才将是一件既耗时又非常困难的事情。因而,为了增加招聘平台上的求职或招聘的成功率,帮助求职者及招聘者提高效率,一些招聘平台推出了职位推荐服务,即根据算法,为求职者推荐职位信息。例如,申请号为201811208036.3、名称为“一种职位推荐方法及系统”的中国发明专利申请提供了一种方法,将用户的访问数据生成数据矩阵,采用深度学习的算法对所述数据矩阵进行预测,依据预测结果和人物画像数据生成职位推荐数据。申请号为201710947915.7、名称为“职位推荐的处理方法及装置”的中国发明专利申请提供了另一种方法,提取求职者的简历特征以得到求职者特征信息,提取投递到招聘项目中的简历特征得到职位特征信息,通过将这两种特征进行匹配,根据二者的匹配度得到可以为求职者推荐的相关职位。还有一些其他实现职位推荐的方法,在此不再一一赘述。
3.通过对现有职位推荐方法的分析发现,大部分时候推荐的职位在某个或某些方面并不能真正满足求职者的要求。导致这种结果的原因可能有多个,其中一个重要原因是推荐算法不能准确地理解求职者/招聘者的意图。例如,申请号为201811208036.3的中国发明专利申请提供的方法通过用户访问数据和用户人物画像数据来理解用户的求职意图,其得到求职意图并不是直接来自于用户,很容易出现理解偏差。而对于申请号为201710947915.7的中国发明专利申请,虽然其提供的方法是基于用户的简历进行特征提取,但是特征提取的准确性及提取的特征是否能够真实地反映用户的求职意图有待考证。
4.求职者/招聘者会将其求职/招聘意图明确在写进简历/招聘信息,理论上通过简历/招聘信息便可以得到求职者/招聘者的意图。但是从实践经验来看,求职者最终得到的职位并不完全符合简历上标明的职位,招聘者最终招聘的人员也并非完全符合招聘信息,因而,如果只拘泥于简历或招聘信息中的内容,显然会漏掉很多符合求职者/招聘者意图的职位/人才。因而,能够正确理解简历/招聘信息,并通过简历/招聘信息中隐藏的深层语义真正得到求职者/招聘者的意图,是提供准确推荐信息的重要因素,遗憾的是,目前还有这
样的方案。


技术实现要素:

5.针对现有技术中存在的技术问题,本发明提出了一种自然语言语义提取方法和系统,通过对用户相关描述文件进行语义提取,以提高对用户相关描述文件的意图的理解。
6.为了解决上述技术问题,根据本发明的一个方面,本发明提供了一种自然语言语义提取方法,其中包括以下步骤:
7.对目标文件以句子为单位进行分词以得到多个分词单元;分析一个句子中的多个分词单元是否构成关键词;响应于一个句子中的多个分词单元构成一个或多个关键词,提取出包含所述关键词的句子;对包含所述关键词的句子进行语法分析,以得到语法树;以及从所述语法树中提取出有效关键词。
8.根据本发明的另一个方面,本发明还提供了一种自然语言语义提取系统,其中包括分词模块、句子提取模块、语法分析模块和关键词提取模块,其中,所述分词模块经配置以对目标文件以句子为单位进行分词以得到多个分词单元;所述句子提取模块与所述分词模块相连接,经配置以分析所述多个分词单元是否构成关键词,并提取出包含有关键词的句子;所述语法分析模块与所述句子提取模块相连接,经配置以分析所述包含有所述关键词的句子,并根据分析结果构建语法树;所述关键词提取模块与所述语法分析模块相连接,经配置以从所述语法树中提取出有效关键词。
9.本发明提供的方法和系统根据信息推荐的需求,从相关目标文件内容中抽取出符合信息推荐要求的关键词,通过对包含关键词的句子进行语法分析,对语法树的拆分、重构而得到有效的关键词,从而可以得到目标文件的真正意图,提高了对用户目标需求的理解度。
附图说明
10.下面,将结合附图对本发明的优选实施方式进行进一步详细的说明,其中:
11.图1是根据本发明的一个实施例的应用于信息推荐系统的自然语言语义提取方法流程图;
12.图2是根据本发明的一个实施例的分词流程图;
13.图3是根据本发明的一个实施例的语法树示意图;
14.图4a是根据本发明的一个实施例的从所述语法树中提取出有效关键词及对应的语义标签流程示意图;
15.图4b是根据本发明的一个实施例的生成有向无环图的流程示意图;
16.图5是根据本发明的一个实施例的生成主标签的流程示意图;
17.图6是根据本发明的一个实施例的自然语言语义提取系统的原理框图;
18.图7是根据本发明的一个实施例的句子提取模块的原理框图;
19.图8是根据本发明的一个实施例的语法分析模块的原理框图;以及
20.图9是根据本发明的一个实施例的关键词提取模块的原理框图。
具体实施方式
21.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
22.在以下的详细描述中,可以参看作为本技术一部分用来说明本技术的特定实施例的各个说明书附图。在附图中,相似的附图标记在不同图式中描述大体上类似的组件。本技术的各个特定实施例在以下进行了足够详细的描述,使得具备本领域相关知识和技术的普通技术人员能够实施本技术的技术方案。应当理解,还可以利用其它实施例或者对本技术的实施例进行结构、逻辑或者电性的改变。
23.为了能够清晰地对本发明的方案进行说明,本发明定义了以下名词的具体含义:
24.关键词:具有多样表达形式的词组,例如由两个名词构成的词组,如“汽车销售”、“车辆销售”、“汽车推销”和“车辆推销”等。
25.分词单元:在进行语义提取过程中,对句子进行分词操作后得到的分词,其为单字、双字或多个单字组成的词组,如分词后的句子“我是java工程师”中的“我”、“是”、“java”、“工程师”。
26.词语单元:收集在字典中的、具有独立语义、不可再拆分的词语,例如“汽车”、“销售”。
27.语义标签:关键词的标准化版本,比如使用语义标签“汽车销售”作为关键词“汽车销售”、“车辆销售”、“汽车推销”和“车辆推销”的标准化版本。
28.前缀词:组成关键词的两个或多个分词单元中的第一个,如:“汽车销售”中的“汽车”,“车辆销售”中的“车辆”等。
29.后缀词:组成关键词的两个或多个词语单元中的最后一个,如:“车辆销售”中的“销售”,“汽车采购”中的“采购”等。
30.图1是根据本发明一个实施例的应用于信息推荐系统的自然语言语义提取方法流程图,所述方法包括:
31.步骤s1,对目标文件以句子为单位进行分词以得到多个分词单元。
32.步骤s2,分析所述多个分词单元是否构成关键词。
33.步骤s3,响应于所述多个分词单元构成一个或多个关键词,提取出包含所述关键词的句子。
34.步骤s4,对包含所述关键词的句子进行语法分析得到语法树。
35.步骤s5,从所述语法树中提取出有效关键词及对应的语义标签。
36.其中,在步骤s1中,可以使用现有的任何一种分词方法进行分词。例如,基于词典的机械分词法,如正向最大匹配法、逆向最大匹配法或双向匹配法等。或者是基于统计的分词方法,通过计算一个字与其上下文中相邻的字联合出现频率来判断它们成词的概率。在一个实施例中,基于层次的隐马尔可夫模型(hierarchical hidden markov model,简称hhmm)将汉语分词、切分排歧、未登录词识别、词性标注等词法分析任务融合到一个相对统一的模型中,实现对一个句子中的字串进行同义词替换、中文分词以及词性标注等,从而将所述句子进行分词。如图2所示,是根据本发明一个实施例的分词流程图,具体包括以下步
骤:
37.步骤s11,对句子中原始字符串进行同义词替换。在进行分词之前,对句子中原始字符串进行同义词替换。同义词词典中保存有多个词条及其可被替换的同义词词条。在原始字符串中,查找最大长度的同义词,如果找到,则替换成对应的替换词。处理过程中还可以进行英文的大小写转换、标点符号的中英文转换以及全角字符和半角字符的转换等处理。例如:“销售经理”是用来替换的同义词词条,与其对应的词条包括“业务经理”、“sales manager”,又例如“惠普”是用来替换的同义词词条,与其对应的词条有“hp”,“dba”是用来替换的同义词词条,与其对应的词条为“数据库工程师”,当原始句子为“hp公司招聘sales manager和数据库工程师职位”时,经过同义词替换后变成“惠普公司招聘销售经理和dba职位”。通过上述的同义词替换,能够有效降低语义分析语料的非标准性,提高语义分析的准确率。
38.步骤s12,采取k

best最短路径方法对所述句子进行初步切分,从而得到能覆盖歧义的k个最佳切分结果。查询核心数据字典,查找待切分句子中的每个字及其可能成词的所有情况,将查询得到的词语结果保存在稀疏矩阵中,并记录相应词语的频率。如果该词条为不可切分词(如funclist词典中的词),则按预定好的切分及标注结果输出,把该词条中包含的其他词条删除;如词条“自动化测试”为不可切分词,则在矩阵中相应删除“自”“自动”“自动化”“动”“化”“测”“测试”“试”词条,只保留“自动化测试”。遍历稀疏矩阵中的所有节点,前后词用@相连,如:“说@的”,“说@的确”,查询bigramdict数据字典,获取相应的概率值,并作平滑处理,计算结果作为每条边的概率,从而得到分词图。利用k

best最优路径算法在分词图中已有的m条路径中查找最优的k条路径。
39.步骤s13,采用底层隐马模型识别出未登录词。经过初步切分阶段后,已经产生了k条最优路径,但其中可能会包含一些未识别出来的未登录词,比如人名、地名等,本步骤的目的是识出这些未登录词。本发明将一个句子中所有的词划分为三类:人名的内部组成、上下文、无关词,按该分类规则划分的词或词组称之为角色。经过角色划分,将当前句子转批为角色序列。在一个实施例中,采用viterbi算法对初步切分阶段的一个句子的切分结果进行角色标注从而得到一个最佳角色序列。根据预置的角色串与所述最佳角色序列进行匹配,如果在所述最佳角色序列中匹配到角色串,则确定所述角色串为未登录的人名或地名,并将所述未登录的人名或地名作为一个节点,计算其概率后增加到分词图中。
40.步骤s14,再次进行k

best最短路径的求解,以得到优化的分词结果。由于分词图已经改变,因而需要再次进行k

best最短路径的求解,从而得到优化的分词结果,如将原来的“张华平说的确实在理”经过优化分词后便处理为:“张华平说的确实在理”。
41.步骤s15,在优化的分词结果上进行词性的隐马标注,即为每个分词标注出其词性,如名词、动词、形容词等等,如标注后得“张华平/nr说/v的/ad确实/adj在理/vt”从而为下一步的语义识别提供依据。
42.在步骤s2中,为了分析所述多个分词单元否能构成关键词,包括步骤包括:
43.查询词语单元词典,响应于在词语单元词典查询到句子中的分词单元时,确定所述分词单元为词语单元。其中,词语单元词典中收录了在招聘领域中常见的词语单元。如行业维度的词语单元“软件”、“硬件”,职能维度的词语单元“工程师”、“销售”、“客服”,技能维度的词语单元“java”、“花艺”,语言维度的词语单元“日语”、“英语”等等。
44.当查询得到多个词语单元时,对所述多个词语单元进行排列组合以得到多个词组。查询词组词典,当在词组词典查询到所述词组时,确定所述词组为关键词。
45.例如,分词之后的句子为“我是java和c 工程师”,通过查找词语单元词典,在其中查找到句子中的分词单元“java”,“c ”和“工程师”,从而确认该句子的词语单元为“java”,“c ”和“工程师”;通过对这三个词语单元排列组合可以得到“java”、“c ”、“工程师”、“java工程师”、“c 工程师”,“javac ”和“javac 工程师”等词组。然后查找词组词典,从中可以找到“java”、“c ”、“工程师”、“java工程师”和“c 工程师”,因而可以确认关键词为“java”、“c ”、“工程师”、“java工程师”和“c 工程师”,而“javac ”和“javac 工程师”这两个词组没有出现在词组词典中,从而将这两个词组排除。
46.经过上述处理,可以确定,“我是java和c 工程师。”这个句子包含了关键词,因而可以进行下一步的语法分析,如果句子中没有关键词,则不进行下一步的分析。
47.通过步骤s2,从目标文件中筛选出了多个包含有意义的关键词的句子,从而在语法分析时只对包含有关键词的句子进行语法分析,避免了对目标文件的全文进行语法分析,既提高了效率,也减少了干扰信息。
48.在一个实施例中,每一个句子生成一个语法树,一个语法树设置有一个根节点root,句子中的每一个分词单元为一个节点,其中,根节点root指向作为谓语的分词单元(其词性通常为动词),再由作为谓语的分词单元指向其他分词单元,具有指向关系的两个节点构成一定的语法关系。例如,词性为动词的分词单元指向作为主语的分词单元,这两个分词单元构成主谓关系(nsubj);词性为动词的分词单元指向作为动词宾语的分词单元,这两个分词单元构成动宾关系(dobj)。在步骤s4中,首先按照一个句子中的分词单元在句子中的排序,从句首开始,按照预置语法规则依次获取两个分词单元的指向关系及语法关系;然后依据分词单元的指向关系及语法关系建立语法树。
49.在一实施例中,采用神经网络语法关系分析模型计算每个句子中两个分词单元的指向关系及语法关系。在该网络模型中,运用了转移分析法来获得两个分词单元的指向关系及语法关系。
50.其中,在一实施例中,构造出一个配置结构(configuration),所述配置结构包括缓存(buffer)、栈(stack)和语法关系(dependency)三个结构,其中,所述缓存(buffer)用于存放句子里的分词单元,相当于一个队列,遵循先进先出原则。栈(stack)用于存放句子里的分词单元,也相当于一个队列,遵循先进后出原则,栈底先存放“root”节点。每一次判断时,只判断栈顶的两个分词单元之间的关系。因而stack中存放的是将要被判断关系的分词单元,或是之前判断失败继续等待被判断的分词单元。语法关系(dependency)用于存储两个分词单元的指向关系及语法关系。
51.通过将缓存中的分词单元逐个转移入栈内,根据栈顶三分词单元及缓存前三个分词单元来确定栈顶两个分词单元的指向关系和语法关系。
52.其中,对配置中的转移操作定义为以下三种:
53.左赋值(left

arc):判定栈顶元素s1(第一个分词单元)与其下方的元素s2(第二个分词单元)之间存在由s1指向s2(s1

>s2)的语法关系xxx(也可以称:s2为s1的子节点,并具有语法关系xxx),将作为子节点的s2移出栈。需要保证栈内有大于等于两个分词单元。
54.右赋值(right

arc):判定栈顶元素s1与其下方的元素s2之间存在由s2指向s1
[0070][0071]
其中,表

3中未说明的语法关系标签说明如下:
[0072]
dobj:直接宾语
[0073]
nsubj:名词作主语
[0074]
nmod:topic:名词为主题
[0075]
ccomp:从句性补语
[0076]
compound:nn:复合名词作为修饰词
[0077]
amod:形容词作为修饰词
[0078]
nmod:assmod:关联词作为修饰词
[0079]
amod:ordmod:序数词作为修饰词
[0080]
compound:vc:动词从句的复合
[0081]
nmod:名词作为修饰词
[0082]
advmod:副词作为修饰词
[0083]
nummod:数字作为修饰词
[0084]
mark:clf(classifier modifier)类别词作为修饰词
[0085]
在本实施例中,并列关系(conj)、定语从句(acl)、动名关系和名名/状语是有效的语法关系,其余语法关系为无效语法关系。
[0086]
以句子“我熟悉java和c 开发。”为例,根据前一步确定该句子中的语法关系及相应的分词单元对如表

4:
[0087][0088]
根据语法关系的分类,去掉无效的语法关系,则有效的语法关系及分词单元对如


5所示。
[0089]
步骤s52,对分类后的分词单元对重组,构建语群,其中所述语群中包括同一路径中逐级连接的多个分词单元。
[0090]
在一个实施例中,通过构建有向无环图对分类后的分词单元进行重新连接。其中,在重新连接时,根据分词单元对自身的语法关系及与其连接的分词单元对的语法关系进行分词单元对的拆对、重连。例如:对表

5中的有效分词单元对重组,过程如图4b所示:
[0091]
步骤s521,首先处理1类的并列关系的分词单元对。在本实施例中,并列关系的分词单元对为(c ,java),与其关联的分词单元对为名名关系的(开发,c )。根据预置规则:当并列关系的分词单元对中的头(即分词单元对中的父节点)连接表

3中的3类或4类时,打断原并列关系的分词单元对的连接,将原并列关系中的两个分词单元作为子节点分别连接到3类或4类中的父节点。因而在本实施例中,首选打断“c ”与“java”之间的连接,再将二者分别连接到“开发”上,作为“开发”的子节点。
[0092]
步骤s522,接下来处理2类的具有定语从句语法关系的分词单元对。由于本实施例中没有定语从句关系的分词单元对,从而跳过该步骤处理3类动名关系的分词单元对。其中,对于语法关系为定语从句的分词单元对(由名词指向动词,名词为动词的父节点),将动词节点连接到根节点(root),作为根节点(root)的子节点,并改变原分词单元对的指向,即由动词指向名词,动词变为名词的父节点。
[0093]
本实施例中的动名关系的分词单元对分别为动宾语法关系的(熟悉,开发)和主谓语法关系的(熟悉,我)。根据预置的语法规则:将动宾语法关系的中的父节点连接到根节点(root),即将“熟悉”连接到“root”,作为“root”的子节点,从而包含了本实施例中的具有root语法关系的分词单元对(root,熟悉)。
[0094]
步骤s523,以根节点“root”为开始节点,并为每一个没有下一级节点的节点连接到结束节点“end”上,从而得到了完整的有向无环图。
[0095]
其中,从开始节点到结束节点的同一路径上的全部分词单元组成一个语群。如图4b中所示,共有三个语群,分别为“熟悉” “开发” “c ”、“熟悉” “开发” “java”和“熟悉” “我”,每一条路径上的分词单元从开始节点到结束节点逐级连接。
[0096]
步骤s53,查询构成关键词的全部词语单元是否位于同一个语群。本步骤用于验证步骤s3中确定出的关键词是否是有效关键词。其验证方法是,查询构成关键词的全部词语单元是否位于同一个语群,如果位于同一个语群,则为有效关键词,否则不是有效关键词,应予以丢弃。例如,通过“我熟悉java和c 开发。”中提取出的关键词“开发java”中的前缀词“开发”和后缀词“java”位于同一个语群,关键词“开发c ”中的前缀词“开发”和后缀词“c ”位于同一个语群,从而确定“开发java”和“开发c ”是有效关键词。在步骤s2中,从“我每天负责擦玻璃,偶尔回去采购部擦”中得到关键词“采购玻璃”,在查询语群时,前缀词“采购”和后缀词“玻璃”不在同一个语群,因而“采购玻璃”不是有效关键词,被丢弃不用。从而可见,通过构建语群,可以排除提取有误的关键词,从而能够更准确地理解目标文件。
[0097]
步骤s54,响应于构成关键词的全部词语单元位于同一个语群,确定所述关键词为候选关键词。
[0098]
步骤s55中,对候选关键词进行过滤,过滤后得到的是有效关键词。
[0099]
在本发明一个实施例中,词语单元具有相应的属性,例如,对应正常的、位于白名
单中的词语单元,设置其属性标识flag的值为0,对于位于括号内部和特殊符号后面的词语单元,其属性标识flag的值为1;位于黑名单列表中的词语单元的属性标识flag的值为2;在标题中添加的默认词语单元(如“盇盉”)的属性标识flag的值为3。在步骤1中进行分词得到分词单元后,在确定该分词单元为词典中的词语单元的同时,根据其在目标文件及前述属性规则,为每一个作为词语单元的分词单元设置属性值。例如,对于目标文件中的“前端工程师(能源)”中的“能源”,其位于括号内,因而将“能源”的属性标识flag值设置为1,将“工程师”的属性标识flag值设置为0。如果在目标文件的标题中提取到默认词语单元“盇盉”,将其属性标识flag值设置为3。
[0100]
获取候选关键词的词语单元的属性flag值,当候选关键词中的所有词语单元的属性标识flag值都为0时,设置所述候选关键词的属性flag值为0,即为第一类候选关键词。当候选关键词中有属性标识flag值都为1的词语单元时,其为第二类候选关键词。当候选关键词中有属性标识flag值都为2的词语单元时,其为第三类候选关键词;当选关键词中有属性标识flag值都为3的词语单元时,其为第四类候选关键词。
[0101]
在过滤时,首先对第一类候选关键词的整体进行包含关系过滤,即当构成第一候选关键词的所有词语单元全部包含在第二候选关键词中,删除所述第一候选关键词,并对其进行标记。例如,当由“后端研发工程师”分别提取出四个关键词“工程师”、“后端研发”、“后端工程师”和“后端研发工程师”时,由于“工程师”、“后端研发”、“后端工程师”均包含在“后端研发工程师”中,因而将前三个删除,只保留“后端研发工程师”这一个关键词,既避免了重复,也减小了后续匹配知识节点的计算量。
[0102]
当第二类候选关键词中包含了已删除的第一类候选关键词时,将其删除。例如,从“前端工程师(能源)”中提取出三个关键词“工程师”、“前端工程师”和“能源工程师”,可以显明得知“能源工程师”是一个错误的关键词。根据前述包含关系的过滤处理,将关键词“工程师”删除而保留“前端工程师”,由于“能源”位于括号内,其属性标识flag值为1,因而“能源工程师”属于第二类候选关键词,其中包括了已删除的“工程师”,因而需要将其删除,从而解决了在提取关键词时提取错误的问题。
[0103]
第三类候选关键词中包含有黑名单中的词语单元,因而需要将其删除。
[0104]
当第四类候选关键词中存在被第一类、第二类候选关键词包含的词语单元,将其删除。例如,当从“盇盉人事经理”中提取出的两个关键词“盇盉人事”和“人事经理”时,“人事经理”为第一类候选关键词,“盇盉人事”为第三类候选关键词,由于“盇盉人事”中的词语单元“人事”包含在第一类候选关键词“人事经理”中,因而将第三类候选关键词“盇盉人事”删除,只保留“人事经理”。
[0105]
经过上述过滤操作,从候选关键词中过滤掉重复、有歧义、提取错误等的关键词,剩余的则为有效关键词。
[0106]
步骤s56,对有效关键词进行标准化以得到对应的语义标签。本发明提供有配置文件,其包括前缀表和后缀表,所述前/后缀表中记录有构成关键词的多个前/后缀,每个前/后缀具有对应的构成语义标签的标准化版本。例如前缀“插排”是前缀“插座”的标准化版本。后缀“贩售”的标准化后缀为“销售”。根据有效关键词的前缀和后缀,分别查询前缀表和后缀表,将有效关键词的前缀和后缀映射为标准前缀和标准后缀。例如,将关键词“房地产推销”映射为“房地产销售”,将“java开发”映射为“java研发工程师”,将“商务专员”映射为

商务人员”等等。
[0107]
所述的目标文件可以是一个文件整体,也可以是一个文件的某个章节或段落。通过以上步骤,从一个目标文件中提到了代表各种类别信息的语义标签,有的是非常重要,而用的可能不重要。为了使信息推荐系统在以目标文件作为依据查询推荐目标时的效率更高、更加准确,本发明还包括了主标签(postag)的提取过程。其以目标文件的多个语义标签为基础,利用知识图谱对语义标签进行拆分、泛化,再经过过滤得到具有标准化信息的节点标签,再由节点标签组合得到多个主标签。具体如图5的流程所示。
[0108]
步骤s61,将语义标签输入到知识图谱库中,根据语义标签与节点标签的映射关系,针对所述的语义标签得到多个节点。所述知识图谱库包括多个相关联的节点,所述节点包括节点标签及对应的一个或多个属性,所述节点根据不同属性连接与其具有映射关系的节点。所述映射关系为包含关系或相似关系。知识图谱中的每一个知识节点的同一个属性按照包含关系既可以连接有上一级节点,也可以连接有下一级节点,因而,一个属性的映射关系为一个链条。在这个映射关系的多级链条上的节点,有些是相对抽象、而有些是比较具体。由于主标签的作用是用于职位推荐时的搜索和匹配,如果主标签的内容过于具体,不利于职位的推荐,因而一个属性的映射关系中的有些节点不适合组合成主标签,而有些则可以组合成主标签,在本发明中,将适合组合成主标签的节点称为有效节点(fclass)。例如节点“hibernate”过于详细,不适合用来组合成主标签,而节点标签“java”可以用来组合主标签,因而节点“java”属于有效节点fclass。根据映射关系,多个有效节点也构成一个多级链条,在这个多级链条的终点,没有上一级节点的有效节点称为有效根节点(tfclass)。当将语义标签输入到知识图谱库中时,分别利用语义标签的前缀和后缀与知识图谱库中的节点进行匹配,通过前缀和后缀分别得到一个节点,再根据节点之间的映射关系,可以得到多个相关联的节点。例如,通过“hibernate研发工程师”的语义标签可以得到节点“hibernate”和“研发工程师”,其中,节点“hibernate”具有技能属性和行业属性,在技能属性上可以得到上一级节点“java”,在行业属性可以得到上一级节点“软件”。节点“研发工程师”的属性为职能,在职能属性的映射关系中可以得到上一级“工程师”。
[0109]
步骤s62,对得到的多个节点进行合并、过滤,从而得到多个候选节点。经过前述步骤s61后得到的节点中,有些节点由于同时具有不同属性,在映射时可能根据不同的属性而被重复匹配得到。将重复的节点合并为同一个节点,并过滤掉不适合的节点。例如,用户当前的职位名称为能源工程师时,其选择的行业为“石油/化工/矿业”。由于“化工”和“矿业”分别作为有效根节点的映射关系中没有节点“能源”,即有效根节点与节点“能源”不符,因而需要过滤掉以“化工”和“矿业”作为有效根节点的所有节点。
[0110]
步骤s63,获取与候选节点相应的有效节点。其中,所述的有效节点fclass是指可以组合成主标签的节点。在本实施例中,每一个节点class的每一个属性(cube)具有对应的有效节点fclass。当确定了候选节点后,根据其映射关系可得到与其对应的有效节点。
[0111]
步骤s64,将有效节点标签两两组合,以得到多个主标签。比如“java”和“工程师”合并为“java工程师”,“房地产”和“销售”合并为“房地产销售”,“环保”和“调查人员”合并为“环保调查人员”。
[0112]
所述多个主标签基于目标文件的信息进行了相应的语义延申,充分概括了目标文件的意图,并且也为职位的搜索与匹配提供了具有标准信息的依据。
[0113]
图6是根据本发明一个实施例的自然语言语义提取系统的原理框图,其中包括分词模块1、句子提取模块2、语法分析模块3、关键词提取模块4和标准化模块5。其中,所述分词模块1经配置以对目标文件以句子为单位进行分词以得到多个分词单元。所述句子提取模块2与所述分词模块1相连接,用以分析所述多个分词单元是否构成关键词,并提取出包含有关键词的句子。具体地,如图7所示,所述句子提取模块2包括词语单元确定单元21、词组组合单元22、关键词确定单元23和句子确定单元24。其中,所述词语单元确定单元21基于一个句子中的分词单元查询词语单元词典,如果在词语单元词典查询到该分词单元,则确定所述分词单元为词语单元,其可以组成关键词,如果在词语单元词典没有查询到该分词单元,则当前分词单元不能组成关键词。经过所述词语单元确定单元21针对一个句子中的分词单元逐个查询,可以确定出当前句子中的所有可以组成关键词的词语单元。例如,针对分词后句子“我每天负责擦玻璃,偶尔回去采购部擦。”中得到词语单元“采购”和“玻璃”。又例如,句子“我熟悉java和c 开发。”中可以得到词语单元“java”、“c ”和“开发”。
[0114]
所述词组组合单元22与所述词语单元确定单元21相连接,经配置以对多个词语单元进行排列组合以得到多个词组。例如,根据词语单元“采购”和“玻璃”组合成关键词“采购”、“玻璃”和“采购玻璃”,根据词语单元“java”、“c ”和“开发”组合成关键词“java”、“c ”、“开发”、“java c ”“c 开发”、“java开发”和“javac 开发”。
[0115]
所述关键词确定单元23与所述词组组合单元22相连接,用以查询词组词典,响应于在词组词典查询到所述词组,确定所述词组为关键词。例如,“采购”、“玻璃”“采购玻璃”都可以在词组词典中查询到,因而其都是关键词。而在词组词典中查询不到“javac ”、“javac 开发”,因而这两个不是关键词,其他几个是关键词。
[0116]
所述句子确定单元24与所述关键词确定单元23相连接,用以将目标文件中的包含关键词的句子提取出来,作为语法分析的基础语料。
[0117]
所述语法分析模块3与所述句子提取模块2相连接,用以分析所述包含有所述关键词的句子,并根据分析结果构建语法树。其中,在一个实施例中,如图8所示,所述语法分析模块3包括词性标注单元31、分词单元对确定单元32和语法树构建单元33,其中,所述词性标注单元31为句子中的每个分词单元标标词性;所述分词单元对确定单元32与所述词性标注单元31相连接,其基于预置语法规则及分词单元的词性,确定两个分词单元的语法关系及指向关系。在一个实施例中,所述分词单元对确定单元32采用具有神经网络的转移分析模型来预测两个分词单元的语法关系及指向关系,具体参见表

2所示的过程。在此不再赘述。所述语法树构建单元33与分词单元对确定单元32相连接,依据分词单元对中的指向关系连接句子中的相应分词单元以建立语法树。如图3所示的语法树。
[0118]
所述关键词提取模块4与所述语法分析模块3相连接,用以从所述语法树中提取出有效关键词。在一个实施例中,如图9所示,所述关键词提取模块4包括第一过滤单元41、语群构建单元42和有效关键词确定单元43,其中,所述第一过滤单元41与所述语法分析模块3相连接,从所述语法树中过滤掉无效语法关系的分词单元对,关于语法关系的分类如表

3所示。按照所述表

3过滤掉无效的语法关系的分词单元。所述语群构建单元42与所述第一过滤单元41相连接,对具有有效语法关系的多个分词单元进行重组,以得到一个或多个语群。在一个实施例中,语群构建单元42通过构建有向无环图来确定不同的语群。具体请参见前述说明,在此不再赘述。有效关键词确定单元43与所述语群构建单元42相连接,将构成关
键词的全部词语单元位于同一个语群的关键词确定为有效关键词。从而可以过滤掉组合错误的关键词,例如“采购玻璃”中的“采购”和“玻璃”位于不同的语群,因而可以确定“采购玻璃”不是一个有效的关键词。
[0119]
即使构成关键词的全部词语单元位于同一个语群,也不是全部的关键词都是合适的。例如从句子“我熟悉java和c 开发。”中得到“java”、“c ”、“开发”、“c 开发”和“java开发”等5个关键词,然而,这里面的有些关键词具有包含关系,对于职位搜索和匹配来说,这些具有包含关系的关键词既无益于提高准确率,还增加了工作量。因而,在一个更好的实施例中,将这些具有包含关系的关键词删除。另外,对于一些可能引起构建关键词错误的情况,如一些标点符号、增加的默认词语等,或者是被列入黑名单词语单元,为了避免这些问题,在进一步的实施例中,关键词提取模块4还包括第二过滤单元44,可以对有效关键词确定单元43得到的有效候选关键词进行过滤,具体请参见图4中对步骤s55的说明,在此不再赘述。
[0120]
所述标准化模块5与所述关键词提取模块4相连接,用以对所述有效关键词进行标准化得到对应的语义标签。
[0121]
在进一步的实施例中,所述系统还包括主标签构建模块6,其包括知识节点匹配单元61和主标签组合单元62,其中,知识节点匹配单元61与所述标准化模块相连接,利用知识图谱库为语义标签进行匹配以得到相应的多个知识节点,并对多个节点进行合并、过滤,从中提取出有效节点。主标签组合单元62与所述知识节点匹配单元61相连接,对所述多个有效节点两两组合生成一个或多个主标签,其中,所述知识节点的属性作为主标签种类,两个节点标签内容作为对应的主标签内容。
[0122]
本发明提供的方法和系统根据信息推荐的需求,从目标文件内容中抽取出符合信息推荐要求的关键词,通过对包含关键词的句子进行语法分析以过滤掉错误、不合适的关键词,再将所述关键词标准化。通过对标准化关键词的拆分、重构而得到多个可以理解整个文本表达的真实语义的主标签。由于本发明并不只局限于文件中的关键词,而是对关键词进行适当的拆分、泛化、重组,从而能够理解目标文件信息中隐藏的深层语义,并且经过信息标准化后,可以有效简化信息搜索与匹配的复杂度,提高信息搜索与匹配的速度和精度,为信息的搜索、匹配、推荐提供了良好的语义基础。
[0123]
上述实施例仅供说明本发明之用,而并非是对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明范围的情况下,还可以做出各种变化和变型,因此,所有等同的技术方案也应属于本发明公开的范畴。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献