Python处理数据集-2

原数据集的数据格式:

每行为:(test_User, test_Item) negativeItem1 negativeItem2 negativeItem3 …… negativeItem99 

即每一行对应一个user 与100个item,其中1个item为整理,其余99个为负例。

将要处理成的目标数据的数据格式为:

每一行对应一个User与一个Item,用“,”隔开,写入一个新的文件。

【解决方案】

ef load_test_user_item_file(filename):
    user_item_file = open('test_user_item_file.test','w',encoding='UTF-8')
    with open(filename, "r") as f:
        line = f.readline()
        while line != None and line != "":
            arr = line.split(" ")  # 针对 Musical_Instruments 数据集
            arr[0] = arr[0].lstrip("(")
            arr[0] = arr[0].rstrip(")")
            user = arr[0].split(",")[0]
            item = arr[0].split(",")[1]
            user_item_file.write( user + ',' + item + '\n')
            for x in arr[1:]:
                if x == arr[99]:
                    user_item_file.write(user + ',' + x )
                else:
                    user_item_file.write(user + ',' + x + '\n')
            line = f.readline()

    return user_item_file

 

 

结果为:

 

posted on 2019-07-30 16:00  CuriousZero  阅读(903)  评论(0编辑  收藏  举报

导航