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