试图从文本中计算表情符号

Posted

技术标签:

【中文标题】试图从文本中计算表情符号【英文标题】:Trying to count the emoji's from text 【发布时间】:2022-01-16 05:16:03 【问题描述】:

我正在尝试计算文本行中的表情符号。这些是推文。 我尝试了不同的代码,但它们都返回空。

例如:

表情

def split_count(text):
    emoji_counter = 0
    data = regex.findall(r'\X', text)
    for word in data:
        if any(char in emoji.UNICODE_EMOJI_ENGLISH for char in word):
            emoji_counter += 1
    return emoji_counter      

split_count_udf = F.udf(split_count, IntegerType())

kick_twitter_count = kick_twitter.withColumn("num_emoji", adv.emoji_counts["full_text"])

我得到的错误:

Error: AttributeError: module 'advertools' has no attribute 'emoji_counts'

emoji_dict 也保持为空:

有什么想法吗?对我有很大帮助!

【问题讨论】:

你为什么认为adv.emoji_counts属性存在? 嗯,这就是问题所在。它不起作用,我找不到原因。所以看来我必须在上面的代码中调整一些东西? “不明白”是什么意思? emoji_counts 不存在,和写adv.bmskdfmlksmlf()一样不存在。你为什么写那个方法名?你为什么认为它存在? 对不起,我只是个初学者。当我执行 emoji_dict.keys 时,它会返回包括 emoji_counts 在内的键列表。那么,那我有什么误解呢?如果它不存在,你能帮我以另一种方式计算 emoji 的数量吗? 我什至没有看到emoji_dict 变量,而adv 是一个包。抱歉,关于我看到的一些信息,我完全帮不上忙。 【参考方案1】:

您可能需要先提取表情符号才能加载字典:

import advertools as adv
texts = ['I am grinning ?','A grinning cat ?','hello! ??? ??', 'Just text']
emoji_dict = adv.extract_emoji(texts)
emoji_dict['emoji_counts']
[1, 1, 5, 0]

参考: https://advertools.readthedocs.io/en/master/advertools.emoji.html

【讨论】:

如果我运行它,它可以工作。但不知何故,它在列上不起作用。 我不确定您所说的“它在列上不起作用”是什么意思。您只需将包含表情符号的任何文本放入列表中,在这种情况下称为“文本”,它应该与答案中的完全一样。它将返回另一个列表,其中包含列表“文本”中每个元素的表情符号计数。 我这样做是为了增加一个包含计数的列: texts = kick_twitter['full_text'] emoji_dict = adv.extract_emoji(texts) kick_twitter = kick_twitter.withColumn('num_emoji', emoji_dict['emoji_counts ']) 类型错误:列不可迭代 texts 必须是一个列表,试试 texts=[ kick_twitter['full_text'] ] 感谢您的帮助!

以上是关于试图从文本中计算表情符号的主要内容,如果未能解决你的问题,请参考以下文章

在 Objective-C 中计算具有不同语言和表情符号的文本的 UILabel 高度

如何使用python在字符串中查找和计算表情符号?

如何在UILabel iOS中显示表情符号

将表情符号备忘单转换为安卓表情符号?

从 Windows 10 虚拟键盘输入到 WPF 文本框中的快乐表情符号未在文本框的 PreviewTextInput 事件中捕获

微信符号表情怎么打?