dySE:一个Java搜索引擎的实现,第2部分 网页预处理 - 编程入门网
3. 获取原始网页库中内容
上述代码中,省略了 readRawHead 和 readRawContent 的实现,这些都是基 本的 I/O 操作,详见所附源码。 正文抽取 对于获得的单个网页数据,我们就可以进行下一步的处理,首先要做的就是 正文内容的抽取,从而剔除网页中的标签内容,这一步的操作主要采用正则表达 式来完成。我们用正则表达式来匹配 html 的标签,并且把匹配到的标签删除, 最后,剩下的内容就是网页正文。限于篇幅,我们以过滤 script 标签为示例, 其代码如下 : 清单 4. 标签过滤
通过一系列的标签过滤,我们可以得到网页的正文内容,就可以用于下一步 的分词了。 dySE:一个Java搜索引擎的实现,第2部分 网页预处理(4)时间:2010-11-20 IBM 董宇分词 中文分词是指将一个汉字序列切分成一个一个单独的词,从而达到计算机可 以自动识别的效果。中文分词主要有三种方法:第一种基于字符串匹配,第二种 基于语义理解,第三种基于统计。由于第二和第三种的实现需要大量的数据来支 持,所以我们采用的是基于字符串匹配的方法。 基于字符串匹配的方法又叫做机械分词方法,它是按照一定的策略将待分析 的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字 符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可 以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最 长)匹配和最小(最短)匹配。常用的几种机械分词方法如下: 正向减字最大匹配法(由左到右的方向); 逆向减字最大匹配法(由右到左的方向); 最少切分(使每一句中切出的词数最小); 双向最大减字匹配法(进行由左到右、由右到左两次扫描); 我们采用其中的正向最大匹配法。算法描述如下:输入值为一个中文语句 S ,以及最大匹配词 取 S 中前 n 个字,根据词典对其进行匹配,若匹配成功,转 3,否则转 2 ; n = n – 1:如果 n 为 1,转 3;否则转 1; 将 S 中的前 n 个字作为分词结果的一部分,S 除去前 n 个字,若 S 为空 ,转 4;否则,转 1; 算法结束。 需要说明的是,在第三步的起始,n 如果不为 1,则意味着有匹配到的词; 而如果 n 为 1,我们默认 1 个字是应该进入分词结果的,所以第三步可以将前 n 个字作为一个词而分割开来。还有需要注意的是对于停用词的过滤,停用词即 汉语中“的,了,和,么”等 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |