当前位置: 首页 > news >正文

对商品分类系统的若干问题的思考

   科学研究的目的就是研究事物的特征,并根据共同的特征加以分类

        商品分类是商业,制造业中最普遍的活动,几乎所有的企业,电商平台都要对销售的商品,使用的原材料(BOM)进行分类和编号。

       商品分类貌似没有多少技术含量,它是数字化转型的重要基石。一个不合理的分类方法会导致混乱和难以使用。

现有商品分类系统遇到的问题

各种标准化组织和机构提出了分类系统,它们包括:

  •  UNSPSC
  •   GS1
  • ETIM
  • ECL@SS
  • IEC 61360

      它们有的是公开免费的,有的是收费服务的。分类方式也各不相同。使用这些分类标准面临各种挑战。

      我们以gs1为例,讨论现有商品分类中遇到的问题。

       GS1全球商品分类标准(Global Product Classification, GPC)不断扩展更新,每年发布两个新版本。GPC分类代码按照大类(Segment)、中类(Family)、小类(Class)、细类(Brick)来划分,并细分为具体的商品核心属性类型和属性值。商品数据交换中,通常采用第4级代码,即细类代码。

    但是这种4级分类仍然不够细。进一步细分只能依靠属性(attributes)来分类了。例如服装的分类如下

Segment 67000000服装

Segment67000000 服装Family67040000内衣Family67010000服装Class67010800上半身服装或上衣Brick10001361上半身服装、上衣组合装Brick10001350夹克、外套、羊毛衫、马甲Brick10001351毛衣、套头毛衣Brick10001352长袖衬衫、女式衬衫、马球衫、T恤

显然这样的分类不够的,需要进一步细分 ,比如男女,风格,材料等。

属性,特征和特性区别

      在讨论信息模型时,经常提到属性(attribute),特征(Property)和特性(Feature),有的地方使用attribute ,有的地方使用特征(Property)或者特性(Feature) ,那么它们到底有什么区别呢?

      我们知道,模型是事物的简单描述。模型描述了事物的特征(Property)以及与其它事物的关系(Relationship)。

        从分类的视角看,事物是通过某些主要特征来分类的,主要特征相同的商品被分为一类。这主要特征称为属性(attribute),我们能够体会属性与特征的不同,用于分类的特征是属性。

       在某些分类系统中,属性是类别中默认的。而商品的描述中包含了某些特征(Property),而在一些分类系统中不仅规定了类别,又定义了属性

     例如服装的性别,gs1 提供了属性和属性值

        而Feature (特性)是增加功能或吸引力的独特方面或品质。这些方面通常作为卖点进行推广或突出显示。它们是旨在带来特定优势或功能的元素,使产品从竞争对手中脱颖而出。特性可以理解为独特的特征。

     例如:毛衣的属性及性别的属性值

Brick10001351毛衣、套头毛衣Attribute20000045消费者年龄段Attribute20001131性别Attribute Value30004039男性(雄性)Attribute Value30003891女性(雌性)Attribute Value30002518尚未确定的Attribute Value30002515未分类的Attribute Value30004340中性的Attribute20003164是否带帽Attribute20001141是否保暖Attribute20001941服装袖长Attribute20000794材料类型Attribute20001942毛衣、套头毛衣类型

     笔者主张在产品分类系统中只有类别,不包含属性。而在商品描述中包含特征(Property)。这样更加清晰一点。而Feature 更多地包含的宣传文档中。

 分类系统的挑战

常见的分类系统有下列几种:

GS1ETIMECL@SSUNSPSC
SEGMENTGroupSegmentsSegment
FAMILYClassMain GroupsFamily
CLASSGroupsClass
BRICKCommodity classesCommodity
Business Function

     但是它们之间的分类方式是不同的。

        比如:医疗设备。 在GS1 中是一个Brick,而在ECL@SS 中是一个Segment,这就意味着在ECL@ 中,医疗设备分的更细 。

 相比ECL@SS 而言,gs1 的分类过于宽泛。

分类系统的颗粒度

        到底分类到多细才合适呢?这也许没有明确的答案,侧重点不同,分类的颗粒度也不同,在笔者看来,分类系统的颗粒度与产品属性的颗粒度有关。最底层的项目,应该具有相同的属性。

        某种意义上讲,属性也是一种分类。可以将分类变成属性例如:性别。你可以将服装分类为男性服装,女性服装,儿童服装,成人服装和老年服装。当然你也可以在服装中,定义:适应性别,适应年龄段属性。

我们的研究更倾向在gs1 的基础上进一步细分,将gs1与ecl@ss 结合起来。构建6 级分类系统

  • Segnment
  • Family
  • Brick
  • Main Group
  • Group
  • Commodity

这样的安排的好处

  •   商品分类的颗粒度更细,符合商业分类的习惯
  •   有利于引用ECL@SS 的属性
  •   有利于gs1和ECL@SS 的映射和转换
  •   采用12位分类编码,能够细分更多的商品,前三层对应gs1编码,后三层对应ECL@SS 的MainGroup,Group和Commodity

  

