Aki*_*gun 1 python nlp fasttext
在用于训练监督模型的python https://github.com/facebookresearch/fastText/tree/master/python的 fasttext 库的描述中,有不同的参数,其中包括:
ws
:上下文窗口的大小wordNgrams
: 单词 ngram 的最大长度。如果我理解正确,他们两个都有责任考虑到单词周围的单词,但是它们之间的明显区别是什么?
Anw*_*vic 12
首先,我们使用train_unsupervised
API 创建Word-Representation Model。我们可以使用两种技术,skipgram和cbow。另一方面,我们使用train_supervised
API 来创建文本分类模型。你问的是train_supervised
API,所以我会坚持下去。
文本分类在 fasttext 中的工作方式是首先默认使用 skipgram 表示单词。然后,使用从 skipgram 模型中学习到的这些词向量对输入文本进行分类。您询问的两个参数 (ws
和wordNgrams
) 与 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
下图中的为简单起见)
检查此链接,其中包含该train_supervised
方法的源代码。
skipgram 和 cbow 之间的主要区别可以总结为下图:
归档时间: |
|
查看次数: |
1854 次 |
最近记录: |