基于多个参数和非标准描述的分层类别的产品分类

数据挖掘 机器学习 Python 分类 文本挖掘 算法
2022-02-28 01:28:19

我想在我的公司开始一个机器学习项目,对于支出分析师来说,一个非常大的痛苦是对买家订购的维护、工具、原材料等产品进行分类,因为采购订单上的描述是自由文本,人们可以写几乎任何东西(通常是订单被批准的最低限度)

一些重要的考虑因素是:

  • 由于公司是全球性的,因此描述的语言是本地语言(德语、西班牙语、英语、俄语、中文等)

  • 句子结构没有标准

  • 人们可以输入缩写

  • 对于某些产品,买家不定义该零件是维修零件还是全新产品

我已经阅读了有关用于文本分析的 sklearn 库的信息,但我对机器学习算法真的很陌生(我已经基本完成了基本教程)。大部分例子都是用来分析推文或抱怨的,但如果我想考虑文本以外的变量,比如数量、单一价格、提供者和其他参数,我不知道从哪里开始;另外,我的类别是基于某些规则的四个级别的层次结构(例如,如果单价超过X,则属于A类)

数据库的一个示例可能是:

DESCRIPTION                             uom    Mgroup   Provider     Category   Unit    Spend     Total Quantity
CATALOG: A6-CJR-45 XRE:    N/A C-RING   FT     A        Prov1        31000000   5.1     $5.10     1
Contactor iec, 9a, 24v dc, 50/60hz (    FT3    B        Prov2        32131000   82      $164.00   2
Ducto ranurado de 2 x 3, color gris,    BAL    C        Prov1        32131000   24.34   $486.80   20
Modulo de 8 salidas aisladas 5-235 vc   ST     B        Prov2        32131000   254.74  $764.22   3
Selector no-il. plastico 2 pos. mant.   ST     B        Prov3        32131000   6.46    $32.30    5
(ELEC-L2GEW4) TERMINAL TIPO LENGÜETA P	SER    D        Prov2        39120000   3.77    $56.55    15
2 Position Selector Switch - Plastic,   M      E        Prov2        23161500   9.89    $69.23    7

所以我的问题是,我可以从哪里开始调查?哪种算法最适合解决这个问题?

谢谢!

1个回答

我正在研究一个类似的问题,我们将 200 万种产品分为大约 1000 个类别。我使用 tf-idf 向量化转换产品描述,然后使用 SVM 运行监督分类。您可以使用 Python 中的 sklearn 包对自然语言处理进行很多优化。此外,我很挣扎,因为我想包括文本描述之外的其他功能。sklearn 中有一个联合方法可以实现这一点。最终模型的分类准确率约为 90%,但在 1000 个类别中,有相当多的类别在测试集中的准确率较低。这可能是由于这些类的训练样本太少。因此,只需确保在构建模型时每个类都有足够的训练样本。