Machine learning 文本分类中N-grams与其他分类器的比较

Machine learning 文本分类中N-grams与其他分类器的比较,machine-learning,data-mining,classification,n-gram,text-classification,Machine Learning,Data Mining,Classification,N Gram,Text Classification,我是文本分类技术的新手,我想知道文本分类的N-gram方法和其他基于分类器(决策树、KNN、SVM)的文本分类方法之间的区别 我想知道哪一个更好,n-grams是否属于Classifiers?。n-gram是否克服了分类器技术中的任何缺点 我在哪里可以获得所有这些技术的比较信息 提前感谢。N-gram不是一个分类器,它是一个概率语言模型,对基本单元的序列进行建模,其中这些基本单元可以是单词、音素、字母等。N-gram基本上是长度为N的序列的概率分布,可以在构建文本表示时使用 分类器是一种算法,它

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

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

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


提前感谢。

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


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

我会给出一个完整的答案,因为我认为很明显,你可以使用n-gram模型作为分类器(与你可以将你的特征的任何概率模型作为分类器一样)

生成分类器将感兴趣的后验概率p(类|测试文档)近似为:

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

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

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


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

有必要指出,一些分类器——比如朴素贝叶斯和隐马尔可夫模型——实际上是基于n-gram模型(单图上的NB,双图上的基本HMM)进行分类——只是为了直觉,当然这些是更一般的概念。这并不完全准确。您可以(有些人已经)构建一个每类n-gram模型,并将新文档分配给后验概率最高的类(例如,似然项是语言模型而不是朴素贝叶斯)。如果在字符序列而不是单词序列上定义模型,它实际上对于作者识别/其他更具风格的分类问题非常有效。