Liz's Blog

就是要學R #18:機器學習之自然語言處理(NLP)實作篇

| Comments

自然語言處理(Natural Language Processing, NLP)算是應用在我們周遭最常見的機器學習之一,詳細可參考這篇What are You Doing in the NLP & MT Labs ??。學習之前,我也先複習了R Programming 進階篇機器學習之Support Vector Machine(SVM)實作篇

Udemy
課程名稱:Data Science and Machine Learning Bootcamp with R
講師:Jose Portilla

1.複習Regular Expression函式

#使用args()可查詢函式的基本設定
args(grep)

#grep()常用於搜尋時,會輸出搜尋字串的位置
grep('好', c('今','天','你','好','嗎'))

#nchar()輸出字串的長度
nchar('HiHi')

#gsub()取代功能
gsub('Susan','Tom','Did you see Susan today?')

#paste()將不同字串放在一起
print(paste('B','I','G',sep='...'))

#substr()只取指定範圍的字串
substr('Natural',start=1,stop = 4)

#strsplit()將字串分開
strsplit('2017-10-06',split='-')

2.除了下載並套入安裝下列套件,並建立一個Twitter App,取得consumer_key、consumer_secret、access_token、access_secret,因為這個主題講師是利用Twitter來做文字探勘。

install.packages('tm')
install.packages('twitteR')
install.packages('RColorBrewer')
install.packages('wordcloud')
library(tm)
library(twitteR)
library(RColorBrewer)
library(wordcloud)
library(e1071)
library(class)

3.把剛剛申請的Twitter app的consumer_key、consumer_secret、access_token、access_secret輸入。

setup_twitter_oauth(consumer_key, consumer_secret, access_token, access_secret)

#開始設定搜尋特定主題
Trump.tweets <- searchTwitter("Trump", n=2000, lang="en")
Trump.text <- sapply(Trump.tweets, function(x) x$getText()

4.整理資料

#移除表情符號
Trump.text <- iconv(Trump.text, 'UTF-8', 'ASCII')

#建立語料庫
Trump.corpus <- Corpus(VectorSource(Trump.text))

5.使用tm套件中的TermDocumentMatrix函式,把欲搜尋的主題轉成vector

term.doc.matrix <- TermDocumentMatrix(Trump.corpus,
                                      control = list(removePunctuation = TRUE,
                                                     stopwords = c("https", stopwords("english")),
                                                     removeNumbers = TRUE,tolower = TRUE))

6.將term.doc.matrix轉成matrix

term.doc.matrix <- as.matrix(term.doc.matrix)

7.先利用rowSums()將橫排總數加起來,再利用sort()排序,接著再利用資料框架把各字詞及字頻列出來

word.freqs <- sort(rowSums(term.doc.matrix), decreasing=TRUE) 
dm <- data.frame(word=names(word.freqs), freq=word.freqs)

8.建立文字雲

wordcloud(dm$word, dm$freq, random.order=FALSE, colors=brewer.pal(8, "Dark2"))

【延伸閱讀】
1.就是要學R #1:Basic 基礎篇
2.就是要學R #2:Matrix 矩陣篇
3.就是要學R #3:Data Frame 資料框架篇
4.就是要學R #4:List 列表篇
5.就是要學R #5:Import & Export 匯入匯出篇(csv & excel)
6.就是要學R #6:Import & Export 匯入匯出篇(SQL & web scraping)
7.就是要學R #7:R programming 基礎篇
8.就是要學R #8:R Programming 進階篇
9.就是要學R #9:資料前處理篇(dplyr、tidyr)
10.就是要學R #10:ggplot2幫你搞定資料視覺化
11.就是要學R #11:資料視覺化應用篇(ggplot2、Plotly)
12.就是要學R #12:機器學習之線性迴歸實作篇
13.就是要學R #13:機器學習之邏輯迴歸實作篇
14.就是要學R #14:機器學習之K Nearest Neighbor(KNN)實作篇
15.就是要學R #15:機器學習之決策樹、隨機森林實作篇
16.就是要學R #16:機器學習之Support Vector Machine(SVM)實作篇
17.就是要學R #17:機器學習之K Means Clustering實作篇
18.就是要學R #18:機器學習之自然語言處理(NLP)實作篇
19.就是要學R #19:機器學習之類神經網路(Neural Net)實作篇

Comments

comments powered by Disqus