public void testSetValue()
 {
     IPreferenceArray prefs = new GenericUserPreferenceArray(3);
     Assert.AreEqual(3, prefs.Length());
     prefs.SetValue(0, 1.0f);
     prefs.SetValue(1, 2.0f);
     prefs.SetValue(2, 3.0f);
     Assert.AreEqual(1.0f, prefs.GetValue(0), EPSILON);
     Assert.AreEqual(2.0f, prefs.GetValue(1), EPSILON);
     Assert.AreEqual(3.0f, prefs.GetValue(2), EPSILON);
 }
示例#2
0
        public void testSetValue()
        {
            IPreferenceArray prefs = new GenericUserPreferenceArray(3);

            Assert.AreEqual(3, prefs.Length());
            prefs.SetValue(0, 1.0f);
            prefs.SetValue(1, 2.0f);
            prefs.SetValue(2, 3.0f);
            Assert.AreEqual(1.0f, prefs.GetValue(0), EPSILON);
            Assert.AreEqual(2.0f, prefs.GetValue(1), EPSILON);
            Assert.AreEqual(3.0f, prefs.GetValue(2), EPSILON);
        }
        public ActionResult Recommend(string filmIdsJson)
        {
            var filmIds = (new JavaScriptSerializer()).Deserialize<long[]>(filmIdsJson);
            var pathToDataFile =
                    Path.Combine(System.Web.HttpRuntime.AppDomainAppPath, "data/albums.dat");

            if (dataModel == null) {
                try
                {
                    dataModel = new FileDataModel(pathToDataFile, false, FileDataModel.DEFAULT_MIN_RELOAD_INTERVAL_MS, false);
                }
                catch (Exception e)
                {
                    var exe = e.ToString();
                }
            }

            var plusAnonymModel = new PlusAnonymousUserDataModel(dataModel);
            var prefArr = new GenericUserPreferenceArray(filmIds.Length);
            prefArr.SetUserID(0, PlusAnonymousUserDataModel.TEMP_USER_ID);
            for (int i = 0; i < filmIds.Length; i++) {
                prefArr.SetItemID(i, filmIds[i]);
                prefArr.SetValue(i, 5); // lets assume max rating
            }
            plusAnonymModel.SetTempPrefs(prefArr);

            var similarity = new LogLikelihoodSimilarity(plusAnonymModel);
            var neighborhood = new NearestNUserNeighborhood(15, similarity, plusAnonymModel);
            var recommender = new GenericBooleanPrefUserBasedRecommender(plusAnonymModel, neighborhood, similarity);
            var recommendedItems = recommender.Recommend(PlusAnonymousUserDataModel.TEMP_USER_ID, 5, null);
            return Json( recommendedItems.Select(ri => new Dictionary<string, object>() {
                {"id", ri.GetItemID() },
                {"rating", ri.GetValue() },
            }).ToArray() );
        }
        public void testGetPreferenceValue()
        {
            PlusAnonymousConcurrentUserDataModel instance = getTestableWithoutDelegateData(10);

            long anonymousUserID = instance.TakeAvailableUser().Value;

            IPreferenceArray tempPrefs = new GenericUserPreferenceArray(1);

            tempPrefs.SetUserID(0, anonymousUserID);
            long sampleItemID = 1;

            tempPrefs.SetItemID(0, sampleItemID);
            tempPrefs.SetValue(0, float.MaxValue);

            instance.SetTempPrefs(tempPrefs, anonymousUserID);

            Assert.AreEqual(float.MaxValue, instance.GetPreferenceValue(anonymousUserID, sampleItemID), EPSILON);
        }
        public void testGetPreferenceValue()
        {
            PlusAnonymousConcurrentUserDataModel instance = getTestableWithoutDelegateData(10);

            long anonymousUserID = instance.TakeAvailableUser().Value;

            IPreferenceArray tempPrefs = new GenericUserPreferenceArray(1);
            tempPrefs.SetUserID(0, anonymousUserID);
            long sampleItemID = 1;
            tempPrefs.SetItemID(0, sampleItemID);
            tempPrefs.SetValue(0, float.MaxValue);

            instance.SetTempPrefs(tempPrefs, anonymousUserID);

            Assert.AreEqual(float.MaxValue, instance.GetPreferenceValue(anonymousUserID, sampleItemID), EPSILON);
        }