首页 > 解决方案 > ft_tokenizer 将单词标记为更低,我希望它保持原样

问题描述

我在 R 中将 ft_tokenizer 用于 spark 数据帧。它对每个单词进行标记并将其更改为更低,我希望单词采用它们最初的格式。

text_data <- data_frame(
  x = c("This IS a sentence", "So is this")
)

tokenized <- text_data_tbl %>%
  ft_tokenizer("x", "word")


tokenized$word
## [[1]]
## [[1]][[1]]
## [1] "this"
## 
## [[1]][[2]]
## [1] "is"
##
## [[1]][[3]]
## [1] "a"

我想:

tokenized$word
## [[1]]
## [[1]][[1]]
## [1] "This"
## 
## [[1]][[2]]
## [1] "IS"
##
## [[1]][[3]]
## [1] "a"

标签: rapache-sparkapache-spark-sqlsparkrsparklyr

解决方案


我想这是不可能的ft_tokenizer。从?ft_tokenizer

一个分词器,将输入字符串转换为小写,然后用空格分割。

所以它的基本功能是将字符串转换为小写并在我猜无法更改的空白处拆分。考虑做

text_data$new_x <- lapply(strsplit(text_data$x, "\\s+"), as.list)

这将提供与预期相同的输出,您可以从这里继续您的流程。

text_data$new_x
#[[1]]
#[[1]][[1]]
#[1] "This"

#[[1]][[2]]
#[1] "IS"

#[[1]][[3]]
#[1] "a"

#[[1]][[4]]
#[1] "sentence"


#[[2]]
#[[2]][[1]]
#[1] "So"

#[[2]][[2]]
#[1] "is"

#[[2]][[3]]
#[1] "this"

推荐阅读