EasyTravel项目报告
文件类型:DOC/Microsoft Word 文件大小:字节
更多搜索:EasyTravel 项目 报告
EasyTravel 项目报告
网体project分工及源代码简要说明:
需求分析
负责:需求分析由小组讨论之后,由白华负责将讨论结果转化为文档
赢利模型
负责:盈利模型由小组讨论之后,由周政负责将讨论结果转化为文档
信息抓取部分
负责:邓国
1.源文件说明:抓取程序主要是修改阎鸿飞的tse,并在他的基础上加实现了数据库接口部分,增加了一个html解析部分.新增加的文件有:
1.错误检测部分:liberr.h, liberr.c .这两个文件来自unix enviroment advance programming 的错误处理部分.
2.数据库接口部分:easytravel的数据库采用mysql,api采用mysql++,数据库实现部分的文件是 CdbMysqlEngine.h ,CdbMysqlEngine.cpp .修改了 CdataEngine.h CdataEngine.cpp CdatabaseEngine.h CdataBaseEngine.cpp 等文件.
3.抓取部分:根据我们的要求,新增加类CEasyCrawler.h , CeasyCrawler.cpp .
4.html解析部分:html解析器的源代码来自开源软件ekhtml,easytravel中新增加了htmlAnalyser.h htmlAnalyser.cpp 实现我门需要的html解析功能,tse中CPage没有提供html解析功能,所以新增加了一个类CCleanPage用来去掉html中的标签,提取html的标题.
5.多线程控制:采用开源代码,原作者信息可见源文件 Semaphore.h ,Semaphore.c
用户自定义词典制做
负责:邓国
1.源代码说明:修改彭波老师提供的切词工具tsegtag的源代码.
1.切词部分:新增文件tsegtag.h,提供一个切词函数.
2.用户自定义词典部分:利用周政和白华制做的词典生成UseLex1文件,然后利用tmkdict程序生成自定义词典 dictdata.img. 源文件为:makeSceneryDict.cpp
信息检索部分
负责:邓国
源代码文件:search.cpp ,用户输入查询词,该程序经过处理之后输入结果.
这三部分的技术文档在文件 邓国.tar.gz文件中,文档生成采用doxygen软件.
词典制做部分
负责:周政,白华
手工制做景点词典
切词处理及页面分析
负责:邹俊峰
代码由两个文件构成,大部分函数和模块都在wbiaproj.cpp里面实现,另有头文件wbiaproj.h
wbiaproj.cpp文件的构成主要为以下几个函数:
int match(std::string myfile)
该函数以要处理的文件作为参数,对该文件的页面内容利用自定义的词典进行切分,并将切分所得的结果放入到缓冲区.
Insert_into_tables(mysqlpp::Connection mycon, int pageid, char* word,int freq);
作为数据库存取代理,该函数主要负责将统计分析所得到的结果放回到数据库中去,以供用户查找,返回到用户界面.
程序的词频统计功能在main函数里面实现,没有对其进行封装.
商业计划
我们的系统面向的顾客是希望从网上得到旅游景点信息的旅游爱好者,以及想要推广自己新开发旅游资源的地方旅游经营者.
1.市场分析
谁是顾客:Internet的迅速发展已经使得人们做任何事情之前首先可以考虑从网上获取信息,但从翰如烟海的网络资源怎样准确找到你的资源这是一个非常令人头疼的问题.我们的EasyTravel系统为一类特殊的人群(旅游爱好者)提供他们所关注的信息了,很好地帮助他们安排旅游的路线,时机和费用.当然对于地方旅游资源的经营者,无论是景点附近的宾馆,饭店,和景点经营者,他们又都可以透过我们的系统,推广介绍自己,将自己的特色和近期的活动广而告之,增加商业机会.
潜在市场规模:我们的最终计划是做网上的旅行社,构建一个大型的平台,为旅游资源的经营者(会员)提供最经济和实效的推广和介绍,为旅游爱好者(会员)提供更多种多样的可选旅游产品,从自助式的旅游到随团旅游.以会员的形式通过在网络上的信息沟通和交流,为旅游者最快捷购票和定酒店,以及安排旅游路线,我们所能提供的旅游服务更具有自由的组织性,和经济费用的灵活性,与普通的旅行社相比,在经营费用上具有更大的竞争力,不用说经营的规模.还可以考虑对于国外旅游信息的提供.
2.计划实施阶段:
第一阶段(一到两年时间),对旅游用户免费开放使用,增加用户规模,提供的信息包括旅游景点介绍,旅游景点天气,旅游路线和实用游记.有自己的论坛,方便旅游爱好者沟通交流.主要是专项搜索景点功能,动态从网上获得最新信息,提供给用户.以少量广告的形式获得收益,不断扩充信息,建立于旅游景点经营者良好的关系.
第二阶段(三到五年时间),用户关心的热门景点为例,提供小型的旅游组织,拥有自己的一家或两家会员性质的酒店和旅馆,和会员性质的旅游工作者,收益来源于旅游资源一方的会员费用和广告,以及回扣.不断扩大规模,以价格优势吸引更多的旅游爱好者加入会员,设计更多种旅游产品提供给用户.
第三阶段,(五到十年)当然是成为全国最大的网上旅行社.
3.竞争优势:
有许多门户网站都有自己的旅游频道,以及许多做旅游信息提供的网站,还有各大旅行社的官方网站,作为我们的竞争者,他们普遍存在着以下缺点:
酒店预订的广告太多,对路线的介绍不够吸引,所以队用户有用的信息不清晰,用户无法获得有用的信息—主要是各大旅行社的官方网站.
景点信息和旅游资源陈旧,更新速度不够.
由于不是真正的旅行社,无法有效提供真正的旅游产品,事实上收益不大,对于旅游信息的利用率也不高—主要是门户网站的旅游频道和地方旅游信息提供的网站.
经营的固定费用大,旅游产品成本太高—主要是各大旅行社的官方网站.而我们的EasyTravel系统可以集成以上竞争者的优点,避免他们的缺点,低成本,实用,高效,快捷,方便,以新型的经营模式快速成长.
4.总结
我们以向用户提供实时实用的旅游信息为优势,扩大用户规模,提高知名度,吸引更多的合作伙伴和资金.从小范围的旅游服务的专项服务的提供,逐渐发展到全方位,多旅游产品的提供者,建设成为全国最大的网上旅行社,最终实现产业化目标.
需求分析
1.引言
信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域.计算机虽然与人类的关系愈来愈密切,但由于计算机使用的繁琐性以及信息的不明确性等给信息获取带来很多不便.为了适应现代社会人们高度强烈的时间观念,提高人们的生活质量,缩短人们获取信息的时间,EasyTravel系统给人们带来了方便快捷的旅游信息的查询,使得人们对于自己旅游的目的地能够有清晰准确的了解.
1.1 编写目的
本需求的编写目的在于研究网上旅游信息的抓取与挖掘的方法.
本需求的预期读者EasyTravel系统开发小组成员,网络实验室的老师.
1.2 背景及范围
本项目的名称:EasyTravel旅游信息查询系统.
本项目的任务提出者及开发者是EasyTravel系统开发小组,用户是旅游爱好者.
本产品能够清晰准确的提供用户所搜索的旅游地点的相关信息,包括该城市旅游景点信息,相关游记,景点住宿,天气情况,风俗习惯.
1.3 定义 缩写词 略语
EasyTravel系统: 旅游信息查询系统,为用户提供所查询地点的相关旅游信息.
2 项目概述
该EasyTravel系统能够帮助用户适应网络信息时代的信息化生活,在浩瀚的网络信息海洋中,能够最贴切地为用户提供最关心的最实际的旅游信息,使用户能够轻松愉快的享受旅游带来的乐趣.
2.1 目标
2.1.1 开发意图
a. 为了旅游信息查询更完善;
b. 为了使用户查询旅游地点的相关信息更方便;
c. 为了减轻用户对旅游景点信息检索工作负担.
d. 能够使用户方便地指定旅游计划(包括旅游路线,旅游地点的时间分布以及需要做的准备等)
2.1.2 应用目标
通过利用本系统查询旅游信息,能帮助用户快速方便地对旅游地点进行深入全面的了解,合理的制定旅游计划,使旅游的行程能够更加的具有目的性,趣味性,安全性等.
2.1.3 作用及范围
本系统适用于广大准备旅游的网民,它是比较贴切的旅游信息查询系统,能够准确的提供用户想要查询的旅游地点的相关信息.
2.1.4 背景
现今的大众搜索引擎不能够方便快捷的为用户全面地提供旅游景点的最为关心的信息,为了能够让用户进行高效的信息检索,因此开发了本系统.
2.2 产品描述
本产品是一种建立在信息抓取,信息分析,信息提取,信息提供基础上的系统软件,包含网页抓取,切词,数据组织,数据库等多项技术.面向旅游信息的提供的专门系统软件.
2.3 产品功能
2.3.1 外部功能
EasyTravel系统软件具有输入,搜索,输出功能.
2.3.2 内部功能
该软件集命令,编程,编辑于一体,完成收集,过滤,组织,定位,显示.
2.3.3 功能表
名称 功能
外部功能
内部功能
用户
通过应用界面功能按钮菜单栏及终端,键盘完成输入,搜索,输出功能
自动定期从网络上收集更新旅游目的地的各种信息和连接,放入数据库,通过对查找条件的过滤与数据库互动,从数据库中提取相应有关的数据
2.3.4 功能描述图
2.3.5 用户特点
本系统的使用对象是广大准备自助旅游的网民,只需输入用户所在地和旅游目的地,我们将为你个人定制一条属于你的旅游专线,还包括对旅游地详尽的导游说明.
对于那些想深入了解旅游目的地信息的用户,可以通过此系统查询到与用户需求相关的信息,包括天气,住宿,以及相关景点的游记.用户通过了解这些信息,可以安排适当的时间地点去往目的地,也可以决定是否去往此处.
例如通过阅读某处的游记,发现这个旅游景点并不是自己喜欢的类型,比如喜欢人文景点,但是通过游记发现此景点以自然景观为主,这样用户就可以重新选择新的景点.
3 具体需求
3.1 功能需求
EasyTravel系统主要实现的功能包括:内部功能和外部功能两种.其中内部功能主要包括:网页抓取,访问本地数据库,切词,测试选定的旅游网站,游记提取.外部功能主要包括:接收系统的输入,显示搜索结果.系统搜索过程为:
3.1.1功能需求(一)——网页抓取
EasyTravel系统的网页抓取功能的实现主要依据tiny search engine.利用此搜索引擎,抓取指定的旅游网站,一般是各省的旅游信息网,各大门户网站的旅游专版以及各大旅行社的官方网站.
通常这些网站比较权威而且信息足够丰富准确,对这些网站的进行网页的抓取一般可以做到事半功倍的效果,减少了有效网页的搜索时间,提高了网页的抓取效率,并缩短了EasyTravel系统的旅游信息数据库的更新周期.
在完成了网页的抓取后,EasyTravel系统将抓取的结果存入本地的mysql数据库中,并进行相应的整理规类,为切词模块从mysql数据库中获得网页文本信息,进行切词提供便利.
3.1.2功能需求(二)——访问本地旅游信息数据库
本地数据库主要分为三部分:page, scenery,
page_to_scenery.其功能分别为:
page:一条记录存放网页的一个页面,包括id,url,title,content
scenery:存放一个景点名称,
page_to_scenery:存放景点名称和页面的对应关系,一个页面中会有多个景点
数据库的格式:
table page(页面):
id primary key /* 页面id */
url /* 页面url */
title /* 页面标题 */
content /* 页面内容 */
table scenery(景点):
id primary key /* 景点id */
name /* 景点名称 */
table scenery_to_page( 景点和页面的对应关系 )
id primary key /* */
page_id foreign key /* */
scenery_id foreign key /* */
type /* 标识该对应关系是游记对应还是一般的对应 ,0表示普通,1表示游记*/
读取主要是当有用户使用EasyTravel系统进行景点查询时,系统需要读取数据库,以进行景点检索.
查询是系统根据用户输入的景点关键字,对数据库进行读取访问,查找数据库中存在的与输入景点有关的信息,包括相关的天气,风景介绍等,系统将记录包括这些信息的网页的URL.
插入操作是EasyTravel系统在进行数据库更新时,将新抓取到的网页中的TITLE,URL以及CONTENT,存入数据库相关的位置,以备切词,搜索查询使用.
删除是将数据库中那些陈旧的信息进行清除的操作,比如记录的那些过去的天气的网页,已经没有保留的价值,这样可以将其从数据库中删除,提高数据库访问的效率.
3.1.3功能需求(四)——切词
EasyTravel系统的切词程序采用彭波老师提供的tsegtag.
切词使用的数据来源为数据库中的网页文本信息,系统从数据库中获取数据的接口需要提供一个类,负责专门的数据检索,命名为db_mysql 类.切词之后获得的信息应该能够给获得的名词做上位置标志,将词切分之后放入的数据库位置,这些都应该在数据切词时加以标明.
3.1.4功能需求(五)——地名词典(景点词典)
因为本系统主要做测试用,故地名词典即景点词典只包括了北京,江苏,四川和云南的景点名称,如果需要进一步增加系统的功能,将其他省份的景点加入即可.
EasyTravel系统的词典分为三级,在词典中含有一个包含关系.比如太湖属于无锡市,而无锡市又属于江苏省,这种包含关系需要在词典里面反映出来,以提供用户最直接明了的信息.另外北京为直辖市,词典分为两级,若在词典中加入其他的直辖市,词典分级应与北京相同.
EasyTravel系统的词典格式如下:
一级词条 ( 省份)
二级词条(城市)
三级词条.(景点或其他下一级条目)
同一个此条之间的上一级和下一级利用\t分格,而两个一级词条之间利用空行分隔.
比如,北京地区只有2级,江苏省有3级:
北京
香山
故宫
圆明园
江苏
无锡
太湖
扬州
瘦西湖
苏州
拙政园
在系统输出时,如果系统输入为香山,则输出香山的相关信息,如果系统输入为北京,则系统输出为以北京为上一级的所有的景点的相关信息,具体输出形式见系统外部功能的输出显示部分.
3.1.5功能需求(六)——选择系统测试网站
对于EasyTravel系统测试网站的选取应保证以下原则:网页抓取速度快,内容比较丰富,且需要对某些信息及时准确(比如天气情况等),另外还要保证旅游信息更新比较快的网站.
一般满足这些条件的网站包括:各省的官方旅游信息网,各大门户网站的旅游专版以及各大旅行社的官方网站等,这些网站提供的信息都比较有价值,尤以各大旅行社的官方网站为最优,它们提供的信息比较及时准确,而且包括详细的天气,住宿等相关信息,另外也会包括较为丰富的景点游记.
推荐网站:北京旅游信息网,中青旅官方网站,新浪旅游专版等.
3.1.6功能需求(七)——游记提取
旅游景点相关游记的提取时EasyTravel系统的一个特色.在用户利用EasyTravel系统进行相关景点旅游信息的提取时,系统除了提供给用户景点的天气情况,食宿情况等之外,系统还提供给用户一些该景点的具有代表性的游记.用户通过阅读这些游记,可以了解到该景点的一些景点介绍,游感等.
游记以URL的形式显示在输出页面上,用户通过点击链接,阅览游记.其过程如下:
对景点和页面对应关系以及游记和页面的对应关系,采用训练KNN分类器的方法来完成:首先人工挑选一些景点介绍页面和游记页面给分类器训练,然后利用分类器对数据库中的页面进行分类,分别提取出景点介绍类和游记类别,然后对这两个类别分别建立向量空间,计算出每一个页面的向量,最后用户输入查询词采用向量空间模型来进行匹配将结果输出.
3.1.7功能需求(八)——系统输入
系统输入要求用户直接输入一个景点名称,城市名称或省份名称.EasyTravel系统将根据用户的输入,进行景点相关信息的搜索.
3.1.8功能需求(九)——系统输出
系统输出主要包括与系统输入景点有关的天气,食宿等信息以及系与这些景点有关的游记.
若系统输入直接为景点的名字,则系统结果的输出形式:
景点名称:
与景点相关文章的URL
与景点相关游记的URL
例如用户检索的是"瘦西湖":
则系统的输出为:
瘦西湖:(这个功能由周负责)
瘦西湖相关文章的url (该功能由周负责)
瘦西湖相关游记url( 该功能由燕姐负责 )
如果用户输入的是省份名称,则系统的输出应首先该省的各个大城市,然后分别列出该城市的有名景点,并在每个景点后面列出相关的文章的URL和相关游记的URL.系统的输出形式如下:
省份名称:
城市一:
景点一:
景点一相关文章URL
景点一相关游记URL
景点二:
景点二相关文章URL
景点二相关游记URL
……
城市二:
景点一:
景点一相关文章URL
景点一相关游记URL
景点二:
景点二相关文章URL
景点二相关游记URL
……
……
举例说明,加入用户检索的是"江苏省",系统的输出是:
扬州:
瘦西湖
瘦西湖相关文章url
瘦西湖相关游记url
苏州:
挫政园
挫政园相关文章url
挫政园相关游记url
4 系统性能
更新时间
相关性强
数据库存储量小
信息检索时间短
易于扩展功能(订票,定房,会员制,论坛)
项目完成情况:
项目到现在为止已经实现的功能如下:
指定站点抓取,将抓取数据存入数据库
能够使用自定义的景点词典进行切词和信息过滤
对数据库中的数据进行切词处理,并将切词记录存入数据录中
用户输入关键字,能从数据库中检索出与改关键字相关的景点.
测试已经通过,但是结果不甚理想,对于第三部分,对数据库中的切词处理,还有待完善.
源代码和技术文档:
源代码:
源文件为EasyTravel.zip,解压缩之后会包含如下目录:
Tse 修改 阎鸿飞的 tse 实现的抓取程序
Mkdict 制作用户词典
Search 检索程序目录
PageProcess 对数据库数据进行切词,统计,建立景点和页面的对应关系
Doc 文档目录
信息抓取部分和检索部分,由邓国负责.其中源代码文件夹为:Tse,Mkdict,Search
信息处理部分有邹俊锋负责,其中源代码文件夹为PageProcess
自定义词典部分由周政和白华负责,在路径为Mkdict/dictionary_final
技术文档:
由邓国负责部分的技术文档在文件 doc/dengguo.zip中,格式为html,采用软件doxygen 自动生成.
由邹俊锋负责部分的技术文档在doc/zoujunfeng.doc
·上一篇:试卷类型:A
·下一篇:老人福利
