快速业务通道

dySE:一个Java搜索引擎的实现,第2部分 网页预处理 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
3. 获取原始网页库中内容

 public String getContent(String fileName, int offset)   {     String content = "";     try {       FileReader fileReader = new FileReader(fileName);       BufferedReader bfReader = new BufferedReader (fileReader);       bfReader.skip(offset);       readRawHead(bfReader);       content = readRawContent(bfReader);     } catch (Exception e) {e.printStackTrace();}     return content;   }

上述代码中,省略了 readRawHead 和 readRawContent 的实现,这些都是基 本的 I/O 操作,详见所附源码。

正文抽取

对于获得的单个网页数据,我们就可以进行下一步的处理,首先要做的就是 正文内容的抽取,从而剔除网页中的标签内容,这一步的操作主要采用正则表达 式来完成。我们用正则表达式来匹配 html 的标签,并且把匹配到的标签删除, 最后,剩下的内容就是网页正文。限于篇幅,我们以过滤 script 标签为示例, 其代码如下 :

清单 4. 标签过滤

 public String html2Text(String inputString) {     String htmlStr = inputString; // 含 html 标签的字 符串     Pattern p_script;  Matcher m_script;     try {        String regEx_script = "<script[^>]*?> [\\s\\S]*?</script>";        p_script = Pattern.compile (regEx_script,Pattern.CASE_INSENSITIVE);        m_script = p_script.matcher(htmlStr);        htmlStr = m_script.replaceAll(""); // 过滤 script  标签     }catch(Exception e) {e.printStackTrace();}     return htmlStr;// 返回文本字符串   } 

通过一系列的标签过滤,我们可以得到网页的正文内容,就可以用于下一步 的分词了。

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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号