コード例 #1
0
ファイル: pyrcmmndr_test.py プロジェクト: Rcmmndr/pyrcmmndr
    def test_bulk_update(self):
        pyrcmmndr = RcmmndrClient(API_KEY)
        #initialize
        pyrcmmndr.delete_all_preferences()
        stats = pyrcmmndr.get_usage_stats()
        assert stats['total_preferences'] == 0
        assert stats['distinct_keys'] == 0

        #bulk update
        pyrcmmndr.bulk_update_preferences('preferences.tsv')
        stats = pyrcmmndr.get_usage_stats()
        assert stats['total_preferences'] == 22
        assert stats['distinct_keys'] == 21
コード例 #2
0
ファイル: pyrcmmndr_test.py プロジェクト: Rcmmndr/pyrcmmndr
    def test_basic_flow(self):
        pyrcmmndr = RcmmndrClient(API_KEY)
        #initialize
        pyrcmmndr.delete_all_preferences()

        #create some preferences
        pyrcmmndr.create_preference(1, 101, 1.0)

        #check the stats
        stats = pyrcmmndr.get_usage_stats()
        assert stats['total_preferences'] == 1
        assert stats['distinct_keys'] == 1

        pyrcmmndr.create_preference(2, 101, 1.0)
        pyrcmmndr.create_preference(2, 102, 2.0)

        stats = pyrcmmndr.get_usage_stats()
        assert stats['total_preferences'] == 3
        assert stats['distinct_keys'] == 2

        pyrcmmndr.delete_preferences_of_user(2)
        stats = pyrcmmndr.get_usage_stats()
        assert stats['total_preferences'] == 1
        assert stats['distinct_keys'] == 1

        pyrcmmndr.delete_all_preferences()
        stats = pyrcmmndr.get_usage_stats()
        assert stats['total_preferences'] == 0
        assert stats['distinct_keys'] == 0

        pyrcmmndr.create_preference(1, 101, 5)
        pyrcmmndr.create_preference(1, 102, 3)
        pyrcmmndr.create_preference(1, 103, 2.5)

        pyrcmmndr.create_preference(2l, 101l, 2)
        pyrcmmndr.create_preference(2l, 102l, 2.5)
        pyrcmmndr.create_preference(2l, 103l, 5)
        pyrcmmndr.create_preference(2l, 104l, 2)

        pyrcmmndr.create_preference(3l, 101l, 2.5)
        pyrcmmndr.create_preference(3l, 104l, 4)
        pyrcmmndr.create_preference(3l, 105l, 4.5)
        pyrcmmndr.create_preference(3l, 107l, 5)

        pyrcmmndr.create_preference(4l, 101l, 5)
        pyrcmmndr.create_preference(4l, 103l, 3)
        pyrcmmndr.create_preference(4l, 104l, 4.5)
        pyrcmmndr.create_preference(4l, 106l, 4)

        pyrcmmndr.create_preference(5l, 101l, 4)
        pyrcmmndr.create_preference(5l, 102l, 3)
        pyrcmmndr.create_preference(5l, 103l, 2)
        pyrcmmndr.create_preference(5l, 104l, 4)
        pyrcmmndr.create_preference(5l, 105l, 3.5)
        pyrcmmndr.create_preference(5l, 106l, 4)

        #get recommendations
        recs = pyrcmmndr.get_recommendation(1)
        print recs

        assert '104' in recs

        popular = pyrcmmndr.get_most_popular_n_items(None, 2)
        print popular
        assert '101' in popular
        assert '103' in popular
        assert 2 == len(popular)

        print pyrcmmndr.get_settings()

        rec = """
        {
             "recommender": {
                  "impl":"GenericUserBasedRecommender",
                  "params":{
                       "UserSimilarity" : {
                            "impl":"PearsonCorrelationSimilarity"
                       },
                       "UserNeighborhood":{
                            "impl":"NearestNUserNeighborhood",
                            "params": {
                                 "n":2
                            }
                       }
                  }
             }
        	}
         """

        pyrcmmndr.update_settings(json.loads(rec))

        print pyrcmmndr.get_settings()

        pyrcmmndr.create_preference(1, 101, 5, datatype="type1")
        recs2 = pyrcmmndr.get_recommendation(1, datatype="type1")
        print recs2
        assert recs <> recs2

        rec2 = """
        {
             "recommender": {
                  "impl":"GenericUserBasedRecommender",
                  "params":{
                       "UserSimilarity" : {
                            "impl":"PearsonCorrelationSimilarity"
                       },
                       "UserNeighborhood":{
                            "impl":"NearestNUserNeighborhood",
                            "params": {
                                 "n":40
                            }
                       }
                  }
             }
        	}
         """

        pyrcmmndr.update_settings(json.loads(rec2), datatype="type1")

        print pyrcmmndr.get_settings(datatype="type1")