public bool IsRelated(EntPartedFull ep) { int count = 0; foreach (var s in ep.total) { if (names.Contains(s)) { count++; if (count == 2) { return(true); } } } return(false); }
public void Add(EntPartedFull ep) { cluster.Add(ep); names.UnionWith(ep.total); foreach (var p in ep.pnameDict) { if (pnameDict.ContainsKey(p.Key)) { pnameDict[p.Key].@int += p.Value.@int; } else { pnameDict[p.Key] = p.Value; } } if (ep.isSelf) { isSelf = true; } }
public EntPartedGroup(EntPartedFull ep) { cluster = new List <EntPartedFull>() { ep }; names.UnionWith(ep.total); foreach (var p in ep.pnameDict) { if (pnameDict.ContainsKey(p.Key)) { pnameDict[p.Key].@int += p.Value.@int; } else { pnameDict[p.Key] = p.Value; } } if (ep.isSelf) { isSelf = true; } }
public int GetRelation(EntPartedFull ep) => ep.total.Intersect(names).Count();
/// <summary> /// 为指定公司聚合相关的一组公司 /// </summary> /// <param name="ents"></param> /// <param name="self">指定的公司</param> /// <returns></returns> public static List <EntPartedGroup> ClusterForCom(List <EntPartedFull> ents, EntPartedFull self) { var group = new EntPartedGroup(self); var reminds = new List <EntPartedFull>(); bool fanbingbing_flag = false; if (Fanbingbing_Codes.Contains(group.cluster[0].code)) { fanbingbing_flag = true; } for (int i = 0; i < ents.Count; i++) { if (ents[i].isSelf) { continue; } //var curRelation = group.GetRelation(ents[i]); // 当前企业与当前分组的相关度 //if(curRelation > 1) //{ // group.Add(ents[i]); //} //else //{ // reminds.Add(ents[i]); //} // ***************** 手动处理范冰冰 ************************** if (fanbingbing_flag && Fanbingbing_Codes.Contains(ents[i].code)) { group.Add(ents[i]); continue; } // ********************************************************** if (group.IsRelated(ents[i])) { group.Add(ents[i]); } else { reminds.Add(ents[i]); } } for (int i = 0; i < reminds.Count; i++) { //if (group.GetRelation(reminds[i]) > 1) // group.Add(reminds[i]); // ***************** 手动处理范冰冰 ************************** if (fanbingbing_flag && Fanbingbing_Codes.Contains(reminds[i].code)) { group.Add(reminds[i]); continue; } // ***************** 手动处理范冰冰 ************************** if (group.IsRelated(reminds[i])) { group.Add(reminds[i]); } } return(new List <EntPartedGroup>() { group }); }