我正在分析歌曲歌词。这些通常包含“啦啦啦”和“哦哦哦”。基本上没有意义的词。我要删除这些重复的单词,或者至少要先识别它们。 下面是一些几乎可以完成工作的代码。
test <- data.frame(c("la la la yeah the meaning of life vive la France yeah yeah yeah"))
names(test) <- "V1"
test$V1 <- as.character(test$V1)
d <- unlist(strsplit(test$V1, split=" "))
test$V2 <- paste(d[-which(duplicated(d))], collapse = ' ')
test$V2
因此,重复项被删除了,但有点过于严格:“是的,生命是法国的生命” 最好是我想保留“ Vive la France”中的“ la”,同时也可以删除“ la la la”中的第一个“ la”。类似,第一个“是”不应该删除”,但最后三个应该被删除。 这意味着应该保留嵌入在不同词之间的单个重复词,同时应该删除所有重复的相邻词。 上面的代码不起作用的原因是它忽略了字符串中单词的顺序。
答案 0 :(得分:2)
我们可以在此处尝试使用gsub
并使用正向超前断言来检查相邻的重复单词:
input <- "la la la yeah the meaning of life vive la France yeah yeah yeah"
output <- gsub("(\\S+)( \\1)+", "", input, perl=TRUE)
output <- gsub("^\\s+|\\s+$", "", output)
output
[1] "yeah the meaning of life vive la France"
如果sub
遇到一个单词,后接一个空格和相同的单词,则它将替换为空字符串,从而删除先前的重复项。
答案 1 :(得分:1)
也许您需要spring:
cloud:
stream:
kafka:
bindings:
error-consumer-channel:
consumer:
autoCommitOffset: false
bindings:
error-consumer-channel:
destination: error_topic
consumer:
maxAttempts: 3
backOffInitialInterval: 5000
backOffMultiplier: 2
来识别顺序并仅选择长度为1的单词。
Date