Рубрики
Без рубрики

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

Резюме: Этот блог объясняет различные способы, которыми можно извлечь широко используемые Emojis, встроенные в текст. https://youtu.be/j9f8crd0-qw Примечание. Все решения, приведенные ниже, были проверены с помощью Python 3.9.0b5. Проблема Pormulatulation У одного есть список с нормальными текстовыми словами и Emojis, все смешанные вместе, как показано ниже. orig_list = [‘Эти 👧 emojis 😈 😈 … Как извлечь все эмохисы из текста в Python? Читать далее “

Автор оригинала: Girish Rao.

Резюме: Этот блог объясняет различные способы, которыми можно извлечь широко используемые эмохисы, встроенные в текст.

Примечание : Все решения, приведенные ниже, были проверены с использованием Python 3.9.0b5.

Постановка проблемы

У одного есть список с нормальными текстовыми словами и эмозиматами, все смешанные вместе, как показано ниже.

orig_list = ['These 👧 Emojis 😈 are 🤖 embedded 😺 within 😻 this 🙀 text.']

Как один извлекает только эмоджис, в новый список следующим образом?

new_list = ['👧', '😈', '🤖', '😺', '😻', '🙀']

Задний план

Дзен Мастер однажды сказал “Одна картинка стоит тысячи слов”. Этот самородок мудрости проводил правда, так как пещера родили на землю. Он продолжает быть правдой в нашем Uber-Tech World сегодня.

В 1998 году японский человек по имени Shigetaka Kurita Придумал эмохис для использования телекоммуникационной компанией. Поскольку это изобретение человеческие иллюстрированные выражения (Emojis) на письменном языке предположили свою жизнь.

Emojis теперь используются во всех видах электронной связи. Такой взрыв в использовании также создал необходимость в пути к отделению эмохис из текста.

Эта статья в блоге рассматривается разные способы, используя Python, чтобы отделить эмохис из текста.

Метод 1: очевидный Устранить текстовый метод

Самый прямой способ отделить эмохи из текста – это вырезать текст из строки. Используйте библиотеку Regex, чтобы сделать это, как показано ниже.

$ python
Python 3.9.0b5 (default, Oct 19 2020, 11:11:59) 
>>>
>>> ## Import the required Packages. 
>>> import regex as re
>>>
>>> ## The original list. The Emojis are extracted from this list. 
>>> orig_list = ['These 👧 Emojis, 😈 are 🤖 embedded 😺 within 😻 this 🙀 text.']
>>>
>>> ## Use a regular expression set to find and extract all emojis in orig_list
>>> new_list = re.findall(r'[^\w\s,.]', orig_list[0])
>>>
>>> new_list 
['👧', '😈', '🤖', '😺', '😻', '🙀']
>>> 

Re.findall () Метод использует регулярное выражение Установить , то есть ‘ [] вместе с Исключить-символ ‘ ^ , чтобы удалить текстовые символы. Текст представлен классами символов, таких как\ W ,\ S и специальные символы, такие какОтказ или, Отказ Это также иногда называют встроенным методом поиска

Примечание: Хотя вышеуказанный метод простын, он имеет свои ограничения. Нужно указать каждый тестовый символ, который может появиться в исходном тексте. I.e. Если текст содержит " = " и " + " Например, нужно указать R '[^ \ w \ s,. = +]' как набор регулярных выражений. Регулярное выражение, как кодировано выше, называется Встроенный поиск метод. Используйте его для того, когда требуется быстрый короткий поиск. В противном случае используйте Компилировать Метод, который показан в следующем разделе.

Примечание: Этот метод использует Regex библиотека. Установите эту библиотеку, используя Пип перед запуском пример.

Способ 2: селективно выбирающий метод emojis

Этот следующий метод показывает, как искать и целевые emojis внутри строки. После найден, Emojis прилагаются к окончательному списку.

$ python
Python 3.9.0b5 (default, Oct 19 2020, 11:11:59)
>>>
>>> ## Import the required Packages. 
>>> import emoji
>>> import regex as re
>>> 
>>> ## The original list. The Emojis are extracted from this list. 
>>> orig_list = ['These 👧 Emojis, 😈 are 🤖 embedded 😺 within 😻 this 🙀 text.']
>>>
>>> ## Create an iterable object.
>>> emojis_iter = map(lambda y: y, emoji.UNICODE_EMOJI['en'].keys())
>>>
>>> ## Use the iterable object to compile a regular expression set of all emojis within 
>>> ## the 'en' dictionary subset.
>>> regex_set = re.compile('|'.join(re.escape(em) for em in emojis_iter))
>>>
>>> ## Use the compiled regular expression set to find and extract all emojis in
>>> ## orig_list 
>>> new_list = regex_set.findall(orig_list[0])
>>> new_list
['👧', '😈', '🤖', '😺', '😻', '🙀']

