模糊查询在电子商务数据库查询中的应用

2010-06-05 10:47董丽丽
电子设计工程 2010年9期
关键词:论域模糊集直方图

何 浩,董丽丽

(西安建筑科技大学 信息与控制工程学院,陕西 西安710055)

随着互联网的蓬勃发展,电子商务已经不是一个抽象的概念。电子商务已经越来越多地被应用于企业的信息化规范中。 许多纯粹的电子商务公司,如Amazon、EBay、New egg,国内的taobao.com、bug360.com等之间的竞争也是愈演愈烈。作为一个电子商务公司,如何把客户留在网站上浏览商品是一个关键策略。现在的前台网站中,不仅为用户提供优秀的用户体验,同时也为用户提供了强大的搜索功能,以便用户对网站内容进行检索。但是,对于一个商品,或者服务非常繁杂的电子商务网站来讲,为用户提供一个明确的需求导向始终是一个困扰的问题。对于用户来讲,登陆一家电子商务网站,如何检索到自己需要的商品或服务,也是一个困惑。比如,用户想在新蛋(www.newegg.com.cn)网站上购买性价比比较高的手机,需要进行很多搜索与比较后,才能确定哪些手机的性价比较高。如果网站能够接受一个像“性价比高的手机”这样的关键词搜索,那么无疑就为用户提供了一个非常便捷,友好的搜索体验。对于电子商务公司来讲,提供这样人性化的搜索,也会让自己在竞争异常激烈的市场中处于领先地位。因此,需要一种服务或功能,将这种不确定的关键词搜索引入到现有的关系型数据库中(考虑到现在大部分电子商务公司普遍使用关系型数据库),使之在现有模式上支持模糊搜索。提供这样一个模糊查询的功能,会使得电子商务网站具有更加优秀的用户体验以便留住更多的用户。根据美国电子商务周刊报道,“当一个用户在一个网站停留超过15 s以上时,就有95%的概率消费了”[1],从而在竞争激烈的电子商务市场中,赢得先机。本文将模糊理论引入现有的关系型数据库,并以如何使用价格)来检索需要的商品为例,研究其可行性。

1 模糊查询的基本概念

模糊逻辑理论为关系型数据库实现模糊查询提供重要的理论依据,以下部分引入在模糊理论中本文所涉及到的重要概念:

定义1 集合:具有某种特定性质的,确定的,可以区分的对象的总合。

定义2 论域:在研究范围内,研究对象的全体称为论域。在本文中,论域使用大写字母U来表示。在本文中研究的对象是商品的价格,即U={价格}。

定义3 模糊集合:设U是论域,对任意对论域中任意元素x∈U, x常以某个程度 U(∈[0,1])属于模糊集 A,而非 x∈A或 x∉A。

定义4 隶属函数:设在论域U上给定了一个映射 u∶U→[0,1],则 u 定义了 U 上的一个模糊子集,记为 A, F(u)称为A的隶属函数,记为Ua(或称为u对A的隶属度)。对于任意元素u∈U,Ua(u)的值称为元素u对于模糊集合A的隶属度,它表示u属于A的程度。当Ua(u)=1时,u是A的元素,Ua(u)=0 时,u 不是 A 的元素。 Ua(u)的值越接近于 1,u 属于A的程度就越大。显然,特征函数是隶属函数的特殊情况,普通集合可以看为模糊集合的极端情况。

定义5 可信度:反映用户对查询的模糊数据的期待的准确率。

2 以商品价格查询实现模糊查询

现以对商品价格实现模糊查询为用例,假定用户需要查询“价格较高的手机”为需求逐步构建模糊查询。

1)确定论域 以商品的价格为研究论域。假设商品表的信息存储在Product_Master表当中,其中Price表示商品价格,type=0表示为手机,则可以使用下列查询来确定手机的最高和最低价格:

SELECT MAX(Price),MIN(Price)FROM Products Where type=0;

这样就得到一个手机最高价格和最低价格的上下区间,以此区间作为隶属函数的查询论域。假设查询到的结果为最高价格6 560元,最低价格235元,即所得的论域为U=[235,6 560],以此论域确定模糊集和构建用户调查表。

2)构造模糊集并存储在新的表中 要查询“价格较高的手机”,需构造如下模糊集 F(U)={“价格比较高”}的模糊集。考虑到用户在网站前台不一定会严格按照事先定义好的模糊集进行搜索,需要在前台做Ajax异步操作提示,引导用户使用定义好的模糊查询关键词进行查询。比如用户在关键词搜索栏中输入“性价比”,那就需要异步的查询模糊集数据字典,然后自动补全用户输入的模糊关键词,从而引导用户使用模糊集合中的关键词来进行模糊查询。

