有根据 ,随机 根据小数据标签1 从大数据标签1中找到,返回大数据中索引号

有规律的查找问题:

需要从大数据中找到对应小数据中标签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")

根据小数据集中,重复的tokens数多少,来匹配大数据集

import numpy as py
import pandas as pd

repeat_path = r"repect_statistic.csv"
repect_data = pd.read_csv(repeat_path,encoding="gbk")
print(repect_data["cha"].values[0])#number

data_13511_path = r"cgo17-nvidia-13511 - token_顺序.csv"
data_13511 = pd.read_csv(data_13511_path)
print(data_13511["token"].values[0])#number
#token	numb

aaaa=[]
for j in range(112):
    
    for i in range(13511):
        if data_13511["token"].values[i] >= repect_data["token"].values[j]:
        #xuanhuan repect_data["numb"].values[j]次
            for t in range(repect_data["numb"].values[j]):
                aaaa.append(i+t)
                data_13511["token"].values[i+t] = 0
            break;
发布了97 篇原创文章 · 获赞 18 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_32460819/article/details/102850943