You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python文本处理代码遇Unicodeescape语法错误,求r前缀添加位置

推特文本处理Python代码Unicode转义错误解决

错误信息

Cell In[11], line 82
"]+", flags=re.UNICODE)
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 11-19: truncated \UXXXXXXXX escape

问题定位

你误以为错误出在文件读取或用户名处理的代码段,但实际问题在**remove_emojis函数的正则表达式定义**中。

错误原因

Python会将普通字符串中的\U解析为Unicode转义序列,要求后面必须跟8位十六进制数。你的正则字符串里包含多个\U开头的Unicode范围,没有使用原始字符串标记,导致Python尝试解析这些\U,最终触发转义截断错误。

解决方案

给正则表达式字符串添加r前缀(转为原始字符串),同时修复函数内的变量名错误(把string改为tweet),修正后的remove_emojis函数如下:

def remove_emojis(tweet):
    # 添加r前缀,让Python不解析字符串内的转义字符
    remove_emojis = re.compile(r"[" 
        u"\U00002700-\U000027BF"  # Dingbats
        u"\U0001F600-\U0001F64F"  # Emoticons
        u"\U00002600-\U000026FF"  # Miscellaneous Symbols
        u"\U0001F300-\U0001F5FF"  # symbols & pictographs
        u"\U0001F680-\U0001F6FF"  # Transport & Map Symbols
        u"\U0001F1E0-\U0001F1FF"  # FLAGS (IOS)
        u"\U00002500-\U00002BEF"  # 中文字符
        u"\U00002702-\U00027B0"
        u"\U000024C2-\U0001F251"
        u"\U0001f926-\U000f937"
        u"\U00010000-\U0010ffff"
        u"\u2640-\u2642"
        u"\u2600-\u2B55"
        u"\u200d"
        u"\u23cf"
        u"\u23e9"
        u"\u231a"
        u"\ufe0f" # dingbats
        u"\u3030"
                      "]+", flags=re.UNICODE)
    # 修正变量名:将string改为传入的tweet参数
    return remove_emojis.sub(r'', tweet)

额外代码修复

你的remove_stopwords函数也存在逻辑错误,当前代码会把输入文本的每个字符当作独立元素处理,导致结果为嵌套列表。修正后的函数如下:

def remove_stopwords(tweet_text):
    return [word for word in gensim.utils.simple_preprocess(tweet_text) if word not in stop_words]

内容的提问来源于stack exchange,提问作者Nur Hidayah Athira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 14:25:00