【问题标题】:N-grams vs other classifiers in text categorizationN-gram 与文本分类中的其他分类器
【发布时间】:2013-12-17 10:18:03
【问题描述】:

我是文本分类技术的新手,我想知道用于文本分类的 N-gram 方法与其他基于分类器(决策树、KNN、SVM)的文本分类之间的区别。

我想知道哪个更好,n-gram 是否属于分类器? n-gram 是否克服了分类器技术的任何缺点?

我在哪里可以获得有关所有这些技术的比较信息。

提前致谢。

【问题讨论】:

    标签: machine-learning data-mining classification n-gram text-classification


    【解决方案1】:

    我实际上会发布一个完整的答案,因为我认为很明显你可以使用 n-gram 模型作为分类器(就像你可以使用任何特征的概率模型一样) )。

    生成分类器将感兴趣的后验 p(class | test doc) 近似为:

    p(c|t) \propto p(c) p(t|c)

    其中 p(c) 是 c 的先验概率,p(t|c) 是可能性。分类选择所有 c 的 arg-max。一个 n-gram 语言模型,就像朴素贝叶斯或 LDA 或任何你喜欢的生成模型一样,如果你为每个类估计一个单独的模型,则可以被解释为概率模型 p(t|c)。因此,它可以提供进行分类所需的所有信息。

    当然,问题是模型是否有用。主要问题是 n-gram 模型往往是基于数十亿个文本单词构建的,而分类器通常在数千个单词上进行训练。你可以做一些复杂的事情,比如将联合先验放在所有类模型的参数上,将超参数钳制为相等(这些参数是什么取决于你如何进行平滑处理)......但这仍然很棘手。

    另一种方法是构建一个 n-gram 字符模型(包括空格/标点符号,如果它被证明是有用的)。这可以更可靠地估计(tri-gram 模型的 26^3 个参数而不是 ~20000^3),并且对于作者识别/流派分类/其他具有文体元素的分类形式非常有用。

    【讨论】:

      【解决方案2】:

      N-gram 不是分类器,它是一种概率语言模型,对基本单元的序列进行建模,其中这些基本单元可以是单词、音素、字母等。N-gram 基本上是长度序列上的概率分布n,它可以在构建文本表示时使用。

      分类器是一种算法,它可能使用也可能不使用 n-gram 来表示文本。

      【讨论】:

      • 指出一些分类器(如朴素贝叶斯和隐马尔可夫模型)实际上是基于 n-gram 模型(NB 上 unigrams,基本 HMM 上 bigrams)进行分类,这可能是有价值的 - 只是为了直觉,当然这些是更笼统的概念。
      • 这并不完全准确。您可以(并且有些人已经)构建每类 n-gram 模型,并将新文档分配给具有最高后验概率的类(例如,似然项是语言模型而不是朴素贝叶斯)。如果您在字符序列而不是单词上定义模型,它实际上对于作者识别/其他更具风格的分类问题非常有效。
      猜你喜欢
      • 2013-11-25
      • 2019-01-08
      • 2012-12-09
      • 1970-01-01
      • 2016-08-05
      • 2013-10-13
      • 2016-06-14
      • 2021-02-09
      • 2018-06-08
      相关资源
      最近更新 更多