社會科學的文本分析:R的應用
作  者╱
曾文鐽
出版社別╱
五南
書  系╱
研究&方法
出版日期╱
2025/08/19   (1版 1刷)
  
即日起五南舊官網僅提供書籍查詢,如欲購書,請至五南新官網 https://www.wunan.com.tw/
I  S  B  N ╱
978-626-423-701-7
書  號╱
1HAZ
頁  數╱
196
開  數╱
16K
定  價╱
420
教學資源╱
投影片((外加))



☉系統化學習路徑
從文本分析基礎概念、語料庫結構探索、文本資料視覺化,到聚類辨識文本相似性、情感分析與機器學習,循序漸進,逐步搭建完整框架。
☉理論結合實作
透過豐富案例與步驟式操作指南,引導讀者使用R及quanteda等套件,立即動手建立可複製的文本分析工作流程。
☉橫跨社科、文學與商業
聚焦「以問題為導向」的應用場景,協助研究者與實務工作者有效解讀文本數據,洞察人類行為與社會脈動。

     在數據驅動的時代,文本分析是揭示人類語言奧祕的關鍵方法。本書以R與quanteda生態系為核心,示範如何從語料庫中挖掘模式、趨勢與洞見,助力學術研究,也為政策、商業與社會決策提供實證基礎。
  全書循序漸進:
1. 語料庫結構與預處理:分詞、N-gram、TF-IDF等基礎技術。
2. 聚類與相似性分析:以階層與K-means等方法刻畫文本關係。
3. 情感分析與機器學習:結合SVM、隨機森林等模型,完成精細分類與預測。
     每章均附完整R程式碼、真實案例與圖形化流程,讀者可即學即用,迅速將方法轉化為學術或業界成果。

曾文鐽

現職:
國立臺灣科技大學應用外語系教授

學歷:
英國諾丁漢大學博士

經歷:
國立臺灣師範大學英語系助理教授、副教授
國立臺灣科技大學應用外語系副教授

第1章 文本分析簡介
什麼是文本分析?
透過文本洞察力提取數據
結語
文本分析工作流程
 原始文本
 矩陣表示
 分析
準備:練習使用R進行文本分析
 步驟1:載入quanteda套件
 步驟2:使用print()探索語料庫
 步驟3:使用tokens()對語料庫進行字元化處理
 步驟4:使用dfm()創建文檔-特徵矩陣
 步驟 5:使用textplot_wordcloud()創建文字雲
第1章總結

第2章 探索語料庫的結構
 步驟1:載入quanteda
 步驟2:檢視語料庫並提取文件變數
 步驟3:使用SOTU語料庫重現分析
詞彙字元化
 步驟1:載入quanteda
 步驟2:對語料庫進行詞彙字元化處理
 步驟3:使用kwic()探索字元化的語料庫
在R中創建文檔-特徵矩陣
 步驟1:載入quanteda
 步驟2:對語料庫進行字元化處理
 步驟3:創建文檔-特徵矩陣
 步驟4:選擇dfm特徵
第2章總結

第3章 文本數據的視覺化呈現
條形圖
詞彙分布圖
關鍵度繪圖
相關描述性統計
摘要統計
 頻率
 可讀性
 詞彙多樣性
關鍵詞分析
 步驟1:載入套件
 步驟2:對語料庫進行字元化處理
 步驟3:創建文檔-特徵矩陣
 步驟4:執行命令獲取摘要統計資料
 步驟5:將匯總統計資料轉換為相關的視覺化圖形
第3章總結

第4章 在R中應用聚類技術識別文本相似性
視覺化聚類算法
K-均值聚類
 選擇一個K值
 手肘法
 層次聚類
 終止點的確認
 樹狀圖
 方法比較
計算R中的二元統計量
 步驟1:加載套件和語料庫
 步驟2:字元化並創建文檔-特徵矩陣
 步驟3:使用textstat_simil()進行相似度計算
 步驟4:使用textstat_dist()進行距離計算
