搜索引擎探究(一)

前段是时间找工作,受打击了,本以为自己熟练了掌握了C/C++,windows编程,ATL、WTL编程,可以熟练的编写win32DLL,可以熟练的写MFC程序,就可以找个差不多的公司,谁料到,并不是所有的公司都找这样写window客户端的人。

百度,搜索;阿里,数据挖掘。这些东西,我真是一窍不通,所以一怒之下开始研究搜索引擎(主要是想去百度,所以研究一下这个)

《自己动手写搜索引擎》罗刚写的那本,这本书写的不错,当然讲的比较简单,但是对于入门确是一本很不错的书。

一、搜索引擎的基本技术

1、网络蜘蛛(spider)又称作网络机器人(Robot),或者Crawler,其主要目的是获取互联网上的信息,说简单点,就是从互联网上下载网页,然后通过网页中的URL下载另一个网页,依次类推,在互联网中漫游。

当然抓取网页时候,大部分有礼貌的网络机器人会遵循Robot.txt协议,这个协议是网站用来声明自己不想被搜索引擎搜索的。当然,这不是硬性规定。

2、网络蜘蛛只负责从网络中下载文件,下一步就是提取文档中的文本内容,主要是从HTML,TEXT,PDF,word,rtf,excel,powerpoint等文件中提取文本,当然也有流媒体内容,至于怎么提取,都会有相应的开源代码。

3、中文分词,应该是属于人工智能的知识。说白了,就是让计算机浅层次理解人类的自然语言。例如“你能明白我的意思吗?”这句话,对于一个外国人来说,肯定是不懂的,中文分词就是切割句子的方法,就是告诉那个外国人,这个句子是由哪些词语组成的。例如下面一种分割方法,“你/能/明白/我的/意思/吗?”,当然分割方法不唯一。

中文分词的常用方法有三种:

一种是单字方式,就是把句子中的每个字分别分割,“你/能/明/白/我/的/意/思/吗?”

二元覆盖方式,就是没两个字的分割,你能,能明,明白,白我,我的,的意,意思,思吗

分词的方式,“你/能/明白/我的/意思/吗?”

分词有两类方法:机械匹配,基于统计的方法。

机械分配主要利用正向或反向最大匹配的方法来分词,或者利用者两种方法进行分词,然后选出切出次数最小的那个方法,作为分词结果。

机械分配需要一个词典来判断一个单子组合是不是一个词,如果这个单子组合在词典中,则是一个词,否则不是。

基于统计的方法,是比较准确的,但是比较复杂,常用的有最大概率分词方法。其基本思想如下:

一个待切分的汉字串可能包含多种分词结果;

将其中概率最大的作为该字串的分词结果。

4、自然语言处理,这部分比较复杂,放到以后研究。

5、创建索引库。以我个人的理解,就是保存关键字的来源,比如我输入了,“计算机”这个关键字,通过索引可以查到包含“计算机”这个字符串的URL,当然哪些URL才最可能是用户想要的,这就是另一个需要研究的问题了。

      上面的5条是搜索引擎的基本知识,也就是每个搜索引擎都应该有的东西,具体细节待以后研究。

二、搜索引擎的分类:

1、通用搜索,常见的有google,百度等。这是我们经常用到的搜索,容易理解。

2、垂直搜索。这是针对某一个行业的专业搜索引擎,就是专门搜索某个行业的网页,不相关的网页不处理。

    垂直搜索是对网页库中某类专门的信息进行整合,定向分字段抽取行业相关的信息后再按适当的形式返回给用户。

3、站内搜索。比较流行的有三种实现方式:

     基于数据库的搜索;基于spider抓取的站内搜索;站内搜索软件系统

4、桌面搜索。允许用户很方便地快速找到存在于计算机本地磁盘上的相关文档。

          好了今天的学习就到这里,还没吃饭,饿死了。19:19,这个时间我喜欢

 

你可能感兴趣的:(网络,搜索引擎,互联网,百度,自然语言处理,powerpoint)