Fasttext 算法只使用词和子词?还是句子呢?
Fasttext algorithm use only word and subword? or sentences too?
如果有学习方法(或更可能的学习过程)的任何好的例子,我也阅读了这篇论文并用谷歌搜索
对于word2vec,假设有语料句
I go to school with lunch box that my mother wrapped every morning
然后 window 大小为 2,它将尝试通过使用周围的单词
来获取 'school' 的向量
['go', 'to', 'with', 'lunch']
现在FastText说是用subword来获取vector,所以肯定是用n gram subword,比如n=3,
['sc', 'sch', 'cho', 'hoo', 'ool', 'school']
到这里,我明白了。
但是不清楚其他词是否被用于学习'school'。我只能猜测其他周围的词也像 word2vec 一样被使用,因为论文提到
=> 术语 Wc 和 Wt 都用于函数
其中 Wc 是上下文词,Wt 是序列 t 处的词。
但是,FastText 是如何学习单词向量的还不清楚。
.
.
请说清楚程序中FastText的学习过程是如何进行的?
.
.
更准确地说,我想知道如果 FastText 在学习 n-gram 特征子词时也遵循与 Word2Vec 相同的过程 此外.或者只有 n-gram 表征的子词与正在使用的词?
它如何向量化初始的子词?等等
fastText 站点 states 至少有 2 个实现的算法确实在句子中使用了周围的词。
此外,原始的 fastText 实现是 open source,因此您可以通过探索代码来检查它的工作原理。
任何上下文词都有其候选输入向量,该向量由其全词标记和所有字符 n-gram 的组合组装而成。因此,如果上下文词是 'school',并且您使用的是 3-4 个字符的 n-gram,则训练中的输入向量是 school
、[=22] 的全词向量的组合=]和['sch', 'cho', 'hoo', 'ool', 'scho', 'choo', 'hool']
的所有n-gram向量。)
当通过训练调整该候选向量时,所有 成分向量都会调整。 (这有点像在 word2vec CBOW 模式中,单个平均上下文输入向量的所有 词 一起调整,当它们预测单个目标输出词的能力被评估并且改进了。)
因此,那些在许多相似词中恰好是有意义的暗示的 n-grams——例如,常见的词根或 prefixes/suffixes——被定位在它们赋予这种意义的地方。 (其他 n-gram 可能主要保持低幅度噪声,因为它们出现的地方几乎没有有意义的模式。)
训练后,还通过组合全词向量和所有 n-gram 来构建单个词汇表中单词的报告向量。
然后,当你也遇到一个词汇外的词时,如果它与形态相似的训练词共享一些或许多 n-gram,它将得到一个相似的计算向量——因此总比没有好,猜测那个词的向量应该是什么。 (如果出现小拼写错误或已知单词的轻微变体,合成向量可能会非常好。)
如果有学习方法(或更可能的学习过程)的任何好的例子,我也阅读了这篇论文并用谷歌搜索
对于word2vec,假设有语料句
I go to school with lunch box that my mother wrapped every morning
然后 window 大小为 2,它将尝试通过使用周围的单词
来获取 'school' 的向量['go', 'to', 'with', 'lunch']
现在FastText说是用subword来获取vector,所以肯定是用n gram subword,比如n=3,
['sc', 'sch', 'cho', 'hoo', 'ool', 'school']
到这里,我明白了。 但是不清楚其他词是否被用于学习'school'。我只能猜测其他周围的词也像 word2vec 一样被使用,因为论文提到
=> 术语 Wc 和 Wt 都用于函数
其中 Wc 是上下文词,Wt 是序列 t 处的词。
但是,FastText 是如何学习单词向量的还不清楚。
.
.
请说清楚程序中FastText的学习过程是如何进行的?
.
.
更准确地说,我想知道如果 FastText 在学习 n-gram 特征子词时也遵循与 Word2Vec 相同的过程 此外.或者只有 n-gram 表征的子词与正在使用的词?
它如何向量化初始的子词?等等
fastText 站点 states 至少有 2 个实现的算法确实在句子中使用了周围的词。
此外,原始的 fastText 实现是 open source,因此您可以通过探索代码来检查它的工作原理。
任何上下文词都有其候选输入向量,该向量由其全词标记和所有字符 n-gram 的组合组装而成。因此,如果上下文词是 'school',并且您使用的是 3-4 个字符的 n-gram,则训练中的输入向量是 school
、[=22] 的全词向量的组合=]和['sch', 'cho', 'hoo', 'ool', 'scho', 'choo', 'hool']
的所有n-gram向量。)
当通过训练调整该候选向量时,所有 成分向量都会调整。 (这有点像在 word2vec CBOW 模式中,单个平均上下文输入向量的所有 词 一起调整,当它们预测单个目标输出词的能力被评估并且改进了。)
因此,那些在许多相似词中恰好是有意义的暗示的 n-grams——例如,常见的词根或 prefixes/suffixes——被定位在它们赋予这种意义的地方。 (其他 n-gram 可能主要保持低幅度噪声,因为它们出现的地方几乎没有有意义的模式。)
训练后,还通过组合全词向量和所有 n-gram 来构建单个词汇表中单词的报告向量。
然后,当你也遇到一个词汇外的词时,如果它与形态相似的训练词共享一些或许多 n-gram,它将得到一个相似的计算向量——因此总比没有好,猜测那个词的向量应该是什么。 (如果出现小拼写错误或已知单词的轻微变体,合成向量可能会非常好。)