示例#1
0
def test_cbr_main():
    # 基于相似度的推荐
    # 数据预处理
    types, projs = load_dataset()
    types_cates, m, cates = load_type_feature()
    tf = get_type_frequency(projs, types_cates)

    types_list = list(types_cates.keys())
    out_str = ""
    for idx in random.sample(
            range(len(types_list)),
            20):  # range(len(types_list)):# range(20):  # 取任意20个type进行推荐测试
        # 获取推荐结果
        recom_result = recom2(
            m.getrow(idx).todense(), m, types_cates, types, tf)
        print("=========target==========")
        print(types[types_list[idx]])
        out_str += "=========target==========\n"
        out_str += "{}\n".format(types[types_list[idx]])
        print("=========recom list==========")
        out_str += "=========recom list==========\n"
        for sim_score, type in recom_result:
            print(sim_score, type)
            out_str += "{} {}\n".format(sim_score, type)
        print()
    with open(os.path.join(
            os.path.dirname(os.path.dirname(os.path.abspath(__file__))),
            r"data/cb_recom_result.txt"),
              "w",
              encoding="utf8") as fw:
        fw.write(out_str)
def gen_train_data():
    """
    生成item2vec的训练数据,并写入”../data/train_data.txt“
    """
    types, projs = load_dataset()
    train_data_file = os.path.join(
        os.path.dirname(os.path.dirname(os.path.abspath(__file__))),
        r"data/train_data.txt")
    produce_train_data(projs, train_data_file)
示例#3
0
def main(preP=True, genF=True):
    if preP:
        types, projs = gen_type_and_proj_datasets()
    else:
        try:
            types, projs = load_dataset()
        except:
            types, projs = gen_type_and_proj_datasets()

    if genF:
        types_cates = get_type_cate2(types)
        m, cates = cate2feature(types_cates)
def test_get_train_data_main():
    # 数据预处理
    # preprocessed_data = load_datas(Config())
    types, projs = load_dataset()

    # 获取item信息
    type_info = get_type_info(types, projs)
    print(len(type_info))
    print([type_info.get(k) for k in list(type_info.keys())[:10]])

    train_data = get_train_data(projs)
    print(len(train_data))
    print(train_data[:50])
def test_lfm_main():
    """
    test lfm model train
    """
    types, projs, _ = load_dataset()

    train_data = get_train_data(projs)
    user_vec, type_vec = lfm_train_func(train_data, 50, 0.01, 0.1, 50)
    # print(user_vec, type_vec)

    type_info = get_type_info(types, projs)
    for proj_key in projs:
        print(proj_key)
        recom_list = get_recom_result(user_vec, type_vec, proj_key)
        # print(recom_list)
        ana_recom_result(type_info, train_data, proj_key, recom_list)
def test_pr_main():
    # 数据预处理
    types, projs = load_dataset()

    user = next(iter(projs.keys()))
    print(user)
    recom_result_base = get_one_user_recom(types, projs, user)

    # graph = get_graph_from_data(data_json_list)
    # m, vertex, address_dict = graph_to_m(graph)
    # print(mat_all_point(m, vertex, 0.8))

    recom_result_mat = get_one_user_recom_by_mat(types, projs, user)

    num = 0
    for elem in recom_result_base:
        if elem in recom_result_mat:
            num += 1
    print(num)
def main():
    # gen_type_and_proj_datasets(False)
    load_dataset()