4

R の topicmodels パッケージを使用して LDA を実行しようとしています。ただし、自分のデータで試してみると、用語がドキュメント名であるトピックが表示されます。私は問題を、私の用語ドキュメントマトリックスが本来あるべき方法の転置であるという事実にたどり着きました(行 - >列)。

TDM の例:

str(AssociatedPress)
List of 6
$ i       : int [1:302031] 1 1 1 1 1 1 1 1 1 1 ...

$ j       : int [1:302031] 116 153 218 272 299 302 447 455 548 597 ...
$ v       : int [1:302031] 1 2 1 1 1 1 2 1 1 1 ...
$ nrow    : int 2246
$ ncol    : int 10473
$ dimnames:List of 2
..$ Docs : NULL
..$ Terms: chr [1:10473] "aaron" "abandon" "abandoned" "abandoning" ...
- attr(*, "Weighting")= chr [1:2] "term frequency" "tf"
- attr(*, "class")= chr [1:2] "DocumentTermMatrix" "simple_triplet_matrix"

一方、私の TDM には、Terms が行として、Docs が列として含まれています。

List of 6
$ i       : int [1:10489] 1 3 4 13 20 24 25 26 27 28 ...
$ j       : int [1:10489] 1 1 1 1 1 1 1 1 1 1 ...
$ v       : num [1:10489] 1 1 1 1 2 1 67 1 44 3 ...
$ nrow    : int 5903
$ ncol    : int 9
$ dimnames:List of 2
..$ Terms: chr [1:5903] "\u2439aa" "aars" "\u2439ab" "\u242dab" ...
..$ Docs : chr [1:9] "art111130.txt" "art111131.txt" "art111132.txt" "art111133.txt" ...
- attr(*, "class")= chr [1:2] "TermDocumentMatrix" "simple_triplet_matrix"
- attr(*, "Weighting")= chr [1:2] "term frequency" "tf"

LDA(art_tdm,3)ドキュメント内の用語ではなく、ドキュメント名に基づいてトピックを作成する原因となっています。これは tm パッケージのコードベースの変更ですか? コードでこの転置を引き起こすために何をするか想像できません。

art_cor<-Corpus(DirSource(directory = "tmptxts"))
art_tdm<-TermDocumentMatrix(art_cor)

どんな助けでも大歓迎です。

4

1 に答える 1

3

一方ではクラス「TermDocumentMatrix」のオブジェクトがあり、もう一方には「DocumentTermMatrix」のオブジェクトがあります。

おそらくこれを行う必要があります:

art_tdm<-DocumentTermMatrix(art_cor)
于 2012-10-20T20:15:07.043 に答える