一、项目开发背景
衣食住行一直是社会人赖以生存和生活的几大要素。随着当今社会快速的现代化和城市化,衣、食、行等方面的问题已经变得十分的容易和便捷,但是,住的问题却犹如一座大山,压在我们的肩头,让我们感觉越来越沉重。
在一个现代化的城市中,除去原住民,除去富裕得足以买得起一座房子的和能够幸运的得到公司或者单位分房的人,其余的相当大的一部分人基本上要靠租房来解决住的问题。但是,实际中关于住房出租的信息,稀少而且混乱,对于一个急切想要租到一套适合自己需求的住房的人来说,这显然是十分困难和不便的。
有租房需求的主要是这样一些群体:刚刚开始工作的尚无多少积蓄的工薪阶层;已工作多年但是仍无力购买任何形式住房的低收入阶层;准备考研或其它各种考试的部分大学生群体;相当一部分的研究生群体。这些人占据了城市生活的相当重要的一角。另一方面,随着信息技术的飞速发展,人们早已习惯于在网上找寻自己需要的信息,尤其是通过搜索引擎来从海量的信息中提取自己关注的部分。结合上面两部分因素,我们便自然的产生了开发这样一个租房信息的专业搜索引擎的想法,主要是为了服务于相当一部分的有租房需求的人群。
二、项目需求分析
1、系统目标
本系统的目标就是:为所有需要获取租房信息的人,提供最全面的信息,最便捷的方式,使得网络搜索引擎真正成为最值得信赖的信息来源。这里的租房信息可以包括网络上现有的所有比较可靠的网站和论坛上发布的信息,也包括和本搜索引擎具有合作关系的房产中介所提供的信息。这些信息原本散布于各个网站的边角或者张贴于大街小巷的隐蔽位置,本系统正是需要有效的整合这些渠道的各种信息,最大可能的提供最有价值的租房信息。
本系统的提出主要针对传统租房信息获取渠道的不便捷性,即:需要耗费大量的精力和物力来获取信息,以及现有网络租房信息获取渠道的不完备性,即:信息的非有效性整合和信息的分布不一致性。同时,本系统又吸收先有信息渠道的长处,做以扩展。
2、系统功能
(1)信息的抓取
从我们关注的可能会发布租房信息的网站和论坛抓取它们的网页,并以一定格式提取抓下来的网页中的有效信息。
(2)信息的处理和存放
对于提取来的文本信息,进行切分分词、添加标签、词频统计,并据此建立全文索引。
(3)信息的检索
接收用户输入的搜索条件,对其进行分析处理,然后在索引中进行查询匹配,从本地数据库中提取所有符合条件的信息。
(4)返回结果给用户
将提取的信息排序后,以结果页面的形式呈现给用户。
系统性能要求
(1)响应时间
系统的响应速度应该在用户可接受的范围之内,至少与现有各种搜索引擎相当。这点要求我们必须建立结构合理的索引以及设计高效准确的查询、搜索算法。
(2)结果的准确性和合理性
对于用户输入的搜索条件,返回的结果应该尽可能的和他期望的保持一致,并且越接近的余越应先被用户看到。这涉及到网页信息提取、索引建立、条件匹配、结果排序等问题。
(3)时效性
用户希望看到的是越新的信息越好,过时的租房信息对于用户来说没有价值或者只有很小的参考价值。这要求我们尽可能频繁的对网站进行抓取,然后分析,另一方面,在将结果呈现给用户的时候,排序也要考虑到时间因素,即越新的信息要越排在前面。
(4)灵活性
系统要有良好的接口,便于后面的扩充,以适应信息源的增加或者减少;要留有服务器接口,以实现后面服务器功能的需要;要具有跨平台功能。
(5)其它
要求用户界面友好,运行稳定。
三、项目开发计划
1、开发规模计划
由于本项目是作为课程作业来做的,受到时间和人力等方面的约束,我们在实际开发中只能减小问题的规模,开发一个demo程序的原型系统。初步计划是,抓取网页只在北大未名和水木清华两大bbs的相关版面进行。在此基础上进行网页信息的提取,分词,建立索引,然后实现对输入关键词的解析,匹配查询,结果排序,返回到页面显示等工作,从而完成概念上的实现,给出初步的系统原型。
2、初步开发计划
(1)界面
类似于baidu和google的界面,用户可以输入搜索条件,点击搜索按钮后,下面排列出符合条件的结果。稍微不同的是,由于租房信息跟地域(城市、地区)紧密相关,所以在用户输入搜索条件前,要先让用户选定一个地区,然后再进行搜索。这里我们仅考虑北京市城区。
(2)后台
初步考虑分为以下几个模块:
A.网页抓取模块:对北大未名和水木清华两大bbs相关版面,利用crawler进行抓取。
B.网页分析模块:提取网页中有用的信息,保存为文本格式。
C.网页分段模块:采用合适的分段技术,将每个文本分成多段。
D.索引建立模块:对分好的段进行分词、标注、词频统计等工作,建立全文索引。
E.查询匹配:将用户输入的关键词,采用合适的查找算法与索引进行逐一匹配,将符合的内容提取出来,返回到界面。
F. 排序:考虑相似度和时间等因素,将结果越接近,时间越新的内容排到前面。