brunch

You can make anything
by writing

C.S.Lewis

by HRKIM Sep 17. 2023

Chat GPT로 조직문화 분석하기

잡플래닛 기업리뷰 데이터를 활용하여 크롤링, 시각화, 토픽모델링 수행하기

들어가며


 기존 Chat GPT와 R을 활용한 HR 텍스트 마이닝에서는 Chat GPT와 R를 활용해서 웹사이트를 크롤링하는 방법을 이미 살펴본 바 있습니다. 사실 해당 글에서는 Chat GPT와 R을 사용해 잡플래닛 등의 사이트에서 특정 기업의 리뷰를 크롤링하고 이를 통해 해당 기업의 조직문화를 분석하려 했습니다. 하지만 Chat GPT와 R로는 해당 사이트 크롤링에 한계가 있어 다른 일반 웹사이트를 대상으로 분석을 진행했습니다. 이번 'HR Analytics 끄적끄적'에서는 당시 글에서 다루지 못했던 기업리뷰 크롤링에 대해서 다루어 보고자 합니다.


 기업리뷰를 크롤링하기 위해서 Google Colaboratory와 Chat GPT_Advanced Data Analysis를 활용하고자 합니다. 추가적으로 기업 리뷰를 크롤링한 Data를 Chat GPT와 R를 활용하여 토픽모델링(Topic Modeling)을 실시하고자 합니다. 토픽 모델링은 문서를 이루고 있는 키워드들을 바탕으로 문서에서 주제를 찾아내기 위해 사용되는 방법론으로 대량의 비정형데이터에서 주제를 뽑아내기 위해 유용한 방법론입니다. 이러한 방법론을 통해 기업의 문화를 효과적으로 파악할 수 있습니다. 이번 글에서는 우아한형제들의 잡플래닛 기업리뷰 데이터를 크롤링하고 크롤링한 데이터를 시각화하고 토픽모델링 분석을 실시해 보겠습니다.


1. 잡플래닛 크롤링하기


 1-1. 크롤링 툴 소개(Google Colaboratory)


 Google Colaboratory는 구글이 제공하는 무료 Jupyter 노트북 환경입니다. GPU를 포함한 다양한 리소스를 무료로 사용할 수 있어, Colab을 사용하여 컴퓨터에 별도의 Python 설치 없이 웹 브라우저만 있으면 온라인상에서 Python 코드를 실행할 수 있습니다.


https://colab.research.google.com/?hl=ko


 아래 화면은 Colab 처음 시작화면입니다. Colab 상단에 보시면 [+코드] 버튼이 있는 것을 확인할 수 있습니다. 해당 버튼을 클릭하면 2번째 사진처럼 좌측에 ▶ 표시가 되어 있는 코드 입력창이 생성된 것을 확인할 수 있습니다. 해당 입력창에 위에서 복사한 코드를 모두 입력하고 ▶ 버튼을 클릭하면 코드가 실행됩니다. 크롤링의 경우 약간 로딩시간이 생길 수 있으며, 크롤링하고자 하는 내용이 많을 경우 이 시간은 더 길어질 수 있습니다.



 1-2. 잡플래닛 웹 크롤링하기


 잡플래닛은 다양한 기업의 리뷰와 평점, 연봉 정보 등을 제공하는 플랫폼입니다. 위의 링크에서는 잡플래닛의 기업 리뷰를 크롤링하는 코드를 제공하고 있습니다.  requests와 BeautifulSoup 라이브러리를 활용하여 웹 페이지의 데이터를 추출하고, pandas를 이용하여 데이터를 정리합니다. 이번 글에서는 여러 기업 중 우아한형제들에 기업을 대상으로 리뷰를 크롤링해 보도록 하겠습니다.


https://makes-sense.tistory.com/m/8


잡플래닛 크롤링 기본 코드


 코드는 아래 한글 파일 내 내용을 복사해서 Colab 코드 실행 칸에 바로 붙여넣기 하면 됩니다.  위 Python 코드 중에서 본인이 분석하고자 하는 기업에 따라 빨간색 부분만 수정해 주면 됩니다. 아래 코드 파일은 '현대 엔지니어링' 기업 리뷰를 크롤링하는 코드입니다. 따라서 위 코드 내용 중 이번 글에서 분석하고자 하는 우아한형제들 기업에 맞게 수정해야 할 부분에 대해서 추가로 설명드리도록 하겠습니다.



