Source
PPT
-
Work Team & Member
- 팀명: 삼삼오오
- 팀원: 박유정, 김찬희, 정새하, 정한슬
-
Work Schedule
- 1월 8일 ~ 10일: 기획 및 데이터 크롤링
- 1월 11일: 데이터 전처리
- 1월 12일 : 데이터 전처리, 감성사전 제작 및 감성분석
- 1월 13일: 점수화 및 시각화
-
Skills
- Python
- Jupyter Lab
- Github
- Slack
-
Dataset
-
문제정의
제품을 구매할 때 여러 요소를 보며 비교하지만 실제 사용자의 리뷰를 읽어보며 정하는 경우가 많음 이 때 많은 시간이 소모되는데 리뷰가 긍정인지 부정인지 판단하는 것 뿐만 아니라 구매결정에 필요한 다른 요소들도 파악하는데 마땅한 지표나 방법이 없음에 문제를 느낌
-
목표
자연어 처리 기술(NLP)로 리뷰를 분석해서 가격 이외의 지표를 명확하게 제시해 소비자의 구매결정에 도움을 주고자 함
- 데이터 수집: 무선 청소기 리뷰 데이터
- 데이터 전처리
- 문자 단위로 분리(kkma.sentences)
- 특수문자 제거(re.sub)
- 띄어쓰기 교정(pykospacing)
- 맞춤법 교정(okt.normalize)
- 감성사전 제작: 지표 설정, 점수 산정
- 감성분석: 키워드 추출, 감성 찾기
- 점수화: 단어 가중치를 도출해서 반영(CountVectorizer로 벡터화 한 값을 TF-IDF 로 변환해서 중요도를 구함)
- 분석 결과 시각화: 불용어 제거, 단어 빈도수 워드클라우드, TOP5 제품 시각화
selenium 4.1.0
BeautifulSoup4 4.6.0
pandas 1.3.5
KoNLPy 0.5.2
Pycospacing 0.5
Scikits-learn 1.0.1
Numpy 1.19.5
- 데이터 전처리
- 말뭉치 제작
- 감성사전 제작
- 불용어 제거
- 워드클라우드
-
워드클라우드를 그려보는 과정에서 불용어 사전을 사용해도 의미 없는 단어들이 많이 추출되는 현상이 발생했습니다. 먼저 ‘것’, ‘집’ 과 같이 단어 길이가 1인 것은 명사 추출 과정에서 제외 시켰습니다. 추가로 ‘청소기’, ‘청소, ‘제품’, ‘사용’과 같이 청소기 리뷰에서 당연하게 자주 사용되어 중요도가 낮은 것들은 사전에 추가하여 제외되도록 개선했습니다. 그 결과 감성사전에서 지정했던 키워드들이 실제로 리뷰 내에서도 많이 언급되는 것을 확인할 수 있었고 지표를 작성할 때 반영할 수 있었습니다.
-
제가 담당했던 LG와 Tefal의 경우 ‘가성비’라는 키워드가 리뷰 내에서 LG는 추출되지 않았고 Tefal은 비교적 자주 등장했습니다. 고가로 형성되어있는 LG 청소기에서는 나오기 힘든 단어이기 때문이라고 생각됩니다. 전처리 과정이 길어져 팀원과 상의한 후 기존에 수집한 데이터 1만개에서 슬라이싱으로 데이터를 덜어내자고 결정을 하였습니다. ‘데이터가 줄어서 유의미한 인사이트를 얻을 수 있을까’하는 걱정이 있었는데 작은 데이터 속에서도 인사이트를 찾아낼 수 있다는 걸 알게 된 유익한 시간이었습니다.
-
자연어 처리를 하며 분석 과정마다 에러에 대한 고비가 많았습니다. 인코딩 형식이나 타입 문제가 자주 발생해서 구글링을 해보았지만 한국어 관련 에러 해결방안을 찾는 것이 쉽지 않았습니다. 구글링에 의존하는 것은 한계가 온다는 걸 깨달았고 팀원들과 함께 해결해보는 과정을 겪었습니다 해당 코드에 가서 값이 어떤 타입으로 들어오고 있는지, 어디까지는 정상적으로 작동하고 어디부터 에러가 나는지 확인하는 것이 우선이라는 것을 깨달았습니다. 에러를 마주쳤을 때 print를 루틴처럼 찍어보게 되는 계기가 되었습니다.