新建立字典Product_FuzzykeyWord,该字典用来存储模糊集合的关键字以及期望的可信度。根据模糊集合的数目以及所包含的元素多少可以对该字典进行拓展以实现更多类别的模糊查询。

3)根据论域和模糊集合建立调查表 根据研究的论域U=[235,6 560]和模糊集 F(U),定义一个调查表来统计客户认为“价格比较高”的手机价格区间,该区间应该是所研究论域的一个子集。

考虑到现有的电子商务网站在用户消费后通常都会有一个商品的评价机制,因此很容易就能够获得该调查表。拓展保存商品评价数据的字典,使之能够存储商品价格较贵的价格区间值。如果需要实现更多范围的模糊查询,可以建立新的调查表字典,以实现更好的性能。

假设调查表数据存储在Product_Reviews字典中,这里取调查表的前30条记录,用于进行模糊分析:

SELECT TOP 30 Product_id,Exp_Price_Min,Exp_Price_Max FROM Product_Reviews

ORDER BY Exp_Price_Min

以下是输出结果,如表1所示。

表1 “价格较贵的手机”反馈信息表Tab.1 Feedback form of mobile phone with higher prices /元

4)根据结果建立频数分布图 根据表1可以分析出手机价格上区间为3 000元,下区间为1 500元,即U=[1 500,3 000],为使每个价格点均落在频数分布图上,建立以1 450元为起点,3 050元为终点,100为间距的价格区间,形成价格分组,然后求出每个分组区间的价格点个数,作为频数,然后用频数除以信息表总条数得到相对频数,得到结果如表2所示。

5)根据频数分布图建立直方图 根据表2绘出直方图,根据直方图便可得出隶属函数的曲线,如图1所示。

根据隶属函数的直方图确定元组的隶属函数。例如判断价格1 500元手机属于“价格较贵的手机”的隶属度,查询直方图,有 A(μ=1 500)≈40%,表示价格1 500元的手机对于“价格较贵的手机”的可信度为40%,同理价格为2 500元的手机对于其可信度为100%。

表2 “价格较贵的手机”频数分布表Tab.2 Frequency distribution form of mobile phone with higher prices /个

图1 “价格较贵的手机”隶属函数直方图Fig.1 Membership function histogram of mobile phone with higher prices

3 模糊查询的结果数量及准确度调整

由隶属函数的建立过程可以看出,抽取的调查表数目越多,隶属函数越精确。因此,随着用户对商品价格的评价积累逐渐增多,隶属函数将会变得越来越客观,即逐渐减少人为的主观因素。以下通过2种方式介绍如何调整查询结果的准确度和精度。

3.1 通过调整可信度来调整查询结果数量

通过图1可以看出隶属度越高,则返回的结果越少,返回的结果越精确,反之亦然。因此可以通过或调整隶属函数的可信度来达到控制模糊查询的结果准确度及精度。例如对于模糊集F(U)={“价格比较高”},需要模糊查询可信度高于50%数据,则只有价格在1 900~2 900区间的手机能够作为结果集返回。同理,在可信度等于100%的情况下,只有2 500价位的手机能够作为结果集返回。这样的调整,优点是能够宏观控制,且简单直接有效。

3.2 通过调整隶属函数参数控制查询结果的准确度和精度

当直方图确立以后,隶属函数为可知。在这里以指数函数为例引入σ(σ>0)参数来调整模糊查询范围。使用E(y,a)来表示y隶属于a模糊范围的程度,y表示手机的价格,a表示y隶属模糊范围对应的期望值。

在参数σ下的表达式为:

例如,判定为价格2 500元的手机是否属于较贵的模糊查询,可以表示为:

先假设将 σ=10,y=3 000 带入式(2)中,计算得 0.512 3,即表示价格3 000元的手机相对于“价格较高的手机”的可信度为51%。

可以看出价格3 000元属于“价格较贵的手机”的可信度还是较高的。但是有些情况下,则希望通过策略来对模糊查询作细微调整,使之能够出现或不出现或略微调整其可信度,通过略微调整σ参数,就能够实现这一目标。

现取 σ=20,y=3 000 带入式(1)中,有:

通过调整需模糊查询的可信度,便可将该结果从返回结果中过滤掉。

