#9기임팩트 #AI임팩트
안녕하세요 AI 임팩트에서 데이터 분석 파트 글 작성하는 샘호트만 입니다.
이전 글에서는 정형데이터 관련해서 고객 세그먼트 나누는 방법을 소개해드렸습니다.
때 마침 @김욱영 님이 “비정형 데이터는 경험상으로 GPT를 이용하여 비정형 → 정형화를 거치는 것이 좋더라고요! 어떻게 활용할지 궁금합니다 ㅎㅎ” 라고 말씀주셨는데요.
언급한대로 텍스트를 정형화해야 우리가 아는 여러 텍스트마이닝 기법이나 자연어처리 기법이 가능합니다. 최소 Tabular Data 형태로 만들어야 TF-IDF로 만들어야 조금이나마 텍스트 분석이 가능합니다.
전세계 데이터 8~9할이 비정형데이터이고 노이즈가 엄청 많아서 핸들링하기 극악인 것은 자명합니다. 필드에서도 비정형 데이터를 정형화하는 것이 언어모델 만드는 것 보다 난이도 극악이라 생각합니다. (물론 데이터 만들고 구하는게 제일 어렵습니다.)
그래도 안되면 되게 해봐야죠. ChatGPT ADA 위에서 정형화 하는 것을 한번 테스트 해보고자 합니다. 그럼 시작해보겠습니다.
Data 소개
우선 비정형 데이터 여러 후보들이 있었는데, 실용성이 뛰어난 부분은 ‘카카오톡 데이터’로 선정했습니다. 이를 정형화하고 아주 간단한 분석을 수행해보고자 합니다. (개인적으로 앞으로 카카오톡 텍스트 데이터 분석할 일이 많아 분석을 하고 싶다는 니즈가 있었습니다. )
3달 전에 벌써 @송다혜 (닿) 님이 실험한 내용이 있었는데, 저랑 데이터가 포맷이 조금씩 다르다는 느낌을 받았습니다. (잘은 모르겠지만 카카오톡 데이터를 export하면 사람들마다 텍스트 포맷이 다른 것 같습니다.)
제가 가진 텍스트 데이터
2월 초에 무료강의를 3일 릴레이 했었는데요. 그때 사람들 후기(사회적 증거)를 백업한 데이터 입니다.
다혜님이 가진 텍스트 데이터(3달 전 글)
작업 시작
우선 저도 똑같이 ‘알잘딱깔센’으로 정형화해주길 바랬습니다.
정규표현식을 적용한다하더라도 깔끔하게 정형화되지 않았습니다.
아래처럼 빨간색 동그라미 부분, 특히 줄바꿈 부분이 맨 첫줄만 들어오는 부분이 이슈가 많았습니다.
저의 실패 Case
3달 전 다혜님 case (어떻게 명확하게 요청했는지 궁금하네요)
이 때 저는 그냥 알아서 해주기 보다는 “제 머리에서 명확하게 지시하는 것이 빠르겠다.” 라는 생각을 하였씁니다. 다음과 같이 요구를 했습니다.
우선 텍스트 파일을 이해하라고 한 다음, 샘플을 확인하고 ‘[’ 로 시작하면 그대로 두고, 나머지는 행 뒤에 내용을 이어 붙이는 방식으로 지시를 주었습니다.
코드를 보니 제 의도대로 들어간 것을 확인했습니다.
이제 테이블로 정형화 하겠습니다. 대충 요구하니 에러가 나타났습니다.
텍스트로 하는 프롬프트 엔지니어링과 마찬가지로 명확하게 명시를 해주는 것은 진리인 것 같습니다. 일단 대화 개수가 나름 잘 있는 것 같네요. (아래 빨간색부분 처럼 명확하게 요구하기)
코드도 잘 들어간 것을 확인 했습니다.
‘후기’라고 된 키워드들만 추출하고 나머진 지우라고 하고 export 시켰습니다.
다운 받아보니 정상적인 것을 확인했습니다.
Conclusion
자연어를 코드로 변환하는데, 역시 ‘지시’를 명확하게 내려야한다. ‘알잘딱깔센’을 기대를 하지만, 장기적으로 원하는 답변을 얻기에는 실력 향상에 도움이 되지는 않는다.
확실하게 정형화를 많이 해본 사람이 시행착오를 줄일 수 있고 더욱 능숙하게 활용할 수 있다. 정규표현식 또한 deep-dive 해본 사람은 더더욱 정교한 정형화와 정보 손실을 최소화가 가능하다.
카카오톡 텍스트 데이터를 정형화하는 GPTs를 만들까~ 하다가 Input text format이 조금씩 다른 것 같아서 따로 만들지는 않았습니다. (근데 한번 만들어 두면 편하겠다. 라는 생각은 들었습니다.)
머리를 싸매면서 정규표현식을 이해해도, 한달 뒤에 똑같은 정규표현식을 검색했었던 기억이 납니다. 그만큼 제 머릿속에는 정규표현식은 매번 구글링하게 만들고, 귀찮게 만드는 존재였었는데 이 스트레스를 줄여준 것에 대해서 감사함을 느끼고 있습니다.
다음 글은 간단하게 이 데이터를 분석하는 것을 시도해보고자 합니다. 환경 위에 형태소 분석기 설치를 trial 해봤는데 안되더군요. 이 뒷 내용은 다음 글에 작성해보겠습니다.
감사합니다!