如何以编程方式对对象列表进行分类

我正在尝试对一个包含大量对象的列表(在本例中,是来自iTunes App Store的应用程序)进行更具体的分类。例如,目前有很多应用程序被归类为“教育”,但我想将它们进一步细分为生物学、英语、数学等类别。

这是一个人工智能/机器学习问题吗?我在这方面完全没有背景知识,但希望能得到一些资源或建议,了解如何开始这类工作。


回答:

是的,你的理解是正确的。分类是一个机器学习问题,而基于文本数据进行分类则涉及到自然语言处理。

经典的分类问题是使用朴素贝叶斯分类器进行垃圾邮件检测,这非常简单。其基本思路如下:

  1. 收集大量数据(电子邮件),并按类别(垃圾邮件或非垃圾邮件)标记它们
  2. 对于每封电子邮件,移除停用词,并获取该邮件中独特词汇的列表
  3. 现在,对于每个词,计算它出现在垃圾邮件中的概率与出现在非垃圾邮件中的概率(即在垃圾邮件和非垃圾邮件中分别统计其出现次数)
  4. 现在你有了一个模型——给定一个词,邮件是垃圾邮件的概率。然而,一封邮件包含多个词。在朴素贝叶斯中,你假设这些词是独立出现的(事实证明这是一个不错的假设),并将邮件中所有词的概率相乘。
  5. 通常,你会将数据分为训练集和测试集,因此你会有一组邮件用于训练模型,然后有一组标记好的数据用于测试,你可以计算精确度和召回率。

我强烈推荐你尝试使用NLTK,这是一个Python的机器学习和自然语言处理库。它非常用户友好,文档和教程也很不错,是进入这个领域的好方法。

编辑:这里有一个解释,说明如何构建一个简单的NB分类器并附有代码。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注