我想寫一個簡單的程序來比較來自不同供應商的產品的價格。 不同的供應商可能會調用相同的產品不同的東西。比較和匹配來自不同的商店/供應商的產品名稱
例如,下面的三個字符串指的是同一產品:
- A2全脂瓶2升
- A2牛奶全脂2L
- A2全脂2L
或下面的兩個字符串是相同的產品:
- Ambi Pur空氣清新劑汽車航程8mL。新鮮的香草花芬芳。 - 1各
- 香必飄空氣清新劑航程主8毫升
此外 - 一些產品是不一樣的,但是相似的(例如,全脂2L牛奶可涵蓋各種類似產品。)
我對每種產品的唯一信息是標題和價格。
目前有哪些推薦的技術匹配產品字符串這樣嗎?
從我的谷歌搜索和閱讀其他SO線程,我發現:
- 有人建議使用貝葉斯過濾技術。
- 一些人建議對所有產品字符串進行特徵提取。因此,您可以從產品中提取諸如品牌(例如「A2」),產品(「牛奶」)和產能(「2L」)等產品,然後在產品之間創建距離向量,並使用類似二元分類器的產品來匹配產品(SVM被提及)。但是,我不確定如何在沒有大量規則或正則表達式的情況下實現這一目標?我假設可能有更聰明的無監督學習方法來攻擊這個問題?價格可能是另一個我們可以用來計算距離向量的「特徵」。
- 但是,有些人推薦使用神經網絡方法,但在這裏我無法從具體的代碼或例子中找到很多。
- 其他推薦使用字符串相似度算法,如Levenshtein距離或Jaro-Winkler距離。
你會使用上述技術之一,還是你會使用不同的技術?
另外,有沒有人知道任何示例代碼,甚至是庫的這種問題?我似乎無法找到任何。 (例如,我看到一些人在計算大型數據集的Jaro-Winkler距離時遇到了性能問題,我希望可能會有一個分佈式算法實現(例如Mahout),但是並不是能夠找到具體的東西。)
你需要管理多少種不同的產品(球場評估)? – Blacksad
這是一家超市,所以有相當多的物品 - 我估計數以萬計? – victorhooi
那麼所有的建議是好的,但監督。而監督學習上萬的班級將是地獄......我想不出任何無監督的方法。 – Blacksad