توی این پست میخوام آپدیتهای مسابقه رتبه بندی نتایج جستجوی ترب رو بذارم. فعلاً اولین راه حل رو معرفی میکنم که درواقع باهاش میتونید امتیاز 0.75 بگیرید. به مرور زمان به هر جواب بهتری که برسم راه حلش رو اینجا میذارم. ویدیوی اول عمومی هست ولی ویدیوهای بعدی فقط و فقط توی همین کانال امکان دسترسی داره.
clc
clear
close all
queries = split(fileread('torob-search-data_v1.jsonl'),newline);
%% Finding Weights from Training Data
load prodIDs.mat
prodIDs = sort(prodIDs);
IDID = cell(1,numel(queries) - 1);
for i = 1 : numel(queries) - 1
Q = jsondecode(queries{i});
IDID{i} = Q.clicked_result;
end
t = countlabels(categorical(cell2mat(IDID')));
clickIDs = double(string(t.Label));
dif = setdiff(prodIDs,clickIDs');
W = t.Count;
prodIDs = [clickIDs,dif];
W = [W , zeros(size(dif))];
nanIDs = isnan(prodIDs);
prodIDs(nanIDs) = [];
W(nanIDs) = [];
%% Ranking Test Data:
testData = split(fileread('test-offline-data_v1.jsonl'),newline);
textout = [];
for i =1:numel(testData)-1
test = jsondecode(testData{i});
list = (test.result_not_ranked);
idx = find(ismember(prodIDs',list));
[~,Widx] = sort(W(idx),'descend');
idx = idx(Widx);
sortedList = prodIDs(idx);
str = num2str(sortedList);
textout = [textout;string(replace(str,' ',','))];
end
writematrix(textout,'predictions.txt')