mahout查询词推荐应用方案_第1页
mahout查询词推荐应用方案_第2页
mahout查询词推荐应用方案_第3页
mahout查询词推荐应用方案_第4页
mahout查询词推荐应用方案_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

了...”。用户基本思想就是计算用户/word的关系,为用户推荐搜索word用户可以是的用户,或者根据浏览器标识的临时用户是邻居,因此可以给u3推荐word1。 用户 ,并设置到请求参数中给solr日志组件使用。{HttpServletRequestreqw=Stringsessionid=reqw.getSession().getId();Stringip=reqw.getRemoteHost();reqw.getParameterMap().put("session",newString[]{sessionid});reqw.getParameterMap().put("ip",newString[]{ip});chain.doFilter(reqw,rsp);}值或者使用mahout的Boolean模型类-GenericBooleanPrefDataModel。BasicDataSourceds//获取BasicDataSourceds//获取JDBCFastByIDMap<FastIDSetdatanewFastByIDMap<FastIDSet>();//推荐模型的内存数据集Statementstmt=...//JDBCStringsql="SELECTDISTINCTSESSION,QUERYFROMsolr_logdata"+"WHERELOGTYPE='QUERY'orderbydatedesc";ResultSetrs=while(rs.next())Stringuser=rs.getString("SESSION");Stringword=rs.getString("QUERY");FastIDSetitemIDsdata.get(uid);//用户的wordif(itemIDs==null){itemIDs=newFastIDSet();data.put(uid,itemIDs);}}DataModelmodel=newmap对象来保存此映射关系,以用户-Long的映射为例,提供2个方法如下:publicstaticsynchronizedLonggetUserId(Stringuser)if(user==null)user="NULL";Longlid=if(lid==null)lid=new}return}publicstaticStringgetUserById(Long{ tor<String>it= while(it.hasNext()){Stringkey=it.next();Longid=if(id!=null&&return}return}MySQLBooleanPrefJDBCDataModel等已经实现的类。mender()throwsUserSimilaritysimilarity=newLogLikelihoodSimilarity(model);,mender=new } 与基于用户的CFItemSimilaritysimilarity=newLogLikelihoodSimilarity(model);}mender= privateprivatestaticmender()throwsLonguidnew 的用户 mender mendations for mendedItemritem }}黄岛千佛山由于本场景中使用了用户的session作为标识,其的是用户与搜索引擎的一段会话交CF推荐,也就是“搜索了此的用户也搜索了...”。publicstaticDataModelupdateModel(DataModelmodel,Stringuser,Stringitem)publicstaticDataModelupdateModel(DataModelmodel,Stringuser,Stringitem)ExceptionLonguid=getUserId(user); returnGenericBooleanPrefDataModelgb_model=FastByIDMap<FastIDSet>FastByIDMap<FastIDSet>data=gb_model.getRawUserData();FastIDSetitemIDs=data.get(uid);if(itemIDs==null){itemIDs=newFastIDSet();data.put(uid,itemIDs);}returnnew}或者使用jdbc <ponentmender"<ponentmender"ponent" 修改数据模型的功能,即支持setPreference()方法的操作。要求此类必须是单例对象,以保证用户、查询词与Long实 实现solr查询词的推荐,内部封装GenericBoolean mend方法,先进行用户名称、物品名称到Long的转换,然publicTasteExceptionmend(Stringuser,String[]items,publicTasteExceptionmend(Stringuser,String[]items,inthowMany)Longuid= mendedQuerys=newArrayList< Long[]itemids=wrapper.getItemIds(items);ifif(itemids!=for(Long,,}}mendedItemsmendedItems==nullmendedItems.size()< mendedQueryq=} } 返回的XML2、现在采用的推荐算法是实时计算的,即每次调用mend方法时对模型的所有数据比如"济南大明湖"和"济南大明湖"实际都是相同的查询,但在本方案中是2Item。对此也应CF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论