public AnalyzeEngine(bool tf)
 {
     categoryPoints = new ConcurrentDictionary <string, double>();
     this.Categorie = CheckinOperations.getCategorie();
     pCategories    = CheckinOperations.getPlaceCategories();
     likeCategories = CheckinOperations.listLikeCategories();
 }
示例#2
0
 public RecommendationEngine()
 {
     categories  = CheckinOperations.getCategorie();
     places      = CheckinOperations.getPlaces();
     pCategories = CheckinOperations.getPlaceCategories();
     aEng        = new AnalyzeEngine();
 }
示例#3
0
        /// <summary>
        /// Thresholds
        /// </summary>
        /// <param name="Popularity"></param>
        /// <param name="CategoryQuality"></param>
        public Engine(double Popularity, double CategoryQuality)
        {
            PopularityThreshold      = Popularity;
            CategoryQualityThreshold = CategoryQuality;

            places          = CheckinOperations.getPlaces().ToList();
            placeCategories = CheckinOperations.getPlaceCategories();
            CATEGORIES      = CheckinOperations.getCategorie();
            UserCheckins    = CheckinOperations.listCheckIns();
            checkinUser     = CheckinOperations.listCheckInsReturnedUser();
        }
示例#4
0
        public string GenerateData(string arff)
        {
            string data = "@data\n";

            var             userList = CheckinOperations.getUsers();
            List <ArffData> datas    = new List <ArffData>();

            foreach (var user in userList)
            {
                ArffData d = new ArffData();
                d.Name      = user.USERNAME;
                d.Categorie = getDefaultData();
                var checkins = CheckinOperations.getCheckIns(user.USERID);
                foreach (var checkin in checkins)
                {
                    var categories = CheckinOperations.getPlaceCategories(checkin.PLACEID.Value);
                    foreach (var catPlace in categories)
                    {
                        var cat = CheckinOperations.getCategory(catPlace.CATEGORIEID.Value);
                        d.Categorie[cat.NAME] += 1;
                    }
                }
                d.CheckinCount = checkins.Count;
                datas.Add(d);
            }
            foreach (var d in datas)
            {
                string row = string.Empty;

                row += d.Name + ",";
                foreach (var cat in d.Categorie)
                {
                    if (cat.Value == 0)
                    {
                        row += cat.Value.ToString().Replace(",", ".") + ",";
                    }
                    else
                    {
                        float result = ((float)cat.Value) / (float)d.CheckinCount;
                        row += result.ToString().Replace(",", ".") + ",";
                    }
                }

                row   = row.Substring(0, row.Length - 1);
                data += row + "\n";
            }
            arff = arff.Replace("@DATA", data + "\n\n");
            return(arff);
        }
        public void _Load()
        {
            categoryPoints = new ConcurrentDictionary <string, double>();
            this.Categorie = CheckinOperations.getCategorie();

            Engine eng = new Engine(popularityThreshold, CategoryQualityThreshold);

            List <string> list_lines = new List <string>();

            Parallel.ForEach(Categorie, (cat) =>
            {
                var catPoint = eng.getCategoryPoint(cat.CATEGORIEID);
                categoryPoints.AddOrUpdate(cat.NAME, catPoint, (key, oldvalue) => oldvalue + catPoint);
            });
            pCategories    = CheckinOperations.getPlaceCategories();
            likeCategories = CheckinOperations.listLikeCategories();
            //var catPoint = eng.getCategoryPoint(896);
            //categoryPoints.AddOrUpdate("Amphitheater", catPoint, (key, oldvalue) => oldvalue + catPoint);
        }