張麗 周東


【摘 要】近年來,隨著我國電子商務領域的高速發展,有關商品描述、商品評價等電商語言文本信息也隨之大量產生。如何對海量的電商語言文本數據進行高效地處理成為行業一個亟待解決的問題。針對這一問題,本文利用機器學習和統計學的相關原理,將Redis緩存處理方法與數據庫處理方法相結合,提出一種針對電商語言文本數據的機器學習分頁數據處理方法,以提高對電商海量語言文本數據的處理效率。
【關鍵詞】電子商務;語言文本;數據處理
中圖分類號: TP391.1;F724.6 文獻標識碼: A 文章編號: 2095-2457(2019)22-0074-002
DOI:10.19694/j.cnki.issn2095-2457.2019.22.032
0 引言
2018年5月28日,習近平主席在中國科學院第十九次院士大會、中國工程院第十四次院士大會上指出“進入21世紀以來,全球科技創新進入空前密集活躍的時期,新一輪科技革命和產業變革正在重構全球創新版圖、重塑全球經濟結構”。隨著我國社會科技的進步,創新型經濟越來成為未來社會的大趨勢。近十年來,以互聯網為媒介的電子商務作為一種創新型的商業運營模式得到了飛速的發展,出現了淘寶、京東、拼多多、蘇寧易購、美團等巨頭電商企業。網上購物、網上貿易等商業活動日漸成為人們生活中不可分割的一部分,隨之而來是海量的商品信息從線下轉移到線上,有關商品描述、商品評價等電商語言文本信息也隨之大量產生,如何對海量電商語言文本數據進行高效處理成為行業所面臨的一個較大的挑戰。近年來,相關的論文(如趙春雷等 2012;曾超宇等 2013;程學旗等 2014;徐國虎等2013;張素智等 2015)、書籍(如付磊等 2017;于君澤等 2018)、專利(如廖耀華等 2018)等成果為大數據處理、緩存處理以及電商數據處理等提供了有價值的參考。
1 電商語言文本的處理
一般情況下,電商網站需要將每一件商品包括商品的標題、編號、價格、顏色、版本、功能、所屬類目以及用戶對該商品的評價等語言文本信息展示給消費者查看,而這些商品信息則以數據的形式存儲在網站的后臺系統。在電商文本信息展示的過程中,因為量大,給高性能分頁展示帶來較大挑戰,所以要對這些數據進行處理。譬如,電商網站中的某個類目有20000個商品需要在網站的前臺進行展示,一頁展示20條商品信息,那么20000條信息需要分1000頁展示,當用戶點擊某一頁時,后臺將對應的該頁數據返回到前臺并展示,這一過程行業通常定義為數據同步,用于對語言文本這種數據進行處理。現有的數據同步主要有以下三種方法:
a)數據庫直接同步法
用戶在點擊某一頁數據的時候,發送請求后臺,后臺根據頁號和每頁展示的數量等參數直接從數據庫里面把商品數據提取傳到前臺并展示。后臺運營人員新增的數據也會直接同步到數據庫。該方法的具體運作流程如圖1所示。
但是因為網站前臺用戶在分頁訪問請求時,直接訪問數據庫,沒有緩存的參與,所以該方法存在以下缺陷:
第一,性能較差。每次分頁都要查詢一次數據庫才能拿到數據,相比讀取緩存方式,其速度慢且效率低,如果并發訪問量大,數據庫則難以支撐。
第二,安全性較差。請求返回的數據從數據庫直接獲取,如果有惡意用戶發惡意請求進行攻擊,則會導致數據庫癱瘓。
b)緩存直接同步法
該方法主要是以memcache或者redis為載體的緩存同步法。其主要運作流程如圖2所示。
緩存直接同步法將數據庫數據全部同步到緩存,用戶在發送分頁請求的時候,全部從緩存里面提取數據,不和數據庫有任何交互,相比第一種方法,其速度較快,性能較好,并且因為前端數據分頁請求不和數據庫交互,安全性也得到了提升,但是該方法對緩存容量要求較高。如果需要分頁的數據量很大,同時一條數據包含的字段信息較多,就對緩存容量有很高的要求。如果使用大容量緩存,在成本上是較為昂貴的。
c)緩存與數據庫結合同步法
該方法主要將緩存方式與數據庫方式結合起來進行同步。當有用戶訪問某個分頁的時候,如果緩存里面不存在該分頁的內容,就將該頁面的數據從數據庫同步到緩存,并同時同步到前臺,如果存在就不訪問數據庫,直接從緩存里面取。該方法的運作流程如圖3所示。
該方法是基于單純數據庫同步與單純緩存同步的基礎之上的一種同步方法,相比第一種方法,因為引入了緩存機制,性能和安全都有所提升。相比第二種方法,該方法一定程度上節省了緩存的容量。在數據量很大、分頁數非常多時,對于沒有點擊到的分頁,無需載入緩存。但是某些僅僅被用戶點擊幾次的中間頁面也要在第一次分頁請求后加入緩存,而對于之后其他請求量更大的分頁,緩存容量不足以支持時,就只能從數據庫中直接同步。這樣一來就會導致訪問量很小的分頁頁面數據占用緩存空間,造成了緩存資源的浪費,而訪問量大的則無法利用緩存,使得數據同步性能下降,緩存與數據庫利用不平衡。
2 基于機器學習的分頁數據Redis同步法
在綜合分析了現有數據同步三種方法的優點和缺點基礎上,我們利用機器學習和統計學的相關原理,將Redis緩存處理方法與數據庫處理方法相結合,提出一種針對電商語言文本數據的機器學習分頁數據處理方法,目的是提高語言文本數據的處理效率。該方法,一方面是基于數據庫與緩存同步相結合方法之上,該方式確保了數據同步的性能、安全性及容量利用率的提升;另一方面,引入了根據用戶的行為統計數據的機器學習方法,解決了原緩存同步與數據庫同步相結合方法在海量數據處理時緩存容量不足、緩存資源浪費以及緩存與數據庫利用不平衡從而導致同步性能下降的缺陷。
在用戶發生頁面分頁請求的時候,引入一個頁面統計計數器,數據同步行為會依賴這個記數器,該記數器周期固定地記錄每個頁面所有用戶的請求累加次數n,并設定一個記數的閾值常量THRESHOLD,這個n >=THRESHOLD時就觸發數據庫中該頁對應的數據同步到Redis,用戶再次請求該頁數據的時候就從Redis獲取。當在固定周期時間內統計該頁請求閾值n< THRESHOLD時,則將該頁的緩存數據刪除并釋放空間,數據請求同步再次改為從數據庫中獲取,避免了在該頁訪問用戶量很少的情況下還要將該頁數據從數據庫中同步到Redis,這樣不僅減少了數據量過大時Redis空間的壓力,同時,節省昂貴的Redis資源,并將數據庫與Redis的使用進行了合理均衡的分配,進一步提高了同步的性能。詳細方案步驟如下: