2016-03-07 52 views
0

我有一個奇怪的問題,我似乎無法做出正面或反面。任何幫助是極大的讚賞。我在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個條款。

在此先感謝。

+0

我們需要一些可重現的數據來測試。您能否提供一些您從wikipedia xml轉儲中創建的示例文本文件,或共享創建文本文件的R分析器腳本。 – amitkb3

回答