Подсчет количества смайликов в твитах, извлеченных в файл
Я извлек несколько твитов ( utf-8) в CSV-файл. Я пытаюсь запустить код Python для подсчета количества смайликов в каждом твите. Смайлики отображаются в файле следующим образом:- ðŸ '©ðŸ' © ŸŸ '©ðŸ' ©ðŸ '©
Теперь я не знаю, как их идентифицировать. Я попытался преобразовать всю строку в юникод, а затем подсчитал их следующим кодом: s=str(strs, "unicode")
print(s)
print(strs)
emoti = re.finditer(r'[\U0001f600-\U0001f650]', s)
count = sum(1 for _ in emoti)
но это дает ошибку, так как str-декодирование не поддерживается. Я не могу собрать все твиты снова, мне нужно сосчитать нет. смайликов на одном и том же наборе твитов. Может ли тело сказать, как это сделать? Заранее спасибо
1 ответ
Если эта строка - то, что у вас есть:
'💩💩💩💩💩'
Он был декодирован с неправильным кодеком. Это выглядит как cp1252
(по умолчанию Windows ANSI). Перекодируйте его с использованием неверного кодированного кода, затем декодируйте его utf8
, А еще лучше, исправить источник неправильного декодирования.
>>> '💩💩💩💩💩'.encode('cp1252')
b'\xf0\x9f\x92\xa9\xf0\x9f\x92\xa9\xf0\x9f\x92\xa9\xf0\x9f\x92\xa9\xf0\x9f\x92\xa9'
>>> '💩💩💩💩💩'.encode('cp1252').decode('utf8')
''
К сожалению, для смайликов не существует ни одного диапазона символов Юникода. Смотрите emoji-test.txt с сайта unicode.org. Этот конкретный символ - U+1F4A9, и находится вне диапазона Юникода, который вы указали в своем примере кода.