搜索算法技术
❶ 常见的数据检索算法有哪些数据库都采用什么样的检索方式如何提高检索的效率
信息检索方法包括:普通法、追溯法和分段法。1、普通法是利用书目、文摘、索引等检索工具进行文献资料查找的方法。运用这种方法的关键在于熟悉各种检索工具的性质、特点和查找过程,从不同角度查找。普通法又可分为顺检法和倒检法。2、追溯法是利用已有文献所附的参考文献不断追踪查找的方法,在没有检索工具或检索工具不全时,此法可获得针对性很强的资料,查准率较高,查全率较差。3、分段法是追溯法和普通法的综合,它将两种方法分期、分段交替使用,直至查到所需资料为止。(1)搜索算法技术扩展阅读检索原因信息检索是获取知识的捷径美国普林斯顿大学物理系一个年轻大学生名叫约瀚·菲利普,在图书馆里借阅有关公开资料,仅用四个月时间,就画出一张制造原子弹的设计图。他设计的原子弹,体积小(棒球大小)、重量轻(7.5公斤)、威力大(相当广岛原子弹3/4的威力),造价低(当时仅需两千美元),致使一些国家(法国、巴基斯坦等)纷纷致函美国大使馆,争相购买他的设计拷贝。二十世纪七十年代,美国核专家泰勒收到一份题为《制造核弹的方法》的报告,他被报告精湛的技术设计所吸引,惊叹地说:“至今我看到的报告中,它是最详细、最全面的一份。”
❷ 英文搜索引擎bing的核心算法是什么
英文搜索引擎bing的核心算法是:获得网站网页资料,建立数据库并提供查询的系统,搜索引擎的数据库是依靠一个叫“网络机器人(crawlers)”或叫“网络蜘蛛(Spider)”的软件,通过网络上的各种链接自动获取大量网页信息内容,并按一定的规则分析整理形成的。
bing加上为雅虎提供的搜索技术支持,必应已占据29.3%的市场份额。
(2)搜索算法技术扩展阅读:
关键词分数:
1、网页title中关键词的处理
2、H标签(h1-h6)中关键词的处理
3、文本内容中关键词的密度
4、外链中关键词的选择
5、域名中的关键词
域名权重:
1、域名注册前的历史问题
2、域名注册时间的长短
3、外链网站的权重
4、外链、给出链接的相关度
5、是否使用历史、链接形式
❸ 搜索技术
问题求解过程是 搜索答案(目标) 的过程,所以问题求解技术也叫做搜索技术——通过对 状态空间 的搜索而求解问题的技术。
问题可形式化地定义成四个组成部分
在解题过程中 达到过的所有状态 的集合。不同于状态空间,搜索空间是其中一部分。状态空间和搜索空间都属于 过程性知识表示 。
八数码问题详解
两种搜索技术
无信息搜索策略也称 盲目搜索 :没有任何附加信息,只有生成后继和区分目标和非目标状态。
五种盲目搜索策略有:广度优先搜索,代价一直搜索,深度优先搜索,深度有限搜索,迭代深入深度优先搜索。
从四种度量来评价广度优先搜索
性能:通常使用递归函数实现,一次对当前节点的子节点调用该函数。相比广度优先,内存需求少(分支因子 * 最大深度+1)。但 不是完备的也不是最优的 *。
深度优先搜索的无边界问题可以通过提供一个 预先设定的深度限制I 来解决。深度=I的节点当作无后继节点看待;虽然解决了无边界问题,但 有可能无解 ; 如果选择I>d则深度优先原则也不是最优解 。
每次改变限制深度 ,多次调用深度有限搜索,当 搜索到达最浅的目标节点深度 时就可以发现目标节点,称为迭代深入深度优先搜索。这种搜索结合了广度优先和深度优先两种搜索方式的优势。 解决了深度优先的完备性问题 。空间需求是(b * d),时间需求是(b d )。当搜索空间很大且深度未知时,迭代深入深度优先搜索 是首选的无信息搜索方式 。
迭代深入搜索中因为多次重复搜索上层节点,使部分状态反复生成,看起来很浪费内存空间和时间。但是因为 在分支因子比较均衡的搜索树 中, 多数节点都是叶子节点 *(叶子节点数远大于上层节点总和),所以上层节点多次生成的影响并不大,与广度优先相比,效率还是很高。
用于目标状态已知,求解过程的问题。通常通过 广度优先搜索 实现。从 起始节点和目标状态两个方向 开始扩展,当 两个OPEN表出现交集 时表明搜索到了一条从起始到结果的一条路径。 缺点 :算法编写难。但一旦实现,效率要远高于其他盲目搜索。
评价函数 :f ( n ) = h ( n ) ;评价函数等于启发函数
解释:贪婪最佳优先搜索中 无条件选择 当前离目标最近(代价最小)的结点进行扩展。但是 局部最佳不是全局最佳,即非最优。 其中h( n )称为 启发函数 ,是从节点n到目标节点的最低代价的 估计值 。
评价函数 :f ( n ) = g ( n ) + h ( n );评价函数等于启发函数加路径耗散函数
解释:
另,对于有向图的搜索还可以采用图搜索方式。详情: 图搜索和树搜索详解
称启发函数是可采纳的,如果h( n ) 满足 h( n ) ≤ h * ( n ) ,其中 h * ( n )是从当前节点 n到达目标的最低真实代价 ,即h( n )的估值永远小于真实耗散值;因为f ( n ) = g ( n ) + h ( n ),且g(n)为已知常数,所以 f(n)永远不会高估经过结点n的解的实际代价 ,所以是最优解。
如果采用 A* 图搜索算法,则不一定返回最优解 。因为如果最优路径不是第一个生成的,可能因为有重复状态而被丢弃了。见上个链接: 图搜索和树搜索详解
如果对于每个结点n,以及n的行为a产生的后继结点n'满足如下公式: h ( n ) ≤ c ( n, n', a) + h( n ') (c ( n, n', a)可以理解为g(n')),则称这个h ( n )启发函数是一致的。
A* 搜索由初始结点出发开始搜索,以同心带状增长f(n)耗散值的方式扩展结点。如果h(n)= 0 意味着只按g(n)值排序,即同心带为“圆形”。使用启发函数则同心带向目标节点拉伸(椭圆越来越扁)。
如果C*是最优路径的耗散值,则:
A* 搜索的关键就是 设计可采纳的或一致的(单调的)启发函数 。
绝不高估 到达目标的耗散值,尽可能的接近真实耗散值
子问题的解耗散是完整问题的 耗散下界 。
从实例中学习,每个实例包含了解路径上各状态及其到达解的耗散值。每个最优解实例提供了可学习h(n)的实例,由此产生可预测其他状态解消耗的启发函数。
联机搜索智能体需要行动和感知,然后扩展当前状态的环境地图
智能体初始位置在S,其已知信息为:
A* 搜索在不同子空间结点的跳跃式扩展, 模拟而非实际行动 ;联机搜索只扩展实际占据的结点——采用深度优先。 联机搜索必须维护一个回溯表
博弈搜索是智能体之间的对抗,每个智能体的目的是冲突的。本节需要解决两个问题:如何搜索到取胜的 路径 /如何提高搜索 效率 。相应的办法是 极大极小决策和α-β剪枝 。
两个智能体博弈时,可令一方为MAX,一方为MIN。MAX希望终局得分高,MIN希望终局得分低。
博弈搜索中,最优解是导致取胜的终止状态的一系列招数。MAX制定取胜策略时,必须不断考虑MIN应对条件下如何取胜。
如果博弈双方 都按照最优策略 进行,则一个结点的 极大极小值就是对应状态的效用值
简单的递归算法——按照定义计算每个后继结点的极大极小值/搜索是从目标到初始结点的 反向推导
如果博弈树最大深度为m,每个节点的合法招数为b,则
剪掉那些不可能影响最后决策的分支,返回和极大极小值相同的结果。
α-β剪枝可以应用树的任何深度。
如果在结点n的父节点或更上层有一个更好的选择m,则在搜索中永远不会到达n。
很大程度上取决于检查后继节点的次序—— 应先检查那些可能更好的后继 。如果能先检查那些最好的后继,则 时间复杂度为O(b (d/2) ) 。优于极大极小算法的O(b d )
许多问题中 路径是无关紧要的 。从当前状态出发,通常 只移动到相邻状态 ,且路径不保留。
内存消耗少,通常是一个常数。
向目标函数值增加的方向持续移动,直到相邻状态没有比它更高的值。 取到一个局部最优则终止 。
使新状态估计值优于当前状态值和其他所有候补结点值,则取新状态放弃其他状态。
将 爬山法 (停留在局部最优)和 随机行走 (下山)以某种方式结合,同时拥有 完备性和效率 。
技巧是,概率足够大可以弹出局部最优;但概率不能太大而弹出全局最优。
按照模拟退火的思想, T随时间逐渐减小 。如果 T下降的足够慢 ,则找到全局最优解是 完备的 。
随机移动,如果评价值改善则采纳; 否则以小于一的概率接受 。
从 k个随机生成的状态开始 ,每步生成k个结点的所有后继状态。如果其中之一是目标状态则停止算法;否则从全部后继状态中选择最佳的k个状态继续搜索。
有用的信息 在k个并行的 搜索线程之间传递 ,算法会很快放弃没有成果的搜索,而把资源放在取得最大进展的搜索上。
局部剪枝搜索的变种。因为局部剪枝搜索搜索是贪婪的,因而用随机剪枝搜索代替。不是选择最好的k个后代,而是按照一定概率选取k个后继状态。
类似于自然界的选择过程。状态对应个体,其 值对应适应性 ,后代就是状态。因此如果k个状态缺乏多样性,则局部搜索会受影响。
局部剪枝算法已有 群体进化 (优胜劣汰)的趋势。遗传算法是随机剪枝的变种。
包括选择,交叉和变异
又称繁殖,按照一定的概率选择两对个体生成后继状态
计算每个个体i被选中的概率: pi = f(i) / [f(1)+...+f(n)] .然后根据概率将圆盘分为n个扇形,每个扇形大小为 2Πpi 。
繁殖过程中,后代是父串在杂交点上进行杂交得来的。这样一来,后代子串保留了父串的优良特性又与父串不同。
首先以概率p随机在种群中选择pa和pb两个个体,再从{1,2,...,m}中(可以按一定概率,如两边概率小于中间概率)选择一个数i,作为交叉点。而后将两个个体的交叉点后面的部分交换。
在新生成的后继状态中各个位置都会按照一个 独立的很小的概率 随机变异。
变异时要做到 一致变异 ;即相同概率地变异所有个体的每一位。
结合了“上山”和随机行走,并在并行搜索线程之间交换信息。遗传算法的 最大优点在于杂交 。因为杂交可以 将独立发展的若干个砖块组合起来 ,提高搜索的粒度。
个体编码某些位置上数字仍未确定的一个状态子串。
如果 一个模式的实例的平均适应值超过均值 ,则种群内这个模式的实例数量会随时间而增长(优胜);反之则减少(劣汰)
长度较短,高于平均适应度的模式在遗传算子的作用下, 相互结合 ,能生成长度较长、适应度较高的 模式 。
Constraint Satisfying Problem,CSP。
由一个 变量集合{X1~Xn} 和一个 约束集合{C1~Cn} ;每个变量都有一个 非空可能的值域Di 。每个约束指定了 若干变量的一个子集内各变量的赋值范围 。
CSP的一个状态是,对一些或每个变量赋值
一组既是 相容赋值 又是 完全赋值 的对变量的赋值就是CSP的解。
提前考虑某些约束,以减少搜索空间
若X被赋值,检查与X相连的Y,判断是否满足约束,去掉Y中不满足约束的赋值。(进行某种检验,可以不为有问题的Y集合赋值 )
❹ 经典检索算法:BM25原理
本文cmd地址: 经典检索算法:BM25原理
bm25 是一种用来评价搜索词和文档之间相关性的算法,它是一种基于 概率检索模型 提出的算法,再用简单的话来描述下bm25算法:我们有一个query和一批文档Ds,现在要计算query和每篇文档D之间的相关性分数,我们的做法是,先对query进行切分,得到单词$q_i$,然后单词的分数由3部分组成:
最后对于每个单词的分数我们做一个求和,就得到了query和文档之间的分数。
讲bm25之前,我们要先介绍一些概念。
BIM(binary independence model)是为了对文档和query相关性评价而提出的算法,BIM为了计算$P(R|d,q)$,引入了两个基本假设:
假设1
一篇文章在由特征表示的时候,只考虑词出现或者不出现,具体来说就是文档d在表示为向量$vec x=(x_1,x_2,...,x_n)$,其中当词$t$出现在文档d时,$x_t=1$,否在$x_t=0$。
假设2
文档中词的出现与否是彼此独立的,数学上描述就是$P(D)=sum_{i=0}^n P(x_i)$
有了这两个假设,我们来对文档和query相关性建模:
接着因为我们最终得到的是一个排序,所以,我们通过计算文档和query相关和不相关的比率,也可得文档的排序,有下面的公式:
由于每个 xt 的取值要么为 0 要么为 1,所以,我们可得到:
我们接着做下面的等价变换:
其中N是总的文档数,dft是包含t的文档数。
以上就是BIM的主要思想,后来人们发现应该讲BIM中没有考虑到的词频和文档长度等因素都考虑进来,就有了后面的BM25算法,下面按照
3个部分来介绍bm25算法。
,也就是有多少文档包含某个单词信息进行变换。如果在这里使用 IDF 的话,那么整个 BM25 就可以看作是一个某种意义下的 TF-IDF,只不过 TF 的部分是一个复杂的基于文档和查询关键字、有两个部分的词频函数,还有一个就是用上面得到的ct值。
tf-idf中,这个信息直接就用“词频”,如果出现的次数比较多,一般就认为更相关。但是BM25洞察到:词频和相关性之间的关系是非线性的,具体来说,每一个词对于文档相关性的分数不会超过一个特定的阈值,当词出现的次数达到一个阈值后,其影响不再线性增长,而这个阈值会跟文档本身有关。
在具体操作上,我们对于词频做了”标准化处理“,具体公式如下:
其中,tftd 是词项 t 在文档 d 中的权重,Ld 和 Lave 分别是文档 d 的长度及整个文档集中文档的平均长度。k1是一个取正值的调优参数,用于对文档中的词项频率进行缩放控制。如果 k 1 取 0,则相当于不考虑词频,如果 k 1取较大的值,那么对应于使用原始词项频率。b 是另外一个调节参数 (0≤ b≤ 1),决定文档长度的缩放程度:b = 1 表示基于文档长度对词项权重进行完全的缩放,b = 0 表示归一化时不考虑文档长度因素。
如果查询很长,那么对于查询词项也可以采用类似的权重计算方法。
其中,tftq是词项t在查询q中的权重。这里k3 是另一个取正值的调优参数,用于对查询中的词项tq 频率进行缩放控制。
于是最后的公式是:
gensim在实现bm25的时候idf值是通过BIM公式计算得到的:
然后也没有考虑单词和query的相关性。
此处 EPSILON 是用来表示出现负值的时候怎么获取idf值的。
总结下本文的内容:BM25是检索领域里最基本的一个技术,BM25 由三个核心的概念组成,包括词在文档中相关度、词在查询关键字中的相关度以及词的权重。BM25里的一些参数是经验总结得到的,后面我会继续介绍BM25的变种以及和其他文档信息(非文字)结合起来的应用。
BM25 算法浅析
搜索之 BM25 和 BM25F 模型
经典搜索核心算法:BM25 及其变种
信息检索导论
❺ 百度和Google的搜索算法,技术有何差异
网络是中国的,谷歌是美国的。各有侧重不能不可比较。技术都是一样的侧重不同罢了。网络侧重的是中国民俗,谷歌是侧重美国民俗。因为国情国法不同所以无可能比较量级。【搜索引擎技术是硬件加软件。硬件是实际使用的机器,软件是程序编程】搜索产品搜索引擎产品其实包括很多种类,并不限于我们最熟悉的全网搜索引擎。简单分类罗列一下:*全网搜索:包括市场份额最高的几大搜索引擎巨头,Google,Yahoo,Bing。*中文搜索:在中文搜索市场中,网络一家独大,其它几家如搜狗、搜搜、有道,市场份额相对还比较小。*垂直搜索:在各自的垂直领域成为搜索入口的,购物的淘宝,美食的大众点评,旅游的去哪儿,等等。*问答搜索:专注于为问句式提供有效的答案,比如Ask.com;其它的如问答社区像Quora和国内的知乎,应该也会往这方面发展。*知识搜索:典型代表就是WolframAlpha,区别于提供搜索结果列表,它会针对查询提供更详细的整合信息。*云搜索平台:为其它产品和应用提供搜索服务托管平台(SaaS或是PaaS),Amazon刚刚推出它的CloudSearch,IndexTank在被Linkedin收购之前也是做这项服务。*其它:比始DuckDuckGo,主打隐私保护,也有部分用户买帐。各种搜索产品在各自领域都需要解决特定的技术和业务问题,所以也可以建立相对通用搜索的优势,来得到自己的市场和用户。搜索技术搜索引擎所涉及和涵盖的技术范围非常广,涉及到了系统架构和算法设计等许多方面。可以说由于搜索引擎的出现,把互联网产品的技术水平提高到了一个新的高度;搜索引擎无论是在数据和系统规模,还是算法技术的研究应用深度上,都远超之前的简单互联网产品。列举一些搜索引擎所涉及到的技术点:*爬虫(Crawling)*索引结构(InvertedIndex)*检索模型(VSM&TF-IDF)*搜索排序(RelevanceRanking&Evaluation)*链接分析(LinkAnalysis)*分类(Document&QueryClassification)*自然语言处理(NLP:Tokenization,Lemmatization,POSTagging,NER,etc.)*分布式系统(DistributedProcessing&Storage)*等等虽然搜索引擎涉及的技术方方面面,但归结起来最关键的几点在于:*系统:大规模分布式系统,支撑大规模的数据处理容量和在线查询负载*数据:数据处理和挖掘能力*算法:搜索相关性排序,查询分析,分类,等等系统搜索引擎系统是一个由许多模块组成的复杂系统。核心模块通常包括:爬虫,索引,检索,排序。除了必需的核心模块之外,通常还需要一些支持辅助模块,常见的有链接分析,去重,反垃圾,查询分析,等等。[附图:搜索系统架构概念模型]*爬虫从互联网爬取原始网页数据,存储于文档服务器。*文档服务器存储原始网页数据,通宵是分布式Key-Value数据库,能根据URL/UID快速获取网页内容。*索引读取原始网页数据,解析网页,抽取有效字段,生成索引数据。索引数据的生成方式通常是增量的,分块/分片的,并会进行索引合并、优化和删除。生成的索引数据通常包括:字典数据,倒排表,正排表,文档属性等。生成的索引存储于索引服务器。*索引服务器存储索引数据,主要是倒排表。通常是分块、分片存储,并支持增量更新和删除。数据内容量非常大时,还根据类别、主题、时间、网页质量划分数据分区和分布,更好地服务在线查询。*检索读取倒排表索引,响应前端查询请求,返回相关文档列表数据。*排序对检索器返回的文档列表进行排序,基于文档和查询的相关性、文档的链接权重等属性。*链接分析收集各网页的链接数据和锚文本(AnchorText),以此计算各网页链接评分,最终会作为网页属性参与返回结果排序。*去重提取各网页的相关特征属性,计算相似网页组,提供离线索引和在线查询的去重服务。*反垃圾收集各网页和网站历史信息,提取垃圾网页特征,从而对在线索引中的网页进行判定,去除垃圾网页。*查询分析分析用户查询,生成结构化查询请求,指派到相应的类别、主题数据服务器进行查询。*页面描述/摘要为检索和排序完成的网页列表提供相应的描述和摘要。*前端接受用户请求,分发至相应服务器,返回查询结果[附图:爬虫系统架构]爬虫系统也是由多个模块构成:*URLScheler存储和高度待爬取的网页地址。*Downloader根据指定的网页列表爬取网页内容,存储至文档服务器。*Processer对网页内容进行简单处理,提取一些原始属性,为爬取的后续操作服务。*TrafficController爬取流量控制,防止对目标网站在短时间内造成过大负载[附图:搜索系统架构实例:Google这是Google早期的一张系统架构图,可以看出Google系统的各模块基本和前面概念模型一致。所以一个完整的全网搜索系统的大致系统架构是类似的,区别和竞争力体现在细节实现和优化上。数据除了搜索引擎系统提供了系统支撑外,搜索结果质量很大程度上依赖于源数据的数量和质量,以及数据处理的能力。全网数据的主要来源通常是从互联网上进行自动爬取,从一些高质量的种子站点开始,并沿网页链接不断,收集巨量的网页数据;这通常能达到数据在数量的要求,但也不可避免混入了大量的低质量网页。除了自动爬取来的数据外,搜索引擎的数据来源还可以来自人工收集、合作伙伴提供、第三方数据源和API、以及购买;这些来源通常会有更好的质量保证,但在数量规模和覆盖率上会相对少一些,可以和爬取的数据形成有效的互补。收集到足量的原始数据后,需要进行各种数据处理操作,把原始数据转换成在线检索需要的数据。这个过程通常包括:网页分析,数据抽取,文本处理和分词,索引及合并;最终生成的数据会包括:词典,倒排表,正排表,文档权重和各种属性。最终生成的数据要布署上相应的在线检索服务器上,通常会进行数据分区和分片布署,数据内容更丰富时还可能根据内容分类和主题进行分别布署,比如新闻时效类的网页可能就会独立布署,针对性地响应时效类的查询[附图:索引数据:字典、倒排表、正排表]这张图来源于Google早期的索引数据结构,包括词典、倒排表、正排表。算法有了相当数量的高质量数据之后,搜索结果的质量改进就取决于搜索算法的准确性上。现在的搜索引擎通常通过向量空间模型(VSM=VectorSpaceModel)来计算查询和各文档之间的文本相似性;即把查询或文档抽象成一个词向量,然后再计算向量在向量空间中的夹角,可以用余弦公式得出,作为文本相似度的度量值。在基本的向量空间模型基础上通常会进一步加入词的权重值进行改进,通过经典的TF-IDF公式得出,即词频(TF)乘上逆文档频率(IDF);其中TF=TermFrequency,即该词在所在文档中的出现次数;IDF=InvertDocumentFrequency,即包含该词的文档数除以总文档数,再取反,通常还会取对数来降维,这个值值越大表示这个词越能代表文档特征。除了通过向量空间模型得出的文本匹配评分外,每个文档还会有自己本身的质量评分,通常由网页链接数据计算得出,代表了该网页本身的流行度权重。最终的评分会以文本匹配的查询时动态评分和文档静态评分为基础计算得出;搜索引擎的评分计算都会考虑很多因素,但这两项通常是评分计算的基础。有了确定的排序算法后,另一个重要的任务就是评估搜索结果的质量。由于搜索结果的好与坏是一个比较主观的过程,所以进行定量的评估并不容易。常见的做法是通过事先选定一批查询,通过人工评估或是预先设定标准值的方式,逐个评估每个设定查询搜索结果,最终得到一个统计结果,作为搜索算法的评估度量。另一类做法是直接通过线上的用户点击数据来统计评估搜索结果质量,或是通过A/B测试来比较两种排序算法的点击效果来衡量。合理而有效的评估方法,是搜索算法可以不断改进和比较的前提。查询分析是另一个对搜索结果影响很大的方面,主要任务是把用户的查询文本转换成内部的结构化的搜索请求。涉及的处理可能包括基本的分词处理,专有名词的识别和提取,或是查询模式的识别,或是查询分类的识别。这些处理的准确性将能极大地改进搜索请求的方式,进一步影响搜索结果的相关性和质量。开源方案近年来在搜索公司内部搜索系统和技术的改进和发展的同时,一批开源的搜索系统和解决方案也逐渐发展和成熟起来。当然开源系统在功能全面性、复杂性和规模上都不能与专业的搜索引擎系统相比,但对于中小企业的搜索应用来说应该已经能很好地满足需求,而且也成功应用到了一些大规模的产品系统中(比如Twitter的搜索就使用和改进了Lucene)。现在比较常见的开源搜索解决方案有:*LuceneLucene自然是现在最流行,使用度最高的搜索开源方案。它用Java开发,以索引和检索库的方式提供,可以很容易地嵌入需要的应用中。*Solr&SolrCloudSolr是Lucene的子项目,同属Apache软件基金会项目;它是基于Lucene之上实的一个完整的搜索服务应用,提供了大量的搜索定制功能,可以满足大部分的搜索产品需求。SolrCloud是Solr为了加强其分布式服务能力而开发的功能,目前还在开发阶段,将在Solr4.0发布。*Zoie&Sensei(Linkedin)Zoie是Linkedin公司在Lucene基础上实现的准实时索引库,通过加入额外的内存索引,来达到准实时索引的效果。Sensei是Linkedin公司在Zoie基础上实现的分布式搜索服务,通过索引分区来实现分布式搜索服务。*ElasticSearchElasticSearch也是刚推出不久的一个基于Lucene实现的分布式搜索服务,据说在分布式支持和易用性上都有不错的表现。因为还比较年轻,真实的应用应该还不多,需要观察。因为也是基于Lucene的分布式开源搜索框架,基本上会与SolrCloud和Sensei形成正面竞争关系。*其它开源产品除了Lucene家族以外,还有一些其它的开源产品,比如Sphinx和Xapian,也有不少的应用;但近年来的更新频率和社区活跃度都不太能和Lucene系的产品相比。*托管平台除了开源产品外,现在还出现了一些基于云计算和云服务的搜索服务,比如Amazon新近推了的CloudSearch,还有更早一些的IndexTank(已被Linkedin收购)。这类服务无需自己布置搜索系统,直接使用在线服务,按需付费,所以也将是开源产品的替代方案和竞争对手。附几张上面提到的开源系统的概念模型和架构图:[附图:Lucene概念模型][附图:Lucene工作流程][附图:Sensei系统架构][附图:SolrCloud系统架构]现状与未来:传统的搜索引擎经过了十几年的发展,目前在技术和产品上都已走向逐渐稳定和成熟,通用搜索的市场也基本进入饱和,不像早些年一直呈现高增长率。同时,在各个垂直领域,也出现了很多和产品结合的很好的垂直搜索产品,比如淘宝的购物搜索,大众点评的美食搜索,去哪儿和酷讯的旅游搜索等,也都在各自领域占据了相当大的市场,成为除了通用搜索引擎之外的重要的用户入口。在开源领域,各种开源产品和解决方案也逐渐发展成熟,通用搜索技术不再为大公司所专有,中小企业能够以较低的成本实现自己的搜索应用。现在搜索引擎产品之间的竞争的在数据、应用方式和产品形态上,在系统架构和基本算法上区分并不大。搜索引擎在未来发展上,一是搜索将不仅仅以独立产品的形式出现,的会作为搜索功能整合到的产品和应用中。在产品形态上,基于传统的搜索引擎,会演化出像推荐引擎,知识引擎,决策引擎等形式的产品,更好地满足和服务用户需求。而搜索引擎所涉及和发展起来的各种技术,会更广泛地应用到各种基它产品上,比如自然语言处理,推荐和广告,数据挖掘,等等。总之,搜索引擎对互联网技术和产品带来的影响是巨大的,未来也仍将有很大的发展和应用空间。
❻ 禁忌搜索算法的主要思想和特征
禁忌算法是一种亚启发式随机搜索算法1,它从一个初始可行解出发,选择一系列的特定搜索方向(移动)作为试探,选择实现让特定的目标函数值变化最多的移动。为了避免陷入局部最优解,TS搜索中采用了一种灵活的“记忆”技术,对已经进行的优化过程进行记录和选择,指导下一步的搜索方向,这就是Tabu表的建立。 禁忌搜索是对人类思维过程本身的一种模拟,它通过对一些局部最优解的禁忌(也可以说是记忆)达到接纳一部分较差解,从而跳出局部搜索的目的.
❼ 百度搜索引擎的算法是怎样的
衡量网页质量的维度
网络搜索引擎在衡量网页质量时,会从以下三个维度综合考虑给出一个质量打分。下面会一一介绍这些影响网页质量判断的维度特征:
• 内容质量
• 浏览体验
• 可访问性
一个访问流畅,内容质量高且浏览体验好的网页具有较高的质量;反之,任何一个维度出现问题,都会影响网页的整体质量。下面我们具体介绍下这三个维度。
衡量网页质量的维度——内容质量
网页主体内容是网页的价值所在,是满足用户需求的前提基础。网络搜索引擎评价网页内容质量主要看其主体内容的好坏,以及主体内容是否可以让用户满意。 不同类型网页的主体内容不同,网络搜索引擎判断不同网页的内容价值时,需要关注的点也有区别,如:
• 首页:导航链接和推荐内容是否清晰、有效。
• 文章页:能否提供清晰完整的内容,图文并茂更佳。
• 商品页:是否提供了完整真实的商品信息和有效的购买入口。
• 问答页:是否提供了有参考价值的答案。
• 下载页:是否提供下载入口,是否有权限限制,资源是否有效。
• 文档页:是否可供用户阅读,是否有权限限制。
• 搜索结果页:搜索出来的结果是否与标题相关。
网络搜索引擎考量网页内容质量的维度非常多,最为重要的是:成本;内容完整;信息真实有效以及安全。下面我们通过举例来感受一下网络搜索引擎是如何对网页的内容质量进行分类的,请站长对比自己站点的页面,站在搜索引擎和用户的角度为自己打分:
1、内容质量好:
网络搜索引擎认为内容质量好的网页,花费了较多时间和精力编辑,倾注了编者的经验和专业知识;内容清晰、完整且丰富;资源有效且优质;信息真实有效;安全无毒;不含任何作弊行为和意图,对用户有较强的正收益。对这部分网页,网络搜索引擎会提高其展现在用户面前的机率。例如:
• 专业医疗机构发布的内容丰富的医疗专题页面;
• 资深工程师发布的完整解决某个技术问题的专业文章;
• 专业视频网站上,播放清晰流畅的正版电影或影视全集页面;
• 知名B2C网站上,一个完整有效的商品购买页;
• 权威新闻站原创或经过编辑整理的热点新闻报道;
• 经过网友认真编辑,内容丰富的词条;
• 问答网站内,回答的内容可以完美解决提问者的问题。
实例参考:
示例
内容质量
说明
case 3.1.1-1
好
专业医疗网站发布的丰富医疗专题页面
case 3.1.1-2
好
资深工程师发布的完整解决某个技术问题的专业文章
case 3.1.1-3
好
专业视频网站上,播放清晰流畅的正版影视全集页面
case 3.1.1-4
好
京东的一个完整有效的商品购买页
case 3.1.1-5
好
权威新闻站原创的热点新闻的报道
case 3.1.1-6
好
经过网友认真编辑,内容丰富的网络词条
case3.1.1-7
好
网络知道上,完美解决用户问题的问答页
2、内容质量中:
内容质量中等的网页往往能满足用户需求,但未花费较多时间和精力进行制作编辑,不能体现出编者的经验和专业知识;内容完整但并不丰富;资源有效但质量欠佳;信息虽真实有效但属采集得来;安全无毒;不含作弊行为和意图。在互联网中,中等质量网页其实是一个比较大的数量集合,种类面貌也繁杂多样,网络搜索引擎在评价这类网页时往往还要考虑其它非常多因素。在这里,我们仅部分举例来让各位感受一下:
• 论坛类网站里一个普通的帖子;
• 一个普通的问答网页;
• 没有进行任何编辑,直接转载其它网站的新闻;
• 无版权信息的普通电影播放页
• 采集知名小说网站的盗版小说页。
实例参考:
示例
内容质量
说明
case 3.1.2-1
中
网易直接转载了中国新闻网的一篇新闻。
case 3.1.2-2
中
文库上网友上传的“国庆放假安排”新闻
case 3.1.2-3
中
采集起点小说网的盗版小说站
case 3.1.2-4
中
网络贴吧里一个普通的帖子
3、内容质量差:
网络搜索引擎认为主体内容信息量较少,或无有效信息、信息失效过期的都属于内容质量差网页,对用户没有什么实质性的帮助,应该减少其展现的机会。同时,如果一个网站内该类网页的占比过大,也会影响网络搜索引擎对站点的评级,尤其是UGC网站、电商网站、黄页网站要尤其重视对过期、失效网页的管理。例如:
• 已下架的商品页,或已过期的团购页;
• 已过有效期的招聘、交易页面;
• 资源已失效,如视频已删除、软件下载后无法使用等。
4、没有内容质量可言:
没有内容质量可言的网页指那些制作成本很低,粗制滥造;从别处采集来的内容未经最起码的编辑整理即放置线上;挂木马等病毒;含有作弊行为或意图;完全不能满足用户需求,甚至含有欺骗内容的网页。例如:
• 内容空短,有很少量的内容,却不能支撑页面的主要意图;
• 问答页有问无答,或回答完全不能解决问题;
• 站内搜索结果页,但没有给出相关信息
除上述网页外,欺骗用户和搜索引擎的网页在无内容质量可言集合里占很高比例。网络搜索引擎对作弊网页的定义是:不以满足用户需求为目的,通过不正当手段欺骗用户和搜索引擎从而获利的网页。目前互联网上这部分网页还属少数,但作弊网页的价值是负向的,对用户的伤害非常大,对这类网页,搜索引擎持坚决打击态度。
衡量网页质量的维度——浏览体验
不同质量的网页带给用户的浏览体验会有很大差距,一个优质的网页给用户的浏览体验应该是正向的。用户希望看到干净、易阅读的网页,排版混乱、广告过多会影响用户对网页主体内容的获取。在网络搜索引擎网页质量体系中,用户对网页主体内容的获取成本与浏览体验呈反比,即获取成本越高,浏览体验越低。面对内容质量相近的网页,浏览体验佳者更容易获得更高的排位,而对于浏览体验差的网页,网络搜索引擎会视情况降低其展现的机率甚至拒绝收录。
影响用户浏览体验好坏的因素很多,目前网络搜索引擎主要从内容排版、广告影响两方面对网页进行考量:
内容排版:用户进入网页第一眼看到的就是内容排版,排版决定了用户对网页的第一印象,也决定了用户对内容获取的成本。
广告影响:网络搜索引擎理解网站的生存发展需要资金支持,对网页上放置正当广告持支持态度。网页应该以满足用户需求为主旨,最佳状态即“主体内容与广告一起满足用户需求,内容为主,广告为辅”,而不应让广告成为网页主体。
下面我们通过举例来感受一下网络搜索引擎是如何对网页的浏览体验进行分类的,站长可以据此对比检验自己站点的浏览体验如何:
1、浏览体验好:
页面布局合理,用户获取主体内容成本低,一般具有以下特征:
• 排版合理,版式美观,易于阅读和浏览;
• 用户需要的内容占据网页最重要位置;
• 能够通过页面标签或页面布局十分清楚地区分出哪些是广告;
• 广告不抢占主体内容位置,不阻碍用户对主要内容的获取;
实例参考:
示例
浏览体验
说明
case 3.2.1-1
好
招聘、房产等网站首页也有很多广告,但都是招聘相关的,浏览体验是ok的。
case 3.2.1-2
好
文章页,页面布局合理,无广告,排版好,结构合理
case 3.2.1-3
好
游戏首页,排版美观,布局合理,无广告,浏览体验优
2、浏览体验差:
页面布局和广告放置影响了用户对主体内容的获取,提高了用户获取信息的成本,令用户反感。包括但不仅限于以下情况:
• 正文内容不换行或不分段,用户阅读困难;
• 字体和背景颜色相近,内容辨别困难;
• 页面布局不合理,网页首屏看不到任何有价值的主体内容;
• 广告遮挡主体内容;或者在通用分辨率下,首屏都是广告,看不到主体内容;
• 弹窗广告过多;
• 影响阅读的浮动广告过多
• 点击链接时,出现预期之外的弹窗;
• 广告与内容混淆,不易区分;
衡量网页质量的维度——可访问性
用户希望快速地从搜索引擎获取到需要的信息,网络搜索引擎尽可能为用户提供能一次性直接获取所有信息的网页结果。网络搜索引擎认为不能直接获取到主体内容的网页对用户是不友好的,会视情况调整其展现机率。
网络搜索引擎会从正常打开、权限限制、有效性三方面判断网页的可访问性,对于可以正常访问的网页,可以参与正常排序;对于有权限限制的网页,再通过其它维度对其进行观察;对于失效网页,会降权其展现机制甚至从数据库中删除。
1、可正常访问的网页
无权限限制,能直接访问所有主体内容的网页。
2、有权限限制的网页
此类网页分为两种:打开权限和资源获取权限
1)打开权限:指打开网页都需要登录权限,没有权限完全无法看到具体内容,普通用户无法获取或获取成本很高,网络搜索引擎会降低其展现机率。不包括以登录为主要功能的网页。
2)资源获取权限:指获取网页主要内容,如文档、软件、视频等,需要权限或者需要安装插件才能获得完整内容。此时会分三种情况:
• 提供优质、正版内容的网站,由于内容建设成本很高,尽管查看全文或下载时需要权限或安装插件,但属于用户预期之内,网络搜索引擎也不认为权限行为对用户造成伤害,给予与正常可访问页面相同的对待。
• 对于一些非优质、非正版的资源,来自于用户转载甚至机器采集,本身成本较低,内容也不独特,用户获取资源还有权限限制——需要用户注册登录或者付费查看,网络搜索引擎会根据具体情况决定是否调整其展现。
• 还有一些视频、下载资源页,也许自身资源质量并不差,但需要安装非常冷门的插件才能正常访问,比如要求安装“xx大片播放器”,网络搜索引擎会怀疑其有恶意倾向。
实例参考:
示例
可访问性
说明
case 3.2-1
好
CNKI上的一篇论文,收费才能下载,但有版权,浏览体验好
case 3.2-2
好
优酷上一部新电影,需要付费才能观看,浏览体验好。
case 3.2-3
中
内容是来,但是需要登录才能看更多
case 3.2-4
差
入党申请书,本身就是转载的,网上到处都是,但这个页面仍然要求收费才能下载。
3、失效网页
往往指死链和主体资源失效的网页。网络搜索引擎认为这部分网页无法提供有价值信息,如果站点中此类网页过多,也会影响网络搜索引擎对其的收录和评级。建议站长对此类网页进行相应设置,并及时登录网络站长平台,使用死链提交工具告知网络搜索引擎。
失效网页包括但不仅限于:
• 404、403、503等网页;
• 程序代码报错网页;
• 打开后提示内容被删除,或因内容已不存在跳转到首页的网页;
• 被删除内容的论坛帖子,被删除的视频页面(多出现在UGC站点)
具体请参阅《网络搜索引擎网页质量白皮书》,望采纳!
❽ 计算机检索技术有哪些
计算机信息检索可以概括为两个部分:信息存储和信息检索。
计算机信息检索与信息的构造、分析、组织、存储和传播有关。计算机信息检索系统是信息检索所用的硬件资源、系统软件和检索软件的总合。它能存储大量的信息,并对信息条目(有特定逻辑含义的基本信息单位)进行分类、编目或编制索引。它可以根据用户要求从已存储的信息集合中抽取出特定的信息,并提供插入、修改和删除某些信息的能力。
(8)搜索算法技术扩展阅读:
计算机信息检索系统的可靠性与计算机系统的可靠性密切相关。它依赖于计算机系统硬件的可靠性、操作系统的故障恢复机构、数据库管理系统的恢复机构和应用软件采取的故障处理措施。任何计算机信息检索系统都不能保证信息不受到破坏,但是它必须具有从破坏中得以恢复的能力。
计算机信息检索系统的效能通常根据漏检索、误检率、检全率、检准率和响应时间(对联机检索)等来衡量。关键词本身错误或使用的查找算法不对会引起漏检。
❾ 大数据常用的各种算法
我们经常谈到的所谓的 数据挖掘 是通过大量的数据集进行排序,自动化识别趋势和模式并且建立相关性的过程。那现在市面的数据公司都是通过各种各样的途径来收集海量的信息,这些信息来自于网站、公司应用、社交媒体、移动设备和不断增长的物联网。
比如我们现在每天都在使用的搜索引擎。在自然语言处理领域,有一种非常流行的算法模型,叫做词袋模型,即把一段文字看成一袋水果,这个模型就是要算出这袋水果里,有几个苹果、几个香蕉和几个梨。搜索引擎会把这些数字记下来,如果你想要苹果,它就会把有苹果的这些袋子给你。
当我们在网上买东西或是看电影时,网站会推荐一些可能符合我们偏好的商品或是电影,这个推荐有时候还挺准。事实上,这背后的算法,是在数你喜欢的电影和其他人喜欢的电影有多少个是一样的,如果你们同时喜欢的电影超过一定个数,就把其他人喜欢、但你还没看过的电影推荐给你。 搜索引擎和推荐系统 在实际生产环境中还要做很多额外的工作,但是从本质上来说,它们都是在数数。
当数据量比较小的时候,可以通过人工查阅数据。而到了大数据时代,几百TB甚至上PB的数据在分析师或者老板的报告中,就只是几个数字结论而已。 在数数的过程中,数据中存在的信息也随之被丢弃,留下的那几个数字所能代表的信息价值,不抵其真实价值之万一。 过去十年,许多公司花了大价钱,用上了物联网和云计算,收集了大量的数据,但是到头来却发现得到的收益并没有想象中那么多。
所以说我们现在正处于“ 数字化一切 ”的时代。人们的所有行为,都将以某种数字化手段转换成数据并保存下来。每到新年,各大网站、App就会给用户推送上一年的回顾报告,比如支付宝会告诉用户在过去一年里花了多少钱、在淘宝上买了多少东西、去什么地方吃过饭、花费金额超过了百分之多少的小伙伴;航旅纵横会告诉用户去年做了多少次飞机、总飞行里程是多少、去的最多的城市是哪里;同样的,最后让用户知道他的行程超过了多少小伙伴。 这些报告看起来非常酷炫,又冠以“大数据”之名,让用户以为是多么了不起的技术。
实际上,企业对于数据的使用和分析,并不比我们每年收到的年度报告更复杂。已经有30多年历史的商业智能,看起来非常酷炫,其本质依然是数数,并把数出来的结果画成图给管理者看。只是在不同的行业、场景下,同样的数字和图表会有不同的名字。即使是最近几年炙手可热的大数据处理技术,也不过是可以数更多的数,并且数的更快一些而已。
在大数据处理过程中会用到那些算法呢?
1、A* 搜索算法——图形搜索算法,从给定起点到给定终点计算出路径。其中使用了一种启发式的估算,为每个节点估算通过该节点的较佳路径,并以之为各个地点排定次序。算法以得到的次序访问这些节点。因此,A*搜索算法是较佳优先搜索的范例。
2、集束搜索(又名定向搜索,Beam Search)——较佳优先搜索算法的优化。使用启发式函数评估它检查的每个节点的能力。不过,集束搜索只能在每个深度中发现最前面的m个最符合条件的节点,m是固定数字——集束的宽度。
3、二分查找(Binary Search)——在线性数组中找特定值的算法,每个步骤去掉一半不符合要求的数据。
4、分支界定算法(Branch and Bound)——在多种最优化问题中寻找特定最优化解决方案的算法,特别是针对离散、组合的最优化。
5、Buchberger算法——一种数学算法,可将其视为针对单变量较大公约数求解的欧几里得算法和线性系统中高斯消元法的泛化。
6、数据压缩——采取特定编码方案,使用更少的字节数(或是其他信息承载单元)对信息编码的过程,又叫来源编码。
7、Diffie-Hellman密钥交换算法——一种加密协议,允许双方在事先不了解对方的情况下,在不安全的通信信道中,共同建立共享密钥。该密钥以后可与一个对称密码一起,加密后续通讯。
8、Dijkstra算法——针对没有负值权重边的有向图,计算其中的单一起点最短算法。
9、离散微分算法(Discrete differentiation)。
10、动态规划算法(Dynamic Programming)——展示互相覆盖的子问题和最优子架构算法
11、欧几里得算法(Euclidean algorithm)——计算两个整数的较大公约数。最古老的算法之一,出现在公元前300前欧几里得的《几何原本》。
12、期望-较大算法(Expectation-maximization algorithm,又名EM-Training)——在统计计算中,期望-较大算法在概率模型中寻找可能性较大的参数估算值,其中模型依赖于未发现的潜在变量。EM在两个步骤中交替计算,第一步是计算期望,利用对隐藏变量的现有估计值,计算其较大可能估计值;第二步是较大化,较大化在第一步上求得的较大可能值来计算参数的值。
13、快速傅里叶变换(Fast Fourier transform,FFT)——计算离散的傅里叶变换(DFT)及其反转。该算法应用范围很广,从数字信号处理到解决偏微分方程,到快速计算大整数乘积。
14、梯度下降(Gradient descent)——一种数学上的最优化算法。
15、哈希算法(Hashing)。
16、堆排序(Heaps)。
17、Karatsuba乘法——需要完成上千位整数的乘法的系统中使用,比如计算机代数系统和大数程序库,如果使用长乘法,速度太慢。该算法发现于1962年。
18、LLL算法(Lenstra-Lenstra-Lovasz lattice rection)——以格规约(lattice)基数为输入,输出短正交向量基数。LLL算法在以下公共密钥加密方法中有大量使用:背包加密系统(knapsack)、有特定设置的RSA加密等等。
19、较大流量算法(Maximum flow)——该算法试图从一个流量网络中找到较大的流。它优势被定义为找到这样一个流的值。较大流问题可以看作更复杂的网络流问题的特定情况。较大流与网络中的界面有关,这就是较大流-最小截定理(Max-flow min-cut theorem)。Ford-Fulkerson 能找到一个流网络中的较大流。
20、合并排序(Merge Sort)。
21、牛顿法(Newton's method)——求非线性方程(组)零点的一种重要的迭代法。
22、Q-learning学习算法——这是一种通过学习动作值函数(action-value function)完成的强化学习算法,函数采取在给定状态的给定动作,并计算出期望的效用价值,在此后遵循固定的策略。Q-leanring的优势是,在不需要环境模型的情况下,可以对比可采纳行动的期望效用。
23、两次筛法(Quadratic Sieve)——现代整数因子分解算法,在实践中,是目前已知第二快的此类算法(仅次于数域筛法Number Field Sieve)。对于110位以下的十位整数,它仍是最快的,而且都认为它比数域筛法更简单。
24、RANSAC——是“RANdom SAmple Consensus”的缩写。该算法根据一系列观察得到的数据,数据中包含异常值,估算一个数学模型的参数值。其基本假设是:数据包含非异化值,也就是能够通过某些模型参数解释的值,异化值就是那些不符合模型的数据点。
25、RSA——公钥加密算法。较早的适用于以签名作为加密的算法。RSA在电商行业中仍大规模使用,大家也相信它有足够安全长度的公钥。
26、Schönhage-Strassen算法——在数学中,Schönhage-Strassen算法是用来完成大整数的乘法的快速渐近算法。其算法复杂度为:O(N log(N) log(log(N))),该算法使用了傅里叶变换。
27、单纯型算法(Simplex Algorithm)——在数学的优化理论中,单纯型算法是常用的技术,用来找到线性规划问题的数值解。线性规划问题包括在一组实变量上的一系列线性不等式组,以及一个等待较大化(或最小化)的固定线性函数。
28、奇异值分解(Singular value decomposition,简称SVD)——在线性代数中,SVD是重要的实数或复数矩阵的分解方法,在信号处理和统计中有多种应用,比如计算矩阵的伪逆矩阵(以求解最小二乘法问题)、解决超定线性系统(overdetermined linear systems)、矩阵逼近、数值天气预报等等。
29、求解线性方程组(Solving a system of linear equations)——线性方程组是数学中最古老的问题,它们有很多应用,比如在数字信号处理、线性规划中的估算和预测、数值分析中的非线性问题逼近等等。求解线性方程组,可以使用高斯—约当消去法(Gauss-Jordan elimination),或是柯列斯基分解( Cholesky decomposition)。
30、Strukturtensor算法——应用于模式识别领域,为所有像素找出一种计算方法,看看该像素是否处于同质区域( homogenous region),看看它是否属于边缘,还是是一个顶点。
31、合并查找算法(Union-find)——给定一组元素,该算法常常用来把这些元素分为多个分离的、彼此不重合的组。不相交集(disjoint-set)的数据结构可以跟踪这样的切分方法。合并查找算法可以在此种数据结构上完成两个有用的操作:
查找:判断某特定元素属于哪个组。
合并:联合或合并两个组为一个组。
32、维特比算法(Viterbi algorithm)——寻找隐藏状态最有可能序列的动态规划算法,这种序列被称为维特比路径,其结果是一系列可以观察到的事件,特别是在隐藏的Markov模型中。
❿ 搜索引擎采用的是什么技术
随着互联网的迅猛发展、WEB信息的增加,用户要在信息海洋里查找自己所需的信息,就象大海捞针一样,搜索引擎技术恰好解决了这一难题。搜索引擎是指互联网上专门提供检索服务的一类网站,这些站点的服务器通过网络搜索软件或网络登录等方式,将Intenet上大量网站的页面信息收集到本地,经过加工处理建立信息数据库和索引数据库,从而对用户提出的各种检索作出响应,提供用户所需的信息或相关指针。用户的检索途径主要包括自由词全文检索、关键词检索、分类检索及其他特殊信息的检索。下面以网络搜索机器人为例来说明搜索引擎技术。
搜索引擎优化,通俗理解是:通过总结搜索引擎的排名规律,对网站进行合理优化,使你的网站在网络和Google的排名提高,让搜索引擎给你带来客户。深刻理解是:通过SEO这样一套基于搜索引擎的营销思路,为网站提供生态式的自我营销解决方案,让网站在行业内占据领先地位,从而获得品牌收益。同时打响品牌,让更多人明白其产品。
网络机器人(Robot)又被称作Spider、Worm或Random,核心目的是为获取Internet上的信息。一般定义为“一个在网络上检索文件且自动跟踪该文件的超文本结构并循环检索被参照的所有文件的软件”。机器人利用主页中的超文本链接遍历WWW,通过URL引用从一个HTML文档爬行到另一个HTML文档。网上机器人收集到的信息可有多种用途,如建立索引、HIML文件合法性的验证、URL链接点验证与确认、监控与获取更新信息、站点镜像等。
机器人安在网上爬行,因此需要建立一个URL列表来记录访问的轨迹。它使用超文本,指向其他文档的URL是隐藏在文档中,需要从中分析提取URL,机器人一般都用于生成索引数据库。所有WWW的搜索程序都有如下的工作步骤:
机器人从起始URL列表中取出URL并从网上读取其指向的内容;
从每一个文档中提取某些信息(如关键字)并放入索引数据库中;
从文档中提取指向其他文档的URL,并加入到URL列表中;
重复上述3个步骤,直到再没有新的URL出现或超出了某些限制(时间或磁盘空间);
给索引数据库加上检索接口,向网上用户发布或提供给用户检索。
搜索算法一般有深度优先和广度优先两种基本的搜索策略。机器人以URL列表存取的方式决定搜索策略:先进先出,则形成广度优先搜索,当起始列表包含有大量的WWW服务器地址时,广度优先搜索将产生一个很好的初始结果,但很难深入到服务器中去;先进后出,则形成深度优先搜索,这样能产生较好的文档分布,更容易发现文档的结构,即找到最大数目的交叉引用。也可以采用遍历搜索的方法,就是直接将32位的IP地址变化,逐个搜索整个Internet。
量贩式搜索引擎优化是一个技术含量很高的网络应用系统。它包括网络技术、数据库技术动标引技术、检索技术、自动分类技术,机器学习等人工智能技术。