【问题标题】:Access spaCy Masked Language Model访问 spaCy 掩码语言模型
【发布时间】:2019-05-24 19:29:14
【问题描述】:

从 v2.1 开始,spaCy 具有 BERT 风格的语言模型 (LM)。它预测的是词向量而不是词,所以我将在这里互换使用“词”和“词向量”。

我需要取一个带有掩码的单词和一个单词列表的句子,并根据单词出现在掩码槽中的可能性对单词进行排名。目前我正在为此使用 BERT(类似于bert-syntax)。我想看看 spaCy 在这项任务上的表现是否可以接受。在this filethis one 之间,我很确定可以构建一些东西。但是,感觉比我想要的更深入到图书馆的内部。

是否有一种直接的方式与 spaCy 的掩码语言模型进行交互?

【问题讨论】:

    标签: python nlp spacy language-model


    【解决方案1】:

    这基本上是 LMAO 近似的缺点。实际上,直到/r/machinelearning subreddit 上的某个人向我指出这一点,我才意识到这一点。

    因为我们要预测一个向量,所以我们实际上只能预测向量空间中的一个点。这与预测单词的分布确实不同。想象一下,我们有一个像The __ of corn. 这样的间隙,假设填充的良好分布是{kernel, ear, piece}。这些单词的向量并不是特别接近,因为word2vec 算法正在基于单词的所有上下文构建向量空间,并且单词只能在这种上下文中互换。在piece 的绝大多数用法中,ear 这个词将是一个非常糟糕的替代品。

    如果可能的填充词在向量空间中没有靠近,则 LMAO 模型将无法返回与该组词对应的答案。

    如果您只需要 1-best 答案,spacy pretrain 中的算法很有可能会提供给您。但是如果你需要分布,近似值就会失效,你应该使用BERT之类的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-02
      • 1970-01-01
      • 2021-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多