网络编程
位置:首页>> 网络编程>> Asp编程>> 文章内链(标签)的一个思路

文章内链(标签)的一个思路

作者:shen.li 来源:秋寒博客 发布时间:2009-10-31 19:03:00 

标签:标签,内链,文章,分词

昨天晚上睡觉前突然想到的,在此记一笔。

传统方式

以前我们做文章系统或新闻发布系统的时候,做文章内链(标签)的时候,通常是通过以下方式来实现的:

数据库:
article(文章表)
id, title, body, adddate, userid

keyword(内链表)
id, name, link

在发布文章的时候,循环内链表内的所有,来替换文章的body。

这样确实是实现了想要的功能,但是如果我们的内链表的数据达到很大的数目,比如2W、5W或更多的时候。每发布和修改一片文章的效率是可想而知的。那么网易的新闻、百度的百科等这样打大型网站是如何实现的呢?如果按照以上的做法,那系统在几个月后就直接崩溃了。呵呵~

分析比较

一篇正常的文章会有多少字(不计HTML代码)?1W?我想1W的文章已经算是很长的了,而且想在如果直接在一个页面显示1W的文章相信没有几个人有耐心能看完的。为了页面美观和用户体验,编辑通常都是将内容过多、篇幅超长内容的文章分段处理(分为几篇文章,或分章节)。如果我们能事先将可能出现内链的字从文章中提取出来,再从数据库里检索,这样效率是不是就可以得到很大的提高?答案是肯定的。我们就拿1W字的文章来说,假设文章的所有文字都需要内链,循环的次数是1W次。比上面的例子假设要强得多吧?

在传统方式中,不管你要不要,把内链表的东西全查一边。而下面这种思路是事先将有可能出现内链的字词全部整理出来,再用这些词分别去检索内链表。这样一比较问题就出来了。

新思路就是:从文章中取出需要内链的字词,然后去查询内链表。

可行操作

我们暂且把传统方式称为被动方式,把新思路的方法称为主动方式。

主动方式的实现方法目前我只想到一个,下有简述,如果您有更好的方法,欢迎交流!

利用分词技术,我们可以对一篇文章进行分词。然后根据分词后的词表,过滤掉常用的物主代词、副词、感叹词等。把名词、品牌、地名、商标等留下,或者根据自己的词库表来分词。然后把剩余的字词去检索内链表,如果有存在,我们就坐上链接,不存在就PASS。

以上只是思路的一个初步构思,在实际实现过程中需要考虑的因素很多。我觉得重点就在分词这个环节。

此个方法我尚未实践,欢迎大侠测试实践。

0
投稿

猜你喜欢

  • MySQL安全性指南(2) 作 者: 晏子2.1.3 数据库和表权限下列权限运用于数据库和表上的操作。ALTER允许你使用ALTER TAB
  • 如果你想进一步了解如何用JavaScript来为网页添加交互性的话,你也许已经听过JavaScript的事件代理(event delegat
  • 众所周知,IE 6只支持单通道的PNG图片(即只有透明/不透明2种状态,gif图片的透明单通道透明),因此如果需要使用alpha透明的png
  • 对于更完整的代码可以参考,这个是支持数据库的版本。经过测试Asp+Ajax仿google搜索提示效果 数据库版google搜索提示.rar
  • 用采集程序的优点有:无须维护网站,因为采集程序中的数据来自其他网站,它将随着该网站的更新而更新;可以节省服务器资源,一般采集程序就几个文件,
  • MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配的格式。标准的SQL模式匹
  • 将数据库中的信息存储至XML文件中:save.asp<!-- #include file="adovbs
  • YUI Compressor 压缩 JavaScript 的内容包括:移除注释移除额外的空格细微优化标识符替换(Identifier Rep
  • 除了在 Error 对象和 Errors 集合中说明的提供者错误之外,ADO 本身也将错误返回到运行时环境的异常处理机制之中。使用
  • 几个常用的js小函数,在表单验证时也许您用得到:一检查是否是email地址,二检查是否为数字,三检查是否为电话号码,四检查num是否是负数或
  • 阅读上一篇:FrontPage2002简明教程六:图片库 虽然FrontPage已经给我们提供了很多面很强大的所见即所得的工具,但是随着HT
  •  模块化分页1.查询语句块<% 取得当前文件名 temp = Split(request.ServerV
  • 网站域名一般都会选简短易记的,因为这对于网站宣传来说也可以省不少力。而被很多网站忽视的站内Url结构则在一定程度上反映出网站的整体架构。当设
  • QueryCache(下面简称QC)是根据SQL语句来cache的。一个SQL查询如果以select开头,那么MySQL服务器将尝试对其使
  • 译序:这篇文章是可用性大师 Jakob Nielsen 在10年前总结的,到今天仍然受用。通过这个时间跨度,可以得出,可用性话题不是某个时代
  • 在了解了JavaScript1.7的相关更新后,我们再继续关注JavaScript1.8的新特性。在W3C Group带来的JavaScri
  • 另:@会影响效率如:@mysql_connect()    可以导出错误,但会影响效率。mysql与mysqli的区别:
  • 很多朋友使用Dreamweaver一段时间后,开始热衷于寻找各式各样的插件,追求各种各样的特效,而对于Dreamweaver中的基本功能反而
  • 原理 采集程序实际上是通过了XML中的XMLHTTP组件调用其它网站上的网页。比如新闻采集程序,很多都是调用了sina的新闻网页,并且对其中
  • Microsoft? SQL Server? 2000 的可用版本如下:SQL Server 2000企业版作为生产数据库服务器使用。支持
手机版 网络编程 asp之家 www.aspxhome.com