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

深度学习多标签文本分类分词时出现str与int比较的TypeError如何解决

错误原因

TypeError: '>=' not supported between instances of 'str' and 'int'

报错出现在tokenizer.sequences_to_matrix()调用阶段,你搞混了Tokenizer的调用顺序:sequences_to_matrix()的输入必须是已经转为整数索引序列的文本数据,但你现在传入的X_train、X_test还是原始的字符串格式文本,方法内部做数值比较的时候拿字符串和int做对比,直接触发类型错误。

同时你对标签的处理也有问题:多标签分类任务不需要调用keras.utils.to_categorical()做转换,这个方法是给单标签多分类任务做onehot编码用的,多标签场景直接用原始的0/1标签矩阵即可。

修复步骤
  • 先调用fit_on_texts()让Tokenizer学习训练集语料的词汇表
  • 再调用texts_to_sequences()把字符串格式的文本转为整数索引序列
  • 最后调用sequences_to_matrix()生成二进制特征矩阵
  • 删除标签的to_categorical()转换逻辑
修改后的对应代码段
tokenizer = Tokenizer(num_words=50000)
# 学习训练集词汇表
tokenizer.fit_on_texts(X_train)
# 文本转整数序列
X_train_seq = tokenizer.texts_to_sequences(X_train)
X_test_seq = tokenizer.texts_to_sequences(X_test)
# 用整数序列生成特征矩阵
X_train = tokenizer.sequences_to_matrix(X_train_seq, mode='binary')
X_test = tokenizer.sequences_to_matrix(X_test_seq, mode='binary')

# 删掉原有的to_categorical相关代码,多标签任务直接使用原始的label_train、label_test即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:36:02