从R中的文本中删除单词和符号

Posted

技术标签:

【中文标题】从R中的文本中删除单词和符号【英文标题】:Removing words and symbols from text in R 【发布时间】:2021-01-04 09:31:00 【问题描述】:

考虑以下示例。可以从text 中删除stopwords 吗?

library(tm)
text <- c("this is exercise for text mining ≤µm ≥°f ±μgm")
stopwords <- ("≤µm", "≥°f", "±μgm")

【问题讨论】:

【参考方案1】:

首先,您的示例字符串中有一些错误。 text 缺少引号,stopwords 缺少括号前的 c

text <- c("this is exercise for text mining ≤µm ≥°f ±μgm")
stopwords <- c("≤µm", "≥°f", "±μgm")

您可以使用 stringr 从字符串中删除停用词中的值,如下所示:

library(stringr)
str_replace_all(text, paste(stopwords, collapse = "|"), "")

【讨论】:

【参考方案2】:

您可以尝试gsub,如下所示

gsub(paste0(stopwords, collapse = "|"),"",text)

【讨论】:

【参考方案3】:

由于您要进行文本挖掘,您可能希望将输入字符串转换为单词向量。如果是这样,您可以通过子集轻松删除停用词。

library(stringr)
text <- c("this is exercise for text mining ≤µm ≥°f ±μgm")
stopwords <- c("≤µm", "≥°f", "±μgm")
text <- unlist(str_split(text, " "))
text[!(sapply(text, function (x) any(str_detect(stopwords, x))))]

如果你的工作让你把你的话放在 data.frame 或类似的地方,那么还有另一种方法:

library(dplyr)
library(stringr)
text <- c("this is exercise for text mining ≤µm ≥°f ±μgm")
stopwords <- c("≤µm", "≥°f", "±μgm")
text <- unlist(str_split(text, " "))
data.frame(words = text) %>% anti_join(data.frame(words = stopwords))

【讨论】:

以上是关于从R中的文本中删除单词和符号的主要内容,如果未能解决你的问题,请参考以下文章

从python文件中删除文本文件中的停用词

Flex - 删除文本输入中的字符串会留下一个方形符号

R- 删除字符串中的重音符号

如何从python中的文本文档中删除所有标点符号和其他符号?

从单词列表中删除引号和双引号

从NLTK中的大型令牌中删除垃圾单词