Algorithm N-gram文本分类类别大小差异补偿

Algorithm N-gram文本分类类别大小差异补偿,algorithm,text,nlp,n-gram,Algorithm,Text,Nlp,N Gram,最近,我一直在研究基于Cavnar和Trenkle的文章“基于N-Gram的文本分类”以及其他相关来源的文本分类和语言分类 对于语言分类,我发现这种方法非常可靠和有用。用于生成N-gram频率剖面的文档的大小并不重要,只要它们“足够长”,因为我只是使用文档中最常见的N-gram 另一方面,功能良好的文本分类令我难以理解。我已经尝试了我自己的各种算法变体的实现,有和没有各种调整,比如idf权重和其他人的实现。只要我能为类别参考文档生成一些大小相似的频率配置文件,它就工作得很好,但一旦它们开始有点太

最近,我一直在研究基于Cavnar和Trenkle的文章“基于N-Gram的文本分类”以及其他相关来源的文本分类和语言分类

对于语言分类,我发现这种方法非常可靠和有用。用于生成N-gram频率剖面的文档的大小并不重要,只要它们“足够长”,因为我只是使用文档中最常见的N-gram

另一方面,功能良好的文本分类令我难以理解。我已经尝试了我自己的各种算法变体的实现,有和没有各种调整,比如idf权重和其他人的实现。只要我能为类别参考文档生成一些大小相似的频率配置文件,它就工作得很好,但一旦它们开始有点太大的差异,整个事情就会分崩离析,并且具有最短配置文件的类别最终会得到分配给它的文档数量不成比例


现在,我的问题是。补偿这种影响的首选方法是什么?这显然是因为算法假设任何给定的N-gram的最大距离等于类别频率剖面的长度,但出于某种原因,我无法理解如何修复它。我对这个补丁感兴趣的一个原因实际上是因为我正在尝试根据具有长度不同的已知类别的文档自动生成类别概要文件(即使它们的长度相同,概要文件的长度也可能不同)。有“最佳实践”解决方案吗?

据我所知,任务是计算语言模型M生成某些文本的概率

最近,我正在使用语义、同步和词汇属性来衡量文本的可读性。它也可以通过语言模型方法来衡量

要正确回答,你应该考虑以下问题:

您是否使用对数似然法

你使用的N克含量是多少?单格数字或更高级别

你使用的语言体有多大

仅使用Digram和Unigram,我成功地对一些文档进行了分类,结果很好。如果你的分类很弱,可以考虑创建更大的语言语料库或使用较低水平的n-克。 还要记住,根据文本的长度,将某些文本分类为无效类别可能是一个错误(在另一种语言模型中,随机出现的单词很少)


只是考虑让你的语料库更大,并且知道分析短文本有更高的误判概率

如果你仍然感兴趣,并且假设我正确地理解了你的问题,你的问题的答案是使你的N-gram频率正常化。

在每个文档的基础上,最简单的方法是计算文档中所有n-gram的总频率,并将每个n-gram的频率除以该数字。结果是,现在每个n-gram频率权重都与总文档内容的百分比相关,而与总长度无关

在距离度量中使用这些百分比将降低文档的大小,转而关注文档内容的实际组成

还值得注意的是,n-gram表示只占整个分类解决方案的一小部分。你也可以考虑使用降维、不同的索引加权度量和明显不同的分类算法。

我不确定我是否赞成到处都有这些语言残骸。我相信你要找的词是“语料库”(复数形式“corpora”)。