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

Colab中texthero与gensim版本适配regex报错求助

解决方案

错误原因

这个报错是因为pandas版本更新后,str.replace()的默认regex参数从True改为False,而你使用的texthero 1.0.5内部代码中,使用正则表达式作为替换模式时没有显式指定regex=True,导致触发参数冲突。之前的FutureWarning就是pandas提前告知这个参数默认值的变更,现在新版本pandas生效后就从警告转为错误。

具体解决方法

  • 方法一:修复texthero源码(Colab环境下)

    1. 先定位texthero的源码路径,执行命令:
      !find /usr/local/lib/python3.*/dist-packages/texthero -name preprocessing.py
      
    2. 打开输出路径中的preprocessing.py文件,找到触发警告的代码行:
      return input.str.replace(r"^\d+\s|\s\d+\s|\s\d+$", " ")
      
    3. 修改为显式指定regex=True的版本:
      return input.str.replace(r"^\d+\s|\s\d+\s|\s\d+$", " ", regex=True)
      
    4. 保存文件后,重启Colab运行时即可生效。
  • 方法二:降级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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 03:12:20