加法平滑方法python实现

 

 

 1 #加法平滑技术(加1)
 2 def additive_smoothing(data):
 3     global sentence, d, probability_key_value
 4     probability = 1  # 存储句子概率的中间变量。
 5     output = data.split()
 6     output.insert(0, "BOS")
 7     output.append("EOS")
 8     # 上面三行代码,对输入的句子进行处理。 例如:句子[ i am a student ]处理结果为['BOS','i','am','a','student','EOS']
 9     for i in range(len(output) - 1):
10         sentence[output[i]] = output[i + 1]  # 处理后格式:sentence{ BOS:i , i:am, am:a, a:student, student:EOS}
11     for j in range(len(output) - 1):
12         value =( 1+find(output[j], output[j + 1])) / (V+ d[output[j]])
13         probability_key_value[str(output[j]) + '-' + str(output[j + 1])] = value
14         print(probability_key_value)
15         probability *= value
16     sentence={}
17     probability_key_value={}
18     return probability

 

posted @ 2021-01-10 22:13  liweikuan  阅读(706)  评论(0编辑  收藏  举报