徐 儒
(長江師范學(xué)院計(jì)算機(jī)工程學(xué)院,重慶涪陵 408100)
隨著科技的進(jìn)步和生活節(jié)奏的加快,人們由于各種壓力或不良生活習(xí)慣,而出現(xiàn)身心健康問題。合理飲茶是保證人體健康、提高生活品質(zhì)的一種途徑和手段[1]。市面上茶葉種類繁多、品牌多樣,不同類別茶品在營養(yǎng)和功效等方面千差萬別,相同類別不同品牌的茶品在作用和口味等方面也不盡相同。相對(duì)而言,大多數(shù)飲茶用戶僅僅停留在單一的飲用方面,對(duì)茶品的特征、營養(yǎng)、功效,茶葉的用量、水溫、時(shí)間等缺乏關(guān)注,或者只關(guān)注自己熟知的茶葉,而對(duì)其它茶品知識(shí)知之甚少。大數(shù)據(jù)時(shí)代,充分利用數(shù)據(jù)挖掘和個(gè)性化推薦技術(shù),根據(jù)用戶偏好推薦茶品信息很有意義。
目前,大多茶飲相關(guān)研究需用戶直接參與,且重點(diǎn)在口感或營養(yǎng)推薦上,而用戶茶飲偏好自動(dòng)獲取相關(guān)研究較少。文獻(xiàn)[2]運(yùn)用電子鼻與電子舌聯(lián)用技術(shù)對(duì)信陽毛尖茶茶葉揮發(fā)性氣味和茶湯滋味的茶多酚、咖啡堿含量成分進(jìn)行檢測分析;文獻(xiàn)[3]對(duì)茶葉色香味品質(zhì)評(píng)價(jià)進(jìn)行研究,從色澤、香氣和滋味3 個(gè)方面歸納近年來茶葉品質(zhì)評(píng)價(jià)新方法;文獻(xiàn)[4]針對(duì)智能感官分析技術(shù)對(duì)茶葉品質(zhì)檢測進(jìn)行研究;文獻(xiàn)[5]設(shè)計(jì)茶飲味覺分析評(píng)價(jià)系統(tǒng),通過檢測各種味物質(zhì)和人工脂膜之間的靜電作用或疏水性相互作用產(chǎn)生的膜電勢變化,實(shí)現(xiàn)對(duì)茶飲味道的評(píng)價(jià);文獻(xiàn)[6]設(shè)計(jì)一種利用茶飲機(jī)法自動(dòng)識(shí)別茶包種類的系統(tǒng),通過顏色、溫度和流量等傳感器分別檢測茶包顏色、水溫和水量等參數(shù)。本文利用物聯(lián)網(wǎng)處理技術(shù),提出一種新的個(gè)性化飲茶偏好知識(shí)獲取方法,該方法主要從茶葉用量、水溫、時(shí)間與次數(shù)等進(jìn)行研究,通過物聯(lián)網(wǎng)傳感器技術(shù)采集用戶飲茶數(shù)據(jù),提取出個(gè)性化飲茶特征,利用數(shù)據(jù)動(dòng)態(tài)分割法獲取用戶飲茶偏好上下文,從而建立準(zhǔn)確的用戶飲茶信息庫,實(shí)現(xiàn)對(duì)用戶信息呈現(xiàn)或茶品推薦等功能。
用戶飲茶偏好主要指用戶在一定時(shí)間段內(nèi),對(duì)某樣茶品或某類茶品的食用情況。根據(jù)已有文獻(xiàn)可知,不同茶品在飲茶過程中的基本要求和方式手法雖有所不同,用戶個(gè)性需求、行為特征和個(gè)人偏好也千差萬別,但歸納起來,可以通過茶葉用量、水溫、沖泡時(shí)間和次數(shù)這3 個(gè)關(guān)鍵參數(shù)加以反映。
茶葉種類繁多,類別不同其用量也各異,泡一壺好茶,掌據(jù)茶葉用量是關(guān)鍵。每次茶葉用量多少并無統(tǒng)一的固定標(biāo)準(zhǔn),主要受茶葉種類、茶具大小、年齡結(jié)構(gòu)、飲茶歷史以及飲用習(xí)慣等諸多因素影響。鑒于用戶單次飲茶的茶葉用量不會(huì)太大,飲茶用量可以通過壓力感應(yīng)方式稱重獲取。先用茶勺從茶盒中提取待飲用的茶葉,然后將茶勺中的茶葉倒入器皿中,通過稱重方式進(jìn)行用量獲取,或者將茶盒中的茶葉直接倒入器皿中進(jìn)行用量稱重。這兩種方式雖然都實(shí)現(xiàn)了對(duì)茶葉用量的獲取,但存在諸多弊端,主要表現(xiàn)在:
(1)忽略了用戶飲茶體驗(yàn)。用戶在整個(gè)取茶過程中,需分兩步操作:①將準(zhǔn)備飲用的茶葉放在器皿中進(jìn)行稱重;②將器皿中稱重后的茶葉放入茶具沖泡飲用。第一步實(shí)際操作起來很不方便,在稱重之前既要準(zhǔn)備器皿,還要保證器皿在壓力傳感器端處于初始值的清零狀態(tài),既不符合用戶飲茶習(xí)慣,也給用戶帶來較差的飲茶體驗(yàn);
(2)對(duì)器皿清潔度要求高。茶葉屬于直接食用食品,茶葉稱重的器皿對(duì)清潔度要求頗高,稍不注意就容易引起食品污染。
為了充分考慮用戶的飲茶習(xí)慣,系統(tǒng)采用在托盤底部布置壓力傳感器,在提取茶葉用量之前,通過壓力傳感器采集一次茶盒和茶葉的傳感器數(shù)據(jù),當(dāng)用茶勺取出茶葉放入茶具后,再采集一次茶盒和茶葉的傳感器數(shù)據(jù),通過兩次傳感器數(shù)據(jù)的絕對(duì)差值,即可準(zhǔn)確采集到本次用戶的茶葉用量。通過對(duì)這些數(shù)據(jù)的分析處理,就可獲取用戶一次飲茶過程中對(duì)茶葉用量的食用情況。
考慮到壓力傳感器對(duì)壓力十分敏感,在稱重過程中難免出現(xiàn)偏移量誤差,因此,系統(tǒng)在托盤底部均勻布置3 個(gè)壓力傳感器,采用單位時(shí)間內(nèi)多個(gè)壓力傳感器采集數(shù)據(jù)求平均的方法,獲取準(zhǔn)確的茶葉用量。
用戶飲茶偏好用量獲取與處理算法思想可以表述為:
Step1:建立數(shù)組集合ArrayWeight={ArrayWeight1,Ar?rayWeight2,ArrayWeight3},用于存放各壓力傳感器采集的茶盒和茶葉數(shù)據(jù),其中,ArrayWeighti表示第i壓力傳感器采集數(shù)據(jù)(1≤i≤3);
Step2:系統(tǒng)初始化ArrayWeight=Ф,初始化茶葉用量WeightNum=0,初始化壓力測試監(jiān)視哨newFlags=false,表示之前接收的傳感器數(shù)據(jù)已作處理,將要從傳感器接收新數(shù)據(jù);
Step3:采集一次傳感器數(shù)據(jù);
Step4:初始化ArrayWeight=Ф,分別將3 個(gè)壓力傳感器采集到的數(shù)據(jù)存入ArrayWeight 集合中,即ArrayWeight[3]={第1 個(gè)壓力傳感器采集數(shù)據(jù),第2 個(gè)壓力傳感器采集數(shù)據(jù),第3 個(gè)壓力傳感器采集數(shù)據(jù)},并對(duì)各壓力傳感器數(shù)據(jù)求平均值,將其存入WeightNum 中,即:WeightNum=,同時(shí)修改壓力測試監(jiān)視哨狀態(tài)newFlags=true;
Step5:判斷newFlags 是否為真,若為真,則執(zhí)行Step3,若為假則執(zhí)行Step5;
Step6:輸出WeightNum,同時(shí)修改壓力測試監(jiān)視哨狀態(tài)newFlags=false;
Step7:結(jié)束。
系統(tǒng)通過布置在茶具底部的不銹鋼防水溫度傳感器,可以采集到用戶泡茶過程中的水溫傳感器數(shù)據(jù),對(duì)這些數(shù)據(jù)進(jìn)行處理,可以獲取用戶一次泡茶過程中對(duì)水溫的需求情況。由于受氣候、季節(jié)、時(shí)辰等諸多因素影響,泡茶過程中的茶水溫度并非恒定不變,其具有實(shí)時(shí)波動(dòng)的動(dòng)態(tài)變化特征,而溫度傳感器芯片對(duì)溫度變化十分敏感,具體表現(xiàn)為溫度感應(yīng)器的輸出數(shù)值在一定范圍內(nèi)上下波動(dòng),而最大溫度值和最小溫度值均不是泡茶水溫的真實(shí)體現(xiàn),這就要求在實(shí)時(shí)獲取的傳感器數(shù)據(jù)中,對(duì)上下波動(dòng)的最值進(jìn)行“噪點(diǎn)”去除處理。基本思路為:將傳感器捕獲到的數(shù)據(jù)存儲(chǔ)于動(dòng)態(tài)數(shù)組中,并按照時(shí)間段將動(dòng)態(tài)數(shù)組劃分成不同的段,每段對(duì)應(yīng)一定時(shí)間內(nèi)較為穩(wěn)定的溫度傳感器數(shù)據(jù),通過對(duì)每個(gè)段內(nèi)的傳感器數(shù)據(jù)求平均值,即可得到較為準(zhǔn)確的溫度傳感器數(shù)據(jù);通過計(jì)算相鄰兩個(gè)分段的均值差,可求出水溫變化量。
在個(gè)性化飲茶偏好的時(shí)間特征提取過程中,主要通過鬧鐘定時(shí)方式獲取茶葉沖泡的準(zhǔn)確時(shí)間和合適次數(shù)。
系統(tǒng)采用三層結(jié)構(gòu)設(shè)計(jì),實(shí)現(xiàn)對(duì)用戶個(gè)性化飲茶偏好的知識(shí)獲取,整體架構(gòu)如圖1 所示。