email = 'kkk@kkk.kk.kk'
password = 'abcdefghi'


 이메일과 패스워드는 본인의 이메일과 패스워드를 코드에 직접 입력해야 합니다. 그리고 해당 계정은 본인 재직기관에 리뷰를 등록하거나 유료회원이어서 리뷰를 모두 볼 수 있는 상태여야 합니다.


last_page = 150
for idx in range(1, last_page):
    url = f'https://www.jobplanet.co.kr/companies/61420/reviews/%EC%9A%B0%EC%95%84%ED%95%9C%ED%98%95%EC%A0%9C%EB%93%A4?page={idx}'


 위 last_page와 url은 본인이 분석하고 싶은 기업의 정보를 알아본 후 변경해 줘야 합니다. 저는 '(주)우아한형제들'의 기업리뷰를 분석해 보겠습니다. '(주)우아한형제들'을 분석대상으로 삼은 이유는 이 기업이 최근 MZ세대 사이에서 선호도가 높은 직장이어서 한번 분석을 진행해 보고 싶었습니다. url = f' 뒤, ?page={idx}' 앞에 (주)우아한형제들 사이트로 들어간 후 리뷰 메뉴 클릭 후 위 주소창에 나오는 URL를 복사해서 코드에 넣어줍니다.



 이와 함께 (주)우아한형제들에 맞게 리뷰 Lastpage도 지정해 줘야 합니다. 이를 확인하기 위해서 잡플라넷 (주)우아한형제들 사이트에 들어간 후 리뷰 메뉴를 클릭합니다. 리뷰 메뉴에서 가장 아래로 내려가서 >> 아이콘을 클릭하고 마지막 페이지 번호를 확인합니다. 아래 화면에서 확인할 수 있는 바와 같이 (주)우아한형제들의 경우 150페이지가 마지막 페이지인 것을 확인하였습니다. 위 코드에서 (주)우아한형제들 마지막 페이지인 150페이지를 반영하여  last_page = 150로 수정합니다.



위 코드 내용 중 df.to_excel("jobplanet_기업명.xlsx"), files.download('jobplanet_기업명.xlsx')는 크롤링하고자 하는 기업의 이름을 넣어서 파일을 구분시킬 수 있습니다. 이번 글에서는 우아한형제들을 분석할 예정이므로 아래와 같이 코딩을 하도록 하겠습니다.


from google.colab import files

df.to_excel("jobplanet_우아한형제들.xlsx")
files.download('jobplanet_우아한형제들.xlsx')



 크롤링한 결과는 엑셀 파일로 다운로드 받을 수 있습니다. 엑셀 파일을 다운로드 받을 수 있는 방법은 아래 화면을 통해 볼 수 있는 바와 같이 크게 두가지 입니다. 첫 번째는 왼쪽 메뉴에 폴더 아이콘을 클릭한 후에 나타나는 'jobplanet_우아한형제들.xlsx'을 클릭하여 다운로드 방법, 두 번째는 오른쪽 상단에 있는 다운로드 아이콘 모양을 클릭한 후 나타나는 'jobplanet_우아한형제들.xlsx' 파일을 다운로드 받는 방법이 있습니다.  



 Colab에서 크롤링한 결과 파일인 'jobplanet_우아한형제들.xlsx'을 다운로드 받은 결과 아래 화면처럼 크롤링이 정상적으로 이루어진 것을 확인할 수 있었습니다.



