gpt4 book ai didi

python - 单词和表情符号计数器

转载 作者:太空宇宙 更新时间:2023-11-04 00:26:08 27 4
gpt4 key购买 nike

我有一个包含“clear_message”列的数据框,我创建了一个列来计算每行中的所有单词。

history['word_count'] = history.clear_message.apply(lambda x: Counter(x.split(' ')))

例如,如果行消息是:Hello my name is Hello然后他所在行的计数器将是 Counter({'Hello': 2, 'is': 1, 'my': 1, 'name': 1})

问题

我的文本中有表情符号,我还想要一个表情符号计数器。

例如:

test = '👹👹👹👹👹here sasdsa'
test_counter = Counter(test.split(' '))

输出是:

Counter({'sasdsa': 1, '👹👹👹👹👹here': 1})

但是我想要:

Counter({'sasdsa': 1, '👹': 5, 'here':1})

很明显,问题是我正在使用 split(' ')

我的想法:

在表情符号前后添加一个空格。喜欢:

test = '👹 👹 👹 👹 👹 here sasdsa'

然后使用拆分,这将起作用。

  1. 不确定这种方法是最好的。
  2. 不知道该怎么做。 (我知道如果 i 是表情符号,那么 if i in emoji.UNICODE_EMOJI 将返回 true(emoji 包))。

最佳答案

我认为您在每个表情符号后添加一个空格的想法是个好方法。您还需要去掉空白,以防表情符号和下一个字符之间已经有空格,但这很简单。像这样的东西:

def emoji_splitter(text):
new_string = ""
for char in text:
if char in emoji.UNICODE_EMOJI:
new_string += " {} ".format(char)
else:
new_string += char
return [v for v in map(lambda x: x.strip(), new_string.split(" ")) if v != ""]

也许您可以通过使用滑动窗口来检查表情符号后的空格并仅在必要时添加空格来改进这一点,但这会假设只有一个空格,因为此解决方案应在 0 到 n 个空格之间表情符号。

关于python - 单词和表情符号计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47375680/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com