我有一個奇怪的問題,我似乎無法做出正面或反面。任何幫助是極大的讚賞。我在Mac Book El Capitan 10.11.3上運行RStudio版本0.99.879。R {tm}包:大的PCorpus導致「readSingleKey中出錯...」
基本上我試圖爲大量的wikipedia語料庫製作DocumentTermMatrix。我已經用https://github.com/idio/json-wikipedia解析了wikipedia xml轉儲,然後編寫了一個R腳本將每個wiki文章解析爲它自己的文本文件,其中文件的名稱是wiki文章的名稱,文件的內容是文章。
因此,我現在有1300萬個相對較小的.txt文件,並且我一直在試圖逐步瞭解我可以製作成DTM的數量。
當我跑這跟所謂的wiki-test
的文件夾13000篇它的偉大工程:
start <- Sys.time()
w13k <- PCorpus(DirSource("json-wikipedia/wiki-test"),
dbControl = list(dbName = "wiki-test.db", dbType = "DB1"))
Sys.time() - start
#Time difference of 28.637 secs for 13k files
start <- Sys.time()
dtm13k <- DocumentTermMatrix(w13k,
control = list(bounds = list(global = c(1, length(w13k)*.5)), # so that it only consider terms that appear in less than 20% of the documents
weighting =
function(x)
weightTfIdf(x, normalize =
TRUE),
removePunctuation = TRUE,
removeNumbers = TRUE,
stopwords = TRUE , stemming=TRUE
))
Sys.time() - start
#Time difference of 1.288023 mins for 13k files
然而,當我嘗試使用的約21文件較大的文件夾中運行它,它需要10分鐘,然後加入創建一個語料庫,似乎不工作:
start <- Sys.time()
w210k <- PCorpus(DirSource("json-wikipedia/wiki-articles"),
dbControl = list(dbName = "wiki-test-210k.db", dbType = "DB1"))
Sys.time() - start
#Time difference 10 mins
正如你所看到的,基本上是相同的代碼,除了wiki-articles
含有大量的多個文件。
然後,當嘗試運行相同DocumentTermMatrix電話,我得到:
Error in readSingleKey(con, map, key) :
unable to obtain value for key '-_-_-album-.txt'
In addition: Warning message:
In readKeyMap(filecon) : NAs introduced by coercion to integer range
(-_-_-album.txt
是在語料庫中的第一篇文章)
我感到困惑,所以我想看看違規與w210k[[1]]
文件,並得到了同樣的錯誤。然後我試圖尋找在語料庫中的其他文件(我在以前的語料庫知道的工作,所以它不是輸入文檔)像w210k[[100000]]
,我也得到了同樣的錯誤:
Error in readSingleKey(con, map, key) :
unable to obtain value for key 'John_Arthur_Roebuck.txt'
In addition: Warning messages:
1: In readKeyMap(filecon) : NAs introduced by coercion to integer range
2: In readKeyMap(filecon) : NAs introduced by coercion to integer range
3: In readKeyMap(filecon) : NAs introduced by coercion to integer range
注意,它拿起不同(和正確的)每篇文章的ID,但出於某種原因不能「獲得一個值」的關鍵。我似乎無法在文檔中找到任何有關此事的信息,並且當我通過Google查看錯誤消息時,似乎沒有任何東西出現。
任何想法可能會導致什麼呢?尺寸有限制嗎?我覺得我已經看到人們製造更大的DTM比沒有問題。如果規模是問題,關於如何製作這個巨大的DTM的任何想法?我最終會得到約1300萬份文件,希望有500,000個條款。
在此先感謝。
我們需要一些可重現的數據來測試。您能否提供一些您從wikipedia xml轉儲中創建的示例文本文件,或共享創建文本文件的R分析器腳本。 – amitkb3