狠狠撸

狠狠撸Share a Scribd company logo
R 語言資料分析實務(2)
資料科學Data Science 系列
文字探勘- 文字雲製作
姓名:罗左欣
日期:2016/10/17(一)
本著作係採用
授權.
創用CC 姓名標示-非商業性-
相同方式分享3.0 台灣授權條款 部落格:http://shouzo.github.io/
Agenda
(一) Prepare:預備工作
(二) Basic:基本介紹與操作
(三) Theme:文字雲製作
(四) Reference:學習資源
(一) Prepare:
預備工作
(一) Prepare:預備工作
(一) Prepare:預備工作
在這個系列的簡報中,主要以"RStudio" 做為主要軟體。
(二) Basic:基本介紹與操作
(二) Basic:
基本介紹與操作
(二) Basic:基本介紹與操作 1. 网页分析
1. 网页分析
參考教材:使用R 與rvest 套件擷取網頁資料
https://blog.gtwang.org/r/rvest-web-scraping-with-r/教材網址:
(二) Basic:基本介紹與操作 1. 网页分析
尋找Xpath
(二) Basic:基本介紹與操作
Google 瀏覽器(Chrome) - 開發人員工具
1. 网页分析
(二) Basic:基本介紹與操作
Mozilla Firefox 瀏覽器- 擴充套件?FireBug
1. 网页分析
(二) Basic:基本介紹與操作 1. 网页分析
Xpath 概觀
https://github.com/aweimeowaweimeow註:本篇內容引用自
(二) Basic:基本介紹與操作 1. 网页分析
(二) Basic:基本介紹與操作 1. 网页分析
(二) Basic:基本介紹與操作 1. 网页分析
(二) Basic:基本介紹與操作 1. 网页分析
(二) Basic:基本介紹與操作 1. 网页分析
尋找特定物件的Xpath
(二) Basic:基本介紹與操作 1. 网页分析
(二) Basic:基本介紹與操作 1. 网页分析
(二) Basic:基本介紹與操作 1. 网页分析
(二) Basic:基本介紹與操作 1. 网页分析
透過TAG 屬性尋找特定物件
(二) Basic:基本介紹與操作 1. 网页分析
(二) Basic:基本介紹與操作 1. 网页分析
(二) Basic:基本介紹與操作
2. 资料的读取
2. 资料的读取
(二) Basic:基本介紹與操作 2. 资料的读取
常見的資料格式:
(1) CSV
(2) XML
(3) JSON
(4) DB (資料庫)
(5) RData
(6) SPSS、Stata、SAS、Octave ...
介紹如何讀取
CSV 檔
(二) Basic:基本介紹與操作
讀取CSV: STEP1:使用read.table()
若發現CSV 檔(或tab 分隔值檔)內容有缺
漏,例如分隔資料格的分隔符號出現在儲
存格內。
在這個情況下應該改用read.csv2()?或
read.delim2()?讀取資料。
[ 用法?]
? ? ? ? ? read.table (?le?= 檔案路徑?, header?= TRUE or FALSE, sep?= "分隔符號")
[ 參數設定?]
? ? ? ? ? ?le? ? 設定檔案的完整路徑
? ? ? ? ? header? ? 設定是否將資料的第一橫列設為直行名稱
? ? ? ? ? sep? ? 設定用來分隔資料的分隔符號
#?讀取檔案的完整路徑(在此為網路位址)?
theUrl?<?? "http://www.jaredlander.com/data/Tomato%20First.csv" ?
#?將檔案載入R,在這裡設定?
tomato?<??read.table?( file?=?theUrl,? header?=?TRUE,? sep?=?",")
2. 资料的读取
(二) Basic:基本介紹與操作
讀取CSV:
STEP2:使用head()
[ 用法?]
? ? ? ? ? head(資料表名稱)
STEP3:使用data.frame()
[ 用法?]
? ? ? ? ? data.frame (變數1 = 名稱1, 變數2 = 名稱2, 變數3 = 名稱3, ? ? ?? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ?......?,?stringsAsFactors?=?TRUE or False)
[ 引數設定?]
? ? ? ? ? stringsAsFactors? ? 防止含character (字元)的直行被轉為factor,保持? ? ? ? ?
? ? ? ? ? character 直行為原有的資料型態
2. 资料的读取
(二) Basic:基本介紹與操作
STEP2、STEP3:執行結果
>?head(tomato)???? #?查看資料表的第一部分?
??Round?????????????Tomato?Price??????Source?Sweet?Acid?Color?Texture?Overall ?
1?????1?????????Simpson?SM?? 3.99?Whole?Foods??? 2.8??2.8???3.7?????3.4?????3.4?
2?????1??Tuttorosso?(blue)?? 2.99?????Pioneer??? 3.3??2.8???3.4?????3.0?????2.9?
3?????1?Tuttorosso?(green)?? 0.99?????Pioneer??? 2.8??2.6???3.3?????2.8?????2.9?
4?????1?????La?Fede?SM?DOP?? 3.99???Shop?Rite??? 2.6??2.8???3.0?????2.3?????2.8?
5?????2???????Cento?SM?DOP?? 5.49??D?Agostino??? 3.3??3.1???2.9?????2.8?????3.1?
6?????2??????Cento?Organic?? 4.99??D?Agostino??? 3.2??2.9???2.9?????3.1?????2.9?
??Avg.of.Totals?Total.of.Avg ?
1?????????? 16.1????????? 16.1?
2?????????? 15.3????????? 15.3?
3?????????? 14.3????????? 14.3?
4?????????? 13.4????????? 13.4?
5?????????? 14.4????????? 15.2?
6?????????? 15.5????????? 15.1?
>??
>?x?<??10:1?
>?y?<???4:5?
>?#?"q"是一個?character? 型態的向量?
>?q?<??c( "Hockey",?"Football" ,?"Baseball" ,?"Curling" ,?"Rugby",?"Lacrosse" ,?"Basketball" ,?
>??
>?theDF?<??data.frame( First?=?x,?Second?=?y,?Sport?=?q,?stringsAsFactors ?=?FALSE) ?
>?theDF$Sport ?
?[1]?"Hockey"?????"Football" ???"Baseball" ???"Curling" ????"Rugby"??????"Lacrosse" ???
?[7]?"Basketball" ?"Tennis"?????"Cricket" ????"Soccer"????
2. 资料的读取
(三) Theme:
文字雲製作
(三) Theme:文字雲製作
(三) Theme:文字雲製作
(1) 是"文字探勘"上常用的呈現手法之一
(2) 出現頻率越高的字詞,會加以突顯出來
(3) 比起表格類型的結果,文字雲更美觀
(三) Theme:文字雲製作
1. 处理英文资料
1. 处理英文资料
(三) Theme:文字雲製作 1. 处理英文资料
STEP 1:準備要分析的資料
STEP 2:安裝和載入所需的套件
STEP 3:進行"文字探勘"
STEP 4:製作"字詞矩陣"
STEP 5:產生"文字雲"
處理步驟:
參考教材:Text mining and word cloud fundamentals in R:5 simple steps you should know
https://goo.gl/snM2nZ教材網址:
(三) Theme:文字雲製作 1. 处理英文资料
STEP 1:準備要分析的資料
網址:http://www.technewsworld.com/story/83998.html
Big Data and Analytics: Creating New Value
(三) Theme:文字雲製作 1. 处理英文资料
STEP 1:準備要分析的資料
紅線圈選區域為本次欲分析之內容
(三) Theme:文字雲製作 1. 处理英文资料
STEP 2:安裝和載入所需的套件
#?安裝套件?
install.packages("rvest")????#?"网页分析"用?
install.packages("tm")??#?"文字探勘"用?
install.packages("SnowballC")?#?Text?stemming?
install.packages("wordcloud")?#?產生"文字雲"用?
install.packages("RColorBrewer")?#?Color?palettes?
#?載入套件?
library("rvest")
library("tm")
library("SnowballC")?
library("wordcloud")?
library("RColorBrewer")
開啟RStudio,在命令列中輸入以下指令:
(三) Theme:文字雲製作 1. 处理英文资料
STEP 3:進行"文字探勘"
在Chrome 點選"開發人員工具" (亦可按下"F12"鍵)
(三) Theme:文字雲製作 1. 处理英文资料
利用選取工具找到段落後,在對應節點按右鍵
圈選文章後,點選"Copy Xpath"
2
2
1
STEP 3:進行"文字探勘"
(三) Theme:文字雲製作 1. 处理英文资料
STEP 3:進行"文字探勘"
將取得的Xpath 貼在記事本上(稍後會用到)
//*[@id="story?body"]文章的Xpath:
任何一個可以貼上文字的地方
(三) Theme:文字雲製作 1. 处理英文资料
STEP 3:進行"文字探勘"
#?擷取網頁內容,將網頁下載後存入"source.page"物件?
source.page?<??read_html( "http://www.technewsworld.com/story/83998.html" )?
#?利用?Xpath?取得文章內容?
source.content?<??html_nodes(source.page,?xpath?=? '//*[@id="story?body"]')?
#?取得?HTML?中的文字資料?
content?<??html_text(source.content) ?
#?顯示資料?(此時文章仍包含多餘字元)?
content
在命令列中輸入以下指令:
(三) Theme:文字雲製作 1. 处理英文资料
STEP 3:進行"文字探勘"
#?將內容以"語料庫"的形式儲存?
docs?<??Corpus(VectorSource(content)) ?
#?檢查內容?
inspect(docs)
在命令列中輸入以下指令:
(三) Theme:文字雲製作 1. 处理英文资料
STEP 3:進行"文字探勘"
過濾特殊字元:在命令列中輸入以下指令,將特殊字元以"空白"取代
過濾贅詞、符號:在命令列中輸入以下指令,移除贅詞和多餘的符號
#?將特殊的字元以"空白"取代?
toSpace?<??content_transformer(function?(x?,?pattern?)?gsub(pattern,?"?",?x))?
docs?<??tm_map(docs,?toSpace,?"/")????#?將"/"以"空白"取代?
docs?<??tm_map(docs,?toSpace,?"@")????#?將"@"以"空白"取代?
docs?<??tm_map(docs,?toSpace,?"|")??#?將"|"以"空白"取代
#?Convert?the?text?to?lower?case?
docs?<??tm_map(docs,?content_transformer(tolower))?
docs?<??tm_map(docs,?removeNumbers)????#?移除數字?
#?移除常見的"轉折詞彙"?
docs?<??tm_map(docs,?removeWords,?stopwords("english"))?
docs?<??tm_map(docs,?removePunctuation)??#?移除標點符號?
docs?<??tm_map(docs,?stripWhitespace)????#?移除額外的"空白"
(三) Theme:文字雲製作 1. 处理英文资料
STEP 4:製作"字詞矩陣"
dtm?<??TermDocumentMatrix(docs) ?
m?<??as.matrix(dtm)?
v?<??sort(rowSums(m),decreasing?=? TRUE)?
d?<??data.frame(word?=?names(v),freq?=?v) ?
#?顯示前10個出現頻率最高的字詞?
head(d,?10)
在命令列中輸入以下指令:
(三) Theme:文字雲製作 1. 处理英文资料
STEP 5:產生"文字雲"
在命令列中輸入以下指令:
#?設定可重複的亂數序列?
set.seed(1000)?
#?製作文字雲?
wordcloud(words?=?d$word,?freq?=?d$freq,?min.freq?=? 2,?
??????????max.words?=?30,?random.order?=?FALSE,?rot.per?=?0.35,??
??????????colors?=?brewer.pal( 8,?"Dark2"))
(三) Theme:文字雲製作
2. 处理中文资料
2. 处理中文资料
(三) Theme:文字雲製作 2. 处理中文资料
STEP 1:準備要分析的資料
STEP 2:安裝和載入所需的套件
STEP 3:進行"文字探勘"
STEP 4:製作"字詞矩陣"
STEP 5:產生"文字雲"
處理步驟:
參考教材:文字資料探勘實作
http://andrew.ga/works/TextMining/教材網址:
(三) Theme:文字雲製作 2. 处理中文资料
STEP 1:準備要分析的資料
【雙颱片】海馬下午增強中颱不排除升級強颱
網址:http://www.appledaily.com.tw/realtimenews/arti
cle/life/20161016/968938/
(三) Theme:文字雲製作 2. 处理中文资料
STEP 1:準備要分析的資料
紅線圈選區域為本次欲分析之內容
(三) Theme:文字雲製作 2. 处理中文资料
STEP 2:安裝和載入所需的套件
開啟RStudio,在命令列中輸入以下指令:
#?安裝套件?
install.packages("rvest")??????#?"网页分析"用?
install.packages("jiebaR")?????#?"中文斷詞"用?
install.packages("tm")?????????#?"文字探勘"用?
install.packages("wordcloud2")?#?產生"文字雲"用?
#?載入套件?
library("rvest")
library("jiebaR")?
library("tm")
library("wordcloud2")
(三) Theme:文字雲製作 2. 处理中文资料
STEP 3:進行"文字探勘"
在Chrome 點選"開發人員工具" (亦可按下"F12"鍵)
(三) Theme:文字雲製作 2. 处理中文资料
STEP 3:進行"文字探勘"
利用選取工具找到段落後,在對應節點按右鍵
1
2
圈選文章後,點選"Copy Xpath"
(三) Theme:文字雲製作 2. 处理中文资料
STEP 3:進行"文字探勘"
將取得的Xpath 貼在記事本上(稍後會用到)
//*[@id="summary"]文章的Xpath:
任何一個可以貼上文字的地方
(三) Theme:文字雲製作 2. 处理中文资料
STEP 3:進行"文字探勘"
#?擷取網頁內容,將網頁下載後存入"source.page" 物件?
source.page?<??read_html( "http://www.appledaily.com.tw/realtimenews/article/life/20161016/968938/" )?
#?利用?Xpath?取得文章內容?
source.content?<??html_nodes(source.page,?xpath?=? '//*[@id="summary"]' )?
#?取得?HTML?中的文字資料?
content?<??html_text(source.content) ?
#?顯示資料?(此時文章仍包含多餘字元)?
content?
#?啟用?jiebaR?套件裡的斷詞引擎?
mixseg?=?worker() ?
content.vec?<??segment(code?=?content,?jiebar?=?mixseg) ?
在命令列中輸入以下指令:
(三) Theme:文字雲製作 2. 处理中文资料
STEP 3:進行"文字探勘"
在命令列中輸入以下指令:
space_tokenizer?=? function(x){?
????unlist(strsplit(as.character(x[[ 1]]),?'[[:space:]]+' ))?
}?
jieba_tokenizer?=? function(d){?
????unlist(segment(d[[ 1]],?mixseg)) ?
}?
#?撰寫?CNCorpus? 副程式?
####?CNCorpus?Function?Start?#### ?
CNCorpus?=? function(d.vec){?
???
????doc?<??VCorpus(VectorSource(d.vec)) ?
????doc?<??unlist(tm_map(doc?,jieba_tokenizer),?recursive?=? F)?
????doc?<??lapply(doc?, function(d)paste(d,?collapse?=? '?'))?
????Corpus(VectorSource(doc)) ?
}?
####?CNCorpus?Function?END?####
CNCorpus 副程式:將內容以"語料庫"的形式儲存
(三) Theme:文字雲製作 2. 处理中文资料
在命令列中輸入以下指令:
content.corpus?=?CNCorpus(list(content.vec))????#?執行?CNCorpus?副程式?
content.corpus?<??tm_map(content.corpus,?removeNumbers)????#?移除數字?
control.list?=?list(wordLengths?=?c(2,?Inf),tokenize?=?space_tokenizer)?
content.dtm?<??DocumentTermMatrix(content.corpus,?control?=?control.list)?
inspect(content.dtm)????#?檢查內容
STEP 4:製作"字詞矩陣"
(三) Theme:文字雲製作 2. 处理中文资料
在命令列中輸入以下指令:
frequency?<??colSums(as.matrix(content.dtm))?
frequency?<??sort(frequency,?decreasing?=?TRUE)[1:100]?
wordcloud2(as.table(frequency),?fontFamily?=?'微软雅黑',?shape?=?'star')
STEP 5:產生"文字雲"
(四) Reference:
學習資源
(四) Reference:學習資源
http://datascienceandr.org/
(四) Reference:學習資源
1. R 語言翻轉教室- Wush Wu、Chih Cheng Liang、Johnson Hsieh
一、中文教材
2. 手把手教你R 語言資料分析實務?- 張毓倫&陳柏亨
http://goo.gl/18mwug
3. R 軟體與資料探勘之開發與應用- 陳志華
https://goo.gl/NPdzzP
二、英文教材
1. DataCamp
https://www.datacamp.com/
線上教材
2. R for Data Science
http://r4ds.had.co.nz/
推薦書籍
R 軟體資料分析基礎與應用
作者:Jared P. Lander ?
譯者:鍾振蔚
出版社:旗標
(四) Reference:學習資源
相關社群
Taiwan R User Group
https://www.facebook.com/Tw.R.User/
台湾资料科学年会
https://www.facebook.com/twdsconf/
資料視覺化/ Data Visualization
https://www.facebook.com/data.visualize/
(四) Reference:學習資源
Q & A

More Related Content

What's hot (20)

20170430 python爬蟲攻防戰-攻防與金融大數據分析班
20170430 python爬蟲攻防戰-攻防與金融大數據分析班20170430 python爬蟲攻防戰-攻防與金融大數據分析班
20170430 python爬蟲攻防戰-攻防與金融大數據分析班
Paul Chao
?
[系列活動] Python 爬蟲實戰
[系列活動] Python 爬蟲實戰[系列活動] Python 爬蟲實戰
[系列活動] Python 爬蟲實戰
台湾资料科学年会
?
初学搁语言的60分鐘
初学搁语言的60分鐘初学搁语言的60分鐘
初学搁语言的60分鐘
Chen-Pan Liao
?
廣宣學堂Python金融爬蟲原理班 20170416
廣宣學堂Python金融爬蟲原理班 20170416廣宣學堂Python金融爬蟲原理班 20170416
廣宣學堂Python金融爬蟲原理班 20170416
Paul Chao
?
Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)
家雋 莊
?
惭补丑辞耻迟资料分析基础入门
惭补丑辞耻迟资料分析基础入门惭补丑辞耻迟资料分析基础入门
惭补丑辞耻迟资料分析基础入门
Jhang Raymond
?
Python 爬蟲實戰
Python 爬蟲實戰Python 爬蟲實戰
Python 爬蟲實戰
Chen-Ming Yang
?
Python crawling tutorial
Python crawling tutorialPython crawling tutorial
Python crawling tutorial
Chen-Ming Yang
?
洞見未來,用python 與 r 結合深度學習技術預測趨勢
洞見未來,用python 與 r 結合深度學習技術預測趨勢洞見未來,用python 與 r 結合深度學習技術預測趨勢
洞見未來,用python 與 r 結合深度學習技術預測趨勢
David Chiu
?
Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南
HonestQiao
?
Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)
家雋 莊
?
[系列活動] Python 程式語言起步走
[系列活動] Python 程式語言起步走[系列活動] Python 程式語言起步走
[系列活動] Python 程式語言起步走
台湾资料科学年会
?
贬补诲辞辞辫与数据分析
贬补诲辞辞辫与数据分析贬补诲辞辞辫与数据分析
贬补诲辞辞辫与数据分析
George Ang
?
資料分析的前奏曲 談資料收集的挑戰
資料分析的前奏曲   談資料收集的挑戰資料分析的前奏曲   談資料收集的挑戰
資料分析的前奏曲 談資料收集的挑戰
Shih-En Chou
?
Information Retrieval
Information RetrievalInformation Retrieval
Information Retrieval
yxyx3258
?
Enterprise Data Lake in Action
Enterprise Data Lake in ActionEnterprise Data Lake in Action
Enterprise Data Lake in Action
Jazz Yao-Tsung Wang
?
周世恩/資料分析前的奏曲 : 談資料收集的挑戰
周世恩/資料分析前的奏曲 : 談資料收集的挑戰周世恩/資料分析前的奏曲 : 談資料收集的挑戰
周世恩/資料分析前的奏曲 : 談資料收集的挑戰
台湾资料科学年会
?
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法
Jazz Yao-Tsung Wang
?
2006-11-16 RFID and OSS for Agriculture
2006-11-16 RFID and OSS for Agriculture2006-11-16 RFID and OSS for Agriculture
2006-11-16 RFID and OSS for Agriculture
Jazz Yao-Tsung Wang
?
20170430 python爬蟲攻防戰-攻防與金融大數據分析班
20170430 python爬蟲攻防戰-攻防與金融大數據分析班20170430 python爬蟲攻防戰-攻防與金融大數據分析班
20170430 python爬蟲攻防戰-攻防與金融大數據分析班
Paul Chao
?
初学搁语言的60分鐘
初学搁语言的60分鐘初学搁语言的60分鐘
初学搁语言的60分鐘
Chen-Pan Liao
?
廣宣學堂Python金融爬蟲原理班 20170416
廣宣學堂Python金融爬蟲原理班 20170416廣宣學堂Python金融爬蟲原理班 20170416
廣宣學堂Python金融爬蟲原理班 20170416
Paul Chao
?
Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)
家雋 莊
?
惭补丑辞耻迟资料分析基础入门
惭补丑辞耻迟资料分析基础入门惭补丑辞耻迟资料分析基础入门
惭补丑辞耻迟资料分析基础入门
Jhang Raymond
?
洞見未來,用python 與 r 結合深度學習技術預測趨勢
洞見未來,用python 與 r 結合深度學習技術預測趨勢洞見未來,用python 與 r 結合深度學習技術預測趨勢
洞見未來,用python 與 r 結合深度學習技術預測趨勢
David Chiu
?
Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南
HonestQiao
?
Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)
家雋 莊
?
贬补诲辞辞辫与数据分析
贬补诲辞辞辫与数据分析贬补诲辞辞辫与数据分析
贬补诲辞辞辫与数据分析
George Ang
?
資料分析的前奏曲 談資料收集的挑戰
資料分析的前奏曲   談資料收集的挑戰資料分析的前奏曲   談資料收集的挑戰
資料分析的前奏曲 談資料收集的挑戰
Shih-En Chou
?
Information Retrieval
Information RetrievalInformation Retrieval
Information Retrieval
yxyx3258
?
周世恩/資料分析前的奏曲 : 談資料收集的挑戰
周世恩/資料分析前的奏曲 : 談資料收集的挑戰周世恩/資料分析前的奏曲 : 談資料收集的挑戰
周世恩/資料分析前的奏曲 : 談資料收集的挑戰
台湾资料科学年会
?
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法
Jazz Yao-Tsung Wang
?
2006-11-16 RFID and OSS for Agriculture
2006-11-16 RFID and OSS for Agriculture2006-11-16 RFID and OSS for Agriculture
2006-11-16 RFID and OSS for Agriculture
Jazz Yao-Tsung Wang
?

