目前搜索引擎的应用越来越广,是网民的上网必备工具。
目前的主要搜索引擎的模式都是,用户输入一些关键字或者句子,无论是那种,搜索引擎都会首先对用户的输入进行分词,这样可以增加搜索结果的准确性,这是和普通数据库搜索的不同点(普通的数据库搜索,只是简单的用 like %关键字%),然后搜索引擎去海量的索引库去查找这些和用户输入相关的信息,显示的结果会包含网页的相关摘要。
中文搜索引擎相关的技术包含:网络蜘蛛,中文分词,索引库,网页摘要的提取,网页相似度,信息的分类。
1。网络蜘蛛
网络蛛蛛是指对浩瀚网络抓取信息的程序,他们往往是多线程,不分昼夜的抓取网络信息,同时要防止对某个站点抓取过快,导致信息提供方服务器过载。
网络蜘蛛的基本原理:先从一个起始页面(建议从yahoo中文目录或者dmoz中文目录)开始抓取,获取此页面内容,摘要,然后提取页面所有连接,蜘蛛接着抓取这些连接,一直源源不断的抓取。这些只是基本原理,实际应用要复杂很多,你可以试着自己写一个蜘蛛,我曾经用PHP写过(PHP不能多线程,缺陷。)
2。中文分词
中文分词一直是中文搜索引擎的关键点,中文不同英文,英文每个单词是用空格分开,而中文一个句子往往是一些词的连结,没有分割符,人可以很容易的看懂句子的意思,但是计算机很难开懂。
目前我了解的中文分词方法(据说有老外的不用词典的中文分词方法),几乎都是有自己的中文词典,分词时去词典匹配,达到分词目的,分词的好坏,和词典关系很大。你可以看我上篇文章,是用PHP写的中文分词方法。