開始使用免費開始

對一句話做詞幹提取與詞幹還原

把下面這句話當作本題的文件:

"In a complicated haste, Tom rushed to fix a new complication, too complicatedly."

這句話包含了和上一題相同、源自「complicate」的三種詞形。不同的是,即使你對這句話呼叫 stemDocument(),它也會原封不動地回傳整句,沒有對任何單字做詞幹提取。先在主控台試試看吧,記得把標點符號也包含進去。

之所以會這樣,是因為 stemDocument() 把整句話當成一個單字。也就是說,我們的文件是長度為 1 的字元向量,而不是長度為 n(n 為文件中的單字數)。為了處理這個問題,我們先用你在前面幾題學過的 removePunctuation() 移除標點符號。接著對這個長度為 1 的字元向量使用 strsplit() 切成長度為 n,再用 unlist(),然後進行詞幹提取並做詞幹還原。

如果剛剛的說明有點抽象,別擔心。我們會一步一步帶你完成!

本練習屬於課程

R 的 Bag-of-Words 文本探勘

檢視課程

練習說明

工作空間已載入文件 text_data 與補全字典 comp_dict

  • 使用 removePunctuation() 移除 text_data 中的標點符號,指定給 rm_punc
  • rm_punc 為輸入呼叫 strsplit(),並將引數 split 設為 " "。將此呼叫巢狀於 unlist() 中,指定給 n_char_vec
  • 再次使用 stemDocument()n_char_vec 進行詞幹提取,指定給 stem_doc
  • 使用 stemCompletion() 搭配參考語料庫 comp_dict,將詞幹文件還原為 complete_doc

stem_doccomplete_doc 的結果有符合你的預期嗎?」

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Remove punctuation: rm_punc
rm_punc <- ____

# Create character vector: n_char_vec
n_char_vec <- unlist(___(___, split = " "))

# Perform word stemming: stem_doc
stem_doc <- ___

# Print stem_doc
stem_doc

# Re-complete stemmed document: complete_doc
complete_doc <- ___

# Print complete_doc
complete_doc
編輯並執行程式碼