導讀:本文主要闡述搜索引擎的基本技術。故事純屬虛構,若有雷同,算我抄你。
乾隆六年,皇城和府。javascript
時任內務府總管的和珅正在府邸裏來回踱步,讓他煩心的是主子乾隆爺交給他的選秀女一事。html
「老爺,您這是怎麼了?」管家劉全很會察言觀色。java
「今日早朝,聖上讓我負責今年選秀女的事,哎……」和珅嘆了口氣接着說:「雖然離歲末還有數月,但這茫茫人海,我到哪去給聖上找他要的‘總沒有右耳朵’的姑娘啊。」算法
「啥?沒有耳朵的姑娘?」劉全非常驚訝。不過他很快就鎮定下來,對和珅說道:「老爺,這歷年選秀女,最終送進宮的都是萬里挑一篩出來的,別說沒有耳朵,哪怕兩隻耳朵不通常大恐怕都不行吧。想必這又是萬歲爺出的題目在考咱呢,您可必定要慎重啊!」後端
「對啊!」和珅一拍大腿,「這必定是聖上在故意考我呢。走走走,去找老紀,讓他幫我想一想。」網絡
和珅口中的老紀正是時任國史館總纂的紀昀(字曉嵐)。此人博聞強記、才思敏捷,最關鍵的是他很善於猜解乾隆皇帝的字謎。前後端分離
「和中堂,什麼風把您給刮來了?」和珅剛一進門,紀昀就拱手示好。沒辦法,誰讓和珅的官職比他高出好幾個級別。異步
「紀大人,我又要來麻煩你了……誒?劉大人也在啊,」這一天內閣學士劉墉恰逢在紀昀家作客,這讓和珅非常欣喜,「兩位大學士都在,那我這事差不了了。」ide
和珅向兩位同僚敘述了乾隆爺交代給他的事。大數據
思忖片刻,紀昀果然有了答案:「哈哈哈……和中堂,‘總沒有右耳朵’指的不就是個聰明的‘聰’字嘛,萬歲爺是讓您給他找聰慧伶俐的姑娘家啊。」
「哎呀呀,紀大人果真才氣過人,聖上定是這個意思,錯不了,錯不了。」和珅此時茅塞頓開。
(猿知原味注:做爲搜索引擎,首先要理解用戶的意圖——到底是想搜什麼?雖然用戶的輸入不會像上文中乾隆皇帝那般隱晦,但計算機也遠不及紀昀那般聰明,甚至能夠說是笨。好比你輸「中外科學名著」幾個字,對於咱們人而言很簡單,中外/科學/名著,然而計算機或許就會犯糊塗。對它而言,「外科」、「學名」僅從詞庫去看也是合理的詞,究竟該如何切分是一個問題。這裏就涉及到了搜索引擎中的分詞算法,這裏不展開討論)
一番道謝以後,和珅準備離去,正要走,被劉墉喊住了:「和大人,您這是準備去尋皇上要的聰明丫頭嗎?」
一句話問得和珅呆住了,心想着「那否則呢?」
「依臣看此事不可操之過急。」見和珅頓住了腳,劉墉接着說道:「咱大清幅員遼闊,隨着‘攤丁入畝’的制度實施,如今人口眼看就要破一萬萬了,想必其中待字閨中的女娃子也很多。大人您這一去少說也得個把月,就算一切進展的順利,您遴選出了一批秀外慧中的女子帶到了萬歲爺面前,但假若到那時咱主子又改了主意,不要聰慧的了,要樸實淡雅的,那中堂您不就白忙活了嗎?」
「對對對,大人提醒的極是啊,」和珅剛剛舒展開的眉頭又鎖了起來,「我作奴才的無所謂白不白忙,但這一來二去的,要是耽擱了給萬歲爺上交秀女的時日,那但是欺君之罪啊!劉大人,這事兒您必定得幫幫我,您看這選秀女的事往下該如何進行啊?」
「和大人,您看這樣可好,」原來劉墉一早就有了主意,「這次您下民間徵召秀女,無需將‘聰慧’列爲徵求條件,也暫時沒必要把她們帶回宮。您須要作的只是儘量多的蒐羅適齡女子,並將她們的門第、容貌、修養、性格、能力、品行等通通登記造冊,回宮以後再對收集到的這些材料加以概括整理。待聖諭下達之時,您只須要根據整理好的檔案,篩選出那些最符合聖上心意的女子,再差人……」
「此計甚妙、甚妙!」劉墉還沒說完,紀昀已經忍不住在一旁連連稱讚了,「依劉大人的意思,若是在趙家村找了個叫‘趙梨影’的姑娘考察結果是‘白、富、美’,又在關家村找了個叫‘關逍桐’的姑娘考察結果是‘傻、白、甜’,那在咱們從新編排以後的檔案裏,關於‘膚白’的記載,就應該同時存在這兩我的。別說今年了,之後任意一屆選秀女,只要咱萬歲爺好上膚若凝脂的類型,直接把這倆丫頭提溜進宮就是了。」
「兩位大人簡直就是我劉某人的再生父母啊!」聽到這,和珅終於醒過味兒了。一邊給他們做揖致謝,一邊堆着笑臉轉向紀昀:「紀大人,劉某在這還有一事相求。個人人到時候都到民間去尋秀女了,據說您最近在負責纂修《四庫全書》,等咱們將秀女的材料呈到宮中,還得麻煩您分一撥人幫忙整理建檔啊。」
「我去,這羅鍋(劉墉外號)出的餿主意……」紀昀心中一萬頭羊駝奔過,可面對乾隆爺身邊的大紅人又迫不得已,只得苦笑着應道:「應該的,應該的」。
(猿知原味注:若是整個互聯網上只有三個網站,用戶在搜索一個詞的時候徹底能夠經過字符串匹配的方式找到包含這個詞的網站,這很簡單。若是有100個網站,以目前計算機的檢索速度也能輕鬆作到毫秒級別的響應。然而,網絡上的站點千千萬萬,如果在用戶點擊搜索時才從這些多如牛毛的網站中去匹配某個詞,那就會猶如大海撈針,顯得很不靠譜了。搜索引擎爲了解決這個問題,有了「倒排索引」這個概念。上文中將某位秀女的體貌性格等特徵登記造冊被稱之爲「正排」,有了全部秀女的正排數據,再在「特徵」這個維度下建立「白、富、美、傻、甜」等一系列索引,每一個索引對應於具有此項特徵的秀女們,這些索引就被稱之爲「倒排索引」。構建倒排索引是搜索引擎的關鍵技術,有了它,用戶輸入N個詞,只須要對這N個詞的索引所對應的網站列表求交集就能夠了)
「對了,兩位大人,剛纔咱們談到的都是如何給秀女建檔的事,那在蒐羅秀女的問題上大家有何見解啊?」看樣子和珅今天是賴上紀昀和劉墉了,他接着解釋道:「歷朝歷屆選秀女,地方官藉此霸佔民女的事都時有發生,因此此次萬歲爺專門叮囑過奴才,今年所選秀女不想經過下面的官員舉薦了。如此一來,這泱泱大國,我如何才能蒐羅到天下全部的秀女啊?」
不得不說,和珅能作到如今這個位置上仍是有兩把刷子的,一個問題就讓兩位大學士緘默了。
沉靜了好一陣,紀昀說話了:」中堂,您看可否這樣。搜尋秀女的差事就從臣府上的兩個丫環開始,除了把她倆登記以外,再順便問問,看她們老家還有哪些十三到十六歲還沒有婚嫁的女子……「
」老紀,你等等,」和珅打斷了紀昀的陳述,「你府上那倆丫頭我都清楚,她們那窮鄉僻壤的能出幾個美人啊?」
「別急啊,和大人,臣是這麼想的,」紀昀接着說到:「雖然這兩個丫環能介紹的人少之又少,但在您去統計這些人的同時,也能夠順便讓她們介紹幾個各自認識的適齡女子啊,這不就從兩個發展到了數十個,數十個發展到了幾十個嗎?再日後也都如此,對蒐羅到的秀女,除了將她們作記錄外,還要讓她們介紹身邊的其餘女子,如此一來……」
「如此一來,和大人就如同佈下了一張天羅地網,網盡天下美女指日可期啊!紀大人,您這一招真可謂是高啊!」此次輪到劉墉捧紀昀了。
(猿知原味注:紀昀談到的蒐羅方案在搜索引擎中被稱做「網絡爬蟲」(Spider),爬蟲一般的作法是利用網頁之間的超連接從必定範圍的網頁出發,提取出指向其餘頁面的連接,把它們當成將下次要請求的對象。周而復始地重複這個過程,最終從理論上而言,幾乎就能爬取到整個互聯網上的內容。顯而易見的,經過爬蟲採集網頁是搜索引擎的首要任務)
「劉大人過獎了。臣這法子雖然說能夠蒐羅到絕大多數民間的適齡女子,但畢竟此次不經過地方官舉薦了,皇上給的時間又有限,只恐怕臨時纔去一一登記,不通過長時間的詳細考察,對一些性格較爲內斂的女子在品行上的評定會有所疏漏啊。」看得出來,紀昀是一個謹小慎微的人。
「不打緊不打緊,」此時的和珅已經是志得意滿,「紀大人,您就滿足吧,數月時間要評定登記上百萬的人,能將她們外在表現出來的容貌品行登記造冊,不出紕漏就不錯了,還哪顧得上她們內不內斂啊。」
(猿知原味注:不少搜索引擎只對爬蟲請求到的html感興趣,而不去解析請求到的javascript。這就使得一些運用先後端分離技術開發的網頁就如同上文提到的內斂女子同樣,異步渲染的內容很不利於被搜索引擎搜索到,從而影響網站被收錄)
「不過,和大人,有一個問題您還真得考慮到,」劉墉彷佛又想到了點什麼,他說道:「聖上不是找您要聰明的姑娘嗎,臣估摸着按照剛纔我們討論的方案實施下去,到了年末,紀大人整理的秀女檔案裏具有‘聰慧’這一條件的女子再怎麼說也得萬八千個,您不可能將她們全都帶進宮面聖吧。是否是也得分個三六九等,只有最最符合條件的一批人方能入選呢?」
「哈哈,劉大人,這有何難呢,」剛當過恩科主考官的和珅對排名這一套玩的很溜,他慢條斯理地說道:「您看,雖然說萬歲爺只跟爲臣提到了聰明,但這其中還有些標準是不言而喻的。咱大清朝選秀女,自順治爺以來都是滿蒙漢的八旗女子或包衣出身,這一下就能篩掉一大半人吧。容貌秀麗、舉止端莊,這萬歲爺沒說但祖制總要聽從吧,這又要篩掉一部分人。再說這‘聰明’也分大聰明亦或是小聰明,從古至今,機關算盡禍亂宮闈的不叫聰明,外戚專權把持朝政的更不叫聰明,把那些還沒有進宮就玩小聰明的再篩掉又還能剩多少人呢?」
和珅的一番話讓劉墉和紀昀瞠目結舌,彷佛和珅在教他們如何成爲主子身邊的紅人,又彷佛在告訴他們「你大爺仍是你大爺」。
(猿知原味注:咱們都知道在使用搜索引擎的時候,它會根據用戶搜索的關鍵詞,排列出相關性最高的內容呈現出來。和珅談到的正是這裏所謂的相關性,它對於搜索引擎排名來說是一門大學問。關鍵詞的詞密度、位置、距離等都會影響到搜索引擎對其相關性的斷定。除此以外,隨着大數據和人工智能的發展,現代搜索引擎在作相關性分析的時候正變的愈來愈‘懂你’,你輸入‘黃曉明的妻子’,出來的必定有大量和Angelababy相關的內容;你手誤將‘趙麗穎’輸成了‘趙梨影’,不要緊,搜索引擎知道你到底是想輸什麼;對於一個注重養身、常常搜索食品的人,輸入‘蘋果’排名靠前的會是水果,而對於一個電子發燒友,輸入‘蘋果’排名靠前的必定會是手機)
「對了,兩位大人,提及給秀女們排名,臣這還有一個困惑,」和珅接着說道:「假設有這麼一我的,爲了從千千萬秀女中脫穎而出,她僞造了滿族貴族的身份,用胭脂水粉把本身倒騰的芳菲嫵媚,古靈精怪的性格更是假裝的恰到好處。有什麼法子可以防止這種做弊行爲呢?畢竟咱們對其進行評定也就是依據這些表象,短期內沒法有更深刻的瞭解。」
「哎,她們只知道榮華富貴,卻不曉得‘一入侯門深似海’啊!」剛剛還在發愣的紀昀發出了感慨。又繼續說道:「和大人,臣卻是有個主意能夠很大程度上地打擊這種做弊。您看啊,通常而言,越是真正的名門望族、國色天香,越會被十里八鄉的人所熟知,在您以咱們剛纔談到的口口相傳的方式去搜羅秀女的過程當中,每每那些名副其實的秀女人選會被別人屢次說起。相反的,雖然有些僞秀女能用一些辦法干擾到朝廷對她們的考察,獲得很不錯的評定,但如若周邊並沒幾我的知道她們的存在,那這其中就一定有詐了。」
「這法子好,除此以外,對被介紹人的評定在很大程度上也要看介紹人是誰,」劉墉補充道:「好比紀大人家這兩個丫環,原本就是親信,介紹的女子應該也比較靠譜,排名就該靠前。而那些信口雌黃,本來口碑就不大好的女子介紹的人就理應日後排。」
(猿知原味注:搜索引擎在計算排名的時候除了看內容和關鍵詞的相關性,對一個網站總體權重的評估也是一個很是重要的依據。好比Google的PageRank算法,就是創始人Larry Page 和 Sergey Brin 當年在斯坦福讀博期間搞出來的一個算法,也正是憑藉此算法他們創立了Google。其核心思想很簡單:一、若是一個網頁被不少其餘網頁連接到的話說明這個網頁比較重要,也就是PR值會相對較高;二、若是一個PR值很高的網頁連接到一個其餘的網頁,那麼被連接到的網頁的PR值會相應地所以而提升)
「哈哈哈哈……今日造訪,受兩位大人的啓發,我和某人所獲頗豐啊。待我完成聖命,即向皇上請旨,給兩位大人加官進爵,大家就等我好消息吧。」和珅一邊起身,一邊拜謝。至此,他心頭的石頭總算是落地了。
(完)
故事讀完了,仍是意猶未盡?不要緊,關注「猿知原味」公衆號(yz--yw),還有一大波生動有趣的乾貨等着你。
寒冬臘月裏的一天,和珅路過神武門,恰巧看到一女子被守衛攔在門外。「和大人,這女子非說她就是此次選秀女排名第一的人,名叫魏瓔珞。」守衛上前稟報道。
和珅湊近打量一番,這女子長的容色清麗、秀雅絕俗。
「看看大家都是什麼態度,這指不定之後就會是咱主子,」和珅數落了守衛兩句,扭過頭一臉諂媚的對女子說道:「魏姑娘,仍是煩請您報一下生辰八字,只要和咱檔案庫裏記載的同樣,微臣立刻帶您去面見聖上……」