Преобразование смайликов в слова nlp

#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) ')'