求助:Jupyter Notebook调用Python模块时contractions.fix功能失效
问题分析与解决办法
核心问题1:text_cleaning.py模块未导入contractions库
你的清洗模块里直接调用了contractions.fix(),但模块内部没有导入contractions库。虽然Jupyter Notebook里导入了该库,但模块的运行环境是独立的,无法直接使用外部导入的库,导致这一步代码实际未执行(或抛出未捕获的NameError)。
核心问题2:Jupyter代码中的变量名错误
你定义的DataFrame变量是df,但调用函数时传入的是tweets[['text']],tweets变量未定义,这会直接抛出NameError,说明你实际运行的代码存在笔误。
修复步骤
- 修改
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
- 修正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'])
- (可选)更新
contractions库确保兼容性
如果仍有部分缩写未展开,执行命令更新库:
pip install --upgrade contractions
执行以上修复后,输出会变为:i miss him. can not wait to celebrate the tar,实现英文缩写的正常展开。
内容的提问来源于stack exchange,提问作者user22060742
相关产品推荐
相关产品推荐

