2017-06-22 41 views
1

使用wordcloud軟件包創建wordcloud時,似乎軟件包默認忽略三個字符以下的單詞(如「tv」)。我認爲這是一個功能,而不是一個bug,但我仍然無法找到調整最小字符數的參數。R:wordcloud軟件包忽略語料庫中三個字符以下的單詞

的wordcloud抵抗()創建,並與該語料庫()tm_map預處理詞語從TM包功能的語料庫運行。我已經證實,有問題的單詞沒有在例如刪除停用詞 - 它們仍處於運行wordcloud()函數的最終語料庫中。

重複的例子[編輯]

真實數據顯然看起來不一樣。但是,下面的行復制錯誤。

customPalette <- brewer.pal(4, "Dark2") 

wordVector <- c(rep("tv", 15), rep("computer", 4), rep("phone", 16), rep("tablet",10)) 
newCorpus <- Corpus(VectorSource(wordVector)) 

wordcloud(newCorpus, max.words = 100, scale=c(8,1), random.order = FALSE, random.color = TRUE, colors = customPalette) 

這就造成輸出:

Wordcloud output

會議信息:

R version 3.3.2 (2016-10-31) 
Platform: x86_64-redhat-linux-gnu (64-bit) 
Running under: Amazon Linux AMI 2016.09 

locale: 
[1] LC_CTYPE=en_US.UTF-8  LC_NUMERIC=C    LC_TIME=en_US.UTF-8  LC_COLLATE=en_US.UTF-8  LC_MONETARY=en_US.UTF-8 
[6] LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8  LC_NAME=C     LC_ADDRESS=C    LC_TELEPHONE=C    
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] bindrcpp_0.2    zoo_1.8-0    wordcloud_2.5   RColorBrewer_1.1-2  SnowballC_0.5.1   tm_0.7-1     
[7] NLP_0.1-10    reshape2_1.4.2   lubridate_1.6.0   scales_0.4.1    ggplot2_2.2.1   aws.s3_0.3.3    
[13] githubinstall_0.2.1.9001 aws.signature_0.3.2  RJDBC_0.2-5    rJava_0.9-8    DBI_0.7     RCurl_1.95-4.8   
[19] bitops_1.0-6    jsonlite_1.5    dplyr_0.7.0    sparklyr_0.5.6   drat_0.1.2    devtools_1.13.2   

loaded via a namespace (and not attached): 
[1] slam_0.1-40  lattice_0.20-34 colorspace_1.3-2 htmltools_0.3.6 yaml_2.1.14  base64enc_0.1-3 rlang_0.1.1  glue_1.1.1  
[9] withr_1.0.2  dbplyr_1.0.0  bindr_0.1   plyr_1.8.4  stringr_1.2.0  munsell_0.4.3  gtable_0.2.0  memoise_1.1.0  
[17] labeling_0.3  httpuv_1.3.3  parallel_3.3.2 curl_2.6   Rcpp_0.12.11  xtable_1.8-2  backports_1.1.0 config_0.2  
[25] mime_0.5   digest_0.6.12  stringi_1.1.5  shiny_1.0.3  rprojroot_1.2  grid_3.3.2  tools_3.3.2  magrittr_1.5  
[33] lazyeval_0.2.0 tibble_1.3.3  pkgconfig_2.0.1 data.table_1.10.4 xml2_1.1.1  assertthat_0.2.0 httr_1.2.1  rstudioapi_0.6 
[41] R6_2.2.2   git2r_0.18.0 
+1

它爲我用一個小例子包括「電視'作爲一個字。可能是因爲頻率很低?默認情況下Wordcloud會忽略頻率小於3的單詞,並且您還將它限制爲示例中的前100個單詞。如果您仍有問題,您需要給我們一個可重現的例子! –

+0

這很有趣。將檢查是否可以在不共享特定數據集的情況下創建錯誤的可重現版本。有問題的單詞應該清除單詞計數欄。 –

+0

現在已經更新了一個可重複的例子。感謝您指出。 –

回答

1

出現是否使用矢量wordVector或胼版本的問題。這似乎是預期的行爲 - 請參閱包裝維護人員的評論。

下面的替代方法的工作原理,使用wordcloud的能力,接話的載體和單獨的頻率......

worddf <- as.data.frame(table(newCorpus$content)) 
wordcloud(words = worddf[,1], freq = worddf[,2], max.words = 100, scale=c(8,1), 
      random.order = FALSE, random.color = TRUE, colors = customPalette) 

enter image description here

+1

根據文檔,如果未提供freq,wordcloud會嘗試通過刪除標點符號和停用詞來做出一些智能繪圖決策。 –

相關問題