企业人员实体目前是没有唯一身份 id,只有人名,在不同公司的成员中,可能是同一个人,基于人名无法识别为是同一个人,通过图谱关系挖掘,生成唯一 id,进行人员实体识别

一、方案背景

在企业数据管理中,存在企业股权关系数据和公司团队成员数据,两者中人员均以姓名标识。为全面整合企业人员信息,需通过图谱关联关系,实现相同姓名人员的实体识别,将不同数据源中代表同一人的记录进行关联整合。

场景:

通过自然人找到直接关联的企业

确定性的规则:

  1. 通过股权穿透关联,同名的视为同一个人
  2. 通过股权与公司成员表关联,同名视为同一个人
  3. 通过股东成员列表,多个股东同时出不同公司,视为同一个人
  4. 通过高管列表,多个人员同时出现在不同公司,视为同一个人

二、数据准备

(一)数据准备

  1. 股权关系数据:ads.dm_lget_company_equity_ratio 包含股东姓名、持股比例、股东所在企业等信息的数据。
  2. 团队成员数据:ads_lget_company_team 公司团队成员姓名、所在部门、职位等信息的数据。

(二)数据探查

人员姓名分布(集中度数量)

  1. 统计频率:分别在企业股东表 dm_lget_company_equity_ratio 和团队成员表 ads_lget_company_team 中,统计股东表中各姓名出现的次数,同理对团队成员表进行操作,查看同公司中重名情况。
  2. 重名集中度:将统计出的姓名出现次数进行排序,计算出现频率最高的若干姓名(如前 10%)的累计出现次数占总人员记录数的比例。例如,若数据集中总共有 1000 条人员记录,前 100 个出现频率最高的姓名累计出现了 300 次,那么人员姓名的集中度为 30%。通过该集中度可直观了解重名情况的严重程度,若集中度较高,在后续实体识别中需重点关注重名人员的区分。

匹配度分析

  1. 姓名匹配统计:通过姓名字段尝试将两个表进行匹配,统计匹配上的记录数量。在 SQL 中可使用SELECT COUNT(*) FROM dm_lget_company_equity_ratio a JOIN ads_lget_company_team b ON a.name = b.name;计算出仅基于姓名匹配的记录数。
  2. 属性匹配分析:除姓名外,进一步分析其他可匹配属性,如所在企业(需先统一企业名称格式)。统计在姓名匹配的基础上,所在企业也匹配的记录数量,以及持股比例、职位等属性的相似程度。例如,对于姓名和所在企业都匹配的记录,计算其持股比例和职位的平均相似度。通过这种多属性匹配分析,可评估两个表数据的一致性和可整合性,为后续图谱构建和实体识别提供依据,若匹配度较低,可能需要进一步核对数据来源或补充更多识别信息。

(三)数据清洗

  1. 去除重复记录:在各自数据源中,对完全重复的人员,打上删除标记的记录进行删除,确保数据集中每条记录的唯一性。
  2. 处理缺失值:对于姓名缺失的记录,由于无法进行基于姓名的实体识别,予以删除;对于其他属性(如部门、职位、持股比例等)的缺失值,可根据实际情况进行填充或标记。

三、图谱构建

(一)确定节点类型

  1. 人员节点:以人员姓名作为节点标识,代表股权关系中的股东和团队成员。
  2. 企业节点:代表企业,节点属性包括企业名称、企业类型等。

(二)确定边类型

  1. 股东关系边:连接人员节点和企业节点,表示人员作为股东对企业的持股关系,边属性包括持股比例。
  2. 团队成员关系边:连接人员节点和企业节点,表示人员作为团队成员在企业中的工作关系,边属性包括所在部门、职位。

(三)构建图谱

利用图数据库( Neo4j),将清洗后的数据按照确定的节点类型和边类型进行导入,构建企业人员关系图谱。在图谱中,每个人员姓名作为一个节点,通过不同类型的边与相关企业节点相连,形成复杂的关联网络。

四、实体识别流程

(一)基于姓名的初步匹配

  1. 在图谱中,根据姓名属性查找具有相同姓名的人员节点。这些节点可能代表同一人,也可能是重名情况。
  2. 对于找到的每一组相同姓名的人员节点,分别收集其关联的企业节点及边属性信息。

(二)基于图谱结构的验证

  1. 共同邻居分析:对于通过属性相似度验证的人员节点对,分析它们在图谱中的共同邻居节点(即与之相连的相同企业节点)。如果共同邻居节点较多,且连接边的属性也相似,进一步增强了它们代表同一人的可能性。
  2. 路径分析:在图谱中查找两个人员节点之间的最短路径。如果存在较短路径且路径上的关系符合业务逻辑(例如通过共同投资的企业相连),也可作为它们代表同一人的证据。

(三)人工审核与修正

  1. 对于自动识别结果中相似度接近阈值或存在疑问的情况,进行人工审核。审核人员可查看人员节点的详细信息及图谱关联关系,结合业务知识判断是否为同一人。
  2. 对于人工审核确定的错误识别结果,在图谱中进行修正,如调整节点的关联关系或重新标注人员身份。

五、提供 API 接口服务

输入参数: 接口接收一个简单的 JSON 格式数据,其中仅包含人名这一关键信息,例如:{“name”: “李明”}。 输出结果: 返回的数据结构将详细展示与输入人名相关联的不同企业群组中的同名实体信息。考虑到同名人员可能在不同企业以不同身份出现,输出结果按企业群组及人员角色进行分类呈现。

六、持续优化

  1. 定期更新数据:随着企业股权结构和团队成员的变化,定期收集和更新股权关系数据和团队成员数据,重新进行数据清洗、图谱构建和实体识别,确保图谱信息的及时性和准确性。
  2. 优化属性权重和相似度算法:根据实际识别效果,不断调整属性权重和相似度算法,提高实体识别的准确率和召回率。例如,通过对比人工审核结果与自动识别结果,分析不同属性和算法对识别效果的影响,从而进行针对性优化。
  3. 增加更多识别维度:除了现有的姓名、持股比例、所在部门、职位等信息外,可考虑引入更多人员特征信息,如身份证号码(如果有)、联系方式、入职时间等,作为实体识别的补充维度,进一步提高识别的准确性。