基于目标群体的潜在人物挖掘
一、目标群体中存在潜在关系的人物挖掘
目标:通过对当前多个节点的标签、关系、属性的分析,从社交图谱中挖掘与目标群体关系紧密的潜在人物。
1、遍历路径拿到与目标人群有关联的所有人
2、计算潜在人与目标群体关系紧密度得分,并将得分更新到属性
3、使用targetGroupPersonDiggerRelaCount属性排序(通过潜在人与目标人群的关系紧密度SCORE排行)
4、过滤得分最高的前N个人
5、输出过滤的N个人与目标群体的关系路径
二、案例测试
1、目标群体
MATCH (n) WHERE id(n) IN [0,32,33,52] RETURN n
2、目标群体潜在关系人物挖掘
WITH [0,32,33,52] AS groupIds
MATCH p=(source)--(target) WHERE id(source) IN groupIds AND
zdr.apoc.relatCalculateRestrict(labels(target),labels(target),'Linkedin||Twitter||Facebook||人物')
WITH zdr.apoc.removeIdsFromRawList(collect(id(target)),groupIds) AS targetIds,groupIds AS sourceIds
UNWIND targetIds AS targetId
UNWIND sourceIds AS sourceId
MATCH (sou),(tar) WHERE id(sou)=sourceId AND id(tar)=targetId
MATCH path=(sou)--(tar) WITH collect(id(sou)) AS sourceList,collect(id(tar)) AS targetList
CALL zdr.apoc.publicFriendAnalysisMap(sourceList,targetList) YIELD list WITH list,targetList,sourceList
UNWIND list AS row
MATCH (n) WHERE id(n)=row.id AND id(n) IN targetList SET n.targetGroupPersonDiggerRelaCount=row.count
WITH n,sourceList ORDER BY n.targetGroupPersonDiggerRelaCount DESC SKIP 0 LIMIT 2
MATCH p=(n)--(m) WHERE id(m) IN sourceList RETURN p