《基于深度學(xué)習(xí)的服裝商品系統(tǒng)設(shè)計》6900字(論文)_第1頁
《基于深度學(xué)習(xí)的服裝商品系統(tǒng)設(shè)計》6900字(論文)_第2頁
《基于深度學(xué)習(xí)的服裝商品系統(tǒng)設(shè)計》6900字(論文)_第3頁
《基于深度學(xué)習(xí)的服裝商品系統(tǒng)設(shè)計》6900字(論文)_第4頁
《基于深度學(xué)習(xí)的服裝商品系統(tǒng)設(shè)計》6900字(論文)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

緒論1.1目的和意義隨著互聯(lián)網(wǎng)的發(fā)展,人們的消費場景逐漸由實地轉(zhuǎn)變到網(wǎng)絡(luò)數(shù)字平臺,如今淘寶等電子商務(wù)平臺已經(jīng)占據(jù)了商品市場的大量份額,人們足不出戶就可以買到心儀的商品。服裝作為電子商務(wù)平臺的重要商品類型,已經(jīng)形成了海量的規(guī)模,各個平臺的充斥著大量服裝商品。而服裝的選購不同于其他類型的商品,大部分用戶選購時的關(guān)注點都在服裝商品圖像信息上,而現(xiàn)如今平臺中的服裝商品數(shù)量繁多,過多的信息對于用戶來講早已經(jīng)超出其信息處理負(fù)載,用戶很難對這些服裝商品逐一評估。為了解決這個的問題,本文設(shè)計了一種基于圖像進(jìn)行推薦的算法為用戶節(jié)省選購開銷。同時也設(shè)計商城的基礎(chǔ)功能。用結(jié)構(gòu)化的設(shè)計模式,保證了商城的擴(kuò)展性和可移植性。為用戶解決實際問題,也為平臺增加成交量,讓網(wǎng)上購物更加便利。1.2研究現(xiàn)狀隨著人工智能的發(fā)展,越來越多的研究者開始關(guān)注推薦算法,傳統(tǒng)的基于領(lǐng)域的推薦算法可以大致分為兩類,一類是基于用戶的推薦算法,另一類是基于商品的推薦算法。在一個推薦系統(tǒng)中,基于用戶的推薦算法是將與某個用戶具有相似興趣的其他用戶感興趣的商品推薦給該用戶。而基于商品的推薦算法是給用戶推薦那些和他們喜歡的商品相似的商品。總的來說算法步驟是首先計算相似度,然后根據(jù)相似度和用戶歷史行為給用戶生成推薦列表。此外隨著機(jī)器學(xué)習(xí)的發(fā)展,研究者們開始使用機(jī)器學(xué)習(xí)的方法實現(xiàn)推薦算法。隱語義模型是經(jīng)典的基于建模的推薦算法,復(fù)雜度較小,但仍然達(dá)不到實時推薦的要求。為了進(jìn)一步提升推薦精度,模型融合也常用于推薦算法,經(jīng)典的模型融合方案有邏輯回歸和梯度提升決策樹GBDT的組合?,F(xiàn)如今隨著深度學(xué)習(xí)的興起,將深度學(xué)習(xí)應(yīng)用于推薦系統(tǒng)也成為了研究熱點。深度神經(jīng)網(wǎng)絡(luò)的優(yōu)勢在于其強(qiáng)大的表征學(xué)習(xí)能力,而經(jīng)典的矩陣分解模型可以被描述為一種非常簡單的神經(jīng)網(wǎng)絡(luò)。我們可以通過拓展其中的結(jié)構(gòu),引入更多的非線性單元來加強(qiáng)推薦模型的功能。企業(yè)級的推薦系統(tǒng)為了盡量提高模型的準(zhǔn)確性,往往會使用豐富的甚至異構(gòu)的內(nèi)容數(shù)據(jù)。這些特征從不同的維度展現(xiàn)了不同的信息,而且特征間的組合通常是非常有意義的。深度推薦系統(tǒng)的研究熱點有PNN[1]、DeepFM[2]、DCN[3]等。除了這些,推薦算法仍在蓬勃發(fā)展,期待著出現(xiàn)更完善的解決方案。1.3論文組織架構(gòu)本論文大體結(jié)構(gòu)如下:第1章,緒論。介紹本文的研究目的和意義,以及論文的組織結(jié)構(gòu)。第2章,理論基礎(chǔ)。本章節(jié)介紹深度學(xué)習(xí)應(yīng)用于推薦算法的基本理論概念。第3章,系統(tǒng)設(shè)計。本章節(jié)主要介紹系統(tǒng)的算法設(shè)計以及系統(tǒng)模塊設(shè)計。第4章,系統(tǒng)實現(xiàn)。本章節(jié)主要介紹系統(tǒng)各模塊的實現(xiàn)。第5章,總結(jié)和展望。結(jié)合理論進(jìn)行探討和總結(jié)并簡要討論了將來的重點研究方向。理論基礎(chǔ)2.1深度學(xué)習(xí)深度學(xué)習(xí)是近幾年興起的人工智能研究技術(shù),模型設(shè)計思想源自于人工神經(jīng)網(wǎng)絡(luò)的研究,通過模擬人腦神經(jīng)元信息處理方式,使用計算機(jī)技術(shù)進(jìn)行建模,形成了最初的神經(jīng)網(wǎng)絡(luò)基本模型,傳統(tǒng)的前向反饋神經(jīng)網(wǎng)絡(luò)[4]是被業(yè)界最早提出的人工神經(jīng)網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)一般包括輸入層、隱藏層和輸出層三個部分,并通過反向傳播的算法進(jìn)行模型的訓(xùn)練。在前向反饋神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練或者預(yù)測時,信息只能從輸入層單向傳播到輸出層;而后又衍生出多種神經(jīng)網(wǎng)絡(luò)架構(gòu),包括卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)。卷積神經(jīng)網(wǎng)絡(luò)是一種特殊的神經(jīng)網(wǎng)絡(luò)。經(jīng)典的全連接神經(jīng)網(wǎng)絡(luò)經(jīng)過訓(xùn)練之后已經(jīng)可以解決一般的推斷任務(wù),但是對于更復(fù)雜的任務(wù),例如圖像處理任務(wù),每一張圖片都包含了成千上萬的像素點,如果仍然采取經(jīng)典網(wǎng)絡(luò)中的結(jié)構(gòu),對每一個輸入都逐層線性加權(quán),運算量將大大增加。而且這樣的結(jié)構(gòu)并沒有很好地利用圖像中像素相鄰位置的聯(lián)系特征,所以并不適用于圖像處理的任務(wù)。而卷積神經(jīng)網(wǎng)絡(luò)通過其獨特的卷積運算能夠更好地提取復(fù)雜的特征,更好地利用圖像中特征的位置聯(lián)系。卷積神經(jīng)網(wǎng)絡(luò)內(nèi)部包含了卷積層、池化層和全連接層3種基本構(gòu)件。圖2.1卷積層內(nèi)部包含了多個卷積核,也稱濾波器,其功能是提取輸入樣本中的特征。在二維卷積運算中,每一個卷積核都由一個二維的權(quán)重系數(shù)矩陣和偏置組成,卷積運算時,卷積核從二維圖像左上角以滑動窗口的形式移動到右下角,并在移動過程中將卷積核的權(quán)重系數(shù)矩陣先翻轉(zhuǎn)180°,再與圖像對應(yīng)位置的像素信息矩陣作交叉相關(guān)計算,然后加上偏置得到輸出結(jié)果組成特征圖。更高維數(shù)輸入矩陣的卷積過程可以此類推。經(jīng)過卷積后通過激活函數(shù)映射輸出,結(jié)合損失函數(shù)進(jìn)行反向傳播調(diào)整權(quán)值。目標(biāo)函數(shù)是反向傳播時神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)的依據(jù),在訓(xùn)練中也稱損失函數(shù)。損失函數(shù)是神經(jīng)網(wǎng)絡(luò)模型得以預(yù)測正確結(jié)果的關(guān)鍵。反向傳播算法是神經(jīng)網(wǎng)絡(luò)的訓(xùn)練算法,也是神經(jīng)網(wǎng)絡(luò)根據(jù)目標(biāo)函數(shù)進(jìn)行優(yōu)化更新的具體實施方法。只有通過訓(xùn)練算法,神經(jīng)網(wǎng)絡(luò)才能將處理過的信息形成記憶,從而實現(xiàn)智能。由于經(jīng)典全連接神經(jīng)網(wǎng)絡(luò)輸入層的節(jié)點個數(shù)是固定的,因此模型無法對可變長信息進(jìn)行建模。同時經(jīng)典全連接神經(jīng)網(wǎng)絡(luò)模型只能單獨處理每一條輸入,前一條輸入和后一條輸入是沒有任何聯(lián)系的。但是,某些具體的任務(wù)需要處理序列信息,即每條訓(xùn)練樣本含有多個時間步長的輸入,相鄰時間步長的輸入之間是存在聯(lián)系的。比如,當(dāng)我們在理解一句話時需要分析詞與詞之間的依賴關(guān)系,因此需要將句子這一序列整個輸入到模型中;當(dāng)我們在處理視頻時,同樣不能只單獨地分析每一幀所包含的信息,需要將視頻的所有的幀輸入到模型中,來解析幀與幀的邏輯關(guān)系[5]。為了解決這個問題循環(huán)神經(jīng)網(wǎng)絡(luò)被提出,循環(huán)神經(jīng)網(wǎng)絡(luò)不同于其他神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),其內(nèi)部神經(jīng)元節(jié)點是遞歸鏈接的,具有記憶性和參數(shù)共享等特點[6]。其設(shè)計思想同樣源自于腦神經(jīng)科學(xué)的研究,研究者發(fā)現(xiàn)信息可以在腦神經(jīng)元中循環(huán)傳遞,由此設(shè)計出循環(huán)神經(jīng)網(wǎng)絡(luò)。通過激活和反饋,循環(huán)神經(jīng)網(wǎng)絡(luò)可以處理具有序列特征的信息,所以常被用于自然語言處理和時間序列問題中。2.2深度學(xué)習(xí)推薦系統(tǒng)深度學(xué)習(xí)強(qiáng)大的表征能力在推薦系統(tǒng)同樣能發(fā)揮作用,在推薦算法中,不同場景推薦的目標(biāo)聯(lián)系往往各不相同,而推薦首先就是要將推薦目標(biāo)之間的聯(lián)系抽象出來,深度學(xué)習(xí)長處正在于此,在音頻視頻推薦中往往就會用卷積神經(jīng)網(wǎng)絡(luò)從音頻視頻內(nèi)容中提取隱藏和有用的特征,然后再進(jìn)行推薦。圖2.2此外,用戶在系統(tǒng)中的行為往往是一段過程,系統(tǒng)剛開始對用戶陌生,隨著用戶的各種行為,系統(tǒng)可以慢慢學(xué)習(xí)用戶的偏好,而這種過程式的學(xué)習(xí)方式可以借助循環(huán)神經(jīng)網(wǎng)絡(luò)來實現(xiàn)。使用循環(huán)神經(jīng)網(wǎng)絡(luò)可以整合用戶在系統(tǒng)中的一系列順序行為,從而將推薦問題轉(zhuǎn)化為序列預(yù)測問題,達(dá)到更加精確的推薦。深度學(xué)習(xí)在推薦系統(tǒng)的應(yīng)用主要用于特征提取和對用戶偏好建模,研究現(xiàn)狀表明,神經(jīng)網(wǎng)絡(luò)有較好的非線性表征能力,基于深度學(xué)習(xí)的推薦算法比傳統(tǒng)的推薦算法有更好的精確度。系統(tǒng)設(shè)計本文實現(xiàn)的基于深度學(xué)習(xí)的服裝商品的推薦系統(tǒng)是基于服裝圖像進(jìn)行建模,利用深度學(xué)習(xí)提取服裝圖像的相似度從而實現(xiàn)物品推薦。3.1特征提取網(wǎng)絡(luò)采用AlexNet[7]作為前置圖像特征提取網(wǎng)絡(luò),在實現(xiàn)時參考了AlexNet前七層的設(shè)計,AlexNet是基于大規(guī)模數(shù)據(jù)集AlexNet預(yù)訓(xùn)練得到的卷積神經(jīng)網(wǎng)絡(luò)模型,其內(nèi)部包含了多層卷積網(wǎng)絡(luò)層和全連接層。在訓(xùn)練的第一個階段,為了充分保持網(wǎng)絡(luò)提取圖像高維特征的性能,同時節(jié)省訓(xùn)練所需的時間和空間復(fù)雜度,用AlexNet實現(xiàn)的參數(shù)來初始化Tensorflow中實現(xiàn)的前置圖像特征提取網(wǎng)絡(luò)的參數(shù)。使用原有的商品信息標(biāo)簽進(jìn)行監(jiān)督學(xué)習(xí)。在前置圖像特征提取網(wǎng)絡(luò)訓(xùn)練的第二個階段,首先在前置圖像特征網(wǎng)絡(luò)的第七層后添加一層輸出層,將圖像初始化后輸入前置特征提取網(wǎng)絡(luò),將輸出層設(shè)定為圖片的打標(biāo),對前置特征提取網(wǎng)絡(luò)的參數(shù)根據(jù)實驗數(shù)據(jù)集進(jìn)行微調(diào)。經(jīng)過前兩個階段的訓(xùn)練,前置圖像特征提取網(wǎng)絡(luò)的第7層可以有效的提取圖像的高維特征,前置圖像特征提取網(wǎng)絡(luò)的設(shè)計功能實現(xiàn),可以將第二階段加入的輸出層從網(wǎng)絡(luò)屮移除,將網(wǎng)絡(luò)的第7層作為稀疏自編碼hash網(wǎng)絡(luò)[8]的輸入。3.2自編碼網(wǎng)絡(luò)當(dāng)前置圖像特征提取網(wǎng)絡(luò)訓(xùn)練完成之后,可以進(jìn)行稀疏自編碼hash網(wǎng)絡(luò)的訓(xùn)練。稀疏自編碼hash網(wǎng)絡(luò)的輸入為前置圖像特征提取網(wǎng)絡(luò)的輸出,由于前置圖像特征提取網(wǎng)絡(luò)己經(jīng)可以有效的提取圖像的高維特征,因此稀疏自編碼hash的網(wǎng)絡(luò)結(jié)構(gòu)可以采用較簡單的設(shè)計,在本文中,稀疏自編碼hash網(wǎng)絡(luò)采用含有一層隱藏層的稀疏自編碼網(wǎng)絡(luò),為了驗證隱藏層節(jié)點數(shù)對算法性能的影響,在實驗中,隱藏層的節(jié)點數(shù)設(shè)定為48和128,分別對應(yīng)48bit和128bit的hash碼。在稀疏自編碼hash網(wǎng)絡(luò)的訓(xùn)練過程中,首先將數(shù)據(jù)集中的圖片經(jīng)過初始化后輸入前置特征提取網(wǎng)絡(luò),計算得到前置特征提取網(wǎng)絡(luò)的輸出,如下圖,將該輸出同時作為稀疏自編碼hash網(wǎng)絡(luò)的輸入層和輸出層,訓(xùn)練得到稀疏自編碼hash網(wǎng)絡(luò)的權(quán)值。稀疏自編碼hash網(wǎng)絡(luò)用來輸出圖像的hash碼,當(dāng)網(wǎng)絡(luò)訓(xùn)練完成之后,可以將稀疏自編碼網(wǎng)絡(luò)的輸出層移除,將稀疏自編碼網(wǎng)絡(luò)的隱藏層作為稀疏自編碼hash網(wǎng)絡(luò)的輸出。3.3算法流程基于深度神經(jīng)網(wǎng)絡(luò)的半監(jiān)督算法能夠同時提取圖像的高維語義特征和短哈希碼,二者可以從精細(xì)化和精簡化兩個層次分別獲取圖像的特征,因此,在對大規(guī)模數(shù)據(jù)量的圖像進(jìn)行相似度計算時,本程序基于深度神經(jīng)網(wǎng)絡(luò)的半監(jiān)督算法分別實現(xiàn)粗細(xì)粒度的特征提取。首先,根據(jù)稀疏自編碼hash網(wǎng)絡(luò)計算得到的隱藏層,以漢明距離[9]為依據(jù)計算得到一組與輸入圖像hash層相似的圖片作為候選集,隨后,在候選集中使用前置圖像特征提取網(wǎng)絡(luò)得到的高維語義特征來計算相似度,并將相似度進(jìn)行排序得到推薦結(jié)果。推薦算法實現(xiàn)過程:輸入:輸入圖像,圖片數(shù)據(jù)集輸出:推薦結(jié)果列表步驟1:網(wǎng)絡(luò)訓(xùn)練1.前置圖像特征提取網(wǎng)絡(luò)訓(xùn)練2.稀疏自編碼Hash網(wǎng)絡(luò)訓(xùn)練步驟2:高維語義特征與短Hash碼計算1.圖片高維語義特征計算并,生成集合2.圖片數(shù)據(jù)集短哈希碼計算,生成集合步驟3:粗分類1.計算輸入圖像對應(yīng)的粗分類哈希碼的2.計算與的漢明距離3.與之間的漢明距離低于設(shè)定的閾值,由組成的個哈希碼作為候選集合步驟4:精細(xì)計算1.根據(jù)粗分類返回的結(jié)果原始圖片集合2.提取原始圖片集合匕對應(yīng)的高維特征集合3.計算圖像的高維語義特征向量和的歐氏距離4.選取排在前位的圖像,依次排序作為最終的推薦結(jié)果系統(tǒng)實現(xiàn)4.1實現(xiàn)技術(shù)Keras[10]作為高級神經(jīng)網(wǎng)絡(luò)的框架使用python語言,并且集成度很高能夠在用戶有想法的初期用于快速實現(xiàn)模型的搭建、訓(xùn)練以及運用。用戶友好Keras有詳細(xì)的說明文檔,方便使用者快速的學(xué)習(xí)以及運用。并且用有很高的集成度,能夠十分便利的搭建各種網(wǎng)絡(luò)。模塊化Keras對神經(jīng)網(wǎng)絡(luò)的各個部分實現(xiàn)了模塊化。用戶可以輕易的更改網(wǎng)絡(luò)的各個部分或者將各個模塊組合起來。易擴(kuò)展性由于keras的高度模塊化,在擴(kuò)展時。只要編寫了新的模塊,可以輕松的插入到原來的模型中。使用keras實現(xiàn)了如下神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu):Layer(type)OutputShapeParamconv2d(Conv2D)(None,53,53,96)34944max_pooling2d(MaxPooling2D)(None,26,26,96)0conv2d_1(Conv2D)(None,26,26,256)614656max_pooling2d_1(MaxPooling2D)(None,12,12,256)0conv2d_2(Conv2D)(None,12,12,384)885120conv2d_3(Conv2D)(None,12,12,384)1327488conv2d_4(Conv2D)(None,12,12,256)884992max_pooling2d_2(MaxPooling2D)(None,5,5,256)0flatten(Flatten)(None,6400)0dense(Dense)(None,4096)26218496Dropout(Dropout)(None,4096)0dense_1(Dense)(None,2048)8390656Dropout_1(Dropout)(None,2048)0dense_2(Dense)(None,10)204904.2模型訓(xùn)練1.爬取國內(nèi)知名電商平臺的部分商品數(shù)據(jù)集。其中包括商品的圖片、價格、商品描述等信息。2.數(shù)據(jù)清洗。由于網(wǎng)絡(luò)和反爬機(jī)制等原因,爬取的數(shù)據(jù)存在一定問題,因此對數(shù)據(jù)進(jìn)行人工篩選過濾。3.抓取數(shù)據(jù)核心代碼:importosimportrequestsfromlxmlimporthtmlimporttimeimportcsvimportpymysqlimportosimportrandomimporturllibetree=html.etreeconn=pymysql.connect(host="localhost",user="root",password="666666",db="taobao1",charset="utf8")#創(chuàng)建數(shù)據(jù)庫連接cursor=conn.cursor()ifnotos.path.exists('JDimg'):os.mkdir('JDimg')s=requests.session()s.keep_alive=Falseclass_num=0falit_num=0end_num=0#定義函數(shù)抓取每頁前30條商品信息defcrow_first(n):globalclass_num,falit_num,end_numif(class_num==end_num):return#構(gòu)造每一頁的url變化url=URL+str(2*n-1)head={'authority':'','method':'GET','path':'/s_new.php?keyword='+key_word+'&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq='+key_word+'&cid2=653&cid3=655&page=4&s=84&scrolling=y&log_id=1529828108.22071&tpl=3_M&show_items=7651927,7367120,7056868,7419252,6001239,5934182,4554969,3893501,7421462,6577495,26480543553,7345757,4483120,6176077,6932795,7336429,5963066,5283387,25722468892,7425622,4768461','scheme':'https','referer':'/Search?keyword='+key_word+'&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq='+key_word+'&cid2=653&cid3=655&page=3&s=58&click=0','user-agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/66.0.3359.139Safari/537.36','x-requested-with':'XMLHttpRequest','Cookie':'unpl=V2_ZzNtbRUEERF2D05dfhFYUWIDFV1KUhcWIV8RA35MXg0wAxtdclRCFX0UR1FnGFUUZwcZXEFcQxZFCEdkeBBVAWMDE1VGZxBFLV0CFSNGF1wjU00zQwBBQHcJFF0uSgwDYgcaDhFTQEJ2XBVQL0oMDDdRFAhyZ0AVRQhHZHseVARnBRdZQ1JzJXI4dmRyEFwFZgciXHJWc1chVERWeBFfDSoDFVVDV0UQcQlDZHopXw%3d%3d;__jda=122270672.1690174504.1554706933.1554706933.1554706937.1;__jdc=122270672;areaId=21;ipLoc-djd=21-1827-1828;__jdu=1690174504;__jdb=122270672.2.1690174504|1.1554706937;__jdv=122270672|baidu-pinzhuan|t_288551095_baidupinzhuan|cpc|0f3d30c8dba7459bb52f2eb5eba8ac7d_0_fbc52698495e416194e2efff4d39f181|1554706952408;PCSYCityID=1827;shshshfp=5665b77154bec7aae0fb9900d27ff0b9;shshshfpa=8a8f42d2-516e-e738-4521-e8f135b4f40c-1554706955;shshshsID=0ddb778d8d841d7bf901e6853a4289eb_1_1554706956084;shshshfpb=jyJEKhsU0fS16X2u4xlFJPA%3D%3D'}r=requests.get(url,headers=head)print(url)#指定編碼方式,不然會出現(xiàn)亂碼r.encoding='utf-8'#print(r.text)html1=etree.HTML(r.text)#定位到每一個商品標(biāo)簽lidatas=html1.xpath('//li[contains(@class,"gl-item")]')#將抓取的結(jié)果保存到mysql中fordataindatas:try:p_price=data.xpath('div/div[@class="p-price"]/strong/i/text()')p_comment=data.xpath('div/div[5]/strong/a/text()')p_name=data.xpath('div/div[@class="p-namep-name-type-2"]/a/em/text()')iflen(p_price)==0:p_price=data.xpath('div/div[@class="p-price"]/strong/@data-price')url=data.xpath('div/div[@class="p-img"]/a/img')print(url[0].attrib)img_url=url[0].attrib['data-lazy-img']#print(p_price[0])##print(p_comment)print(str(p_name[0]))#print(url[0].attrib['data-lazy-img'])print(str(url[0].attrib['data-lazy-img']).split('/')[-1])#img_name=str(url[0].attrib['data-lazy-img']).split('/')[-1]img_name=str(class_num)+".jpg"class_num=class_num+1sql="insertgoods(id,name,price,url,num,type,class)VALUES("+str(class_num)+",%s,%s,%s,%s,%s,%s);"cursor.execute(sql,(p_name[0],p_price[0],img_dir+img_name,str(random.randint(10,30000)),type,str(class_f)))mit()pic=requests.get('http:'+img_url)#time.sleep(random.random())withopen(img_dir+img_name,'wb')asf:f.write(pic.content)print('--第{}張圖下載成功'.format(img_name))except:falit_num=falit_num+1#定義函數(shù)抓取每頁后30條商品信息defcrow_last(n):globalclass_num,falit_num,end_numif(class_num==end_num):return#獲取當(dāng)前的Unix時間戳,并且保留小數(shù)點后5位a=time.time()b='%.5f'%aurl=URL+str(2*n)+'&s='+str(48*n-20)+'&scrolling=y&log_id='+str(b)head={'authority':'','method':'GET','path':'/s_new.php?keyword='+key_word+'&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq='+key_word,'scheme':'https','referer':'/Search?keyword='+key_word+'&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq='+key_word+'&cid2=653&cid3=655&page=3&s=58&click=0','user-agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/66.0.3359.139Safari/537.36','x-requested-with':'XMLHttpRequest','Cookie':'qrsc=3;pinId=RAGa4xMoVrs;xtest=1210.cf6b6759;ipLocation=%u5E7F%u4E1C;_jrda=5;TrackID=1aUdbc9HHS2MdEzabuYEyED1iDJaLWwBAfGBfyIHJZCLWKfWaB_KHKIMX9Vj9_2wUakxuSLAO9AFtB2U0SsAD-mXIh5rIfuDiSHSNhZcsJvg;shshshfpa=17943c91-d534-104f-a035-6e1719740bb6-1525571955;shshshfpb=2f200f7c5265e4af999b95b20d90e6618559f7251020a80ea1aee61500;cn=0;3AB9D23F7A4B3C9B=QFOFIDQSIC7TZDQ7U4RPNYNFQN7S26SFCQQGTC3YU5UZQJZUBNPEXMX7O3R7SIRBTTJ72AXC4S3IJ46ESBLTNHD37U;ipLoc-djd=19-1607-3638-3638.608841570;__jdu=930036140;user-key=31a7628c-a9b2-44b0-8147-f10a9e597d6f;areaId=19;__jdv=122270672|direct|-|none|-|1529893590075;PCSYCityID=25;mt_xid=V2_52007VwsQU1xaVVoaSClUA2YLEAdbWk5YSk9MQAA0BBZOVQ0ADwNLGlUAZwQXVQpaAlkvShhcDHsCFU5eXENaGkIZWg5nAyJQbVhiWR9BGlUNZwoWYl1dVF0%3D;__jdc=122270672;shshshfp=72ec41b59960ea9a26956307465948f6;rkv=V0700;__jda=122270672.930036140.-.1529979524.1529984840.85;__jdb=122270672.1.930036140|85.1529984840;shshshsID=f797fbad20f4e576e9c30d1c381ecbb1_1_1529984840145'}r=requests.get(url,headers=head)r.encoding='utf-8'html1=etree.HTML(r.text)datas=html1.xpath('//li[contains(@class,"gl-item")]')fordataindatas:try:p_price=data.xpath('div/div[@class="p-price"]/strong/i/text()')p_comment=data.xpath('div/div[5]/strong/a/text()')p_name=data.xpath('div/div[@class="p-namep-name-type-2"]/a/em/text()')iflen(p_price)==0:p_price=data.xpath('div/div[@class="p-price"]/strong/@data-price')url=data.xpath('div/div[@class="p-img"]/a/img')print(url)img_url=url[0].attrib['data-lazy-img']#print(p_price[0])##print(p_comment)print(str(p_name[0]))#print(url[0].attrib['data-lazy-img'])print(str(url[0].attrib['data-lazy-img']).split('/')[-1])#img_name=str(url[0].attrib['data-lazy-img']).split('/')[-1]img_name=str(class_num)+".jpg"class_num=class_num+1sql="insertgoods(id,name,price,url,num,type,class)VALUES("+str(class_num)+",%s,%s,%s,%s,%s,%s);"cursor.execute(sql,(p_name[0],p_price[0],img_dir+img_name,str(random.randint(10,30000)),type,str(class_f)))#傳值mit()pic=requests.get('http:'+img_url)#time.sleep(random.random())withopen(img_dir+img_name,'wb')asf:f.write(pic.content)print('--第{}張圖下載成功'.format(img_name))except:falit_num=falit_num+1if__name__=='__main__':importosnames=["T恤","衛(wèi)衣","針織衫","馬甲","西裝","漢服","健身服","運動褲","休閑褲","連衣裙"]forjinrange(0,11):class_num=900*jend_num=class_num+900ifnotos.path.exists(f"./clothesImage/{names[j]}/"):os.mkdir(f"./clothesImage/{names[j]}/")img_dir=f"./clothesImage/{names[j]}/"class_f=0type=names[j]key_word=urllib.parse.quote(names[j])URL='/s_new.php?keyword='+key_word+'&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq='+key_word+'&page='ifnotos.path.exists(img_dir):os.mkdir(img_dir)foriinrange(1,17):if(class_num==end_num):break#下面的print函數(shù)主要是為了方便查看當(dāng)前抓到第幾頁了#print('***************************************************')#try:print('First_Page:'+str(i))crow_first(i)print('Finish')time.sleep(random.randint(10,30))#exceptExceptionase:#print(e)#print('')#try:if(class_num==end_num):breakprint('Last_Page:'+str(i))crow_last(i)print('Finish')time.sleep(random.randint(10,20))#exceptExceptionase:#print(e)time.sleep(random.randint(20,40))print(falit_num)cursor.close()conn.close()#開啟DEBUG功能;便于調(diào)試