Similar to 20161017 R語言資料分析實務 (2) (20)

Practical data analysis in R: from data collection to data insight
Practical data analysis in R: from data collection to data insight Practical data analysis in R: from data collection to data insight
Practical data analysis in R: from data collection to data insight
Chun-Min Chang
?
Go 夜读 139 期 Excelize 基础库
Go 夜读 139 期 Excelize 基础库Go 夜读 139 期 Excelize 基础库
Go 夜读 139 期 Excelize 基础库
Ri Xu
?
Html02
Html02Html02
Html02
Ht Wang
?
前端样式开发演变之路
前端样式开发演变之路前端样式开发演变之路
前端样式开发演变之路
Zhao Lei
?
Ch7 範例
Ch7 範例Ch7 範例
Ch7 範例
hungchiayang1
?
給軟體工程師的不廢話 R 語言精要班
給軟體工程師的不廢話 R 語言精要班給軟體工程師的不廢話 R 語言精要班
給軟體工程師的不廢話 R 語言精要班
台湾资料科学年会
?
HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享
Chong-Kuan Chen
?
使用顿蝉濒改善软件设计
使用顿蝉濒改善软件设计使用顿蝉濒改善软件设计
使用顿蝉濒改善软件设计
mingjin
?
R intro 20140716-basic
R intro 20140716-basicR intro 20140716-basic
R intro 20140716-basic
Kevin Chun-Hsien Hsu
?
Java 的開放原碼全文搜尋技術 - Lucene
Java 的開放原碼全文搜尋技術 - LuceneJava 的開放原碼全文搜尋技術 - Lucene
Java 的開放原碼全文搜尋技術 - Lucene
建興 王
?
Introduction to corona sdk
Introduction to corona sdkIntroduction to corona sdk
Introduction to corona sdk
馬 萬圳
?
骋谤补颈濒蝉敏捷项目开发
骋谤补颈濒蝉敏捷项目开发骋谤补颈濒蝉敏捷项目开发
骋谤补颈濒蝉敏捷项目开发
Michael Yan
?
教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521
教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521
教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521
Beckett Hsieh
?
Sourcemap
SourcemapSourcemap
Sourcemap
allenmeng
?
選擇正確的Solution 來建置現代化的雲端資料倉儲
選擇正確的Solution 來建置現代化的雲端資料倉儲選擇正確的Solution 來建置現代化的雲端資料倉儲
選擇正確的Solution 來建置現代化的雲端資料倉儲
Herman Wu
?
8门编程语言的设计思考
8门编程语言的设计思考8门编程语言的设计思考
8门编程语言的设计思考
Ray Song
?
Upload attack framework
Upload attack frameworkUpload attack framework
Upload attack framework
insight-labs
?
Hadoop 0.20 程式設計
Hadoop 0.20 程式設計Hadoop 0.20 程式設計
Hadoop 0.20 程式設計
Wei-Yu Chen
?
Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsExam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development Fundamentals
Chieh Lin
?
Ria lqj
Ria lqjRia lqj
Ria lqj
huzilqj
?
Practical data analysis in R: from data collection to data insight
Practical data analysis in R: from data collection to data insight Practical data analysis in R: from data collection to data insight
Practical data analysis in R: from data collection to data insight
Chun-Min Chang
?
Go 夜读 139 期 Excelize 基础库
Go 夜读 139 期 Excelize 基础库Go 夜读 139 期 Excelize 基础库
Go 夜读 139 期 Excelize 基础库
Ri Xu
?
前端样式开发演变之路
前端样式开发演变之路前端样式开发演变之路
前端样式开发演变之路
Zhao Lei
?
給軟體工程師的不廢話 R 語言精要班
給軟體工程師的不廢話 R 語言精要班給軟體工程師的不廢話 R 語言精要班
給軟體工程師的不廢話 R 語言精要班
台湾资料科学年会
?
HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享
Chong-Kuan Chen
?
使用顿蝉濒改善软件设计
使用顿蝉濒改善软件设计使用顿蝉濒改善软件设计
使用顿蝉濒改善软件设计
mingjin
?
Java 的開放原碼全文搜尋技術 - Lucene
Java 的開放原碼全文搜尋技術 - LuceneJava 的開放原碼全文搜尋技術 - Lucene
Java 的開放原碼全文搜尋技術 - Lucene
建興 王
?
Introduction to corona sdk
Introduction to corona sdkIntroduction to corona sdk
Introduction to corona sdk
馬 萬圳
?
骋谤补颈濒蝉敏捷项目开发
骋谤补颈濒蝉敏捷项目开发骋谤补颈濒蝉敏捷项目开发
骋谤补颈濒蝉敏捷项目开发
Michael Yan
?
教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521
教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521
教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521
Beckett Hsieh
?
選擇正確的Solution 來建置現代化的雲端資料倉儲
選擇正確的Solution 來建置現代化的雲端資料倉儲選擇正確的Solution 來建置現代化的雲端資料倉儲
選擇正確的Solution 來建置現代化的雲端資料倉儲
Herman Wu
?
8门编程语言的设计思考
8门编程语言的设计思考8门编程语言的设计思考
8门编程语言的设计思考
Ray Song
?
Upload attack framework
Upload attack frameworkUpload attack framework
Upload attack framework
insight-labs
?
Hadoop 0.20 程式設計
Hadoop 0.20 程式設計Hadoop 0.20 程式設計
Hadoop 0.20 程式設計
Wei-Yu Chen
?
Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsExam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development Fundamentals
Chieh Lin
?