商品的特征

商品的模型是由商品的特征(Property)组成的。分类系统与商品特征结合在一起,形成了如下分层结构。

  • Segnment
  • Family
  • Brick
  • Main Group
  • Group
  • Commodity
    • Property
      • Property
        • Property

     这种方式在gs1 的BRICK 基础上进一步细分,商品特征描述提供了商品信息模型。

分类系统与产品信息管理系统的关系

       分类系统的主要用途是商品的信息管理(PIM),确切地讲,分类系统是产品的模型,而商品是产品模型的实例及其组合。需要将分类系统和PIM 系统区分开来,分类数据库中每一项对应一个商品类型,而产品数据库中的每一项是一个产品的SKU(库存量单位)。SKU 包含了无包装单元,单品,包装和托盘。无包装单元对应GS1 中的一个类。而单品,包装箱和托盘包含了SKU 的其它一些信息。比如SKU 的名称,图片,重量,价格等等。

        商品的基本属性与SKU 的属性是不同的,如果将所有的SKU 信息包含到分类系统中,会引起混乱。将它们分开视乎更合理。

   分类系统的项目是无包装单元的属性

BMEcat

  BMEcat 是一个目录交换标准,创建于 1999 年,由德国 BME - Bundesverband Materialwirtschaft, Einkauf und Logistik e. V.. 协会开发。该标准基于 XML,完全开放且不收取任何费用,其最新版本是 BMEcat 2005。 

        供应链中的所有合作伙伴(制造商、批发商、供应商)都在交换越来越多的数据,而不同的数据格式使流程复杂化。通过使用 BMEcat 标准化信息系统之间的通信,大大降低了所有参与公司的成本。

PIM的数据模型

  •  产品模型
  • 机构模型
  • 测量单位

产品模型 

