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

调用Keras Tokenizer的fit_on_texts时报'int'无lower属性错误如何解决

Keras Tokenizer处理文本时报错AttributeError: 'int' object has no attribute 'lower'解决方案

报错原因

报错的根本原因是d['POS_words']列中存在整数(int)类型的元素,并非所有内容都是字符串。Tokenizer默认开启lower=True参数,会自动对输入文本调用lower()方法转小写,而整数类型没有该方法,因此触发报错。

解决步骤

  • 第一步:将目标列统一转为字符串类型,再传入Tokenizer处理,修改后的代码如下:
tokenizer=Tokenizer(num_words=1000, split=' ')
# 整列转字符串后再输入
tokenizer.fit_on_texts(d['POS_words'].astype(str).values)
x = tokenizer.texts_to_sequences(d['POS_words'].astype(str).values)
  • 第二步(可选优化):由于你的数据包含C#、+91这类带特殊符号的内容,Tokenizer默认的filters参数会过滤掉#、+等符号,导致识别异常,可以自定义过滤规则保留需要的符号:
# 去掉默认过滤规则中的#、+符号,保留其他不需要的符号过滤逻辑
custom_filters = '!"$%&()*,-./:;<=>?@[\\]^_`{|}~\t\n'
tokenizer=Tokenizer(num_words=1000, split=' ', filters=custom_filters)
  • 第三步(可选排查):如果需要确认列中的非字符串内容,可以执行以下代码定位异常值:
for val in d['POS_words'].values:
    if not isinstance(val, str):
        print(f"异常值:{val},类型:{type(val)}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:48:01