单字模型何时比双字模型(或更高阶的N字模型)更合适?

我在阅读关于N字模型的内容时,想知道在实践中是否有使用单字模型优于双字模型(或更高阶的N字模型)的情况。据我所知,N值越大,计算概率和建立向量空间的复杂性就越高。但除此之外,是否还有其他原因(例如与数据类型相关)?


回答:

这归结为数据稀疏性:随着你的n字模型长度增加,你会看到任何给定n字模型的次数会减少:在最极端的例子中,如果你的语料库中最大文档长度为n个词元,而你正在寻找一个m字模型,其中m=n+1,你当然不会有任何数据点,因为在你的数据集中根本不可能有这样的序列长度。你的数据集越稀疏,你对它的建模效果就越差。因此,尽管理论上更高阶的n字模型包含了更多关于词语上下文的信息,但它难以泛化到其他数据集(称为过拟合),因为在训练过程中它见过的n字模型事件数量随着n的增加而逐渐减少。另一方面,较低阶的模型缺乏上下文信息,因此可能会欠拟合你的数据。

因此,如果你有相对大量的词元类型(即你的文本词汇非常丰富),但每种类型的频率非常低,你可能会在较低阶的n字模型上获得更好的结果。同样,如果你的训练数据集非常小,你可能在较低阶的n字模型上表现得更好。然而,假设你有足够的数据来避免过拟合,你则可以用更高阶的模型获得更好的数据可分性

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注