tayyardurden commited on
Commit
949a4bc
·
verified ·
1 Parent(s): e648689

Upload 6 files

Browse files
app.py ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from product_similarity import page1
3
+
4
+ # sidebar
5
+ st.sidebar.title("Deep Fashion")
6
+ st.sidebar.write(
7
+ "Deep Fashion, giyim ve moda sektörüne yönelik yapay zeka tabanlı çözümler sunar. ")
8
+
9
+
10
+ PAGES = {
11
+ "Ürün Benzerlik Analizi": page1,
12
+ }
13
+
14
+
15
+ def main():
16
+ selection = st.sidebar.radio("Özellik seçin:", list(PAGES.keys()))
17
+ page = PAGES[selection]
18
+ page()
19
+
20
+
21
+ if __name__ == "__main__":
22
+ main()
model_hayabusa.py.enc ADDED
@@ -0,0 +1 @@
 
 
1
+ gAAAAABmBSGebTB8A3nWyqm0M6CddIo--5V8FdWQbQyrOxgIUviYxkJT0bKoUiwoITW_Wp6Uil77jFSPM3Vhnd2280EmXCMorZDpCFfp-yvrwpZp3cQu6mHIpvfTZmZBf9Yp9bQwa6RSCvTs7IW0LBM1Q746jo2kykmT4tIcopeTzFbhOVVtGAeR9UG7PrpTAuL6N5-HPUActjLd0AG2xKgHIJUiCptHtoX9-Fe8M7g3_IXzkP33L2g18mRdjzqFq5lPJwAXCX44jEdd2n9Pv7LfINU6VHxzbRsu0ra84UyDZ0kPoMsBcpxazaZw6QDcsBi4yGmPzATRnVyFB66C616knN8rfRIDUasvQ5781JN14-sQ3vPR-qJ2ua2mCz90gfiDmdrSRT5SIb3dwEZ_stAtbZ29MWjejt15ik79k0mEFXUMgHXgrMh-1UvUZHocH7GF0nALhq2iqWqoRtyw6VrKnAy_S1XGDY6OUImbGQdaYykJ2dKhE3kOXBhR6ROdnIwPz9Urb2n_dGulopUFV8j-eu7X7FPSa5yaD6OlTprtQgel3Nxqiw0AmJ2xtpNfa7TcGSb37YYrKQ8V8G-2_0DV-Vu2gsQtTsI4chwdaNP0As5-fbmpflBVurdoz1f_5T8s4y7vuVVs9tdxmCKOhQMwdSimnw-FntOfTnOrzolfdm1bMm7ujSb5piFBcF8t2VNP9f6eoOs-9iu8WYTh-l2n-dlx1RyLAsCZazj2H055tOpmestnXhR64t3j6d2_Zk0p_vm7prdMQ13QqzDdUY8U8molns70qNh6kPX9Gt3Fyty4DoVfDlkBTik0f2WveoQtEsggVLE5ARzvs8Kr9kCDzTSSv1-Z9WRkbfjE7OYfGhzS25RLT4fL1OCLI28dHwRQ1Gs08vi8lKCpZSnz_wS9OlGqc6lAg7yllpvxUvVuo0N0r9vjsITEfrFKtqilozkLUDZTpGceenZOLUB5pxhRmNsyVt0Q3pXYl0tqrhYTU_cKgyOZfP-1VNpO2NVGZTqHwWcLFzAGJEkLaXSMjMSwQ7IU25zvwQq1pN23cpmkHJuqeKcb9XHqFy2O5uBB3wreHkVxKC6lEqwTH4zAxAbgCLtIBDgyK7d7dAVrjmTPhvByMLTNqJ5Zgfm5YmUTawWNT83WkGepIQdouhNuLwOdmD23pUdbSj0RYLbKh8haaGpUtESsLtx8rfoxgMgrj6lCn0aD7AWAPi593EtW34KI3JYDSu5r00XfCg-Bm4G4JpKDI2l8Zb6ffCd2Ls7lloUuKz539TLot_fbVAz7N8dQLm5CIGgtMFkDQUlm1MBAdQZO-bSE3LAUtpVGN41mD7Y7jBpxyfFNTYuaYsFeemR1w-CvTJYYMD92VK-L1V8ISlMb__pjPQjI_v815Bwl65K3JWL3pjW-9lTu53cx5A9vnkbFJfbOZgbM5lNEFj_qa9CuDiyhCpp-W8ywzYvlCbhO5Q77ArK0QFGbev3f_M4JCEpFsxc5aQcv7Vz38KxaQaTBXmaG-4CBRiD4_oFJK_-yCtYlYVaqXWlZuMW6dWroCaKYFcU2weCJXgzpXUOYjSFH2aBoyoVOAE-JlJx5DsX48ZKnN-YBsnuzigBv770IHHenxSkVzUw10-3PuvotnBYXOsz-rKK62zde5Vo_YUMr_eyOA3a-CkmQSSIHKylgLXlODGq9vMolow3T4Dutv059EPXv5K_1SsYJ3hkDuAtStP8CfqoFkwiX0HWET1oV_x906roaDwcNUHrDL8SQjOjZzwNTtKkW7UdOBuDdVoL4mj56uUnb_twGA-7X2Ic2SGabOCYn7L532AWTBpqz4edX89my7rVML5Twm8PWOFoLVb1PdR7NgTZAUxFvTGOm8eRbpLDuF0Tgq-3-OKAu0KTeJHqT014rDAqUYS8WFo03bjUIoVwDoJ_Ht7fhllTuCpkkCfEYZ7_pgP7feb79Z62H7Rz_17iPgxBqPoULvJGkFNJsAqTIy-v7wEfyKQaeMjwuA_dLjvGFFw9XfxApZMjOpqeDtKofHUeAHly5PZA6lcMGsPim1etAPxvh31fbRkLp-hHD_HKzPsCxCL-s9wnteJUu0ShdtvGwZUYmyj3MDy_PlX7BG-UpEMzjnEuHTa09atZ6HR_GI3BOSJjJTuLRLVtQt65IyCu9w_s64s0OZwEYtkJSSVA5GtSS6Ps2v2DK3HuJsIkFIbkipBIq_yJmvXsarV4fyQzThA6CuIJRrNAHGWu_jQ-Va64PZvGxg6SlW7m0Vw4jjdjnimeoVmD70ZnuLMhCcOJh0MAGE8r2sXw3RAFv29b9ky28wVvgGJlFkHGeypPH98f950MUKadFSqrH0Un93q65r6g3asc-n-OqgVlPIbmjtDyDU35TFgCTsNHvDqGlGwloi-JDxmh0ulngKKngFjzaE2BlP6WGsTzctaIMYFRGe5BjlwbpQ9sf8AoKdbFrbRGl3TyUHsMALt376XDUHBP6ZQWNtIU_pPe1xWCi7mb8uIV8zqGwsEDRh_gt6bC-TdWS2nLqiXlrO1HtU8aJ41IPzXIvUsJjag9gFk2CKx7oBrHqxt_1YYBL_z5nBeunh9C0ginaIcsI9dbOFgfbiLL7JYTI2OoqayHcwY2dSAS5vC_YqwaQQfdq7q_RqrugQp5_lIJK0g0Q7JSBhJBywtMMjdUrNb_cTFpYBizFVf7BG8KkueQDjHsvVuHg-DOufWIH51kkvvJFmK7T2rOAw8NIna_tzb2VHcNY9SBLn6i8QKSXZxSgOkhuQrbtjh-HiSdL7IjrB_tVe7oTFGR5N9KpUZnQruwmm-P03zKNM6D1GeOv6XtjAPzemVdKxOQ0E0xTpboTwzfqw4Q4P59Fkpsaoyud87FFMpMMZ-GiAh7W0mEXn5__oN9aWXqLjyEa2AzIPkJ0JRpRmEm-A94E4bbXLB1RMWKrccpi7_Tn86Lx4UWrvUQioxHZlHZAKrUh-oyMl708G1P_tyjhLV4KwOhOt_5MeeWuMhi5YDF8wLy2JsGpW9fE-Tp2nPq0tG2CMOJMyiyEZ4QIKw7bjUL6kW_YUxWd9MaxnlTJzrkwSx1OvanGBNM3dI4jAxhPwflMz70lmREtx4msm-sHeFeTR-0JtC-TAKWfojQ1RyAwPuaLkHongOGMGdvnxt8VHChCZEJhyO36kwks-5yhX-rVQh6m9nsSy6sDh9ZwL2zQsCI9HZxs53s95n7-DSAsxKNUtorysGQXaFOosfopFAoylDUOhyT4nEPacSeXQ0t2ylxdVaJIWdMaye1_c0A7r-1iIg8FglToOZ26aQZV-UwcWoo_gQqnUKOpldenlmQLqcmn7Za7_d3dqgiKfTE0LXdeE8Wj7Fa133ru-PxU5VtYxfID1NFBnW4OVKIIT82vGzQfNJi1Enni4hM3NzSenZ_Ey2qMPZx7GWAv0y2AMyHe6_uerVVyUqig3E1kQGgZGR3Cg2p8iAHb1e-v-c9dvL9QAFEaygBM2lkFldRLYnvD8eT5Uhq41vooueLfEz1YuL-s8FVy73pjx0FeZn7MaPygnolIhEhGcyjnaQrBcgpBNhXi6qTP6LQXKnKxjZuaQsROqNbP7yFRGbQFLeRUQR0baB_WF7YFGFTLzBT2ZlxdN8rhqsJH9FdMlPdx1PKk9yc6yX-XDabOYEwYDXNcnjT42gYE4q_eYWtONco-Er7q-4SOABmc2Y2sw2Gg5ueJoa5yM53Gy8SrY6-vTy0_x5O3vxQ0uBPIEbReRUpjxzu3-TPOneVTyuK5JC1YafkjvSXi6m3Mxtp-9aSSwm_S4tL0TgnKJST1Vo9XInyLJ9SdmnVG7jQ4-BQ6HRwx5JajnZfkHA2kLT4i5UCH0E-gJTJc3DdkNCWeddGQtfTvDT2t3nrysyOXXoeo26VNtqFkMEo5yA02nG7MUOfYOrrO1pO-qwXP0TRiOmEWFS3_ZMC1C7YRClOAq-vfUE7kF3HRDGFJfKU21Ba5A3OqfJxd7yGRjS6j_emcBFtKlNapOAbHYecsAC-O5IU2P97AMPXGC693p2DA8sZvY6vSW19Xh1p87cHvSZ0Za51u-Za9TePGvARugWnqHijpc7wyQ0PW73CgeAvdlrXae05FmcGeRtFGq7XAEHo1ObbvBqnTzJ_Ee6NTKEQpZDbdMpotVG_t0-bRRarCfFRECjbIcLBetbK180ASJ30WLSs0j0mw0UmHxKSudELxiGnj6UBB1D4sNLa0blBKDR-FSPCdXGq8ILOMW0n3i_hYNKntmy-vYXTMvTLNS6hGzVQTjPiIYsT35dj4sdXTDQtjDOdMN-6GEK80C4E5JYhjr2UWZP1k8NR4ZpJYLtUYrxahgIhsVLBTCF6MoXMG3chOmz2L6nq4y7jOa9XN5h4Sk_28nKBwslxXdVxMLxL32ZEw2u_L1seqgWRPuaOMGA0aTg3ArCYmPV4t7ajs9So_Ivpo9sODR5s91zmJ6WklHH5pJa6egFpK9AdN-R5oIz5wX4YjmnZcCXZj2awdx7LRLL5dHziORttgvA0K60d_PsNQMfEVvUs9wyWui8SWHMkg1CXEmOmSQAsRIFpru379kKJ4tls4HpaUkOjUeqqJfC-apc8UlhRyvxUH0Fo3ItL3tMKyqyiI29j-wUExA906tMRhYMvwny2lyDbbsypWYJCPmTAL1bugtlJ0ycoRo4JfpgD7R909T5lN8Oztovo8hOqslYo4EK3YXSm8wG3MW1A8-fkqykMlhMT-7_elETh75zd2z7GdAZTpVwm3sWO6h68O8w0H1OejnF1ZyYZx54vXxnCQk7N0dagdSpu8iyunhhccoFgd54Nf3aAPuzLlw3X9f36_5C6dKA7Iuo7VMi3n6TvLmcLQS7-G46C_u6IqM8pnoYeGoMLbGnHBUUI96gce229gwu50aOlPW5oBCN5AmOAovk02S2TXWZe_yaolR3NCjoPMMo89MmSs_7gMTFfrQnmNM5fcODFLSRI-xD9KJx5XBDn3otsDznNT-yU-uQMqgbTkJVZpgDqTjraFtJocczn-qAaf4gNX10ij58A_6AytcoHFSpOjnD7F5xpigslvHdFso3-so16kvOqWQCbEPBSnHHev0QGt7iQtPJzqZr7_fWaDhF7VvTsY-rZrVZ83UjwaB-JlVvqjtP36gsjyAW4i6w2OFDyygEnUgjJL6gbWhH3sHukv3LMGy3nMiHAgtn1GDC2afslcuA47h0PXQv2Z8KfRVNYeBQLTLWeY-IMlZdhbknSaSFd0Wg_e76XcvPjxS-Vt-Ez0wmhNcLvXoRroS9W4iPCZG2-LsECoIaPQXOkqnGCKajsf_-nZ2osdnhgL_ELccvDBUUGD3zL7zu-m3wBhsEqUBh9womREhDbGupxcNURcNYlDJYNrQJqOT43k9GnL9v1Hww1Dzs7I8Va0AKY=
model_shogun.py.enc ADDED
@@ -0,0 +1 @@
 
 
1
+ gAAAAABmBSGy2DfFpmfwJ5FNNmQRIBKgngwraqpPINZt1s_8_q3DGclg4Z7spxB0vJ2HKYfOBTgNgqeYIkR15jewqUmqYWCmOaPOdA06Xy9jcnIeFq4AkofPZY3qvWJJ7mgbB4e186HXXHqRFG1pgqdjVU1WQEPYkhp9e9mFFQbrMpN4Zm-_vliQUX9Vpa9moTp_unyYd4hzlKzS5V0y7CCOZq6-b7HvAPgbzWY3Cy5R3PznSI1CZFjMutf5MaGwIjrBHnaWvanmSvGRO-FTNEqXviBEFwUWFQbWbQsux0tpnFQj6BHSU7oprCYo5c0pyqXL8UYmaIw-SwZ-DmRL9QzavPJ58vZ12k1jxkL4VgEfIOGNt3m82PzrCPlZY1PT_TEDlo0YZCaHHUiitzZMMPKhwtII37nxGiMWAczvRtbOmAEeU7Z5c0FNddUAMUlubuy8dDm5_1_V9ttJy6Cxmbnld9_dz1mvb2aq9Y2oIKzr0VdT7CvpXSjocUFJYbaLoQWY8XBLbi7Uxekldlrh3kOdn6WBb4YCVRBgGqXCXL-OSVvg8QWv1IG-dlF_RYC3Oxng3684hBCpiX_LdQgUP5s7ogeoWAAV6agqk7db2HNMoxaOxfngHZwmLA0dDQZf_xl_Zs0NZeY1TMjFM6hHHa2V2pjzzIHaALpWHuEFlSHbZPOvWhUyV85vadEHHlpCQC8OEPwvyo_q1T9Ll6ijxWSI9Ja30QLfOlACL0OD4mtlDITM-uaV720KYd2jYp6VP8Ug6zePz0p81T3d-MmmYVUnNcmATz53jOyiJ-t3kSjybv3qZHeVERkLnuAfxXye9Vb_Sg8WIByJR7RtfBQlip5Fk5tjarVQRZc9zvaqofrh4bGwk_FIrvefoCpcFyFFnES1ng9Pi9GVdGNEAdBLLjMPX9KFZhuA3d_5TnAnfBc-zY2_fFgCs1_YOkoGAn1XoAol_FF5It8wIFiU5nd4my5L0CI0geVgKOA_Uu47tDRQRQkicssO0fQ2QUzOjFDA_N50T-K3WOeAjZPKwR7s6hN5lPTeJyrRr4XRUBCU53pQyvkWK_W31Kv-FL86OZa3e09UrrpBeNvy-hIbeJF2a8hXlbtbFVgqJlE93Ac14BeKOWnHJ0BNHJXJ02NvTWg7YBr2CG82I_qldOoVDqe_MeCpjq7kFWDM3Irh770fMewusoKEZLZj3WWDxGnYynpEFCIthpQ-KcIasPyG8Wvqi5TqW6wi66KKaR7ieZJUo388csWuG-m4kd83prfVTWXTOk5WVDM502hRxNx8k3duCEDRUHRLyev-sQ-SSVe3JADOIQcmbDp5IfAKWL33XaHu31s8rsucMt1E-zL9nI0B071UdS9a-dLzG-WtmD_AQAUfBlaL4xnY7V4e75tnWRkF1IjL5sYSEUA0GccHuIdVg896ENs2p5bz5g-xvDZf4ktwXjC_MFPnbMO1HnCAcySkjBeO-9WEJafYk2zJEr7W8Ytdzqjg_uO0V5-XUQcHUh3MLakJwnVIlbAfQ-IJaCJIyTaq8aBEpeZuOr6eztsbcSQVOhVHgDz4lkltWKQ18kUFrRgQCJu3zzUjcqSLwqI3P4LYmZbd0GSmO6EcViti2kjQaSkp962HslSRdK02NQUPlMt6RHkzqCoVQiCaSfulCOJ-ShpVNNVT5ZAykIRRGIMDJstEk-5RvAtT9Xkf1AWo1zt4EaMXV09rXuaHUNlfUJuZzi5Qb-UwCEnHoE3hsGRFl9fnfU9NWXxfKwQuL74Cl_G6GbuNDpHW60gsdPD3_tbmRtO39s9W5c0dqWLL3NtSelEWUdkOwtBcODsyZQnlu74PinBrMCcHwXnnM7HDdd1nayhkxA3kNsvoAV9up9eZPyr4a-UOz-5xQ1VdJBrQk8xPoUd61qB_4UUWGfni0JUmu4HI9WgWbCoIC0Kdty4212Dv1Z6I4v8o2cMAe4XEtI0wx7YCddr3nHtFKFTV7xHDZukBmZpbmtqGuqBlDLkvjvqbV-BnpNf-AETilUfWD9CSm5dQvDpr57D8aiMqymqHsDubSVfcnHEM6e6iHs3sm0LA_0d7W7b0OmTVWDdRKME8MdstqZK3JzqX_vx-ibeibRfF3P38yOowJx62XZqk8AfE2XKhseyT3c1h9fcHQJCpbfMfc7h5hLudZ78HN1JYlXfnQ8Ff0Sqd38eocna5RK1_sq_3R9BJwAX2XukZmggbTsprix79w2MtWbxPmvXMMzAK8lEJastngp5Q7egoMNu5p9QcI3VkARWv3hX5Q8y3wen65IyX-vaSMoVYwAnL9fiTNZyKeICscW12LO868bRk0tzpCn2Hd0hE7Az2a50T5XOJcmIjuJuwAAEV9SyVD_KYn4B92RBJ_d7TkoMosLaD3O6w5Z9ZRLTzxgVHEG56n_mrnoda-hbgIwBew6sAjuNGtI74XeoRry-S9TBxgRNoHlAFjhTcTGdXqHmQSyVL5I-EES0a_lsg1bx1BGNP8Yux9idMEUhlPhm1z4khtI1Njao60fCBWAgNQzvczGPF-7Mk4WEqqh3EuLHEfZyJSQcmpuM_Y2CWqBsBZnPX8Ui3j2ze8at0fJjqDv7AfpWeo47wZ7CqlStM0VepxYKynaDS35EEAegDGVf2-vFAvuVKulpC4vI5sK_mD6pa9R_kGbVl7xHGINeTibelClsIefGVb6uMJcHM8gPFhdSO48rjmXVDpD35twORjJjcShTEvnrFPB4lTH9CvLibfUlCz5jqb7f8Oq8xE1ysfjgBhfM0BysY06lvfFpWfAfOmXR0lXjT80c4-9NODMKmISAzEBwjmqHNkVmoZZTOIxSDS8EQzGKGOZmRnhKeMF_yfbgVDHQ_h3Xs1EtLbPduoS2O3Pn-1JziCjZDOyikhu0TE6rKrcd8kCv6fllr0Xh5OJULMpxetwy3xFX6MmOC4G6SNBSwGpVQahPlPHu3IzhyhIXMXSNMwxOVKhElXnLEQ7W_hqshcqjvkeFEzRlI3IPgi-XPjhcUUojNw7xELXplrtlBiK6yGHY6sr4324Fbibt7XHQE-MwEQ66B_SzKDMC5EAu4ID8PX03wljQ2YL1D4U0jZV5QBx9kkXBJZC90ww2V8kRqnq9AZi5xQqw0Ww8Tl4IR5fhi_p8oWFOlmGlHqIDmZbG4i52ssmt6s0DrY6Tu6IgkcG8eBw2fl-vOEBsMBuIJ8AOUYAZ_J0oxuAHAfAxYux6NTCijobJ3WTVmiPJLySnxW2n7EV0rFcGHExRkkdRRaDWA0yqg1tPlAIPYy6B2m-dLn3Mi_mHvcaYDmGmJOn9RXfDjjjFlo5dG18E29oibzmfoDcbY9Gw3GlfVR7cJmYvGCyGhVPGgOYJSRCUgkUoduFaCDwBKUfHbvUKI4KKF69TM3POIiVOOs4adcJy2Ib0eqqEDoo2T0_PoR_vOxulSjmv-LtKHTfOIxQt3YbdWD4VeMHacKsbhTQebLb7JuNxyw91-wD8wxVuCQCn6ArbRqzF_4K7OmMEqtPoaO0LnUDVfF8YeP0V4oQPs2qVqVAwQNMMRc2sRi3gLF_-l30XGy6EhrIBAVgJlWRq3N_Ghbr3id4mk334QsN7ziN-QLBsFweH1hC7buP1a-NQcxA207jhbr0pm9pOtHYiMtGKbu3iR2cKm7LZpLX7DOVPLhGRwiehI_TcMlkyyQRmjinTNu-Xil4keLsh0jNJSP7xGKTALRqHn4BcRpLPrwm3x6QrmQlT56e3cRkPK5tANlbexn9CzsIpHtOYoOv_cUEMMB_qYH2vs-Rs4xg7ginIPlhB-kuL71DTasld-HsNYgj4Opf2W_MauQXCbWOnEN9isaGMXaBaThQYnuMRJAfkAhG9cT_ETBSLHUjpqXNHWar6LlGE8t3XsHGNk-_diKC5mwGcn8D4DKpda18YbOjUnjjCbGeaTGp9KhQLUKBHZ6eGRJxA_eLbrT7HMJTJ-Zq5zJrnrGjbpfzSuMUcNeBGdvIpMKhxR0J0PgwPeZ32NMa20rztgziHmlVYsQDsYaPr1VyH90iHoOVlhcOF8s-DfPH0lK6no16ixg-TCOoBMoaBvUKgGxWzR3aBkpFxCPfCGpMz6aNK2Lt_mDoTQuMiinBZkvkp8ibjmhGycJkeFHxhtEvckMFw4E_zpx3AIXuf9db3ZxGrAFRyMCaFOptmy3yh3_k5RFWw88vhimcdjduLJHKjMTlE55GJ0FWjbfVIzXf9WXcYL7AMym-c4T46gKxcFi0WLDkTv_F4N-9dD-iCHTTvvLBq6Smlky9Z26s84j6F78164wBzTGjZ9B9ozZ4TA5tqPF4E_pYLT7RkzUfnJfZxuJqYCgLcjCLEByFDdzYl3H-49e88pKgUwMAIHeGFfiH5OuqEgANt26uSNa-8h1texeDycdWZiczitv6p855rlRLvFFkiKmNfgLArOJWcdEFt17YO9o86dcqGJu1V19vza3b_vnBy_EnRYqJp33pvdSybPG8ZKEeIs4weM0VLAA44r4GIGLJHVom8vctcbYiA56S41KVnae4mzHhlACSMtTiYd2ogSnHmlIErPJ--Vhw6zqqFEpz2AyDH8PkuqmBXwhSKYpG_mxrALz9F8FiYL9y1yrn8VuYK27HzttMjS1h3IaIBTKEGu7pS8F9qfWgIYX_rK4-SFYzqEx2S4uxEJW_uiHlJFIbn2BbLdzyrBzG4SfNeOmYO0jltS4WjNYKx6dOHSOQ-ZG7bm5283i4PvNGh5L7J06B1JjNrcl4Wf9m3RVUOrGSLq0rAcG-VpByeXZ0eBpY_4bcxzK504TIyeewHNujCYcUdxO4eCzVLtZJ5J4nQyrDY7LGtpez1Q5Z5cfuvyCHP0l170C_RkvKr_lk6yO7Gqz80SbIwpMotu91mL-2asWCz9E9X6vzH-GMBNdVoH0t3I9SsPxRcPpFr9GgVPIL2Fyb-TVbdj2I5FTfhhJXZt4y61y79ITVBs9t6mZI6V0ita42FW1CdQIgSHDbcS1Uk7mYSFQSlt_GjvwR_bilqMikbBG1G1gszOnwF-0KAoqGNMMqk_vuDJS1jAes-ia4e92jdtUQ2H8gfPzahto3hWfOdHsq3z_xpoD8oFrwUedxbrMuQgQOni4V-O4lflMD7q48XLGNDX4bvvybkEzZyYJjDg2pVNgPC6rJENGZeODHVzuZcfp6Nz3HQEB7xz5ro57c9na0KLU_qyO-XnAbk3FyBL-xxYytGiJZXmsJAI8BdGJG4MWvQEGenQrXVDtOht4LkGfecV_tmHgcsltsnpZtS6sCg5YUA6r3mA1cZsECO78EJ4yQiAj8n8onhkYkohSvdJ6UxNNPDUZc104elwa7Bk6MxnHOTnO8IuqCM6UQu2QZo5lN4imN_CXxBT7AC0BgUu1Pb7TKBP_A19wHGNlHp1ACXyhRXhPJlgAZA28GYOC77umLt5_pIQaSd281VxkcL65su0VT5sBSKCUGUvQVbT-FHTfuwAU0yhHluBZtN1uYN2xLPn80jL92lIySsH2XEUJJ9CIZdbW9_UWLOWkMI349Gd9mnwQu6q3diAneHIHE5w-wDE1k_2dWiRWiOC7THlhJAFMlo5uJGTJQsXqoIGFE2vQe7TJ5PFQO0cbVn2gvopIOxk-xGTPovKhtkX2SShEN9pGJPVMjbpDgbehCd0hCAvR6oY8gE8GIHYdxmlmocPxHuqvB3E8Do7o98MEKzINIjMJEonQp8qftnSMLkdtidguCfImDV_YIq3ewn-pKRfYtXCais6t5ejp0KzJZWzC3Fzd5JE-84wgQn22U_tsmjRkDMyG9EEZpj339GFhQ4fmh6mUIwsqWERQBsxuGxKWExl3PW-vbiDumHzdvzBeIVB6jQ8ZQsv7iKelBEwP2VCJIIINPcfK5d766Ix3ek0o4bVzCKnigSufHxAwL__0wFPAr0sNWTVqXvalO6d5WHwHmcLZrGMJHxe-9Z57z4I4Mu_Sre2-LOI_bUd1v0IsStRO5CSAwXjLFYH0dR64f-CAgMu2PzLpYDEzDkmks1_nYup3x4K0F96tCAAWibjjHZ_1OmYMBgy67sZfVYEVvl-t5hemge_J5LjMWk0nzqTcLBjBkHi-Df8abU5kzayDfioksjRTdwkHTagoT-tUyEKiHWk-gUJUvJxoGq54YGg6gDdn9lHqs8oIpB9Xzx9mStvXu2d7y1EY5AoIIDAhzHmmvriDOTDA_ui45eR8o47XecwddYTcJwMhpADjGU2jEkRWijmEl8DUjJsa6-4bV26BlmluYxpbxJKoRsHxepYLqMHPIyOnReRzT0PHN8FfhyIh8KLwYVR3sUbt6mZdrJo-yqLBWCB2alqbqI_W-J2u7PyUpNOnu3M16j-kOh5j8LCRNineNvlo1V9MHGFSZ9trWV6kS3qF-MJ24C4mXpGwYj5YY8jS1ceqWz3XqAKn8VJf5NaY4PDAPqSViTTPiJGvQUBKQ9s8VMlX5v-IXbBzeHcDPYJ_7Z7K7udNyZMt9y3GIsBJ1Hp6FwcbB3XzXUm94KHeYmw3e3Vp28RvMFX1YIDG4ILoQPpO31dehmbu5BrC8KvZssMBE8rmvEpEHOe1tzPrJHF3FYbNvnACCSSY0OvP4L1AEC7uSRxgqaibn8Q6xA3P-CaTZJS6UIWyPPQ8NOF1HyaBDxb1BoXtJdvb91HXjSIwWsw44N9ViVt-_7x6X4uHeRVcU5xV1Z0tvYqZO3SG2oziIqd99yvE03rUz10uUSVZFfSYQ_ZkyyA0vdK6Vjj0OzQOHYacDVNu-lG7SiF_mLeegsmTHg95Cwzd-r31feBJQ==
model_takemura.py.enc ADDED
@@ -0,0 +1 @@
 
 
1
+ gAAAAABmBSHDX8uufbYjHmJGrr1mxCCvKYby-438g7ZPRsB0GuDXDKuYB1sIOnOE3y5h2odH_v0fP44wXTSkTPxPzyZbbGZ85lzM6iUYPbUHYEclIDMf0mijlaKB3NibjpD1QjnW_9uFU_JmwE69gq4yRaFp2wTf-AVIyNhUHJBzIrb05W31053ot2KR_-TDbRIkwmEPE03byN9yV-C1DtCJb9_eb0NvMwlLzpnBbLr3zEhwE0oteZB25YGZFjXjXwULSCJ-edV6naA54yvLUSgusCUPIwhEK9MXwJTi2vxFxf78poJh74jjxAZI1huQqdAGeZVcYR8R_0w4vfUH1wGm3Q9g28GZBpeGykmiHehGmvvSqZlHJS10a2zF_UFw80QMyeRZ7fTtlXx3gDQxIpSQwee_221o6maYijCYodEEUP-wfNPkM3J5bc5efysTKF5JzBVc6K385vqNy2dmz1xsay_ChN3YPhZium49sY1_gXb_BOiNBy4sPFLzaQ6TWobzxfG_8qOk2ZBu5MsPvcSDlJmSlggSZ2RnbFE1BDwObneSgkIja7S8CIZi_1l1jOe5klg_xmCFFD6kSR62c7godD9Wotke6JIAbCUBu3IaypYziYDioXyIhRqzNlw-KJqErM9gQdyy3E_mHxvCi3BxD8s9_48GOUR9M9hbqk8ow1Bl5YXhnP4yEZv6_HlBt0h0I4YGO-8o4qNcbtjPKMtGQPi4fwZs3mlT5nwRbVOylmva3XjhIwbdcxcMEqEmPuRhPYQxiwz7vvxvl18I6kOc3EGvlzE66u9V2ETqAzcnJBB_xAdpyE-SDvBZKFLTPrG4PCaOBMxJBAI7edQjvB5I_hH0QWhVut_zt-JIagpgghoTSTUnRAdlimz6tXeNnlfYc3GwiRqAZmrY1JVGImveTvEX3izjETtjctaXHKA1Vr4DsavGoC4P-iSOtw9WLNA5zWy61E7BG_S1mV8WKH3aepfLnPLK0YVqyjWtw2uy8lFwWsqPHd0dZluUmy2W6ogoEVLaffAca-wau-3dIYNaWgQz8uIOkfIA3znQ2APGifFHs5Udh2wPzUu0A09b9u15pAbiHaPx-X8CGuhLFEt4iQMXfynBVsW1TnP_UqDjW1Jst3_gFE-fKKJClpb3Q6YamiMTzD2kSXWkyGpP2Qvj-Fo_8WjmLmM41cE7tEuRvHyCKylWqKVmmecCa0JcGr3Bsx6NAbij9nBc3mW6V6Xs-HaFJ0ZgN7FrEZH1HL0a3tbKGZTjuhk1-G82FuhXKe5g-TRG5y9w2U8dqCH0FJxHvphkmj_DCgz1ahGA3T2C4NogVGIEANKS2NiLr311osJV8lw5uumfoobMbml5SZ3RWSzkPL-M-Gh7pSZm9TIUZpckqCpBO1eyFaa0cs9iojUyHRSn5IEGyipOuxSob8q2SR1gh9z-WW1atFvsb5xRrqjHnxwbT8KH56biaS4o4rf3vf3a06zs--M7e3MA5SD9bRY7f4MVWqFA6xHAlu2J-7M1JmzIbfIGPggdrRedpyoZLuzt8z-evcXk8C43ZOV0NN6zn4PTs8J6YlOL3UA7tqo9E9ZzCofK-7sayUX3cmythydt1sfeUzjX9ad2UmtRRw6B_dPgA3XHq1D2s_1jKQZA7JmVqg9_l6GTl9TiRG1MIqw6XioymopLkmndmRQIz7LzGHqz4pbBwTlYNpEEIQ1cujMsjH2AgW6bjLiy54La1dyEpfb04o08kpKqNOIKe-53PG9I5e3KzWMgtWvvAL04_4tUccml1huJGf756878tjA-0JApNdKDtD5BMfq021IvcizANrmsHxc6-gN-6Vhps2XaU3tEJgAeNEWrbCbGijUBmo_Ajv64R_BGGMUZrx0Vll4hSDFaRCxscoxhUedNiL7UL3a2RaKZGTuX3zNfGHIoI5N_18_eaDLqy83htit45Um9OzeEfU4CsbX6KCxSKijLCaARi8i1EQc4hl6Ant0PdqrvQ_YJO6prjV4XxCGu327tRX08T03BucUszr64lVdtdG4Fqll8eUeCaBdPwo1yNJ2QuOhYGCv3v22FhzFwHnsSEZMtUTY4vR5j9G57P972cDPKfw-5YOmCnGoF1g07YWyaxXWBuNBwY_HSRlO-rk1GV7eCWapwxTknKsgFG6tAc9YOq_cxOqP3NSRYl0wFZcP_edRbYRmaBqSa39kLIEioINVl47RsEVJOjREfzlbT56JVhHz0iOrne0LP1MqH4tMKXfqVIznsEr8wmoOwgn7mrerqJ7aixqoXgalbpKm0JsRtN6j1I5p9mufPKfVNkJS6AcWhMlEkazAsIam9itvFW-czf1x3cnydCWKBjs0Bfxqb-hwudFqaUX_nnEbrLEwgLVo6CWiAL02JoCZZKARA-WTCQhFMGhNRL6MynpDcDr9DuDz_KNRPcws6LrB813h8bwEhWB3ljIvRLHz8eqc5K8V_t9CNw71sfw8pq1P7pCkdFMOsIShdjDWUqwQ_IOT1d7M6VIrJo2atfme6N70kudJlm1EjhAnupZteI5ehvp6xU2XH2d01h2GyuPngUtGW5bZpuOfiSjL--UjD3lPWWDUpIyzWoa2RTEt0lQO8OqdoRbYZ2CoUyDk8LC5WQbg-P8YBHSZQkPAK4me7F5nYJQXuyFourgnG8_yg3xoylsFUB4sMEWEbhlFO7YSLQadkqrSa-tajk6VY0OH74g5TPrJyqOmKGlS9u_u0hQUyKo6q0BgpbMVAGySBcmEPFyg6Sdnm-sAP70i1kxFUU1gpz8BfSRECsCmqpRdBNDHAH4sxnXTicaP7u4EJnmQ30ySOWX6sGubLdyPl6VgmjOEfBkeRe3-sWD_jGLNDiKdYQTslh8DZpqVj2V9BjDMJKmgE6DYEr9b_lli2caOYmQcbrmrfgS4GIhQtVs9iRfsjs_a7utQ3KnIjiUHt6nm9G0F--FvuDb8fnX5-PAh5Z_bcT5eTYRNpOO-PxLTTa__fzX4sSwIPFFq3t8uG99QzWeH4NbqYOHpI4hZppOSACn-NOFCwqdNCjlqKcu62c_xC-Z6MjCQaK443gAhhqktec8sWkwDJ2nFO81suQPSjeE5Q-VyUuVoEoSRNjvWBB3xu6OYewC0yHtXePJYQCQ-8mP_Lt7h9MQ_LDX8QynXdqeigfRHeyKLgBFhf3w2fzRDDYRuf8gH90qXsms63tqQV6Ru44w37YdiXOPJKMLVAnr1SUXnWpebuQUiG5NHPG5R2tn8YDIGLyKEMdi6fGUDmrd5eRpR4-cD1p34KdpfjWPmWxOfB0t_cNk3MtSOeby3Kuz-scYziibe5n7ZIqJwKnr2cyuKFLJFZlFS-C-VjIxEKIOPfwCK6r4RenmhdozvBIXFip_2QNf97jTZjOq1WSrmYMLXwp0vVg02gs07XNVUyRr-WIn7uCJM8VzDAsg7FWGkS-l0k6TWsgooAFxBsQ9YPoW6M2fnumCahZ_wR9U322lQWeW2-8EsFmet5RHt398xArNudtxh2fAHSj2jcv7a6Jy81Mz29GKsduc3ue1-9yYNQ97z8YDUvnvn5CttIXtHh0KjlC387sUESGEQUCJVVVaCEdGCz1A3ow7xh2Z6y_yVdI4MY-iJ-MfXyLRLjT9LgsWYtGma9a-krePqgrg5s0eZEsp6JFpMsVGJYyeWODW4ZPzejdCXzDRgyueVdq4b9Y3K5EZnHjxMGVlKW43_QVUMH3VHkrJZwykfHupRsKusMjnimUJx1T_7ogZiq23hy0SP6YBoQm8MwAa9ntT256BvWW-HupRsz5xX8NGi4C_O_SRgbhwxO8pGuxDi8zMGm-9lzXB0Z8lv381J5bUEW3KwU-kZChuQroDlpg-UXONoknjR2iywT1HiRVdfTvTEmpv-MJW_woOIg6Q_7HPVOnVScus28KulsZ5MDRHrhviXmSSQfKXZ8bVnxvcLfKN43NFye5nh6iXmYfgOlP_vhdtUgCEwSIAj6oK8KdEYAax-_Hgf0j_CjfLkefw4zoprGC_1WHJ-F2Ay8kzYbAIxoPoBJWdGwURPnQAdqX4b8PhImhJ3iyhIWpVv_EmUNm0pm206EKITTvsO9KO2m98l0OrmXmsF0h_onPQMrw0fc0Hy_5FViDqoXsfCJ3BxD1OuXxKb1T-oLec_bxFcHlHWUz8qfaw6fI1RVtQo_FaZsXpGx8KiOre-tnTVfCzMYeVOkJZf9Xtkvpy8PK1XzcciWsn5dVAhSkPdaiqFGeuDOklX5xK631Ydm4zyo0gA8zgSqURmqMdHdg90_BhV_k6EL1o_GEQorQNRuDyn8Za2ExmFfPK2cciPSfJEOop5BlD9VPJgGsy169-aPfLygciN5uqSJJ27mPapGUdYadv10umeYgyPu1heO5l1IEYOBpzIn8D-lIxeDE6GOKwupWkSH3Cf4w0Km_WjIzgCQ7klYG4P5ThYTmMD2rtjolLJIF1z5qNYOGPq-H-6Bavq7lNSPOAVaFF2EWvas3g0hS4J-VwzaW57SYTrJiSd2ENO7uHaT1IA7c0ufn_eQmeE454Na6uuVUghyKFmr3Prep7GsEjc7s5WU-1TaKvnUhv2M0N25IFUSXSRkABddPvcLCTMTc0F_R4IeKAngEjUtvT0r2koNHT1LpTnphLMaE82wRO6DjR3o-U0FK07lhH2SibTU_TaqcdOzzvpCtCuK22_s1Bn3eRcyVLMx5OEN_gTqeGmbz4TWPe2GKQAru9gY90bYLJ4AdXvOUhBuZEHQZNRJ8RhhWEqSspBjLiIQujLAA9dC8kIx3Z7ar2NOEwWs7GNXlvy-VUmk4RsCxLK_1P49N2-_aV1Y_ClsnLHeDMQ4OJkKg2uIUynD2iJDCaOj3EqZPt8rsyDkFIGDzOAuLkAcr3DwlV2n7dl3xig2Tg3J9WfifjbS-6U5SBU22VfGoZAnRasjzfA2z-C62S50TZy0CXdBv2g-vBNzU1jkTLzdFy_HoI2drdln2wjHOxUQGm4j2eLq-pgg7jsuQQlilgn8ULSbfBhAEZ5Ydd6NF8wbXOz9MGaUSKK13eh9UCzJr0Pxm4wJSZ2wyzxRQrYkRIakwA==
preprocessing.py.enc ADDED
@@ -0,0 +1 @@
 
 
1
+ gAAAAABmBSHm9z36l8Q3FDJhnMDifVxDkLNEFXCYDLazNzIG0icxiyMHbS9oyF1n0gVyH6x_R1RTedIMuz9uO8rR5mMzMQ17zfZoUfVSdg4v8jlVqxbjY91CMCXODXs8RensBtoPXiEG532-BVJjzrDKN6G65_CJpVW63T0Bg6PPDJEa7BLIBNws-FHIrgI_xv55D-SmZyl0AFgsNlrFQDjmWjPL-cFIEsqsnbGqzbRObnw_WU1gsPhyxPoMbxe2sJrQs-xngfkJ-m_IbF1Whc4tc8-Npkbw2A_PG5IzGxQuWxV9lf8bmlp42JXRPRsOzsukv-6WMF7-gSd--q5C0HtTRFNKIxUbeAbUCP9VQVFe8tnri89go9f_A2YdnVyExT0VNubrmkH5l62PQkUyakQMLkB0LF-pyWnsXlYzuvFSGp70L76hg0Z107D71DOi6xve2xdPvsgELQ7hwTZG8LFeTJOBW3PfnS_xQk2UvUQtI7jh4SXPyXMkk3uNuLEEwMLGyRutkPDVh_PfTQW8CL-vH_KnktjHdanO7Joxryvfr97-FkG9D6m-BdzHVWCaEUaN4HIy7JzgdoSAcJQhXq6vIS3rw0XYpOsCx4OeElpVo-SDTHcylzYY--Y4Q9IH0QzXyv2ZTnZRsVPsQ3xV-XMcs0xXm0mR9krtXWr2FFnsE5KMXWMd-95tYxFO6wi_2rEOXld-ib4f8SVy26inzyk03RXoY6vOF-nGSnu60_eHeJ6Gsk7fWRoeEXrEGrn6u-tktx98goVMH6gFCdKCmVhcbAayW_cvHJMOy9lXEuoB_dPyd2FwjQF_iq4WYAq6x3urWQpp3P7B_YzFwzpQTLbhVZssTSsBDHHi9m2ittbw2j-7M6yYxc-kCd339PDGwWtLHiSHGzTGSX5SHvktTZ9LdXSJM9E53FOpiLgeCcyiyCqrsQH0VcxRIELw6TJCKwUk9LQRqajbx4GQkB0pDO7pbn5QbUykY2lGMnmcSSIOaVV-MKKda52qwdj5BA-UQSMt6b0UeLL-MJGwzNIMS7fEH39u35H6kKO1_ynBvqKpkk1Pfg5FSYttiAIfTJJwsRQ8irkuSe-XErtD9IHDHOxIADvS5QJ23t13UoJKlTOt_LR0ZlcxbBmu_3QW_X5AOk-1zSrTPUV4HD9PCuZYxiuVSx3z9kv8aEsWCz-j7AxDqoGykvrt4iGE5xgGyEYUqBPQIGT0mcUGEobQPc3y3mbuyKJZPkn9XexK5Lc2_ZuXQBTexPPt6UvuQQ0SKlfCyKFBZpBirMhiAjopb640lLK7L6CF52Coa0ZkXGvcw8TAse6E5tOVSlDi0sw-St8prG7_8JCKP6_1G-TC6XssjAJjwpCPdWf-dLpc0nxJ14zY17hgaxFBM79bol3yHJSyXB5gMvE6YJlZ2BCQH-K0koVZO_ej5z4QbExy67nTYFr89IBnVhOAAzZvtsPYSLgQvmQAMlHq_1MQXPf6jJAbswjxJwEYVej1env7lMuPaK6Z1UQcd5ZzrivXH28hPbzPb4fxN2x6FlIoElWYgiJSnpV-zT_MaP_10CZAmQvgw7bnLdy9PtfK3IHdeY0VM7fvA7P8ppqV65ggT1VEkcmB5gRxqPFCscIKOoSagGwKC8k3fvUALn4p1hbnRlC_1_Gsxj6024xaiqIVQcb8Shq8VftOv7fZp2aMimBcu6w0ZmvB9T60hfDQeEii6QNtuVLlFTwvE0slU692jz7n5k3_bnY5S86sxMdTK9MM653pF1h9EhSBhLk-Jm9NeAJn6kjX8cuMzkTY9LYTV20aI2PH2fmWaz6agumkEpeDY3GiRMFvsfRVMqyJb7NappGHi5hFmWtQI7FCbI46mo7RNXE3UCtBUk2uZx4cxGaaBXWHyEsel8AQ7aQyaOn4RugAUu14DRaGb0jEWn021r592gqyKuVTpy0wsOxyJvayjhKQOP8B6nqS6muB6EwiJyjvcwU5UuRbi4yf__EBPetN1slWR8Vv1pu7zTldY_z3mh2PNIXWCBK1IxJwY0dG8zs_FlOj3aa5sVlA2ahPpgAU2HhCzdPr_e19FLyJ1DxOxzNVvOzLcjGNW4dsdWO1ahGgl9rnbX9cj0SS7gvd9QwdOixOKZg_tropJZVVxOYXchYBvJL3YyIRJYye7Rm94emrpAcwV45blN_qRbKDLpHTRPghVKbmD9SU8hJAfOMoOrcyiVuIQttnddcukaxFsx3s3aFPW8NHq_Jm0--Q-GsgT9URgOkFwfL1FyM57QBS681TObu5VOEFbPp_WpoPIV9qLvkv-58pIl3wtYFPpRPISvcZzdEZGS-ON0C62_LOed5-6-sLgGBPnTStFzThijEHjXPATGZxcEgOVhHE_j947U6zWvQgHJs5ozyxJPrmDUbYKYhXijTUvM3b29E-t-fW9hVgcitpJaP8NawItaPCSfgWIklcWJ_Am7nWAqJiOt8jzVjGjrDEOzt2Kg7dW_ASjnjrgK2SHDxg3DS7vnF2HcLfkDUFpv_SCuLhLlJBQdJdMXTM6H2gAXTyH9EVvBE_r4aFsJDM92vN4LEgvK7isO_CADr64_XRvw8AmnTzhStaOkO93fuQjpP9Tmws_6-bp2F2uHoqElSCZsRPM1hV4AOT-jAJaZNRVR-RHKVdeO16nCQwQXCXxoEBnNvjCZTjl9qDZIe4sQvfOvvLOYhMFhFygRI0ZukTFWL4WyE-bVecyd92JOKP1wF_Gsr8tdlkqJnGKupAbtttoA4OIe-DFGXP6p6VgElHARivSkxy3iA2JwRmRS-Lvinh-m0VnYuOH4m9WL98ykFIBKDo17YiNxJEFLh3hJ3anxrvr8EBfcd8EGlnH29vYnadSOQADEgJP3ck-FYM8mzVVVIvaVu-_i1YDC5P7xnu0CH5FEV8G7Hu97WDu28TsKnCJydR40MR84DCeXgcatzp0u9jYo6CwoEu3xpgoe6L7JsHFG04ULkWc7c6_5qhpBRzKNeUwRuleZmRP0sIGIvl8bsPiAmcYhqOhiGATiinmKlu1Qi4XIW8eu4RQdaGXBCi0MDCnMOnudIuzdOXubEvJDemca8TjIJWOha_ckKM9l9qOqbmhS-52_Uvnh31BrGZPHx8X6aAnJcwe3c0Hu9_SDRjNPv6XPUUSOKPpjnmIMSXQkWX-uOCeEoJlg03bYKydW71XBH33S8cDyWKo_pv3p19FnBbeOMmGgOVZ2QFxSeTnYDRCkSiOFc1-ov1JG6IDMmwQiCmR-VFUfp5QSsveZZPk677QNekHyxjfbBiZQ8DMw==
product_similarity.py ADDED
@@ -0,0 +1,231 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pandas as pd
2
+ import streamlit as st
3
+ from tensorflow.keras.preprocessing import image as kimage
4
+ from cryptography.fernet import Fernet
5
+ import os
6
+
7
+ from io import BytesIO
8
+ from dotenv import load_dotenv
9
+
10
+
11
+
12
+ load_dotenv()
13
+
14
+
15
+ dec_key =os.getenv("FERNET_KEY")
16
+
17
+ cipher_suite=Fernet(dec_key)
18
+
19
+ st.set_page_config(
20
+ layout="wide",
21
+ initial_sidebar_state="expanded",
22
+ )
23
+
24
+
25
+ @st.cache_data
26
+ def load_data():
27
+ # Read the encrypted content from the Excel file
28
+ with open('pantolon-v3.xlsx.enc', 'rb') as file:
29
+ encrypted_data = file.read()
30
+
31
+ # Decrypt the data
32
+ decrypted_data = cipher_suite.decrypt(encrypted_data)
33
+
34
+ # Load the decrypted data into a pandas DataFrame
35
+ df = pd.read_excel(BytesIO(decrypted_data))
36
+
37
+ return df
38
+
39
+
40
+ # Read the encrypted content from model.py.enc file
41
+ with open('model_takemura.py.enc', 'rb') as file:
42
+ encrypted_model_takemura = file.read()
43
+
44
+ decrypted_model_takemura = cipher_suite.decrypt(encrypted_model_takemura)
45
+ decrypted_model_str_takemura = decrypted_model_takemura.decode()
46
+
47
+ # Execute the decrypted model string
48
+ exec(decrypted_model_str_takemura)
49
+
50
+
51
+ # Read the encrypted content from model.py.enc file
52
+ with open('model_hayabusa.py.enc', 'rb') as file:
53
+ encrypted_model_hayabusa = file.read()
54
+
55
+ decrypted_model_hayabusa = cipher_suite.decrypt(encrypted_model_hayabusa)
56
+ decrypted_model_str_hayabusa = decrypted_model_hayabusa.decode()
57
+
58
+ # Execute the decrypted model string
59
+ exec(decrypted_model_str_hayabusa)
60
+
61
+
62
+ # Read the encrypted content from model.py.enc file
63
+ with open('model_shogun.py.enc', 'rb') as file:
64
+ encrypted_model_shogun = file.read()
65
+
66
+ decrypted_model_shogun = cipher_suite.decrypt(encrypted_model_shogun)
67
+ decrypted_model_str_shogun = decrypted_model_shogun.decode()
68
+
69
+ # Execute the decrypted model string
70
+ exec(decrypted_model_str_shogun)
71
+
72
+ #
73
+ # # Read the encrypted content from model.py.enc file
74
+ # with open('preprocessing.py.enc', 'rb') as file:
75
+ # encrypted_preprocessing = file.read()
76
+ #
77
+ # decrypted_preprocessing = cipher_suite.decrypt(encrypted_preprocessing)
78
+ # decrypted_str_preprocessing = decrypted_preprocessing.decode()
79
+ #
80
+ # # Execute the decrypted model string
81
+ # exec(decrypted_str_preprocessing)
82
+ #
83
+
84
+ def page1():
85
+ st.title("Ürün Benzerlik Analizi")
86
+ st.write(
87
+ "Ürün benzerlik analizi, ürününüzün fotoğrafını yükleyerek benzer ürünleri ve verilerini bulmanızı sağlar.")
88
+
89
+ image = st.sidebar.file_uploader("Lütfen ürününüzün fotoğrafını yükleyin:")
90
+
91
+ st.markdown("""
92
+ <style>
93
+
94
+ .stTabs [data-baseweb="tab-list"] {
95
+ gap: 20px;
96
+ padding: 10px/* Increase the gap between tabs */
97
+
98
+ }
99
+
100
+ .stTabs [data-baseweb="tab-list"] button [data-testid="stMarkdownContainer"] p {
101
+ font-size:1.5rem;
102
+ font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
103
+ }
104
+
105
+ .stTabs [data-baseweb="tab"] {
106
+ height: 50px;
107
+ white-space: pre-wrap;
108
+ border-radius: 12px; /* Make the tabs look like pills */
109
+ padding: 10px 20px; /* Add padding to the tabs */
110
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); /* Add shadow to the tabs */
111
+ transition: background-color 0.3s ease; /* Add transition effect */
112
+ color: #333; /* Change the text color to a soft black */
113
+ }
114
+
115
+ .stTabs [aria-selected="true"] {
116
+ background-color: #e0e0e0; /* Change the background color to a soft gray */
117
+ border-color: #3d5afe; /* Add border color to the selected tab */
118
+ color: #ffffff; /* Change the text color to a soft blue */;
119
+ }
120
+
121
+ .stTabs [aria-selected="true"]:hover {
122
+ background-color: #d0d0d0; /* Change background color when hover on the selected tab */
123
+ }
124
+
125
+ </style>""", unsafe_allow_html=True)
126
+
127
+ tab1, tab2 = st.tabs(["Benzer Ürün Analizi", "Ürün Özellik Analizi"])
128
+
129
+ if image is not None:
130
+ st.sidebar.success("Görsel başarıyla yüklendi.")
131
+
132
+ product_category = st.sidebar.selectbox("Lütfen ürün kategorisi seçin:",
133
+ ["Pantolon", "Gömlek - (Test)", "Elbise - (Test)", "Ceket - (Test)",
134
+ "Hırka - (Test)"])
135
+ if product_category == "Pantolon":
136
+
137
+ default_product_details = ["Desen", "Bel", "Paça"] # Assign a default value
138
+
139
+ product_details = st.sidebar.multiselect("Benzerlik için öncelik sırasına göre detay seçin:",
140
+ ["Bel", "Desen", "Paça"],
141
+ default=default_product_details)
142
+
143
+ if not product_details: # If product_details is an empty list
144
+ st.sidebar.error("En az 1 özellik seçilmelidir.")
145
+
146
+ with tab1:
147
+ # Create placeholders for both buttons
148
+ analyse_button_placeholder = st.empty()
149
+ show_results_button_placeholder = st.empty()
150
+
151
+ # Check if 'analysis_done' is in session state and if it's True
152
+ if 'analysis_done' not in st.session_state or not st.session_state['analysis_done']:
153
+ # Display the "Hayabusa ile Analiz Yap" button
154
+ analyse_button = analyse_button_placeholder.button("Hayabusa ile Analiz Yap")
155
+ if analyse_button:
156
+ # Clear the "Hayabusa ile Analiz Yap" button
157
+ analyse_button_placeholder.empty()
158
+
159
+ status_placeholder = st.empty()
160
+ status_placeholder.status("Analizi yapılıyor...")
161
+
162
+ filenames = model_2(image)
163
+ st.session_state['filenames'] = filenames
164
+ st.session_state['image'] = image
165
+ st.session_state['analysis_done'] = True
166
+
167
+ status_placeholder.success("Analiz tamamlandı.")
168
+
169
+ if 'analysis_done' in st.session_state and st.session_state['analysis_done']:
170
+ # Check if 'show_results' is in session state and if it's True
171
+ if 'show_results' not in st.session_state or not st.session_state['show_results']:
172
+ # Display the "Hayabusa Sonuçlarını Göster" button
173
+ show_results_button = show_results_button_placeholder.button("Hayabusa Sonuçlarını Göster",
174
+ key='button2')
175
+ if show_results_button:
176
+ # Clear the "Hayabusa Sonuçlarını Göster" button
177
+ show_results_button_placeholder.empty()
178
+ st.session_state['show_results'] = True
179
+ status_placeholder_2 = st.empty()
180
+ status_placeholder_2.status("Sonuçlar toplanıyor...")
181
+
182
+ if 'show_results' in st.session_state and st.session_state['show_results']:
183
+ image_dir = "general/PANTOLON"
184
+ df = load_data()
185
+ st.empty()
186
+
187
+ for _ in range(5):
188
+ try:
189
+ takemura_output = takemura(st.session_state['filenames'], image, product_details)
190
+ filenames = takemura_output.split('\n')
191
+
192
+ for filename in filenames:
193
+ filename_without_extension = os.path.splitext(filename)[0]
194
+ filename_without_extension = filename_without_extension.split('_')[0]
195
+
196
+ matching_rows = df.loc[df['ItemOption'] == filename_without_extension]
197
+
198
+ if not matching_rows.empty:
199
+ for _, row in matching_rows.iterrows():
200
+ cols = st.columns([2, 8]) # Adjust these values for desired widths
201
+ img_path = os.path.join(image_dir, filename)
202
+ img = kimage.load_img(img_path)
203
+ cols[0].image(img, width=200)
204
+ # cols[1].dataframe(pd.DataFrame(row).T)
205
+ half = len(row) // 2 # Find the midpoint of the row
206
+
207
+ # Split the row into two parts
208
+ row_upper_half = row.iloc[:half]
209
+ row_lower_half = row.iloc[half:]
210
+
211
+ # Display the two parts in two separate dataframes
212
+ cols[1].dataframe(pd.DataFrame(row_upper_half).T)
213
+ cols[1].dataframe(pd.DataFrame(row_lower_half).T)
214
+
215
+ status_placeholder_2.success("Sonuçlar başarıyla toplandı.")
216
+ else:
217
+ st.write(f"Ürün isimlerini maalesef eşleştiremedim {filename_without_extension}")
218
+ break
219
+
220
+ except Exception as e:
221
+ st.write(f"Hayabusa için Lütfen 'Sonuçları Göster' butonuna tekrar basınız.. ...")
222
+
223
+ st.session_state['show_results'] = False
224
+
225
+ with tab2:
226
+ shogun(image)
227
+
228
+
229
+
230
+ else:
231
+ st.write("Please upload an image.")