2. 웹 크롤링한 기업리뷰 Data 분석하기


 2-1. Data 시각화(Chat GPT_Advanced Data Analysis)


 크롤링한 기업 리뷰 데이터를 Chat GPT Advanced Data Analysis에 탑재하면, 토픽모델링, 감정분석, 키워드추출 등의 고급 분석을 실시할 수 있으며 이를 활용하여 기업의 조직문화의 특징을 파악할 수 있습니다. 이를 통해 기업의 강점과 약점, 그리고 개선 필요한 부분을 직관적으로 이해할 수 있습니다.


 기본적으로 Chat GPT: Advanced Data Analysis에서 한글 폰트가 내장되어 있지 않기 때문에 한글 비정형 데이터를 분석하여 그림으로 결과를 나타낼 때 한글이 깨집니다. 따라서 한글 폰트를 먼저 Chat GPT: Advanced Data Analysis에게 전달하여 폰트가 적용할 수 있도록 탑재합니다. 저는 지마켓에서 무료로 배포한 Gmarket Sans 글꼴을 사용하고자 합니다.



 위 한글 폰트 파일을 다운로드하고, 해당 파일을 아래와 같이  Chat GPT: Advanced Data Analysis에 탑재하면 됩니다.



Gmarket Sans 글꼴 다운로드 홈페이지: https://corp.gmarket.com/fonts/



[전체 평가 점수 분포]에 대한 Chat GPT의 해석

  전반적으로 모두 분야에서 높은 평가를 받고 있습니다. 특히, '복지 및 급여'와 '업무와 삶의 균형', '사내문화' 등에서 높은 점수를 받고 있어, 직원들이 이와 같은 부분에 만족하고 있음을 알 수 있습니다.



[현직원, 전직원 평가 점수 분포]에 대한 Chat GPT의 해석]

 전반적으로 현직원과 전직원 모두에서 높은 평가를 받고 있습니다. 그러나 일부 요소에서는 전직원의 평가 점수가 현직원 대비 다소 낮은 경향이 보입니다.



[장점, 단점 키워드 분석]에 대한 Chat GPT의 조언

장점:
 "좋은", "복지", "분위기" 등이 두드러지게 나타나며, 이는 우아한형제들의 긍정적인 문화와 복지가 잘 되어 있다는 뜻으로 해석될 수 있습니다.

향후 장점 개선 방안

1. 복지 및 혜택 확대  

"좋은"과 "복지"에 대한 긍정적인 평가를 바탕으로, 현재의 복지 혜택을 지속적으로 개선하고 확대할 필요가 있습니다.

임직원들의 건의사항 및 피드백을 수집하여, 필요한 복지 서비스나 프로그램을 추가적으로 도입할 수 있습니다.

2. 팀 문화 및 분위기 개선

"분위기"에 대한 긍정적인 평가를 기반으로, 팀별로 좋은 분위기를 유지하고 향상시키기 위한 워크숍이나 팀빌딩 활동을 지원할 수 있습니다.

성과보다 과정을 중시하는 문화를 강조하여, 직원들 간의 협력과 소통을 더욱 촉진할 수 있습니다.

단점:
 "너무", "일이", "많음" 등의 키워드가 눈에 띕니다. 이는 업무의 양이나 강도가 높을 수 있다는 의미로 해석될 수 있습니다.

향후 단점 개선 방안

1. 업무 부담 감소

"너무", "일이", "많음" 등의 키워드를 통해 업무 부담이 크다는 의견이 많음을 알 수 있습니다.

업무 분담과 프로젝트 스케줄 관리를 통해 직원들의 업무 부담을 감소시킬 수 있습니다.

필요한 경우, 추가적인 인력을 채용하거나 외부 아웃소싱을 고려하여 업무 부담을 분산시킬 수 있습니다.

2. 업무 교육 및 트레이닝  

업무 강도가 높다면, 직원들에게 효율적인 업무 수행 방법에 대한 교육이나 트레이닝을 제공하여, 업무 스트레스를 감소시킬 수 있습니다.

3. 피드백 시스템 강화  

직원들의 피드백을 주기적으로 수집하고, 그 피드백을 바탕으로 회사의 문제점을 개선하려는 노력이 필요합니다.



[직무별 사내문화 평가 점수]에 대한 Chat GPT의 조언

평가 점수 분포: 대부분의 직무에서 '사내문화' 평가 점수가 높은 편입니다. 이는 우아한형제들의 사내문화가 전반적으로 긍정적이라는 것을 나타냅니다. 대부분의 직무에서 '사내문화' 평가 점수가 높은 편입니다. 이는 우아한형제들의 사내문화가 전반적으로 긍정적이라는 것을 나타냅니다. 특히, 몇몇 직무에서는 매우 높은 평균 점수를 기록하였습니다.

