算法对产品列表进行分类?拿2

时间:2009-04-13 17:58:37

标签: algorithm machine-learning neural-network classification

几周前我问question similar这个问题,但我没有正确地问这个问题。所以我在这里重新询问有关更多细节的问题,我希望得到一个更加面向AI的答案。

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

  1. Seagate Hard Drive 500Go
  2. 希捷硬盘120Go笔记本电脑
  3. Seagate Barracuda 7200.12 ST3500418AS 500GB 7200 RPM SATA 3.0Gb / s硬盘
  4. 来自希捷的全新和新颖的500Go硬盘
  5. Seagate Barracuda 7200.12
  6. 希捷FreeAgent Desk 500GB外置硬盘银7200RPM USB2.0零售
  7. GE Spacemaker Laudry
  8. Mazda3 2010
  9. Mazda3 2009 2.3L
  10. 对于人类而言,硬盘驱动器3和5是相同的。我们可以更进一步,假设产品1,3,4和5是相同的,并将产品2和6放在其他类别中。

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

    感谢您的帮助!

2 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:8)

我会看一些Bayesian classification方法。它将涉及训练分类器以识别特定单词,以指示产品属于您的某个类的概率。例如,经过培训后,它可以认识到,如果产品描述中有“Seagate”,那么它有99%的可能性是硬盘,而如果它有“Mazda”则有97%的可能性它是一辆汽车。像“new”这样的词可能最终不会对任何分类产生太大影响,这就是你希望它运作的方式。

这样做的缺点是它通常需要相当大的训练数据集才能开始运作良好,但你可以设置它以便在生产过程中继续修改它的百分比(如果你注意到它分类不正确),最终会变得非常有效。

贝叶斯技术最近用于spam-filtering applications,因此最好对它在那里使用的方法进行一些阅读。