Aki*_*gun 1 python nlp fasttext
在用于训练监督模型的python https://github.com/facebookresearch/fastText/tree/master/python的 fasttext 库的描述中,有不同的参数,其中包括:
ws:上下文窗口的大小wordNgrams: 单词 ngram 的最大长度。如果我理解正确,他们两个都有责任考虑到单词周围的单词,但是它们之间的明显区别是什么?
Anw*_*vic 12
首先,我们使用train_unsupervisedAPI 创建Word-Representation Model。我们可以使用两种技术,skipgram和cbow。另一方面,我们使用train_supervisedAPI 来创建文本分类模型。你问的是train_supervisedAPI,所以我会坚持下去。
文本分类在 fasttext 中的工作方式是首先默认使用 skipgram 表示单词。然后,使用从 skipgram 模型中学习到的这些词向量对输入文本进行分类。您询问的两个参数 (ws和wordNgrams) 与 skipgram/cbow 模型有关。
下图包含了我们如何使用输入文本来训练 skipgram 模型的简化说明。在这里,我们将ws参数定义为 2 和wordNgrams1。
如我们所见,我们的训练数据中只有一个文本,即The quick brown fox jumps over the lazy dog. 我们将上下文窗口定义为两个,这意味着我们将创建一个窗口,其中心为center word并且窗口内的下一个/前两个单词为target words。然后,我们一次移动这个窗口一个字。窗口大小越大,模型的训练样本越多,在给定小数据样本的情况下,模型越过拟合。
那是我们的第一个论点ws。根据第二个参数wordNgrams,如果我们设置wordNgrams为 2,它将考虑如下图所示的双词对。(ws下图中的为简单起见)
检查此链接,其中包含该train_supervised方法的源代码。
skipgram 和 cbow 之间的主要区别可以总结为下图:
| 归档时间: |
|
| 查看次数: |
1854 次 |
| 最近记录: |