聚類美國總統演講
 步驟1:加載套件和語料庫
 步驟2:字元化並創建文檔-特徵矩陣
 步驟3:K-均值聚類和層次聚類
 繪製距離和K-均值聚類
繪製層次聚類
第4章總結

第5章 情感分析
情感分析工作流程
執行情感分析
 步驟1:載入和探索語料庫
 步驟2:對資料進行字元化
 步驟3:識別極端文本中最常見的單詞
 步驟4:應用情感詞典進行情感分析
 步驟5:情感分析
 步驟6:視覺化
第5章總結

第6章 機器學習
分類的應用案例
單純貝氏分類模型
線性支援向量機(Linear Support Vector Machines)
混淆矩陣(Confusion Matrix)
評估R中的分類模型
 步驟1:載入套件和語料庫
 步驟2:對資料進行字元化並創建dfm
 步驟3:創建訓練集和測試集
 步驟4:擬合單純貝氏分類器
 步驟5:進行準確性測試
 步驟6:進行交叉驗證
第6章總結

第7章 結論與未來研究展望
旅程回顧
實踐之旅
展望未來
第7章總結

第8章 附件:R指令整理
第1章:文本分析簡介
 1. 基本操作函數
 2. quanteda套件函數
第2章:探索語料庫的結構
 1. 語料庫處理
 2. 字元化處理
 3. 關鍵詞文脈分析(KWIC)
 4. 文檔-特徵矩陣(DFM)
 5. 其他分析與應用
第3章:文本數據的視覺化呈現
 1. 文字雲相關函數
 2. 條形圖與相關統計函數
 3. 詞彙分布與關鍵度繪圖函數
 4. 可視化繪圖函數
第4章:在R中應用聚類技術識別文本相似性
 1. 文本預處理相關函數
 2. 相似性與距離計算函數
 3. K-均值聚類相關函數
 4. 層次聚類相關函數
 5. 視覺化繪圖相關函數
第5章:情感分析
 1. 載入與探索語料庫相關指令
 2. 資料字元化相關指令
 3. 文檔-特徵矩陣(DFM)操作相關指令
 4. 關鍵字和文字雲相關指令
 5. 情感詞典相關指令
 6. 資料框轉換與操作指令
 7. 視覺化相關指令
第6章:機器學習
 1. 載入與探索數據相關指令
 2. 資料分割與訓練測試集相關指令
 3. 單純貝氏分類相關指令
 4. 支援向量機(SVM)相關指令
 5. 模型性能評估相關指令
 6. 交叉驗證相關指令
 7. 可視化相關指令

管理學質性與量
化混合研究方法
概論
如何撰寫文獻回
顧:給社會與行
為科學領域學生
的寫作指南
整合分析軟體C
MA:簡介與操
作實務
Python量
化研究實作:D
eepnote
雲端平台應用
SPSS操作與
應用:問卷統計
分析實務(附資
料檔)
結構方程模型分
析:JASP的
運用


投影片((外加))

