Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 产品描述聚类的ML方法_Algorithm_Machine Learning - Fatal编程技术网

Algorithm 产品描述聚类的ML方法

Algorithm 产品描述聚类的ML方法,algorithm,machine-learning,Algorithm,Machine Learning,我需要从不同供应商的目录数据中对零件的不同描述进行聚类。我试图找到一种“方法”,可以检测相似描述的集群,以便将它们组合在一起 这是一个零件号的样本数据集,即。 A100:[“COCPIT语音记录器”、“记录器”、“语音记录器”、“皮带”、“调节器皮带”、“氧气调节器”、“灯泡”、“氧气调节器”] 聚类的预期结果为: 集群1:[“COCPIT语音记录器”、“记录器”、“语音记录器”], 第2组:[“皮带”], 第3组:[“氧气调节器”、“氧气调节器”], 集群4:[“灯泡”] 或者它的变体 我从来

我需要从不同供应商的目录数据中对零件的不同描述进行聚类。我试图找到一种“方法”,可以检测相似描述的集群,以便将它们组合在一起

这是一个零件号的样本数据集,即。
A100:[“COCPIT语音记录器”、“记录器”、“语音记录器”、“皮带”、“调节器皮带”、“氧气调节器”、“灯泡”、“氧气调节器”]

聚类的预期结果为:

集群1:[“COCPIT语音记录器”、“记录器”、“语音记录器”],
第2组:[“皮带”],
第3组:[“氧气调节器”、“氧气调节器”],
集群4:[“灯泡”]

或者它的变体

我从来没有这方面的经验,但我对ML的基础研究表明,您需要做的第一件事是从数据中提取特征,所以我尝试提出一些特征

我的特征提取方法是使用相似性函数(即编辑距离或Levenstain距离)或Jaro-Winkler距离将这些部分中的每一部分相互比较

然后我的想法是使用KMeans算法来寻找集群? 如果这个功能选择是好的,你有什么想法吗? 关于特征提取或解决此问题的方法,还有其他想法吗?
谢谢

我也做过类似的事情,我的特征向量是每个产品描述包含每个字典单词的次数(因此,对于每个条目,你都会得到一个长向量,大部分是0,有几个1或2)。然后,您可以将其输入到您选择的集群alg中(我也使用了kmeans)

在python中,总体思路是:

# loop over all descriptions to get word list
allWords = {}
for productDesc in products :
    for word in productDesc.split(" ") :
        if(not word in words) :
            words[word] = 0

# build a vector for each description
matrix = []
for productDesc in products :
    vec = words.copy()
    for word in productDesc.split(" ") :
        vec['word'] = vec['word'] + 1

    matrix.append(vec)

一旦你有了这样一个特征矩阵,你就可以使用你最喜欢的聚类算法,为此我会直接使用kmeans,或者计算一个相似矩阵(对于矩阵中的每对行,计算共同的单词数),然后使用光谱聚类。

作为一个特征,字符串中每个单词的出现次数(单词袋)可能非常有趣,因为它无法预测不同单词的相对位置。我不确定单词袋是否有助于解决这个问题,因为在很多情况下,这些数据中的单词要么拼写错误,要么是缩写。例如:CVR和COCPIT VOICE RECORDER使用“编辑距离”具有相似性但是没有常见的单词包功能,我希望它们在同一个集群中?