我正在尝试解决一个涉及比较大量单词集的问题,每个单词集都包含来自一组单词的大量有序单词(总计约 600+,非常高的维度!)以进行相似性,然后将它们聚类成不同的分组。解决方案需要尽可能不受监督。
数据看起来像
[苹果、香蕉、橙子...]
[苹果、香蕉、葡萄...]
[果冻、茴香、橙子...]
[草莓、香蕉、橙子...]
...等
每组单词的顺序很重要([Apple, Banana, Orange] 与 [Apple, Orange, Banana] 不同
到目前为止,我一直使用的方法是使用 Levenshtein 距离(受距离阈值限制)作为在 Python 脚本中计算的度量,每个单词都是唯一标识符,从距离生成相似度矩阵,然后将该矩阵放入用于分组的 KNIME 中的 k-Mediods。
我的问题是:
- Levenshtein 是解决这个问题的最合适的距离度量吗?
- 均值/中心点原型聚类是进行分组的最佳方式吗?
- 我还没有花太多心思来验证集群中“k”的选择。评估聚类的 SSE 曲线是否是解决此问题的最佳方法?
- 我的方法有什么缺陷吗?
- 作为未来解决方案的扩展,在给定训练数据的情况下,是否有人碰巧对将概率分配给集群分配有任何想法?例如,集合 1 有 80% 的机会位于集群 1 中,等等。
我希望我的问题不会显得太愚蠢或答案很明显,我对数据挖掘还比较陌生。
谢谢!