最近我一直在研究基于 Cavnar 和 Trenkle 的文章“基于 N-Gram 的文本分类”以及其他相关资源的文本分类和语言分类。
对于进行语言分类,我发现这种方法非常可靠和有用。用于生成 N-gram 频率分布的文档的大小并不重要,只要它们“足够长”,因为我只是使用文档中最常见的 n N-gram。
另一方面,运作良好的文本分类让我望而却步。我已经尝试了我自己对手头算法的各种变体的实现,有和没有各种调整,例如 idf 加权和其他人的实现。只要我可以为类别参考文档生成大小相似的频率配置文件,它就可以很好地工作,但是当它们开始差异太大时,整个事情就会崩溃,并且配置文件最短的类别最终会变得不成比例分配给它的文档数量。
现在,我的问题是。补偿这种影响的首选方法是什么?这显然正在发生,因为该算法假定任何给定 N-gram 的最大距离等于类别频率分布的长度,但由于某种原因,我无法解决如何修复它。我对此修复感兴趣的一个原因实际上是因为我正在尝试根据具有已知类别的文档自动生成类别配置文件,该文档的长度可能会有所不同(即使它们的长度相同,配置文件也可能最终成为不同的长度)。对此有“最佳实践”解决方案吗?