网站首页  词典首页

请输入您要查询的论文:

 

标题 基于动态分割算法的个性化泡茶偏好特征提取
范文

    

    

    

    摘要:该文在传感器技术处理的基础上,对泡茶的用量、温度和时间三个方面进行了深入研究,针对用户泡茶偏好的个性化特征提取问题,提出一种动态分割算法,对泡茶偏好进行上下文特征提取,从而为用户泡茶偏好的特征提取和个性化推荐服务提供了一种有效的解决方案。

    关键词:动态分割算法;泡茶;个性化;特征提取

    中图分类号:TP391 文献标识码:A

    文章编号:1009-3044(2020)19-0179-03

    开放科学(资源服务)标识码(OSID):

    1 背景

    考虑到用户泡茶行为主要受茶叶种类、茶具大小、年龄结构、泡茶历史、季节、气候、健康状况等诸多因素的影响,其在泡茶过程中最终都会直接表现为茶叶用量、水温、时间三个方面的个人偏好和习惯特征。为了准确获取用户个性化饮的茶偏好,本文针在物联网处理技术的基础上,提出一种基于动态分割算法的个性化泡茶偏好知识获取方法,该方法主要从用量、温度和时间三个方面进行研究,通过物联网传感器技术采集用户泡茶数据,提取出个性化泡茶特征,利用数据动态分割法获取用户泡茶偏好上下文,从而建立准确的用户泡茶信息库,实现对用户信息呈现或茶品推荐等功能。

    2 个性化泡茶偏好特征提取

    所谓用户泡茶偏好主要是指用户在一定时间段内,对某样茶品或某类茶品的食用情况。不同茶品在泡茶过程的基本要求和方式手法上虽有所不同,个性需求、行为特征和个人偏好也千差万别,但归纳起来,可以通过用量、水温和时间这三个关键参数来具体描述。

    2.1茶叶用量特征提取

    茶叶种类繁多,类别不同其用量各异,泡一壶好茶,茶叶用量的掌握尤为关键,为诸多关键参数之首。每次茶叶用量的多少并没有统一的固定标准,主要受茶叶种类、茶具大小、年龄结构、泡茶历史以及饮用习惯等诸多因素的影响,鉴于用户单次泡茶的茶叶用量不会太大,泡茶其用量可以通过压力感应的方式称重获取。

    考虑到压力传感器对压力十分敏感,在称重过程中难免出现偏移量误差,因此,系统在托盘底部均匀布置3个压力传感器,采用单位时间内多个压力传感器采集数据求平均的方法,来获取可靠的茶叶用量。

    用户泡茶偏好用量获取与处理算法思想可以表述为:

    1)建立数组集合ArrayWeight={ArrayWeighti,ArrayWeight2,ArrayWeight3],用于存放各压力传感器采集茶盒和茶叶的数据,其中,ArrayWeight,表示第i壓力传感器采集数据(1《i≤3)

    2)系统初始化:ArrayWeight=φ,初始化茶叶用量Weight-Num=0,初始化压力测试监视哨newFlags=false,表示之前接收的传感器数据已经处理,将要从传感器接收新数据;

    3)采集一次传感器数据;

    4)初始化ArrayWeight=φ,分别将3个压力传感器采集到的数据存人到ArrayWeight集合中,即ArrayWeight[3]={第1个压力传感器采集数据,第2个压力传感器采集数据,第3个压力传感器采集数据】,并对各压力传感器数据求平均值,将其存入WeightNum中,即:

    同时修改压力测试监视哨状态newFlags=true;

    5)判断newFlags是否为真,若为真,则执行3),若为假则执行5);

    6)输出WeightNum,同时修改压力测试监视哨状态new-Flags=false;

    7)结束。

    2.2 泡茶水温特征提取

    历来泡茶对水温的把握十分讲究,水温度不同,茶的色、香、味相差甚远,泡出茶叶的有效成分也就不同。水温过高,茶叶容易泛黄味苦,所含维生素C等大量营养成分遭受破坏;温度过低,不能使茶叶中的有效成分充分浸出,茶味淡薄。系统通过布置在茶具底部的不锈钢防水温度传感器,可以采集到用户泡茶过程中的水温传感器数据,通过对这些数据的处理,就可以获取用户一次泡茶过程中对水温的需求情况;

    基本思路为:将传感器捕获到的数据存储于动态数组中,并按照时间段将动态数组划分划分成不同的段,每段对应一定时间内较为稳定的温度传感器数据,通过对每个段内的传感器数据求平均值,就可以得到较为可靠的温度传感器数据;通过计算相邻两个分段的均值差,就可以求出水温的变化量。

    动态分割算法主要采用前向窥探机制,算法首先需要确定出相邻两个分段均值差的偏差范围,通过训练设置合适的偏差阈值并进行初始化,当传感器新获取数据时,需要与前一分段的均值进行比较,判断是否在阈值范围之内,如果在阈值范围内则将新获取数据添加到前一分段,否则重新划分一个时间分段。通过这种方式可以很好地对动态分割进行时间分段,并且同时对噪点数据进行去噪处理。

    前向窥探机制的动态分割算法提取泡茶水温的基本特征,其算法可做如下描述:

    1)建立动态数组集合ArrayList,用于存放温度传感器捕获的所有数据。ArrayList= {ArrayList1,ArrayList2,ArrayList3,…,Ar-rayListn),ArrayList.表示第i次温度传感器的捕获数据,i∈n;

    ArrayListi为三元数据,包含分段属性、温度属性和时间属性,表示为ArrayListi<分段,温度,时间>=ArrayListi, ArrayListi表示第i次温度传感器的捕获数据,该数据属于动态分割的第PiecewiseCount,组,温度值为Temperature i摄氏度,捕获该数据的时间为PiecewiseDateti-me,;

    2)系统初始化:动态数组初始化ArrayList=φ,阈值初始化ThresholdValue=t( OCOs)秒,设置起始标志Flags=True;

    3)捕获第一个温度传感器数据,接收温度属性参数Value,和时间参数Datetime,;

    4)初始化一个分割段:PiecewiseCount=1,将第一次获取的数据属性和时间属性分别存人ArrayList数组中,则此时ArraYL-isti=<1, Val-uei.Datetime i>;设置分割段监视哨j=1;

    5)捕获温度传感器第i个数据,接收温度属性参数Valuei和时间属性参数Datetime i;

    6)判断Value与PiecewiseCount.时间段的均值只差的绝对值小于或等于阈值ThresholdValue的条件是否为真,若为真,则说明第i个传感器数据与前一个i-1传感器数据的分割段为同一段,则执行7),否则执行8);

    7)将第i个数据ArrayList.写入动态数组中,同时,j++准备接受下一个传感器数据;执行9)

    8)重新创建一个数据分割段,并将第i个数据ArrayList.写入动态数组中;同时,j=1准备接受下一个传感器数据;执行9)

    9)如果Flags=True,则执行5),否则执行10)

    10)对各分割段求均值,输出水温特征值;

    11)结束。

    根据上述算法描述,动态分割过程代码如下:

    Question:

    Input://输入所有温度传感器捕获的温度和时间

    OutPut:,/输出泡茶水温值

    Procodone:

    {

    ArravList=φ;//动态数组初始化

    ThresholdValue=t;//阈值初始化,

    PiecewiseCount=0;//分段参数初始化

    Value=0;Datetime=now;//当前传感器数据的数值属性和时间属性初始化

    Flags=True;//起始标志位初始化

    //接收第一个传感器数据并写入动态数组

    If(PiecewiseCount==0)

    (

    PiecewiseCount++;//为第一个传感器数据创建一个数据分割段

    //准备动态数组元素数据

    PiecewiseCounti =PiecewiseCount;

    Temperaturei =Value;

    iecewiseDatetimei= Datetime

    add( ArrayListi)//将ArrayList,元素寫入动态数组

    )

    i=l;//统计传感器数据输入个数并初始化

    j=l;//统计同一分割段数据个数并初始化

    Where(Flags)

    {

    i++;ThresholdValue)//判断Value与PiecewiseCounti时间段的均值只差的绝对值小于或等于阈值ThresholdValue的条件是否为真

    {

    //若为真

    PiecewiseCount.=PiecewiseCounti_i//则说明第i个传感器数据与前一个i-l传感器数据的分割段为同一段

    Temperature,=Valuei;/,接收当前传感器数据的温度值

    PiecewiseDatetimei= Datetime,;,/接收当前传感器数据的时间值

    add (ArrayListi)∥将第i个数据ArrayList,写入动态数组中;

    j++;//准备接受下一个传感器数据

    )

    Else

    {

    //若为假

    PiecewiseCount++∥则说明第i个传感器数据与前一个i-l传感器数据的分割段为不同段,需要重新创建一个数据分割段

    PiecewiseCount;=PiecewiseCount.//将新分割段参数值写入当前传感器数据的分段元素中;

    Temperature,=Valuei;/,接收当前传感器数据的温度值

    PiecewiseDatetimei= Datetime,;,/接收当前传感器数据的时间值

    add(ArrayListi)∥将第i个数据ArrayList,写入动态数组中;

    j=l;//准备接受下一个传感器数据

    )

    )

    从ArrayList中输出泡茶水温值的均值P;

    2.3 冲泡时间

    茶叶冲泡的时间和次数由于可以采用传统的闹钟定时方式准确获取,因此,在个性化泡茶偏好的时间特征提取过程中,主要采传统的闹钟定时来获取茶叶冲泡的可靠时间。

    3 结束语

    本文在传感器技术处理的基础上,对泡茶的用量、温度和时间三个方面进行了深入研究,针对用户泡茶偏好的个性化特征提取问题,提出一种动态分割算法,对泡茶偏好进行上下文特征提取,从而为用户泡茶偏好的特征提取和个性化推荐服务提供了一种有效的解决方案。

    参考文献:

    [1]汪建,杜世平.基于颜色和形状的茶叶计算机识别研究[J].茶叶科学,2008,28(6): 420-424.

    [2]李翠平,蓝梦微,邹本友,等,大数据与推荐系统[Jl,大数据,2015,1(3): 23-35.

    [3]樊祥超,於志文,耿会东,等.智能空间中的用户饮食偏好获取与推荐系统[J].计算机工程,2011,37(22): 237-239.

    [4]孙涛.个性化商品推荐系统的设计与实现[D].长春:吉林大学。2015.

    【通联编辑:谢媛媛】

    基金项目:教育部科技发展中心:新一代信息技术创新(项目编号:2018A02038);武陵山区特色资源开发与利用研究中心开放项目(项目编号:WLYJ2017002)

    作者简介:徐儒(1982-),男,重庆人,实验师,硕士,研究方向为智能信息处理、模式识别、数据挖掘、农业大数据。

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/3/10 12:33:47