【问题标题】:What is the difference between args wordNgrams, minn and maxn in fassttext supervised learning?fasttext 监督学习中的 args wordNgrams、minn 和 maxn 有什么区别?
【发布时间】:2020-10-30 20:16:12
【问题描述】:

在阅读了有效文本分类的技巧包后,我有点困惑。 argswordNgrams、minn和maxn有什么区别

例如,文本分类任务和作为预训练向量的 Glove 嵌入

ft.train_supervised(file_path,lr=0.1,epoch=5,wordNgrams=2,dim=300,loss='softmax', minn=2,maxn=3,pretrainedVectors='glove.300d.txt',verbose=0)

输入句子是“我爱你”。 给定minn=2,maxn=3,整句转化为[<I, I>], [<l, <lo, lo, lov,.....]等 对于love这个词,它的fasttext embedding = (emb(love)(作为一个完整的词)+ emb([I love, love you](因为wordNgrams=2)并且这些2-gram嵌入是[(fasttext emb(I)+fasttext emb(love))/2, (fasttext emb(love)+fasttext emb(you))/2]。 句子嵌入是 2-gram 嵌入的平均值,维数为 300。然后它通过具有 #labels 神经元的层(即乘以大小为 [300,#labels] 的矩阵)。

这是对的吗?如有错误请指正

【问题讨论】:

  • 如果您有问题,请提出问题。不要发布指向有您问题的其他网站的链接。
  • @JamesZ 编辑了帖子。

标签: text-classification supervised-learning fasttext


【解决方案1】:

拉朱,

你几乎是对的,但平均发生在最后。

首先,句子是如何分词的?

整个句子用空格标记。所以“我爱你”会产生4个词:“我”、“爱”、“你”和一个特殊的词EOS(句末)。到目前为止,我们有 4 个令牌。然后,对于每个单词,根据您为 minn 和 maxn 设置的内容,fastText 将计算子词并将它们也视为标记。因此,在 minn=2、maxn=3 的情况下,它将是:"<I", "<I>", "I>", "<l", "<lo", "lo", "lov", "ov", "ove", "ve", "ve>", "e>", "<y", "<yo", "yo", "you", "ou", "ou>", "u>"(我们还添加了单词字符的开头和结尾(< 和 >)。

所以总体令牌将是"I", "love", "you", EOS, "<I", "<I>", "I>", "<l", "<lo", "lo", "lov", "ov", "ove", "ve", "ve>", "e>", "<y", "<yo", "yo", "you", "ou", "ou>", "u>"。

现在有了 wordNgrams=2,我们还添加了对应于一对单词的标记:"I love", "love you", "you EOS"

一旦我们有了令牌:

为了计算隐藏层,句子的嵌入将是上述单个标记嵌入的平均值。这是通过将输入矩阵中对应的维数为 300 的列向量求和来完成的,然后我们除以标记的数量以得到平均值为 this line of code。

【讨论】:

    猜你喜欢
    • 2010-12-22
    • 2017-06-27
    • 2020-12-04
    • 2014-04-20
    • 2013-03-24
    • 2020-11-09
    • 2021-10-17
    • 2013-09-27
    • 2011-06-11
    相关资源
    最近更新 更多