Этот метод отличается от вышеуказанного способа, в том, что он Цели его поиск эмохис в данной строке.

Чтобы сделать это, сначала извлеките весь 'en' Подмножество emojis словаря в ИТЕРИТЕЛЬНО (то есть emojis_iter ).

Далее используйте The ITERABLE TO Компилировать А Набор регулярных выражений Отказ Этот набор теперь содержит все Emojis, извлеченные из эмохиса Словарь Отказ Наконец, используйте этот набор регулярных выражений, чтобы извлечь все Emojis из данной строки. Python-Community выдвинул различные причины для Компиляция Набор регулярных выражений. Некоторые из этих причин

  • Это делает код кратко и легче прочитать.
  • Код использует выражение поиска более нескольких раз.
  • Скомпилируйте поисковое выражение при менее вычислительной интенсивной части приложения. I.e. Составьте его в начале, используйте его позже.

Примечание: Этот метод использует emoji и Regex Библиотеки. Установите эти библиотеки, используя Пип перед запуском пример.

Способ 3: все-то ударил его всем методом

Этот метод использует Python jellools Пакет Отказ Этот пакет обеспечивает производительность и инструменты анализа. Онлайн маркетологи и данные-ученые используют jellools Чтобы понять, манипулировать и управлять данными. Они также используют jellools визуализировать, общаться и принимать решения, основанные на данных. Читатель будет использовать jellools Если они хотят сделать некоторые тяжелые исследования по эмозиям. Но первые вещи в первую очередь. Шаги ниже используют jellools Пакет для извлечения emojis из orig_list Отказ

$ python
Python 3.9.0b5 (default, Oct 19 2020, 11:11:59)
>>>
>>> ## Import the required Packages. 
>>> import advertools as adv
>>> 
>>> ## The original list. The Emojis are extracted from this list. 
>>> orig_list = ['These 👧 Emojis, 😈 are 🤖 embedded 😺 within 😻 this 🙀 text.']
>>>
>>> ## Use advertools to process orig_list. A dictionary is returned. 
>>> emoji_dict = adv.extract_emoji(orig_list)
>>>
>>> ## This dictionary is packed with all sorts of statistical information about orig_list.
>>> ## We want specific information, which is enclosed in the 'emoji' key.
>>> ## Also the returned value is a list of lists. We need only the first list.
>>> new_list = emoji_dict['emoji'][0]
>>> new_list
['👧', '😈', '🤖', '😺', '😻', '🙀']

Extract_emoji () Метод упрощает извлечение всех эмодзи. Он способен делать много ступеней под капотом, чтобы отделить эмодзис из текста. Возвращает словарь с большим количеством полезной статистической информации. Специфический словарь ключ «Эмодзи» содержит Список списков Отказ Первый список в этом списке списков содержит ответ. В простом примере выше emoji_dict ['emoji'] [0] Извлекает этот первый список и отсюда ответ.

Примечание: Этот метод использует Пакет jelloolss Отказ jellools Пакет использует Regex и emoji библиотеки внутри этого. Установите этот пакет, используя Пип перед запуском пример.

Метод 4+: Но подождите, еще больше !!!

Помните словарь, возвращенный Extract_emoji () ? Это Словарь Содержит полезную информацию о Emojis в исходной строке. Любопытный читатель может стремиться исследовать всю эту полезную информацию. Начальные шаги такие же, как показано выше, то есть.

$ python
Python 3.9.0b5 (default, Oct 19 2020, 11:11:59)
>>>
>>> ## Import the required Packages. 
>>> import advertools as adv
>>> 
>>> ## The original list. The Emojis are extracted from this list. 
>>> orig_list = ['These 👧 Emojis, 😈 are 🤖 embedded 😺 within 😻 this 🙀 text.', 'Another 😀 Emoji 💛 list']
>>>
>>> ## Use advertools to process orig_list. A dictionary is returned. 
>>> emoji_dict = adv.extract_emoji(orig_list)
>>>
>>> ## This dictionary is packed with all sorts of statistical information about orig_list.
>>> ## This information is explored below...

