我正在尝试使用 Kmeans/EM 对字符串进行聚类。我有一个字符串列表(大约 70 个字符串),我想使用 Levenshtein 相似度度量对它们进行聚类。
所以基本上,我正在尝试在这篇研究论文中实现聚类部分:https ://ieeexplore.ieee.org/document/7765062/ 进行预处理之后。我能够使用 Levenshtein 距离制定相似度矩阵,然后使用层次聚类和光谱聚类对字符串进行聚类,但我无法使用 Kmeans 或 EM 来实现。这是因为在我能够实现的之前的算法中,只有相似度/距离矩阵足以进行聚类。但是在 K-means 和 EM 的情况下,我需要以某种方式以数学上可操作的形式表示文本,因为我们必须找到它们的均值(在 K-means 的情况下)。
我能够找到一些技术来将文本转换为向量,例如:1)词袋 2)TF-IDF 3)doc2vec 或 word2vec
我是否应该使用上述任何方法将每个字符串转换为向量,然后应用 Kmeans?是否有必要将字符串转换为向量才能应用 K-means 或 EM?最后,我必须在 Python 中实现所有内容,因此,使用 Sklearn 中的 Kmeans 不允许我给出我选择的度量或相似度矩阵。我应该怎么办?
注意:我在他们使用 TF-IDF 转换文本的文本上找到了 K-means 的实现。然后应用 Kmeans (euclidian) 但我想使用 Levenshtein。
另请注意:我有一个字符串列表,而不是文本文档,每个字符串大约 20-30 个单词