用R做詞云分析

2021-07-05 08:59:06 字數 2170 閱讀 8107

對[文章]1的時候遇到wordle,根據文章中提示的**資訊,顯示為**打不開。順藤摸瓜在網上找資料,仍然找不到關於wordle的online tools,但知道了一本[書]2,其中的乙個章節講解wordle,指向同樣乙個**。我知道是乙個強大的工具,必然能夠做詞云生成,與以」r wordle」和」r 詞云」等關鍵字組合搜尋相關資料,最終我將注意力先集中到英文的詞云方法,對於中文的詞云,要採用特別的處理 (這就想寫la

tex 那樣,只要你寫英文的文章,一切好辦,而一牽涉到中文,所做的配置和努力要複雜的多。),最終找到了對我有用的一篇《r做文字挖掘:詞云分析》。下面**主要基於該文,並加上了我自己的感受,因為原文是乾巴巴的**。

在r中畫詞雲圖,需要package wordcloud,但是要畫出來最終的結果,你需要預先對文件進行必要的分析處理才行,此時需要package tm。再你載入這兩包後,系統會自動載入rcolorbrewer和nlp包。在沒深入探索之前,我們肯定能猜測出tm就text mining包,而nlp就是自然語言處理包,由此可見r語言功能的強大。

r本身沒有預設安裝包wordcloud和tm,採用下面**安裝及載入它們:

> install.packages("wordcloud")

> install.packages("tm")

> library(wordcloud)

> library(tm)

有了上面的鋪墊工作後,採用下面**話詞雲圖:

> data(crude)

> crude

> crude

(x)removewords

(x,stopwords()))

> tdm

(crude)

> m

(tdm)

> v

(rowsums(m),decreasing=true)

> d

(word=names(v),freq=v)

> wordcloud

(d$word,d$freq,random.order=false,colors=brewer.pal(8,"dark2"))

上面需要一定的r語言語法知識。在此我通俗地講解一下。先載入資料集crude,對該資料集去標點,去stopwords等後,將其轉變成乙個矩陣,行為term,列為documents。接下來就好理解了。

tm包本身已經很強大,能夠處理多個文件,當然是對多個文件的所有詞來畫雲圖。當然也能處理乙個文件,此時termdocument矩陣就變成了乙個列向量。現在的問題是你怎麼定義自己的資料集?使用tm包中自帶的資料集僅僅起到了demo的作用。

首先在如下圖所示的路徑中建立2個txt檔案:

上面c:/program files/r/r-3.13/library/tm是r系統tm包的路徑。可知,我使用的r版本是3.1.3。接下來,我們就可以畫圖了。這兩個文件的內容分別為:

text1.txt

text2.txt

畫圖命令如下:

txt 

#匯入動態coporus

mydata

mydata

mydata

(x)removewords

(x,stopwords()))

tdm(mydata)

m(tdm)

v(rowsums(m),decreasing=true)

d(word=names(v),freq=v)

wordcloud

(d$word,d$freq,random.order=false,color=brewer.pal(8,"dark2"))

關於system.file的更詳細的用法及動態coporus的概念,請參見相關的幫助文件。

jane cleland-huang. mining domain knowledge. ieee software, 32(3), 2015. ↩

beautiful visualization looking at data through the eyes of experts. edited by julie steele and noah iliinsky. o』reilly, 2010. ↩

詞云分析wordcloud

jieba模組 用來切割中文的模組 pillow python3中用來專門處理影象的模組 import re import jieba from pil import image from wordcloud import wordcloud import numpy as np def gen w...

用python繪製詞云

開發環境 python2.7 需要的庫 wordcloud,jieba,matplotlib 通過jieba分詞將讀取的文字分成字串,通過wordcloud生成詞云,根據詞頻來顯示特色詞云,讓人更加直觀的明白文字的詞頻最大的文字 在寫 之前我們要引入庫 import sys from wordclo...

R做因子分析

factanal x,factors,data null,covmat null,n.obs na,subset,na.actionstart null,scores c none regression bartlett rotation varimax control null,其中x是資料的公式...