我在阅读关于N字模型的内容时,想知道在实践中是否有使用单字模型优于双字模型(或更高阶的N字模型)的情况。据我所知,N值越大,计算概率和建立向量空间的复杂性就越高。但除此之外,是否还有其他原因(例如与数据类型相关)?
回答:
这归结为数据稀疏性:随着你的n字模型长度增加,你会看到任何给定n字模型的次数会减少:在最极端的例子中,如果你的语料库中最大文档长度为n个词元,而你正在寻找一个m字模型,其中m=n+1,你当然不会有任何数据点,因为在你的数据集中根本不可能有这样的序列长度。你的数据集越稀疏,你对它的建模效果就越差。因此,尽管理论上更高阶的n字模型包含了更多关于词语上下文的信息,但它难以泛化到其他数据集(称为过拟合),因为在训练过程中它见过的n字模型事件数量随着n的增加而逐渐减少。另一方面,较低阶的模型缺乏上下文信息,因此可能会欠拟合你的数据。
因此,如果你有相对大量的词元类型(即你的文本词汇非常丰富),但每种类型的频率非常低,你可能会在较低阶的n字模型上获得更好的结果。同样,如果你的训练数据集非常小,你可能在较低阶的n字模型上表现得更好。然而,假设你有足够的数据来避免过拟合,你则可以用更高阶的模型获得更好的数据可分性。