DEBUG=True訓(xùn)練數(shù)據(jù):圖4-1訓(xùn)練數(shù)據(jù)最初的網(wǎng)絡(luò)結(jié)構(gòu)中,仍然存在一些不足,訓(xùn)練的準(zhǔn)確率一直不高,所以進(jìn)行了一些優(yōu)化。優(yōu)化主要從以下方面進(jìn)行:為了防止網(wǎng)絡(luò)對于某類數(shù)據(jù)出現(xiàn)過擬合的情況,加入遺忘層,隨機(jī)丟棄一些神經(jīng)元。Dropout[11]具有隨機(jī)性,使得網(wǎng)絡(luò)在每次迭代中Dropout的神經(jīng)元不同,因此,可以將神經(jīng)元之間復(fù)雜的聯(lián)系降低,使得學(xué)習(xí)到的網(wǎng)絡(luò)更加魯棒。且使得優(yōu)化過程中,可能會避免參數(shù)在局部最優(yōu)處震蕩,提高性能。最終經(jīng)過多次調(diào)整,在第一層,第二層卷積層之間加入了一層遺忘率為0.2的遺忘層,在第一層,第二層全連接層之前各加入了一層遺忘率為0.25的遺忘層。4.3應(yīng)用實現(xiàn)為了更好地展示算法效果,簡單實現(xiàn)了一個服裝商城系統(tǒng)進(jìn)行應(yīng)用展示。系統(tǒng)包括登陸注冊、瀏覽商品和加入購物車等簡單功能。使用Django框架進(jìn)行開發(fā),基本架構(gòu)如圖所示:圖4-2應(yīng)用架構(gòu)系統(tǒng)架構(gòu)中,每層所負(fù)責(zé)的業(yè)務(wù)如下:(1)表現(xiàn)層:通過html頁面實現(xiàn);(2)業(yè)務(wù)模型層:對應(yīng)的是數(shù)據(jù)庫中每個表格的實體;(3)數(shù)據(jù)訪問層:用來訪問數(shù)據(jù)庫,對數(shù)據(jù)庫進(jìn)行操作,實現(xiàn)數(shù)據(jù)的持久化;(4)業(yè)務(wù)服務(wù)層;引用對應(yīng)的數(shù)據(jù)庫操作,封裝表示層的請求,每個請求封裝成服務(wù)類的方法;且該層提供相應(yīng)的接口供控制層調(diào)用;(5)數(shù)據(jù)中心:mysql數(shù)據(jù)庫和靜態(tài)文件系統(tǒng)。4.4配置及展示將推薦算法模塊接入到web應(yīng)用中,由于模型對大量圖片進(jìn)行計算耗時巨大。系統(tǒng)會用訓(xùn)練好的模型對商品圖片進(jìn)行計算,并在數(shù)據(jù)庫保存對應(yīng)的哈希碼。在后續(xù)的訪問中,相同哈希碼的推薦請求會直接從數(shù)據(jù)庫中獲?。簣D4-3數(shù)據(jù)庫配置settings.py。改文件包括數(shù)據(jù)庫和靜態(tài)文件目錄配置,內(nèi)容如下importos#工程目錄配置

BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#開啟DEBUG功能;便于調(diào)試

DEBUG=True

#允許訪問IP設(shè)置

ALLOWED_HOSTS=[]

#Applicationdefinition

INSTALLED_APPS=[

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'taobao.apps.TaobaoConfig',

]

MIDDLEWARE=[

'django.middleware.security.SecurityMiddleware',

'django.contrib.sessions.middleware.SessionMiddleware',

'mon.CommonMiddleware',

'django.middleware.csrf.CsrfViewMiddleware',

'django.contrib.auth.middleware.AuthenticationMiddleware',

'django.contrib.messages.middleware.MessageMiddleware',

'django.middleware.clickjacking.XFrameOptionsMiddleware',

]

#路由配置目錄設(shè)置

ROOT_URLCONF='taobao_img.urls'

#Html文件目錄配置

TEMPLATES=[

{

'BACKEND':'django.template.backends.django.DjangoTemplates',

'DIRS':[os.path.join(BASE_DIR,'templates')],

'APP_DIRS':True,

'OPTIONS':{

'context_processors':[

'django.template.context_processors.debug',

'django.template.context_processors.request',

'django.contrib.auth.context_processors.auth',

'django.contrib.messages.context_processors.messages',

],

},

},

]

WSGI_APPLICATION='taobao_img.wsgi.application'

