Как извлечь все эмоции из текста?

Рассмотрим следующий список:

a_list = ['🤔 🙈 me así, bla es se 😌 ds 💕👭👙'] 

Как я могу извлечь в новом списке все emojis внутри a_list ?:

 new_lis = ['🤔 🙈 😌 💕 👭 👙'] 

Я пытался использовать регулярное выражение, но у меня нет всех возможных кодировок emojis.

3 Solutions collect form web for “Как извлечь все эмоции из текста?”

Вы можете использовать библиотеку emoji . Вы можете проверить, является ли один emoji.UNICODE_EMOJI проверяя, содержится ли он в emoji.UNICODE_EMOJI .

 import emoji def extract_emojis(str): return ''.join(c for c in str if c in emoji.UNICODE_EMOJI) 

Если вы не хотите использовать внешнюю библиотеку, как pythonic-способ, вы можете просто использовать регулярные выражения и re.findall() с правильным регулярным выражением, чтобы найти emojies:

 In [74]: import re In [75]: re.findall(r'[^\w\s,]', a_list[0]) Out[75]: ['🤔', '🙈', '😌', '💕', '👭', '👙'] 

Регулярное выражение r'[^\w\s,]' является отрицательным символьным классом, который соответствует любому символу, который не является символом слова, пробелом или запятой.

Как я уже упоминал в комментарии, текст, как правило, содержит символы слов и пунктуацию, с которыми легко будет справиться этот подход, в других случаях вы можете просто добавить их в класс символов вручную. Обратите внимание: поскольку вы можете указать диапазон символов в классе символов, вы можете сделать его более коротким и более гибким.

Другое решение вместо отрицательного символьного класса, которое исключает символы не-emoji, использует класс символов, который принимает emojies ( [] без ^ ). Поскольку существует много emojis с разными значениями unicode , вам просто нужно добавить диапазоны в класс символов. Если вы хотите найти больше emojies, здесь хорошая ссылка содержит все стандартные emojies с соответствующим диапазоном для разных emojies. http://apps.timwhitlock.info/emoji/tables/unicode:

Здесь перечислены все эмуляторы Unicode с соответствующими кодовыми точками. Они от 1F600 до 1F64F, поэтому вы можете просто построить все из них с помощью итератора, подобного диапазону.

  • Есть ли эквивалент PyMongo для Python 3.2?
  • Перенос первого и последнего элементов в список
  • Изменение доходности от возвращаемого значения
  • не setup.py разработать использовать колесо для install_requires?
  • next () не играет хорошо с любым / все в python
  • Импорт из относительного пути в Python
  • Как найти количество вложенных списков в списке?
  • Условная сумма в Python на основе ввода строки
  • Как убить подпроцесс в любое время, закрывая его в порядке
  • Как отличить метод экземпляра, метод класса, статический метод или функцию в Python 3?
  • Как сделать метод Bisection в Python
  • Python - лучший язык программирования в мире.