zoukankan      html  css  js  c++  java
  • Simple BeamSearch Codes for Python

    Code from: https://github.com/SeitaroShinagawa/simple_beamsearch

    probs = [[[],[0.3,0.7]],  
    [[0],[0.1,0.9]],
    [[1],[0.4,0.6]],
    [[0,0],[0.3,0.7]],
    [[0,1],[0.8,0.2]],
    [[1,0],[0.6,0.4]],
    [[1,1],[0.5,0.5]]]
    
    def prob_gen(lis):
      tmp = [x[1] for x in probs if x[0]==lis]
      return tmp[0]
    
    def list_print(in_):
      for i in in_:
        print(i)
    
    if __name__ == "__main__":
      beam = 3
      print("step 1")
      out_list = []
      prob=prob_gen(out_list)
    
      print("prob a:{},b:{}".format(prob[0],prob[1]))
      candidate_list = [[[i],j] for i,j in enumerate(prob)]
      candidate_list = sorted(candidate_list,key=lambda x:x[1],reverse=True)
      out_list = candidate_list[:beam] #[ [[0],0.3] , [[1],0.7] ]
      list_print(out_list)
    
      print("step 2")
    
      candidate_list=[]
      for lis in out_list:
        prob=prob_gen(lis[0])
        print("prob a:{},b:{}".format(prob[0],prob[1]),"conditioned by p(",lis[0],")=",lis[1])
        for i,j in enumerate(prob):
          A = lis[0]+[i]
          B = lis[1]*j
          candidate_list.append([A,B])
      candidate_list = sorted(candidate_list,key=lambda x:x[1],reverse=True)
      out_list = candidate_list[:beam] #[ [[0],0.3] , [[1],0.7] ]
      list_print(out_list)
    
      print("step 3")
    
      candidate_list=[]
      for lis in out_list:
        prob=prob_gen(lis[0])
        print("prob a:{},b:{}".format(prob[0],prob[1]),"conditioned by p(",lis[0],")=",lis[1])
        for i,j in enumerate(prob):
          A = lis[0]+[i]
          B = lis[1]*j
          candidate_list.append([A,B])
    
      candidate_list = sorted(candidate_list,key=lambda x:x[1],reverse=True)
      out_list = candidate_list[:beam] #[ [[0],0.3] , [[1],0.7] ]
      list_print(out_list)

  • 相关阅读:
    统计一行字符串中每个字母个数
    不定宽高的文字在div中垂直居中
    转:Python 与 Excel 不得不说的事
    Centos 6安装python3.5
    day04
    day03
    Day02
    python ciscolib模块
    三级菜单
    模拟登陆系统
  • 原文地址:https://www.cnblogs.com/czhwust/p/10602896.html
Copyright © 2011-2022 走看看