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

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

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


回答:

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

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

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

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

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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