More from 罗左欣 (17)

20190815 團隊經營 - 組織規劃、經營與傳承
20190815 團隊經營 - 組織規劃、經營與傳承20190815 團隊經營 - 組織規劃、經營與傳承
20190815 團隊經營 - 組織規劃、經營與傳承
罗左欣
?
20171214 - 成果簡報培訓
20171214 - 成果簡報培訓20171214 - 成果簡報培訓
20171214 - 成果簡報培訓
罗左欣
?
20171024 TED_ENG
20171024 TED_ENG20171024 TED_ENG
20171024 TED_ENG
罗左欣
?
20170907 - 簡報架構
20170907 - 簡報架構20170907 - 簡報架構
20170907 - 簡報架構
罗左欣
?
20170526 社團人生回顧系列
20170526 社團人生回顧系列20170526 社團人生回顧系列
20170526 社團人生回顧系列
罗左欣
?
20170427 关於社团传承,你必须知道的那些事...
20170427 关於社团传承,你必须知道的那些事...20170427 关於社团传承,你必须知道的那些事...
20170427 关於社团传承,你必须知道的那些事...
罗左欣
?
20170422 原始点医学分享
20170422 原始点医学分享20170422 原始点医学分享
20170422 原始点医学分享
罗左欣
?
20170118 社團負責人課程
20170118 社團負責人課程20170118 社團負責人課程
20170118 社團負責人課程
罗左欣
?
20161211 給社團人的一封信
20161211 給社團人的一封信20161211 給社團人的一封信
20161211 給社團人的一封信
罗左欣
?
20160829 夢想,Loading...
20160829 夢想,Loading...20160829 夢想,Loading...
20160829 夢想,Loading...
罗左欣
?
20160802 那些年,關於大學的那些事...
20160802 那些年,關於大學的那些事...20160802 那些年,關於大學的那些事...
20160802 那些年,關於大學的那些事...
罗左欣
?
20160803 社團創社經驗分享與交流
20160803 社團創社經驗分享與交流20160803 社團創社經驗分享與交流
20160803 社團創社經驗分享與交流
罗左欣
?
20150104社长社务资料处理(校务系统&补尘辫;学生会系统的使用)
20150104社长社务资料处理(校务系统&补尘辫;学生会系统的使用)20150104社长社务资料处理(校务系统&补尘辫;学生会系统的使用)
20150104社长社务资料处理(校务系统&补尘辫;学生会系统的使用)
罗左欣
?
20141214担任活动执秘应注意之事项
20141214担任活动执秘应注意之事项20141214担任活动执秘应注意之事项
20141214担任活动执秘应注意之事项
罗左欣
?
20150104社长社务资料处理--举办活动操作说明(校务系统&补尘辫;学生会系统)以及送公文注意事项
20150104社长社务资料处理--举办活动操作说明(校务系统&补尘辫;学生会系统)以及送公文注意事项20150104社长社务资料处理--举办活动操作说明(校务系统&补尘辫;学生会系统)以及送公文注意事项
20150104社长社务资料处理--举办活动操作说明(校务系统&补尘辫;学生会系统)以及送公文注意事项
罗左欣
?
20150104各类型社团文件的製作,上传以及活动举办的说明与操作
20150104各类型社团文件的製作,上传以及活动举办的说明与操作20150104各类型社团文件的製作,上传以及活动举办的说明与操作
20150104各类型社团文件的製作,上传以及活动举办的说明与操作
罗左欣
?
20150911 [社團事務] 跑酷社創社審查
20150911 [社團事務] 跑酷社創社審查20150911 [社團事務] 跑酷社創社審查
20150911 [社團事務] 跑酷社創社審查
罗左欣
?
20190815 團隊經營 - 組織規劃、經營與傳承
20190815 團隊經營 - 組織規劃、經營與傳承20190815 團隊經營 - 組織規劃、經營與傳承
20190815 團隊經營 - 組織規劃、經營與傳承
罗左欣
?
20171214 - 成果簡報培訓
20171214 - 成果簡報培訓20171214 - 成果簡報培訓
20171214 - 成果簡報培訓
罗左欣
?
20170907 - 簡報架構
20170907 - 簡報架構20170907 - 簡報架構
20170907 - 簡報架構
罗左欣
?
20170526 社團人生回顧系列
20170526 社團人生回顧系列20170526 社團人生回顧系列
20170526 社團人生回顧系列
罗左欣
?
20170427 关於社团传承,你必须知道的那些事...
20170427 关於社团传承,你必须知道的那些事...20170427 关於社团传承,你必须知道的那些事...
20170427 关於社团传承,你必须知道的那些事...
罗左欣
?
20170422 原始点医学分享
20170422 原始点医学分享20170422 原始点医学分享
20170422 原始点医学分享
罗左欣
?
20170118 社團負責人課程
20170118 社團負責人課程20170118 社團負責人課程
20170118 社團負責人課程
罗左欣
?
20161211 給社團人的一封信
20161211 給社團人的一封信20161211 給社團人的一封信
20161211 給社團人的一封信
罗左欣
?
20160829 夢想,Loading...
20160829 夢想,Loading...20160829 夢想,Loading...
20160829 夢想,Loading...
罗左欣
?
20160802 那些年,關於大學的那些事...
20160802 那些年,關於大學的那些事...20160802 那些年,關於大學的那些事...
20160802 那些年,關於大學的那些事...
罗左欣
?
20160803 社團創社經驗分享與交流
20160803 社團創社經驗分享與交流20160803 社團創社經驗分享與交流
20160803 社團創社經驗分享與交流
罗左欣
?
20150104社长社务资料处理(校务系统&补尘辫;学生会系统的使用)
20150104社长社务资料处理(校务系统&补尘辫;学生会系统的使用)20150104社长社务资料处理(校务系统&补尘辫;学生会系统的使用)
20150104社长社务资料处理(校务系统&补尘辫;学生会系统的使用)
罗左欣
?
20141214担任活动执秘应注意之事项
20141214担任活动执秘应注意之事项20141214担任活动执秘应注意之事项
20141214担任活动执秘应注意之事项
罗左欣
?
20150104社长社务资料处理--举办活动操作说明(校务系统&补尘辫;学生会系统)以及送公文注意事项
20150104社长社务资料处理--举办活动操作说明(校务系统&补尘辫;学生会系统)以及送公文注意事项20150104社长社务资料处理--举办活动操作说明(校务系统&补尘辫;学生会系统)以及送公文注意事项
20150104社长社务资料处理--举办活动操作说明(校务系统&补尘辫;学生会系统)以及送公文注意事项
罗左欣
?
20150104各类型社团文件的製作,上传以及活动举办的说明与操作
20150104各类型社团文件的製作,上传以及活动举办的说明与操作20150104各类型社团文件的製作,上传以及活动举办的说明与操作
20150104各类型社团文件的製作,上传以及活动举办的说明与操作
罗左欣
?
20150911 [社團事務] 跑酷社創社審查
20150911 [社團事務] 跑酷社創社審查20150911 [社團事務] 跑酷社創社審查
20150911 [社團事務] 跑酷社創社審查
罗左欣
?

