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