В рамках проблемы классификации текста я пытаюсь очистить набор текстовых данных. До сих пор я удалял все, кроме текста. Знаки препинания, цифры, эмодзи - все убрали. Теперь я пытаюсь использовать смайлики в качестве функций, поэтому я хочу сохранить и слова, и смайлики.
Сначала я ищу эмодзи в тексте и отделяю их от других слов/эмодзи. Это связано с тем, что каждый смайлик следует рассматривать индивидуально/отдельно. Поэтому я ищу смайлик и дополняю его пробелами с обоих концов.
Но я теряюсь, пытаясь понять, как объединить известное регулярное выражение для слов и смайликов. Вот мой текущий код:
import re
def clean_text(raw_text):
padded_emoji_text = pad_emojis(raw_text)
print("Emoji padded text: " + padded_emoji_text)
reg = re.compile("[^a-zA-Z]") # line a
# old regex to remove everything except words
letters_only_text = reg.sub(' ', raw_text)
print("Cleaned text: " + letters_only_text)
# Code to remove everything except text and emojis
# How?
def pad_emojis(raw_text):
print("Original Text: " + raw_text)
reg = re.compile(u'['
u'\U0001F300-\U0001F64F'
u'\U0001F680-\U0001F6FF'
u'\u2600-\u26FF\u2700-\u27BF]',
re.UNICODE)
#padding the emoji with space at both ends
new_text = reg.sub(r' \g<0> ',raw_text)
return new_text
text = "I am very #happy man! but???????? my wife???? is not ????????. 99/33"
clean_text(text)
Текущие операции:
Original Text: I am very #happy man! but???????? my wife???? is not ????????. 99/33
Emoji padded text: I am very #happy man! but ???? ???? my wife ???? is not ???? ???? . 99/33
Cleaned text: I am very happy man but my wife is not
Чего я пытаюсь достичь:
I am very happy man but ???? ???? my wife ???? is not ???? ????
Вопросы:
1) Как добавить регулярное выражение emoji в компиляцию регулярного выражения вместе со словами регулярное выражение? (строка а)
2) Также могу ли я добиться того, что ищу, лучше, то есть без необходимости писать отдельную функцию только для разделения смайликов и заполнения их пробелами? Мне почему-то кажется, что этого можно избежать.