CN117077674A - 一种准确率高的企业高效去重名方法 - Google Patents
一种准确率高的企业高效去重名方法 Download PDFInfo
- Publication number
- CN117077674A CN117077674A CN202311012768.6A CN202311012768A CN117077674A CN 117077674 A CN117077674 A CN 117077674A CN 202311012768 A CN202311012768 A CN 202311012768A CN 117077674 A CN117077674 A CN 117077674A
- Authority
- CN
- China
- Prior art keywords
- name
- enterprise
- same
- person
- enterprises
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000012549 training Methods 0.000 claims abstract description 37
- 238000011156 evaluation Methods 0.000 claims abstract description 4
- 238000007781 pre-processing Methods 0.000 claims abstract description 4
- 230000006870 function Effects 0.000 claims description 42
- 238000001824 photoionisation detection Methods 0.000 claims description 30
- 230000002776 aggregation Effects 0.000 claims description 24
- 238000004220 aggregation Methods 0.000 claims description 24
- 238000010276 construction Methods 0.000 claims description 21
- 239000011159 matrix material Substances 0.000 claims description 18
- 239000013598 vector Substances 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 13
- 238000012795 verification Methods 0.000 claims description 10
- 230000008520 organization Effects 0.000 claims description 8
- 230000011218 segmentation Effects 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 4
- 238000013459 approach Methods 0.000 claims description 3
- 238000002790 cross-validation Methods 0.000 claims description 3
- 239000012634 fragment Substances 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 238000012360 testing method Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000007405 data analysis Methods 0.000 claims description 2
- 238000005065 mining Methods 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 7
- 238000013145 classification model Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种准确率高的企业高效去重名方法,包括以下步骤:S1、特征选取;S2、数据预处理;S3、特征和训练样本构造;S4、模型训练与评估。与现有技术相比的优点在于:本发明提出一种去重名模型,用于给工商企业数据库中出现的自然人编写唯一标识(PID),再结合工商企业的相关信息,可以进一步分析挖掘出个人关联企业、企业间关联关系等模型,服务各类业务场景。模型主要使用与个人关联的企业信息:关联企业注册地址相似性,共同企业股东,共同主要人员,共同联系方式,企业关系,企业名称相似性,以及个人特征:个人姓氏和姓名出现的概率,等特征,通过NLP技术,将文本特征转为数值特征。
Description
技术领域
本发明涉及企业去重名技术领域,具体是指一种准确率高的企业高效去重名方法。
背景技术
工商企业数据库中会出现自然人名(包括法定代表人、董事、监事、高级管理人员等),但由于自然人存在重名且缺乏唯一标识信息,难以对这些自然人名做出区分。
当前去重名的方法,大多基于人工规则,这种方法缺少统计依据,且使用的特征组合方式也比较简单,难以真正有效利用数据特征,识别准确率较低。
因此,继续一种去重名模型,能够用于给工商企业数据库中出现的自然人编写唯一标识(PID),再结合工商企业的相关信息,可以进一步分析挖掘出个人关联企业、企业间关联关系等模型,服务各类业务场景。
发明内容
本发明要解决的技术问题是克服以上技术困难,提供一种准确率高的企业高效去重名方法,其提出一种去重名模型,用于给工商企业数据库中出现的自然人编写唯一标识(PID),再结合工商企业的相关信息,可以进一步分析挖掘出个人关联企业、企业间关联关系等模型,服务各类业务场景。
模型主要使用与个人关联的企业信息:关联企业注册地址相似性,共同企业股东,共同主要人员,共同联系方式,企业关系,企业名称相似性,以及个人特征:个人姓氏和姓名出现的概率,等特征,通过NLP技术,将文本特征转为数值特征,使用机器学习算法构建分类模型,判断是否与存量人员是否为同一个人。与基于人工规则的方法相比,我们的方法有更高的识别准确率。
为解决上述技术问题,本发明提供的技术方案为:
一种准确率高的企业高效去重名方法,包括以下步骤:
S1、特征选取
我们从相关渠道获取了一部分较为准确的个人唯一标识数据,用于构建正负样本、模型训练和模型验证;测试集结果将用人工质检的方式进行检查和反馈;该模型所选用特征的共同逻辑,是同名自然人各自的“关联企业”之间是否存在某种联系或相似性;
“关联企业”,指的是与自然人以某一种或多种关系相关联的企业,关系类型包括自然人为企业的法定代表人、主要人员(董事、监事、高管)、自然人股东或者最终受益人等;
S2、数据预处理
数据中可能存在两个同一个人名,它们所关联的企业中存在相同的企业,这些人名却有不同的PID,这样的人我们认为应该是同一个人,对于这样的样本,我们使用图论算法,提前合并这些样本,主要步骤如下:
第一步、以人名为键值,个人名下所有公司的uid集合为值,构造字典对;
第二步、定义相关性矩阵join_matrix,对字典中任意两个元素,如果它们的公司uid集合的交集不空,则两元素的join_matrix值为1;否则,为0;
第三步、以join_matrix为关联矩阵,构造一个无向图,关联矩阵值为1表示两个结点之间有一条边相连;值为0表示两个结点间没有边相连;
第四步、找出图中的所有最大团(MaximumClique),这些最大团表示团中所有元素应该对应同一个人;
第五步、对每一个团,合并该团中所有的元素,所对应的企业,归集到同一个PID下;归集PID取个人名下企业数最多的那个个人PID,若数量都相同,则直接取其中任一个;
S3、特征和训练样本构造
训练样本构造
用于建模的基础数据主要为个人信息和相关的企业信息;具体地,其数据格式为:簇名,人名,公司名,公司uid,股东,主要人员,法人名,注册地址,年报-tel,年报-email;数据每一行对应个人所关联的一个企业信息;定义簇为同一个名字,具有不同PID,及其对应公司集的样本集;
为了接近实际的预测场景,使得数据的分布与实际一致,我们的样本构造操作,限制在同一个簇内,样本具体构造过程如下:
首先,构造的样本输出格式:簇名,Query,Keys,label;Query表示新人员所对应企业,Keys表示某个同名存量人员名下所有企业,是个集合,Query和Keys的具体值,用基础数据的索引来表示,显然地,在计算Query和Keys上的指标时,需要一个聚合函数,Label为标签,1:表示正样本,两个人是同一个人;0:表示负样本,两个人不是同一个人;
然后,以簇名为第一键值,以PID为第二键值,对表进行聚合分组,得到同一个PID下所有公司,以下称为分组;
构造正样本:对簇中的每个分组,如果包含的企业个数大于1,则对该分组,遍历分组中的所有企业元素,元素作为Query,企业集合-{该元素},作为Keys;
构造负样本:针对同一个PID中每个企业,以该企业Query,其它分组,为Keys,构造一个样本,作为负样本;
去重:对于Keys中元素数为1的样本,如果和Query合并后,由于后续特征构造的所有计算,都满足交换律,导致两个样本算出的所有特征都相同,所以这两个样本,只需要保留其中一个;
特征构造
特征1:企业注册地址相似性,包括;
地址标准化,以2021年国家标准地址库,作为基础,对企业注册地址进行标准化;具体过程如下:
第一步、基于正则提取出道路、建筑物号等信息;
第二不、省、市、区/县的匹配,过程如下:
首先,为所使用的国家标准地址库建立倒排索引,以支持快速检索;接着,从待标准化地址文本的起始位置开始,采用最大长度优先的方式匹配文本中的所有文本片段;最后,对所有匹配结果进行标准行政区域从属关系校验,并补全缺失的父级地址;
地址匹配,过程如下:
第一步、对输入的两个地址进行标准化,标准化的地址表示为:省,市,区/县,剩余的详细地址;
第二不、将标准化后的地址,从前往后逐级匹配,每匹配一级,分数+1,若失配,则退出匹配;直到匹配到剩余的详细地址,最终的地址相似性分值,会加上该部分的相似性分值;剩余的详细地址部分的匹配分值,计算过程为:
首先,对其中所包含的道路号,建筑号进行语义处理,分配权重;接着,对剩余文本使用jieba进行分词;最后,对两个地址结果集使用余弦相似度算法计算相似度,聚合函数为取最大值;
特征2:共同的企业股东、以及特征3:共同的个人
给定企业股东列表,其通常包含个人和企业股东,为了区分两者,我们构建了一个股东类型二分类器,以判断企业所有股东列表中每个股东,是个人还是企业;分类器直接使用股东名文本作为输入特征,采用预训练模型bert+linear层的模型;采用共同的企业股东数量来作为特征;聚合函数为取最大值;
共同的个人,则采用人名列表所对应的tf-idf向量的相似性,作为特征;具体地,对个人列表,将每个个人名,看做一个词,人名列表看做一个文档,构造人名列表的tf-idf向量,计算两个文档tf-idf向量的余弦相似性,将该余弦相似性作为两个人名列表的相似性;其中,idf取全局值,即本公司企业数据中所有高管人名库的人名出现概率,也即为本节中特征7的构造中所用的企业高管人名库;
考虑到个人人名数量的庞大,以及个人人名在所有人名中的稀疏性,即:向量中的大部分位置都是0,在具体实现时,我们使用向量的稀疏表示,来存储节省空间;
特征4:相同的公开联系方式
采用共同的电话号码数量和email数量构建2个特征;聚合函数都为取最大值;
特征5:企业间的关系
大部分的关系可以直接从公司名称推断;这里我们直接使用公司已有的企业关系表;基于该关系表,我们构建了4类关系:是母公司,是同一母公司分支,是分支,以及None关系(表示不存在关系);并约定关系的序关系:是母公司==是分支>是同一母公司分支>None关系;聚合函数取最大值;
特征6:企业名称相似性
公司名称拆分为4个部分:地名、字号、行业/经营特点、组织形式;
公司名的拆分,我们采用NLP中命名实体识别抽取模型来做;模型采用预训练模型bert+crf,模型输入为公司名称的BIO标签标注的数据,具体为:{'O','I-LOC','B-LOC','I-NAME','I-INDU','I-ORG','B-NAME','B-INDU','B-ORG'},其中LOC,NAME,INDU,ORG分别对应地名、字号、行业/经营特点、组织形式,基于已有的数据,标注1万条数据,来训练模型;
特征构建:使用除组织形式外的其他部分;
共构造两类特征,作为模型的特征;这两类特征的构造过程,如下所示:
第一类:
第一步、使用公司名称拆分算法,将企业名称分为四部分;
第二不、取企业名称分割后的前3个部分:地名、字号、行业/经营特点,作为一个3元组;
第三步、对该3元组的每个部分的文本,分别使用句向量模型(sentenceembedding)text2vec-large-chinese,生成对应的文本embedding;
第四步、计算目标样本,在每个部分上的相似性,该相似性为点积,计算两个3元组的余弦相似度,作为两个企业名称相似性值;聚合函数为取最大值;
第二类:
使用text2vec-large-chinese模型,对每个部分计算其embedding,计算与目标的相似值,该相似值,为两embedding的余弦距离,将每部分看作一个单独的特征;聚合函数为取最大值;
特征7:名字和姓氏的概率
为了得到个人姓名的出现的全局概率,我们使用公司已有所有企业的高管人名库,来计算其出现概率;若查不到人名时,返回缺省值,缺省值定义为:1/企业高管名字库名字数;
姓氏提取,基于所搜集的中国姓氏录;若查不到姓氏时,返回缺省值,缺省值定义为:1/企业高管名字库名字数;
特征8:所在行业相似性
行业取一级-二级-三级,进行多级匹配:若一级行业相同则赋值1,若二级行业相同则赋值2,三级行业相同则赋值3;皆不相同赋值0,聚合函数为取最大值;
S4、模型训练与评估
自定义损失函数
我们在使用LightGBM时,引入自定义二分类的FocalLoss函数(LightGBM库本身并未提供);根据LightGBM接口定义,引入自定义Loss函数时,需要:定义初始化值求解函数,Loss函数的一阶导和二阶导以及评估损失计算函数;
在使用前述,特征和样本的构造方法后,得到训练样本;在这些样本上进行模型的训练,模型的训练,遵循一般的模型训练过程:划分训练集合验证集;模型基于5折交叉验证的网格搜索方法,选出最好的模型;并在验证集上进行验证,确定最终的模型。
本发明与现有技术相比的优点在于:本发明提出一种去重名模型,用于给工商企业数据库中出现的自然人编写唯一标识(PID),再结合工商企业的相关信息,可以进一步分析挖掘出个人关联企业、企业间关联关系等模型,服务各类业务场景。
附图说明
图1是本发明的流程框架图。
图2是本发明的自然人对应“关联企业”的整体结构示意图。
图3是本发明的自然人具体对应“关联企业”的结构示意图一。
图4是本发明的自然人具体对应“关联企业”的结构示意图二。
图5是本发明的自然人具体对应“关联企业”的结构示意图三。
图6是本发明的自然人具体对应“关联企业”的结构示意图四。
图7是本发明的自然人具体对应“关联企业”的结构示意图五。
图8是本发明的自然人具体对应“关联企业”的结构示意图六。
具体实施方式
在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。另外,术语“包括”及其任何变形,意图在于覆盖不排他的包含。
下面结合实施方式和说明书附图对本发明做进一步的详细说明。
一、特征选取
所提方法的核心——去重名模型,是一种有监督的分类模型。首先,我们从相关渠道获取了一部分较为准确的个人唯一标识数据,用于构建正负样本、模型训练和模型验证;测试集结果将用人工质检的方式进行检查和反馈。
该模型所选用特征的共同逻辑,是同名自然人各自的“关联企业”之间是否存在某种联系或相似性。
“关联企业”,指的是与自然人以某一种或多种关系相关联的企业,关系类型包括自然人为企业的法定代表人、主要人员(董事、监事、高管)、自然人股东或者最终受益人等。
如图2所示,企业A-F均为某一自然人的“关联企业”。
经过数据分析,模型特征确定为以下8类。
如图3所述,新人员A的关联企业与同名存量人员“A”的关联企业,是否具有相同的注册地址。
如图4所示,新人员A的关联企业与同名存量人员“A”的关联企业,具有相同的企业股东。
如图5所示,新人员A的关联企业与同名存量人员“A”的关联企业,除A以外,是否还有其他同名自然人。
如图6所述,新人员A的关联企业与同名存量人员“A”的关联企业,是否具有相同的公开联系方式:电话或者email。
如图7所示,新人员A的关联企业,是否为同名存量人员“A”的关联企业的分支机构或办事处。两企业是否互为分支机构,或者同为第三企业的分支机构。
如图8所示,新人员A的关联企业与同名存量人员“A”的关联企业,是否企业名称相似。
企业名称一般由四个部分组成:地名+字号+行业/经营特点+组织形式,根据分割部分判定相似性。
“A”的重名率作为新的特征入模,重名率指出现某个名字的概率(例如,有100个不同的自然人,其中有5个自然人都叫“张三”,则“张三”这个名字的重名率为5%)。
新人员A的关联企业与同名存量人员“A”的关联企业,是否属于相同的行业。这里的行业我们取到3级。
二、数据预处理
数据中可能存在两个同一个人名,它们所关联的企业中存在相同的企业,这些人名却有不同的PID,这样的人我们认为应该是同一个人。对于这样的样本,根据负样本的构造方式,会把本来应该属于正样本的数据,变成负样本。这对模型的训练会造成严重干扰。为了去除这样的干扰,我们使用图论算法,提前合并这些样本,主要步骤如下:
S1.以人名为键值,个人名下所有公司的uid集合为值,构造字典对;
S2.定义相关性矩阵join_matrix,对字典中任意两个元素,如果它们的公司uid集合的交集不空,则两元素的join_matrix值为1;否则,为0;
S3.以join_matrix为关联矩阵,构造一个无向图,关联矩阵值为1表示两个结点之间有一条边相连;值为0表示两个结点间没有边相连;
S4.找出图中的所有最大团(MaximumClique),这些最大团表示团中所有元素应该对应同一个个人;
S5.对每一个团,合并该团中所有的元素,所对应的企业,归集到同一个PID下;归集PID取个人名下企业数最多的那个个人PID,若数量都相同,则直接取其中任一个。
三、特征和训练样本构造
训练样本构造
为了采用有监督的方式训练模型,我们需要构造训练样本。
用于建模的基础数据主要为个人信息和相关的企业信息。具体地,其数据格式为:簇名,人名,公司名,公司uid,股东,主要人员,法人名,注册地址,年报-tel,年报-email。数据每一行对应个人所关联的一个企业信息。
定义簇为同一个名字,具有不同PID,及其对应公司集的样本集。
为了接近实际的预测场景,使得数据的分布与实际一致,我们的样本构造操作,限制在同一个簇内,样本具体构造过程如下:
构造的样本输出格式:簇名,Query,Keys,label。Query表示新人员所对应企业。Keys表示某个同名存量人员名下所有企业,是个集合。Query和Keys的具体值,用基础数据的索引来表示。显然地,在计算Query和Keys上的指标时,需要一个聚合函数。Label为标签,1:表示正样本,两个人是同一个人;0:表示负样本,两个人不是同一个人。
以簇名为第一键值,以PID为第二键值,对表进行聚合分组,得到同一个PID下所有公司,以下称为分组。
S1.构造正样本:
对簇中的每个分组,如果包含的企业个数大于1,则对该分组,遍历分组中的所有企业元素,元素作为Query,企业集合-{该元素},作为Keys。
S2.构造负样本:
针对同一个PID中每个企业,以该企业Query,其它分组,为Keys,构造一个样本,作为负样本。
S3.去重
对于Keys中元素数为1的样本,如果和Query合并后。由于后续特征构造的所有计算,都满足交换律,导致两个样本算出的所有特征都相同,所以这两个样本,只需要保留其中一个。
例如,如下两个样本:
index,簇名,Query,Keys,Label
23181,丁世栋,9097,(9098,),1
23182,丁世栋,9098,(9097,),1
以Label和合并项为键值,去重。
特征构造
特征1:企业注册地址相似性
地址标准化
以2021年国家标准地址库,作为基础,对企业注册地址进行标准化。具体过程如下:
S1.基于正则提取出道路、建筑物号等信息;
S2.省、市、区/县的匹配,过程如下:
首先,为所使用的国家标准地址库建立倒排索引,以支持快速检索;
接着,从待标准化地址文本的起始位置开始,采用最大长度优先的方式匹配文本中的所有文本片段;
最后,对所有匹配结果进行标准行政区域从属关系校验,并补全缺失的父级地址。
地址匹配,其过程如下:
S1.对输入的两个地址进行标准化,标准化的地址表示为:省,市,区/县,剩余的详细地址;
S2.将标准化后的地址,从前往后逐级匹配,每匹配一级,分数+1,若失配,则退出匹配;直到匹配到剩余的详细地址,最终的地址相似性分值,会加上该部分的相似性分值。剩余的详细地址部分的匹配分值,计算过程为:
首先,对其中所包含的道路号,建筑号进行语义处理,分配权重;
接着,对剩余文本使用jieba进行分词;
最后,对两个地址结果集使用余弦相似度算法计算相似度。
聚合函数为取最大值。
特征2:共同的企业股东和特征3:共同的个人
给定企业股东列表,其通常包含个人和企业股东,为了区分两者,我们构建了一个股东类型二分类器,以判断企业所有股东列表中每个股东,是个人还是企业。分类器直接使用股东名文本作为输入特征,采用预训练模型bert+linear层的模型。
采用共同的企业股东数量来作为特征。聚合函数为取最大值。
共同的个人,则采用人名列表所对应的tf-idf向量的相似性,作为特征。具体地,对个人列表,将每个个人名,看做一个词,人名列表看做一个文档。构造人名列表的tf-idf向量,计算两个文档tf-idf向量的余弦相似性,将该余弦相似性作为两个人名列表的相似性。其中,idf取全局值,即本公司企业数据中所有高管人名库的人名出现概率,也即为本节中特征7的构造中所用的企业高管人名库。
考虑到个人人名数量的庞大,以及个人人名在所有人名中的稀疏性,即:向量中的大部分位置都是0,在具体实现时,我们使用向量的稀疏表示,来存储节省空间。
特征4:相同的公开联系方式
采用共同的电话号码数量和email数量构建2个特征;聚合函数都为取最大值。
特征5:企业间的关系
大部分的关系可以直接从公司名称推断。这里我们直接使用公司已有的企业关系表。基于该关系表,我们构建了,如下的4类关系:是母公司,是同一母公司分支,是分支,以及None关系(表示不存在关系)。并约定关系的序关系:是母公司==是分支>是同一母公司分支>None关系。聚合函数取最大值。
特征6:企业名称相似性
公司名称拆分为4个部分:地名、字号、行业/经营特点、组织形式。
公司名的拆分,我们采用NLP中命名实体识别抽取模型来做。模型采用预训练模型bert+crf,模型输入为公司名称的BIO标签标注的数据,具体为:{'O','I-LOC','B-LOC','I-NAME','I-INDU','I-ORG','B-NAME','B-INDU','B-ORG'},其中LOC,NAME,INDU,ORG分别对应地名、字号、行业/经营特点、组织形式。基于已有的数据,标注1万条数据,来训练模型。
特征构建:使用除组织形式外的其他部分。
共构造两类特征,作为模型的特征。这两类特征的构造过程,如下所示:
第一类:
S1.使用公司名称拆分算法,将企业名称分为四部分;
S2.取企业名称分割后的前3个部分:地名、字号、行业/经营特点,作为一个3元组。
S3.对该3元组的每个部分的文本,分别使用句向量模型(sentenceembedding)text2vec-large-chinese,生成对应的文本embedding。
S4.计算目标样本,在每个部分上的相似性,该相似性为点积。计算两个3元组的余弦相似度,作为两个企业名称相似性值。聚合函数为取最大值。
第二类:
首先,使用text2vec-large-chinese模型,对每个部分计算其embedding,计算与目标的相似值,该相似值,为两embedding的余弦距离,将每部分看作一个单独的特征。聚合函数为取最大值。
特征7:名字和姓氏的概率
为了得到个人姓名的出现的全局概率,我们使用公司已有所有企业的高管人名库,来计算其出现概率;若查不到人名时,返回缺省值,缺省值定义为:1/企业高管名字库名字数。
姓氏提取,基于所搜集的中国姓氏录;若查不到姓氏时,返回缺省值,缺省值定义为:1/企业高管名字库名字数。
特征8:所在行业相似性
行业取一级-二级-三级,进行多级匹配:若一级行业相同则赋值1,若二级行业相同则赋值2,三级行业相同则赋值3;皆不相同赋值0。聚合函数为取最大值。
四、模型训练与评估
自定义损失函数
为了处理正负样本存在严重的不均衡的问题。我们在使用LightGBM时,引入自定义二分类的FocalLoss函数(LightGBM库本身并未提供)。根据LightGBM接口定义,引入自定义Loss函数时,需要:定义初始化值求解函数,Loss函数的一阶导和二阶导以及评估损失计算函数。
在使用前述,特征和样本的构造方法后,得到训练样本。在这些样本上进行模型的训练。模型的训练,遵循一般的模型训练过程:划分训练集合验证集。模型基于5折交叉验证的网格搜索方法,选出最好的模型;并在验证集上进行验证,确定最终的模型。
以上对本发明及其实施方式进行了描述,这种描述没有限制性。如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似实施例,均应属于本发明的保护范围。
Claims (2)
1.一种准确率高的企业高效去重名方法,其特征在于,包括以下步骤:
S1、特征选取
我们从相关渠道获取了一部分较为准确的个人唯一标识数据,用于构建正负样本、模型训练和模型验证;测试集结果将用人工质检的方式进行检查和反馈;该模型所选用特征的共同逻辑,是同名自然人各自的“关联企业”之间是否存在某种联系或相似性;
“关联企业”,指的是与自然人以某一种或多种关系相关联的企业,关系类型包括自然人为企业的法定代表人、主要人员(董事、监事、高管)、自然人股东或者最终受益人等;
S2、数据预处理
数据中可能存在两个同一个人名,它们所关联的企业中存在相同的企业,这些人名却有不同的PID,这样的人我们认为应该是同一个人,对于这样的样本,我们使用图论算法,提前合并这些样本,主要步骤如下:
第一步、以人名为键值,个人名下所有公司的uid集合为值,构造字典对;
第二步、定义相关性矩阵join_matrix,对字典中任意两个元素,如果它们的公司uid集合的交集不空,则两元素的join_matrix值为1;否则,为0;
第三步、以join_matrix为关联矩阵,构造一个无向图,关联矩阵值为1表示两个结点之间有一条边相连;值为0表示两个结点间没有边相连;
第四步、找出图中的所有最大团(MaximumClique),这些最大团表示团中所有元素应该对应同一个人;
第五步、对每一个团,合并该团中所有的元素,所对应的企业,归集到同一个PID下;归集PID取个人名下企业数最多的那个个人PID,若数量都相同,则直接取其中任一个;
S3、特征和训练样本构造
训练样本构造
用于建模的基础数据主要为个人信息和相关的企业信息;具体地,其数据格式为:簇名,人名,公司名,公司uid,股东,主要人员,法人名,注册地址,年报-tel,年报-email;数据每一行对应个人所关联的一个企业信息;定义簇为同一个名字,具有不同PID,及其对应公司集的样本集;
为了接近实际的预测场景,使得数据的分布与实际一致,我们的样本构造操作,限制在同一个簇内,样本具体构造过程如下:
首先,构造的样本输出格式:簇名,Query,Keys,label;Query表示新人员所对应企业,Keys表示某个同名存量人员名下所有企业,是个集合,Query和Keys的具体值,用基础数据的索引来表示,显然地,在计算Query和Keys上的指标时,需要一个聚合函数,Label为标签,1:表示正样本,两个人是同一个人;0:表示负样本,两个人不是同一个人;
然后,以簇名为第一键值,以PID为第二键值,对表进行聚合分组,得到同一个PID下所有公司,以下称为分组;
构造正样本:对簇中的每个分组,如果包含的企业个数大于1,则对该分组,遍历分组中的所有企业元素,元素作为Query,企业集合-{该元素},作为Keys;
构造负样本:针对同一个PID中每个企业,以该企业Query,其它分组,为Keys,构造一个样本,作为负样本;
去重:对于Keys中元素数为1的样本,如果和Query合并后,由于后续特征构造的所有计算,都满足交换律,导致两个样本算出的所有特征都相同,所以这两个样本,只需要保留其中一个;
特征构造
特征1:企业注册地址相似性,包括;
地址标准化,以2021年国家标准地址库,作为基础,对企业注册地址进行标准化;具体过程如下:
第一步、基于正则提取出道路、建筑物号等信息;
第二不、省、市、区/县的匹配,过程如下:
首先,为所使用的国家标准地址库建立倒排索引,以支持快速检索;接着,从待标准化地址文本的起始位置开始,采用最大长度优先的方式匹配文本中的所有文本片段;最后,对所有匹配结果进行标准行政区域从属关系校验,并补全缺失的父级地址;
地址匹配,过程如下:
第一步、对输入的两个地址进行标准化,标准化的地址表示为:省,市,区/县,剩余的详细地址;
第二不、将标准化后的地址,从前往后逐级匹配,每匹配一级,分数+1,若失配,则退出匹配;直到匹配到剩余的详细地址,最终的地址相似性分值,会加上该部分的相似性分值;剩余的详细地址部分的匹配分值,计算过程为:
首先,对其中所包含的道路号,建筑号进行语义处理,分配权重;接着,对剩余文本使用jieba进行分词;最后,对两个地址结果集使用余弦相似度算法计算相似度,聚合函数为取最大值;
特征2:共同的企业股东、以及特征3:共同的个人
给定企业股东列表,其通常包含个人和企业股东,为了区分两者,我们构建了一个股东类型二分类器,以判断企业所有股东列表中每个股东,是个人还是企业;分类器直接使用股东名文本作为输入特征,采用预训练模型bert+linear层的模型;采用共同的企业股东数量来作为特征;聚合函数为取最大值;
共同的个人,则采用人名列表所对应的tf-idf向量的相似性,作为特征;具体地,对个人列表,将每个个人名,看做一个词,人名列表看做一个文档,构造人名列表的tf-idf向量,计算两个文档tf-idf向量的余弦相似性,将该余弦相似性作为两个人名列表的相似性;其中,idf取全局值,即本公司企业数据中所有高管人名库的人名出现概率,也即为本节中特征7的构造中所用的企业高管人名库;
考虑到个人人名数量的庞大,以及个人人名在所有人名中的稀疏性,即:向量中的大部分位置都是0,在具体实现时,我们使用向量的稀疏表示,来存储节省空间;
特征4:相同的公开联系方式
采用共同的电话号码数量和email数量构建2个特征;聚合函数都为取最大值;
特征5:企业间的关系
大部分的关系可以直接从公司名称推断;这里我们直接使用公司已有的企业关系表;基于该关系表,我们构建了4类关系:是母公司,是同一母公司分支,是分支,以及None关系(表示不存在关系);并约定关系的序关系:是母公司==是分支>是同一母公司分支>None关系;聚合函数取最大值;
特征6:企业名称相似性
公司名称拆分为4个部分:地名、字号、行业/经营特点、组织形式;
公司名的拆分,我们采用NLP中命名实体识别抽取模型来做;模型采用预训练模型bert+crf,模型输入为公司名称的BIO标签标注的数据,具体为:{'O','I-LOC','B-LOC','I-NAME','I-INDU','I-ORG','B-NAME','B-INDU','B-ORG'},其中LOC,NAME,INDU,ORG分别对应地名、字号、行业/经营特点、组织形式,基于已有的数据,标注1万条数据,来训练模型;
特征构建:使用除组织形式外的其他部分;
共构造两类特征,作为模型的特征;这两类特征的构造过程,如下所示:
第一类:
第一步、使用公司名称拆分算法,将企业名称分为四部分;
第二不、取企业名称分割后的前3个部分:地名、字号、行业/经营特点,作为一个3元组;
第三步、对该3元组的每个部分的文本,分别使用句向量模型(sentenceembedding)text2vec-large-chinese,生成对应的文本embedding;
第四步、计算目标样本,在每个部分上的相似性,该相似性为点积,计算两个3元组的余弦相似度,作为两个企业名称相似性值;聚合函数为取最大值;
第二类:
使用text2vec-large-chinese模型,对每个部分计算其embedding,计算与目标的相似值,该相似值,为两embedding的余弦距离,将每部分看作一个单独的特征;聚合函数为取最大值;
特征7:名字和姓氏的概率
为了得到个人姓名的出现的全局概率,我们使用公司已有所有企业的高管人名库,来计算其出现概率;若查不到人名时,返回缺省值,缺省值定义为:1/企业高管名字库名字数;
姓氏提取,基于所搜集的中国姓氏录;若查不到姓氏时,返回缺省值,缺省值定义为:1/企业高管名字库名字数;
特征8:所在行业相似性
行业取一级-二级-三级,进行多级匹配:若一级行业相同则赋值1,若二级行业相同则赋值2,三级行业相同则赋值3;皆不相同赋值0,聚合函数为取最大值;
S4、模型训练与评估
自定义损失函数
我们在使用LightGBM时,引入自定义二分类的FocalLoss函数(LightGBM库本身并未提供);根据LightGBM接口定义,引入自定义Loss函数时,需要:定义初始化值求解函数,Loss函数的一阶导和二阶导以及评估损失计算函数;
在使用前述,特征和样本的构造方法后,得到训练样本;在这些样本上进行模型的训练,模型的训练,遵循一般的模型训练过程:划分训练集合验证集;模型基于5折交叉验证的网格搜索方法,选出最好的模型;并在验证集上进行验证,确定最终的模型。
2.根据权利要求1所述的一种准确率高的企业高效去重名方法,其特征在于,所述S1中,经过数据分析,模型特征确定为以下8类:
新人员A的关联企业与同名存量人员“A”的关联企业,是否具有相同的注册地址;
新人员A的关联企业与同名存量人员“A”的关联企业,具有相同的企业股东;
新人员A的关联企业与同名存量人员“A”的关联企业,除A以外,是否还有其他同名自然人;
新人员A的关联企业与同名存量人员“A”的关联企业,是否具有相同的公开联系方式:电话或者email;
新人员A的关联企业,是否为同名存量人员“A”的关联企业的分支机构或办事处;两企业是否互为分支机构,或者同为第三企业的分支机构;
新人员A的关联企业与同名存量人员“A”的关联企业,是否企业名称相似;
企业名称一般由四个部分组成:地名+字号+行业/经营特点+组织形式,根据分割部分判定相似性;
“A”的重名率作为新的特征入模,重名率指出现某个名字的概率(例如,有100个不同的自然人,其中有5个自然人都叫“张三”,则“张三”这个名字的重名率为5%)
新人员A的关联企业与同名存量人员“A”的关联企业,是否属于相同的行业;这里的行业我们取到3级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311012768.6A CN117077674A (zh) | 2023-08-12 | 2023-08-12 | 一种准确率高的企业高效去重名方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311012768.6A CN117077674A (zh) | 2023-08-12 | 2023-08-12 | 一种准确率高的企业高效去重名方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117077674A true CN117077674A (zh) | 2023-11-17 |
Family
ID=88705427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311012768.6A Pending CN117077674A (zh) | 2023-08-12 | 2023-08-12 | 一种准确率高的企业高效去重名方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117077674A (zh) |
-
2023
- 2023-08-12 CN CN202311012768.6A patent/CN117077674A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111428054B (zh) | 一种网络空间安全领域知识图谱的构建与存储方法 | |
US11615093B2 (en) | Fuzzy data operations | |
CN109657947B (zh) | 一种面向企业行业分类的异常检测方法 | |
CN111831824A (zh) | 一种舆情正负面分类方法 | |
CN111158641B (zh) | 基于语义分析和文本挖掘的事务类功能点自动识别方法 | |
MX2012011923A (es) | Asignacion de atributis aplicables para datos que describen la identidad personal. | |
KR20160149050A (ko) | 텍스트 마이닝을 활용한 순수 기업 선정 장치 및 방법 | |
CN117473431A (zh) | 一种基于知识图谱的机场数据分类分级方法及系统 | |
CN115794798A (zh) | 一种市场监管信息化标准管理与动态维护系统及方法 | |
CN107992613A (zh) | 一种基于机器学习的文本挖掘技术消费维权指标分析方法 | |
CN110659365A (zh) | 一种基于多层次结构词典的畜产品安全事件文本分类方法 | |
Budzynska et al. | Argument Mining. | |
CN113920366A (zh) | 一种基于机器学习的综合加权主数据识别方法 | |
Leung et al. | Counting protests in news articles: A dataset and semi-automated data collection pipeline | |
Spichakova et al. | Application of Machine Learning for Assessment of HS Code Correctness. | |
CN115545437A (zh) | 一种基于多源异构数据融合的金融企业经营风险预警方法 | |
CN116205296A (zh) | 一种融合自顶向下与自底向上的abac策略工程方法 | |
CN117077674A (zh) | 一种准确率高的企业高效去重名方法 | |
CN112966901B (zh) | 面向检察业务协同流程的世系数据质量分析与验证方法 | |
CN116128275A (zh) | 一种事件推演预测系统 | |
CN112818215A (zh) | 产品数据的处理方法、装置、设备及存储介质 | |
AU2017201787B2 (en) | Fuzzy data operations | |
CN105138544B (zh) | 一种重塑逻辑演绎链的搜索方法 | |
Januzaj et al. | An application of data mining to identify data quality problems | |
CN117150245B (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 |