Fig.1 Design of the overall system architecture圖1 系統(tǒng)整體架構(gòu)設(shè)計(jì)
(1)物理層。主要負(fù)責(zé)傳感器感知元器件設(shè)計(jì)與部署,壓力傳感器主要負(fù)責(zé)對(duì)用戶飲茶用量的數(shù)據(jù)采集和特征提取。壓力傳感器的基本設(shè)計(jì)和部署為:在托盤底部布置3 個(gè)壓力傳感器,均勻分布在盤底四周,大致呈等三角形放置,以便托盤及盤上的物體重量能夠均勻地被3 個(gè)傳感器捕獲,物體重量呈現(xiàn)為3 個(gè)壓力傳感器數(shù)值和的平均值;當(dāng)壓力傳感器采集到數(shù)據(jù)后,將采集數(shù)據(jù)進(jìn)行模數(shù)轉(zhuǎn)換并提交給ZigBee 傳感器節(jié)點(diǎn)處理單元;傳感器節(jié)點(diǎn)處理單元主要負(fù)責(zé)對(duì)本身采集到的信息和其它節(jié)點(diǎn)轉(zhuǎn)發(fā)給它的信息進(jìn)行初步數(shù)據(jù)處理和信息融合,然后以相鄰節(jié)點(diǎn)接力傳送方式將數(shù)據(jù)傳遞到ZigBee 協(xié)調(diào)器節(jié)點(diǎn);協(xié)調(diào)器節(jié)點(diǎn)主要協(xié)調(diào)網(wǎng)絡(luò)建立和接收并處理,將各采集節(jié)點(diǎn)的數(shù)據(jù)通過RS232 串口通訊的方式傳遞到PC 端,完成ZigBee 協(xié)議的無線通信、交換控制消息和收發(fā)采集數(shù)據(jù)。壓力傳感器設(shè)計(jì)部署如圖2 所示。

