public static int[] GetMinhashValues(BinarySearchSet <int> row, Tuple <int, int>[] allParams) { var result = new int[allParams.Length]; for (int i = 0; i < result.Length; i++) { result[i] = GetMinhashValue(row, allParams[i]); } return(result); }
private static int GetMinhashValue(BinarySearchSet <int> row, Tuple <int, int> par) { const int length = KMeans.MAX_TERM_ID; for (int i = 0; i < length; i++) { int value = GetFuncVal(i, par.Item1, par.Item2, KMeans.MAX_TERM_ID); if (row.Contains(value)) { return(i); } } return(-1); }
public static User GetCentroid(List <User> users) { var allTerms = new BinarySearchSet <int>(Comparer <int> .Default); foreach (var user in users) { foreach (var term in user.terms) { allTerms.Add(term); } } return(new User() { userId = -1, terms = allTerms }); }
public BinarySearchSet <int> getList(int userId) { while (usersTerms.Count < userId) { usersTerms.Add(null); } if (usersTerms.Count == userId) { usersTerms.Add(new BinarySearchSet <int>(Comparer <int> .Default)); } BinarySearchSet <int> list = usersTerms[userId]; if (list == null) { list = new BinarySearchSet <int>(Comparer <int> .Default); usersTerms[userId] = list; } return(list); }
public override void onQueryAction(QueryAction queryAction) { for (int i = queryAction.nUrls - 1; i >= 0; i--) { if (!currentDomains.Add(queryAction.domains[i])) { continue; } if (!domainsTerms.ContainsKey(queryAction.domains[i])) { domainsTerms.Add(queryAction.domains[i], new BinarySearchSet <int>(Comparer <int> .Default)); } BinarySearchSet <int> domainSet = domainsTerms[queryAction.domains[i]]; for (int term = queryAction.nTerms - 1; term >= 0; term--) { domainSet.Add(queryAction.terms[term]); } } currentDomains.Clear(); }
public UsersGroup(BinarySearchSet <int> users, BinarySearchMultiSet <Tuple <int, float> > urlsStats) { this.users = users; this.urlsStats = urlsStats; }
public override void onMetadata(Metadata metadata) { currentList = getList(metadata.userId); }
public override void onBeginRead() { usersTerms = new List <BinarySearchSet <int> >(); currentList = null; }