機械学習画像分類部品(4)-改良


キャラクターに似た結果値top 3を探す過程で、誰もがそうではないと思っている方法は
あるはず、お風呂に入って思い出して、急いで洗面して、(2)のトップ3コードをさっぱり改善しました

    result_list = list(db.compared_face_result.find({},{'_id':False}))

    all_result= len(result_list)

    top_list = []
    for i in result_list:
        name = i['result']
        top_list.append(name)

    counts = collections.Counter(top_list)
    
	#전체 캐릭터 길이 51
    rank = counts.most_common(51)
	#랭킹별 이름
    all_rank = {}
    #랭킹별 퍼센트
    all_per = {}
    
    top_len = len(top_list)
    
    tr = 0
    
    while tr < 51:
        
        try:
            all_rank["rank{0}".format(tr)] = rank[tr][0]
            all_per["rank{0}".format(tr)] = "%.2f" % (rank[tr][1] * 100 / top_len)
            tr = tr+1
        except:
            break
現在類似の結果値が51個未満(約7個)であるためindex errorが生成されtry文で例外処理が行われている.
これは満足できる改善です.
html側もjinja改善の方法があるので、考えてみなければなりません.
でも機械学習計画の文章は正しいですかはははは
most commonの方が使いやすい
例)
Counter(words).most_common(10)
[('the', 1143), ('and', 966), ('to', 762), ('of', 669), ('i', 631),
 ('you', 554),  ('a', 546), ('my', 514), ('hamlet', 471), ('in', 451)]