def test_make_model(): ''' tag random data to generate model ''' page = 50 no_rate_items = [] for i in range(1, page): items, _ = get_items(None, None, i) no_rate_items.extend(items) size = len(no_rate_items) like_ratio = 0.4 like_items = [] unlike_items = [] for item in no_rate_items: if random.random() < like_ratio: like_items.append(item) else: unlike_items.append(item) print(f'like items: {len(like_items)}, unlike items: {len(unlike_items)}') for item in like_items: ItemRate.saveit(1, 1, item.fanhao) for item in unlike_items: ItemRate.saveit(1, 0, item.fanhao) clf.train()
def load_data(): ''' load data from database and do processing ''' rate_type = RATE_TYPE.USER_RATE.value rate_value = None page = None items, _ = get_items(rate_type=rate_type, rate_value=rate_value, page=page) return items
def index(): rate_type = RATE_TYPE.SYSTEM_RATE.value rate_value = int(request.query.get('like', RATE_VALUE.LIKE.value)) page = int(request.query.get('page', 1)) items, page_info = get_items( rate_type=rate_type, rate_value=rate_value, page=page) today_update_count = db.get_today_update_count() today_recommend_count = db.get_today_recommend_count() msg = f'今日更新 {today_update_count} , 今日推荐 {today_recommend_count}' return template('index', items=items, page_info=page_info, like=rate_value, path=request.path, msg=msg)
def tagit(): rate_value = request.query.get('like', None) rate_value = None if rate_value == 'None' else rate_value rate_type = None if rate_value: rate_value = int(rate_value) rate_type = RATE_TYPE.USER_RATE page = int(request.query.get('page', 1)) items, page_info = get_items( rate_type=rate_type, rate_value=rate_value, page=page) return template('tagit', items=items, page_info=page_info, like=rate_value, path=request.path)
def test_get_items(): rate_type = RATE_TYPE.SYSTEM_RATE rate_value = RATE_VALUE.DISLIKE page = None items, page_info = get_items(rate_type=rate_type, rate_value=rate_value, page=page) assert len(items) > 0 print(f'item count:{len(items)}') print( f'total_items: {page_info[0]}, total_page: {page_info[1]}, current_page: {page_info[2]}, page_size:{page_info[3]}' )
def test_get_items2(): rate_type = None rate_value = None page = None items, page_info = get_items(rate_type=rate_type, rate_value=rate_value, page=page) assert len(items) > 0 print(f'item count:{len(items)}') print( f'total_items: {page_info[0]}, total_page: {page_info[1]}, current_page: {page_info[2]}, page_size:{page_info[3]}' )
def prepare_predict_data(): # get not rated data rate_type = None rate_value = None page = None unrated_items, _ = get_items(rate_type=rate_type, rate_value=rate_value, page=page) mlb = load_model(get_data_path(BINARIZER_PATH)) dicts = (as_dict(item) for item in unrated_items) df = pd.DataFrame(dicts, columns=['id', 'tags']) df.set_index('id', inplace=True) X = mlb.transform(df.tags.values) return df.index.values, X