【发布时间】:2018-10-10 18:51:21
【问题描述】:
我有一个不受欢迎的词(西班牙语)列表,这些词没有意义,但它们也存在于另一个词中。我只想在它们是一个词时删除它,而不是当它们是另一个词的一部分时。
例如:“la”是一篇西班牙语文章,但如果我使用函数将其删除,也会将一个有用的术语分解成两个词,如“relacion”(表示关系)
我的第一选择是创建一个函数来删除这些术语。
bdtidy$tweet <- #here are tweets
fix.useless <- function(doc) {
function(doc) {
doc <- gsub("la", ".", doc)
doc <- gsub("las", ".", doc)
doc <- gsub("el", ".", doc)
doc <- gsub("ellos", ".", doc)
doc <- gsub("ellas", ".", doc)
return(doc)
}
bdtidy$tweet <- sapply(bdtidy$tweet, fix.useless)
我的第二个选择是使用列表,然后在 df 中使用过滤器
nousar <- c("rt", "pero", "para"...)
new df %>% bdtidy %>%
filter(!tweet $in$ nousar))
但结果总是删除所有这些单词并将术语分解为两个单词,这使我的分析毫无用处。 谢谢。
【问题讨论】:
-
如果你先
gsub("el", ".", doc)然后"ellos"变成".los"和下面的gsub("ellos", ".", doc)什么都不做。
标签: r dplyr filtering tidyverse sentiment-analysis