⊙沒有資訊工程背景的文科生也能學會程式語言,適合人文社會科學領域之學生、研究人員自學。
⊙理論與實作兼具,深入淺出說明用R語言執行文字探勘的流程及方法,操作步驟清楚易懂。
⊙內容包含資料清理、斷詞和詞頻、情緒分析和字典法、tf-idf計算和應用、主題建模、機器學習、語意網絡的社會網絡分析,以及網站資料的抓取等。
【自學R語言,順利掌握文字探勘】
文字探勘是以文字作為分析的資料,藉由技術識別、擷取有價值的部分,有系統地管理、整合和應用文字所提供的訊息,像社群網站上常見的「文字雲」即是一種。
本書針對中文透過R語言操作基礎的文字探勘,從人文社會科學領域闡述編程的概念,可使自學者更容易掌握文字探勘的技能。內容包含了解R、文字資料的清理、斷詞和詞頻、情緒分析和字典法、tf-idf值的計算和應用、主題建模、機器學習、詞的關係、語意網絡的社會網絡分析,以及網站資料抓取等。
作者簡介:
譚躍
現職:國立中山大學管理學院行銷傳播管理研究所副教授
學歷:PhD,2008年畢業於Indiana University Bloomington的新聞學院
經歷:國立中山大學管理學院行銷傳播管理研究所博士後
章節試閱
Chapter 2 讀入與初步了解R資料
第一節 前言
程式碼為電腦能聽懂的語言。學習程式碼,就像學習英文單字一樣,經過日月的積累,就會越來越多,當能記住最基本的100個左右的基本用語,就可以較自由地與電腦對話了。至於較困難的詞,可以查查字典。透過邊用邊學,詞彙就會越來越豐富,表達起來就越來越自由。
R自己本身所具有的程式碼,包含最基本的功能,稱為Base R。Base R中所包括的指令,不用安裝任何套件,R就可以讀得懂,並且執行。
關於Base R的指令,建議下載RStudio線上免費的Cheat Sheet(https://www.rstudio.com/resources/cheatsheets/),它包含Base R的主要指令,用圖形化的方式給予應用上的講解。
第二節 設定R的工作環境
一、設定工作的編碼系統
文字探勘比較特別的地方是以文字作為分析的資料。因為各國的文字不同,編碼系統就不同。即使同樣是中文,也需要統一成一致的編碼系統,才不會出現亂碼。一般來說,研究者會先告訴R,所處的區域是哪裡,它就會自動轉換成那個區域最常見的編碼系統。R的中文系統是uni-code 6。程式碼如下:
設定區域:
sys.setlocale(locale="cht")
RStudio有四個窗口。左上角是程式區,左下角是指令區,詳細說明可以參考第一章。視窗的右上角是「物件區」,剛開始會呈現空白。下述會先介紹「檔案區」,再對物件區進一步說明。
二、設定工作資料夾
如同一般的電腦操作一樣,當讀取資料的時候,需要告訴電腦在哪裡讀資料,也就是提供資料檔所在資料夾的路徑。比較特別的是,R會在一個固定的資料夾中工作,這個固定的資料夾叫做「工作資料夾」。當你的程式碼沒有特別指定其他資料夾時,R都在工作資料夾中工作,包括讀取舊檔案和儲存成新檔案。因此在讀取資料前,需要先設定工作資料夾。寫程式碼如下:
設定工作資料夾:
setwd(" 路徑名稱")
用戶也可以在右下角檔案區Files這個菜單裡,用點選的方式。
點選的目的地就是用戶要讀取資料的地方,這個地方還會成為默認的工作資料夾,電腦之後再讀取或儲存資料,都會在這個資料夾裡進行。進入這個資料夾後,就要把它設置成Working Directory。先點More的下拉菜單,然後選取Set As Working Directory,這樣電腦就會記住這裡是工作資料夾,也就是它讀取和存儲檔案的地方了。
Chapter 2 讀入與初步了解R資料
第一節 前言
程式碼為電腦能聽懂的語言。學習程式碼,就像學習英文單字一樣,經過日月的積累,就會越來越多,當能記住最基本的100個左右的基本用語,就可以較自由地與電腦對話了。至於較困難的詞,可以查查字典。透過邊用邊學,詞彙就會越來越豐富,表達起來就越來越自由。
R自己本身所具有的程式碼,包含最基本的功能,稱為Base R。Base R中所包括的指令,不用安裝任何套件,R就可以讀得懂,並且執行。
關於Base R的指令,建議下載RStudio線上免費的Cheat Sheet(https://www.rstud...
作者序
跟所有人一樣,從來沒有想過自己會出版一本寫著自己名字的書,特別是一本跨領域的關於電腦編程的書。
在思考很久以後,主要出於兩個目的而寫了這本書。第一,是提供給我在國立中山大學行傳所開設的「電腦內容分析和社會網絡分析」這門課的同學一本實用的教科書。從2017年開始,我已經教這門課7次了。選修這堂課的同學通常不多,可能的原因是大家都很害怕用R語言來寫電腦程式。學習電腦語言程式就好像學一門新的語言,因此需要背很多內容。同學們通常聽完一節課,就被各種各樣的電腦指令給嚇壞了。就像學習一門新語言需要一本好用的字典,同學們需要有一個羅列不同場景中完成不同任務所需要之程式碼的教科書,可以隨時查找。我常說不用硬記程式碼,只要會copy和paste就好了。我自己也是只記住了很少量的程式碼,每次分析資料都會回頭查看過去的筆記。之後,有了這本書,寫程式碼應該就方便多了。
寫這本書的第二個目的,是幫助人文社會科學領域沒有編程基礎的同學或學者自學文字探勘的技能。常常有老師向我表示,他們也想學習文字探勘的技能,請教該如何入門。我常常說不太清楚,因為編寫電腦程式的細節太多了。因此,我會推薦他們去讀Julia Silge和David Robinson的Text Mining with R—也是我自學入門所用的書,但我心裡知道,那本書主要是針對英文的文字探勘,若要應用到中文的文字分析,自學者需要走很多的彎路。如果有一本中文文字探勘的書,並且是從人文社會科學領域闡述編程的概念,會使自學者更加容易掌握文字探勘的技能。本書的大部分內容並不是我創造的,而是在遇到教學和研究上的問題之後,於網路上找到的答案。很多國內外的學習夥伴,無私地在網路上分享他們研究的心得、疑問和答案,我主要做的工作就是按照文字探勘研究的流程,把這些內容系統性地歸納在一起。
我對這本著作又愛又恨,恨它的原因主要是每次重讀都發現有錯誤,包括錯誤的描述和跑不出來的程式碼。客觀上,是因為R作為open source的程式語言,每個套件的作者都在更新和修改他們的功能,很多去年跑得出來的程式碼,今年就跑不出來了。主觀上,是我自己也在學習過程中,受限於知識,過去覺得對的描述,現在卻覺得是錯的或者不夠準確。因此,如果讀者發現了任何錯誤和值得探討的地方,都歡迎寫信給我(yuetan@mail.nsysu.edu.tw)。
我由衷感謝,如果沒有我認真、可愛又能幹的助理蘇靖雅,自己一定不可能完成這本書。感謝她細心的校對,使一堆雜亂的資料變成了一本書。也要特別感謝我之前的助理任軒立在資料爬取上所給的指教。還要感謝成大統計學系的李政德老師和中研院的江彥生老師,在我課堂上分別針對機器學習和社會網絡分析所提供的精彩演講,本書很多相關的內容都來自於兩位老師精辟的講解。最後,當然是感謝認真上課的同學們,在授課課程中給了我無數次省思的機會。
最後的最後,感謝愛我的上帝給我一切的資源和機會。希望這本書對你有幫助。上帝祝福你。
譚躍
2023年7月29日於美國印地安納州布魯明頓市
跟所有人一樣,從來沒有想過自己會出版一本寫著自己名字的書,特別是一本跨領域的關於電腦編程的書。
在思考很久以後,主要出於兩個目的而寫了這本書。第一,是提供給我在國立中山大學行傳所開設的「電腦內容分析和社會網絡分析」這門課的同學一本實用的教科書。從2017年開始,我已經教這門課7次了。選修這堂課的同學通常不多,可能的原因是大家都很害怕用R語言來寫電腦程式。學習電腦語言程式就好像學一門新的語言,因此需要背很多內容。同學們通常聽完一節課,就被各種各樣的電腦指令給嚇壞了。就像學習一門新語言需要一本好用...
目錄
Chapter 1 R語言下載與設置
第一節 R軟體下載
一、前言
二、R下載教學
第二節 介紹R
一、R介面與設置
第三節 RStudio下載
一、RStudio下載教學
第四節 介紹RStudio
一、RStudio介面與設置
Chapter 2 讀入與初步了解R資料
第一節 前言
第二節 設定R的工作環境
一、設定工作的編碼系統
二、設定工作資料夾
第三節 將資料讀入R
一、將不同形式的檔案讀入R
二、物件命名
三、執行R程式
第四節 了解R資料
一、透過物件區的菜單鳥瞰
二、指代資料中變項和觀察值
三、描述R的資料特徵
四、以圖形呈現變項的特徵
第五節 儲存資料
Chapter 3 資料的初步清理:使用dplyr
第一節 前言
一、安裝套件
第二節 用dplyr整理資料
一、重新排列資料(遞增、遞減)
二、選擇資料
三、刪除資料
四、修改變項
五、概括內容資料(樣本)的特徵
六、分組處理的功能
Chapter 4 資料的進階清理
第一節 前言
第二節 增加變項
一、直接產生並賦值
二、從舊變項產生
三、從文字變項(strings)中提取
第三節 清理文字資料(strings)
一、strings的清理功能介紹
二、查找
三、替換
四、黏貼
第四節 編碼員間編碼信度
一、隨機抽取樣本
二、交叉編碼
三、計算編碼員間信度或電腦與編碼員間效度
第五節 畫資料的時間序列圖
一、介紹
二、計算每天的報導量
三、定義時間變項
四、使用ggplot2畫圖
Chapter 5 斷詞和詞頻
第一節 前言
第二節 斷詞
一、基本概念介紹
二、使用tidytext的unnest_tokens指令斷詞
三、計算詞頻
四、套用停頓詞字典
五、畫圖
六、套用用戶字典
七、使用jiebaR斷詞
第三節 詞頻分析
一、描述一整個文集
二、比較不同文集之間的差異
Chapter 6 情緒分析和字典法
第一節 前言
第二節 情緒分析簡介
第三節 字典法和常用的情緒字典
第四節 情緒詞的詞頻計算
第五節 情緒分析的研究應用
一、套用和驗證字典
二、更精準的情緒測量
三、考察情緒分數與其他變項之間的關係
Chapter 7 tf-idf值的計算和應用
第一節 tf-idf的概念介紹
第二節 tf-idf的計算
第三節 tf-idf的應用
一、比較不同文類的獨特性
二、在機器學習中代表文檔的內容特徵
三、作為過濾關鍵詞的標準
第四節 其他過濾關鍵詞的方法
第五節 文字探勘結果的統計分析
Chapter 8 主題建模
第一節 前言
第二節 LDA的原理和應用步驟
一、第一步:斷詞
二、第二步:詞彙向量化、尺度縮減及製作dtm
三、第三步:決定最佳主題數目
四、第四步:進行主題建模並為主題命名
五、 第五步:考察每個主題和metadata之間的關係
六、第六步:報告主題出現的比例、資料檔合併
第三節 K-means的原理和應用步驟
Chapter 9 有監督式的機器學習
第一節 機器學習在文字探勘的應用
第二節 機器學習的定義和基本步驟
第三節 機器學習的程式碼練習:迴歸模型
一、讀入有標示的資料,並分成訓練集和測試集
二、分別對訓練集和測試集的文字資料建立dfm
三、使用演算法從訓練集中學習,建立一個模型
四、用模型預測測試集中的資料
五、測量表現(measure model performance)
六、用訓練好的模型預測未標示的資料
第四節 機器學習的程式碼練習:分類模型
一、SVM(SUPPORT VECTOR MACHINE)
二、LOGISTIC REGRESSION
三、NAÏVE BAYES
四、WORDSCORES TEXT MODEL
Chapter 10 詞的關係
第一節 前言
第二節 Bigram及其應用
一、Bigram的製作
二、Bigram的詞頻計算
三、Bigram的應用
第三節 共現詞(concordance)
一、詞的關係一:出現在同一篇文章中
二、詞的關係二:出現在一定的距離內
Chapter 11 語意網絡的社會網絡分析
第一節 前言
第二節 社會網絡分析的重要概念介紹
第三節 讀入網絡資料
第四節 網絡資料的形式和轉換
一、網絡資料的基本形式
二、網絡資料不同形式之間的轉換
三、Two-mode data
第五節 語意網絡的描述性分析
一、整體網絡分析
二、節點分析
三、組和次團體的分析(subgroups and communities)
第六節 分析兩個網絡的關係
一、比較兩個網絡的相似程度
二、計算兩個網絡之間的相關程度
三、考察多個網絡之間的關係
Chapter 12 抓取網站資料
第一節 前言
第二節 觀察資料
一、了解資料型態
二、觀察原始碼
第三節 資料抓取
一、套件介紹
二、抓取一篇文章
三、抓取一頁搜尋頁面的所有文章
四、抓取所有搜尋頁面的所有文章
參考文獻
Chapter 1 R語言下載與設置
第一節 R軟體下載
一、前言
二、R下載教學
第二節 介紹R
一、R介面與設置
第三節 RStudio下載
一、RStudio下載教學
第四節 介紹RStudio
一、RStudio介面與設置
Chapter 2 讀入與初步了解R資料
第一節 前言
第二節 設定R的工作環境
一、設定工作的編碼系統
二、設定工作資料夾
第三節 將資料讀入R
一、將不同形式的檔案讀入R
二、物件命名
三、執行R程式
第四節 了解R資料
一、透過物件區的菜單鳥瞰
二、指代資料中變項和觀察值
三、描述R的資料特徵
四、以圖形呈現變項的特...
購物須知
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。