系統如何確定什麼html元素包含有關哪個變量的數據?搜索引擎如何從HTML頁面中獲取結構化數據?
HTML5允許人們標記他們的元素,如
<div data-productname=BMW>BMW</div>
但如何搜索引擎與舊網站做呢?
系統如何確定什麼html元素包含有關哪個變量的數據?搜索引擎如何從HTML頁面中獲取結構化數據?
HTML5允許人們標記他們的元素,如
<div data-productname=BMW>BMW</div>
但如何搜索引擎與舊網站做呢?
像rdfa和microformats這樣的語義標記支持產品模式。
許多產品網站也希望您提供具有特定格式的產品數據的供稿。
data-
屬性供作者用於他們自己的目的,用於「私人使用」。它們應該被瀏覽器,搜索引擎和其他軟件忽略,除了專門根據私人的含義分配給他們。
因此,任何使用它們的搜索引擎都會被破壞。
通常,搜索引擎不會嘗試確定哪些html元素包含有關哪個變量的數據。他們對頁面的文本內容進行操作,在某種程度上對一些標記元素(如h1
,可能被認爲比其他文本具有更高的相關性)進行操作。
已經和正在開發系統用於低級元數據,其可以使用例如,具有特殊名稱或一些新屬性的類屬性。一些主要的搜索引擎已經在某些方面表達了他們的支持,尤其是http://www.schema.org。但實際上,根據尚未公開披露的原則,他們似乎主要針對非常大型的網站。
他們如何獲得結構化信息?
他們將解析頁面的html元素,並將它們存儲到與搜索引擎本身不同的數據結構中。
一些搜索引擎會索引元信息,但主要的搜索引擎已經開始忽視元標籤。
大多數搜索引擎考慮:
這裏是一個有趣的信息圖形,可以回答你有任何其他問題: http://ppcblog.com/how-google-works/
直到語義網成長(我不確定,何時以及以何種最終形式出現),從純HTML中檢索含義確實存在一些問題。如果(不一定是HTML)頁面的發佈者沒有使用某種標準方式來說明哪些數據是什麼,那麼您(作爲搜索引擎的一方)應該自己推斷語義。首先,由於提及「不是HTML」頁面是新鮮的,因此存在用於託管XML頁面的站點以及用於在瀏覽器中渲染的XSL。如果您知道正在使用的模式或DTD,XML會爲您提供更多語義信息。 (順便說一下,維基百科確實提供了以XML格式存檔的文章。)如果沒有使用XML或者沒有文檔,可以說,還有第二種方法,這需要專家和程序員。專家是分析內容並決定HTML頁面的哪些部分應被視爲存儲特定信息的模板的人員。例如,您可以爲來自某些互聯網目錄的html頁面的搜索結果制定模板,併爲每個列出的網站提取類別,評分和其他內容。這些模板可以使用任意編程語言(C++,Python等)從網頁中解析並檢測到。在此之後,您可以應用衆所周知的map-reduce
算法或其他方法通過鍵值對對提取的數據進行索引。如果你看看哪些網站通常以這種模板化的方式進行處理,你會發現它們是大的,公共的,結構良好的(隨着時間的推移,結構幾乎沒有變化)。這對編寫和重用模板很有意義。當然,同樣的專家應該監控數據提取質量,並在相應的網站標記中更改某些內容時編輯模板。意義的第三個來源是詞彙表。例如,如果您擁有全面的地理名稱基礎,商店公司(包括自動製造商的子類別)以及其他分類的東西,則可以幾乎自動地將它們命名爲語義索引。我會說「差不多」,因爲你應該重點關注上下文單詞 - 在關於計算機的文檔中,Java
最可能是編程語言,在旅行社的網站上,它更可能是一個島。
在您的特定示例中,您應該考慮使用RDFa來描述HTML文檔中的數據。您會注意到我沒有提及使用Microdata,因爲RDFa可以爲爬蟲提供更豐富,更多面的數據。在您的特定情況下,您可以利用GoodRelations詞彙表(用於電子商務,產品和服務),schema.org詞彙表(從GoodRelations借鑑)和車輛銷售本體(用於汽車)。請看下面的工作例如:
<div prefix="sc: http://schema.org/ gr: http://purl.org/goodrelations/v1# vso: http://purl.org/vso/ns#"
typeof="vso:Automobile gr:ProductOrServiceModel sc:Product"
resource="http://dbpedia.org/page/BMW_1_Series">
<span property="gr:name sc:name">BMW 1 Series</span>
</div>
這暴露了在每一個方面你的數據,使其理解和消耗幾乎任何一個搜索引擎(包括語義搜索引擎)。此外,您還可以使用相同的URI來識別您的實例,從而鏈接到DBPedia(維基百科數據庫)中的資源。
有幾種方法這方面的信息可以提取: