1. Learn
  2. /
  3. คอร์ส
  4. /
  5. R 中使用 sparklyr 的 Spark 入门

Connected

แบบฝึกหัด

不仅仅是词:分词(1)

文本挖掘的常见用途包括:分析购物评价以判断购买者对产品的感受,或分析财经新闻以预测对股价的情绪倾向。要分析文本数据,常见的预处理步骤包括将文本转换为小写(参见 tolower()),以及将句子拆分为单词。

ft_tokenizer() 可同时完成这两个步骤。它的用法与您之前见到的其他转换相同,无需额外参数。

shop_reviews %>%
  ft_tokenizer("review_text", "review_words")

由于每一行的输出可能包含不同数量的单词,output.col 是一个列表列,其中每个元素都是字符串列表。为便于分析文本数据,通常希望数据中每行只包含一个单词。可以使用 tidyr 包中的 unnest() 将"列表的字符串列表"这种格式转换为单一的字符向量。当前在 Spark 上尚无直接展开列表的方式,因此需要先收集到 R,再进行转换。相应的代码模式如下所示。

library(tidyr)
text_data %>%
  ft_tokenizer("sentences", "word") %>%
  collect() %>%
  mutate(word = lapply(word, as.character)) %>%
  unnest(word)

如果您想进一步学习 tidyr 包的用法,推荐参加 Cleaning Data in R 课程。

คำแนะนำ

100 XP

已经为您创建了名为 spark_conn 的 Spark 连接。已在 Spark 中预定义了指向曲目元数据的 tibble,名称为 track_metadata_tbl。

  • 从 track_metadata_tbl 创建名为 title_text 的变量。
    • 选择 artist_name 和 title 字段。
    • 使用 ft_tokenizer() 创建新字段 word,其中包含将标题按单词拆分后的结果。
    • 收集结果。
    • 对 word 列进行变换,使用 lapply 和 as.character 将其展平成字符向量列表。
    • 使用 unnest() 展平该列表列,使数据按每行一个单词的形式呈现。