判断新闻中主要关联公司的方法及相关设备
文献发布时间:2023-06-19 11:19:16
技术领域
本发明属于金融财经技术领域,具体涉及一种判断新闻中主要关联公司的方法及相关设备。
背景技术
在金融财经领域中,财经新闻是重要的信息来源,因此对财经新闻的分析是金融科技领域的一项基础性工作。在对财经新闻的各种分析中,最重要的一项是提取出新闻中提及的公司。在多数情况下,新闻中会提及不止一家公司,有些公司和新闻的相关度较低,而有些公司和新闻的关联程度较高,新闻内容主要围绕这些公司展开,这些高关联公司通常也是后续分析所关注的对象。
目前对新闻中主要关联公司进行判定的方法不多,有些网站对于公司和新闻的关联性不做定量分析,如东方财富网站上的公司相关资讯,只要新闻中出现了公司名称,就把新闻和公司关联起来。有些网站和数据服务如路透的新闻服务API会提供公司和新闻的相关度,用户可通过设定相关度阈值来提取出新闻的主要关联公司。
但是以相关度和阈值的方法来确定新闻中主要关联公司的方法存在判定不准确的问题。由于新闻的长度不同,新闻中出现公司的数量、位置不同,导致对于不同的新闻,公司相关度的分布是不同的,因此使用一个固定的阈值判定是否主要关联公司可能会发生错误,导致输出了多余的公司或漏掉了主要关联公司。即使把阈值和新闻长度关联起来形成动态阈值,效果也不理想,因为长度相同的新闻中公司的分布相差也很明显,计算出的公司相关度也有明显差异。所以简单的和新闻长度相关的动态阈值也会存在判定不准确的问题。
另外,以相关度和阈值的方法来确定新闻中主要关联公司的方法对于一篇新闻内描述多个事件的情况不能很好地处理。此类新闻通常是信息综述,往往会描述若干个不相关的事件,每个事件中都可能会有一些和该事件比较相关的公司出现。因此最终结果中可能出现多个相关度较高的公司,但实际上这类新闻并没有主要关联公司。单纯通过对相关度和阈值的分析不能识别出此类新闻,也无法做出专门处理。
发明内容
本发明针对从财经新闻中提取出新闻中提及的主要关联公司时,以相关度和阈值的方式无法得到较为精确结果的技术问题,目的在于提供一种判断新闻中主要关联公司的方法及相关设备。
判断新闻中主要关联公司的方法,包括如下步骤:
获取新闻数据,从所述新闻数据中提取每个公司及每个公司在所述新闻数据中出现的名称词,将公司记作com
根据公司com
输出主要关联公司结果。
可选的,所述相关度值rel
可选的,所述新闻数据中的句子总数SEN_CNT、自然段总数PARA_CNT、com
以句号、问号、感叹号、省略号和换行符作为分句标志,统计所述新闻数据中的句子总数,记为SEN_CNT;
统计所述新闻数据中的自然段总数,记为PARA_CNT;
统计所述新闻数据中出现com
统计所述新闻数据中出现com
可选的,采用如下公式计算所有公司和新闻数据的相关度值:
其中,A和B为预设的大于0的系数,且A+B=1。
可选的,在统计所述新闻数据中的自然段总数时,所述新闻数据中的标题也算作一个自然段,并排除掉空白的自然段。
可选的,在统计所述新闻数据中出现com
可选的,所述相关度动态阈值grad_threshold为根据rel
将公司按rel
计算相邻公司间的相关度下降梯度,grad
当存在k使得rel
可选的,根据公司com
取com
如果N>F且相关度值rel
如果
如果j等于N,转到下一步,否则j=j+1,转到第一步;
返回主要关联公司结果。
可选的,所述根据com
根据com
可选的,所述根据com
取com
如果
如果com
如果com
如果com
如果j等于N,转到下一步,否则j=j+1,转到第一步;
返回主要关联公司结果。
可选的,在所述获取新闻数据,从所述新闻数据中提取每个公司及每个公司在所述新闻数据中出现的名称词,将公司记作com
根据每个公司与所述新闻数据的正文的相关度值的方差var、每个公司与其他公司的出现交叉度cross
若不存在主要关联公司,则返回主要关联公司结果,若存在主要关联公司,则进行根据公司com
可选的,所述每个公司与所述新闻数据的正文的相关度值的方差var的计算方式,包括:
统计所述新闻数据的正文中出现com
统计所述新闻数据的正文中出现com
计算所有公司和所述新闻数据的正文的相关度值:
其中,A和B为预设的大于0的系数,且A+B=1;
计算公司和所述新闻数据的正文的相关度值con_rel
可选的,所述每个公司在所述新闻数据的正文中的有效影响范围scop
预设一个有效影响范围列表,所述有效影响范围列表用于记录出现com
提取com
一个有效影响部分是从出现com
可选的,所述每个公司与其他公司的出现交叉度cross
出现在com
可选的,根据每个公司与所述新闻数据的正文的相关度值的方差var来判断是否存在主要关联公司,包括:
如果var<M,那么所有的公司都不是主要关联公司,则不存在主要关联公司,否则存在主要关联公司,其中M为预设的大于0的阈值。
可选的,根据每个公司与其他公司的出现交叉度cross
如果
可选的,根据每个公司在所述新闻数据的正文中的有效影响范围scope
如果
可选的,根据scope
如果
可选的,在根据每个公司与所述新闻数据的正文的相关度值的方差var、每个公司与其他公司的出现交叉度cross
判断N是否大于U,其中U为预设的大于0的阈值,且优选U大于F;
若N大于U,则进行判断是否存在主要关联公司的步骤;
若N不大于U,则跳过判断是否存在主要关联公司的步骤,转到根据公司com
判断新闻中主要关联公司的装置,包括:
提取公司数据模块,用于获取新闻数据,从所述新闻数据中提取每个公司及每个公司在所述新闻数据中出现的名称词,将公司记作com
过滤非主要关联公司模块,用于根据公司com
输出模块,用于输出主要关联公司结果。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述判断新闻中主要关联公司的方法的步骤。
一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述判断新闻中主要关联公司的方法的步骤。
本发明的积极进步效果在于:本发明采用判断新闻中主要关联公司的方法、装置、设备和存储介质,具有如下显著优点:
1、本发明采用了一种组合方式来确保输出结果公司和新闻有足够的相关程度,要求在新闻数据中出现公司的段落和句子要达到一定比例,要求在新闻数据中出现公司的段落和句子要达到一定数量,要求公司和新闻数据的相关度要达到一定数值,三者综合作用以确保输出结果公司和新闻数据有足够的相关程度。
2、本发明使用了动态相关度阈值grad_threshold。grad_threshold反映的是各公司相关度按降序排列时出现剧烈下降时的位置。一般主要关联公司的相关度是明显高于非主要关联公司的相关度的,如果两个相邻公司一个是主要关联公司而另一个不是,那么非主要关联公司的相关度和主要关联公司的相关度相比会有一个明显下降,这种下降的程度可以通过相邻公司之间相关度的下降梯度来描述。grad_threshold本质上是下降梯度的阈值,当按相关度降序的顺序计算相邻公司之间相关度的下降梯度第一次超过阈值时,此处即是主要关联公司和非主要关联公司的分界线。
3、本发明使用了公司和新闻数据相关度的方差来判断是否不存在主要关联公司。方差能够度量样本点的值偏离均值的大小。如果方差过小,表明各样本点的值都很接近均值,即各个公司和新闻数据的相关度都差不多,不存在新闻数据重点描述的公司,不存在主要关联公司。
4、本发明计算了每个公司在新闻数据的正文中的有效影响范围scope
附图说明
图1为本发明的一种实施例流程示意图;
图2为本发明的另一种实施例流程示意图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示进一步阐述本发明。
参照图1,本发明的一个实施例中判断新闻中主要关联公司的方法,包括如下步骤:
S1,提取公司数据:获取新闻数据,从新闻数据中提取每个公司及每个公司在新闻数据中出现的名称词,将公司记作com
本发明中涉及数据结构的部分均以python语言作为编程语言进行描述。
本步骤中的新闻数据可以从其他系统或输入介质输入得到,输入内容包括新闻的文本和文本分词后的结果,新闻的文本通常包括标题和正文,新闻的文本及分词的结果即为本步骤的新闻数据。从新闻数据中提取每个公司及每个公司在新闻数据中出现的名称词时采用现有技术的查找公司名称词的方式,一个公司在新闻数据中会出现至少一个名称词,将这些名称词和对应的公司进行关联并记录。
S2,过滤非主要关联公司:根据公司com
在一个实施例中,公司com
在一个实施例中,新闻数据中的句子总数SEN_CNT、自然段总数PARA_CNT、com
以句号、问号、感叹号、省略号和换行符作为分句标志,统计新闻数据中的句子总数,记为SEN_CNT。
统计新闻数据中的自然段总数,记为PARA_CNT。在统计新闻数据中的自然段总数时,新闻数据中的标题也算作一个自然段,并排除掉空白的自然段。
统计新闻数据中出现com
统计新闻数据中出现com
在一个实施例中,采用如下公式计算所有公司和新闻数据的相关度值:
其中,A和B为预设的大于0的系数,且A+B=1。本实施例中,A和B均优选为0.5,即公司和新闻数据的相关度值的计算公式优选为:
在一个实施例中,相关度动态阈值grad_threshold的计算方法如下:
将公司按rel
计算相邻公司间的相关度下降梯度,grad
当存在k使得rel
本实施例中,D优选为0.1,E优选为0.8,则当存在k使得rel
在一个实施例中,根据公司com
S2121,取com
S2122,如果N>F and rel
S2123,
如果
S2124,如果j等于N,转到下一步,否则j=j+1,转到S2121。
S2125,返回主要关联公司结果。
在一个实施例中,在根据公司com
优选的,根据com
S2111,取com
S2112,如果
S2113,如果com
S2114,如果com
S2115,如果com
S2116,如果j等于N,转到下一步,否则j=j+1,转到第一步;
S2117,返回主要关联公司结果。
在一个实施例中,当S211根据公司位置过滤非主要关联公司和S212根据段落和句子过滤非主要关联公司两个过滤过程合用时,S2111和S2121、S2116和S2124、S2117和S2125为共同步骤,即可实现如下一种更优的S210综合过滤非主要关联公司的方法:
S2101,取com
S2102,如果
S2103,如果com
S2104,如果com
S2105,如果com
S2106,如果N>3 and rel
S2107,如果
S2108,如果j等于N,转到下一步,否则j=j+1,转到S2101。
S2109,返回主要关联公司结果。
在一个实施例中,步骤S1之后,还包括步骤S200判断是否存在主要关联公司:
根据每个公司与新闻数据的正文的相关度值的方差var、每个公司与其他公司的出现交叉度cross
若不存在主要关联公司,则返回主要关联公司结果,若存在主要关联公司,则进行根据公司com
即在步骤S212根据段落和句子过滤非主要关联公司之前,或者步骤S210综合过滤非主要关联公司之前,还增设了上述步骤S200判断是否存在主要关联公司,只有存在主要关联公司的前提下才继续进行后续过滤非主要关联公司的步骤。
在一个实施例中,每个公司与新闻数据的正文的相关度值的方差var的计算方式,包括:
统计新闻数据的正文中出现com
统计新闻数据的正文中出现com
计算所有公司和新闻数据的正文的相关度值:
其中,A和B为预设的大于0的系数,且A+B=1。本实施例中,A和B均优选为0.5,即公司和新闻数据的的正文的相关度值的计算公式优选为:
具体的,上述计算公司和新闻数据的正文的相关度值采用的系数,计算公司和闻数据的相关度值采用的系数相同,即都采用相同的A和B。
计算公司和新闻数据的正文的相关度值con_rel
在一个实施例中,每个公司在新闻数据的正文中的有效影响范围scope
预设一个有效影响范围列表,有效影响范围列表用于记录出现com
提取com
在一个实施例中,每个公司与其他公司的出现交叉度cross
本实施例中,出现交叉度cross
在一个实施例中,根据每个公司与新闻数据的正文的相关度值的方差var来判断是否存在主要关联公司,包括:
如果var<M,那么所有的公司都不是主要关联公司,则不存在主要关联公司,否则存在主要关联公司,其中M为预设的大于0的阈值。在本实施例中,M优选为0.005,即如果var<0.005,那么所有的公司都不是主要关联公司。
在一个实施例中,根据每个公司与其他公司的出现交叉度cross
如果
在一个实施例中,根据每个公司在新闻数据的正文中的有效影响范围scope
如果
在一个实施例中,根据scope
如果
在一个实施例中,S200判断是否存在主要关联公司的一种组合方式为:
S2001,如果var<0.005,那么所有的公司都不是主要关联公司,转到S2005,反之转到下一步;
S2002,如果
S2003,如果
S2004,如果
S2005,返回主要关联公司结果。
在一个实施例中,S200判断是否存在主要关联公司的另一种组合方式为:
S2001,如果var<0.005,那么所有的公司都不是主要关联公司,转到S2005,反之转到下一步;
S2002,如果
S2005,返回主要关联公司结果。
在一个实施例中,S200判断是否存在主要关联公司的另一种组合方式为:
S2001,如果var<0.005,那么所有的公司都不是主要关联公司,转到S2005,反之转到下一步;
S2003,如果
S2005,返回主要关联公司结果。
在一个实施例中,S200判断是否存在主要关联公司的另一种组合方式为:
S2002,如果
S2004,如果
S2005,返回主要关联公司结果。
在一个实施例中,在步骤S200判断是否存在主要关联公司之前,还包括:判断N是否大于U,其中F为预设的大于0的阈值;若N大于U,则进行步骤S200判断是否存在主要关联公司;若N不大于U,则跳过步骤S200判断是否存在主要关联公司,转到步骤S212根据段落和句子过滤非主要关联公司,或者转到步骤S210综合过滤非主要关联公司。
在本实施例中,U优选大于F,即U优选大于3,U更优选为5,即判断N是否大于5来确定是否跳过步骤骤S200判断是否存在主要关联公司。
S3,输出:输出主要关联公司结果。
本步骤可以根据S1中输入新闻数据时与其他系统或输入介质建立的通信,将主要关联公司结果进行输出。其输出内容可以包括新闻的文本、新闻数据中公司的总数,每个公司的名称词及该公司是否为主要关联公司的标识。其输出内容也可以根据S2得到的主要关联公司的所有信息合并成一个表格或数据流。
在一个实施例中,本发明可以采用的一种判断新闻中主要关联公司的方法为:S1提取公司数据、S212根据段落和句子过滤非主要关联公司和S3输出的组合方式。
在一个实施例中,本发明可以采用的另一种判断新闻中主要关联公司的方法为:S1提取公司数据、S210综合过滤非主要关联公司和S3输出的组合方式。
在一个实施例中,本发明可以采用的另一种判断新闻中主要关联公司的方法为:S1提取公司数据、S200判断是否存在主要关联公司、S212根据段落和句子过滤非主要关联公司和S3输出的组合方式。在S200判断是否存在主要关联公司还可判断N是否大于5。
在一个实施例中,本发明以采用的另一种判断新闻中主要关联公司的方法为:S1提取公司数据、S200判断是否存在主要关联公司、S210综合过滤非主要关联公司和S3输出的组合方式。在S200判断是否存在主要关联公司还可判断N是否大于5。参照图2,上述方法中关于步骤S2中的S200和S210的一种优选的具体过滤非主要关联公司的过程如下:
1)如果N>5,转到下一步,反之转到6);
2)如果var<0.005,那么所有的公司都不是主要关联公司,转到14),反之转到下一步;
3)如果
4)如果
5)如果
6)取com
7)如果
8)如果com
9)如果com
10)如果com
11)如果N>3 and rel
12)如果
13)如果j等于N,转到下一步,否则j=j+1,转到6);
14)返回主要关联公司结果。
本实施例中,根据公司在新闻数据中的分布情况计算出新闻数据中每个公司和新闻数据的相关度值,根据相关度值的分布计算出相关度动态阈值。还计算了相关度方差、每个公司在新闻数据的正文中的有效影响范围及每个公司和其他公司的出现交叉度,通过方差、有效影响范围和出现交叉度来判断是否存在主要关联公司,如果存在主要关联公司时,则通过动态阈值和相关过滤条件筛选出主要关联公司,这种方式能根据新闻数据和新闻数据中公司的具体情况,动态地选择判定主要关联公司的条件,并且能够排除掉一篇新闻内描述多个事件的情况,从而准确地分析出新闻数据中主要关联公司。
在一个实施例中,提出了一种判断新闻中主要关联公司的装置,包括如下模块:
提取公司数据模块,用于获取新闻数据,从新闻数据中提取每个公司及每个公司在新闻数据中出现的名称词,将公司记作com
过滤非主要关联公司模块,用于根据公司com
输出模块,用于输出主要关联公司结果。
在一个实施例中,提出了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例判断新闻中主要关联公司的方法中的步骤。
在一个实施例中,提出了一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例判断新闻中主要关联公司的方法中的步骤。其中,存储介质可以为非易失性存储介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
以上各实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
- 判断新闻中主要关联公司的方法及相关设备
- 判断新闻中主要关联公司的方法及相关设备