公开/公告号CN113407717B
专利类型发明专利
公开/公告日2022.12.20
原文格式PDF
申请/专利权人 数库(上海)科技有限公司;
申请/专利号CN202110590171.4
发明设计人 贾宁;
申请日2021.05.28
分类号G06F16/35(2019.01);G06F16/36(2019.01);G06F40/216(2020.01);G06F40/247(2020.01);
代理机构上海十蕙一兰知识产权代理有限公司 31331;
代理人刘秋兰
地址 201112 上海市闵行区陈行路2388号9号楼8层801室
入库时间 2023-01-09 21:32:12
法律状态公告日
法律状态信息
法律状态
2022-12-20
授权
发明专利权授予
技术领域
本发明属于数据处理技术领域,具体涉及一种消除新闻中行业词歧义的方法、装置、设备和存储介质。
背景技术
自然语言中存在许多一词多义的情况,当使用这些多义词作为特征进行文本分类时,歧义会影响分类结果的准确性,因此需要对多义词进行消歧计算,以确定多义词在当前上下文环境中的真实含义。
中国发明专利CN112069826A《融合主题模型和卷积神经网络的垂直域实体消歧方法》中提出了一种用主题模型计算主体特征相似度和用分类模型计算语义特征相似度,再将两种相似度融合以确定候选语义的方法。
中国发明专利CN112214999A《一种基于图模型和词向量相结合的词义消歧方法及装置》中提出了一种基于图模型和词向量相结合的词义消歧方法,通过图模型获取上下文背景知识,再通过词向量计算相似度以确定候选语义。
中国发明专利CN112256885A《一种标签消歧方法、装置、设备和计算机可读存储介质》中提出了一种通过知识图谱消歧的方法,从预先构建的知识图谱中获取与歧义标签对应的子图,借助指示词计算各个子图的权重,选出目标子图以确定候选语义。
目前现有的语义消歧方法存在一些不足,主要有以下几点:
1、需要事先确定歧义实体集合。
如上述发明CN112069826A、CN112214999A和CN112256885A都需要事先确定歧义词或歧义实体集合,只有在集合内的词才会进行消歧计算,未出现在集合内的新的歧义词无法被消歧。这需要不断地对歧义词集合进行人工维护,成本较高。
2、需要人工标注训练数据。
如上述发明CN112069826A中需要人工标注无歧义样本数据作为训练语料来训练分类模型,人工标注不仅花费较多的时间和资金成本,而且还存在标注一致性,类别变动时的扩充成本等问题。
3、需要知识图谱。
如上述发明CN112256885A利用知识图谱来进行消歧,知识图谱的代价比人工标注数据更为高昂,而且知识图谱往往针对特定领域,很难进行跨领域迁移。
发明内容
本发明针对现有的语义消歧方法存在人工维护成本高、需要人工标注训练数据或需要知识图谱的技术问题,目的在于提供一种消除新闻中行业词歧义的方法、装置、设备和存储介质。
一种消除新闻中行业词歧义的方法,包括:
获取新闻,对所述新闻进行行业分类,得到行业标签分类结果,所述行业标签分类结果包括多个行业标签和所述行业标签对应的特征词集合;
对所述行业标签分类结果进行标签共现检验,若检验未通过,则将全部的所述行业标签加入预设的歧义判别列表中,若检验通过,则判断在所述特征词集合中是否存在特征词使得所述特征词在预设的歧义词集合中,若存在,则将所述特征词对应的所述行业标签加入所述歧义判别列表中,若不存在,则直接输出结果;
通过预设的歧义判别模型对所述歧义判别列表中的所述行业标签进行判别,得到歧义判别结果,根据所述歧义判别结果进行输出。
可选的,所述获取新闻,对所述新闻进行行业分类,得到行业标签分类结果,所述行业标签分类结果包括多个行业标签和所述行业标签对应的特征词集合,包括:
通过预设的行业分类模型对所述新闻进行行业分类,得到所述行业标签分类结果;
所述行业分类模型是能进行多标签分类,且能够输出类别特征词的模型,所述行业分类模型为SVM模型(支持向量机模型)、随机森林模型或朴素贝叶斯分类模型中的一种。
可选的,所述对所述行业标签分类结果进行标签共现检验之前,包括:
将多个所述行业标签按照和所述新闻的关联度进行降序排列,得到排列后的多个所述行业标签及对应的特征词集合;
所述行业标签分类结果还包括每个所述行业标签与所述新闻的关联度。
可选的,所述对所述行业标签分类结果进行标签共现检验,若检验未通过,则将全部的所述行业标签加入预设的歧义判别列表中,若检验通过,则判断在所述特征词集合中是否存在特征词使得所述特征词在预设的歧义词集合中,若存在,则将所述特征词对应的所述行业标签加入所述歧义判别列表中,包括:
将所述行业标签记为I={I
从I中取行业标签I
从I中取行业标签I
将I
若j=m,转到下一步,否则j+=1并转到第3步;
若i=m-1,转到第8步,否则i+=1并转到第2步;
将I中的所有行业加入到歧义判别列表CHECK_LIST中,标签共现检验结束;
从F中取特征词集合F
判断是否存在特征词w
将行业I
若i=m,标签共现检验结束,否则i+=1并转到第8步。
可选的,所述合理共现关系集合VALID_COOC采用如下方式获得:
建立共现次数统计结构cooc_cnt,所述共现次数统计结构cooc_cnt是一个空的语言字典(python dict),转到下一步;
取预设时间段内的新闻,记为新闻集合D,所述新闻集合D中共包含n篇新闻,转到下一步;
从所述新闻集合D中取新闻d
使用预设的行业分类模型对新闻d
从I中取行业I
从I中取行业I
将I
如所述共现次数统计结构cooc_cnt中没有(I
令cooc_cnt[(I
若j=m,转到下一步,否则j+=1并转到第6步;
若i=m-1,转到下一步,否则i+=1并转到第5步;
若l=n,转到下一步,否则l+=1并转到第3步;
计算所述共现次数统计结构cooc_cnt所有value之和,得到cnt
将所述共现次数统计结构cooc_cnt中的key和value按照value降序排列,得到cooc_cnt_sort,转到下一步;
从cooc_cnt_sort中取行业对(I
令cnt
若cnt
若cnt
若cooc_cnt_sort已取空,转到下一步,否则转到第15步;
保存合理共现关系集合VALID_COOC。
可选的,所述歧义判别模型采用可调参的分类模型,通过自动调参分别获得高准确率模型(高precision模型)和高召回率模型(高recall模型),通过所述高准确率模型和所述高召回率模型对所述歧义判别列表中的所述行业标签进行判别,以得到歧义判别结果。
可选的,所述通过预设的歧义判别模型对所述歧义判别列表中的所述行业标签进行判别,得到歧义判别结果,根据所述歧义判别结果进行输出,包括:
从所述歧义判别列表CHECK_LIST中取行业I
从所述新闻d中去掉所有属于行业I
判断所述歧义判别模型集合中是否存在行业I
使用模型M
若c
若c
行业I
若i=k,转到下一步,否则i+=1并转到第1步;
从I中取行业I
若
若I
若i=m,转到下一步,否则i+=1并转到第9步;
输出结果。
可选的,在获取新闻时,还获取高召回标志HIGH_RECALL,此时从I中取行业I
可选的,所述通过预设的歧义判别模型对所述歧义判别列表中的所述行业标签进行判别之前,包括对所述歧义判别模型进行训练:
获得所有行业标签的集合
取预设时间段内的新闻,记为新闻集合D,所述新闻集合D中共包含n篇新闻,转到下一步;
从所述新闻集合D中取新闻d
使用预设的行业分类模型对新闻d
将新闻d
将(I
若l=n,转到下一步,否则l+=1并转到第3步;
从I
将所述语料列表CORPUS_RAW中所有行业标签为
用分类算法对上一步得到的数据进行训练,通过调整参数得到两个模型m
保存m
若i=k,转到下一步,否则i+=1并转到第8步;
歧义判别模型训练结束。
一种消除新闻中行业词歧义的装置,包括:
行业分类模块,用于获取新闻,对所述新闻进行行业分类,得到行业标签分类结果,所述行业标签分类结果包括多个行业标签和所述行业标签对应的特征词集合;
标签共现检验模块,用于对所述行业标签分类结果进行标签共现检验,若检验未通过,则将全部的所述行业标签加入预设的歧义判别列表中,若检验通过,则判断在所述特征词集合中是否存在特征词使得所述特征词在预设的歧义词集合中,若存在,则将所述特征词对应的所述行业标签加入所述歧义判别列表中,若不存在,则直接输出结果;
歧义判别模块,用于通过预设的歧义判别模型对所述歧义判别列表中的所述行业标签进行判别,得到歧义判别结果,根据所述歧义判别结果进行输出。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述消除新闻中行业词歧义的方法的步骤。
一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述消除新闻中行业词歧义的方法的步骤。
本发明的积极进步效果在于:本发明采用消除新闻中行业词歧义的方法、装置、设备和存储介质,摆脱了对歧义词表或知识图谱的重度依赖,可以自动发现歧义词表之外的歧义词带来的错误,并且不需要人工标注训练数据,大大减少了开发成本。
附图说明
图1为本发明的一种整体流程示意图;
图2为本发明的一种实施例流程图;
图3为本发明的一种共现关系统计流程图;
图4为本发明的一种训练歧义判别模型流程图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示进一步阐述本发明。
参照图1,一种消除新闻中行业词歧义的方法,包括:
S1,对新闻进行行业分类:获取新闻,对新闻进行行业分类,得到行业标签分类结果,行业标签分类结果包括多个行业标签和行业标签对应的特征词集合。
本步骤中对新闻进行行业分类时,通过预设的行业分类模型对新闻进行行业分类,得到行业标签分类结果。该行业标签分类结果不仅包括多个行业标签和对应的特征词集合,还包括每个行业标签和新闻的关联度。其中,行业分类模型是能进行多标签分类,且能够输出类别特征词的模型,行业分类模型为SVM模型(支持向量机模型)、随机森林模型或朴素贝叶斯分类模型中的一种。
在一个实施例中,在获取新闻时,还获取高召回标志HIGH_RECALL。该高召回标志HIGH_RECALL用于后续歧义判别模型无法判别的部分,设立高召回标志HIGH_RECALL,当高召回标志HIGH_RECALL=1(或True)时在无法判别部分中取最可信的结果输出以提高召回,当高召回标志HIGH_RECALL=0(或False)时,不采纳无法判别的部分。
S2,对行业标签进行标签共现检验:对行业标签分类结果进行标签共现检验,若检验未通过,则将全部的行业标签加入预设的歧义判别列表中,若检验通过,则判断在特征词集合中是否存在特征词使得特征词在预设的歧义词集合中,若存在,则将特征词对应的行业标签加入歧义判别列表中,若不存在,则直接输出结果。
在步骤S1分类完成后,对行业标签分类结果还进行标签共现检验,检验标准来自历史统计数据,如果标签共现检验未通过,则将全部行业标签都加入歧义判别列表中,后续进行歧义判别,通过判别后分类结果为1的行业标签作为输出结果;如果标签共现检验通过,则提取各行业标签的特征词并检查特征词中有没有已知的歧义词,没有歧义词的行业标签可加入到输出,如有,则对歧义词对应的行业标签加入歧义判别列表中,后续进行歧义判别,通过判别后分类结果为1的行业标签加入到输出。
为了能发现歧义词表之外的歧义情况,本步骤中的标签共现检验实质判断的是各行业标签之间是否存在合理的共现关系,如存在不合理的共现关系,则表明可能存在歧义情况,需要进行进一步的判别。共现关系是指两个行业标签出现在同一篇新闻的行业分类结果中。如果一篇新闻出现多个行业标签,则各行业标签两两计算共现关系。计算共现关系是否合理时,以历史统计数据作为参考。可预先选取较长一段时期内的新闻,如两年内的新闻,用预设的行业分类模型计算行业标签,统计这些新闻中行业标签的共现次数,共现次数超过阈值的标签对记为合理共现关系。
在一个实施例中,在步骤S2之前,包括:
将多个行业标签按照和新闻的关联度进行降序排列,得到排列后的多个行业标签及对应的特征词集合。行业标签分类结果还包括每个行业标签与新闻的关联度。
本发明在步骤S1中通过对新闻进行行业分类,得到的行业标签分类结果中,不仅包括多个行业标签及对应的特征词集合,还包括多个行业标签与新闻之间各自的关联度,本实例利用关联度数值进行降序排列,在进行降序排序后,再对排序后的多个行业标签进行标签共现检验。
S3,歧义判别并输出结果:通过预设的歧义判别模型对歧义判别列表中的行业标签进行判别,得到歧义判别结果,根据歧义判别结果进行输出。
本步骤中的歧义判别模型采用可调参的分类模型,通过自动调参分别获得高准确率模型(高precision模型)和高召回率模型(高recall模型),通过高准确率模型和高召回率模型对歧义判别列表中的行业标签进行判别,以得到歧义判别结果。
参照图2,在一个实施例中,本发明对于一篇新闻消除行业词歧义的过程包括如下的实时计算过程:
获取新闻及高召回标志HIGH_RECALL;
行业分类;
标签共现检验;
检验通过,则提取特征词,检验未通过,则将全部行业标签加入歧义判别列表CHECK_LIST中;
判断特征词中是否有歧义词,若不存在,则直接输出结果,若存在则将有歧义词的行业标签加入歧义判别列表CHECK_LIST中;
对歧义判别列表CHECK_LIST中的行业标签进行歧义判别;
当歧义判别结果为1时,则将对应的行业标签加入到输出并输出结果;
当歧义判别结果为-1且高召回标志HIGH_RECALL=1时,取关联度最高的行业标签加入到输出并输出结果。
在一个实施例中,本发明涉及的数据结构的部分以python作为编程语言进行描述,则实时计算过程如下:
1、获取新闻d及高召回标志HIGH_RECALL,对获取的新闻d使用预设的行业分类模型进行分类,得到行业标签分类结果,将行业标签分类结果中的行业标签记为I={I
2、从I中取行业标签I
3、从I中取行业标签I
4、将I
5、若j=m,转到下一步,否则j+=1并转到第3步;
6、若i=m-1,转到第8步,否则i+=1并转到第2步;
7、将I中的所有行业加入到歧义判别列表CHECK_LIST中,转到第12步;
8、从F中取特征词集合F
9、判断是否存在特征词w
10、将行业I
11、若i=m,转到下一步,否则i+=1并转到第8步。
12、从歧义判别列表CHECK_LIST中取行业I
13、从新闻d中去掉所有属于行业I
14、判断歧义判别模型集合中是否存在行业I
15、使用模型M
16、若c
17、若c
18、行业I
19、若i=k,转到下一步,否则i+=1并转到第12步;
20、从I中取行业I
21、若
22、若I
23、若I
24、若i=m,转到下一步,否则i+=1并转到第20步;
25、输出结果。
参照图3,在一个实施例中,合理共现关系集合VALID_COOC采用如下方式获得:
获取预设时间段内的新闻;
对所有新闻通过预设的行业分类模型进行行业分类;
统计两个行业标签的共现次数;
选择可靠共现关系;
记入合理共现关系集合;
保存合理共现关系集合。
在一个实施例中,本发明涉及的数据结构的部分以python作为编程语言进行描述,则合理共现关系集合VALID_COOC的统计方式为:
1、建立共现次数统计结构cooc_cnt,共现次数统计结构cooc_cnt是一个空的语言字典(python dict),转到下一步;
2、取预设时间段内的新闻,记为新闻集合D,新闻集合D中共包含n篇新闻,转到下一步;
优选的,预设时间段设置为两年。
3、从新闻集合D中取新闻d
4、使用预设的行业分类模型对新闻d
5、从I中取行业I
6、从I中取行业I
7、将I
8、如共现次数统计结构cooc_cnt中没有(I
9、令cooc_cnt[(I
10、若j=m,转到下一步,否则j+=1并转到第6步;
11、若i=m-1,转到下一步,否则i+=1并转到第5步;
12、若l=n,转到下一步,否则l+=1并转到第3步;
13、计算共现次数统计结构cooc_cnt所有value之和,得到cnt
14、将共现次数统计结构cooc_cnt中的key和value按照value降序排列,得到cooc_cnt_sort,转到下一步;
15、从cooc_cnt_sort中取行业对(I
16、令cnt
17、若cnt
优选的,N设置为0.9。
18、若cnt
优选的,N设置为0.9。
19、若cooc_cnt_sort已取空,转到下一步,否则转到第15步;
20、保存合理共现关系集合VALID_COOC。
本发明在判断是否有歧义存在时不完全依靠歧义词表。本发明统计了历史数据中各行业之间的共现次数,共现次数较多表明这些行业同时出现在一篇新闻中的可信度较高,反之则可信度较低。在做实时计算时,对分类的行业标签结果进行两两配对,并检查其共现关系是否可信,如果其共现关系不可信,则说明初步分类的结果可能存在错误,需要做进一步的分析判别。这种方法摆脱了对歧义词表的重度依赖,可以自动发现歧义词表之外的歧义词带来的错误。
参照图4,在一个实施例中,通过预设的歧义判别模型对歧义判别列表中的行业标签进行判别之前,包括对歧义判别模型进行训练,训练过程如下:
获取预设时间段内的新闻;
对所有新闻通过预设的行业分类模型进行行业分类;
生成训练数据;
训练歧义判别模型;
保存歧义判别模型。
在一个实施例中,本发明涉及的数据结构的部分以python作为编程语言进行描述,则训练过程如下:
1、获得所有行业标签的集合
2、取预设时间段内的新闻,记为新闻集合D,新闻集合D中共包含n篇新闻,转到下一步;
优选的,预设时间段设置为两年。
3、从新闻集合D中取新闻d
4、使用预设的行业分类模型对新闻d
5、将新闻d
6、将(I
7、若l=n,转到下一步,否则l+=1并转到第3步;
8、从I
9、将语料列表CORPUS_RAW中所有行业标签为
10、用分类算法对上一步得到的数据进行训练,通过调整参数得到两个模型m
优选的,M设置为0.85。
11、保存m
12、若i=k,转到下一步,否则i+=1并转到第8步;
13、歧义判别模型训练结束。
本发明在训练歧义判别模型时不需要人工标注数据。利用初步的行业分类结果中可信度较高的部分作为标注的标签,通过自动调参训练方法为每个行业训练一个高precision的模型和一个高recall的模型,使用时将两个模型结合使用以确定判别结果。不仅提升了工作效率,而且可以实现无人工干预的全自动运行,极大地减少了成本。
在一个实施例中,提出了一种消除新闻中行业词歧义的装置,包括:
行业分类模块,用于获取新闻,对新闻进行行业分类,得到行业标签分类结果,行业标签分类结果包括多个行业标签和行业标签对应的特征词集合;
标签共现检验模块,用于对行业标签分类结果进行标签共现检验,若检验未通过,则将全部的行业标签加入预设的歧义判别列表中,若检验通过,则判断在特征词集合中是否存在特征词使得特征词在预设的歧义词集合中,若存在,则将特征词对应的行业标签加入歧义判别列表中,若不存在,则直接输出结果;
歧义判别模块,用于通过预设的歧义判别模型对歧义判别列表中的行业标签进行判别,得到歧义判别结果,根据歧义判别结果进行输出。
在一个实施例中,提出了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例消除新闻中行业词歧义的方法中的步骤。
在一个实施例中,提出了一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例消除新闻中行业词歧义的方法中的步骤。其中,存储介质可以为非易失性存储介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
以上各实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
机译: 使用韩国WordNet及其程序存储的记录词歧义消除的装置和方法
机译: 词和复合词分类处理方法,复合词提取方法,词和复合词分类处理器,语音识别系统,机器翻译设备,复合词提取设备以及词和复合词存储介质
机译: 检索方法和装置,存储介质存储检索程序,附加检索词候选显示方法和装置以及存储介质存储附加检索词候选显示程序