【问题标题】:Text classification/categorization algorithm [closed]文本分类/分类算法[关闭]
【发布时间】:2011-04-04 19:26:55
【问题描述】:

我的目标是[半]自动将文本分配到不同的类别。有一组用户定义的类别和每个类别的一组文本。理想的算法应该能够从人为定义的分类中学习,然后自动对新文本进行分类。 任何人都可以建议这样的算法,也许是实现ше的.NET库?

【问题讨论】:

    标签: algorithm text-mining document-classification


    【解决方案1】:

    这样做并非易事。显然,您可以构建一个将某些关键字映射到类别的字典。只需找到一个关键字就会建议某个类别。

    然而,在自然语言文本中,关键字通常不会采用词干形式。您需要一些形态学工具来查找词干形式并将其用于字典。

    但是有人可能会这样写:“这篇文章不是关于……”。这将引入对语法和语义分析的需求。

    然后您会发现某些关键字可以用于多个类别:“乐队”可以用于音乐、技术甚至手工艺品。因此,如果不确定,您将需要一个本体和统计或其他方法来权衡要选择的类别的概率。

    有些关键词甚至可能不容易融入本体:数学家更接近程序员还是园丁?但是您在问题中说类别是由男性构建的,因此他们也可以帮助构建本体。

    在这里查看computational linguisticsWikipedia 以进行进一步研究。

    现在,你的文本来自的领域越窄,它们就越有条理,词汇量越小,问题就越容易。

    再进一步研究一些关键词:形态学、句法分析、语义学、本体论、计算语言学、索引、关键词

    【讨论】:

      【解决方案2】:

      自动文本分类有多种方法。朴素贝叶斯分类器可能是其中最简单的一个。另一个是您可以使用的 K-最近邻。 categorization of text 上的这个谷歌答案可能会对您有所帮助。

      【讨论】:

      • 您提供的链接的Up-V。答案经过了严格的研究,其中总结的信息令人震惊。谢谢!我希望我能给一个答案 10 票。
      • 链接很好,可能相当稳定,但 Stack Overflow 的答案应该是独立的。您能否至少简要总结一下您链接到的资源?
      【解决方案3】:

      观看我关于这个主题的视频系列。

      http://vancouverdata.blogspot.com/2010/11/text-analytics-with-rapidminer-loading.html

      分类在视频 5 中,但其他视频可能会帮助您快速了解。

      这一切都基于 FOSS 程序 RapidMiner。

      【讨论】:

        【解决方案4】:

        查看this example from scikit learn。示例中应用了一大堆不同的算法,因此您可以比较结果。

        【讨论】:

        • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
        • 在这种情况下,答案确实是使用那个特定的框架,我已经在我的答案中命名了它。哪种算法更适合取决于数据。
        【解决方案5】:

        支持向量机。每个人都喜欢支持向量机。你需要做很多阅读,甚至可能买一本书。但是你可以先阅读a paper 看看你是否喜欢这个想法。

        【讨论】:

        • 一位比我了解更多的朋友说“SVM 确实是一个明智的选择 Tom。不过,如果您有大型数据集,有更有效的技术可以为您提供类似的结果.. . 每个类别有多少训练样本?”,我回答说“不确定,我问别人。但不是很多,我想。”,他反过来回答“好吧,简单的答案是 SVM将是一个很好的起点。”。所以现在你知道了。
        • 更难用 SVM 进行多类分类。使用朴素贝叶斯或 knn 会更容易
        【解决方案6】:

        这些方法的总称是“多变量方法”。通过搜索“文本分类”或“文本分类”应该会带来一些有用的线索。祝你好运!

        【讨论】:

          【解决方案7】:

          我一直在寻找这个问题的答案。今天我找到了我的答案。

          有一个名为“dbacl”的开源程序可以做到这一点。它将文档分类为您喜欢的多个类别(最多为某个最大值)。

          说“不平凡”之类的其他答案都是正确的,但是拥有一个易于使用的包来完成困难的工作有助于使其易于管理。

          【讨论】:

          • 虽然这是一个有用的现成实用程序,但问题和本网站都是关于编程问题,而不是找到有用的实用程序。因此,这个答案也许应该是一个评论。
          • 同意,如果“编程”是主题,那么标准实用程序是题外话。另一方面,开源程序允许您对其进行调查并提取所使用的算法。我将最初的问题视为:“我有这个问题想要解决,如有必要,我愿意自己编程”。鉴于此,标准实用程序将帮助最初的提问者以及最终遇到类似问题的人。 "。
          猜你喜欢
          • 2015-11-10
          • 2011-04-22
          • 2020-04-18
          • 2014-03-13
          • 1970-01-01
          • 2018-02-13
          • 1970-01-01
          • 2017-08-02
          • 2016-06-14
          相关资源
          最近更新 更多