1 緒論
本文所研究設計的智能家居銷售數據采集與分析系統主要是為了提升數據的采集效率,并且實現及時采集到的線上電商平臺及線下店面的多重渠道銷售數據的采集與分析,精確地進行相關的數據采集并應用先進的數據挖掘算法進行分析挖掘,取得數據中潛藏的數據價值信息,例如一些數據分析所形成的銷售趨勢預測結果以及一些相應的消費者畫像結果等,并在后續的應用中針對企業的智能家居能夠取得促進發展的目的。智能家居的銷售數據分析與采集工作系統采用以上的設計方案能夠使智能家居企業逐步提升智能家居產品質量,這一方面可以通過基于智能家居數據采集與分析系統的快速數據采集與數據分析提升市場變化的反應程度和對市場機會的迅速抓取,另一部分能夠通過對大數據所獲得的數據價值分析的結果為智能家居企業中的產品的調整及營銷策略的研究提供相關的指導作用,提升企業資源的合理配置,最終能夠取得競爭優勢,逐步提升自身在智能家居行業的競爭地位。
1.2 國內外研究現狀
1.2.1國內研究現狀?
在大數據環境下,電商推薦系統的研究正逐漸增多,也有很多研究開發了各種各樣推薦系統的架構和算法來解決信息過剩和用戶個性化的沖突。現在所涉及到的推薦系統架構一般都至少分為應用層、服務層、算法層、緩存層和存儲層等多層結構,以期能利用多層結構高效地處理數據,提供相關聯的推薦服務。
1.2.2國外研究現狀?
國外推薦系統方面面臨著許多挑戰,尤其是用戶物品的打分數據稀疏問題。HanJie等研究指出模型基CF推薦系統預測的準確性受限于用戶與物品間評分的稀疏數據,混合方法結合輔助信息和評分數據通過文檔建模的手段來提高預測準確性[11]。
1.3 主要研究內容
從圖1.1技術路線圖可看出,本研究所做的主要工作為:基于LSTM神經網絡和協同過濾算法的智能家居銷售數據分析系統的具體設計與實現。其中通過需求分析確定用戶智能選擇產品時的痛苦環節、主要需求等,是系統設計的基礎數據。通過數據需求分析確定用戶表、商品表、評論表、收藏、瀏覽表的數據庫架構,使數據庫更加完善、高效。在算法設計中,采用LSTM結合Attention實現評論情感分析算法。處理商品評價信息的評論文本,挖掘出該評論中的情感傾向,以方便用戶的比對,幫助用戶更好地挑選合適商品。應用協同過濾與內容推薦的融合推薦算法,實現基于用戶行為、商品屬性等的商品推薦功能,使系統能更好地推薦商品,真正實現商品內容的推薦。除此之外,通過商品搜索、家居價格分析、商品對比、口碑詞頻分析等功能模塊的實現,以及通過管理員后臺進行商品管理、評論管理、用戶管理、系統設置的后臺管理,整體系統更加完善,提升了系統的靈活性和系統管理的效率。

圖 1.1技術路線
2 核心技術介紹
2.1.1 Django框架技術
Django是一個PythonWeb框架,最早發布于2005年,由AdrianHolvaty和SimonWillison提出。Django的目標是簡化開發復雜的網站的過程,采用MTV(Model-Template-View)結構來設計,其核心是代碼復用(少重復自己,即DRY)。
2.1.2 Request爬蟲技術
在智能家居銷售數據分析系統的設計與實現中,通過request庫對京東智能進行發起一個請求,從而獲取網頁內容和數據,在利用特定的網頁解析技術提取出我們想要的內容。
2.1.3 MySQL技術
在智能家居銷售數據分析系統中,利用MySQL存儲從京東中采集來的數據進行增、刪、改、查操作,但是想要實現該功能則需要進行數據表結構的建立以及定義字段的類型,設計數據庫的邏輯結構和物理結構,來保障數據完整性和統一性。
2.2.1 基于內容的推薦算法
內容推薦算法依據用戶的喜好歷史數據找到用戶的偏好內容特征后,在其他項目中發現與用戶喜歡的項目相似的項來推薦給用戶。

