<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          R-wordcloud: 詞云圖

          共 763字,需瀏覽 2分鐘

           ·

          2020-09-05 22:41

          好幾位讀者來信說,《R語言數(shù)據(jù)可視化之美》(增強(qiáng)版)的詞云圖的代碼有問題,我今天更新了一輪,這主要原因在R語言及其包的更新,導(dǎo)致源代碼有可能運行錯誤。R語言的優(yōu)勢在于其開源,有世界的專家學(xué)者一起開發(fā)新的包,以及其R語言本身不斷更新迭代增強(qiáng);這也是它的問題,因為很多時候不同包由于版本問題,會導(dǎo)致老版本的程序運行有誤。

          Anyway,很感謝諸位讀者的來信!考慮到,我怕wordcloud包會再更新導(dǎo)致文本處理又出現(xiàn)錯誤,而不能繪制詞云圖。我專門把處理的文本分析結(jié)果導(dǎo)出存成csv文件。這樣的話,可以使文本分析過程與詞云圖繪制分離開來,不會因為其中一部分的程序有誤而不能運行另外一部分的程序。關(guān)于詞云圖更加詳細(xì)的講解,請學(xué)習(xí)《R語言數(shù)據(jù)可視化之美》(增強(qiáng)版)。

          R中的wordcloud包提供了繪制詞云圖的函數(shù):wordcloud()comparison.cloud()commonality. cloud()。其中,用wordcloud(words,freq)函數(shù)繪制詞云圖時,只需要提供文本(words)和對應(yīng)的頻率(frequency);comparison.cloud(term.matrix)cpommonality.cloud(term.matrix)可以繪制對比詞云圖,term. matrix是一個行名,代表文本,每列數(shù)值代表文本對應(yīng)的頻數(shù)的矩陣。圖3-9-3 單篇文章的詞云圖和圖3-9-4兩篇文章的詞云圖的具體代碼如下所示。

          library(tm)library(wordcloud)
          Paper1<-paste(scan("Paper1.txt", what = character(0),sep = ""), collapse = " ") #讀入TXT 文檔1Paper2<-paste(scan("Paper2.txt", what = character(0),sep = ""), collapse = " ") #讀入TXT 文檔2tmpText<- data.frame(c(Paper1, Paper2),row.names=c("Text1","Text2"))df_title <- data.frame(doc_id=row.names(tmpText), text=tmpText$c.Paper1..Paper2.)ds <- DataframeSource(df_title)#創(chuàng)建一個數(shù)據(jù)框格式的數(shù)據(jù)源,首列是文檔id(doc_id),第二列是文檔內(nèi)容corp <- VCorpus(ds)#加載文檔集中的文本并生成語料庫文件corp<- tm_map(corp,removePunctuation) #清除語料庫內(nèi)的標(biāo)點符號corp <- tm_map(corp,PlainTextDocument) #轉(zhuǎn)換為純文本corp <- tm_map(corp,removeNumbers) #清除數(shù)字符號corp <- tm_map(corp, function(x){removeWords(x,stopwords())}) #過濾停止詞庫term.matrix <- TermDocumentMatrix(corp)#利用TermDocumentMatrix()函數(shù)將處理后的語料庫進(jìn)行斷字處理,生成詞頻權(quán)重矩陣
          term.matrix <- as.matrix(term.matrix) #頻率colnames(term.matrix) <- c("Paper1","paper2")df<-data.frame(term.matrix)write.csv(df,'term_matrix.csv') #導(dǎo)出兩篇文章的頻率分析結(jié)果

          導(dǎo)出的文本頻率分析結(jié)果'term_matrix.csv'如圖3-9-2所示,其中文本為索引行名,然后每列對應(yīng)每篇文章的文本頻率,然后我們使用一下語句就可以展示單篇和兩篇文章的詞云圖:

          df<-read.csv('term_matrix.csv',header=TRUE,row.names=1)#圖3-9-3(a): 單篇文章Paper1數(shù)據(jù)的展示wordcloud(row.names(df) , df$Paper1 , min.freq=10,col=brewer.pal(8, "Dark2"), rot.per=0.3 )#圖3-9-3(b): 單篇文章Paper2數(shù)據(jù)的展示wordcloud(row.names(df)?,?df$Paper2?,?min.freq=10,col=brewer.pal(8,?"Dark2"),?rot.per=0.3?)
          #兩篇文章數(shù)據(jù)的對比#圖3-9-4(a):兩篇文章的獨有部分comparison.cloud(df,max.words=300,random.order=FALSE,colors=c("#00B2FF", "red"))#圖3-9-4(b):兩篇文章的共有部分commonality.cloud(df,max.words=100,random.order=FALSE,color="#E7298A")

          ? ? ? ? ? ? ? ? ? ? ? ? ? ?

          圖3-9-2 ?詞的頻率數(shù)據(jù)

          圖3-9-3 ?單篇文章的詞云圖


          圖3-9-4 ?兩篇文章的詞云圖

          【本文內(nèi)容摘自《R語言數(shù)據(jù)可視化之美》】



          如需聯(lián)系EasyShu團(tuán)隊

          請加微信:EasyCharts


          微信公眾號【EasyShu】博文代碼集合地址

          https://github.com/Easy-Shu/EasyShu-WeChat


          《R語言數(shù)據(jù)可視化之美》增強(qiáng)版


          增強(qiáng)版配套源代碼下載地址

          Github

          https://github.com/Easy-Shu/Beautiful-Visualization-with-R

          百度云下載

          https://pan.baidu.com/s/1ZBKQCXW9TDnpM_GKRolZ0w?

          提取碼:jpou


          瀏覽 84
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  2014天堂网 | 色色五月丁香婷婷 | 超碰人人91 | 日逼观看视频 | 欧美国产在线观看 |