可以在搜索中突出显示网页上的多个单词_搜索引擎工作原理是怎样的?

搜索引擎的工作过程大体可以分成三阶段:

一,搜索引擎蜘蛛通过跟踪链接,在互联网上爬行和抓取网页信息,并存入原始网页数据库;

二,索引程序对原始网页数据库中的信息进行文字提取、中文分词,并建立索引库,以备排名程序随时调用;

三,排名程序根据用户输入的关键词,快速调取索引库数据,计算相关性,然后对其进行排序,并按照一定格式生成搜索结果页面,返回给用户。

0b08ba0edd5097c2a84d85e4488dcdcc.png
图片源自网络

下面是柒点传媒对其做的进一步分析:

1.网页抓取

搜索引擎蜘蛛每遇到一个新文档,都要搜索其页面的链接网页。蜘蛛访问web页面的过程,其实就是类似于普通用户使用浏览器访问其页面。先向页面提出访问请求,服务器接受其访问请求并返回HTML代码后,把获取的HTML代码存入原始页面数据库。

为了提高效率,搜索引擎会使用多个蜘蛛分布爬行。而且,搜索引擎的服务器遍布世界各地,每台服务器都会派出多只蜘蛛同时去抓取网页。如果这些搜索引擎蜘蛛重复访问同一个页面,显然会降低工作效率。那么,蜘蛛在访问页面的时候,到底是怎么做到一个页面只访问一次的呢?做到信息共享就可以了。

在抓取网页的时候,搜索引擎会建立两张不同的表,一张表记录已经访问过的网站,一张表记录没有访问过的网站。当蜘蛛抓取某个外部链接页面URL的时候,需要把该网站的URL下载回来分析,当蜘蛛全部分析完这个URL后,就会将这个URL存入相应的表中。

如果这时,有另外的蜘蛛从其他的网站或页面又发现了这个URL,就会和已访问列表进行对照,如果已经访问过了,蜘蛛就会自动丢弃该URL,不再访问。

2.建立索引

面对海量的原始网页数据库,搜索引擎必须对蜘蛛抓取的原始web页面进行预处理,才能让用户在搜索时快速便捷的找到搜索结果。

网页预处理最主要的过程,就是为网页建立全文索引,然后开始分析网页,最后建立倒排文件(也称反向索引)。经过搜索引擎的分析处理,web网页就不再是原始网页,而是能反映页面主题内容的、以词为单位的文档。

Web页面分析过程如下:

①通常要先判断网页类型;

②衡量其重要程度与丰富程度;

③对超链接进行分析;

④分词;

⑤删除重复网页。

数据索引中,结构最复杂的就是建立索引库,而索引又分为文档索引和关键词索引。每个网页唯一的docID号是有文档索引分配的,每个wordID出现的次数、位置、大小格式都可以根据docID号在网页中检索出来。最终形成wordID的数据列表。

倒排索引是最简单的,实用的倒排索引还需记载更多的信息。在单词对应的倒排列表中,除了记录文档编号之外,单词频率信息也会被记录进去,便于以后计算查询和文档的相似度。

倒排索引形成过程如下:

①搜索引擎用分词系统将文档自动切分成单词序列;

②对每个单词赋予唯一的单词编号;

③记录包含这个单词的文档。

3.查询服务

当我们在搜索引擎中输入一个关键词,点击“搜索”按钮之后,搜索引擎程序就会开始对搜索词进行分词处理,然后根据情况判断是否需要启动整合搜索,再找出错别字以及拼写错误,还有去掉停止词。

接着,搜索引擎程序会从索引数据库中,找出包含目标关键词的相关网页,最后按格式返回到搜索结果页面。

搜索结果排序是查询服务的核心,它决定了搜索引擎的质量以及用户满意度。实际上,搜索结果排序的因素有很多,但最主要的是网页内容的相关性。影响相关性的主要因素包括如下五个方面:

①关键词常用程度

经过分词后的多个关键词中,越不常用的词对搜索词的意义贡献反而越大。而常用词的贡献反而小,发展到一定极限就是停止词,对页面不产生任何影响。

②词频及密度

通常情况下,搜索词的密度和其在页面中出现的次数成正相关,次数越多,说明密度越大,页面与搜索词关系也就越密切。

③关键词位置及形式

页面关键词出现的格式和位置都被记录在索引库中,而关键词出现在标题标签、黑体、H1等时,则说明页面与关键词相关性高。

④关键词距离

关键词被切分成多个关键词之后,如果还能在页面上连续完整的出现,或是关键词之间距离较近,那就说明其与搜索词相关程度高。

⑤链接分析及页面权重

页面之间的链接和权重关系,也会影响关键词的相关性,其中最重要的是锚文字。页面有越多以搜索词为锚文字的导入链接,说明页面的相关性越强。链接分析的范围还包括链接源页面本身的主题、锚文字周围的文字等。

以上就是《搜索引擎工作原理是怎样的?》的全部内容,感谢阅读,希望对你有帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮您完成这个任务。这个任务可以分成两个步骤:首先,我们需要读取"data.txt"文件并将其内容转换为单词列表;然后,我们需要对单词列表进行统计并找出出现频率最高的10个单词。 下面是完整的Python代码: ```python import re from collections import Counter def RedTxt(): with open('data.txt', 'r') as f: data = f.read() return data def GetWordList(text): # 将文本转换为单词列表 word_list = re.findall(r'\b\w+\b', text.lower()) return word_list def Top10Words(word_list): # 统计单词出现的频率,并找出出现频率最高的10个单词 word_count = Counter(word_list) top_words = word_count.most_common(10) return [word[0] for word in top_words] # 读取"data.txt"文件 text = RedTxt() # 将文本转换为单词列表 word_list = GetWordList(text) # 找出出现频率最高的10个单词 top_words = Top10Words(word_list) # 输出结果 print("出现频率最高的10个单词:") for word in top_words: print(word) ``` 这个程序会将"data.txt"文件的内容读取到变量"text",然后将"text"转换为单词列表"word_list"。接下来,程序将统计"word_list"每个单词出现的频率,并找出出现频率最高的10个单词。最后,程序将这10个单词存储在"top_words"列表,并在屏幕上输出这些单词。 请注意,这个程序的"GetWordList()"函数使用了正则表达式来将文本转换为单词列表。这个函数会将文本转换为小写,并忽略标点符号和其他非字母字符。如果您的文件包含其他非字母字符,您可能需要修改这个函数以确保程序能够正确地统计单词的出现频率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值