圖2.1 基于內容推薦算法示意圖
內容推薦算法大致流程如下,先用關鍵詞定義物品特點,即給物品貼上標簽;然后分析用戶歷史數據,找到用戶喜歡的物品特點;再將用戶喜好物品特點與商品特點進行匹配比較,推薦給用戶特征最相似的物品。
2.2.2 基于協同過濾的推薦算法
我們在購物過程中,會面對各種各樣的商品,很不方便選擇,那么我們就會去和興趣愛好相投的同伴,請他們為我們進行推薦,找到我們適合的商品。例2.1給出了協同過濾中推薦的過程:用戶C歷史喜歡的商品為a,而從用戶評分矩陣上可以看到喜歡a的用戶大部分也喜歡c,因此可以認為a和c在某種程度上是相似的,假設當前用戶C喜歡商品a,則用戶C很可能也會喜歡商品c。
表2.1 基于物品的協同過濾算法示意表格
用戶/商品 | 商品a | 商品b | 商品c |
用戶A | √ | √ | |
用戶B | √ | √ | √ |
用戶C | √ | 推薦 |
2.2.3 基于混合推薦的推薦算法
實際應用中混合推薦主要是將不同推薦算法進行混合,在一定程度上克服單一算法的不足。當數據規模增多、推薦系統常見問題發生以后,單一的推薦算法已經無法滿足用戶的需求。通過將不同推薦算法混合的方法,可以讓每個算法在某一領域發揮其作用來彌補另外一個算法的缺點,以此來優化提升推薦的結果以達到用戶需求。我們在實踐中常用幾種混合方法如下。
權重整合:給各種推薦策略分配特定的權重,通過對各物品的得分進行加權求和,從而生成推薦結果集.
長期短期記憶(longshort-termmemory,LSTM)作為RNN中一顆璀璨的明星,在時間序列模型中有許多必需的基本結構。它對RNN的門機制作了不少精妙的改進,解決了RNN遇到的經典長依賴問題,同時更好地捕捉了時間序列中長期變化過程。
2.4.1 開發工具
智能家居銷售數據分析系統的設計與實現使用了多個開發工具,其中包括:
MySQL:能存儲和管理數據,對web系統中實現數據的增刪改查,并為可視化提供數據支持,起到數據引擎的作用。
PyCharm:Python程序高效的編輯及調試工具,它具備強大的整合功能,能夠將各個不同的庫整合在一起,另外,還提供錯誤定位及追蹤的功能,幫助開發者快捷地解決問題。
這些開發工具的使用使系統設計開發變得更加便捷有效,實現對京東智能家居商品的采集、清理、分析、展示。通過boostrap前端的整合處理、MySQL數據庫存儲與維護、PyCharm開發工具,可以讓開發者快捷地完成具備完整功能強大性能的數據分析系統。
2.4.2 開發環境
本項目所需的Python版本要在3.7以上,操作系統Windows11,數據庫MySQL,數據庫管理工具Navicat,框架采用Django,其他的為機器學習的相關庫。
3 系統分析
3.1.1技術可行性?
在 Windows7 或 10 操作系統上,基于python3.12版本,使用pycharm軟件作為開發工具,并通過 Mysql 進行數據庫存儲;后臺管理系統的硬件環境為 PC 機,用戶只需使用任何可以聯網的電腦設備,通過瀏覽器即可訪問新聞管理系統。?
3.1.2經濟可行性?
一方面,只要一臺聯網的電腦,系統管理員都可以隨心所欲地進行管理,提高了工作效率,節省人力物力,只需具有一定打字的能力就可以,無需高學歷。另一方面,系統的制作成本低,可在現有的PC機上使用IDEA開發工具開發。
3.1.3操作可行性?
從管理角度看,只需一臺普通電腦就能完成網站信息的配置、輸入和更改,操作非常簡便且極具可行性。
3.1.4數據來源可行性
來源電商平臺的數據,京東、淘寶已經很普及了,使用也很廣,有代表性。
如下圖3.1系統功能圖所示,系統分為用戶模塊和管理員模塊。系統會通過python爬蟲從京東商城的家居分類中采集家居商品,包括商品名稱、類別、品牌、價格、評論等信息。
用戶功能包括:
2、用戶登錄與注冊:完成用戶身份的驗證、管理個人資料,以及保存瀏覽歷史和個人收藏,保障用戶信息安全并提供便捷的商品瀏覽體驗。
2、搜索引擎:支持高級搜索功能,提高用戶查找商品的效率與準確性。
3、家居價格分析:通過數據可視化展示價格趨勢,支持用戶篩選分類進行價格分析,幫助用戶做出明智購買決策。
4、商品比較:通過比較商品的參數、價格以及評論等信息,協助用戶更全面地了解不同商品的優點,從而做出更加明智的購買選擇。
商品推薦:根據用戶過去的行為和商品的特征,使用協同過濾算法,從用戶間和商品間的相似性來給出商品推薦。基于用戶的歷史打分、歷史購買行為,尋找目標用戶所感興趣的相關用戶,根據相關用戶的喜好來針對目標用戶給出相關家居商品的推薦。
6、家居評論情感分析:利用自然語言處理,采用長短期記憶網絡(LSTM)算法分析評論情感,了解不同產品的用戶滿意度。
7、家居口碑詞頻分析:統計評論中的關鍵詞,揭示產品特色及用戶關注點。
8、喜歡與收藏功能:用戶可以收藏感興趣的商品,便于商品的對比以及個性化的家居商品推薦。
管理員功能包括:
1、商品管理:維護商品信息,支持商品名稱、狀態和價格等信息的編輯和刪除,維護商品庫的準確性。
2、評論管理:維護網站良好形象,處理不合規內容,提高情感分析的準確率以及用戶滿意度。
3、用戶管理:對用戶個人信息進行管理與維護,確保系統安全、信息安全與數據完整性。
系統設置:支持系統參數配置,確保系統運行穩定與高效。
圖 3.1系統功能圖
除了系統本身的實用性功能,在符合基本功能前提下,要考慮到用戶的主觀體驗性,非功能需求將發揮重要作用,非功能需求設計時要把這部分內容考慮進去。
系統的業務流程涵蓋了數據的收集、數據的預處理、數據的分析與建模以及推薦結果的展示。
業務流程圖如圖3.2所示:
圖3.2?系統業務流程圖
4 系統設計
系統采用前端、中間層和數據層的三層架構設計,包括表現層、業務邏輯層和數據層,采用Django框架進行表現層的開發,同時用響應式開發保證在不同端均具有良好的顯示性。系統的架構示意圖見圖4.1:
圖4.1?系統架構圖
本系統對照功能實現,用戶模塊也就是系統使用者擁有登錄注冊、數據采集、數據可視化、推薦等功能。
4.2.1 數據采集功能
數據采集模塊使用網絡爬蟲技術對京東智能家居產品的數據、評論進行數據抓取、解析、存儲。數據采集流程圖如圖4.2所示。
圖4.2采集流程圖
4.2.2 注冊登錄功能
用戶注冊及登錄流程:游客注冊時,在注冊頁面填寫用戶名、密碼、郵箱,點擊提交按鈕,前端將這些注冊信息發送到后端服務器,后端調用注冊程序進行注冊驗證,如果驗證成功,注冊成功。具體如圖4.3。
圖4.3注冊登錄流程圖
4.2.3 推薦功能
推薦:在登錄完成用戶成功登錄后點擊進入推薦界面,前端發送用戶的推薦商品請求至后臺服務器,后端利用商品推薦程序,程序中載入數據庫中的用戶推薦數據,輸出推薦商品列表,將數據返回給前端頁面,前端渲染后,向用戶輸出推薦的商品列表。推薦流程圖如圖4.4所示。
圖4.4推薦流程圖
4.2.4 數據可視化功能
可視化過程:用戶成功登錄系統后,進入可視化界面,前端會將用戶的請求打包并傳送到后端服務器。后端調用可視化服務中的相關程序,該程序從數據庫中加載數據,對數據進行分詞、統計等處理,生成詞云、柱狀圖、地圖等圖表。生成的圖表傳送到前端頁面,經過數據渲染后,圖表將展示給用戶。如圖4.5所示,即為可視化流程圖。
圖4.5?數據可視化流程圖
4.3.1 邏輯設計
根據該系統的數據庫表的設計,將系統的數據種類歸分為用戶、京東商品信息、評論信息、收藏信息4個實體。
4.3.2 物理設計
本數據分析系統數據邏輯結構設計如下:
表4.1?用戶表(userinfo)
字段名 | 類型 | 長度 | 說明 |
id | int | 0 | 用戶編號(主鍵、自增) |
username | varchar | 255 | 用戶名 |
password | varchar | 255 | 密碼 |
text | 0 | 郵箱 | |
content | text | 0 | 簡介 |
address | text | 0 | 地址 |
phone | text | 0 | 手機號 |
表4.2 商品信息表
字段名 | 類型 | 長度 | 說明 |
名稱 | TEXT | 255 | |
價格 | REAL | 255 | |
鏈接 | TEXT | 255 | |
店鋪id | INTEGER | 255 | |
店鋪名 | TEXT | 255 | |
img | TEXT | 255 | |
評論數 | INTEGER | 255 | |
品牌 | TEXT | 255 |
表4.3 商品評論信息表
字段名 | 類型 | 長度 | 說明 |
shop_id | INTEGER | 255 | shop_id |
評論id | INTEGER | 255 | 評論id |
時間 | TEXT | 255 | 時間 |
內容 | TEXT | 255 | 內容 |
地區 | TEXT | 255 | 地區 |
用戶名 | TEXT | 255 | 用戶名 |
會員等級 | TEXT | 255 | 會員等級 |
評分 | integer | 255 | 評分 |
產品顏色 | TEXT | 255 | 產品顏色 |
表4.4收藏表
字段名 | 類型 | 長度 | 說明 |
id | integer | 0 | |
uid | integer | 0 | |
sid | integer | 0 |
本章節主要對系統功能的各個模塊的功能進行具體設計,給出各個數據庫的邏輯結構和物理結構描述以及設計數據庫的表名和字段的屬性。
5 基于LSTM模型的情感分析實現
本文的情感分類任務就是根據文本數據預測文本的情感傾向,情感類別分為負、中、正3類。通過構建以LSTM(longshort-termmemorynetworks)為核心模型實現情感分類。。
情感分類任務主要是利用LSTM模型對文本進行分類。LSTM是被普遍采用的遞歸神經網絡(RNN),它能夠處理包括文本在內的時序數據,具有捕捉文本中長距離依賴的能力,這對于情感分析非常重要,情感常常存在上下文,只有考慮到上下文,我們才能分析清楚其表現出來的感情色彩。
LSTM 模型的結構包括:
在輸入層,文本由每個單詞的 Word2Vec 向量構成,并作為 LSTM 的輸入。
LSTM 層:負責處理輸入文本的時序依賴。
全連接層(FC層):把 LSTM 的最終隱藏狀態傳送到全連接層以進行分類。
此外,采用混淆矩陣來展示每個類別各自的分類結果,如圖5.1所示,采用ROC曲線來可視化模型的表現,ROC曲線是表示分類器在不同閾值下的表現情況,可直觀地反應出模型的分類效果,如圖5.2所示。
圖5.2?混淆矩陣圖
圖5.3?ROC曲線圖
6 混合推薦算法的設計及實現
當前常見的推薦算法都存在各自的缺陷,主要包括以下幾個方面:
(1)冷啟動問題:冷啟動問題可以細分為用戶冷啟動、物品冷啟動、系統冷啟動。一個新用戶加入系統,因為沒有對他做任何操作或者交互,因此無法通過分析他的數據得知他的興趣信息,無法對可能喜歡的內容給與他,稱為用戶冷啟動問題。而物品冷啟動問題是指一個新物品加入系統,因為用戶沒對他評價或者其他操作而無法得到推薦。
(2)稀疏性問題:在推薦系統的實際應用中,由于用戶數量眾多且物品種類繁多,用戶不可能對所有物品進行操作,而相同的物品也不可能被所有用戶評價。因此,與用戶相關聯的物品僅占所有物品總數的一小部分。由用戶和物品構成的評分矩陣因此會呈現稀疏特性。這種數據稀疏性會對推薦系統的性能產生重大影響,因為協同過濾算法的基本原理依賴于用戶物品評分矩陣。目前,主流的推薦算法通過減少數據維度來應對這一問題。
(3)實時性問題:用戶及物品數量太多,在項目中計算相似度以及后期進行預測評分是依賴用戶的歷史行為進行的。因此,只能按照固定的周期更新數據生成新的推薦列表。導致推薦系統不能實現根據用戶的實時行為為他推薦,嚴重影響用戶感受。
計算用戶商品評分矩陣主要運用了用戶協同過濾(UserCF)和物品協同過濾(ItemCF)兩種推薦技術。
6.2.1 ?基于用戶協同過濾設計思路
用戶協同過濾算法的基本思想就是:通過比較用戶之間的相似度,將同目標用戶類似度較高的用戶所評分過的商品對目標用戶進行推薦。先將數據庫中的所有用戶的評分信息提取出來,并將用戶評分數據組織成字典保存在計算機中。用戶推薦的協同過濾算法流程見圖6.1,用戶與商品的評分矩陣見表6.1。
圖6.1?基于用戶協同過濾算法流程圖
表6.1 用戶-商品評分矩陣
商品1 | 商品2 | 商品3 | ··· | 商品4 | |
用戶A | 4 | 4 | - | ··· | 5 |
用戶B | - | 4 | 2 | ··· | - |
··· | ··· | ··· | ··· | ··· | ··· |
用戶C | 5 | - | 4 | ··· | 3 |
表6.2 用戶相似度矩陣
用戶A | 用戶B | ··· | 用戶C | |
用戶A | 1 | 0.82 | ··· | 0.45 |
用戶B | 0.82 | 1 | ··· | 0.67 |
··· | ··· | ··· | ··· | ··· |
用戶C | 0.45 | 0.67 | ··· | 1 |
6.2.2 ?基于物品協同過濾設計思路
物品協同過濾方法基本原理:計算商品之間的相似度,通過在目標用戶已經評分的商品中推薦相似的商品。
表6.3 商品共現矩陣
商品1 | 商品2 | 商品3 | ··· | 商品4 | |
商品1 | - | 15 | 8 | ··· | 10 |
商品2 | 15 | - | 5 | ··· | 3 |
··· | ··· | ··· | ··· | ··· | ··· |
商品3 | 8 | 5 | - | ··· | 7 |
表6.4 商品相似度矩陣
商品1 | 商品2 | ··· | 商品3 | |
商品1 | 1 | 0.75 | ··· | 0.45 |
商品2 | 0.75 | 1 | ··· | 0.32 |
··· | ··· | ··· | ··· | ··· |
商品3 | 0.45 | 0.32 | ··· | 1 |
圖6.2?基于物品協同過濾算法流程圖
6.2.3??混合推薦算法的設計思路
混合推薦算法結合用戶為基礎及物品為基礎的協同過濾算法優勢,產生更精準的推薦結果,讓用戶基礎的協同過濾法(UserCF)利用用戶間相似度來推薦其他用戶對具有用戶本人相似興趣的物品;以及物品基礎的協同過濾方法(ItemCF)利用物品間的相似度來推薦與其他已評價的物品類似的物品。
對于混合推薦體系,可以對兩種推薦策略進行加權,根據用戶的行為習慣、熱門程度給兩種不同的方法賦予不同權重。根據用戶評分,對用戶的商品進行推薦,同時用UserCF和ItemCF進行推薦并整合兩種推薦的結果得到混合推薦列表。動態加權的混合推薦算法中,根據用戶行為的特征,為每一個用戶的推薦方法的UserCF與ItemCF的權重比例自動分配。其動態加權策略流程見圖6.3。
圖6.3 動態加權策略流程圖
整個推薦部分算法流程圖如下圖6.4所示:
圖6.4推薦算法流程圖
7 系統實現
登錄注冊采用Django表單和session,結合UserMixin來完成認證。注冊成功窗口前端如圖7.1所示。
圖7.1 用戶注冊頁面
圖7.2 用戶登錄頁面
數據展示:在這個板塊,可以通過關鍵詞搜索特定的信息,還可以分頁顯示。如下圖7.3所示。
圖7.3?數據展示頁面
7.3.1 ?價格分布可視化
價格分布圖,它能清楚的了解不同品牌不同價格段智能生活類商品的數量所占比例,其前端的按鈕會顯示對應的價格類別,價格的采集依賴于后臺調用數據庫中相應品牌所有商品的價格,如圖7.4:
圖7.4?商品價格區間頁面
7.3.2??地圖分析可視化
地區分布密度采用地圖分析功能實現,首先選擇會員等級,后端查詢同等級會員的地區數據,統計各城市用戶人數,見圖7.5。
圖7.5?購買用戶分布頁面
7.3.3??評論數分析可視化
各品牌下各店鋪評論量排名用漏斗圖表示。通過前段獲取用戶品牌輸入,并以此篩選該品牌品牌店鋪所帶評論,排序計評數倒敘排序,截取前20項。見圖7.6。
圖7.6?各品牌評論占比頁面
7.3.4??類型分析可視化
餅圖用于顯示類型類型的分析結果(如類型為“旗艦店”“專賣店”等的品牌占比),用戶單擊類型關鍵字后,后端按店鋪名字模糊匹配篩選包含關鍵字的記錄,并統計各品牌出現頻率(生成品牌-頻數)。見圖7.7。
圖7.7?各類智能家居占比頁面
7.3.5??詞云分析可視化
詞云分析模塊將顯示用戶所選店鋪的評論的高頻詞云。如圖7.8。
圖7.8?詞云頁面
7.4.1??推薦商品功能
默認推薦和協同過濾推薦兩種方式推薦內容。默認推薦方式是利用隨機取值,每次調用df.sample(n=4),取4家店鋪作為推薦,滿足新用戶或空偏好用戶的基礎場景。動態顯示頁塊效果如圖7.9所示):
圖7.9?推薦頁面
7.4.2??我的收藏功能
我的喜歡通過用戶主動點擊標記感興趣的品牌商店,由前端發送請求到/recommend?c=品牌&p=商店&n=s(店鋪名),調用view后端get_data函數,將request.user.id與店鋪ID(s)存入表tb_collect;如圖7.10所示:
圖7.10商品收藏
(1)用戶登錄測試用例,如表7.1所示。
表7.1 用戶登錄測試用例
序號 | 輸入 | 期望結果 | 實際結果 |
1 | 寫入空白符 | 警告提示 | 警告提示 |
2 | 寫入正確格式的用戶名、寫入不符合數據庫的密碼 | 提示密碼不符合 | 提示密碼不符合 |
3 | 寫入正確格式的用戶名、寫入符合數據庫的密碼 | 順利登入系統 | 順利進入系統首頁 |
(2)用戶注冊用例,如表7.2所示。
表7.2 用戶注冊測試用例
序號 | 輸入 | 期望結果 | 實際結果 |
1 | 用戶名是空白符 | 警告提示用戶名不合規范 | 警告提示用戶名錯誤 |
2 | 密碼是空白符 | 警告提示密碼不合規范 | 警告提示密碼錯誤 |
3 | 寫入符合規范的字符 | 順利登入系統 | 順利登入系統 |
(3)可視化用例,如表7.3所示。
表7.3 可視化測試用例
序號 | 輸入 | 期望結果 | 實際結果 |
1 | 測試柱狀圖生成 | 生成的柱狀圖與預期結果一致,包括正確的坐標軸、標簽和顏色等 | 生成的柱狀圖,包括正確的坐標軸、標簽和顏色等 |
2 | 測試餅圖生成 | 生成的餅圖與預期結果一致,包括正確的扇區比例、標簽和顏色等。 | 生成的餅圖,包括正確的扇區比例、標簽和顏色等。 |
3 | 測試折線圖生成 | 生成的折線圖與預期結果一致,包括正確的數據點、坐標軸和顏色等。 | 生成的折線圖,包括正確的數據點、坐標軸和顏色等。 |
4 | 測試表格生成 | 生成的表格與預期結果一致,包括正確翻頁。 | 生成的表格,包括正確翻頁。 |