从R中的字符串中删除表情符号

标签 r regex twitter unicode substitution

我有一条推文列表,其中许多包含需要删除的表情符号。在R中执行此操作最有效的方法是什么?

我尝试了以下方法,该方法应该将所有以“\”开头的单词替换为空白,但出现此错误

some_tweets <- gsub("\\\w+ *", "", some_tweets)
Error: '\w' is an unrecognized escape in character string starting ""\\\w"

这是数据示例:
> head(some_tweets)
[1] "ஆமா நான் பாக்கவே இல்லை \U0001f625\U0001f625\U0001f625"                               
[2] "எனக்கு அனுப்பலாமே \U0001f913\U0001f913\U0001f913"                                  
[3] "அவர் ஏன்டா ப்ளாக் பண்ணார் \U0001f602\U0001f602\U0001f602\U0001f602"                        
[4] "ஆமா"                                                                           
[5] "RT : சும்மார்றா சுன்னி.. ~ ஆதவன்"                                                      
[6] "கைலியை எல்லாம் லூஸ் பண்ணிகிட்டு உக்காந்து இருக்கேன் அடுத்து போடுங்கயா \U0001f608\U0001f608\U0001f608"


> dput(head(some_tweets))
c("ஆமா நான் பாக்கவே இல்லை \U0001f625\U0001f625\U0001f625", 
"எனக்கு அனுப்பலாமே \U0001f913\U0001f913\U0001f913", 
"அவர் ஏன்டா ப்ளாக் பண்ணார் \U0001f602\U0001f602\U0001f602\U0001f602", 
"ஆமா", "RT : சும்மார்றா சுன்னி.. ~ ஆதவன்", 
"கைலியை எல்லாம் லூஸ் பண்ணிகிட்டு உக்காந்து இருக்கேன் அடுத்து போடுங்கயா \U0001f608\U0001f608\U0001f608"
)

最佳答案

查看regular-expressions.info on Unicode,它对正则表达式中的Unicode进行了详尽的解释。这里重要的部分是您可以将Unicode字符与\p{xx}匹配,其中xx是它们所在的任何类的名称(例如L表示字母,M表示标记)。在这里,您的表情符号似乎在So(Other_Symbol的简写)和Cn(Unassigned的简写)类中,因此我们可以用以下方法将它们排除:

gsub('\\p{So}|\\p{Cn}', '', some_tweets, perl = TRUE)
## [1] "ஆமா நான் பாக்கவே இல்லை "                                       
## [2] "எனக்கு அனுப்பலாமே "                                           
## [3] "அவர் ஏன்டா ப்ளாக் பண்ணார் "                                       
## [4] "ஆமா"                                                        
## [5] "RT : சும்மார்றா சுன்னி.. ~ ஆதவன்"                               
## [6] "கைலியை எல்லாம் லூஸ் பண்ணிகிட்டு உக்காந்து இருக்கேன் அடுத்து போடுங்கயா "

请注意,您需要设置perl = TRUE,因为在R的默认POSIX 1003.2正则表达式中未启用此表示法。参见?base::regex?grep

关于从R中的字符串中删除表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38215590/

相关文章:

python - 如何使用python单独获取英文推文?

r - R-CSV错误-意外的数字常量

从 R 中的字符串中删除括号和文本

twitter - 可以访问转推的时间戳吗?

python - 基于 Python 中的几个正则表达式规则进行替换

javascript - javascript 中的正则表达式只允许数字、逗号和一个小数点

twitter - Kafka Twitter 流 TwitterException 错误

r - 使用 dplyr 创建排名变量?

r - 因子到因子的条件重新编码

r - 如何在 R 中使用 corrplot() 仅显示前 10 个最强的相关变量?