【问题标题】:How to obtain contextual embedding for a phrase in a sentence using BERT?如何使用 BERT 获取句子中短语的上下文嵌入?
【发布时间】:2020-06-26 13:33:32
【问题描述】:

我使用https://github.com/UKPLab/sentence-transformers 从 BERT 获取句子嵌入。使用它,我可以获得句子或短语的嵌入。例如:我可以嵌入一个句子,如“系统不工作给服务中心但没有响应更换”。我还可以嵌入类似 “no response” 之类的短语。

但是,我想在 “系统未向服务中心工作,但更换时没有响应” 的上下文中嵌入 “无响应”。有关如何获得此信息的任何指示都会有所帮助。提前致谢。

我正在尝试这样做,因为短语 “no response” 在不同的句子中有不同的上下文。例如,以下两句中“没有回应”的语境是不同的: “系统不工作,服务中心,更换无响应” “我们尝试对患者进行恢复程序,但没有反应”

【问题讨论】:

    标签: nlp bert-language-model


    【解决方案1】:

    BERT 每个输入子词返回一个向量,因此您需要获取与您感兴趣的短语相对应的向量。

    通常所说的句子嵌入是在使用 BERT 处理之前将技术符号 [CLS] 嵌入到句子中;或上下文子词向量的平均值。因为[CLS] 向量必然覆盖整个句子,所以不能仅针对子短语获得它,但可以使用该短语的子词嵌入的平均值。

    你正在使用的包sentence-transformers,有一个非常简单的用户友好的API,但恐怕它不够强大来完成这项工作。我建议使用Huggingface's Transormers。这个包可以让你查看句子是如何被标记的,从而获得相应的向量。

    【讨论】:

      【解决方案2】:

      要获得更好的词组嵌入,您可以尝试使用 Phrase-BERT 进行词组嵌入。

      论文还提到了相关的先前工作,例如SentBERT 和 SpanBERT。

      虽然我相信不是有条件的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-29
        • 2020-04-07
        • 2020-01-29
        • 1970-01-01
        • 2021-05-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多