24.04.11 TIL

예진·2024년 4월 11일
0

TIL

목록 보기
66/68

중간발표 대본으로 떼우고 싶지만 앞으로의 갈길이 멀기 때문에 발표 이후 뭘 할지 간단히 정리

  • 국내 데이터 수집 (잡코리아, 잡플레닛, 워크넷, 사람인, 링크드인...)
  • 국내 데이터 분석
    • 데이터 전처리 :
      • 수집한 채용공고 내용 양식에 맞게 데이터프레임화 적재
      • KoNLPy, LLM(ChatGPT API) 활용
      • 하드/소프트 스킬 라벨링, 스킬 난이도 척도, 기업 정보 전처리
      • 미디엄/요즘IT 게시글 데이터 키워드 추출
    • 데이터 분석 :
      • 국내 채용공고 데이터로 코사인 유사도 계산하여 추천 알고리즘 구현
      • 커뮤니티 게시글 데이터 분류 분석 (주목받는 기술? 인기있는 기술? 몰루)
  • 시각화 :
    • 대시보드 구성 어떻게할지 고민
    • Tableau? Streamlit?

그나저나 우리 PPT 이뿌다

1 안녕하십니까 A01 ‘TENET’ 팀의 발표자 정예진입니다. 지금부터 최종프로젝트의 중간 발표 시작하겠습니다.

어느덧 캠프의 끝이 다가오고 있습니다. 얕고 넓은 지식이 먼지처럼 쌓여서 불안감과 자신감이 동시에 늘어나는 멋진 봄입니다. 지난 겨우내 함께한 여러분의 최종 프로젝트와 이후의 취업까지 응원하겠습니다.

2 본 프로젝트의 주제와 배경, 문제정의를 간단히 소개하고 현재까지 완료된 진행 과정과 앞으로의 목표를 말씀드리겠습니다.

3 저희의 최종 프로젝트는 “데이터 분야의 취업을 위한 개인 맞춤형 채용공고 추천 알고리즘 개발”입니다. 대규모 언어 모델, LLM을 활용하여 채용 공고와 현업 커뮤니티의 텍스트를 분석하고, 직무별 역량을 정량화 하여, 머신러닝 기법을 활용한 개인 맞춤형 추천 시스템을 구축하고자 합니다.

현대의 기업들은 데이터를 효과적으로 활용하는 능력을 강조하며 각자의 경쟁력을 확보하고자 합니다. 이에 따라 데이터 분석가, 데이터 엔지니어, 데이터 사이언티스트 등과 같은 데이터 관련 직군의 수요가 급증하고 있습니다. 그러나 기업이 발표하는 채용 공고는 다양한 양식과 각기 다른 구체적인 요구사항을 가지고 있어, 많은 구직자들이 자신에게 적합한 공고를 찾는 데에 어려움을 겪고 있습니다.

4 본 프로젝트는 이러한 요구에 부응하여 데이터 분야의 취업을 지원하고, 개인의 취업 성공률을 높이는 것을 목표로 합니다. 취준생의 효율적인 취업 활동을 돕기 위해 채용공고 데이터를 면밀이 분석하여 취업 시장의 동향을 파악하고, 자신의 역량과 관심 분야에 맞는 채용공고를 추천하는 개인 맞춤형 추천 시스템을 개발하고자 합니다.

세부적인 목표로는 채용 공고 속 텍스트를 분석하여 취업에 필요한 스킬을 데이터로서 정량화하고, 정량화한 데이터의 기술 통계를 활용해 전반적인 채용 트렌드를 확인합니다.

이를 바탕으로 개인에게 적합한 채용공고를 추천하는 시스템을 개발하고, IT 커뮤니티 게시글을 분석하여 현업 종사자의 핫 토픽을 추출하고 강화해야할 역량을 제공할 것입니다.

5 앞서 말씀드린 목표를 수행하기 위한 분석 프로세스입니다.

채용 공고 데이터를 수집하여 데이터 속의 줄글을 정형 데이터로 바꾸어주는 전처리를 진행합니다. 기초 통계량 분석을 통해 수집한 데이터의 전반적인 내용을 살펴보고 가설 검증을 통해 채용 시장의 동향을 파악합니다. IT 커뮤니티 게시글 데이터도 같은 방식의 전처리 과정을 거쳐, 데이터 산업에서 주목받는 기술을 확인합니다. 이후 코사인 유사도를 활용하여 추천 공고를 출력하고, 스킬 필터링을 통한 추천 시스템을 구축합니다. 분석 과정을 종합해 대시보드에는 채용 공고 추천 시스템과 데이터 산업의 채용 트렌드, 개인이 강화해야할 역량에 대한 추가 정보를 제공할 예정입니다.

