Saya memiliki beberapa dokumen teks per ticker yang ingin saya simpan sebagai korpus individu. Saya telah membaca tentang membuat ''daftar dalam daftar'', tetapi ini tidak berhasil untuk saya. Misalnya, ''penambangan teks dan termdocumentmatrix'' memberikan kesalahan berikut: tidak ada metode yang berlaku untuk 'TermDocumentMatrix' yang diterapkan ke objek kelas "daftar.

Saya mungkin bisa memasukkan semuanya ke dalam for loop, tetapi bukan itu yang saya inginkan karena saya ingin beberapa fleksibilitas untuk bermain dengan corpus.

Bisakah seseorang membantu saya bagaimana saya dapat mengatasi masalah ini secara efektif? Kode saya di bawah ini. Terima kasih sebelumnya!

Stocks <- list("AAPL", "AMZN", "BIG", "BYD", "CTWS", "EAT", "FB", "GOOG", "GRMC", "HRL", "MGM", "MSFT",
               "NEM", "PKS", "RGLD", "SCCO", "SLP", "TCO", "USGL", "WDFC"
)

BigList <- list()
for (stock in Stocks) {
  filepath <- file.path("C:/Users/......./Stocks10K", stock)
  a <- Corpus(DirSource(filepath))
  a <- tm_map(a, removePunctuation)
  a <- tm_map(a, removeNumbers)
  a <- tm_map(a, tolower)
  a <- tm_map(a, removeWords, stopwords("en"))
  a <- tm_map(a, stripWhitespace)
  name <- paste('Data:', stock, sep='')
  tmp <- list(Text = a)
  BigList[name] <- tmp
  rm(tmp, stock, name, filepath, a)
}

#Create Term Document Matrix and create Matrix
tdm <- TermDocumentMatrix(BigList['Data:AAPL'])
m <- as.matrix(tdm)
1
Wally530 29 Mei 2020, 14:51

1 menjawab

Jawaban Terbaik

Sepertinya Anda telah melakukan semuanya dengan benar, kecuali mengeluarkan entri Anda dari BigList. [ akan mengembalikan daftar (berisi satu elemen dalam kasus Anda) - Anda memerlukan [[ sebagai gantinya. Mencoba:

tdm <- TermDocumentMatrix(BigList[['Data:AAPL']])

Sebagai gantinya.

https://cran.r-project.org/doc/ manuals/R-lang.html#Indexing memiliki info lebih lanjut, termasuk catatan ini (jika apa yang saya katakan di atas tidak jelas):

Untuk daftar, umumnya menggunakan [[ untuk memilih elemen tunggal, sedangkan [ mengembalikan daftar elemen yang dipilih.

0
Hobo 29 Mei 2020, 12:28