From 77133eb9a0271cd0733c45d96d8f8a30724da3aa Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 5 Oct 2026 13:47:26 +0800 Subject: [PATCH] =?UTF-8?q?fix(viral=5Fvideo):=20#2188=20VLM=20outfit?= =?UTF-8?q?=E5=9B=9E=E5=A1=AB=E6=9C=8D=E8=A3=85=E5=85=B3=E9=94=AE=E8=AF=8D?= =?UTF-8?q?=E6=89=A9=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 原 cloth_kws 漏了'上衣/打底衫/罩衫/雪纺衫/西服/套装/网纱/短袖/长袖/无袖'等常见词, 导致'白色V领上衣''黑色透视网纱短袖上衣'等未命中,回退到通用'日常服装' - 扩充到40+关键词,覆盖衬衫/T恤/毛衣/外套/裙装/裤装/制服/通用上装词 - 提取窗口 ci-8/ci+4 → ci-12/ci+8,向前多抓颜色/材质形容词,向后多抓款式词 - 重复词(马甲/背心)清理 --- apps/worker/worker_app/tasks/viral_video.py | 55 ++++++++------------- 1 file changed, 20 insertions(+), 35 deletions(-) diff --git a/apps/worker/worker_app/tasks/viral_video.py b/apps/worker/worker_app/tasks/viral_video.py index 5f02a5150..2ce3eee74 100644 --- a/apps/worker/worker_app/tasks/viral_video.py +++ b/apps/worker/worker_app/tasks/viral_video.py @@ -495,47 +495,32 @@ def _analyze_single_image( _ptxt = _pn + " " + _pf # 服装关键词识别(常见上装/下装/裙装/套装) _cloth_kws = [ - "衬衫", - "T恤", - "毛衣", - "针织衫", - "卫衣", - "外套", - "西装", - "夹克", - "风衣", - "大衣", - "羽绒服", - "马甲", - "背心", - "连衣裙", - "半身裙", - "短裙", - "长裙", - "牛仔裤", - "休闲裤", - "西裤", - "运动裤", - "短裤", - "旗袍", - "汉服", - "制服", - "polo衫", - "POLO衫", - "针织", - "毛衫", - "开衫", - "帽衫", - "皮夹克", - "皮衣", + # 衬衫/T恤类 + "衬衫", "T恤", "POLO衫", "polo衫", "Polo衫", + "打底衫", "雪纺衫", "罩衫", "针织衫", + # 毛衣/卫衣/针织类 + "毛衣", "卫衣", "帽衫", "针织", "毛衫", "开衫", + # 外套/西装/夹克/风衣类 + "外套", "西装", "西服", "夹克", "皮衣", "皮夹克", + "风衣", "大衣", "羽绒服", "棉服", "棉服", "马甲", "背心", "开衫外套", + # 裙装 + "连衣裙", "半身裙", "短裙", "长裙", "百褶裙", "A字裙", "旗袍", + "汉服", "JK裙", + # 裤装 + "牛仔裤", "休闲裤", "西裤", "运动裤", "短裤", "阔腿裤", "打底裤", + # 制服/套装 + "制服", "套装", "职业装", "工装", + # 通用上装/下装词(兜底) + "上衣", "短袖", "长袖", "无袖", "半袖", "吊带", "背心", + "网纱", "雪纺", "真丝", "纯棉", "亚麻", ] for _ckw in _cloth_kws: if _ckw in _ptxt: _ci = _ptxt.find(_ckw) # 向前找颜色/材质/款式形容词(白/黑/米/红/蓝/灰/棉/麻/长/短/厚/薄/长袖/短袖/翻领/圆领/V领/印花/条纹等) - _start = max(0, _ci - 8) + _start = max(0, _ci - 12) # 向后包含款式词(长袖/短袖/外套/套装/上衣等后续修饰) - _end = min(len(_ptxt), _ci + len(_ckw) + 4) + _end = min(len(_ptxt), _ci + len(_ckw) + 8) _outfit_extract = _ptxt[_start:_end].strip(" ,,。.、") # 仅清理明确的品牌/产品类前缀(不清理颜色/款式/尺寸形容词) _outfit_extract = re.sub(