평가 점수 차이: 그래프에서 일부 직무는 다른 직무에 비해 상대적으로 낮은 점수를 받았습니다. 이는 해당 직무의 특성, 업무 환경, 팀 내 문화 등 다양한 요인에 기인할 수 있습니다.

향후방안

평가 점수가 상대적으로 낮은 직무에 대해, 구체적인 원인이나 문제점을 파악하고 개선 방안을 모색하는 것이 필요합니다. 또한, 높은 평가를 받은 직무의 좋은 사례나 팀 문화를 다른 팀과 공유하여 전체 회사의 사내문화를 더욱 향상시키는 방향으로 노력할 수 있습니다.



[직무별 사내문화 코멘트 분석]에 대한 Chat GPT의 조언

좋은 분위기: '좋은' 및 '분위기' 키워드가 주요하게 등장하므로, 대체로 긍정적인 사내 분위기가 형성되어 있음을 알 수 있습니다.
복지: '복지' 키워드가 눈에 띄므로, 직원들은 회사의 복지에 만족하고 있음을 알 수 있습니다.
업무와 팀원: '업무'와 '팀원' 키워드를 통해 업무 환경과 동료와의 관계가 중요한 요소로 작용하고 있음을 알 수 있습니다.

향후방안

사내 분위기 유지: 이미 좋은 사내 분위기가 형성되어 있으므로, 이를 유지하고 더욱 강화하기 위한 다양한 프로그램 및 행사를 계획하면 좋을 것입니다.

복지 강화: 직원들이 복지에 만족하고 있으므로, 현재의 복지 프로그램을 유지하며, 필요에 따라 추가적인 복지 혜택을 도입할 수 있습니다.

팀 빌딩 및 교육: '업무'와 '팀원' 키워드를 고려하여, 팀 간의 협업을 강화하고, 교육 및 팀 빌딩 프로그램을 통해 직원들의 업무 능력 및 협업 능력을 높이는 데 집중할 수 있습니다.


 2-2. 토픽모델링(Chat GPT, R)


 토픽 모델링은 문서를 이루고 있는 키워드들을 바탕으로 문서에서 주제를 찾아내기 위해 사용되는 방법론으로 대량의 문서 집합에 적용되며 다양한 종류의 데이터에 적용이 가능합니다. 토픽 모델링의 가장 대표적인 방법론은 LDA(Latent Dirichlet Allocation)입니다. LDA 알고리즘은 생성모델로서 문헌 내에 숨겨져 있는 주제들을 찾아내는 알고리즘입니다. 토픽모델링은 사람이 직접 읽어도 되는 규모의 문서라면 필요가 없겠지만 사람이 감당하기 어려운 규모의 문서에서 무슨 내용이 다뤄졌는지를 알아보는데 유용합니다.


