欢迎来到天天文库
浏览记录
ID:23884869
大小:53.50 KB
页数:6页
时间:2018-11-11
《聚类系数,小世界,交通,网络搜索》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、聚类系数,小世界,交通,网络搜索聚类系数,小世界,交通,网络搜索 1网络论坛分析 为了整合多个论坛中的信息就需要对多个论坛的信息进行分析并抽象出共同的特征。目前,绝大数论坛都是由板块和帖子构成,即若干主题相关的帖子聚合形成板块,若干板块聚合构成论坛。每个论坛中的帖子地址和板块地址都具有相同的URL地址格式。帖子的URL地址显示了该帖子的内容;而板块的URL地址显示的是帖子标题列表,由于一个板块具有多个帖子,所以往往要划分为多个页面来显示,所以这里的板块URL地址是第一页,通过翻页地址可以链接到该板块的下一页。以采购经理人论坛网站为
2、例,帖子的URL地址格式如下:forum.php?mod=viep;tid={articlEid}extra=page%3D{nextPage?Id}。其中{articleId}是帖子的数字编号,{nextPageId}是翻页地址的数字编号,即当前板块的页面编号。板块的URL地址的格式如下:forum.php?mod=forumdisplayfid={boardId}。其中{boardId}是板块的数字编号。板块翻页URL地址的格式如下: forum.php?mod=forumdisplayfid={boardId}page={ne
3、xtPageId},这里的{boardId}是板块的数字编号而,{nextPageId}是板块的页面编号。 因此,本文认为一个论坛可以通过论本文由forum.php?mod=viep;tid=120extra=page%3D66 2008-1-8 仍以采购经理人论坛中那个帖子为例,其对应的xml文件保存路径如下所示: bbs.purchasingbbs..htmlboard10board10_20111202article120.xml 可以看出xml文件的存储也采用了论坛域名、板块编号、处理日期三级目录结构。
4、 提取程序首先从数据库中读取所有visitedFlag=1的记录并将这些记录都封装成ArticleBean实体类,再根据ArticleBean中的boardId字段、saveDate字段构成帖子的html文件存储路径和xml文件存储路径,最后从html文件中提取相关信息到xml文件中。 检测html文件的页面编码是提取程序的关键点。检测页面编码的程序采用三种中文编码:gbk、gb2312、utf8分别来解析html页面,如果某种编码解析出的html节点全部有效,则该编码就是页面编码;如果这种策略失败,则采用utf8编码去解析htm
5、l页面,并查找页面中是否存在charset属性,并提取出charset属性的值作为当前页面编码。由于同一论坛的所有帖子的页面编码都相同,为了避免每次提取内容时都检测页面编码,应该将首次检测出的页面编码保存到SiteInfo数据表中,具体的计算流程见图3所示。 图3检测html页面的编码 检测出页面编码后就可以借助HtmlParser2.0来解析出帖子的有效内容、发表时间等信息。帖子的有效内容都包含在一个具有id属性的html标签中,以采购经理人论坛为例,帖子的有效内容包含在id值为postmessage_[d]+的html元素中
6、。预先将内容标识contentFlag存放在SiteInfo数据表中,在读取论坛基本信息的时候该contentFlag被封装到SiteBean实体类中。提取有效内容的具体过程如图4所示。在提取过程中将发现的有效内容放入到StringBuffer缓冲区中,最后采用Dom4J开源包将StringBuffer的内容写入到xml文件中。 图4提取帖子内容 3搜索引擎设计 前面的爬虫程序从多个网络论坛中将所有板块的帖子下载到本地文件系统,并转化为统一的xml文件。为论坛搜索引擎的开发提供了数据源。这里的搜索引擎设计分为两大步骤,即索引
7、文件的制作和搜索功能的开发。 3.1索引文件 爬虫程序生成的xml文件不能直接提供给搜索引擎使用,必须采用倒排文档技术生成索引文件。Lucene是一款开源的搜索引擎开发框架,它提供了制作索引的API接口。由于Lucene自带的分词包对中文的支持效果不是很好,本文采用了开源的paoding分词器,先将paoding分词器封装成符合Lucene要求的分词器,然后再使用这种分词器创建Lucene索引。在建立索引之前,设置索引的合并因子为50,设置文档在内存中的数目为100,这可以提高建立索引的效率。具体代码如下: Analyzeran
8、alyzer=nel文件时如果直接采用递归的方法遍历文件目录,容易产生栈内存溢出,因此本文根据ArticlEinfo数据表中保存的boardId字段、saveDate字段生成该记录所对应的xml文件存储路径,根据路径直接
此文档下载收益归作者所有