gpt4 book ai didi

python - 从文本中删除所有表情符号

转载 作者:太空宇宙 更新时间:2023-11-03 15:43:42 40 4
gpt4 key购买 nike

这个问题已经在这里问过Python : How to remove all emojis没有解决方案,我已经朝着解决方案迈出了一步。但需要帮助完成它。

我去表情符号网站获取了所有表情符号十六进制代码点:https://www.unicode.org/emoji/charts/emoji-ordering.txt

然后我像这样读入文件:

file = open('emoji-ordering.txt')
temp = file.readline()

final_list = []

while temp != '':
#print(temp)
if not temp[0] == '#' :
utf_8_values = ((temp.split(';')[0]).rstrip()).split(' ')
values = ["u\\"+(word[0]+((8 - len(word[2:]))*'0' + word[2:]).rstrip()) for word in utf_8_values]
#print(values[0])
final_list = final_list + values
temp = file.readline()

print(final_list)

我希望这会给我 unicode 文字。它没有,我的目标是获得 unicode 文字,这样我就可以使用上一个问题的部分解决方案并能够排除所有表情符号。有什么想法可以帮助我们获得解决方案吗?

最佳答案

首先安装表情符号:

pip install emoji

pip3 install emoji

那么这样做:

import emoji

def give_emoji_free_text(self, text):
allchars = [str for str in text]
emoji_list = [c for c in allchars if c in emoji.UNICODE_EMOJI]
clean_text = ' '.join([str for str in text.split() if not any(i in str for i in emoji_list)])

return clean_text

text = give_emoji_free_text(text)

这对我有用!

或者您可以尝试:

emoji_pattern = re.compile("["
u"\U0001F600-\U0001F64F" # emoticons
u"\U0001F300-\U0001F5FF" # symbols & pictographs
u"\U0001F680-\U0001F6FF" # transport & map symbols
u"\U0001F1E0-\U0001F1FF" # flags (iOS)
u"\U0001F1F2-\U0001F1F4" # Macau flag
u"\U0001F1E6-\U0001F1FF" # flags
u"\U0001F600-\U0001F64F"
u"\U00002702-\U000027B0"
u"\U000024C2-\U0001F251"
u"\U0001f926-\U0001f937"
u"\U0001F1F2"
u"\U0001F1F4"
u"\U0001F620"
u"\u200d"
u"\u2640-\u2642"
"]+", flags=re.UNICODE)

text = emoji_pattern.sub(r'', text)

更新:

版本 emoji==1.7.0 是最后一个具有 UNICODE_EMOJI 的版本。

您也可以尝试使用 EMOJI_DATA 来替代 UNICODE_EMOJI。如果您解释如何使用 UNICODE_EMOJI 或显示您的代码,我可以提供更具体的帮助。

或者您可以尝试上述两种解决方案之一:

text = re.sub(emoji.get_emoji_regexp(), r"", text)
emoji.replace_emoji(text)

关于python - 从文本中删除所有表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51217909/

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