2

Rでのk-meansクラスタリングについて質問があります。実際、私はこの記事に従ってすべてを行っています。すべてがtmパッケージ内の例に基づいているため、データのインポートは必要ありません。acqには50のドキュメントと粗い20のドキュメントが含まれています。

library(tm)
data("acq")
data("crude")
ws <- c(acq, crude)
wsTDM <- Data(TermDocumentMatrix(ws)) #First problem here
wsKMeans <- kmeans(wsTDM, 2)
wsReutersCluster <- c(rep("acq", 50), rep("crude", 20))
cl_agreement(wsKMeans, as.cl_partition(wsReutersCluster), "diag")

Error in lapply(X, FUN, ...) : 
(list) object cannot be coerced to type 'integer'

私は実際に相互合意マトリックスを作成したいと思います。しかし、この記事は2008年に書かれ、それ以来多くの変更が加えられています。データ機能はRSurveyパッケージでのみ使用できますが、同じかどうかは疑問です。そして、主な問題は、TermDocumentMatrixがS4クラスであり、現在はS3であるということだと思います。私はこれをテキストだけで行う可能性があることを知っています。しかし、TDMではストップワードやパンクなどを削除してより良い結果を得ることができるので、このようにしたいです。だから誰かが素晴らしい解決策を持っているなら。

4

1 に答える 1

3

TDMは、で説明されているように、スパース行列として格納され?TermDocumentMatrixます。これは、のようなオブジェクトを検査するだけでもわかりますstr(wsTDM)。その古いData()関数は、通常のマトリックスとしてコンテンツにアクセスするための単なる方法でした。もう必要ありません。実行するだけkmeans(wsTDM, 2)で、出力が期待どおりであり、70の機能(ドキュメント)で2775の観測(用語)に対してクラスターが識別されていることがわかります。幸運を!

于 2011-11-10T05:05:05.523 に答える