




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一种基于中文分词和数据聚合的餐饮行为特征挖掘方法 刘为怀才华何东杰 (中国银联电子支付研究院上海xx01) 摘要针持卡人使用银行卡进行日常交易时,通过商户类别码(m)可以判断交易商户是否为餐饮商户,但是无法进一步细分交易商户所属菜系。为了分析持卡人餐饮行为特征,提出了一种银联数据与外部数据相结合的数据聚合方法。选择百度地图餐饮数据作为外部数据,对不同菜系的餐馆名进行中文分词、清洗,形成区分不同菜系的关键词组。以银联大数据平台为基础,百度数据与银联数据通过mapreduce技术进行聚合。百度菜系的关键词组对银联餐饮商户进行菜系划分,带有菜系标签的银联餐饮商户数据与银联持卡人日常交易数据进行聚合,挖掘出持卡人餐饮行为特征。 关键词大数据,中文分词,数据挖掘,数据聚合,餐饮行为特征 TP3A doi:10.3969/j.issn.1674-7933.xx.04.006 作者简介:刘为怀,男,1981年生,硕士,助理经理,主要从事及研究领域:大数据平台数据挖掘及数据聚合的研究,Email:liuweihuaiunionpay.; 才华,硕士,工程师; 何东杰,硕士,工程师。 0引言 为了丰富持卡人画像,根据持卡人日常消费行为,对持卡人进行打标签。我们选择衣食住行中的食餐饮进行研究,以xx年上海市持卡人消费数据作为研究对象,分析上海市持卡人在餐饮行业的消费行为特征。 银联数据只能识别商户是否为餐饮类,而无法进一步区分商户是中餐馆还是西餐馆等详细的菜系信息。因此,需要借助外部数据,补充银联商户菜系划分信息,并与银联交易数据相结合,形成持卡人餐饮基础数据,在此基础上,挖掘持卡人餐饮行为特征。 1相关技术 本节主要介绍中文分词和数据聚合的相关知识,选择结巴分词进行中文分词,数据聚合使用基于Hadoop平台的MapReduce编程模型。 1.1结巴分词 结巴分词是一个Python中文分词组件1,结巴分词包含以下三种算法2: 1)基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG); 2)采用了动态规划查找最大概率路径,找出基于词频的最大切分组合; 3)对于未登录词,采用了基于汉字成词能力的隐马尔科夫模型(HMM),使用了Viterbi算法。 结巴分词过程分为三步3,具体如下: 1)加载字典,生成trie树; 2)给定待分词的句子,使用正则获取连续的中文字符和英文字符,切分成短语列表,对每个短语使用DAG和动态规划,得到最大概率路径,对DAG中那些没有在字典中查到的字,组合成一个新的片段短语,使用HMM模型进行分词,识别字典外的新词; 3)使用Python的yield语法生成一个词语生成器,逐词语返回。 1.2MapReduce编程模型 MapReduce是Google于xx年提出的一个编程模型4,是一个能够处理和生成超大数据集的算法模型的相关实现。为了能够快速处理超过1TB的数据,模型使用并行的方法将任务分配到数百个甚至千个计算节点。 MapReduce编程模型的原理是:利用一个输入key/value集合产生一个输出的key/value集合。MapReduce库的用户用两个函数表达这个计算:map和reduce。 map函数接受一个输入的key/value值,然后产生一个中间key/value值的集合。MapReduce把所有具有相同中间key值I的中间value值集合在一起后传递给reduce函数。 reduce函数接受一个中间key的值I和相关的一个value值的集合。reduce函数合并这些value值,形成一个较小的value值的集合。一般的,每次reduce函数只产生0或1个输出value值。 map和reduce函数概括如表1所示: MapReduce的执行过程如图1所示,图左边是map任务运行示意图,右边是reduce任务运行示意图。 2特征挖掘 本节首先介绍餐饮行为挖掘流程,其次介绍分词、清洗,最后介绍了数据聚合以及在聚合数据基础上进行的特征挖掘。 2.1挖掘流程 餐饮行为特征挖掘流程如图2所示,首先对百度餐饮数据进行分词、清洗,形成菜系关键词组,然后与银联商户数据进行聚合,形成带菜系标签的银联商户数据,然后与银联交易数据进行聚合,形成餐饮基础数据,以此为基础,挖掘出餐饮行为特征。 2.2分词 调用百度地图PlaceAPI接口5,下载不同菜系的餐馆详细信息,主要包括餐馆名称、经纬度、具体地址、联系电话、菜系分类、客户评价信息等。 从百度地图获取的餐饮数据包含了很多信息,但我们只需要其中的餐馆名称。通过字符串拆分、截断等技术提取含有餐馆名称的字段,存放在菜系文件中。 使用python语言编写一个分词脚本,引入结巴中文分词模块,所有51个菜系的餐馆名称文件,逐一遍历,对餐馆名称进行分词,分词后的关键词,存放在对应菜系的分词文件中。 2.3清洗 分词后的关键词,有很多无用符号、通用词语以及道路、街道、地区、学校、小区、商场的名称。上述关键词在各个菜系的分词文件中均有出现,导致不同菜系的关键词区分度下降,因此,需要对分词后的所有菜系的关键词进行清洗。 清洗工作分两个部分进行,首先建立一个过滤数组,将无用符号、通用词语以及道路、街道、地区、小区、学校、商场的名称放入过滤数组,然后对所有菜系的分词文件进行遍历,将分词文件中含有过滤数组的关键词进行剔除。 2.4数据聚合 MapReduce实现数据聚合,本质上是通过MapReduce编程实现两个数据文件的笛卡尔乘积(join)。Hadoop中MapReduce过程按照先后顺序依次为:读取数据分块,map操作,shuffle操作,reduce操作,输出结果。简单来说,MapReduce的本质在于大而化小,分拆处理。为了实现两个数据文件的join,需要将两个数据文件中键值相同的元组放到同一个reduce结点进行连接。 在map阶段,map函数同时读取文件1和文件2,为了区分两种的key/value数据对,对每条数据打一个标签(如图3中的Tag)6,比如:Tag=Customers表示文件1,Tag=Orders表示文件2。同时将map操作输出的key值设为两个数据文件的连接键(如图3中的Groupkey),即map阶段的主要任务是对不同文件中的数据进行打标签和设置连接键。 在shuffle阶段,Hadoop中默认的partitioner会将key值相同的map输出发送到同一个reduce结点。 在reduce阶段,reduce函数获取key值相同的文件1和文件2的valuelist,然后对于同一个key,对文件1和文件2中的数据进行join,即reduce阶段进行实际的连接操作。整个join过程如图3所示。 在餐饮行为特征挖掘过程中,共有两次数据聚合,第一次是银联商户数据与百度菜系关键词的聚合,第二次是银联交易数据与带菜系标签的银联商户数据的聚合。 银联商户数据与百度菜系关键词的聚合,由于只有51个菜系,每个菜系的关键词数量有限,因此将不同菜系关键词转换为二维动态数组,数组第一维表示菜系,数组第二维表示各个菜系的关键词。mapreduce逐条读取银联商户数据,获取餐饮商户名称,遍历所有菜系关键词,判断商户名称是否包含菜系关键词,将商户打上对应的菜系标签,形成带菜系标签的银联商户数据。 银联交易数据与带菜系标签的银联商户数据的聚合,由于两个数据文件都很大,因此需要MapReduce实现join。在map阶段,设置银联交易数据的Tag=0,带菜系标签的银联商户数据的Tag=1,商户号作为Groupkey,在reduce阶段实现了银联交易数据与带菜系标签的银联商户数据的join,形成餐饮基础数据。 2.5特征挖掘 经过对持卡人餐饮行为的分析和调研,总结出六种餐饮行为特征:菜系分布、爱吃菜系、青睐口味、就餐人群、就餐档次、就餐时间。分别对每一个特征进行挖掘。 1)菜系分布,表示持卡人在不同菜系餐馆的消费分布情况。餐饮基础数据包含所有银联持卡人在餐饮行业的消费记录,以及所有餐馆所属菜系。通过MapReduce程序,以餐饮基础数据作为输入,持卡人卡号为key,统计持卡人在所有菜系的消费情况,包括消费次数和消费金额,形成持卡人菜系分布数据。以持卡人菜系分布数据作为输入,通过MapReduce程序,持卡人卡号为key,统计持卡人年度消费菜系个数。 2)爱吃菜系,表示持卡人在所有菜系中最爱吃哪一个菜系。通过MapReduce程序,以持卡人菜系分布数据作为输入,持卡人卡号为key,优先比较消费次数,次数相同则比较消费金额,找出持卡人消费次数或金额最多的菜系,即是持卡人爱吃菜系。 3)青睐口味,表示持卡人喜欢吃什么口味的菜。口味分为酸、甜、咸、辣、海鲜、淡六种。根据菜系本身的特点,将其划分到对应的口味。青睐口味计算需要两步,分别用两个MapReduce任务依次实现。第一步,以持卡人菜系分布数据作为输入,持卡人卡号为key,每一个口味对应的所有菜系就餐次数进行累加,形成持卡人口味分布数据;第二步,以持卡人口味分布数据作为输入,持卡人卡号为key,比较所有口味的就餐次数,就餐次数最多的口味,即是持卡人青睐口味。 4)就餐人群,表示通过持卡人就餐行为将持卡人划分为不同就餐人群。就餐人群主要分为爱吃中餐、爱吃西餐、爱吃料理、爱吃东南亚菜、工作餐、爱吃零食六种。参考百度地图餐饮、大众点评等对菜系的分类,中餐、西餐、料理、东南亚菜、零食分别包含不同的菜系,工作餐通过快餐来定义。持卡人所属就餐人群计算,通过MapReduce程序,以餐饮基础数据作为输入,持卡人卡号为key,在map阶段,每一个就餐人群对应的所有菜系次数进行累加,在reduce阶段,对每一个持卡人,比较其在六种就餐人群的消费次数,消费次数最多的就餐人群,即可确定为该持卡人所属就餐人群。 5)就餐档次,按照持卡人次均消费金额划分为五个档次。大众点评按照人均消费划分为五个档次,本文引入了大众点评的人均消费划分,按照每次23人就餐,作为次均消费金额划分标准,如表2所示。通过MapReduce程序,以银联交易数据作为输入,持卡人卡号为key,在map阶段,统计持卡人每次消费金额,消费次数设为1,在reduce阶段,首先对持卡人消费金额和消费次数进行累加,计算出次均消费金额,然后根据次均消费金额判断持卡人所属就餐档次。 6)就餐时间,表示持卡人在什么时间最爱外出就餐。就餐时间分为早餐、午餐、晚餐、夜宵四个时间段,如表3所示。通过MapReduce程序,以银联交易数据作为输入,持卡人卡号为key,在map阶段,获取持卡人消费时间属于四个时间段中的哪一个,设置持卡人四个时间段对应的消费金额和次数,在reduce阶段,首先分别累加四个时间段的消费金额和消费次数,然后优先比较消费次数,找出次数最多的一个时间段,如果次数相同,则比较消费金额,找出对应的时间段,即为持卡人最爱外出就餐时间。 3结果分析 对xx年上海持卡人在餐饮行业的消费行为进行挖掘,分析持卡人在菜系分布、爱吃菜系、青睐口味、就餐人群、就餐档次、就餐时间等餐饮行为特征,挖掘出如下几个规律。 1)上海人最爱吃粤菜 首先计算出所有持卡人的最爱菜系,然后计算51个菜系的消费人群数量,结果如图4所示,上海人最爱吃的菜系前三名分别是粤菜、披萨、中式快餐。 2)上海人爱吃酸 以持卡人青睐口味数据为基础,进行口味挖掘,发现上海地区,爱吃酸的人群最多,六种口味分布如图5所示。 3)上海人最爱在一个菜系消费,年度消费菜系最多达到39个 以持卡人菜系分布数据为基础,统计上海人xx年度消费的菜系个数,只在一个菜系消费过的人数排在第一,数据优势明显,如图6所示,其中拖尾部分,有持卡人xx年共在多达39个菜系消费过。 4)超过一半的上海人,次均就餐金额小于100元次均就餐金额小于100元的人群占53.8%,超过一半,如图7所示,其中另一个有意思的现象是,次均就餐金额大于400元的人群排在第二位,超过二、三、四档就餐人群。 5)和早餐比,上海人更爱吃夜宵首先计算出持卡人在哪个时间段最爱外出就餐,然后统计4个时间段最爱外出就餐人数,发现爱吃夜宵的人数多于爱吃早餐的。 6)除了中西餐,上海人最爱工作餐以持卡人就餐人群数据为基础,分别统计爱吃中餐、爱吃西餐、爱吃料理、爱吃东南亚菜、工作餐、爱吃零食六种就餐人群,除了大家达成共识的中餐、西餐,在上海,工作餐人数最多,工作餐主要是以中式快餐和西式快餐构成,从侧面反映了上海是一个快节奏的城市。 4总结 持卡人餐饮行为特征从饮食的角度,刻画了持卡人日常行为,由于银联交易数据的限制,无法直接进行餐饮行为特征挖掘,因此,从外部发掘餐饮数据,对其进行分词,清洗,以银联大数据平台为基础,补充银联商户数据,与银联交易数据进行数据聚合,形成银联餐饮行为特征基础数据,进行餐饮行为特征挖掘工作。数据结果显示,按照此方法,不仅可以挖掘出持卡人个体的餐饮行为特征,而且能够挖掘出某一地区持卡人群体的餐饮行为特征。 参考文献 GitHub.结巴中文分词.http:/./news/26184-jieba Django梦之队.对Python中文分词模块结巴分词算法过程的理解和分析.ddtcms./blog/archive/xx/2/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 日资企业劳动合同
- 2025年物料提升机安装拆卸工(建筑特殊工种)考试试题题库
- 化工安全实务题库电子版及答案解析
- 人卫护理99块题库及答案解析
- 机械工厂安全试题库及答案解析
- 遵义从业资格证模拟考试及答案解析
- 安全知识考试题库电信及答案解析
- 银行从业资格考试22上及答案解析
- 天津护理综合题库及答案解析
- 游泳知识竞赛题及答案
- 保管员技师考试题及答案
- 公司区域经营管理办法
- 剥脱性皮炎课件
- 工程项目科技成果管理培训
- 科技论文写作教程市公开课金奖市赛课一等奖课件
- 戴明环(PDCA循环)管理培训教材课件
- 塑胶场地施工方案
- 中小学高级职称英语全英答辩题
- 小学地方课程教案(全面完整版)
- 《非常规油气地质实验技术与应用》教学大纲
- 产生你的企业想法课件
评论
0/150
提交评论