若要索取未隨書附送(外加)且未於此提供下載的教學資源,請詳洽業務人員(02-27055066#824)(僅提供教師使用)


第1章 文本分析簡介
準備:練習使用R進行文本分析
  在本節的練習活動中,我們將使用R語言的quanteda套件進行文本分析的準備。本節使用的範例文本為美國總統的就職演說。
  每個程式碼區塊前都有解釋文字。我們需要閱讀這些文字並自行執行每個步驟的程式碼。程式碼中使用的語法和標點符號會影響R中命令的功能,因此將它們記錄下來是很重要的。
步驟1:載入quanteda套件
  首先,使用library()函數載入每個會話中所使用的套件。library()函數會在預先安裝的套件庫中尋找指定套件的名稱。因此,我們必須先安裝該套件,然後才能使用library()函數載入它。載入套件後,將其命名空間附加到當前會話,使我們可以使用套件中的所有功能。在載入quanteda套件時,可以使用tokens()參數和其他資料物件,如美國總統就職演說語料庫(data_corpus_inaugural)。語料庫是一個資料物件,包含演說的內容。
  第一次載入套件時,輸出會顯示我們所使用的版本。因此,quanteda套件的版本應該≥3.0。
步驟2:使用print()探索語料庫
  現在我們可以存取美國總統就職演說語料庫,這是quanteda套件中的一個語料庫(文本數據集)。可以執行data(package="quanteda")來查看quanteda套件中的五個數據集。透過對資料物件(即語料庫)執行print()函數,我們可以看到資料物件的簡要摘要,包括文檔數量和文檔內的變數。摘要中列出了每個文檔的標題,以年分為開頭,接著是演講的總統,以及每個項目的第一行。這個語料庫是quanteda套件的一部分,因此我們只需引用它的名稱data_corpus_inaugural即可。
  讓我們來探索一個內置的語料庫物件,這個物件將在本書許多示例中使用到。這個語料庫稱為data_corpus_inaugural,使用單詞「data」告訴我們這是一個數據物件。名稱的第二部分「corpus」告訴我們這是一個語料庫數據類型。名稱的第三部分「inaugural」表示該語料庫包含了就職演講。在Quanteda中,為每個特殊類型的物件定義了輸出方法,當我們輸出它時,會得到一些摘要資訊,讓我們對物件有些微的了解,了解它包含的一些資訊。在這種情況下,它包含了59個文檔。它顯示了前6個文檔的片段。它還告訴我們還有53個文檔沒有完整顯示。在頂部,它還告訴我們有4個文檔變量,或者說文檔級別的詮釋資料。
步驟3:使用tokens()對語料庫進行字元化處理
  現在我們可以嘗試對語料庫進行字元化。再次使用print()函數,檢查新建的tokens物件中前幾個文檔的前幾個字元。字元(token)是一系列以有意義的語意單位(如單詞和命名實體)為組的字符序列,通常以空格隔開。透過使用tokens()函數將字元化的語料庫賦值給新建的物件(在本例中為toks),可以使用物件名(即toks)檢索該物件。在這種情況下,物件是要執行該函數的語料庫。
  我們可以使用tokens函數對這個語料庫進行字元化。當我們執行這個代碼塊並列印結果時,我們可以看到物件已被字元化,透過將它們根據分隔不同單詞、標點符號、數字等的空格進行分割。以字符向量的形式顯示了由tokens命令字元化或分割的字元。並提醒我們在這個物件中有4個文檔變量。這些文檔變量存在語料庫中,在tokens物件中也存在。
步驟4:使用dfm()創建文檔-特徵矩陣
  現在我們可以運用這個tokens物件使用dfm()函數來創建文檔-特徵矩陣(dfm)。dfm編譯了語料庫中字元類型和文檔的計數。關於dfm的具體內容,我們將在第2章中進一步了解。
  為了使用dfm命令創建一個文檔-特徵矩陣,我們需要先使用tokens命令將物件進行字元化。在這種情況下,我們將其賦值給toks。我們可以將這個dfm物件賦值給DFmat。然後我們可以列印它,這會調用quanteda的一個特殊方法,給我們展示從dfm命令創建的矩陣物件的一小部分。再次,它告訴我們有59個文檔和4個文檔變量。9,437個特徵告訴我們這些字元現在成為了我們矩陣的列,我們稱之為特徵。我們可以看到列印出的前10個特徵。特徵本身是跨越矩陣頂部列的標簽。文檔的名稱是我們在矩陣左側看到的欄名。在顯示中,由於不能將所有10個特徵放在一行上,所以它們被簡單地換行。在底部,再次提醒我們還有53個文檔沒有顯示出來,另外9,427個特徵也沒有顯示。
  91.84%的稀疏度表示在這個矩陣中有91.84%的單元格為空。例如:1793年的華盛頓演講中沒有使用「fellow citizens」這個詞,儘管他1789年的演講中使用了這個詞。quanteda中的稀疏矩陣特性讓單元格的計數為零時,我們不必記錄任何內容。透過將其記錄為稀疏矩陣,而不是密集矩陣,我們能夠節省91.84%的存儲空間。這也使得處理速度更快。