我正在编写一个Python代码,使用无上下文语法生成随机句子。
每个非终端/终端符号都有一个与之相关的权重。
目前,我正在使用random.choice()
从defaultdict(list)
中选择一个元素。这给了我一个输出,给出列表中的所有元素的概率相等。
如果每个元素的概率不同,我该如何选择一个元素?
我有以下形式的无上下文语法:
重量NT NT / T
例如:
70 NounPhrase A
30 NounPhrase B
因此,第一个NP被选中的概率为70 /(70 + 30),第二个为30 /(70 + 30)。那么如何在Python中随机使用这个概念呢?