既然有了物品的 ID 了,就可以用這些 ID 作為物品的主鍵存在資料庫裡面,然後其他資訊作為對應的屬性。其實用物品描述資訊就可以看兩個東西是否相同了。說白了,其實你要做的是比較兩段文字的相似度。把每個物品的描述資訊當做一篇文章,然後物品 ID 就當做是文章的標題吧。這些有著不同標題的文章的內容大同小異,現在需要做的是處理這些文章,看這些文章的相似度。如果相似度達到了你預先規定的一個閾值,那麼就判斷這兩個物品相似,你可以在資料庫裡面加一個外來鍵,連線這兩個電商網站上得兩個 ID。判斷文章相似度的具體過程如下:
既然有了物品的 ID 了,就可以用這些 ID 作為物品的主鍵存在資料庫裡面,然後其他資訊作為對應的屬性。其實用物品描述資訊就可以看兩個東西是否相同了。說白了,其實你要做的是比較兩段文字的相似度。把每個物品的描述資訊當做一篇文章,然後物品 ID 就當做是文章的標題吧。這些有著不同標題的文章的內容大同小異,現在需要做的是處理這些文章,看這些文章的相似度。如果相似度達到了你預先規定的一個閾值,那麼就判斷這兩個物品相似,你可以在資料庫裡面加一個外來鍵,連線這兩個電商網站上得兩個 ID。判斷文章相似度的具體過程如下:
由於計算機演算法是不懂中文和英文的,所以要把文字轉化為演算法可以處理的數字。首先,要對這些文字描述做一些處理,把描述中的中文、英文和數字保留,其他的符號都要去掉(關於數字是否保留,還需要根據你的要求具體決定)。分詞,由於中文沒有天然的斷字,所以需要透過演算法把中文的詞分開。把物品描述中的常用的沒有意義的詞去掉,比如「的,地,得」和英文中 "a, the, of" 之類的詞,這類詞統稱為「停用詞」,中英文都有對應的列表,找來直接用就好了。建立字典。給每個中文詞和英文詞分配一個 ID,這樣就建立了一個數字與單詞之間的對應關係,就可以用數字來表示單詞了。將物品描述中的單詞都替換成對應的數字。構建特徵,由於物品描述都不是很長,所以對每個單詞計數,然後利用字典中詞的順序,將每個物品描述都轉化為一個向量。如果字典中有1000個詞,那麼每個物品描述都是一個1000維的向量。對於特定的某一篇物品描述,包含了哪個單詞,就在對應的位置上標記這個單詞出現的次數,沒有出現的就標0。這樣,每個物品描述都被表示成一個1000維的向量。計算向量間的餘弦距離。如果高於設定的閾值,那麼就認為這兩個物品描述是一致的。上述所說的步驟都可以用 Python 實現,當然其他語言也可以,只是 Python 比較適合處理文字,而且上面所有的步驟早就有人寫好了,在網上搜一下就能找到程式碼,可以直接拿來用。