2016-07-06 4 views
3

У меня есть список твитов, многие из которых содержат emojis, которые нужно удалить. Каким будет наиболее эффективный метод для этого в R?удалить emoji из строки в 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" 
) 
+0

Вы используете 'gsub' и не используете регулярное выражение. Вам нужно использовать регулярное выражение. –

+0

Работает ли '\\\\ w + *'? – Psidom

+1

Я пробовал '\\\\ w + *', но он не работает –

ответ

6

Отъезд 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 regex; см. ?base::regex и ?grep.

+0

Спасибо alistaire - У меня была такая же проблема, и ваше решение отлично работает. – SommerEngineering

Смежные вопросы