删除R中的单个字符
Remove single character in R
我正在使用 R 使用阿拉伯语进行情绪分析,在清理步骤中我需要删除单个字符。
我使用这段代码删除了它们并且它有效但遇到了一些问题
例如这里是数据
R<-("للمدافعين قال شركة وطنية قلت أقنعهم يعاملوننا كمواطنينقال جودتها عالية قلت جيدة غيرها غ")
如您所见,“ú”是单个字符
gsub(" *\b[[:alpha:]]{1}\b *", "", R)
[1] "للمدافعين قال شركة وطنية قلت أقنعهم يعاملوننا كمواطنينقال جودتها عالية قلت جيدة غيرها\n"
但是当我尝试将它应用于文本列上的整个数据集时,就像这里
subdata1$text = gsub("*\b[[:alpha:]]{1}\b *", "", subdata1$text)
它没有删除任何东西,我不知道为什么?
希望你能理解我
谢谢
似乎 [:alpha:]
POSIX 字符 class 不适用于您所用的所有 Unicode 字母。
我建议使用 PCRE 模式:
gsub("(*UCP)\b\p{L}\b", "", R, perl=TRUE)
这里,需要 (*UCP)
来使 \b
词边界 Unicode 感知,并且 \p{L}
匹配来自 BMP 平面的任何 Unicode 字母。要使用 PCRE 正则表达式引擎处理模式,需要 perl=TRUE
参数。
我正在使用 R 使用阿拉伯语进行情绪分析,在清理步骤中我需要删除单个字符。 我使用这段代码删除了它们并且它有效但遇到了一些问题
例如这里是数据
R<-("للمدافعين قال شركة وطنية قلت أقنعهم يعاملوننا كمواطنينقال جودتها عالية قلت جيدة غيرها غ")
如您所见,“ú”是单个字符
gsub(" *\b[[:alpha:]]{1}\b *", "", R)
[1] "للمدافعين قال شركة وطنية قلت أقنعهم يعاملوننا كمواطنينقال جودتها عالية قلت جيدة غيرها\n"
但是当我尝试将它应用于文本列上的整个数据集时,就像这里
subdata1$text = gsub("*\b[[:alpha:]]{1}\b *", "", subdata1$text)
它没有删除任何东西,我不知道为什么?
希望你能理解我
谢谢
似乎 [:alpha:]
POSIX 字符 class 不适用于您所用的所有 Unicode 字母。
我建议使用 PCRE 模式:
gsub("(*UCP)\b\p{L}\b", "", R, perl=TRUE)
这里,需要 (*UCP)
来使 \b
词边界 Unicode 感知,并且 \p{L}
匹配来自 BMP 平面的任何 Unicode 字母。要使用 PCRE 正则表达式引擎处理模式,需要 perl=TRUE
参数。