<prompt> Tekeleza injini ya mapendekezo katika JavaScript kwa kutumia mbinu shirikishi za kuchuja ili kupendekeza vipengee sawia kulingana na mapendeleo ya mtumiaji, kuingiliana na hifadhidata ya MySQL ili kuhifadhi na kurejesha ukadiriaji wa bidhaa.PLINFORMAT  <response>: const mysql needmysql; Sanidi muunganisho wa MySQLconst connection mysql.createConnection mwenyeji: localhost, mtumiaji: mizizi, nenosiri: , hifadhidata: injini_ya_mapendekezo; Unganisha kwa MySQLconnection.connecterr ikiwa kukosea kutupa kosa; console.logImeunganishwa kwenye hifadhidata!;; Kitendaji cha matumizi ya kukokotoa mgawo wa uwiano wa Pearson kati ya vipengee viwilikazi pearsonCorrelationitem1Rations, item2Ratings hebu jumla1 0, jumla2 0, jumla ya mraba 1 0, jumla ya Sq2 0, pSum 0, n 0; kwa wacha mtumiaji katika Ukadiriaji wa kipengee1 ikiwa item2Ratings.hasOwnPropertymtumiaji n; const rating1 item1Ukadiriajimtumiaji; const rating2 Ukadiriaji wa bidhaa2mtumiaji; jumla1 ukadiriaji1; jumla2 ukadiriaji2; sum1Sq Math.powrating1, 2; sum2Sq Math.powrating2, 2; pSum rating1 rating2; ikiwa n 0 kurudi 0; const num pSum - jumla1 jumla2 n; const den Math.sqrtsum1Sq - Math.powsum1, 2 n sum2Sq - Math.powsum2, 2 n; ikiwa tundu 0 kurudi 0; kurudi namba shimo; Kazi ya kurejesha ukadiriaji wa bidhaa kutoka kwa hifadhidatafanya kazi getItemRatingscallback connection.queryCHAGUA kitambulisho cha_cha_mtumiaji, kitambulisho_cha_kipengee, ukadiriaji KUTOKA kwa ukadiriaji wa kipengee, hitilafu, safu mlalo ikiwa kukosea kutupa kosa; acha Viwango vya bidhaa ; kwa wacha safu mlalo ikiwa !itemRatings.hasOwnPropertyrow.item_id Vipengee Ukadiriajirow.item_id ; itemRatingsrow.item_idrow.user_id row.rating; callbackvipengeeUkadiriaji; ; Kazi ya kutoa mapendekezo kulingana na uchujaji wa ushirikianokazi generateRecommendations getItemRatingsitemRatings acha kufananaScores ; Kokotoa alama za kufanana kati ya jozi zote za vitu kwa acha kipengee1 katika Viwango vya bidhaa kufananaScoresitem1 ; kwa acha kipengee2 katika Viwango vya bidhaa ikiwa kipengee1 ! kipengee2 similarityScoreskipengee1item2 pearsonCorrelationvipengeeVipimokipengee1, Viwango vya kipengeekipengee2; Toa mapendekezo kwa kila mtumiaji kwa kutafuta bidhaa zilizo na alama za juu zinazofanana ambazo mtumiaji bado hajakadiria kwa ruhusu kitambulisho cha mtumiaji kwa watumiaji acha mapendekezo ; kwa acha kipengee1 katika Viwango vya bidhaa ikiwa !itemRatingsitem1.hasOwnPropertyuserId hebu jumlaSimilarity 0; basi weightedRatingSum 0; kwa acha kipengee2 katika Viwango vya bidhaa ikiwa itemRatingsitem2.hasOwnPropertyuserId const kufanana similarityScoresitem1item2; ikiwa kufanana 0 jumlaKufanana kufanana; weightedRatingSum kufanana itemRatingsitem2userId; ikiwa JumlaSawa 0 mapendekezo.push itemId: item1, predictedRating: weightedRatingSum totalSimilarity ; Panga mapendekezo kwa ukadiriaji uliotabiriwa mapendekezo.pangaa, b b.predictedRating - a.predictedRating; console.logMapendekezo kwa mtumiaji userId:, recommend.slice0, 10; ;kuzalishaMapendekezo; 