Dir*_*way 0 nlp r cluster-analysis machine-learning k-means
我有 1000 多个关键字的列表,我想按相似性将它们组合在一起。
例如:
我希望将“家具”和“椅子”这两个词组合在一起。
我知道我可以做到这一点的一种方法是指定一些预先选择的“质心”术语,然后计算每个术语的 Levenshtein 距离并使用 kmeans 对它们进行聚类。
但我有兴趣了解的是,如何在不预先指定“椅子”和“家具”等质心术语的情况下做到这一点。
谢谢。
您可以使用该stringdist包来计算距离矩阵:
str <- c("patio furniture",
"living room furniture",
"used chairs",
"new chairs")
library(stringdist)
d <- stringdistmatrix(str, str)
Run Code Online (Sandbox Code Playgroud)
stringdist支持多种距离函数。默认值是“受限的 Damerau-Levenshtein 距离”。然后你可以使用这个距离矩阵hclust来执行层次聚类:
cl <- hclust(as.dist(d))
plot(cl)
Run Code Online (Sandbox Code Playgroud)
hclust有许多不同的方法。见?hclust。要创建固定数量的组(此处为 2):
cutree(cl, 2)
Run Code Online (Sandbox Code Playgroud)
但是,这可能是许多可能的解决方案之一。
| 归档时间: |
|
| 查看次数: |
3308 次 |
| 最近记录: |