群集文档如果文档中的令牌单词是编码的



我必须基于列名中存在的令牌群集文档(实际上是数据库的列名)。例如: -

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或算法?

谢谢。

实际上编码不是一个问题,因为编码是统一的,例如,文档C1和C3中的'出生'关键字是相同的'e8329d2530ca7d80bb281768176883186dfd'。至于密钥工作的矢量空间映射,您可以收集所有关键词并以等效长度的向量,并将向量位置标记为" 1"(如果存在关键字)或" 0"(如果不是)。但是,有很多方法可以将文档映射到向量空间。请参阅Jurafsk&马丁。至于执行群集的确切模型,这里有太多的方法要在此处列出,从某个简单开始,例如K-Mean或K-Nearest邻居,ANN SPACE中也有许多选项。

尝试混合使用Word2Vec和Spark等最新炒作,这并不容易。仅使用您需要的东西,而不是花哨的。

首先,您需要一个相似之处。将每个列视为A set (无需编码),然后计算Jaccard索引或类似。然后做HAC进行聚类。

最新更新