0

我必須根據列名中存在的標記來聚集文檔(實際上是數據庫的列名)。例如: -集羣文檔是否對文檔中的標記詞進行編碼?

C1 = ["Date", "Birth"] 
C2 = ["Order", "Date"] 
C3 = ["Birth", "Day"] 
C4 = ["CUSTOMER", "FIRST", "NAME"] 
C5 = ["FIRST","NAME"] 
. 
. 

但是,所有這些標記實際上都是編碼的,所以我收到的是以下數據集。

C1 = ["44749712dbec183e983dcd78a7736c41", "e8329d2530ca7d80bb28176883186dfd"] 
C2 = ["a240fa27925a635b08dc28c9e4f9216d", "44749712dbec183e983dcd78a7736c41"] 
C3 = ["e8329d2530ca7d80bb28176883186dfd", "03727ac48595a24daed975559c944a44"] 
C4 = ["979ee13f032c02b4652a4e3c3928d90b", "2c2624a5059934a947d6e25fe8332ade", "ad32e604e17467fc435538334fbddf3e"] 
C5 = ["2c2624a5059934a947d6e25fe8332ade","ad32e604e17467fc435538334fbddf3e"] 
. 
. 

現在我想通過消耗他編碼值,使得
C1,C2,C3到簇 - >羣集1
C4,C5 - >羣集2

我現在不在深度上怎麼做。有沒有可以解決我的問題的機器學習算法?

我目前使用Spark MLlib 1.6.0,但我找不到一種方法來應用算法,如Word2Vec來解決我的問題。

是否可以在未編碼的數據集上使用word2vec或算法?

謝謝。

回答

0

實際上編碼不應該是一個問題,因爲編碼是一致的,例如,文檔C1和C3中的'出生'關鍵字是相同的'e8329d2530ca7d80bb28176883186dfd'。至於關鍵作品的矢量空間映射,您可以收集所有關鍵詞並獲取等效長度的矢量,如果關鍵字存在,則將矢量位置標記爲「1」,否則標記爲「0」。然而有許多方法將文檔映射到向量空間。 Refer this semila book by Jurafsk & Martin。至於執行聚類的確切模型,在這裏列出的方法太多了,從K-Mean或K-Nearest Neighbor等簡單的開始,在ANN空間中也有很多可用的選項。

+0

我沒有預先提供所有關鍵字。隨着我繼續像掃描作業一樣掃描數據庫(列),將獲得關鍵字。那麼如何創建向量空間模型呢?感謝您的參考書 – Rahul

+0

這取決於您是否可以重新掃描色譜柱,或者是否必須一次完成。簡單的做法是將矢量空間作爲預處理步驟,然後重新掃描以實際構建數據點。它可以一次完成,但更復雜。 – Ironluca

+0

要掃描的總列數將大於1000萬。無法一次掃描整個數據集。或許有可能在以後的時間點出現1000萬列 – Rahul

0

嘗試混入最新的炒作如word2vec和Spark並不容易。只使用你需要的東西,而不是花哨的東西。

首先你需要一個相似性。考慮每個列爲集合(不需要編碼),然後計算Jaccard索引或類似。然後做HAC進行集羣。

+0

我以編碼格式獲取每列。我無法將Jaccard應用於編碼格式 – Rahul

+0

當然,您可以將Jaccard應用於編碼格式。爲什麼不? –

相關問題