论文部分内容阅读
随着网络信息资源的急剧增长,人们越来越多地关注如何快速有效地从海量的网络信息中,抽取出潜在的、有价值的信息,使之有效地在管理和决策中发挥作用。垂直搜索引擎具有专、精、深的特点,可通过面向某一特定的领域、人群或需求仅搜索网络中的特定主题信息,并且聚合信息、处理索引,提供有价值的相关服务和信息,从而提高用户检索时的准确率。现在网络上进行商品交易的活动越来越多,在这里将针对这种应用来设计商品搜索引擎,以方便用户能够在短时间内找到自己需要的商品,并及时购买,那么这就涉及到了商品垂直搜索引擎的实现。本文提出了电子商务系统中的一个商品垂直搜索引擎。首先用python写爬虫从现有的B2C网站京东、天猫上抓取商品数据,也可以自己手动地添加商品数据到数据库,这里专门开发了后台数据添加模块。接着探讨了基于MD5数字签名的数据消重算法,经过试验在查准率、查全率和响应时间上都满足实际需求。然后借鉴关联规则理论对中文词语进行定义,在此基础上构建Autoword自动构词算法,该算法可以从大量中文语料库中动态地构造词表,并以此为基础进行中文文本挖掘工作。针对电子商务系统中商品结构化信息的特点,结合现有的TF-IDF算法提出了一种改进的排序算法,并在该系统中应用了全文检索和数据库查询两种技术。全文检索技术和数据库的结合既支持了相关度排序,提高了检索速度,又能灵活查询和使用商品的结构化信息和实时信息,并通过结果展示以及与其他电子商务网站的横向比较验证了该算法的优越性。现有的搜索引擎大都采用了输入—输出的响应模式,该模式没有考虑用户反馈,本文提出了基于用户交互的自适应算法,探讨了智能排序,从而利用用户数据对排序结果作优化。最后,本文完成了系统的总体框架搭建及实现。本人在学位论文中所做的主要工作如下:1、爬虫与数据消重模块设计与实现在本系统中的数据源为两部分,一部分是用python脚本写的爬虫程序从起始URL开始,以广度优先算法从现有的B2C网站京东、天猫上爬取到的数据,还有就是自己手动添加到数据库里的数据,这里专门开发了后台数据添加模块。优秀的垂直搜索引擎需要一个高质量的数据来源,高质量的搜索结果必然依赖于高质量的数据,为了避免得到重复、相似或者信息不完整的搜索结果,数据的正确性是至关重要的。本文设计了基于MD5数字签名的数据消重算法,经过实验在查准率、查全率和响应时间上都满足实际需求。2、基于关联规则的自动构词算法研究词语是中文文本的基本元素,汉语语言模型在中文文本挖掘中起关键作用。中文文本挖掘是个高维度的数据处理技术,挖掘算法对维度的大小比较敏感,挖掘效果依赖于词库的质量。另外,现存的汉语语言模型一般都是基于统计的,比如N-gram语言模型以及各种改进模型,都具有较高的计算复杂度。为降低语言模型的计算复杂度、提高词库的质量和构词效率,本文借鉴关联规则理论对中文词语进行定义,在此基础上构建Autoword自动构词算法,该算法可以从大量中文语料库中动态地构造词表,并以此为基础进行中文文本挖掘工作。最后通过实验证明本文提出的自动构词算法的有效性。3、排序优化算法的改进和研究针对电子商务系统中商品结构化信息的特点,结合现有的TF-IDF算法提出了一种改进的排序算法,并在该系统中应用了全文检索和数据库查询两种技术。全文检索技术和数据库的结合既支持了相关度排序,提高了检索速度,又能灵活查询和使用商品的结构化信息和实时信息,并通过结果展示以及与其他电子商务网站的横向比较验证了该算法的优越性。现有搜索引擎大都采用了输入—输出的响应模式,该模式没有考虑用户反馈。本文还提出了基于用户交互的自适应算法,探讨了智能排序,从而利用用户数据对排序结果作优化。4、总体框架搭建及实现分析和掌握了Lucene主要架构和各个部件,搭建了完整的开发环境,详细地研究其中的索引模块和检索模块实现机制和原理,通过对搜索引擎以及结合Lucene自身的特定制定本次设计需要实现的功能,开发了一个基于Lucene的商品垂直搜索引擎。它具有一下特点:(1)能够接受python爬虫爬取的数据,也有自己的后台数据手动添加模块;(2)支持分词查询;(3)运用Lucene工具包编程实现了网页内容索引;(4)运用Ajax技术实现搜索服务的网页交互,生成动态网页,返回用户搜索结果;(5)运用Spring框架实现系统的后台管理,运用JSP技术实现系统的前台开发;(6)支持全文搜索;(7)能够高亮显示搜索关键字;(8)显示查询所用的时间;(9)显示搜索历史、过滤关键字;(10)能够清除查询历史。其中分词、全文搜索和排序都可以结合Lucene提供的类库以及本文研究的相关算法实现,而关键字高亮度显示只需要借助Highlighter的帮助,通过数据库持久化保存数据。