天天看點

《谷歌語義搜尋》一1.3 語義搜尋如何工作

本節書摘來自異步社群《谷歌語義搜尋》一書中的第1章,第1.3節,作者【英】david amerland,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

谷歌語義搜尋

和普通的搜尋一樣,我們可以将語義搜尋分解為幾個組成部分來确切地了解它是怎樣工作的—它與我們過去習慣了的搜尋不太一樣。更重要的是,來了解這種不同是如何發生的。

在我們深入細節之前,首先看一看圖1.1将會很有幫助,其中展現了幫助建立語義搜尋的那些元素。

《谷歌語義搜尋》一1.3 語義搜尋如何工作

為了建立起能夠用你我的方式了解字詞的語義搜尋,三個元素需要組合在一起。

首先是一個統一資源辨別符(universal resource identifier,uri)。這可以是我們都熟悉的web上的一個url,或者可以是一個統一資源名稱(universal resource name,urn)—這是一種特别的方式用來說明它是比如一個人的名字。uri是必要的,因為它是初始資料集的來源,是的,這個過程中仍然會涉及到一個蜘蛛。然而,僅有這個初始資料集是不夠的。可以将它們視作海量的原始資料,在這個階段它們還沒什麼用,需要進一步地分類和提煉。

正如甘蔗經過一道提煉工序将其從類似竹竿的東西變為了可以讓我們的飲料和甜品變甜的細白砂糖,uri在其可用之前也需要進一步提煉。這種提煉在一個資源描述架構(resource description framework,rdf)的幫助下完成。可以将rdf視作一個規則集,支援資料從存儲這些uri的一個資料庫向另外一個傳輸(或稱翻譯),并且既不丢失含義也不弄混取值。

為了闡明這一點,讓我們來看一個簡單的例子,即我在英國的家庭住址。我的住處由我的名字、門牌号、街道、城市、郡、郵政編碼和國家組成。在一個英國資料庫中,一個郵政編碼由字母和數字組成。現在假設我的資料正被移植到一個美國資料庫中,這樣我才可以訂閱一份美國印制的出版物。用以前的方式來做馬上就會出現一些小問題。首先,在美國,郡被州代替了;其次,郵政編碼(post code)通常稱為美國郵編(zip code);第三,郵政編碼的格式是不同的,通常全是數字。

如果沒法告訴美國資料庫它已經接收到的是哪類資訊,就沒法有意義地來使用,于是比方說我就不能訂閱任何美國雜志,除非我決定移民到美國并在那兒買一幢房子。

幸運的是,rdf可以把我的英國資料翻譯成那些對美國資料庫而言有意義的字段,于是我就可以用我的曼徹斯特家庭住址收到從美國投遞的雜志了。不僅如此,rdf 還允許美國資料庫保持我的英國郵政編碼格式,同時看起來它又是一個美國郵編。

是以,在這一情境中,rdf為一個網絡爬蟲或者蜘蛛所索引的原始資料提供了含義,并允許這些資料在幾乎任何地方都有意義。我說的是幾乎任何地方,是因為盡管給機器去讀的資料可以是非常精确的,但人們使用的詞卻不是這樣的。同一個詞可以有不同的含義甚至不同的用法。這種歧義問題可以用本體(ontology)—即含義的彙集來解決。

例如,一個本體可以定義:位址在城市中,城市在郡中,郡在國家中。當有人問我們要我們的位址時,你我直覺就會如此了解,但機器卻做不到,并且如果沒有一個本體來指導它們,它們永遠都做不到。

本體很容易被構造為一些類和這些類的一些子集,繼而再為它們添加一條推理規則。例如,一條推理規則可能說如果一條位址在某個城市中,并且這個城市在某個郡中,那麼這條位址就在那個郡中—即便沒有提過這一點。是以,通過詳述我的位址以及我住在英國曼徹斯特這一點,語義搜尋可以像人一樣容易地推導出我住在柴郡—即便我沒有特别提過這一點。

計算機并沒有真正了解我是一個英國居民、我的家在英國,以及英國被分為具有郵政編碼而非美國郵編的若幹個郡。但通過組合語義搜尋的三個元素,計算機學會了翻譯資料并将其以一種看起來智能的方式與特定的含義關聯起來。某種意義上,如果我把自己的名字連結到那條位址上,計算機就會“知道”我是一個英國居民,而并不需要任何線上文檔或資料曾提及這一點。語義搜尋可以将它推導出來。更好的一點是,通過将我的位址關聯到我的一種聯系方式,也就可以把我的電話号碼和電子郵件位址提出來呈現在搜尋中,而不再需要去翻幾十頁來找到可以聯系到我的最佳方式。

對于人來說顯得有些笨重的本體卻可以極好地在web上工作。當網絡爬蟲們通路一個網站時,它們可以獲得海量的資料而不會像人一樣迷失其中或感到疲倦。過去它們所不能做的是像人一樣搞清楚它們收集到的資料的含義。

然而,如今,随着引入了使用uri并通過rdf和本體來解析它的程式,資料獲得了更精确的值進而允許谷歌的搜尋從它索引的資料的關聯中推導含義,并是以顯得讓我們覺得有些智能。

在圖1.2中,通過搜尋“works of da vinci”(達芬奇的作品),我們可以看到被賦予含義的資料之間的關聯所形成的威力。過去這會傳回一組截然不同的結果,很可能對我而言是不夠精确的,因而我不得不重新用查詢“works of lenoardo da vinci”(萊昂納多·達芬奇的作品)來改進搜尋。

《谷歌語義搜尋》一1.3 語義搜尋如何工作

觀察圖1.2所示的搜尋結果,我們發現這裡的搜尋算法已經聰明到能夠了解“da vinci”指的是萊昂納多·達芬奇以及我正在找他的藝術作品。在右側它還給了我一些額外的個人履歷資訊,甚至建議了一些其他的相關搜尋。

盡管這一特征和語義搜尋的核心并沒有直接的關聯,但它對搜尋結果頁面仍是一個有價值的補充。它更正式一點的名字叫做意外發現(serendipity discovery),搜尋技術中有一個領域都在處理意外資訊檢索以及支配它的驅動力。對我們來說,隻要知道對于你業務的營銷和你在未來找到客戶的方式而言它有着巨大的影響就足夠了,我們在本書中會探索這些影響,并将其形式化為能夠幫助你利用它的一套實踐。