#python #nlp
#python #nlp
Вопрос:
Моя задача — преобразовать смайлики в слова, поэтому, учитывая текст I was🥇 place at volleyball last year
, мне нужно его разобрать I was 1st_place_medal at volleyball last year
.
{
........
'🥇': ':1st_place_medal:',
'🥈': ':2nd_place_medal:',
'🥉': ':3rd_place_medal:',
'🆎': ':AB_button_(blood_type):',
'🏧': ':ATM_sign:',
'🅰': ':A_button_(blood_type):',
........
}
Учитывая UNICODE_EMO
приведенный выше словарь, я попытался запустить convert_emojis
, но в итоге получил error: nothing to repeat at position 1
.
def convert_emojis(text):
for emot in UNICODE_EMO:
text = re.sub(u'(' emot ')', UNICODE_EMO[emot].replace(':', ''), text)
return text
ПРИМЕЧАНИЕ: я запускаю свой код в ноутбуке jupyter
Ответ №1:
Один из ваших ключей словаря интерпретируется как повторитель регулярных выражений в u'(' emot ')'
. В качестве примера, если один из ваших ключей есть '*'
, вы получите (*)
, что является недопустимым повторением.
Попробуйте экранировать ключи словаря:
u'(' re.escape(emot) ')'