需要从大数据中找到对应小数据中标签1的比例,因此生成新文本的时候,需要找到小数据标签1,在匹配大数据标签1,对应上后,提取大数据对应数据
找到小数据标签1数据,比如是token=566 则从大数据中遍历一遍566,找到则排除,记录找到的位置,找不到则忽略,记录没找到的token
下次扩展匹配度为5, 则从token=444 大数据遍历,439 440 441 442 443 445 446 447 448 449这几个数,找到任意一个都确定位置找到,
如此循环,直到在大数据中找到所有最接近小数据token的对应索引
我认为就是一种大数据到小数据的一种对应映射
#从1w中抽取对应token的代码项 import pandas as pd import numpy as np #需要修改的位置 data_659_path = r"小数据- 副本.csv" data_13511_path = r"-大数据- 副本.csv" data_659 = pd.read_csv(data_659_path) data_13511 = pd.read_csv(data_13511_path) need_numb = 659 #小数据量 have_numb = 13511 #大数据量 first = 5 #第一次找 second = 50#以后叠加 print("start") right_token =[] #需要找的节点数 need_token =[] #找到对应的节点数 L = [0]* need_numb #没有找到节点的index while True: no_find_index = [] no_find_token =[] #没有找到 对应的节点数 for i in range(len(L)): find_token = data_659["token"].values[i] for j in range(have_numb): token_from_1w = data_13511["token"].values[j] if token_from_1w != -1: #去除掉已被征用的 if abs(token_from_1w - find_token) == first: index00.append(j) right_token.append(find_token) need_token.append(token_from_1w) data_13511["token"].values[j] = -1 #已被征用,及时清除 break; if j == have_numb-1: #到头了 no_find_token.append(find_token) no_find_index.append(i) print("no_find_index:",no_find_index) print("no_find_token:",no_find_token) print("\n\n没找到的有:",len(no_find_index)) print("找到的有:",len(index00)) print("总长度一定要保持好",len(no_find_index) + len(index00)) if len(no_find_index) == 0 : break; else: first+=second L = no_find_index # print(index) fd = pd.DataFrame({"index":index00,"680token":right_token,"1wtoken":need_token}) fd.to_csv("index.csv")