Python处理数据集-2

原数据集的数据格式:

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

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

Python处理数据集-2

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

每一行对应一个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 + '
')
            for x in arr[1:]:
                if x == arr[99]:
                    user_item_file.write(user + ',' + x )
                else:
                    user_item_file.write(user + ',' + x + '
')
            line = f.readline()

    return user_item_file

Python处理数据集-2

结果为:

Python处理数据集-2