由上分析,能够看出,在以指数函数为模糊函数的调整模型中,σ越大,可信度就越小;反之亦然。因此可以通过选择合适的σ参数,来调整返回结果的可信度。相对于前一种方法,优点是调整粒度更加细微,缺点是稍显复杂,需要不断尝试最优的σ参数。

3.3 通过调整隶属函数直方图控制查询结果的准确度和精度

综上所述,电子商务企业可以采取上述几种方式对模糊查询结果的数量及准确度进行控制,制定灵活多样的策略来配合自己的业务模式及需求。

4 模糊查询执行步骤以及结果及性能分析

4.1 模糊查询的流程

用户在电子商务网站查询入口,输入查询关键字,系统判定是否能够命中模糊关键词,如前所述可以使用异步提示与自动补全的形式,使模糊查询的关键词尽可能命中,以引导用户进行模糊查询。根据该模糊关键词,得到一个可信度,使用该隶属度去匹配调查表Product_Reviews,判定是否满足该可信度,将结果满足该可信度的数据返回,输出给用户,详细步骤如图2所示。

图2 模糊查询执行流程图Fig.2 Flow chart of fuzzy query implementation

4.2 性能分析

运行该查询的计算机配置为Inter Xeon 4核×2,2.8 GHz,6 GB ECC Memory, Windows Server2008, SQL Server2008,数据库为New egg测试数据库,Products表26万元组,Reviews表300万元组。为了测试模糊查询的执行效率,先使用模糊查询得到输出元组,再使用普通查询返回相同记录数元组,普通查询使用简单条件,以避免CPU及IO对测试的影响。测试次数为100次,返回元组从100条逐次增多,最多至10 000条。实验结果见图3。

图3 性能分析图Fig.3 Chart of performance analysis

实验表明,随着返回元组的增加,模糊查询与普通查询执行时间差距逐渐缩小,最后至忽略不计,同时也表明,在模糊查询设计合理的前提下,系统性能影响微乎其微。

5 结束语

本文将模糊理论引入现有的电子商务关系型数据库数据查询中,使之支持模糊查询,并提出了使用σ参数来控制模糊查询的准确度,这在电子商务领域是一个大胆的尝试和创新。本文以模糊查询手机价格为例,探讨其可行性。通过收集用户对商品价格的评价,不断修正隶属函数中的σ参数值,就能实现贴合用户需求的查询。实验模拟的结果表明,将电子商务关系型数据库转为支持模糊查询的数据库,在性能损失很小的同时,能够为用户提供更加符合需求的检索结果,这种查询设计增强了电子商务网站的竞争力。但电子商务数据库系统毕竟是一个非常复杂的数据库,在构造模糊数据的设计过程中,需要对业务需求进行仔细归纳与整理,并对数据进行分析与汇总,才能建立符合需求的模糊查询所需要的隶属函数。同时设计一种能够收集用户对查询结果的反馈模式,并不断修正模糊查询的精度也非常重要,最后要注意如何最大限度的避免因为构建模糊查询系统带来的耦合影响。以上困难都需要在具体实践中继续研究。

[1]Joe M.E-Commerce in China[J].China this week in Consumer Electronics,2007,12(1):47-48.

[2]Zimmermann H J,Kluwer-Nijhoff.Fuzzy set theory and its applications[D].California:University of California,1985.

[3]Truong K Q,Ishikawa F,Honiden S.Improving accuracy of recommender system by item clustering[D].New York:New York University,2007.

[4]Papamiehail G P.The k-means range a1gorithm forpersona1-ized data clustering in E-commerce[J].European Journal of Operational Researeh,2008,176(1):1233-1250.

[5]Chen S M,Jong W T.Fuzzy query translation for relational database[J].IEEE transaction on systems Man and cybernetics-part B:Cybernetics,2007,27(3):714-721.

[6]蔡宏艳,姚佳丽,王珊.DETECTOR:基于关系数据库通用的在线关键词查询系统 [J].计算机研究与发展,2007,12(1):120-124.CAI Hong-yan, YAO Jia-li, WANG shan.DETECTOR:Base on a relational common database online keyword query system[J].Computer Research&Development, 2007, 12(1):120-124.

猜你喜欢
论域模糊集直方图
符合差分隐私的流数据统计直方图发布
基于上下截集的粗糙模糊集的运算性质
基于变论域模糊控制的Taylor逼近型内模PID算法
复图片模糊集及其在信号处理中的应用
用直方图控制画面影调
变论域自适应模糊PID控制系统仿真与应用
区间直觉模糊集相似度构造
中考频数分布直方图题型展示
双论域粗糙集在故障诊断中的应用
基于空间变换和直方图均衡的彩色图像增强方法