首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用快速文本预训练词嵌入模型预测缺失词(CBOW与跳频图)

用快速文本预训练词嵌入模型预测缺失词(CBOW与跳频图)
EN

Data Science用户
提问于 2020-03-22 14:00:50
回答 1查看 1.4K关注 0票数 4

我正在尝试实现一个简单的单词预测算法,通过从以下几个选项中选择来填补句子中的空白:

在伦敦的街道上开车是不好玩的。

  1. 苹果
  2. 小汽车
  3. 国王

有了正确的模式:

问题1.为了找到最佳的合适选择,必须使用什么操作/功能?库中的相似函数定义在一个词到另一个词之间,而不是一个词到一个词列表(例如most_similar_to_given函数)之间。我在任何地方都找不到这个原始函数,尽管它是CBOW承诺的主要操作(参见下面)!我看到了一些不直观的建议这里!我在这里错过了什么?

我决定采用head first方法,从fastText开始,它提供库和经过预处理的数据集,但很快就被困在了文档中:

fastText提供了两个计算单词表示的模型: skipgram和cbow (‘连续的单词袋’)。跳过图模型学习预测目标词,这要归功于附近的单词。另一方面,c弓形模型根据上下文预测目标词。上下文表示为包含在目标单词周围的固定大小窗口中的单词袋。

这个解释对我来说还不清楚,因为“附近”这个词的意思和“上下文”有着相似的意思。我在googled上搜索了一下,最后得到了这个替代定义

在CBOW模型中,将上下文(或周围词)的分布式表示结合起来来预测中间的单词。而在Skip模型中,使用输入词的分布式表示来预测上下文。

有了这个定义,CBOW是我必须使用的正确模型。现在我有以下问题:

问题2.使用哪种模式来训练快速文本预训练字向量?CBOW还是skipgram?

问题3.知道必须使用的正确模型是CBOW,我是否可以使用跳过图模型训练过的向量作为我的单词预测用例?

EN

回答 1

Data Science用户

回答已采纳

发布于 2020-03-23 10:38:26

问题1:

要做到这一点,我将使用FastText的Gensim包装器,因为Gensim有一个predict_output_word,它可以做您想做的事情。给出一个上下文词的列表,它提供了最合适的单词。

问题2:

这取决于用户。FastText本身并不是CBOW或Skipgram。请参阅

问题3:

是的,尽管CBOW和SkipGram是不同的培训过程,但它们有一个共同的目标。这两种方法都将生成单词嵌入,其中(希望)语义相近的单词也具有接近的嵌入。SkipGram与CBOW的主要区别在于语义紧密性的内在启发式。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/70075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档