6 저희는 캐글의 데이터 분석가 채용공고 데이터를 사용했습니다. 해당 데이터는 해외 채용사이트인 ‘Glassdoor’에서 데이터 직군에 해당하는 채용공고를 스크랩핑한 데이터 입니다.

7 데이터 안에는 직무의 이름, 연봉, 기업의 평점, 규모, 근무지 위치, 회사가 속한 산업군과 설립 연도 등 기본적인 채용 공고 속 정보들이 담겨있습니다. 평점을 제외한 대부분의 수치는 범주형 데이터이며, Job Description 컬럼은 채용 공고의 전체 데이터를 담고 있어 줄글의 형태로 되어있습니다.

8 ‘Job Description’ 컬럼의 줄글에서 스킬 키워드를 추출해 해당 스킬의 문서 내 포함 여부에 따라 1,0으로 라벨링하는 전처리를 시도했습니다. 이 과정에서 자연어 처리와 관련된 기능을 제공하는 NLTK와 특정 단어를 추출하기 위한 Pandas 두 가지 라이브러리를 사용했습니다. 라이브러리의 성능과 키워드의 특성에 따라, 맥락을 이해할 필요가 없는 키워드에는 Pandas를, 문맥의 다양한 요소를 파악해야하는 단어에는 NLTK를 활용하여 처리했습니다. 이를 통해 SQL, R, Python, 통계적 지식, Big Data, Modeling, 데이터 전처리에 해당하는 컬럼을 생성해, 효과적으로 문서 내 스킬 키워드를 추출하였습니다.

다른 컬럼에 대해서도 기업 규모인 ‘Size’ 와 연봉 ‘Salary Estimate’ 컬럼은 범주형에서 수치형으로 바꾸고, 해당 기업의 산업군을 나타내는 ‘Industry’ 컬럼은 89개의 산업명을 분류하여 14개의 산업군으로 축소했습니다.

9 다음은 전처리한 데이터를 활용해 기초 통계량 분석의 결과입니다.

도메인 별 채용공고 수를 확인한 결과, 기술 및 통신 분야의 공고 수가 가장 많고 인사, 의료 및 제약 분야가 뒤따랐습니다.

10 576건으로 가장 많았던 기술, 통신 분야의 상세 산업군을 살펴봤을 때, IT 서비스, Computer hardware 와 소프트 웨어 등이 있었습니다. IT 서비스의 공고수가 가장 많고 통신 분야가 6건으로 가장 적었습니다.

11 기업 규모 별 공고 수를 확인한 결과, 사원 수 51명에서 200명의 기업이 가장 수요가 많았고, 만 명 이상의 대기업과 1001명에서 5000명 규모의 기업이 뒤를 잇따랐습니다.

12 기업 규모 별 연봉 추이를 살펴봤을 때, 전반적으로 큰 차이는 나지 않았습니다. 연봉은 기업 규모보다, 주니어, 시니어 등 경력의 차이에 따라 달라지는 것을 알 수 있었습니다.

13 특정 스킬 키워드가 포함된 채용 공고 수를 살펴보았을 때, SQL이 2253건 중 1363 건으로 가장 많았고, 전처리에 대한 언급이 76건으로 가장 적었습니다. 데이터 전처리에 관한 키워드를 추출할 때, Prepocessing, Cleaning 등으로 검색했으나, SQL을 언급함으로써 데이터 정제에 관한 언급을 따로 하지 않은 것으로 확인되었습니다.

14 데이터 사이언티스트의 스킬 키워드를 확인했을 때, Python SQL 등에 대한 언급이 많았고, Spark, Hadoop과 같은 대규모 데이터 처리를 위한 도구의 언급이 많았습니다.

15 데이터 엔지니어의 경우도 마찬가지로 Python 과 SQL의 비율이 높지만 Scala Java 와 같은 프로그래밍 언어의 등장이 늘었으며, 대규모 데이터 처리와 더불어 클라우드 컴퓨팅 서비스와 데이터베이스를 다루는 도구의 언급 또한 많았습니다.