{"ID":"产品ID""Name":"商品名称","Type":["无包装单元","单品","包装箱","托盘"],"Items":[{"Code":"单元的编码","Type":"单元类型","Number":1}] "Supply":{"Name":"供应商名称","Id":"供应商ID",}"Brand":"品牌","Measurement":{"Length":"长度","Width”:"宽度","Height":"高度"},"Images":[{}]"Documents":[{}] 
"Price":"价格"}

结论

  分类系统是数字化转型的重要基石。同时它也是十分费时的辛苦工作。也许chatGPT AI 工具能够提升构建分类系统的效率。本文提出了目前几种分类系统存在的问题,并且提出了自己的看法。下一步我们将问题进一步的细化。从中发现更多的问题和解决方法。

   

相关文章:

对商品分类系统的若干问题的思考

科学研究的目的就是研究事物的特征,并根据共同的特征加以分类 商品分类是商业,制造业中最普遍的活动,几乎所有的企业,电商平台都要对销售的商品,使用的原材料(BOM)进行分类和编号。 商品分类貌似…...

javascript中Number 类型 在实际开发中常用的一些操作方法

在 JavaScript 中,Number 类型是非常基础的数据类型之一,用于表示整数和浮点数。除了基本的算术运算外,还有许多内置的方法可以帮助你处理数字。下面列举了一些在实际开发中常用的 Number 类型的操作方法: 1. 转换方法 Number()…...

部分解决FDTD安装后,matlab指令fopen报错

今天在新的win11电脑上安装FDTD时,发现在C:\Program Files目录中并没有Lumerical文件夹,把激活文件粘贴过去后虽然能正常启动,但对于matlab link FDTD过程中无法响应以下代码: setenv(PATH, [getenv(PATH) ;C:\Program Files\Lum…...

[python3] 处理函数的重试

tenacity是一个 Python 库,用于简化重试逻辑的实现。它提供了装饰器和工具函数,使得在函数执行失败时可以自动重试。以下是对tenacity库的详细介绍: 一、安装 可以使用pip安装tenacity: pip install tenacity二、主要概念和功能…...

鸿蒙开发之ArkTS 界面篇 一

建好一个工程后,右侧可以预览,看到效果,效率十分可以,如图: State message: string 鸿蒙开发入门篇; 这个字符串改成什么,右侧就显示什么 Entry是类装饰器,可以简单的理解为程序入口的必须的装饰器&…...

嵌入式Linux学习笔记(6)-线程处理、线程同步、线程池(c语言实现)

一、概述 线程是一种轻量级的并发执行的机制。线程是进程中的一个实体,它执行在同一进程的上下文中,共享同一内存空间,但拥有独立的栈空间。 C语言的线程使用pthread库实现,通过包含头文件 pthread.h 来使用相关的函数和数据类型 …...

【HTTP】请求“报头”(Host、Content-Length/Content-Type、User-Agent(简称 UA))

Host 表示服务器主机的地址和端口号 URL 里面不是已经有 Host 了吗,为什么还要写一次? 这里的 Host 和 URL 中的 IP 地址、端口什么的,绝大部分情况下是一样的,少数情况下可能不同当前我们经过某个代理进行转发。过程中&#xf…...

【刷题日记】43. 字符串相乘

43. 字符串相乘 其实就是大数乘法题,这道题用草稿纸演练一下,其实很好找到方法,模拟大数乘法即可。需要注意的是进位和迭代值,还有注意向下取整和去除前导0(容易遗漏)。去除前导0的时候还要注意如果全是0&…...

Verilog学习之旅~

记录Verilog的学习日常~ 第一阶段:牛客网刷题 1.Verilog快速入门 基础语法 VL1:四选一多路器:case语句、条件表达符; VL2:异步复位的串联T触发器:T触发器的基本功能及代码实现、异步复位的概念; VL3:奇偶校验:缩…...

linux之mysql安装

1:mysql安装包下载 下载地址 可私信我直接获取安装包 2:linux下wget命令下载 下载地址 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz3:手动安装 将自己的安装包上传到对应的位置 解压 压缩包 使用命令 tar -zxvf mysql-5.7…...

单身狗的逆袭之路之开发相亲交友系统

在这个充满机遇与挑战的时代,单身人士渴望找到属于自己的幸福。然而,在忙碌的工作与生活中,他们往往难以抽出时间去拓展社交圈。相亲交友系统的出现,无疑是为这些“单身狗”提供了一个逆袭的机会。通过相亲交友系统,用…...

【Spring】IocDI详解(6)

本系列共涉及4个框架:Sping,SpringBoot,Spring MVC,Mybatis。 博客涉及框架的重要知识点,根据序号学习即可。 有什么不懂的都可以问我,看到消息会回复的,可能会不及时,请见谅!! 目录 本系列共…...

Redis系列之底层数据结构SDS

Redis系列之底层数据结构SDS 实验的环境 Redis 6.0VSCode 1.88.1 什么是SDS? SDS:Simple Dynamic String,翻译为简单动态字符串。SDS是一种用于存储二进制数据的数据结构,具有动态扩容的特点,代码位于src/sds.h和src/sds.c …...

【STM32】esp8266连接wifi

1.配置stm32cubemx 使用串口二接收esp8266的数据,单片机接收,使用串口1将数据发送给串口助手 串口2波特率设置74880,串口1设置115200 在初始化的时候需要将复位引脚拉低20ms,然后再拉高20ms, 设置GPIOB的输出模式 对PB12做输出处理 2.…...

网络运维故障处理

本篇纯是之前的工作经验做一个分享,大家看个热闹就好。 1.突然的断网,在上家上班的时候,有一天突然下午厂区内开始出现大面积网络卡顿,teams,outlook不好使等情况,且网盘也上不去,所以开始排查…...

C++第十一节课 new和delete

一、new和delete操作自定义类型 new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间还会调用构造函数和析构函数&#xff08;new会自动调用构造函数&#xff1b;delete会调用析构函数&#xff09; class A { public:A(int a 0): _a(a){cout <&l…...

【爱给网-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…...

苹果为什么不做折叠屏手机?

苹果为什么不做折叠屏手机&#xff1f;折叠屏手机在最近这些年里边&#xff0c;可以说是市场的一个主要在手机上的增长点。你像华W最近推出这个三折叠手机&#xff0c;引起了整个市场的轰动。 可是&#xff0c;为什么苹果到今天为止不为所动&#xff0c;还在那不停地在现在的这…...

目标检测经典算法的个人理解

one stage 1、RCNN -> Fast-RCNN&#xff1a;RPN部分从用传统的算法 -> 用深度学习网络来实现。 2、Fast-RCNN -> Faster-RCNN&#xff1a;从先选region再求Feature -> 先求Feature再选region。 two stage 1、SSD&#xff08;2016&#xff09;&#xff1a;VGG做…...

FewShotChatMessagePromptTemplate 和 FewShotPromptTemplate区别

FewShotChatMessagePromptTemplate 和 FewShotPromptTemplate 都是 LangChain 框架中用于少样本学习的提示模板&#xff08;Prompt Template&#xff09;&#xff0c;但它们在设计和用途上存在一些区别。 FewShotChatMessagePromptTemplate 用途&#xff1a;主要用于聊天场景…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...

ubuntu22.04有线网络无法连接,图标也没了

今天突然无法有线网络无法连接任何设备&#xff0c;并且图标都没了 错误案例 往上一顿搜索&#xff0c;试了很多博客都不行&#xff0c;比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动&#xff0c;重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落&#xff0c;一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延&#xff0c;滚滚浓烟弥漫开来&#xff0c;周围群众的生命财产安全受到严重威胁。就在这千钧一发之际&#xff0c;消防救援队伍迅速行动&#xff0c;而豪越科技消防一体化安全管控平台构建的消防“…...