Fig.2 Design and deployment of pressure sensors圖2 壓力傳感器設(shè)計(jì)部署
溫度傳感器主要負(fù)責(zé)水溫的數(shù)據(jù)采集和特征提取,其基本原理與壓力傳感器設(shè)計(jì)部署類似。
(2)數(shù)據(jù)層。數(shù)據(jù)層主要對(duì)采集的原始數(shù)據(jù)進(jìn)行分析,抽象出個(gè)性化飲茶偏好的特征信息并存入數(shù)據(jù)庫,從而建立準(zhǔn)確的用戶飲茶信息庫。
(3)應(yīng)用層。應(yīng)用層主要根據(jù)用戶需求進(jìn)行軟件編程,實(shí)現(xiàn)特定功能。例如,對(duì)數(shù)據(jù)層數(shù)據(jù)經(jīng)過數(shù)據(jù)規(guī)約、數(shù)據(jù)清理、數(shù)據(jù)變換、數(shù)據(jù)挖掘、模式評(píng)估、知識(shí)表示等環(huán)節(jié)和操作[7],從而挖掘出用戶個(gè)性化飲茶偏好,并將數(shù)據(jù)挖掘所得到的分析信息以可視化的方式呈現(xiàn)給用戶,或作為新的知識(shí)存放在知識(shí)庫中,供其它應(yīng)用程序參考、使用,實(shí)現(xiàn)茶品推薦等功能。
2.2.1 數(shù)據(jù)通信發(fā)送
對(duì)數(shù)據(jù)進(jìn)行校驗(yàn)和封裝,封裝方式是將數(shù)據(jù)分別裝入元組中,然后在對(duì)目的源地址和元組字節(jié)進(jìn)行校驗(yàn)。具體格式如表1 所示。