16 EDA를 통해 간단히 데이터의 구성을 확인해보았고, 이 데이터에 어떤 내용이 담겨있는지 구체적으로 알아보기 위해 간단한 가설을 세워 검증하는 방식을 사용했습니다.

첫번쨰 가설은 “도메인 별로 요구하는 스킬이 다를 것이다”입니다. 해당 가설을 검증하기 위해 각 도메인 별 스킬 키워드가 등장한 횟수를 측정하여 산업 별 스킬의 비중을 계산하고 히트맵으로 표현했습니다. 그 결과 도메인 별로 SQL의 비중은 대체적으로 높지만, Education 이나 Government 를 보면,SQL 보다 통계적 지식을 더 요구하는 것을 확인할 수 있었습니다. 유통과 서비스, 엔터테인먼트 산업에서는 특정 지표를 한눈에 확인하기 위해 데이터 시각화가 특히 강조되는 것을 볼 수 있습니다.

이로써 산업군의 특징에 따라 요구하는 기술에 차이가 있다는 것을 시각화를 통해 확인해 보았습니다.

17 두번째 가설은 “데이터 직군 중 데이터 엔지니어가 평균 연봉이 가장 높을 것이다” 입니다.

저희가 수집한 데이터 직군 세가지 Data Analyst, Data Scientist, Data Engineer 의 연봉 분포를 확인해 본 결과, 데이터 사이언티스트의 평균 연봉이 높았습니다. 데이터 엔지니어에게 더 많은 기술을 요구할 것이라는 추측으로 세운 가설에 반해, 데이터 사이언티스트가 더 높은 연봉을 주로 받는다는 것을 알 수 있었습니다.

18 이 내용에 뒷받침될 만한 근거를 찾기 위해 각 직군별 요구되는 학력을 조사했습니다. 데이터 엔지니어는 학사를 주로 요구하고, 석박사의 비율이 적은 것에 반해, 데이터 사이언티스트는 학사보다 석박사를 요구하는 비율이 높았습니다. 높은 학위는 교육 수준과 전문성을 나타내며, 데이터 사이언티스트 채용에 있어서 그만큼 전문성과 경력을 요구한다는 것으로 해석할 수 있습니다.

19 앞서 가설 검증과 추가적인 통계 분석을 통해 현재 캐글에서 수집한 채용공고 데이터로 채용 동향을 간단히 확인했습니다. 이후 정량화 한 스킬 데이터를 이용해 코사인 유사도를 계산하여 특정 공고와 유사한 공고를 추천하는 로직을 완성했습니다. 1,0으로 라벨링한 스킬 데이터로 유사도를 측정하고, A 공고와 가장 유사한 공고 5개를 출력했을 때, 6개의 공고 모두 요구하는 스킬 또한 같은 것을 확인할 수 있습니다.

20 여기까지 저희의 현재 진행 과정을 보여드렸습니다. 남은 2주간 진행할 프로젝트의 목표는 다음과 같습니다.

‘Glassdoor’의 데이터 직군 채용공고 데이터는 각 직군별 2000개 정도로 데이터가 크지 않고, 채용 동향을 파악하기에는 데이터가 수집된 시점과 프로젝트 진행 간의 시차가 있어 추가적으로 현재의 채용 공고 데이터를 수집할 예정입니다.

또한 전처리 과정에서 NLTK와 Pandas를 통해 간단히 스킬 라벨링을 했지만 LLM(대규모 언어모델)을 활용하여 Hard skill과 Soft skill 뿐만 아니라 기업의 정보까지 추가해 보다 상세히 정량화 할 예정입니다. 현업 커뮤니티의 게시글 데이터 또한 LLM을 활용해 키워드를 추출하여 분류해 주목받는 토픽과 강화해야할 역량을 보여주고자 합니다.

현재는 Visual Studio에서만 작업해본 결과이기 때문에 필터링 시스템까지는 구축하지 못했지만 디테일한 전처리를 통해 대시보드에서는 스킬 필터링을 통해 나에게 맞는 공고를 볼 수 있도록 구축할 예정입니다.

21 여기까지 A01 테넷팀의 최종프로젝트 중간발표였습니다. 감사합니다.


아침에 대본 수정 해야겠다,,, 내일두 Azazar,,

profile
Data Analysis / 맨 땅에 헤딩

0개의 댓글