我正在阅读有关 n-gram 的内容,我想知道在实践中是否存在一种情况,即优先使用 uni-grams 而非 bi-grams(或更高的 N-grams)。据我了解,N越大,计算概率和建立向量空间的复杂性就越大。但除此之外,是否还有其他原因(例如与数据类型有关)?
最佳答案
这归结为 data sparsity :随着您的 n-gram 长度增加,您看到任何给定 n-gram 的次数将减少:在最极端的例子中,如果您有一个最大文档长度为 n 个标记的语料库,并且您正在寻找 m=n+1 的 m-gram,当然,您将根本没有数据点,因为在您的数据集中根本不可能有该长度的序列。数据集越稀疏, the worse you can model it 。出于这个原因,尽管理论上高阶 n-gram 模型包含更多关于单词上下文的信息,但它不能轻易推广到其他数据集(称为 overfitting ),因为事件(即 n-gram)的数量它在训练期间看到随着 n 的增加而逐渐减少。另一方面,低阶模型缺乏上下文信息,因此可能会影响您的数据。
为此,如果你的 underfit 的量非常大(即你的文本的词汇量非常丰富)但每种类型的频率都非常低,那么使用低阶 n-gram 模型可能会得到更好的结果.同样,如果您的训练数据集非常小,则使用低阶 n-gram 模型可能会做得更好。但是,假设您有足够的数据来避免过度拟合,则 token types 。
关于machine-learning - 什么时候 uni-grams 比 bi-grams(或更高的 N-grams)更合适?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36542993/