0

我正在尝试获取一长串对象(在这种情况下,是来自 iTunes App Store 的应用程序)并更具体地对它们进行分类。例如,目前有很多应用程序被归类为“教育”,但我想将它们标记为生物学、英语、数学等。

这是一个人工智能/机器学习问题吗?我在该领域没有任何背景,但想要一些关于从哪里开始做这类事情的资源或想法。

4

2 回答 2

3

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

规范分类问题是使用朴素贝叶斯分类器的垃圾邮件检测,非常简单。思路如下:

  1. 收集一堆数据(电子邮件),并按类别(垃圾邮件或非垃圾邮件)标记它们
  2. 对于每封电子邮件,删除停用词,并获取该电子邮件中唯一单词的列表
  3. 现在,对于每个单词,计算它在垃圾邮件和非垃圾邮件中出现的概率(即计算垃圾邮件和非垃圾邮件中的出现次数)
  4. 现在你有了一个模型——一封电子邮件是垃圾邮件的概率,假设它包含一个词。但是,一封电子邮件包含许多单词。在朴素贝叶斯中,您假设单词彼此独立出现(事实证明这是一个好的假设),并将电子邮件中所有单词的概率相乘。
  5. 您通常将数据划分为训练和测试,因此您将拥有一组用于训练模型的电子邮件,然后是一组您在计算精度和召回率的地方进行测试的标记材料。

我强烈推荐使用 NLTK,一个 python 机器学习和 nlp 库。它非常用户友好,有很好的文档和教程,是熟悉该领域的好方法。

编辑:这里解释了如何用代码构建一个简单的 NB 分类器。

于 2012-07-31T21:43:29.473 回答
2

可能不是。您需要做一些工作才能以某种可用的形式(例如姓名)提取数据,而且归根结底,可能没有足够的类别来手动识别列表每个类别的关键字,并在标题/描述上设置一个松散的解析器。

例如,您可以浏览六个生物学应用程序,并意识到在名称/描述/您可以访问的任何内容中,“细胞”、“生命”和“生长”等词经常出现 - 而不是结果一些机器学习,但由于你自己的人类直觉。因此,构建一个解析器,将带有这些词的所有内容分类为生物学应用程序,并为其他类别做类似的事情。

除非您尝试对整个 iTunes 应用商店进行分类,否则就足够了,而且您手动检查具有多个分类或没有分类的任何应用程序将是一项相对较小的任务。使用简单的解析器 + 手动检查异常所涉及的劳动可能远远少于构建更复杂的解析器以帮助机器学习、设置机器学习然后再次检查所有内容所涉及的劳动,因为机器学习并不是 100% 准确的.

于 2012-07-29T22:25:16.733 回答