我正在使用预训练的 fastText ( https://fasttext.cc/ ) 向量对短聊天消息进行聚类。这意味着结果向量将是组成消息的标记的平均值。
我最初开始使用 k-means,但我现在想知道它是否是正确的选择。例如,K-means 使用欧几里得距离,而在大多数情况下,词嵌入相似度是使用余弦相似度计算的。
在这种情况下如何选择合适的聚类方法?
我正在使用预训练的 fastText ( https://fasttext.cc/ ) 向量对短聊天消息进行聚类。这意味着结果向量将是组成消息的标记的平均值。
我最初开始使用 k-means,但我现在想知道它是否是正确的选择。例如,K-means 使用欧几里得距离,而在大多数情况下,词嵌入相似度是使用余弦相似度计算的。
在这种情况下如何选择合适的聚类方法?
有趣的是,word2vec 中向量的长度似乎对应于单词的“重要性”,其中角度对应于含义,因此答案将取决于对您的用例最重要的内容。
如果向量被归一化,欧几里得距离和余弦距离将是相同的。
您可能想尝试 Annoy(由 Spotify 工程制造) - 这使您可以使用不同的距离度量来构建集群:https ://github.com/spotify/annoy