我是文本分类技术的新手,我想知道文本分类的N-gram方法与基于文本分类的其他分类器(决策树,KNN,SVM)之间的区别.
我想知道哪一个更好,n-gram是否属于分类器?n-gram是否克服了分类器技术的任何缺点?
我在哪里可以获得有关所有这些技术的比较信息.
提前致谢.
我实际上会发布一个完整的答案,因为我认为显然你可以使用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语言模型,就像Naive Bayes或LDA或你喜欢的任何生成模型一样,可以被解释为概率模型p(t | c).因此,它可以提供进行分类所需的所有信息.
当然,问题是模型是否有用.主要问题是n-gram模型倾向于建立在数十亿字的文本上,其中分类器通常训练数千.您可以执行复杂的操作,例如将关节先验放在所有类模型的参数上,将超参数钳位为相等(这些参数取决于您如何进行平滑)......但它仍然很棘手.
另一种方法是构建一个n-gram的字符模型(如果它变得有用,则包括空格/标点符号).这可以更可靠地估计(三元组模型的26 ^ 3参数而不是~20000 ^ 3),并且对于具有风格元素的作者识别/类型分类/其他形式的分类非常有用.
N-gram不是分类器,它是概率语言模型,基本单元的建模序列,其中这些基本单位可以是单词,音素,字母等.N-gram基本上是长度为n的序列的概率分布,并且它可以在构建文本表示时使用.
分类器是一种算法,其可以使用或不使用n-gram来表示文本.