20161017 R語言資料分析實務 (2)

  • 1. R 語言資料分析實務(2) 資料科學Data Science 系列 文字探勘- 文字雲製作 姓名:罗左欣 日期:2016/10/17(一) 本著作係採用 授權. 創用CC 姓名標示-非商業性- 相同方式分享3.0 台灣授權條款 部落格:http://shouzo.github.io/
  • 2. Agenda (一) Prepare:預備工作 (二) Basic:基本介紹與操作 (三) Theme:文字雲製作 (四) Reference:學習資源
  • 6. (二) Basic:基本介紹與操作 1. 网页分析 1. 网页分析 參考教材:使用R 與rvest 套件擷取網頁資料 https://blog.gtwang.org/r/rvest-web-scraping-with-r/教材網址:
  • 7. (二) Basic:基本介紹與操作 1. 网页分析 尋找Xpath
  • 9. (二) Basic:基本介紹與操作 Mozilla Firefox 瀏覽器- 擴充套件?FireBug 1. 网页分析
  • 10. (二) Basic:基本介紹與操作 1. 网页分析 Xpath 概觀 https://github.com/aweimeowaweimeow註:本篇內容引用自
  • 15. (二) Basic:基本介紹與操作 1. 网页分析 尋找特定物件的Xpath
  • 19. (二) Basic:基本介紹與操作 1. 网页分析 透過TAG 屬性尋找特定物件
  • 23. (二) Basic:基本介紹與操作 2. 资料的读取 常見的資料格式: (1) CSV (2) XML (3) JSON (4) DB (資料庫) (5) RData (6) SPSS、Stata、SAS、Octave ... 介紹如何讀取 CSV 檔
  • 24. (二) Basic:基本介紹與操作 讀取CSV: STEP1:使用read.table() 若發現CSV 檔(或tab 分隔值檔)內容有缺 漏,例如分隔資料格的分隔符號出現在儲 存格內。 在這個情況下應該改用read.csv2()?或 read.delim2()?讀取資料。 [ 用法?] ? ? ? ? ? read.table (?le?= 檔案路徑?, header?= TRUE or FALSE, sep?= "分隔符號") [ 參數設定?] ? ? ? ? ? ?le? ? 設定檔案的完整路徑 ? ? ? ? ? header? ? 設定是否將資料的第一橫列設為直行名稱 ? ? ? ? ? sep? ? 設定用來分隔資料的分隔符號 #?讀取檔案的完整路徑(在此為網路位址)? theUrl?<?? "http://www.jaredlander.com/data/Tomato%20First.csv" ? #?將檔案載入R,在這裡設定? tomato?<??read.table?( file?=?theUrl,? header?=?TRUE,? sep?=?",") 2. 资料的读取
  • 25. (二) Basic:基本介紹與操作 讀取CSV: STEP2:使用head() [ 用法?] ? ? ? ? ? head(資料表名稱) STEP3:使用data.frame() [ 用法?] ? ? ? ? ? data.frame (變數1 = 名稱1, 變數2 = 名稱2, 變數3 = 名稱3, ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?......?,?stringsAsFactors?=?TRUE or False) [ 引數設定?] ? ? ? ? ? stringsAsFactors? ? 防止含character (字元)的直行被轉為factor,保持? ? ? ? ? ? ? ? ? ? character 直行為原有的資料型態 2. 资料的读取
  • 26. (二) Basic:基本介紹與操作 STEP2、STEP3:執行結果 >?head(tomato)???? #?查看資料表的第一部分? ??Round?????????????Tomato?Price??????Source?Sweet?Acid?Color?Texture?Overall ? 1?????1?????????Simpson?SM?? 3.99?Whole?Foods??? 2.8??2.8???3.7?????3.4?????3.4? 2?????1??Tuttorosso?(blue)?? 2.99?????Pioneer??? 3.3??2.8???3.4?????3.0?????2.9? 3?????1?Tuttorosso?(green)?? 0.99?????Pioneer??? 2.8??2.6???3.3?????2.8?????2.9? 4?????1?????La?Fede?SM?DOP?? 3.99???Shop?Rite??? 2.6??2.8???3.0?????2.3?????2.8? 5?????2???????Cento?SM?DOP?? 5.49??D?Agostino??? 3.3??3.1???2.9?????2.8?????3.1? 6?????2??????Cento?Organic?? 4.99??D?Agostino??? 3.2??2.9???2.9?????3.1?????2.9? ??Avg.of.Totals?Total.of.Avg ? 1?????????? 16.1????????? 16.1? 2?????????? 15.3????????? 15.3? 3?????????? 14.3????????? 14.3? 4?????????? 13.4????????? 13.4? 5?????????? 14.4????????? 15.2? 6?????????? 15.5????????? 15.1? >?? >?x?<??10:1? >?y?<???4:5? >?#?"q"是一個?character? 型態的向量? >?q?<??c( "Hockey",?"Football" ,?"Baseball" ,?"Curling" ,?"Rugby",?"Lacrosse" ,?"Basketball" ,? >?? >?theDF?<??data.frame( First?=?x,?Second?=?y,?Sport?=?q,?stringsAsFactors ?=?FALSE) ? >?theDF$Sport ? ?[1]?"Hockey"?????"Football" ???"Baseball" ???"Curling" ????"Rugby"??????"Lacrosse" ??? ?[7]?"Basketball" ?"Tennis"?????"Cricket" ????"Soccer"???? 2. 资料的读取
  • 28. (三) Theme:文字雲製作 (1) 是"文字探勘"上常用的呈現手法之一 (2) 出現頻率越高的字詞,會加以突顯出來 (3) 比起表格類型的結果,文字雲更美觀
  • 30. (三) Theme:文字雲製作 1. 处理英文资料 STEP 1:準備要分析的資料 STEP 2:安裝和載入所需的套件 STEP 3:進行"文字探勘" STEP 4:製作"字詞矩陣" STEP 5:產生"文字雲" 處理步驟: 參考教材:Text mining and word cloud fundamentals in R:5 simple steps you should know https://goo.gl/snM2nZ教材網址:
  • 31. (三) Theme:文字雲製作 1. 处理英文资料 STEP 1:準備要分析的資料 網址:http://www.technewsworld.com/story/83998.html Big Data and Analytics: Creating New Value
  • 32. (三) Theme:文字雲製作 1. 处理英文资料 STEP 1:準備要分析的資料 紅線圈選區域為本次欲分析之內容
  • 33. (三) Theme:文字雲製作 1. 处理英文资料 STEP 2:安裝和載入所需的套件 #?安裝套件? install.packages("rvest")????#?"网页分析"用? install.packages("tm")??#?"文字探勘"用? install.packages("SnowballC")?#?Text?stemming? install.packages("wordcloud")?#?產生"文字雲"用? install.packages("RColorBrewer")?#?Color?palettes? #?載入套件? library("rvest") library("tm") library("SnowballC")? library("wordcloud")? library("RColorBrewer") 開啟RStudio,在命令列中輸入以下指令:
  • 34. (三) Theme:文字雲製作 1. 处理英文资料 STEP 3:進行"文字探勘" 在Chrome 點選"開發人員工具" (亦可按下"F12"鍵)
  • 35. (三) Theme:文字雲製作 1. 处理英文资料 利用選取工具找到段落後,在對應節點按右鍵 圈選文章後,點選"Copy Xpath" 2 2 1 STEP 3:進行"文字探勘"
  • 36. (三) Theme:文字雲製作 1. 处理英文资料 STEP 3:進行"文字探勘" 將取得的Xpath 貼在記事本上(稍後會用到) //*[@id="story?body"]文章的Xpath: 任何一個可以貼上文字的地方
  • 37. (三) Theme:文字雲製作 1. 处理英文资料 STEP 3:進行"文字探勘" #?擷取網頁內容,將網頁下載後存入"source.page"物件? source.page?<??read_html( "http://www.technewsworld.com/story/83998.html" )? #?利用?Xpath?取得文章內容? source.content?<??html_nodes(source.page,?xpath?=? '//*[@id="story?body"]')? #?取得?HTML?中的文字資料? content?<??html_text(source.content) ? #?顯示資料?(此時文章仍包含多餘字元)? content 在命令列中輸入以下指令:
  • 38. (三) Theme:文字雲製作 1. 处理英文资料 STEP 3:進行"文字探勘" #?將內容以"語料庫"的形式儲存? docs?<??Corpus(VectorSource(content)) ? #?檢查內容? inspect(docs) 在命令列中輸入以下指令:
  • 39. (三) Theme:文字雲製作 1. 处理英文资料 STEP 3:進行"文字探勘" 過濾特殊字元:在命令列中輸入以下指令,將特殊字元以"空白"取代 過濾贅詞、符號:在命令列中輸入以下指令,移除贅詞和多餘的符號 #?將特殊的字元以"空白"取代? toSpace?<??content_transformer(function?(x?,?pattern?)?gsub(pattern,?"?",?x))? docs?<??tm_map(docs,?toSpace,?"/")????#?將"/"以"空白"取代? docs?<??tm_map(docs,?toSpace,?"@")????#?將"@"以"空白"取代? docs?<??tm_map(docs,?toSpace,?"|")??#?將"|"以"空白"取代 #?Convert?the?text?to?lower?case? docs?<??tm_map(docs,?content_transformer(tolower))? docs?<??tm_map(docs,?removeNumbers)????#?移除數字? #?移除常見的"轉折詞彙"? docs?<??tm_map(docs,?removeWords,?stopwords("english"))? docs?<??tm_map(docs,?removePunctuation)??#?移除標點符號? docs?<??tm_map(docs,?stripWhitespace)????#?移除額外的"空白"
  • 40. (三) Theme:文字雲製作 1. 处理英文资料 STEP 4:製作"字詞矩陣" dtm?<??TermDocumentMatrix(docs) ? m?<??as.matrix(dtm)? v?<??sort(rowSums(m),decreasing?=? TRUE)? d?<??data.frame(word?=?names(v),freq?=?v) ? #?顯示前10個出現頻率最高的字詞? head(d,?10) 在命令列中輸入以下指令:
  • 41. (三) Theme:文字雲製作 1. 处理英文资料 STEP 5:產生"文字雲" 在命令列中輸入以下指令: #?設定可重複的亂數序列? set.seed(1000)? #?製作文字雲? wordcloud(words?=?d$word,?freq?=?d$freq,?min.freq?=? 2,? ??????????max.words?=?30,?random.order?=?FALSE,?rot.per?=?0.35,?? ??????????colors?=?brewer.pal( 8,?"Dark2"))
  • 43. (三) Theme:文字雲製作 2. 处理中文资料 STEP 1:準備要分析的資料 STEP 2:安裝和載入所需的套件 STEP 3:進行"文字探勘" STEP 4:製作"字詞矩陣" STEP 5:產生"文字雲" 處理步驟: 參考教材:文字資料探勘實作 http://andrew.ga/works/TextMining/教材網址:
  • 44. (三) Theme:文字雲製作 2. 处理中文资料 STEP 1:準備要分析的資料 【雙颱片】海馬下午增強中颱不排除升級強颱 網址:http://www.appledaily.com.tw/realtimenews/arti cle/life/20161016/968938/
  • 45. (三) Theme:文字雲製作 2. 处理中文资料 STEP 1:準備要分析的資料 紅線圈選區域為本次欲分析之內容
  • 46. (三) Theme:文字雲製作 2. 处理中文资料 STEP 2:安裝和載入所需的套件 開啟RStudio,在命令列中輸入以下指令: #?安裝套件? install.packages("rvest")??????#?"网页分析"用? install.packages("jiebaR")?????#?"中文斷詞"用? install.packages("tm")?????????#?"文字探勘"用? install.packages("wordcloud2")?#?產生"文字雲"用? #?載入套件? library("rvest") library("jiebaR")? library("tm") library("wordcloud2")
  • 47. (三) Theme:文字雲製作 2. 处理中文资料 STEP 3:進行"文字探勘" 在Chrome 點選"開發人員工具" (亦可按下"F12"鍵)
  • 48. (三) Theme:文字雲製作 2. 处理中文资料 STEP 3:進行"文字探勘" 利用選取工具找到段落後,在對應節點按右鍵 1 2 圈選文章後,點選"Copy Xpath"
  • 49. (三) Theme:文字雲製作 2. 处理中文资料 STEP 3:進行"文字探勘" 將取得的Xpath 貼在記事本上(稍後會用到) //*[@id="summary"]文章的Xpath: 任何一個可以貼上文字的地方
  • 50. (三) Theme:文字雲製作 2. 处理中文资料 STEP 3:進行"文字探勘" #?擷取網頁內容,將網頁下載後存入"source.page" 物件? source.page?<??read_html( "http://www.appledaily.com.tw/realtimenews/article/life/20161016/968938/" )? #?利用?Xpath?取得文章內容? source.content?<??html_nodes(source.page,?xpath?=? '//*[@id="summary"]' )? #?取得?HTML?中的文字資料? content?<??html_text(source.content) ? #?顯示資料?(此時文章仍包含多餘字元)? content? #?啟用?jiebaR?套件裡的斷詞引擎? mixseg?=?worker() ? content.vec?<??segment(code?=?content,?jiebar?=?mixseg) ? 在命令列中輸入以下指令:
  • 51. (三) Theme:文字雲製作 2. 处理中文资料 STEP 3:進行"文字探勘" 在命令列中輸入以下指令: space_tokenizer?=? function(x){? ????unlist(strsplit(as.character(x[[ 1]]),?'[[:space:]]+' ))? }? jieba_tokenizer?=? function(d){? ????unlist(segment(d[[ 1]],?mixseg)) ? }? #?撰寫?CNCorpus? 副程式? ####?CNCorpus?Function?Start?#### ? CNCorpus?=? function(d.vec){? ??? ????doc?<??VCorpus(VectorSource(d.vec)) ? ????doc?<??unlist(tm_map(doc?,jieba_tokenizer),?recursive?=? F)? ????doc?<??lapply(doc?, function(d)paste(d,?collapse?=? '?'))? ????Corpus(VectorSource(doc)) ? }? ####?CNCorpus?Function?END?#### CNCorpus 副程式:將內容以"語料庫"的形式儲存
  • 52. (三) Theme:文字雲製作 2. 处理中文资料 在命令列中輸入以下指令: content.corpus?=?CNCorpus(list(content.vec))????#?執行?CNCorpus?副程式? content.corpus?<??tm_map(content.corpus,?removeNumbers)????#?移除數字? control.list?=?list(wordLengths?=?c(2,?Inf),tokenize?=?space_tokenizer)? content.dtm?<??DocumentTermMatrix(content.corpus,?control?=?control.list)? inspect(content.dtm)????#?檢查內容 STEP 4:製作"字詞矩陣"
  • 53. (三) Theme:文字雲製作 2. 处理中文资料 在命令列中輸入以下指令: frequency?<??colSums(as.matrix(content.dtm))? frequency?<??sort(frequency,?decreasing?=?TRUE)[1:100]? wordcloud2(as.table(frequency),?fontFamily?=?'微软雅黑',?shape?=?'star') STEP 5:產生"文字雲"
  • 55. http://datascienceandr.org/ (四) Reference:學習資源 1. R 語言翻轉教室- Wush Wu、Chih Cheng Liang、Johnson Hsieh 一、中文教材 2. 手把手教你R 語言資料分析實務?- 張毓倫&陳柏亨 http://goo.gl/18mwug 3. R 軟體與資料探勘之開發與應用- 陳志華 https://goo.gl/NPdzzP 二、英文教材 1. DataCamp https://www.datacamp.com/ 線上教材 2. R for Data Science http://r4ds.had.co.nz/
  • 56. 推薦書籍 R 軟體資料分析基礎與應用 作者:Jared P. Lander ? 譯者:鍾振蔚 出版社:旗標 (四) Reference:學習資源
  • 57. 相關社群 Taiwan R User Group https://www.facebook.com/Tw.R.User/ 台湾资料科学年会 https://www.facebook.com/twdsconf/ 資料視覺化/ Data Visualization https://www.facebook.com/data.visualize/ (四) Reference:學習資源
  • 58. Q & A