无监督字符串聚类

我有一份包含1000多个关键词的列表,希望根据相似性将它们分组。

例如:

  • “露台家具”
  • “客厅家具”
  • “二手椅子”
  • “新椅子”

我希望”家具”和”椅子”这些词能够聚集在一起。

我知道一种方法是预先选择一些”中心”词,然后计算每个词到这些中心词的Levenshtein距离,并使用kmeans进行聚类。

但我想了解的是,在不预先指定像”椅子”和”家具”这样的中心词的情况下,如何进行这种聚类。

谢谢。


回答:

你可以使用stringdist包来计算距离矩阵:

str <- c("露台家具", "客厅家具", "二手椅子", "新椅子")
library(stringdist)
d <- stringdistmatrix(str, str)

stringdist支持多种距离函数。默认使用的是’受限的Damerau-Levenshtein距离’。然后你可以将这个距离矩阵用于hclust来进行层次聚类:

cl <- hclust(as.dist(d))
plot(cl)

hclust有多种不同的方法。请参阅?hclust。要创建固定数量的组(这里是2个):

cutree(cl, 2)

但是,这可能只是众多可能的解决方案之一。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注