Growth Hoon

20231203_TIL_{ 오전 : [ 프로그래머스 문제, TF-IDF], 오후 : [ 프로그래머스 문제, Django, 아이디어 회의 ] } 본문

TIL_Today I Learned

20231203_TIL_{ 오전 : [ 프로그래머스 문제, TF-IDF], 오후 : [ 프로그래머스 문제, Django, 아이디어 회의 ] }

sayhoon 2023. 12. 3. 09:17

오전

프로그래머스 문제 - 옹알이(2)

github link

def solution(babbling):
    answer = 0
    speak_word = ['aya', 'ye','woo','ma']

    count = 0
    for word in babbling:
        pre_speak_word = '' # 연속 된 단어를 방지 하기 위함
        target_word = "" # 현재 말하는 단어를 저장

        for alpha in word:
            target_word += alpha

            if target_word in speak_word: # target_word가 speak_word에 있는지?
                if pre_speak_word == target_word: # 이전에 말한 단어랑 같은지 ?
                    break # count 할 수 없음 !

                else: # 다르다면 target_word를 초기화 
                    pre_speak_word = target_word
                    target_word = ''

        if target_word == '':
            answer += 1

    return answer

오늘도 혼자서 풀었다 ! 기분이가 좋다 


TF-IDF 연습

Konlpy install & Mecab 설치 

colab에서 오류 발생 >> 해결 링크

 

Term Frequency (TF) - 단어 w가 문서 d에 등장한 빈도수 

Inverse Document Frequency (IDF) - 단어 w가 등장한 문서 d의 수

 

TfF-IDF의 특징

- 흔하게 등장하는 단어는 중요하지 않는 단어

- Information Retrival에서 많이 사용되는 개념

- 각 단어에 가중치를 부여 >> Keyword extraction 등에 활요

- 문서끼리 관계 파악이 가능 

$$ w_{x,y} = TF_{x,y} \times \log(\frac{N}{DF_{x}})$$

$$TF_{x,y} = \frac{문서\;내\;단어(w)의\;수}{문서\;내\;모든\;단어의\;수}$$

$$IDF_{w} = \log (\frac{전체\;문서의\;수(N)}{단어(w)가\;포함된\;문서의\;수(DF_{w})})$$


오후 

프로그래머스 문제 - 로또의 최고 순위와 최저 순위 

github link

def solution(lottos, win_nums):
    
    zero_count = 0
    answer_count = 0
    for mine in lottos:
        if mine == 0:
            zero_count += 1
        else:
            if mine in win_nums:
                answer_count += 1
    max_min = [6 if (6 - (zero_count + answer_count) + 1) > 6 else (6 - (zero_count + answer_count) + 1), 
               6 if (6 - (answer_count) + 1) > 6 else (6 - (answer_count) + 1) ]
    
    return max_min

max_min 을 구하는 과정에서 가독성이 떨어지는 문제가 있음 !..

 

Django

강의 보면서 정리한 Django

 

아이디어 회의 굿 !