RSS

网站优化注意:网页正文提取算法细节问题

 网页的正文提取有好多种算法,有基于视觉的,基于标记窗的,基于双层决策等算法,这里讨论一些基于标记窗的算法(相对简单且效果还好)的相关细节问题,如下问题:如何提取一个网页的标题思路:提取网页的title,提取网页的meta里的keyword,提取网页里的所有h标签,先用title和keyword比,把title里的 keyword去掉,因为某些网站做SEO,在keyword和title里都有关键词堆叠,所以去掉重复的项,一般就是网页内容的标题了。

  一般一个网站的所有网页的keyword都相同,但碰上每个网页的meta keyword和本页内容相关这个算法就不灵了。然后再计算裁剪后的title和h标签(有限h1,h2次之)里提取的文本的文本相似度或者编辑距离,如果少于某个阈值,这个h标签的文本就是网页的标题。另外还要考虑title和正文标题一点关系都没有的情况。提取标题的算法有好多不可靠性,实在不行就直接去title了。
 
  问题:如下文字,两个横杠之间的文字,================================================== <div>没有花香,没有树高</div><td>((:&nbsp;那就等 着沦陷吧,如果爱情真伟大</td> <div>我早已为你种下<b>九百九十九</b>多 玫瑰</div> <div>妹妹你坐船头,<td>哥哥我岸上走sdf</td></div> ==================================================用正则分成以下几组字符串,引号引住的部分1、"没有花香,\r\n没有树高" 2、" 那就等着沦陷吧,如果爱情真伟大" 3、"我早已为你种下九百九十九多玫瑰" 4、"妹妹你坐船头,哥哥我岸上走sdf" 5、"哥哥我岸上走sdf"思路:其实就是取出html容器标签(td,div,span,p等)里的汉字部分,并且如果是嵌套容器的话,最里层的匹配一个分组,一直向外,每层算一个分组,最后把每个分组弄成一个字符串的列表问题:如何用正则把一段html文本块取出其带格式的文本思路:首先要去掉修饰性标签,<b>,<font>还有<img>等,其次要把<br>替换成\r\ n,&nbsp;替换成空格,再把<srcipt><style>等标签及其中间的字符都去了,想<a title="嘿嘿">这个标签里的"嘿嘿"不能算是正文,正文中的链接不能去掉,要改成“百度(http://www.baidu.com)”这样的格式,否则提取文本后链接信息就没了。

[时间:2008-12-23]
相关文章