gpt4 book ai didi

python - 单词 ngrams 的最大长度与上下文窗口大小之间的差异

转载 作者:行者123 更新时间:2023-12-05 08:16:12 27 4
gpt4 key购买 nike

在 python 的 fasttext 库的描述中 https://github.com/facebookresearch/fastText/tree/master/python对于训练监督模型有不同的论点,其中包括:

  • ws:上下文窗口的大小
  • wordNgrams:单词ngram的最大长度。

如果我没理解错的话,它们都是负责考虑单词周围的单词,但是它们之间明显的区别是什么?

最佳答案

首先,我们使用 train_unsupervised API 创建一个Word-Representation Model。我们可以使用两种技术,skipgramcbow .另一方面,我们使用 train_supervised API 来创建文本分类模型。你问的是 train_supervised API,所以我会坚持下去。

文本分类在 fasttext 中的工作方式是首先默认使用 skipgram 来表示单词。然后,使用从 skipgram 模型中学习到的这些词向量对输入文本进行分类。您询问的两个参数(wswordNgrams)与 skipgram/cbow 模型有关。

下图简要说明了我们如何使用输入文本来训练 skipgram 模型。在这里,我们将 ws 参数定义为 2,将 wordNgrams 定义为 1。

enter image description here

正如我们所见,我们的训练数据中只有一个文本,即 The quick brown fox jumps over the lazy dog。我们将上下文窗口定义为两个,这意味着我们将创建一个窗口,其中心是 center word,窗口中的下一个/前两个单词是 target words。然后,我们一次一个字地移动这个窗口。窗口大小越大,模型的训练样本越多,在给定小数据样本的情况下,模型过度拟合的程度就越高。

这是我们的第一个参数 ws。根据第二个参数 wordNgrams,如果我们将 wordNgrams 设置为 2,它将考虑如下图所示的双词对。 (为了简单起见,下图中的ws就是一个)

enter image description here

引用

  • 检查这个 link其中包含 train_supervised 方法的源代码。

  • skipgram 和 cbow 之间的主要区别可以总结为下图:

skipgram vs. cbow

关于python - 单词 ngrams 的最大长度与上下文窗口大小之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57507056/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com