AFAIK,生成语言模型只不过是某些词汇的概率分布。我想知道如何使用这种概率分布来生成一个单词流,即语言?
如果我总是选择概率最大的单词,它将始终是同一个单词,因为分布是固定的。
我不确定我是否理解正确。任何人都可以提供一个具体的操作示例吗?
答案 0 :(得分:1)
首先,你不要选择概率最高的单词。你选择一个随机词,但没有统一 - 用模型中的概率。
因此,如果模型中有2个单词:“是”和“否”,并且概率分布为2/3“是”,1/3“否”,则生成的文本可能如下所示:
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
。