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

Coursera深度学习NLP课程C3W2作业:tokenize_labels函数报错排查

问题排查与解决:tokenize_labels函数中的TypeError错误

问题场景

在Coursera深度学习专项课程NLP部分C3W2作业的tokenize_labels评分函数中,执行label_seq_np = np.array(label_seq)-1时触发如下错误:

TypeError: unsupported operand type(s) for -: 'list' and 'int'

函数代码如下:

def tokenize_labels(all_labels, split_labels):
    """
    Tokenizes the labels

Args:
    all_labels (list of string): labels to generate the word-index from
    split_labels (list of string): labels to tokenize

Returns:
    label_seq_np (array of int): tokenized labels
"""

### START CODE HERE

# Instantiate the Tokenizer (no additional arguments needed)
label_tokenizer = Tokenizer()

# Fit the tokenizer on all the labels
label_tokenizer.fit_on_texts(all_labels)

# Convert labels to sequences
label_seq = label_tokenizer.texts_to_sequences(split_labels)

# Convert sequences to a numpy array. Don't forget to substact 1 from every entry in the array!
label_seq_np = np.array(label_seq)-1 <----------- 出错位置

### END CODE HERE

return label_seq_np

错误原因

  1. Tokenizer.texts_to_sequences()返回嵌套列表结构:每个标签对应一个单元素子列表(如[[1], [2], [3]]),若存在未在all_labels中定义的标签,还会生成空列表[]。
  2. 直接将含空列表的嵌套列表转为numpy数组时,数组元素类型会变为object(即列表类型),此时执行-1操作会触发“列表与整数无法运算”的类型错误。
  3. 即使无空列表,转换后的二维数组也不符合题目要求的一维整数数组返回格式。

解决方案

先将嵌套列表展平为一维列表,再转换为numpy数组并执行减1操作:

修改后的核心代码如下:

### START CODE HERE

# Instantiate the Tokenizer (no additional arguments needed)
label_tokenizer = Tokenizer()

# Fit the tokenizer on all the labels
label_tokenizer.fit_on_texts(all_labels)

# Convert labels to sequences
label_seq = label_tokenizer.texts_to_sequences(split_labels)

# 展平嵌套列表(假设所有split_labels中的标签都在all_labels中,无空列表)
flattened_labels = [seq[0] for seq in label_seq]
# 转换为numpy数组并减1
label_seq_np = np.array(flattened_labels) - 1

### END CODE HERE

若需兼容未在词汇表中的标签(空列表场景),可添加默认值处理:

flattened_labels = [seq[0] if seq else 0 for seq in label_seq]

说明

作业中all_labels应包含split_labels的所有标签,因此无需处理空列表。展平后的一维列表转为numpy数组后,减1操作可正常执行,且返回结果符合题目要求的一维整数数组格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 02:50:37