Exemple #1
0
        static void GenericItemBasedRecommenderTestByTanimotoCoefficientSimilarity()
        {
            Console.WriteLine("GenericItemBasedRecommenderTestByTanimotoCoefficientSimilarity");
            System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
            watch.Start();

            var model = new FileDataModel(filePath);

            ItemSimilarity similarity = new TanimotoCoefficientSimilarity(model);

            var recommender = new GenericItemBasedRecommender(model, similarity);

            var iter = model.getUserIDs();

            while (iter.MoveNext())
            {
                var userId           = iter.Current;
                var recommendedItems = recommender.recommend(userId, 5);

                Console.Write("uid:" + userId);
                foreach (var ritem in recommendedItems)
                {
                    Console.Write("(" + ritem.getItemID() + "," + ritem.getValue() + ")");
                }
                Console.WriteLine();
            }
            watch.Stop();
            Console.WriteLine(watch.ElapsedMilliseconds);
        }
            public IRecommender BuildRecommender(IDataModel model)
            {
                IUserSimilarity   similarity   = new TanimotoCoefficientSimilarity(model);
                IUserNeighborhood neighborhood =
                    new NearestNUserNeighborhood(10, similarity, model);

                return
                    (new GenericUserBasedRecommender(model, neighborhood, similarity));
            }
Exemple #3
0
        public List <Historial> SelectRecommendations(string userId)
        {
            Data.dsMantenimientoTableAdapters.HistorialTableAdapter adapter = new Data.dsMantenimientoTableAdapters.HistorialTableAdapter();
            Data.dsMantenimiento.HistorialDataTable dt = adapter.SelectHistorial();

            var Recomendaciones = new List <Historial>();

            if (dt.Rows.Count == 0)
            {
                return(Recomendaciones);
            }

            foreach (Data.dsMantenimiento.HistorialRow data in dt)
            {
                var Historial = new Historial();

                Historial.Restaurante = data.Restaurante;
                Historial.Usuario     = data.Usuario;
                Historial.Puntuacion  = data.Puntuacion.ToString();

                Recomendaciones.Add(Historial);
            }

            //var model = new FileDataModel("data.csv");
            //var similarity = new TanimotoCoefficientSimilarity(model);
            //var neighborhood = new NearestNUserNeighborhood(3, similarity, model);
            //var recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);
            //var recommendedItems = recommender.Recommend(Convert.ToInt64(userId), 5);

            var ordersDataModel = LoadOrdersDataModel();

            // lets assume that we have a new user interted in some product
            var currentProductID = 57; // Product Name: Ravioli Angelo

            var modelWithCurrentUser = GetDataModelForNewUser(ordersDataModel, currentProductID);

            var similarity = new TanimotoCoefficientSimilarity(modelWithCurrentUser);

            // in this example, we have no preference values (scores)
            // to get correct results 'BooleanfPref' recommenders should be used

            var recommender = new GenericBooleanPrefItemBasedRecommender(modelWithCurrentUser, similarity);

            var recommendedItems = recommender.Recommend(PlusAnonymousUserDataModel.TEMP_USER_ID, 10, null);

            Console.WriteLine("Products similar to {0} ({1}):", currentProductID, GetProductName(currentProductID));
            foreach (var ri in recommendedItems)
            {
                Console.WriteLine("\tProductID={0}: {1}", ri.GetItemID(), GetProductName(ri.GetItemID()));
            }
            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();

            return(Recomendaciones);
        }