好書試閱

社會科學的文本分析:R的應用(第1版)

95特價399
加入購物車
下次再買
第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%的存儲空間。這也使得處理速度更快。
金石堂門市 全家便利商店 ok便利商店 萊爾富便利商店 7-11便利商店
World wide
活動ing