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

求助:Jupyter Notebook调用Python模块时contractions.fix功能失效

问题分析与解决办法

核心问题1:text_cleaning.py模块未导入contractions库

你的清洗模块里直接调用了contractions.fix(),但模块内部没有导入contractions库。虽然Jupyter Notebook里导入了该库,但模块的运行环境是独立的,无法直接使用外部导入的库,导致这一步代码实际未执行(或抛出未捕获的NameError)。

核心问题2:Jupyter代码中的变量名错误

你定义的DataFrame变量是df,但调用函数时传入的是tweets[['text']],tweets变量未定义,这会直接抛出NameError,说明你实际运行的代码存在笔误。


修复步骤

  1. 修改src/text_cleaning.py,添加contractions导入
import contractions

def sub_step(df):
    df["text_clean"] = df["text"].apply(lambda x: x.lower())
    df["text_clean"] = df["text_clean"].apply(lambda x: contractions.fix(x))
    return df
  1. 修正Jupyter Notebook中的变量名错误
import pandas as pd
import contractions
import src.text_cleaning

data = {'text': ["I miss him. Can't wait to celebrate the Tar"]}
df = pd.DataFrame(data)

# 将tweets改为df,匹配前面定义的变量
res = src.text_cleaning.sub_step(df[['text']])
print(res.iloc[0]['text_clean'])
  1. (可选)更新contractions库确保兼容性
    如果仍有部分缩写未展开,执行命令更新库:
pip install --upgrade contractions

执行以上修复后,输出会变为:i miss him. can not wait to celebrate the tar,实现英文缩写的正常展开。

内容的提问来源于stack exchange,提问作者user22060742

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 07:13:22