最近中文字幕2019高清,亚洲人成高清在线播放,男生淦哭男生图片动漫有字,国产亚洲精品九九久在线观看,无码av专区丝袜专区

圖解通用搜索引擎背后的技術(shù)點(diǎn)

優(yōu)采云 發(fā)布時(shí)間: 2022-06-19 03:00

  圖解通用搜索引擎背后的技術(shù)點(diǎn)

  

  1. 寫(xiě)在前面

  今天準備和盆友們一起學(xué)習下關(guān)于通用搜索引擎的一些技術(shù)點(diǎn)。

  鑒于搜索引擎內容非常多,每一部分都夠寫(xiě)好幾篇文章的所以本文只是拋磚引玉,深入挖掘還得老鐵們親力親為。

  通過(guò)本文你將對通用搜索引擎的基本原理和組成有一個(gè)較為清晰的認識,用心讀完,肯定有所收獲!

  廢話(huà)不說(shuō),各位抓緊上車(chē),沖鴨!

  

  2. 初識搜索引擎2.1 搜索引擎分類(lèi)

  搜索引擎根據其使用場(chǎng)景和規模,可以簡(jiǎn)單分為兩大類(lèi):

  通用搜索又稱(chēng)為大搜,諸如谷歌、百度、搜狗、神馬等等都屬于這一類(lèi)。

  

  垂直搜索又稱(chēng)為垂搜,是特定領(lǐng)域的搜索,比如用QQ音樂(lè )搜周杰倫的歌等。

  

  兩類(lèi)搜索引擎雖然數據規模和數據特征不一樣,但都是為了填平用戶(hù)和海量信息之間的鴻溝。

  

  2.2 搜索和推薦

  搜索和推薦經(jīng)常被相提并論,但是二者存在一些區別和聯(lián)系。

  

  2.3 搜索引擎評價(jià)標準

  我們每天都和搜索引擎打交道,評價(jià)一個(gè)搜索引擎的好壞可簡(jiǎn)單概括為:精準性、時(shí)效性、響應速度、權威性等。

  換句話(huà)說(shuō),搜索引擎懂得用戶(hù)真正想要找什么,可以快速準確地展示出來(lái),對于一些熱點(diǎn)突發(fā)信息也可以及時(shí)收錄展示,就能很好地博得用戶(hù)。

  這個(gè)目標需要搜索引擎多個(gè)模塊協(xié)作處理,是個(gè)復雜的系統工程,并非易事。

  3. 通用搜索引擎的整體概覽3.1 搜索引擎的基本流程

  大白嘗試用樸實(shí)的語(yǔ)言來(lái)整體表達下,通用搜索引擎大致是怎么工作的:

  1. 網(wǎng)絡(luò )蜘蛛爬蟲(chóng)每天不辭辛苦地收錄網(wǎng)頁(yè),然后存儲起來(lái),這樣各個(gè)站點(diǎn)的頁(yè)面就有了一份份鏡像,這個(gè)規模是百億/千億級的。

  

  2. 單純地鏡像也不能直接用,需要加工處理,把一個(gè)個(gè)網(wǎng)頁(yè)進(jìn)行分詞,建立搜索詞和網(wǎng)頁(yè)的對應關(guān)系,這樣用戶(hù)搜索某個(gè)東西時(shí),才會(huì )拿到很多相關(guān)的網(wǎng)頁(yè)。

  

  3. 比如"搜索隱秘的角落"可能會(huì )有100個(gè)相關(guān)網(wǎng)頁(yè)被找到,但是網(wǎng)頁(yè)和檢索詞的關(guān)聯(lián)性肯定有強有弱,因此還需要進(jìn)行網(wǎng)頁(yè)的排序,排序策略有很多,最終把優(yōu)質(zhì)的網(wǎng)頁(yè)排在前面展示給用戶(hù)。

  用戶(hù)看到相關(guān)結果之后,進(jìn)行點(diǎn)擊或者跳過(guò),搜索引擎根據用戶(hù)的相關(guān)動(dòng)作進(jìn)行調整,實(shí)現整個(gè)閉環(huán)過(guò)程。

  4. 為了能更好地理解用戶(hù)的真實(shí)用途,需要進(jìn)行檢索詞的意圖理解、詞條切分、同義詞替換、語(yǔ)法糾錯等處理,再根據這些檢索詞去獲取數據,為用戶(hù)找到心中所想的網(wǎng)頁(yè)。

  比如檢索詞為"老鷹",可能是自然界的老鷹,也可能是NBA的一只球隊:

  3.2 搜索引擎的基本組成

  我們從整體簡(jiǎn)單看下基本組成以及各個(gè)模塊的主要功能:

  

  接下來(lái),我們將粗淺地介紹幾個(gè)模塊的基本內容和技術(shù)點(diǎn)。

  4. 網(wǎng)絡(luò )爬蟲(chóng)模塊簡(jiǎn)介

  網(wǎng)絡(luò )爬蟲(chóng)模塊是通用搜索引擎非常的基礎組件,一般都會(huì )采用分布式爬蟲(chóng)來(lái)實(shí)現,我們來(lái)看看這個(gè)搬運工是如何實(shí)現海量網(wǎng)頁(yè)發(fā)掘的:

  

  網(wǎng)絡(luò )爬蟲(chóng)的基本流程:

  在抓取過(guò)程中會(huì )有多種遍歷策略:深度優(yōu)先遍歷DFS、廣度優(yōu)先遍歷BFS、部分PageRank策略、OPIC在線(xiàn)頁(yè)面重要性計算策略、大站優(yōu)先策略等。

  

  在工程實(shí)踐中需要根據自身情況和搜索引擎特點(diǎn)進(jìn)行選擇某種策略或者多種策略組合。

  網(wǎng)絡(luò )爬蟲(chóng)需要遵循Robots協(xié)議(網(wǎng)絡(luò )爬蟲(chóng)排除標準),這是網(wǎng)絡(luò )爬蟲(chóng)和站點(diǎn)之間的君子協(xié)定,站點(diǎn)通過(guò)協(xié)議告訴網(wǎng)絡(luò )爬蟲(chóng)哪些可以抓哪些不可以。

  網(wǎng)絡(luò )爬蟲(chóng)同時(shí)需要考慮抓取頻率,防止給站點(diǎn)造成過(guò)重負擔,總之,搜索引擎的網(wǎng)絡(luò )爬蟲(chóng)需要是個(gè)謙謙君子。

  5. 網(wǎng)頁(yè)內容處理模塊

  爬蟲(chóng)模塊將網(wǎng)頁(yè)內容存儲之后,網(wǎng)頁(yè)內存處理模塊開(kāi)始解析網(wǎng)頁(yè)內容,主要工作包括:數據清洗、網(wǎng)頁(yè)內容分詞、建立正排索引、建立倒排索引等。

  

  5.1 數據清洗

  一般來(lái)說(shuō),網(wǎng)頁(yè)中除了具體內容還會(huì )有很多無(wú)關(guān)的東西,比如html標簽、推廣等,這些在實(shí)際搜索引擎中都是無(wú)用的。

  內容處理模塊會(huì )將無(wú)用數據、標簽清洗掉,為后續的分詞做準備。

  5.2 中文分詞

  將清洗完成的內容進(jìn)行分詞提取關(guān)鍵詞,比如一個(gè)網(wǎng)頁(yè)內容有1000字,分詞之后大約有50個(gè)詞,相當于提取了網(wǎng)頁(yè)的主干,并且會(huì )對標題、摘要、正文等不同部分的內容做不同權重處理。

  分詞過(guò)程中會(huì )剔除停用詞、虛詞等,比如"的、得、地"等,從而極力還原網(wǎng)頁(yè)的主干內容。

  我們用在線(xiàn)網(wǎng)頁(yè)分詞工具和真實(shí)網(wǎng)頁(yè)來(lái)模擬下這個(gè)過(guò)程:

  網(wǎng)頁(yè)分詞在線(xiàn)工具:

  抓取網(wǎng)頁(yè):

  可以看到分詞后可以標注詞頻,這些都是后續作為網(wǎng)頁(yè)排序的重要來(lái)源,但是中文是很復雜的,因此分詞算法會(huì )有很多種,常見(jiàn)的包括:

  

  5.3 正排索引

  假定我們將每個(gè)網(wǎng)頁(yè)進(jìn)行唯一編號docid,經(jīng)過(guò)前面的分詞一個(gè)網(wǎng)頁(yè)將被分成不同權重的多個(gè)實(shí)體詞。

  所謂正排就是根據docid可以拿到屬于該網(wǎng)頁(yè)的所有內容,是一個(gè)符合我們思維的正向過(guò)程,相對而言會(huì )有倒排索引。

  我們以一篇《隱秘的角落》劇情簡(jiǎn)介的頁(yè)面為例,模擬分詞情況,大致如下(本分詞結果純屬腦補,以實(shí)際為準):

  

  5.4 倒排索引

  假如我們對10000個(gè)網(wǎng)頁(yè)進(jìn)行了分詞,其中包含了一些公共檢索詞:微山湖、智取威虎山、三十而立、隱秘的角落等,因此我們匯總之后將建立檢索詞->網(wǎng)頁(yè)的映射關(guān)系。

  

  那么對于檢索詞"隱秘的角落"出現很多個(gè)網(wǎng)頁(yè),倒排索引就相當于從一個(gè)詞能拉取到多少文章的過(guò)程。

  

  就如同我們提到美食就想到:火鍋、燒烤、烤鴨、炒菜等等,是一個(gè)從點(diǎn)到面的過(guò)程,這種逆向過(guò)程在搜索引擎中非常重要。

  

  5.5 本章小結

  內容處理模塊將抓取到的網(wǎng)頁(yè)進(jìn)行清洗、提前新URL給爬蟲(chóng)模塊、內容分詞、建立正排索引和倒排索引,是個(gè)承上啟下的中間環(huán)節。

  特別地,提一下正排索引和倒排索引,字面上并不直觀(guān),其實(shí)道理并不難理解:

  正排索引:具體到一篇網(wǎng)頁(yè)有多少關(guān)鍵詞,特指屬于該網(wǎng)頁(yè)本身的內容集合,是一個(gè)網(wǎng)頁(yè)。

  倒排索引:一個(gè)檢索關(guān)鍵詞對應多少相關(guān)聯(lián)的網(wǎng)頁(yè),也就是可備選網(wǎng)頁(yè)集合,是一類(lèi)網(wǎng)頁(yè)。

  6. 網(wǎng)頁(yè)排序和用戶(hù)模塊6.1 網(wǎng)頁(yè)排序的必要性

  由于存儲的網(wǎng)頁(yè)是百千億級的,那么一個(gè)檢索詞可能對于幾萬(wàn)、幾十萬(wàn)甚至更多相關(guān)的網(wǎng)頁(yè)。

  網(wǎng)頁(yè)排序需要綜合考慮:相關(guān)性、權威性、時(shí)效性、豐富度等多個(gè)方面。

  搜索引擎要展示優(yōu)質(zhì)的強關(guān)聯(lián)網(wǎng)頁(yè)給用戶(hù),并且放在靠前的位置,否則搜索效果將會(huì )很差,用戶(hù)并不買(mǎi)賬。

  事實(shí)上也是如此,比如搜索引擎返回了10頁(yè)結果,每頁(yè)10條,總結100條,一般用戶(hù)點(diǎn)擊到1-3頁(yè)之后的網(wǎng)頁(yè)大概率就不再點(diǎn)擊了,因此排序的頭部?jì)热輰τ谒阉鹘Y果至關(guān)重要。

  我們仍然以檢索"隱秘的角落"為例,百度共計返回了10頁(yè),其中1-2頁(yè)的內容是強關(guān)聯(lián)的,是個(gè)比較不錯的檢索結果了:

  6.2 網(wǎng)頁(yè)排序的常見(jiàn)策略

  網(wǎng)頁(yè)排序策略是個(gè)不斷優(yōu)化和提升的演進(jìn)過(guò)程,我們來(lái)一起看下都有哪些排序策略:

  這是早期搜索引擎常采取的方法,相對簡(jiǎn)單但是效果還不錯。

  簡(jiǎn)單來(lái)說(shuō)就是根據網(wǎng)頁(yè)中關(guān)鍵詞的出現頻率以及出現位置作為排序依據,因為普遍認為:檢索詞出現次數越多、位置越重要,網(wǎng)頁(yè)的關(guān)聯(lián)性越好,排名越靠前。

  詞頻并不是單純的統計次數,需要有全局觀(guān)念來(lái)判斷關(guān)鍵詞的相對次數,這就是我們要說(shuō)的TF-IDF逆文檔頻率,來(lái)看下百度百科的解釋?zhuān)?/p>

  TF-IDF (term frequency–inverse document frequency)是一種用于信息檢索與數據挖掘的常用加權技術(shù)。

  TF是詞頻(Term Frequency),IDF是逆文本頻率指數(Inverse Document Frequency)。

  TF-IDF是一種統計方法,用以評估一字詞對于一個(gè)文件集或一個(gè)語(yǔ)料庫中的其中一份文件的重要程度。

  字詞的重要性隨著(zhù)它在文件中出現的次數成正比增加,但同時(shí)會(huì )隨著(zhù)它在語(yǔ)料庫中出現的頻率成反比下降。

  舉個(gè)栗子:

  網(wǎng)頁(yè)中"吃飯"這個(gè)詞出現了10次,雖然次數很多,但是"吃飯"這個(gè)詞過(guò)于普通,因為在很多其他網(wǎng)頁(yè)都出現了,因此"吃飯"這個(gè)檢索詞的重要性就相對下降了。

  鏈接分析排序認為:網(wǎng)頁(yè)被別的網(wǎng)頁(yè)引用的次數越多或者越權威的網(wǎng)頁(yè)引用,說(shuō)明該網(wǎng)頁(yè)質(zhì)量越高。

  

  基于鏈接分析的排序算法有很多種,其中最有名的PageRank算法被谷歌廣泛采用,是其核心排序算法。

  來(lái)看下PageRank算法的基本思想:

  網(wǎng)頁(yè)的重要程度用PageRank值來(lái)衡量,網(wǎng)頁(yè)的PageRank值體現在兩個(gè)方面:引用該網(wǎng)頁(yè)其他網(wǎng)頁(yè)個(gè)數和引用該頁(yè)面的其他頁(yè)面的重要程度。

  假定一個(gè)網(wǎng)頁(yè)A被另一個(gè)網(wǎng)頁(yè)B引用,網(wǎng)頁(yè)B就將PageRank值分配給網(wǎng)頁(yè)B所引用的網(wǎng)頁(yè),所以越多引用網(wǎng)頁(yè)A則其PageRank值也就越高。

  另外網(wǎng)頁(yè)B越重要,它所引用的頁(yè)面能分配到的PageRank值就越多,網(wǎng)頁(yè)A的PageRank值也就越高越重要。

  其實(shí)這個(gè)算法說(shuō)起來(lái)非常簡(jiǎn)單:比如寫(xiě)公眾號,有大V轉載就相當于引用了,越多其他公眾號轉載,說(shuō)明你的公眾號內容質(zhì)量越高。

  

  PageRank算法也存在一定的問(wèn)題,比如對新頁(yè)面不友好,新頁(yè)面暫時(shí)沒(méi)有被大量引用,因此PageRank值很低,并且PageRank算法強調網(wǎng)頁(yè)之間的引用關(guān)系,對網(wǎng)頁(yè)本身的主題內容可能重視程度不夠,也就是所謂的主題漂流問(wèn)題。

  與PageRank算法類(lèi)似于的還有一些其他算法來(lái)彌補主題關(guān)聯(lián)問(wèn)題,包括:HillTop算法、Topic-Sensitive PageRank算法、HITS算法等,本文就不再展開(kāi)了。

  6.3 網(wǎng)頁(yè)反作弊和SEO

  搜索引擎也存在二八原則,頭部的網(wǎng)頁(yè)占據了大量的點(diǎn)擊流量,也意味著(zhù)巨大的商業(yè)價(jià)值。

  這里就要提到SEO,先看下百度百科對SEO的定義:

  搜索引擎優(yōu)化又稱(chēng)為SEO,即Search Engine Optimization,它是一種通過(guò)分析搜索引擎的排名規律,了解各種搜索引擎怎樣進(jìn)行搜索、怎樣抓取互聯(lián)網(wǎng)頁(yè)面、怎樣確定特定關(guān)鍵詞的搜索結果排名的技術(shù)。

  搜索引擎采用易于被搜索引用的手段,對網(wǎng)站進(jìn)行有針對性的優(yōu)化,提高網(wǎng)站在搜索引擎中的自然排名,吸引更多的用戶(hù)訪(fǎng)問(wèn)網(wǎng)站,提高網(wǎng)站的訪(fǎng)問(wèn)量,提高網(wǎng)站的銷(xiāo)售能力和宣傳能力,從而提升網(wǎng)站的品牌效應。

  道高一尺魔高一丈,只有魔法可以打敗魔法。

  

  網(wǎng)頁(yè)反作弊是搜索引擎需要解決的重要問(wèn)題,常見(jiàn)的有內容反作弊、鏈接分析反作弊等。

  

  6.4 用戶(hù)搜索意圖理解

  用戶(hù)模塊直接和用戶(hù)交互,接收用戶(hù)的搜索詞,準確理解用戶(hù)的搜索意圖非常重要。

  實(shí)際上用戶(hù)的輸入是五花八門(mén)的,偏口語(yǔ)化,甚至有拼寫(xiě)錯誤、并且不同背景的用戶(hù)對同一個(gè)檢索詞的需求不一樣、無(wú)爭議檢索詞的使用目的也不一樣。

  

  7. 全文總結

  搜索引擎是個(gè)非常復雜的系統工程,涉及非常多的算法和工程實(shí)現,本文旨在和大家一起簡(jiǎn)單梳理搜索引擎的基本組成和運行原理,算是科普文章了。

  搜索引擎中每一個(gè)模塊做好都不容易,也是互聯(lián)網(wǎng)產(chǎn)品中技術(shù)含金量的典型代表,深挖一個(gè)模塊都受益匪淺。

  

  點(diǎn)個(gè)在看,贊支持我吧

  

0 個(gè)評論

要回復文章請先登錄注冊


官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

最近中文字幕2019高清,亚洲人成高清在线播放,男生淦哭男生图片动漫有字,国产亚洲精品九九久在线观看,无码av专区丝袜专区