-2

AFAIK,生成语言模型只不过是一些词汇的概率分布。我想知道如何使用这种概率分布来生成单词流,即语言?

如果我总是选择概率最大的词,它总是同一个词,因为分布是固定的。

我不确定我是否理解正确。谁能提供一个具体的操作示例?

4

1 回答 1

1

首先,您不会选择概率最高的单词。您选择一个随机词,但不是统一的 - 模型中的概率。

因此,如果模型中有 2 个词:“yes”和“no”,概率分布是 2/3“yes”,1/3“no”,那么生成的文本可能如下所示:

yes no no yes yes no yes yes yes no yes yes yes

即,您将在文本中有大约 2/3 的“是”和 1/3 的“否”。

编辑

这是从分布中采样的一种简单方法:

  1. 生成一个从 0 到 1 的随机数。
  2. 迭代模型中的所有单词,将它们的概率权重相加。一旦总和大于生成的数字,就发出当前单词。

这是一个例子:

假设您已生成0.8. 你从开始,yes累积的概率权重将是0.67,所以你取下一个单词并得到大于no的累积权重,所以你发出。1.00.8no

假设下次你有0.5,那么你需要发出yes

于 2014-02-11T07:35:33.263 回答