删除R中的单个字符

时间:2018-12-04 11:20:44

标签: r regex gsub sentiment-analysis

我正在使用R使用阿拉伯语进行情感分析,在清理步骤中,我需要删除单个字符。 我使用此代码将其删除,并且可以正常工作,但是出现了一些问题

例如这里是数据

R<-("للمدافعين قال شركة وطنية قلت أقنعهم يعاملوننا كمواطنينقال جودتها عالية قلت جيدة غيرها غ")

正如您在此处看到的,“غ”是单个字符

gsub(" *\\b[[:alpha:]]{1}\\b *", "", R)
[1] "للمدافعين قال شركة وطنية قلت أقنعهم يعاملوننا كمواطنينقال جودتها عالية قلت جيدة غيرها\n"

但是当我尝试将其应用到像此处这样的文本列的整个数据集上

subdata1$text = gsub("*\\b[[:alpha:]]{1}\\b *", "", subdata1$text)

它不能删除任何东西,我也不知道为什么?

希望您了解我

谢谢

1 个答案:

答案 0 :(得分:1)

在您的情况下,似乎[:alpha:] POSIX字符类不适用于所有Unicode字母。

我建议使用PCRE模式:

gsub("(*UCP)\\b\\p{L}\\b", "", R, perl=TRUE)

在这里,(*UCP)必须使\b字边界能够识别Unicode,并且\p{L}与BMP平面中的任何Unicode字母匹配。 perl=TRUE参数是使用PCRE regex引擎处理模式所必需的。