生成语言模型如何在自然语言处理中发挥作用?

时间:2014-02-06 13:30:24

标签: nlp nltk probability probability-theory

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

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

我不确定我是否理解正确。任何人都可以提供一个具体的操作示例吗?

1 个答案:

答案 0 :(得分:1)

首先,你不要选择概率最高的单词。你选择一个随机词,但没有统一 - 用模型中的概率。

因此,如果模型中有2个单词:“是”和“否”,并且概率分布为2/3“是”,1/3“否”,则生成的文本可能如下所示:

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

即,你在文本中大约有2/3“是”,而1/3“没有”。

修改

以下是从分发中抽样的简单方法:

  1. 生成0到1之间的随机数。
  2. 迭代模型中的所有单词,对其概率权重求和。一旦总和大于生成的数字,就发出当前的单词。
  3. 以下是一个例子:

    假设您已生成0.8。您从yes开始,累计概率权重为0.67,因此您需要使用下一个单词no并获得大于1.0的累计权重0.8 ,所以你发出no

    假设您下次有0.5,则需要发出yes