2016-03-05 57 views
1

我目前正在開發一個價格比較網站,我爲此抓取了一些電子商務網站並從他們的HTML頁面中提取了一些數據,例如價格,標題,元數據等。現在指出,如果從不同網站抓取的兩個產品實際上是相同的,並且爲它們分配了一個通用標籤,則需要兩個標識。
例如,可以說網站1具有作爲一個產品的標題下面的字符串:
智能手機三星Galaxy S6 4​​G 32GB
與本站2具有作爲同一產品的標題字符串:
Samsung Galaxy S6 White
在網絡爬行,價格比較後確定產品

如何識別這兩款產品是否實際上是同一款產品,我想在我的網站上標爲「Samsung Galaxy S6」? 我曾想過使用一些機器學習技術,如分類或聚類。然而,分類可能需要大量已經格式良好的產品標籤(加上經常更新的)來充當可能的類別,例如類「三星Galaxy S6」,有沒有這樣的事情?同樣擁有如此龐大數量的類別,可能並不可行。

我使用的是Apache Nutch用於爬網,而Solr用於索引和搜索。如果有任何特定的圖書館或工具,這將是非常有益的,但我的問題不是專門爲這些,我會很樂意閱讀任何建議。

感謝

回答

0

我已經做了我的項目,我們的人的名字與他們的標識標記類似的東西,所以基本上是相同的人可以有自己的名字列爲全名或縮寫,或只有第一個名稱等。我們將其標記爲相同的ID。

因此,對於您的情況,這基本上需要爲您的產品建立倒排索引,然後掃描產品名稱的標題字段並將它們標記爲特定產品ID。這樣所有的三星Galaxy S6都被映射到相同的產品。

這不需要進行任何學習,您只需擁有數據庫即可從產品數據庫更改中提取所有獨特產品並隨時更新索引。

所有這些都可以在索引時間通過爲solr編寫更新處理器來完成。

這個實現有點複雜,所以我在這裏簡單介紹一下可以幫助你的基本想法。

+0

感謝您的回答,聽起來像一個很好的「更清潔」的方式。這種方法的問題在於它需要一個包含所有產品的數據庫,這不是一件容易找到和維護的事情(這種數據庫是否存在?)。也許我可以抓取一個擁有大部分產品的零售商網站,並自己創建數據庫。順便說一句,我很好奇,你的建議是什麼將確定是否索引產品和數據庫中的產品應該連接?在標題字段上進行字符串比較以確定相似性和使用閾值? – Fidias

+0

是的,字符串比較了solr的行爲。其他參數(如閾值以及如何分析和匹配字符串)將取決於您的使用情況。 –