【发布时间】:2015-01-07 16:25:09
【问题描述】:
假设我们使用二元组造句,这意味着每个单词出现的概率取决于前一个单词。一个句子的概率是单词概率的倍数
P(sentence) = p(t0)*multiple from i=1 to i=n p(ti|ti-1)
我们有可以用来确定P(ti|ti-1)的概率矩阵,我们想找到最可能的句子
是否有任何贪心或动态编程方法?
【问题讨论】:
-
每个
p(ti|ti-1) <= 1,所以P(sentence) <= p(t0),这意味着最可能的句子由一个概率最大的单词组成。 -
这是不正确的,因为我们在句子的开头和结尾有一些特殊字符。为了更清楚,我们有例如 * 以 P(t0) 开头,而 & 在以 P(tn|t0) 结尾。现在如果你在这两个字符之间放一个新词,可能是 P(t0)*P(t1|t0)*P(tn|t1) 的乘积大于 P 的乘积(t0)*p(tn|t0).....所以我们必须找到最好的选择
-
句子有多长?有多少个字符?
-
假设你有n个单位词,你可以在一个句子中使用任意数量的词。没有限制
标签: algorithm dynamic-programming greedy