프로젝트를 시작하기 전에

필자는 창의적이며 주목받을 수 있는 아이디어 선점에 큰 영향을 끼치지 못했다.
그 이유인 즉슨 팀원들의 참신한 아이디어가 너무 많아서 고민이 많았기 때문이다.
리뷰 어뷰징을 방지하는 것부터, 이커머스 리뷰 감성분석까지 다양한 의견이 오갔고 그 중에서 실현 가능성이 가장 큰 아이디어를 선정하였다.

이 프로젝트의 핵심은 사람들이 쉽게 이해하고 공감할 수 있는 주제를 선정하는 것이었다.
우리의 최종 목표는 E-commerce 사이트에서 제공되는 리뷰들의 신뢰도를 검증함으로써, 소비자들이 제품을 구매할 때 더 신뢰성 있는 정보를 얻을 수 있도록 하는 것이다.

이 중요한 과제에 있어, 필자는 프로젝트의 코드 구현 부분을 맡아 작업을 진행하였다.
여기선 텐서플로우를 활용한 실제 코딩 과정을 볼 수 있으며, 간략한 구현 발표 영상도 첨부하였다.
이를 통해 리뷰의 진정성을 판별하는 모델을 개발하여 프로젝트를 마무리하였다.

여기서 잠깐, 텐서플로우 란?

구글 브레인 팀이 만들어 전 세계에 공개한 텐서플로우는 기계 학습에 필요한 다양한 도구들을 제공하는 라이브러리이다. 사용자 친화적인 기능들 덕분에 누구나 손쉽게 사용할 수 있다.
파이썬이라는 인기 있는 프로그래밍 언어를 사용하여, 복잡한 연산도 간편하게 처리할 수 있다.
비교적 최근에 나왔음에도 불구하고, 이미 여러 분야에서 널리 활용되고 있는 이 도구는 기계 학습을 더 쉽고 접근 가능하게 만들어주는 강력한 도구이다.

서비스 플로우차트

flowchart LR;
    A(웹/모바일 사용저 유입)-->B[상품검색]
    B-->|사용자 리뷰 입력|C[감성 분석 모델 적용]
    C-->D{상품 리뷰 주요 키워드/감정 선호도 수치화/평균 평점 표현}
    D-->|기대효과|E[고객 상품 구매 페이지 유입]
    F-->G[고객사 중개 수수료 취득]
    E-->F(상품 구매)
    
    D-->|성과지표|I[리뷰 평가]
    I-->H(평가 출력)

기술 플로우차트

flowchart LR;
    USER(사용자) --> |UI|T[PC/Mobile]
    T --> |상품검색|A
    DATABASE[(데이터베이스)] <---> A
    
    A[데이터 수집] --> B[텍스트 분석]
    %%B --> C[감성 분석]
    C --> D[결과 분석]
    
    B --- E[형태소 분석] --> C
    B --- F[품사 태깅] --> C
    B --- G[개체명 인식] --> C[감성 분석]
    
    C --- H[긍정/부정 단어사전 구축]
    C --- I[감성 점수 계산]
    D --- J(분석 결과 시각화)
    D --- K(리뷰 감성 분포 파악)

프로젝트 진행 순서

  1. 데이터 수집
    이 단계에서는 감정 분석을 수행할 대상 데이터를 수집한다. 주로 감정 말뭉치를 활용하는데, 이는 각 텍스트에 긍정, 부정, 중립 등의 감정이 라벨링된 데이터 세트이다.
    이 데이터는 소셜 미디어, 리뷰 사이트, 포럼, 뉴스 코멘트 등 다양한 출처에서 수집할 수 있다. 때로는 이와 관련된 메타데이터(작성자, 작성일, 출처 등)를 포함할 수도 있다.

  2. 데이터 전처리
    수집된 데이터는 종종 노이즈가 많고, 분석하기 어려운 형태로 존재한다. 이 단계에서는 데이터를 정제하고 분석에 적합한 형태로 가공한다. 이 과정에는 불용어 제거(예:그리고, 하지만), 텍스트 정규화, 대소문자 통일, 구두점 제거, 오타 수정, 공백 제거 등이 포함될 수 있다. 이는 데이터의 일관성을 확보하고 분석과정에서의 잡음을 최소화하기 위함이다.

  3. 텍스트 분석
    데이터 전처리 후에는 형태소 분석, 품사 태깅, 개체명 인식 등의 자연어 처리 기술을 사용하여 텍스트 데이터를 더 깊게 분석한다. 형태소 분석은 문장을 가장 작은 의미 단위인 형태소로 분해하고, 품사 태깅은 각 단어에 품사를 할당하여 문장의 구조와 의미를 파악하는데 도움을 준다. 개체명 인식은 텍스트에서 사람, 장소, 기관 등의 명사를 식별하여 중요 정보를 추출하는 과정이다.

  4. 감성 사전 구축 및 점수 계산
    텍스트의 감정적 성향을 분석하기 위해 긍정 및 부정 단어 사전을 구축한다. 이 사전은 특정 단어가 긍정적인 감정을 나타내는지, 부정적인 감정을 나타내는지를 정의한다. 각 단어에는 감성 점수가 할당되며, 텍스트 전체의 감성 점수는 개별 단어 점수의 합이나 평균으로 계산될 수 있다. 이 점수를 통해 텍스트가 전반적으로 긍정적인지 부정적인지를 판단한다.

  5. 결과 시각화 및 분석
    분석된 데이터는 그래프, 차트, 열지도 등 여러 시각적 형태로 표현될 수 있다. 이를 통해 사용자는 데이터의 감정적 경향, 감정 변화의 패턴, 특정 감정과 연관된 단어나 구문 등을 쉽게 파악할 수 있다. 시각화는 또한 데이터의 특정 특징을 강조하고, 데이터 내 숨겨진 패턴이나 트렌드를 명확하게 드러내는 데 도움을 준다.

  6. 결론 도출
    마지막 단계에서는 수행된 분석과 시각화를 바탕으로 결론을 도출한다. 이는 데이터에서 발견된 패턴이나 경향을 요약하고, 감정 분석의 결과가 무엇을 의미하는지를 설명한다. 또한, 분석 결과를 기반으로 한 향후 조치나 권장 사항을 제공할 수 있다. 예를 들어, 고객 피드백 분석을 통해 얻은 인사이트를 바탕으로 제품 개선, 고객 서비스 개선, 마케팅 전략 조정 등의 결정을 내릴 수 있다.

마무리 소감

팀원들과의 원활한 소통과 협업 과정에서 책임감과 목표 의식이 더욱 분명해졌다.
프로젝트를 성공적으로 마무리하며 의미있는 경험을 쌓을 수 있었다.
또한, 직장 생활과 학업을 병행하는 것은 매우 힘든 일임을 깨달았다.
그럼 이만, 총총.