【问题标题】: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 是一个包。抱歉,关于我看到的一些信息,我完全帮不上忙。

标签: python emoji


【解决方案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'] ]
  • 感谢您的帮助!
猜你喜欢
  • 2017-12-03
  • 2020-06-04
  • 2015-08-02
  • 2022-01-12
  • 1970-01-01
  • 2017-03-14
  • 1970-01-01
  • 2018-12-15
相关资源
最近更新 更多