감정분석에서 워드 클라우드 시각화까지
안녕하세요! 이번 글에서는 ChatGPT를 활용해 고객 리뷰에 대한 감정 분석을 진행해 보겠습니다. 약 1년 전에는 ChatGPT 웹사이트와 OpenAI API를 이용해 간단한 감정분석을 시도했었는데요, 이번에는 ChatGPT의 언어 능력을 활용해 감정 분석과 키워드 추출을 수행하고, 코드 인터프리터 기능을 이용해 워드 클라우드로 시각화하는 과정까지 함께 살펴보겠습니다.
감정 분석(Sentiment Analysis)은 해당 텍스트가 긍정적인지, 부정적인지 판단하는 자연어의 한 분야인데요. 요즘에는 고객 리뷰나 소셜 미디어 게시물과 같은 텍스트 데이터가 많이 생성되서 이를 빠르게 분석해 소비자의 반응을 파악할 수 있습니다. 특히, 고객 반응이나 시장 트렌드를 빨리 파악해 마케팅이나 대응 전략을 수립하는 데 도움이 될텐데요.
먼저 준비물부터 소개해 보겠습니다. 이번 실습에서는 코드 인터프리터 기능이 있는 ChatGPT-4o를 사용했구요. 사용한 데이터셋은 네이버 쇼핑몰에서 2020년에 수집된 제품별 별점과 리뷰 데이터입니다. 이 데이터셋은 다양한 제품에 대한 후기를 포함하고 있으며, 긍정 또는 부정으로 분류하기 애매한 별점 3점에 해당하는 리뷰는 제외하고 긍정(4~5점)과 부정(1~2점)으로 구성된 약 20만 개의 데이터셋입니다.
데이터셋은 구글 검색창에서 'naver shopping txt'로 검색하여 다운로드할 수 있습니다. 다운로드한 파일은 텍스트 파일 형식인데 챗GPT 첨부 시 오류가 나서 CSV 파일로 변환하여 분석하도록 하겠습니다. Excel에서 이 텍스트 파일을 열어 CSV UTF-8(쉼표로 구분) 형식으로 다시 저장해 주시면 데이터를 사용할 수 있습니다.
그럼, CSV 파일로 변환한 데이터를 챗GPT에 업로드하겠습니다. 기존처럼 챗GPT화면에 데이터를 몇 개씩 복사해 붙여넣고 수동으로 분석을 할 수도 있지만, 파일 첨부 기능을 활용하면 데이터를 한 번에 업로드할 수 있고 데이터셋에 대한 질문을 하거나 분석을 하면서 나오는 결과들을 바로 업데이트해서 나중에 다시 파일로 출력할 수 있습니다.
챗GPT로 감정 분석을 하기 위해 데이터를 한 번에 50개씩 나누어 처리했는데요. 물론 데이터셋 자체는 파일 첨부 기능을 통해 약 20만 개의 데이터를 한 번에 업로드할 수 있었지만, 이 모든 데이터를 한 번에 처리하려고 하면 응답이 끊기거나 오류가 발생하거나, 생성된 내용이 비정상적으로 이어질 가능성이 높습니다. 따라서 보다 안정적이고 신뢰도 높은 분석을 위해 데이터를 작은 단위로 나누어 요청하는 방식을 택했습니다.
또 한 가지, 챗GPT는 문맥에 대한 이해를 바탕으로 감정 분석을 잘 수행할 수 있지만, 경우에 따라서는 사전 정의된 단어 리스트를 기준으로 분류하거나 자연어처리 라이브러리 혹은 머신러닝 모델을 호출하려는 경향이 있어 이러한 방식은 사용하지 않도록 지시사항을 별도로 추가했습니다.
50개씩 두 번에 걸쳐 감정 분석을 진행한 뒤, ChatGPT가 예측한 100개의 감정 결과를 실제 라벨과 비교해 보았습니다. 그 결과, 정확도는 약 66% 수준으로 나타났으며, 상황에 따라 정확도는 60%에서 90% 사이로 변동하는 것으로 보입니다.
특히 이번에는 단어 하나로 인해 부정적인 리뷰가 긍정으로 잘못 분류되는 오류가 있었고, ‘중립’으로 분류하는 경우도 있어서 모델 성능에 부정적인 영향을 준 것으로 보입니다. 실행할 때마다 결과에 변동이 있어 이런 정답이 있는 데이터로 확인해보는 것도 의미있다고 생각합니다. 이런 결과를 바탕으로 지시사항을 보완하거나 한 번에 처리하는 데이터셋 크기를 (시간은 더 걸리더라도) 10개 단위로 줄여 분석 정확도를 높이는 방법도 고려할 수 있겠습니다.
그럼, 이번에는 챗GPT에게 각 리뷰에서 주요 키워드를 추출해 달라고 요청해 보겠습니다. 역시 사전 정의된 단어 리스트나 머신러닝 모델을 사용하지 않고, 챗GPT가 직접 판단하여 주요 키워드를 추출하도록 했습니다. 이렇게 추출된 키워드를 통해 고객들의 의견이나 반응을 빠르게 파악하는데 사용할 수 있는데요.
이 키워드들을 워드 클라우드로 시각화하면 결과를 직관적으로 확인할 수 있습니다. 워드 클라우드는 빈도수가 높은 단어일수록 크게, 빈도수가 낮은 단어일수록 작게 표시하기 때문에 고객들이 주로 언급하는 관심사나 이슈를 한눈에 파악할 수 있습니다.
다음은 위에서 진행한 분석에 사용한 프롬프트입니다. 아래에 제공하는 프롬프트를 챗GPT에 입력하여 직접 실습해 보세요. 챗GPT를 활용해 고객 리뷰 데이터에 대한 감정 분석과 주요 키워드 추출 등을 경험하고 가능성을 확인해 보세요!
이번 실습은 제가 출간한 『챗GPT로 마케팅 데이터 분석하기』 책의 일부 내용을 기반으로 구성했습니다. 책에서는 감정 분석 외에도 매출 예측, 고객 세그멘테이션 등 다양한 마케팅 분석 예제를 담고 있으니, 보다 깊이 있는 학습을 원하신다면 아래 링크를 참고해 주세요.
https://product.kyobobook.co.kr/detail/S000214577163