Python 使用Levenshtein距离使用Kmeans/EM对字符串(文本)进行聚类

Python 使用Levenshtein距离使用Kmeans/EM对字符串(文本)进行聚类,python,k-means,tf-idf,levenshtein-distance,expectation-maximization,Python,K Means,Tf Idf,Levenshtein Distance,Expectation Maximization,我正在尝试使用Kmeans/EM对字符串进行聚类。我有一个字符串列表(大约70个字符串),我想使用Levenshtein相似性度量对它们进行聚类 因此,基本上,我试图实现本研究论文中的聚类部分: 在做预处理之后。我能够使用Levenshtein距离来建立相似矩阵,然后我使用层次聚类和光谱聚类对字符串进行聚类,但我无法使用Kmeans或EM进行聚类。这是因为在我能够实现的之前的算法中,只有相似性/距离矩阵才足以进行聚类。但是在K-means和EM的情况下,我需要以某种数学上可操作的形式表示文本,因

我正在尝试使用Kmeans/EM对字符串进行聚类。我有一个字符串列表(大约70个字符串),我想使用Levenshtein相似性度量对它们进行聚类

因此,基本上,我试图实现本研究论文中的聚类部分: 在做预处理之后。我能够使用Levenshtein距离来建立相似矩阵,然后我使用层次聚类和光谱聚类对字符串进行聚类,但我无法使用Kmeans或EM进行聚类。这是因为在我能够实现的之前的算法中,只有相似性/距离矩阵才足以进行聚类。但是在K-means和EM的情况下,我需要以某种数学上可操作的形式表示文本,因为我们必须找到它们的平均值(在K-means的情况下)

为了将文本转换为向量,我找到了一些技巧,如: 1) 字里行间 2) TF-IDF 3) doc2vec或word2vec

我是否应该使用上述任何一种方法将每个字符串转换为向量,然后应用Kmeans?为了应用K-均值或EM,是否有必要将字符串转换为向量?最后,我必须用Python实现所有东西,所以使用Sklearn的Kmeans不允许我给出我选择的度量或相似性矩阵。我该怎么办

注意:我在文本上发现了一个K-means的实现,他们使用TF-IDF转换了文本。然后应用了Kmeans(欧几里得),但我想使用Levenshtein

还要注意:我有一个字符串列表,而不是文本文档,每个字符串大约有20-30个单词