首页 文章

如何规范不同长度句子中单词的概率?

提问于
浏览
0

假设我们有一个RNN模型,它输出在语料库上训练的给定上下文(或没有上下文)的单词的概率 . 我们可以将序列中每个单词的概率链接起来,以获得句子本身的整体概率 . 但是,因为我们正在进行链接,所以句子的概率(或可能性)随着长度的增加而下降 . 即使我们使用日志概率,情况也是如此 .

无论如何我们可以将这些概率标准化吗?这是我在构建语言模型时面临的一个有趣的子问题 . 我有一个900万句话的语料库,长度从2-30不等 . 但是所有的句子都是有效的,我使用这些作为训练LM的语料库 .

现在,我正在获取一部分数据并对其进行更改,例如将句子改组或缩减为一半,预先添加或附加随机单词等等 . 这是为了创造一个无效的“假句子” . 我想做的是获得所有有效句子的可能性的某种阈值,然后当我使用RNN来计算假句子的概率时,它应该相当小或不同于计算的阈值 .

tldr;句子就像

"the cat sat on the red mat"
"the cat sat on a mat"
"a cat sat on the red mat with brown coffee stains"

所有人都应该具有可比较的概率/分数/度量,而像句子一样

"cat cat mat on the brown red sat is"
"not mat in door on cat"

得分较低 .

1 回答

  • 0

    您可以引入一个特殊单词 END-OF-SENTENCE ,并预测其概率以及其余单词 . 在这种情况下,您将能够正确地模拟句子长度的分布 . Jurafsky在NLP book的练习4中有一个很好的例子 .

    事实上,句子“一只猫坐在红色的垫子上,棕色咖啡渍END”更有可能是“一只猫坐在红色的垫子上用END”,只是因为那些很少以“with”结束 . 如果您的RNN足够好,它将反映出这一点 .

    如果您仍想要对句子概率进行标准化,则可以计算 perplexity (每个单词的平均对数概率),例如this question,其中概念用简单的1-gram模型显示 .

相关问题