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

基于SKU名称的分类模型选型:BigQuery ML与Colab适配咨询

基于SKU名称自动识别分类的解决方案(适配BigQuery ML/Google Colab)

一、BigQuery ML 方案(优先推荐)

BQML的分类模型完全适配你的场景,尤其适合处理带文本特征(SKU名称)的多分类问题(Category+Sub-Category),具体落地步骤如下:

1. 数据预处理

  • 将已标注的60% SKU数据与未标注的40%数据整合到同一张BigQuery表,核心字段需包含sku_name、category、sub_category(未标注项留空)
  • 对sku_name做文本清洗:去除特殊符号、统一大小写、拆分复合词,用BQ内置函数实现:
    SELECT
      REGEXP_REPLACE(LOWER(sku_name), r'[^a-zA-Z0-9\s]', '') AS cleaned_sku_name,
      category,
      sub_category
    FROM `your-project.your-dataset.sku_table`
    

2. 训练分类模型

针对Category和Sub-Category分别训练模型(更易调优),BQML支持直接对文本特征建模:

  • 训练Category分类模型:
    CREATE OR REPLACE MODEL `your-project.your-dataset.sku_category_model`
    OPTIONS(
      MODEL_TYPE='BOOSTED_TREE_CLASSIFIER',
      INPUT_LABEL_COLS=['category'],
      TEXT_FEATURE_COLUMNS=['cleaned_sku_name'],
      MAX_ITERATIONS=100
    ) AS
    SELECT
      cleaned_sku_name,
      category
    FROM `your-project.your-dataset.cleaned_sku_table`
    WHERE category IS NOT NULL
    
  • 训练Sub-Category分类模型:
    CREATE OR REPLACE MODEL `your-project.your-dataset.sku_subcategory_model`
    OPTIONS(
      MODEL_TYPE='BOOSTED_TREE_CLASSIFIER',
      INPUT_LABEL_COLS=['sub_category'],
      TEXT_FEATURE_COLUMNS=['cleaned_sku_name'],
      MAX_ITERATIONS=100
    ) AS
    SELECT
      cleaned_sku_name,
      sub_category
    FROM `your-project.your-dataset.cleaned_sku_table`
    WHERE sub_category IS NOT NULL
    
    注:类别数量较少时,也可改用LOGISTIC_REG模型,训练速度更快。

3. 批量预测与补全

对未标注SKU和每日新增SKU执行预测,同时输出置信度方便人工校验:

SELECT
  original_sku_name,
  predicted_category,
  category_confidence,
  predicted_sub_category,
  sub_category_confidence
FROM (
  SELECT
    sku_name AS original_sku_name,
    predicted_category,
    (SELECT MAX(prob) FROM UNNEST(predicted_category_probs)) AS category_confidence
  FROM ML.PREDICT(MODEL `your-project.your-dataset.sku_category_model`,
    (SELECT sku_name, REGEXP_REPLACE(LOWER(sku_name), r'[^a-zA-Z0-9\s]', '') AS cleaned_sku_name FROM `your-project.your-dataset.sku_table` WHERE category IS NULL))
) AS cat_pred
JOIN (
  SELECT
    sku_name AS original_sku_name,
    predicted_sub_category,
    (SELECT MAX(prob) FROM UNNEST(predicted_sub_category_probs)) AS sub_category_confidence
  FROM ML.PREDICT(MODEL `your-project.your-dataset.sku_subcategory_model`,
    (SELECT sku_name, REGEXP_REPLACE(LOWER(sku_name), r'[^a-zA-Z0-9\s]', '') AS cleaned_sku_name FROM `your-project.your-dataset.sku_table` WHERE sub_category IS NULL))
) AS sub_cat_pred
ON cat_pred.original_sku_name = sub_cat_pred.original_sku_name

二、Google Colab 方案(灵活度更高)

如果需要更精准的文本模型(比如预训练语言模型),可在Colab结合TensorFlow/PyTorch实现:

1. 数据准备

  • 通过google-cloud-bigquery库从BQ导出已标注数据,或直接上传本地CSV文件
  • 对SKU名称做预处理:分词、去除停用词、用BERT Tokenizer转成模型输入格式

2. 微调预训练模型

用BERT模型微调实现多输出分类,代码示例(TensorFlow):

import tensorflow as tf
from transformers import BertTokenizer, TFBertModel

# 加载预训练BERT组件
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
bert_backbone = TFBertModel.from_pretrained('bert-base-uncased')

# 构建多输出分类模型
input_ids = tf.keras.layers.Input(shape=(None,), dtype=tf.int32)
attention_mask = tf.keras.layers.Input(shape=(None,), dtype=tf.int32)
bert_output = bert_backbone(input_ids, attention_mask=attention_mask)[1]

# 分类输出层
category_output = tf.keras.layers.Dense(num_categories, activation='softmax', name='category')(bert_output)
sub_category_output = tf.keras.layers.Dense(num_sub_categories, activation='softmax', name='sub_category')(bert_output)

model = tf.keras.Model(inputs=[input_ids, attention_mask], outputs=[category_output, sub_category_output])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

# 训练模型
model.fit(train_dataset, epochs=3, validation_data=val_dataset)

3. 日常预测部署

  • 训练完成后将模型保存至Google Cloud Storage
  • 每日新增SKU时,在Colab或Cloud Functions中加载模型,执行批量预测

三、其他可选方案

  • Google Cloud AutoML Natural Language:无需编写代码,上传已标注数据即可自动训练最优模型,适合非技术人员快速落地
  • 开源基线方案:用Scikit-learn的TfidfVectorizer结合MultinomialNB实现轻量文本分类,快速验证效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:45:29