【问题标题】:Algorithm to classify a list of products? Take 2对产品列表进行分类的算法?拿 2
【发布时间】:2010-10-19 04:34:53
【问题描述】:

几周前我向这个人问了一个question similar,但我没有正确地问这个问题。所以我在这里用更多细节重新提出这个问题,我想得到一个更面向人工智能的答案。

我有一个代表产品的列表,它们或多或少是相同的。例如,在下面的列表中,它们都是希捷硬盘。

  1. 希捷硬盘 500Go
  2. 希捷硬盘 120Go 笔记本电脑
  3. 希捷 Barracuda 7200.12 ST3500418AS 500GB 7200 RPM SATA 3.0Gb/s 硬盘
  4. 希捷全新闪亮的 500Go 硬盘
  5. 希捷梭子鱼 7200.12
  6. 希捷 FreeAgent Desk 500GB 外置硬盘 银色 7200RPM USB2.0 零售
  7. GE Spacemaker Laudry
  8. 马自达3 2010
  9. 马自达3 2009 2.3L

对于人类来说,硬盘 3 和 5 是相同的。我们可以更进一步,假设产品 1、3、4 和 5 相同,并将产品 2 和 6 放在其他类别中。

在我之前的问题中,有人建议我使用特征提取。当我们有一个预定义描述的小数据集(所有硬盘驱动器)时,它工作得很好,但是所有其他类型的描述呢?我不想开始为我的应用程序可能面临的所有描述编写基于正则表达式的特征提取器,它无法扩展。 有什么机器学习算法可以帮助我实现这个吗?我能得到的描述范围很广,在第一行,可能是冰箱,然后在下一行,一个硬盘。我应该尝试走神经网络路径吗?我的输入应该是什么?

感谢您的帮助!

【问题讨论】:

    标签: algorithm machine-learning neural-network classification


    【解决方案1】:

    我会看一些Bayesian classification 方法。这将涉及训练分类器以识别特定单词,以指示产品属于您的类别之一的概率。例如,经过培训,它可以识别出如果产品描述中包含“Seagate”,则有 99% 的可能性是硬盘,而如果产品描述中有“Mazda”,则有 97% 的可能性是汽车。像“新”这样的词可能最终不会对任何分类做出太大贡献,这是您希望它工作的方式。

    这样做的缺点是它通常需要相当大的训练数据语料库才能开始正常工作,但您可以对其进行设置,以便它在生产时继续修改其百分比(如果您注意到它分类错误的东西),它最终会变得非常有效。

    贝叶斯技术最近在spam-filtering applications 中被大量使用,因此最好了解一下它在那里的使用方式。

    【讨论】:

      【解决方案2】:

      您应该同时查看clusteringclassification。您的类别似乎是开放式的,因此表明聚类可能更适合该问题。 至于输入表示,您可以尝试提取单词和字符n-grams。您的相似性度量可能是常见 n-gram 的计数,或something more sophisticated。您可能需要手动标记生成的集群。

      【讨论】:

        猜你喜欢
        • 2010-10-16
        • 1970-01-01
        • 2021-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-05
        • 1970-01-01
        相关资源
        最近更新 更多