Table 1 Encapsulation protocol for sending data packets in ZigBee communication表1 ZigBee 協(xié)議數(shù)據(jù)通信發(fā)送數(shù)據(jù)包封裝表
其中,將Data0 設(shè)置為起始標(biāo)記,用于表示ZigBee 通訊有效數(shù)據(jù)的開始位置;Data1、Data2 分別表示用于雙向數(shù)據(jù)通信的本地地址和服務(wù)器地址,用16 位二進(jìn)制數(shù)表示;Data3-Data6 為溫度傳感器、壓力傳感器的實(shí)時(shí)數(shù)據(jù),通過ZigBee 協(xié)議將溫度和壓力實(shí)時(shí)發(fā)送給服務(wù)器端,便于遠(yuǎn)程捕獲終端的狀態(tài)數(shù)據(jù);Data7 表示校驗(yàn)標(biāo)記位,用來對(duì)傳輸數(shù)據(jù)進(jìn)行加密校驗(yàn),確保傳輸數(shù)據(jù)準(zhǔn)確可靠;Data8 用作結(jié)尾標(biāo)記,表示數(shù)據(jù)傳輸完畢。
2.2.2 數(shù)據(jù)通信接收
對(duì)發(fā)送過來的數(shù)據(jù)請(qǐng)求進(jìn)行解析,并進(jìn)行相應(yīng)的校驗(yàn)和處理。比如發(fā)送端與接收端的起始字節(jié)、目標(biāo)地址及本地地址必須準(zhǔn)確符合才能進(jìn)一步接收數(shù)據(jù),單片機(jī)接收了一幀數(shù)據(jù)后就將接收狀態(tài)位清零,然后讀取緩沖區(qū)內(nèi)的數(shù)據(jù)到單片機(jī)內(nèi)部,接著繼續(xù)接收下一幀數(shù)據(jù),直至緩沖區(qū)內(nèi)的數(shù)據(jù)全部讀完,最后啟動(dòng)中斷程序。特別需要注意的是,每次讀取緩沖區(qū)內(nèi)的數(shù)據(jù)后都需要將接收狀態(tài)位(RI)進(jìn)行清零。
為了驗(yàn)證該系統(tǒng)設(shè)計(jì)方案對(duì)于個(gè)性化飲茶偏好知識(shí)獲取的有效性,系統(tǒng)采用1 個(gè)托盤作為用戶茶葉用量記錄來源、1 個(gè)茶具作為泡茶水溫記錄來源,3 個(gè)Tekscan 壓力傳感器和1 個(gè)DS18B20 芯片溫度傳感器用于獲取用戶飲茶信息。同時(shí),準(zhǔn)備1 臺(tái)精準(zhǔn)度為0.001g 的蓉城高精度電子天平稱,1 支精度為0.1、范圍在0~100℃的高精密棒式水銀溫度計(jì),以便與傳統(tǒng)方法進(jìn)行對(duì)比。
針對(duì)茶葉用量的特征提取測試,實(shí)驗(yàn)選取了20 份茶葉樣本進(jìn)行對(duì)比測驗(yàn)。為了便于稱取重量,先將每份茶葉樣本用保鮮膜封裝好并按重量從小到大的順序標(biāo)明編號(hào),假設(shè)茶盒的重量為0g,然后用天平工具對(duì)各編號(hào)樣本分別稱取重量,再分別將各編號(hào)樣本按順序放置在已經(jīng)布置好的器皿中,啟動(dòng)系統(tǒng),按順序從器皿中取出樣本,獲取傳感器數(shù)據(jù)并加以處理。20 個(gè)實(shí)驗(yàn)樣本統(tǒng)計(jì)結(jié)果對(duì)比如表2所示。