#數(shù)據(jù)庫配置

DATABASES={

'default':{

'ENGINE':'django.db.backends.mysql',

'NAME':'taobao',

'USER':'root',

'PASSWORD':'*******',

'HOST':'localhost',

'PORT':'3306',

}

}

AUTH_PASSWORD_VALIDATORS=[

{

'NAME':'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',

},

{

'NAME':'django.contrib.auth.password_validation.MinimumLengthValidator',

},

{

'NAME':'django.contrib.auth.password_validation.CommonPasswordValidator',

},

{

'NAME':'django.contrib.auth.password_validation.NumericPasswordValidator',

},

]

LANGUAGE_CODE='zh-hans'

TIME_ZONE='Asia/Shanghai'

USE_I18N=True

USE_L10N=True

USE_TZ=False

#靜態(tài)文件目錄設(shè)置

STATIC_URL='/static/'

STATICFILES_DIRS=[

os.path.join(BASE_DIR,"static"),

'static/',

]應(yīng)用展示:圖4-4界面展示第五章結(jié)束語本文研究實現(xiàn)了一個基于服裝圖片進(jìn)行相似度推薦的系統(tǒng),針對服裝圖片采用卷積網(wǎng)絡(luò)提取圖像特征,另外結(jié)合稀疏自編碼hash網(wǎng)絡(luò)將高維特征轉(zhuǎn)化為哈希編碼的語義表征。以漢明距離為依據(jù)計算得到一組與輸入圖像hash層相似的圖片作為候選集,在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論