AFAIK,生成语言模型只不过是一些词汇的概率分布。我想知道如何使用这种概率分布来生成单词流,即语言?
如果我总是选择概率最大的词,它总是同一个词,因为分布是固定的。
我不确定我是否理解正确。谁能提供一个具体的操作示例?
AFAIK,生成语言模型只不过是一些词汇的概率分布。我想知道如何使用这种概率分布来生成单词流,即语言?
如果我总是选择概率最大的词,它总是同一个词,因为分布是固定的。
我不确定我是否理解正确。谁能提供一个具体的操作示例?
首先,您不会选择概率最高的单词。您选择一个随机词,但不是统一的 - 模型中的概率。
因此,如果模型中有 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 的“否”。
编辑
这是从分布中采样的一种简单方法:
这是一个例子:
假设您已生成0.8
. 你从开始,yes
累积的概率权重将是0.67
,所以你取下一个单词并得到大于no
的累积权重,所以你发出。1.0
0.8
no
假设下次你有0.5
,那么你需要发出yes
。