Примечание что orig_list имеет дополнительная строка Чтобы лучше объяснить функции ниже.

Сначала получите различные ключи в словаре.

>>> emoji_dict.keys()
dict_keys(['emoji', 'emoji_text', 'emoji_flat', 'emoji_flat_text', 'emoji_counts', 'emoji_freq', 'top_emoji', 'top_emoji_text', 'top_emoji_groups', 'top_emoji_sub_groups', 'overview'])
>>> 

Читатель уже знаком с «Эмодзи» ключ из примера, выше. Обратите внимание на возвращенный список списков. Каждый подсчет содержит эмодзисы из соответствующей оригинальной подковы.

>>> emoji_dict['emoji']
[['👧', '😈', '🤖', '😺', '😻', '🙀'], ['😀', '💛']]
>>>

'emoji_text' Ключ, возвращает английские имена (или описания) отдельных эмоджин. Еще раз обратите внимание на возвращенный список списков.

>>> emoji_dict['emoji_text']
[['girl', 'smiling face with horns', 'robot', 'grinning cat', 'smiling cat with heart-eyes', 'weary cat'], ['grinning face', 'yellow heart']]
>>> 

'emoji_flat' Ключ, возвращает плоский список Все emojis в Весь Оригинальный список строк. Обратите внимание, что возвращенное значение является плоским списком, а не список списков, как в предыдущих примерах.

>>> emoji_dict['emoji_flat']
['👧', '😈', '🤖', '😺', '😻', '🙀', '😀', '💛']
>>> 

'emoji_flat_text' Ключ, возвращает плоский список Все Emoji Описания для Весь Оригинальный список строк. Опять обратите внимание, что возвращенное значение является плоским списком.

>>> emoji_dict['emoji_flat_text']
['girl', 'smiling face with horns', 'robot', 'grinning cat', 'smiling cat with heart-eyes', 'weary cat', 'grinning face', 'yellow heart']
>>> 

'emoji_counts' Ключ, возвращает список подсчетов Emoji для каждой подковы в исходном списке строк.

>>> emoji_dict['emoji_counts']
[6, 2]
>>> 

'emoji_freq' Ключ, группы строк, которые имеют одинаковое количество эмохис.

>>> emoji_dict['emoji_freq']
[(2, 1), (6, 1)]
>>> 

'top_emoji' Ключ, группы каждый уникальный эмодзи по его счетчику.

>>> emoji_dict['top_emoji']
[('👧', 1), ('😈', 1), ('🤖', 1), ('😺', 1), ('😻', 1), ('🙀', 1), ('😀', 1), ('💛', 1)]
>>> 

'top_emoji_text' Ключевые группирует каждое уникальное эмоджи-текстовое описание по его счетчику.

>>> emoji_dict['top_emoji_text']
([('girl', 1), ('smiling face with horns', 1), ('robot', 1), ('grinning cat', 1), ('smiling cat with heart-eyes', 1), ('weary cat', 1), ('grinning face', 1), ('yellow heart', 1)],)
>>> 

'top_emoji_groups' Ключ, считает количество эмодзисов, принадлежащих к разным эмоджированным группам.

>>> emoji_dict['top_emoji_groups']
[('Smileys & Emotion', 7), ('People & Body', 1)]
>>>

'top_emoji_sub_groups' Ключ, считает количество эмодзий, принадлежащих к различным эмодзи-подгруппам.

>>> emoji_dict['top_emoji_sub_groups']
[('cat-face', 3), ('person', 1), ('face-negative', 1), ('face-costume', 1), ('face-smiling', 1), ('emotion', 1)]
>>>

Наконец, «Обзор» Ключ, дает обзор orig_list С точки зрения эмодзис.

>>> emoji_dict['overview']
{'num_posts': 2, 'num_emoji': 8, 'emoji_per_post': 4.0, 'unique_emoji': 8}
>>> 

Финктерская академия

Этот блог был доставлен вам Girish , студент Финктерская академия Отказ Вы можете найти его Профиль намного здесь Отказ

Справка

Все исследования для этой статьи в блоге было сделано с использованием Python Documents , Поисковая система Google и общая база знаний Финктерская академия и Переполнение стека Общины. Концепции и идеи были также исследованы со следующих веб-сайтов …