머신러닝 이미지 분류 플젝(4)-개선

seonghyeon·2022년 1월 15일
0

캐릭터닮은꼴 결과값 top 3 를 구하는 과정에서 아무리봐도 저건 아니다싶은데 방법이
있을것 같아서 샤워하다 생각나서 얼른 씻고 (2)에있는 top3 코드를 시원하게 개선했다


    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)]
 
 

0개의 댓글