通常の方法を使用して、階層クラスタリング プロジェクトを実行しています。
mydata.dtm <- TermDocumentMatrix(mydata.corpus)
mydata.dtm2 <- removeSparseTerms(mydata.dtm, sparse=0.98)
mydata.df <- as.data.frame(inspect(mydata.dtm2))
mydata.df.scale <- scale(mydata.df)
d <- dist(mydata.df.scale, method = "euclidean") # distance matrix
fit <- hclust(d, method="ward")
groups <- cutree(fit, k=10)
groups
congestion cough ear eye fever flu fluzonenon medicare painpressure physical pink ppd pressure
1 2 3 4 5 6 5 5 5 7 4 8 5
rash screening shot sinus sore sports symptoms throat uti
5 5 6 1 9 7 5 9 10
そして、私が望むのは、グループ番号を元のデータの新しい列に戻すことです。単一のリスト内でのおおよその文字列一致を見てきました-r
ここのdfはドキュメントマトリックスであるため、後で取得したdf <- t(data.frame(mydata.df.scale,cutree(hc,k=10)))
のは次のようなマトリックスです
df[1:5,1:5]
congestion cough ear eye fever
[1,] 0 0 0 0 0
[2,] 0 0 0 0 0
[3,] 0 0 0 0 0
[4,] 0 0 0 1 0
[5,] 0 0 0 0 0
目のグループ番号は3 であるため、4 行目の新しい列に番号 3 を追加します。
この場合、1 つのドキュメントを同じグループ内の 2 つのアイテムにマップできることに注意してください。
df[23,17:21]
sinus sore sports symptoms throat
0 1 0 0 1