有规律的查找问题:
需要从大数据中找到对应小数据中标签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;