Blei, D(2012). “Probabilistic top models”, Communications of the ACM 55(4), 77-84.


 토픽모델링을 수행하기 위해 명사 2글자 이상 추출하여 분석을 시행하고자 합니다. 이를 위해서는 KoNLPy, KoNLP 라이브러리를 활용해야 합니다. 하지만, Colab에서 해당 라이브러리는 지원되지 않습니다.  Chat GPT Advanced Data Analysis에 파일을 탑재해서도 토픽모델링을 수행할 수 있습니다. 하지만, Chat GPT Advanced Data Analysis도 한국어 형태소 분석 라이브러리가 탑재되어 있지 않아 Colab과 동일하게 명사 추출 등이 어렵습니다.  따라서 Python 또는 R을 활용하여 토픽모델링을 수행해야 합니다. 저는 Chat GPT로 부터 R코드를 받아 R에서 분석을 실시하도록 하겠습니다.


 

 Chat GPT Advanced Data Analysis에 기업리뷰 파일을 업로드하고 총평, 장점, 단점에 명시되어 있는 비정형데이터 중 2글자 이상의 명상을 추출하여 토픽모델링을 위한 R 코드를 작성해 달라고 하면 R코드를 작성해줍니다. Chat GPT가 작성해 준 R코드가 에러가 발생할 경우 에러 메시지를 Chat GPT에게 알려주면 Chat GPT는 코드를 수정해 줍니다. 진행하면서 저도 몇 번의 수정을 거쳤고 아래와 같이 최종 R 코드를 부여받았습니다.



 아래는 토픽모델링 코드를 R에 넣고 시행한 결과물입니다. 정확한 토픽모델링 분석을 위해서는 전처리 작업이 철저하게 이루어져야 하나 이번 콘텐츠에서는 빠르게 기업리뷰에 대한 크롤링 및 시각화, 토픽모델링 분석을 시행하는 것을 보여주는 것이 주된 목표이므로 구체적인 전처리 작업은 진행하지 않고 진행하였음을 알려드립니다. 이로 인해 아래 명사가 아닌 문장들도 다수 포함되어 있는 것을 볼 수 있습니다. 정확한 텍스트 분석을 위해서는 철저한 전처리를 통해 유효한 단어들이 적절하게 포함될 수 있도록 하여야 합니다.



  Chat GPT가 제시해 준 아래 코드를 통해 토픽모델링 결과를 아래와 같이 세 가지 파일로 저장하였습니다.

 "topic_words.csv" : 각 문서가 어떤 토픽으로 구성되어 있는지 확인할 수 있는 파일

"document_topics.csv": 각 문서가 어떤 토픽들로 구성되어 있는지 확인할 수 있는 파일

"top_terms_per_topic.csv":  각 토픽별 주요 단어들을 확인할 수 있는 파일

 

# 결과를 파일로 저장
write.csv(as.data.frame(lda_model@beta), "topic_words.csv")
write.csv(as.data.frame(lda_model@gamma), "document_topics.csv")
write.csv(top_terms, "top_terms_per_topic.csv")


 Chat GPT_Advanced Data Analysis에 위 결과 파일을 압축하여 다시 탑재하고 토픽모델링 결과를 해석해 달라고 요청하였습니다.



 토픽모델링 결과인 세 가지 파일을 분석한 후 Chat GPT가 제시한 토픽모델링 분석결과 해석 및 대응방안 조언은 아래와 같습니다.


[토픽모델링_토픽 별 구체적 설명 및 대응 방안] Chat GPT의 조언

토픽1: 회사의 문화, 기업 가치, 개발자 대우, 성장

설명: 이 토픽은 회사의 전반적인 문화와 가치, 그리고 특히 개발자로서의 대우와 성장 기회에 중점을 둔 것으로 보입니다.

대응 방안: 회사 문화와 가치를 더욱 명확하게 전달하고, 이를 일상 업무에 반영하도록 노력해야 합니다. 개발자로서의 성장 기회와 교육 프로그램을 확대하여, 기술적 역량 강화에 투자해야 합니다.       
토픽2: 회사 내의 사람들, 생각, 분위기

설명: 팀원들과의 관계, 그리고 회사의 전반적인 분위기와 관련된 의견이 주로 나타나는 토픽입니다.

대응 방안: 팀 내 소통을 강화하고, 정기적인 팀 빌딩 활동을 통해 사원 간의 관계를 강화해야 합니다.의견 제시의 자유로움과 소통의 투명성을 위해 다양한 커뮤니케이션 채널을 활용해야 합니다.          
토픽3: 업무, 회사의 분위기, 자유도

설명: 업무 방식과 그에 따른 자유도, 그리고 업무와 관련된 회사의 분위기에 대한 의견이 주로 나타나는 토픽입니다.

대응 방안: 유연한 근무 방식을 도입하여 직원들의 업무 자유도를 높여야 합니다. 업무 프로세스를 최적화하여 업무 효율성을 높이는 데 중점을 둬야 합니다.      
토픽4: 근무 시간, 야근, 연차, 근무 혜택

설명: 근무와 관련된 이슈들, 특히 근무 시간, 야근, 그리고 연차와 같은 근무 혜택에 대한 의견이 주로 나타나는 토픽입니다.

