Machine learning 对相似的词短语进行分类

Machine learning 对相似的词短语进行分类,machine-learning,statistics,nlp,cluster-analysis,hierarchical-clustering,Machine Learning,Statistics,Nlp,Cluster Analysis,Hierarchical Clustering,我有一组单词短语,我想按照下面的例子对它们进行分类 例如: adaptive and intelligent educational system adaptive and intelligent tutoring system adaptive educational system 对于一个人来说,很容易理解上述三个单词短语应该属于一个类别 有什么简单的方法吗 目前,我正在使用亲和传播聚类算法,如下使用levenshtein距离 words = np.asarray(words) #So t

我有一组单词短语,我想按照下面的例子对它们进行分类

例如:

adaptive and intelligent educational system
adaptive and intelligent tutoring system
adaptive educational system
对于一个人来说,很容易理解上述三个单词短语应该属于一个类别

有什么简单的方法吗

目前,我正在使用亲和传播聚类算法,如下使用levenshtein距离

words = np.asarray(words) #So that indexing with a list will work
lev_similarity = -1*np.array([[distance.levenshtein(w1,w2) for w1 in words] for w2 in words])

affprop = sklearn.cluster.AffinityPropagation(affinity="precomputed", damping=0.5)
affprop.fit(lev_similarity)
for cluster_id in np.unique(affprop.labels_):
    exemplar = words[affprop.cluster_centers_indices_[cluster_id]]
    cluster = np.unique(words[np.nonzero(affprop.labels_==cluster_id)])
    cluster_str = ", ".join(cluster)
    print(" - *%s:* %s" % (exemplar, cluster_str))

然而,我没有得到想要的输出。因此,请为我推荐一种合适的方法来获得我想要的结果。

Levenshtein距离对字符有效

从这个角度来看,“教育”和“辅导”是尽可能不同的

如果要按语义相似性进行聚类,请不要使用字符级相似性


不幸的是,语义相似性是相当困难的。你需要以某种方式使用一个庞大的知识库。例如,使用整个万维网了解“辅导”和“教育”是相关的。或者你可以试试WordNet等。Levenshtein distance对字符有效

从这个角度来看,“教育”和“辅导”是尽可能不同的

如果要按语义相似性进行聚类,请不要使用字符级相似性


不幸的是,语义相似性是相当困难的。你需要以某种方式使用一个庞大的知识库。例如,使用整个万维网了解“辅导”和“教育”是相关的。或者你可以试试WordNet等。

请看这里:非常感谢。非常有用。请看这里:非常感谢。这是非常有用的。你必须根据单个单词定义一种符合你目的的方法。不要期望有人已经为你编写了数学和代码!你必须根据单个单词来定义一种符合你目的的方式。不要期望有人已经为你编写了数学和代码!