开始使用免费开始使用

对句子进行词干提取与词干还原

本练习把下面这句话当作我们的文档:

"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
编辑并运行代码