2017-06-22 16 views
1

wordcloudパッケージを使用してwordcloudを作成すると、デフォルトでは3文字以下の単語(「tv」など)が省略されているようです。私はこれがバグではなく機能だと思っていますが、引き続き最小文字カウントを調整する議論を見つけることができませんでした。R:単語3文字以下の単語を省略した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の能力を使用して、動作します... 'という言葉として。周波数が低いためかもしれませんか? Wordcloudでは、デフォルトで3未満の頻度の単語は無視され、例の上位100語にも制限されます。それでも問題が発生した場合は、再現可能なサンプルを提供する必要があります。 –

+0

それは面白いです。特定のデータセットを共有せずにエラーの再現可能なバージョンを作成できるかどうかを確認します。問題の言葉は、単語カウントバーをクリアする必要があります。 –

+0

再現可能な例で更新しました。指摘してくれてありがとう。 –

答えて

1

問題は、ベクターwordVectorまたはコーパスのバージョンとを使用しているかどうか表示されます。これは意図された動作のようです - パッケージメンテナーからの下記のコメントを見てください。それはテレビなどの小さな例で私の作品

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は句読点とストップワードを削除して、何らかのインテリジェントなプロットを決定しようとします。 –

関連する問題