Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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
            });
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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();
        }
Esempio n. 6
0
 public UsersGroup(BinarySearchSet <int> users, BinarySearchMultiSet <Tuple <int, float> > urlsStats)
 {
     this.users     = users;
     this.urlsStats = urlsStats;
 }
Esempio n. 7
0
 public override void onMetadata(Metadata metadata)
 {
     currentList = getList(metadata.userId);
 }
Esempio n. 8
0
 public override void onBeginRead()
 {
     usersTerms  = new List <BinarySearchSet <int> >();
     currentList = null;
 }