대응 방안: 야근 문화를 개선하고, 필요한 경우에만 야근을 하도록 지향해야 합니다. 연차 사용에 대한 눈치를 줄이기 위해, 상사나 팀장들이 연차 사용을 적극 권장하고, 연차 사용 문화를 활성화해야 합니다.                    
토픽 5: 직원 복지, 소통, 업무 체계

설명: 직원들의 복지와 회사 내의 소통 문화, 그리고 업무의 체계와 관련된 의견이 주로 나타나는 토픽입니다.

대응 방안: 직원 복지를 지속적으로 개선하고, 이를 홍보하여 직원들이 복지 혜택을 충분히 활용할 수 있도록 해야 합니다. 회사의 업무 프로세스와 체계를 지속적으로 개선하여, 업무 효율성을 높이고 직원들의 업무 만족도를 높여야 합니다.                    


나가며


 이번 'HR Analytics 끄적끄적'에서는 웨 콘텐츠를 크롤링하고 해당 데이터를 활용하여 여러 분석을 시행하는 과정에 대해서 살펴보았습니다. 특히, 기존 웹 크롤링 콘텐츠에서 다루지 못했던 기업리뷰 웹 사이트(잡플래닛 등)의 크롤링을 Gogle Colab과 Chat GPT_Advanced Data Analysis를 활용하여 효과적으로 수행하는 방법을 살펴보았습니다. 또한 크롤링한 Data를 다시 Chat GPT_Advanced Data Analysis, R 등을 활용하여 해당 기업의 조직문화를 분석하는 과정 또한 살펴보았습니다.


 기업 리뷰 데이터는 기업의 문화와 가치를 이해하는 데 중요한 자료입니다. 기업리뷰 Data를 통해 조직의 현황과 특징에 대해서 살펴보는 것은 기업 자신이 강점을 더욱 강화하고, 약점을 개선하며 더 나은 조직문화를 만들어가는데 효과적인 방법일 수 있습니다. 기존 프로그램 코딩에 대한 심층적인 이해가 없으면 접근하기 어려웠던 HR Analytics도 Chat GPT의 도움을 받으면 비전문가도 어렵지 않게 접근할 수 있게 되었습니다. 따라서 인사담당자의 HR 인사이트를 효과적으로 증대시키기 위해서는 Chat GPT를 비롯한 AI 기술에도 지속적으로 관심을 기울이고 적극적으로 활용해야 합니다. AI 기술을 활용하여 과학적 인사관리 업무를 수행할 수 있다면 조직의 성과 창출과 성장에 효과적으로 도움을 줄 수 있는 HR 업무를 수행할 수 있을 것입니다.




9월 17일(일), 9월 24일(일) 업로드 일정을 변경하겠습니다.

기존 9월 17일(일) 업로드 예정인 콘텐츠를 9월 24일(일)에 업로드하고자 하며,

9월 24일(일)에 업로드 예정인 콘텐츠를 9월 17(일)에 업로드합니다.


[변경된 일정]

9월 17일(일): HR Analytics 끄적끄적_HR Analytics + Chat GPT 글 발행

9월 24일(일): HR Analytics 끄적끄적_HR의 미래 AI (CLAP blog 발행 원고 연결) 글 발행



Reference

Jobplanet 기업리뷰 크롤링코드. https://makes-sense.tistory.com/m/8

Sung, Wookjoon, and Changil Kim. "Nanotechnology Performance Analysis Using Topic Modeling and Social Network Analysis: Focusing on NTIS Data in Korea (2015–2019)." Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing 22 (2022): 114-127.

Blei, D(2012). “Probabilistic top models”, Communications of the ACM 55(4), 77-84.

윤효준, 박재현, 윤지운: 비정형 텍스트 자료에서 잠재정보 추출을 위한 토픽모데링 소개. 체육과학연구, 30, 501-512(2019)

                   



 HRKIM의 첫 책 '베테랑 HR 담당자가 만든 HR 담당자를 위한 '찐 실전 챗 GPT ( 생성형 AI & HR 대혁명)'이 출간되었습니다. 많은 관심 부탁드립니다.


https://www.yes24.com/Product/Goods/129378508


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari