コード例 #1
0
def get_one_user_recom():
    user = '******'
    alpha = 0.6
    graph = read.get_graph_from_data('../data/ratings.txt')
    iter_num = 100
    recom_result = personal_rank(graph, user, alpha, iter_num, 100)

    return recom_result
コード例 #2
0
def get_one_user_by_mat():
    """
    give one fix user by mat
    """
    user = "******"
    alpha = 0.8
    graph = read.get_graph_from_data("../data/ratings.csv")
    recom_result = personal_rank_matrix(graph, user, alpha, 100)
    return recom_result
コード例 #3
0
def get_user_recom_mat():
    user = "******"
    alpha = 0.8
    graph = read.get_graph_from_data(
        os.path.dirname(
            os.path.dirname(os.path.dirname(os.path.dirname(__file__)))) +
        "\\recommender\\data\\ml-latest-small\\ratings.csv")
    recom_result = personal_rank_mat(graph, user, alpha, 100)
    return recom_result
コード例 #4
0
def get_one_user_recom():
    """
    give one fix_user recom result
    """
    user = "******"
    alpha = 0.8
    graph = read.get_graph_from_data("../data/ratings.csv")
    iter_num = 100
    recom_result = personal_rank(graph, user, alpha, iter_num, 100)
    return recom_result
    """
コード例 #5
0
def get_one_user_recom():
    user = "******"
    alpha = 0.7
    graph = read.get_graph_from_data("../data/ratings.csv")
    iter_num = 100
    recom_result = personal_rank(graph, user, alpha, iter_num, 100)
    # item_info = read.get_item_info("../data/movies.csv")
    # for itemId in graph[user]:
    #     pure_itemId = itemId.split("_")[1]
    #     print(item_info[pure_itemId])
    # print("-" * 100)
    # for itemId in recom_result:
    #     pure_itemId = itemId.split("_")[1]
    #     print(item_info[pure_itemId])
    #     print(recom_result[itemId])
    return recom_result
コード例 #6
0
def get_one_user_recom():
    """
    give fixed_user recom result
    """
    user = "******"
    alpha = 0.8
    graph = read.get_graph_from_data("../data/ratings.dat")
    iter_num = 100
    recom_result = personal_rank(graph, user, alpha, iter_num, 100)
    item_info = read.get_item_info("../data/movies.dat")
    for itemid in graph[user]:
        pure_itemid = itemid.split("_")[1]
        print(item_info[pure_itemid])
    print("----------")
    for itemid in recom_result:
        pure_itemid = itemid.split("_")[1]
        print(item_info[pure_itemid], recom_result[itemid])
コード例 #7
0
def get_one_user_recom():
    """
    give one fix_user recom result
    :return:
    """
    user = "******"
    alpha = 0.6
    graph = read.get_graph_from_data("../data/rating.txt")
    iter_num = 100
    recom_result = personal_rank(graph, user, alpha, iter_num)
    item_info = read.get_item_info("../data/movies.txt")
    for itemid in graph[user]:
        pure_itemid = itemid.split("_")[1]
        print(item_info[pure_itemid])
    print("result---")
    for itemid in recom_result:
        pure_itemid = itemid.split("_")[1]
        print(item_info[pure_itemid])
        print(recom_result[itemid])
    return recom_result
コード例 #8
0
def get_user_recom():
    # user = "******"
    # alpha = 0.6
    # graph = read.get_graph_from_data(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))) + "\\recommender\\data\\log.txt")
    # print(personal_rank(graph, user, alpha, 10, 10))
    user = "******"
    alpha = 0.8
    graph = read.get_graph_from_data(
        os.path.dirname(
            os.path.dirname(os.path.dirname(os.path.dirname(__file__)))) +
        "\\recommender\\data\\ml-latest-small\\ratings.csv")
    recom_result = personal_rank(graph, user, alpha, 100, 100)
    # item_info = read.get_item_info(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))) + "\\recommender\\data\\ml-latest-small\\movies.csv")

    # for itemid, value in graph[user].items():
    #     print(item_info[itemid.split("_")[1]])

    # print("-"*30)

    # for itemid, value in recom_result.items():
    #     print(item_info[itemid.split("_")[1]])
    #     print(value)
    return recom_result
コード例 #9
0
def get_one_user_recom_matrix():
    user = "******"
    alpha = 0.7
    graph = read.get_graph_from_data("../data/ratings.csv")
    recom_result = personal_rank_matrix(graph, user, alpha, 100)
    return recom_result
コード例 #10
0
    """
    get E-alpha*m_mat.T
    Args:
        m_mat:
        vertex: total item and user point
        alpha: the prob for random walking
    Return:
        a sparse
    """
    total_len = len(vertex)
    row = []
    col = []
    data = []
    for index in range(total_len):
        row.append(index)
        col.append(index)
        data.append(1)
    row = np.array(row)
    col = np.array(col)
    data = np.array(data)
    eye_t = coo_matrix((data, (row, col)), shape=(total_len, total_len))
    return eye_t.tocsr() - alpha * m_mat.tocsr().transpose()


if __name__ == "__main__":
    graph = read.get_graph_from_data("../data/log.txt")
    m, vertex, address_dict = graph_to_m(graph)
    # print(address_dict)
    # print(m.todense())
    # print(mat_all_point(m, vertex, 0.8))
コード例 #11
0
    第二步,根据M矩阵得到单位矩阵E 减去 α*M矩阵的转置
    get E - alpha*m_mat.T
    :param m_mat:
    :param vertex: total user item nodes
    :param alpha: the prob for random walk
    :return: a sparse matrix
    """
    total_len = len(vertex)
    rows = []
    cols = []
    values = []
    # 初始化单位矩阵E,这也是一个稀疏矩阵,只有对角线上的元素为1
    for i in range(total_len):
        rows.append(i)
        cols.append(i)
        values.append(1)
    rows = np.array(rows)
    cols = np.array(cols)
    values = np.array(values)
    E = coo_matrix((values, (rows, cols)), shape=(total_len, total_len))
    # 使用csr格式,这种格式可以使得运算变得快一些
    return E.tocsr() - alpha * m_mat.tocsr().transpose()


if __name__ == '__main__':
    graph = read.get_graph_from_data("../data/log.csv")
    m, vertex, address_dict = graph_to_matrix(graph)
    # print(address_dict)
    # print(m.todense())
    print(maxtrix_all_nodes(m, vertex, alpha=0.8).todense())
コード例 #12
0
def get_one_user_by_matrix():
    user = '******'
    alpha = 0.8
    graph = read.get_graph_from_data('../data/ratings.txt')
    recom_result = personal_rank_matrix(graph, user, alpha, 100)
    return recom_result
コード例 #13
0
    '''
    get E-alpha*m_mat.T,矩阵公司逆里边的部分
    :param m_mat: 上面函数得出的m
    :param vertex:所有顶点
    :param alpha:
    :return:
       a sparse稀疏矩阵
    '''
    total_len = len(vertex)
    row = []
    col = []
    data = []
    for index in range(total_len):
        row.append(index)
        col.append(index)
        data.append(1)
    row = np.array(row)
    col = np.array(col)
    data = np.array(data)
    eye_t = coo_matrix((data, (row, col)), shape=(total_len, total_len))
    #print(eye_t.todense())
    #sys.exit()
    return eye_t.tocsr() - alpha * m_mat.tocsr().transpose()


if __name__ == '__main__':
    graph = read.get_graph_from_data('../data/log.txt')
    m, vertex, address_dict = graph_to_m(graph)
    #print(mat_all_point(m,vertex,0.8))
    mat_all_point(m, vertex, 0.8)