2011-11-09 30 views
2

Rのk-meansクラスタリングに関する質問があります。実際には、私はこれに基づいてすべてをやっていますarticle。すべてはtmパッケージ内の例に基づいているので、データのインポートは必要ありません。 acqには50件の文書と20件の原文が含まれています。パッケージtm。 kmeansの問題

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ではストップワードや区切りなどを削除してより良い結果を得ることができるので、このようにしたいと思います。だから誰かが素晴らしいだろう解決策を持っている場合。

答えて

3

TDMは、?TermDocumentMatrixで説明されているように、疎のマトリックスとして格納されます。これは、str(wsTDM)のようなオブジェクトを検査することによっても見ることができます。その古いData()関数は、正規の行列としてコンテンツにアクセスする単なる方法でした。それはもはや必要ではありません。ちょうどkmeans(wsTDM, 2)を実行すると、出力が期待どおりになり、70個のフィーチャー(文書)上の2775の観測(用語)についてクラスターが識別されます。がんばろう!

+0

私が意図したことは、ドキュメントをクラスタ化することでした。そして、今私は用語をクラスタリングしています。これはそうじゃない?どのように私は用語の代わりにドキュメントをクラスタ化できますか(階層的ではなくk-meansで)?私が得る限り、それは後の著者が文書の同意マトリックスをクレートするように、その古い記事では行われましたが、用語ではありませんでした。私は 'as.cl_partition(wsReutersCluster)'関数のためにこのように思っています。私は本当にその 'cl_agreement'を作成したいと思います。 – user974514

+1

@ user974514代わりに 'DocumentTermMatrix()'が必要なのでしょうか? –

+0

ありがとうございました。それは今働く。 :) – user974514

関連する問題