Colab中texthero与gensim版本适配regex报错求助
解决方案
错误原因
这个报错是因为pandas版本更新后,str.replace()的默认regex参数从True改为False,而你使用的texthero 1.0.5内部代码中,使用正则表达式作为替换模式时没有显式指定regex=True,导致触发参数冲突。之前的FutureWarning就是pandas提前告知这个参数默认值的变更,现在新版本pandas生效后就从警告转为错误。
具体解决方法
方法一:修复texthero源码(Colab环境下)
- 先定位texthero的源码路径,执行命令:
!find /usr/local/lib/python3.*/dist-packages/texthero -name preprocessing.py - 打开输出路径中的
preprocessing.py文件,找到触发警告的代码行:return input.str.replace(r"^\d+\s|\s\d+\s|\s\d+$", " ") - 修改为显式指定
regex=True的版本:return input.str.replace(r"^\d+\s|\s\d+\s|\s\d+$", " ", regex=True) - 保存文件后,重启Colab运行时即可生效。
- 先定位texthero的源码路径,执行命令:
方法二:降级pandas到兼容版本
执行以下命令,将pandas降级到默认regex=True的版本(与texthero 1.0.5兼容):!pip install pandas==1.5.3 !pip install "gensim==4.2.0" "texthero==1.0.5"完成后重启Colab运行时。
方法三:手动实现数字清理逻辑
跳过texthero的内置函数,自己实现对应的文本处理逻辑,彻底避免依赖库的版本冲突:import pandas as pd def custom_remove_numbers(text_series): # 和texthero原逻辑一致,显式指定regex=True return text_series.str.replace(r"^\d+\s|\s\d+\s|\s\d+$", " ", regex=True) # 替换你原来调用texthero.remove_numbers的代码 # 示例:假设你的文本列名为text,处理后存入clean_text df['clean_text'] = custom_remove_numbers(df['text'])
内容的提问来源于stack exchange,提问作者lucasa.lisboa
相关产品推荐
相关产品推荐

