Python中如何将字符串格式的Emoji Unicode转换为对应实际名称
你遇到的是CSV存储时Unicode emoji码点被序列化为<U+十六进制码点>格式字符串的问题,只需两步即可完成转换:先将格式字符串还原为真实emoji,再通过工具库转换为对应的语义名称。
步骤1:安装依赖库
我们需要emoji库完成emoji到名称的转换,执行以下命令安装:
pip install emoji
步骤2:编写转换逻辑
下面是完整的处理代码,可直接嵌入你的现有流程:
import os import pandas as pd import re import emoji # 原有加载CSV的逻辑保持不变 def load_csv(csv_name): path = os.getcwd() df = pd.read_csv(path + "/" + csv_name, header=0, index_col=0, parse_dates=True, sep=",", encoding="utf-8") return df # 新增转换函数:将<U+xxxx>格式字符串转为emoji def u_notation_to_emoji(text): # 正则匹配所有<U+码点>片段 pattern = re.compile(r'<U\+([0-9A-Fa-f]+)>') def replace_match(match): # 提取十六进制码点,转为整数后生成对应Unicode字符 code_point = int(match.group(1), 16) return chr(code_point) return pattern.sub(replace_match, text) # 读取CSV csv_name = "tweets_nikekaepernick.csv" df = load_csv(csv_name) # 单条测试 text = df["tweet_full_text"].iloc[0] # 先转成真实emoji emoji_text = u_notation_to_emoji(text) # 再转成语义名称,设置delimiters=('', '')可以去掉默认的前后冒号 emoji_name_text = emoji.demojize(emoji_text, delimiters=('', '')) print(emoji_text) # 输出:Hi 😂😂💀💀💀💀 print(emoji_name_text) # 输出:Hi face_with_tears_of_joyface_with_tears_of_joyskullskullskullskull
批量处理全量推文
如果需要处理整列的推文内容,直接调用apply方法即可:
df['processed_text'] = df['tweet_full_text'].apply(u_notation_to_emoji).apply(lambda x: emoji.demojize(x, delimiters=('', '')))
内容的提问来源于stack exchange,提问作者eoterochio
相关产品推荐
相关产品推荐

