【问题标题】:Difference between max length of word ngrams and size of context window单词 ngram 的最大长度与上下文窗口大小之间的差异
【发布时间】:2019-12-21 17:46:33
【问题描述】:

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

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

如果我理解正确的话,他们都有责任考虑到单词的周围单词,但是他们之间的明显区别是什么?

【问题讨论】:

    标签: python nlp fasttext


    【解决方案1】:

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

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

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

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

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

    参考

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

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

    【讨论】:

    • 非常感谢!一个惊人的解释。
    猜你喜欢
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 2015-11-21
    相关资源
    最近更新 更多