试图从文本中计算表情符号
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 高度
从 Windows 10 虚拟键盘输入到 WPF 文本框中的快乐表情符号未在文本框的 PreviewTextInput 事件中捕获