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

nltk.word_tokenize处理shape为(1999516,2)数据集报TypeError如何解决

解决方案

报错原因

TypeError: expected string or bytes-like object 报错源于comment列存在非字符串类异常值,最常见为缺失值NaN(属于float类型),传入分词方法时触发类型校验失败。同时200万行数据直接使用默认单线程apply执行效率极低,是长时间无返回的核心原因。

具体操作步骤

1. 预处理comment字段,清理异常值

先统一字段类型,处理空值,二选一即可:

  • 方案A:填充空值为空字符串,保留所有数据
import pandas as pd
import nltk

dataset = pd.read_csv('toxic_comment_classification_dataset.csv')
# 填充空值后强制转换为字符串类型
dataset['comment'] = dataset['comment'].fillna('').astype(str)
  • 方案B:删除comment列为空的行,仅保留有效数据
dataset = dataset.dropna(subset=['comment']).copy()
dataset['comment'] = dataset['comment'].astype(str)

2. 高效执行分词

原生单线程apply处理200万行数据耗时极长,推荐使用并行加速工具swifter提升效率:

# 先安装依赖:pip install swifter
import swifter

# 自动并行执行分词
dataset['tokenized'] = dataset['comment'].swifter.apply(nltk.word_tokenize)

如果不想安装额外依赖,可提前加载分词模型减少重复开销:

# 提前实例化分词器,避免运行时重复加载
tokenizer = nltk.tokenize.word_tokenize
dataset['tokenized'] = dataset['comment'].apply(tokenizer)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:24:01