Table 2 Statistical comparison of experimental sample results of tea consumption表2 茶葉用量實(shí)驗(yàn)樣本統(tǒng)計(jì)結(jié)果對(duì)比
實(shí)驗(yàn)結(jié)果表明,本文系統(tǒng)對(duì)茶葉用量偏好特征提取整體識(shí)別度較高,能準(zhǔn)確反映茶葉用量的真實(shí)情況。但實(shí)驗(yàn)中系統(tǒng)未能準(zhǔn)確識(shí)別出重量為0.03g 的樣本,對(duì)小于0.1g的樣本識(shí)別度也不高,這主要由實(shí)驗(yàn)中壓力傳感器不穩(wěn)定導(dǎo)致。
針對(duì)泡茶水溫的特征提取測試,實(shí)驗(yàn)中將帶有溫度傳感器的茶具添水加熱,將水銀溫度計(jì)插入茶具合適位置,當(dāng)水溫讀數(shù)到80℃開始計(jì)時(shí),同步獲取溫度傳感器和水銀溫度計(jì)上的數(shù)據(jù),從而對(duì)二者進(jìn)行較好對(duì)比。水溫在不計(jì)能量流失狀態(tài)下的溫度變化呈線性關(guān)系且狀態(tài)緩慢變化,溫度傳感器的數(shù)據(jù)在T 時(shí)間內(nèi)并不會(huì)發(fā)生較大波動(dòng),因此設(shè)定溫度傳感器閾值為1℃,即溫度傳感器數(shù)據(jù)變化在閾值范圍內(nèi),都視為溫度沒有變化。同時(shí),實(shí)驗(yàn)條件為室內(nèi)常溫32℃環(huán)境,茶具容器為500mL,盛滿清水,時(shí)間段T=5min,對(duì)T 時(shí)間段內(nèi)每5s 采集一次傳感器數(shù)據(jù),共獲取60個(gè)傳感器數(shù)據(jù)。與水銀溫度計(jì)讀數(shù)對(duì)比如圖3 所示。

Fig.3 Temperature comparative analysis圖3 溫度實(shí)驗(yàn)對(duì)比分析
由實(shí)驗(yàn)結(jié)果可以看出,溫度傳感器數(shù)據(jù)在經(jīng)過分段、去噪處理后,數(shù)據(jù)被分割成若干條近似水平的線段,每條線段代表著一個(gè)分割段區(qū)間,線段上的初始節(jié)點(diǎn)即為當(dāng)前分割段區(qū)間的開始,尾部節(jié)點(diǎn)即為當(dāng)前分割段區(qū)間的結(jié)束。實(shí)驗(yàn)結(jié)果表明,水銀溫度計(jì)的溫度數(shù)據(jù)基本分布于溫度傳感器數(shù)據(jù)各分割段區(qū)間的中心位置,可近似理解為:水銀溫度計(jì)的數(shù)據(jù)曲線與溫度傳感器數(shù)據(jù)的分割段區(qū)間均值曲線的線條重合度較高,說明本系統(tǒng)設(shè)計(jì)的茶水溫度偏好特征提取方案切實(shí)可行。
此外,實(shí)驗(yàn)中溫度傳感器不穩(wěn)定等原因,導(dǎo)致傳感器采集的起始數(shù)據(jù)和結(jié)束數(shù)據(jù)與實(shí)際溫度并非完全吻合。
本文針對(duì)當(dāng)前大多現(xiàn)有茶飲系統(tǒng)都注重口味或營養(yǎng),而用戶飲茶偏好自動(dòng)獲取研究較少的現(xiàn)狀,設(shè)計(jì)一套能實(shí)現(xiàn)個(gè)性化飲茶偏好提取的茶信息管理系統(tǒng)。從茶葉用量、水溫、時(shí)間和次數(shù)等方面進(jìn)行研究,通過物聯(lián)網(wǎng)傳感器技術(shù)采集用戶飲茶數(shù)據(jù),提取出個(gè)性化飲茶特征,利用數(shù)據(jù)動(dòng)態(tài)分割法獲取用戶飲茶偏好上下文,從而建立準(zhǔn)確的用戶飲茶信息庫,通過物聯(lián)網(wǎng)傳感器技術(shù)提取出個(gè)性化飲茶偏好,從而建立準(zhǔn)確的用戶飲茶信息庫,為用戶實(shí)現(xiàn)信息呈現(xiàn)或茶品推薦等功能提供幫助。與現(xiàn)有成果相比,本文提出的方法具有用戶體驗(yàn)強(qiáng)、感知準(zhǔn)確、適用范圍廣、用戶直接參與少等特點(diǎn),較好地實(shí)現(xiàn)了對(duì)個(gè)性化飲茶偏好的特征提取和知識(shí)獲取。實(shí)驗(yàn)結(jié)果證明,該方案具有一定的可行性和有效性。