songeunmin/NomNomNom

NLP Project

0

stars

50

commits

Jupyter Notebook

primary language

Mar 16, 2024

updated

README

✒️ 감정분석 기반 AI 카피라이팅 서비스
- AI copywriting service based on emotional analysis

70f0f09a-1b95-4b7a-ad39-0aac97c533f4

👥 Team

  • Team name : ⚔️ 좋은 놈, 나쁜 놈, 이상한 놈 (놈놈놈)
  • Team members : 송은민, 윤성진, 송영달
    • :clock1:시작일 : 2024.02.26(월)
    • ⏰목표일 : 2024.03.15(금)

:books: skill

  • Programming
  • Framework
  • Tools
  • Git

목차(INDEX)

  Ⅰ. 주제 선정
  Ⅱ. 목표 설정
  Ⅲ. 프로젝트 순서도
  Ⅳ. 모델 선정
  Ⅴ. 데이터 전처리
  Ⅵ. 모델링
  Ⅶ. 키워드 추출
  Ⅷ. 서비스 구현
  Ⅸ. 프로젝트 결과
  

Ⅰ. 주제선정

1. 인공지능의 발전과 함께 마케팅 분야도 변화
    1) 마케팅 분야에 인공지능을 활용함에 따라 효율성과 정확도가 크게 향상
    2) 고객 리뷰 분석을 통해 ‘긍정’ 및 ‘부정’ 리뷰를 자동 분류하여 빅데이터화
    3) AI 챗봇의 활용 - ‘KoGPT’ 등장

2. 자료출처
    1) 매일경제 https://www.sedaily.com/NewsView/29RZKXMF51.htm
    2) 경향신문 https://thepoc.co.kr/58/?q=YToxOntzOjEyOiJrZXl3b3JkX3R5cGUiO3M6MzoiYWxsIjt9&bmode=view&idx=7008773&t=board.htmhttps://m.khan.co.kr/economy/economy-general/article/202210131108001#c2b
    3) 한국경제 https://www.hankyung.com/article/2023050776871

Ⅱ. 목표설정

1. 리뷰 감정분석
    1) KoBERT 모델을 Fine-tuning
    2) 감정분석 후 긍정, 중립, 부정으로 분류
    3) 긍정 리뷰 데이터만 사용

2. 핵심 키워드 추출
    1) KeyBERT와 Kiwi 형태소분석기 사용해 핵심 키워드 추출
    2) 긍정 리뷰 데이터에서 핵심 키워드 3개 추출

3. 카피라이팅 서비스
    1) OpenAI API를 사용
    2) 긍정 리뷰 데이터 csv파일을 업로드하면 핵심 키워드 3개를 추출해주는 서비스 구현
    3) 추출한 핵심 키워드 3개와 광고할 제품의 이름, 설명을 조합해 카피라이팅을 해주는 서비스 구현

Ⅲ. 프로젝트 순서도

project_process

Ⅳ. 모델 선정

1. SKTBrain/KoBERT 모델
    1) 기존 BERT 모델의 한국어 성능 한계를 극복하기 위해 개발한 모델
    2) 레이어를 추가해 쉽게 Fine-tuning 수행 가능
    3) 네이버 영화 리뷰 감정분석에 대한 결과가 타 모델들에 비해 훌륭함

Ⅴ. 데이터 전처리

p

1. 학습 데이터
    1) Aihub "속성기반 감정분석 데이터" (25만개)
    2) Text, GeneralPolarity(리뷰, 라벨)를 Feature로 선택
    3) 라벨링 - 0:부정, 1:중립, 2:긍정

2. 테스트 데이터
    1) 치지직 리뷰 크롤링 후 content(리뷰) 컬럼만 사용

Ⅵ. 모델링

m

1. SKTBrain/KoBERT Fine-tuning
    1) 환경 - Colab pro v100 gpu
    2) 텍스트, 라벨을 리스트로 묶어 훈련 양식에 맞춤
    3) Epoch 10, 소요시간 - 2:30 (1Epoch당 15분)

2. 결과 시각화
    1) Training Loss & Training/Test Accuracy
c     2) Confusion Matrix
cc     3) 치지직 리뷰 감정분석 Tableau 대시보드
t

3. 결론
    1) 과적합 가능성이 의심되지만 분류 성능이 우수해 그대로 사용
    2) 치지직 리뷰 감정분석 결과 부정 감정의 분포가 가장 많음
    3) 감정 별 감정분석 정확도는 80% 이상

Ⅶ. 키워드 추출

k

1. 1차 키워드 추출
    1) KeyBERT로 1차 키워드 추출
    2) 키워드로 사용하기 힘든 언어 구조로 출력
    3) 형태소분석기 필요

2. Kiwi 형태소분석기
    1) Kiwi 형태소분석기를 통해 명사만 추출
    2) 대부분 명사로 출력되지만, 여전히 키워드로 사용하기 힘든 언어가 섞여서 출력

3. 2차 키워드 추출
    1) KeyBERT로 2차 키워드 추출
    2) 완벽한 명사 형태의 키워드가 출력
    3) 중요도가 가장 높은 상위 핵심 키워드 3개를 추출

kk

Ⅷ. 서비스 구현

zozozoz 1. OpenAI API KEY 입력
kkk

2. 키워드 추출 페이지
치지직 키워드 추출

3. AI 카피라이팅 페이지
치지직3

Ⅸ. 프로젝트 결과

1. 개선 및 발전사항
    1) 마케팅 챗봇으로 발전
    2) 기업 리뷰나 평가를 감정분석 후 기업의 의사결정에 도움을 주는 서비스로 발전

2. 프로젝트에서 배운 점
    1) 마케팅 관련 프로젝트를 진행한 경험
    2) 새로운 툴들과 다양한 자연어처리 모델을 체험
    3) 라이브러리 버전관리의 중요성을 재확인

3. 프로젝트에서 아쉬운 점
    1) 기업 평가를 하고 싶었지만 정보가 너무 제한적
    2) GA4까지 사용해보고 싶었으나 권한 문제로 사용해보지 못함
    3) 훈련 후 분석 성능은 대체적으로 만족하지만 과적합 가능성이 아쉬움
    4) 환경관리가 잘 이루어지지 않아, Colab 이외 다른 환경에서는 훈련을 해보지 못함
    5) KoBERT가 아닌 다른 모델들의 훈련과정이 순탄치 않았음
    6) 비용적인 문제

🕴️ Thanks.

Notion - https://river-suede-2bf.notion.site/1dddbda15afd4682bec92fb6d900565f
Streamlit URL - https://nomnomnom-jhnzuii6kzyt5i8dazedan.streamlit.app/

Contributors

songeunmin

42 commits

songyeongdal

4 commits

Yyssjj96

4 commits

songeunmin/NomNomNom

NLP Project

0

stars

50

commits

Jupyter Notebook

primary language

Mar 16, 2024

updated

README

✒️ 감정분석 기반 AI 카피라이팅 서비스
- AI copywriting service based on emotional analysis

70f0f09a-1b95-4b7a-ad39-0aac97c533f4

👥 Team

  • Team name : ⚔️ 좋은 놈, 나쁜 놈, 이상한 놈 (놈놈놈)
  • Team members : 송은민, 윤성진, 송영달
    • :clock1:시작일 : 2024.02.26(월)
    • ⏰목표일 : 2024.03.15(금)

:books: skill

  • Programming
  • Framework
  • Tools
  • Git

목차(INDEX)

  Ⅰ. 주제 선정
  Ⅱ. 목표 설정
  Ⅲ. 프로젝트 순서도
  Ⅳ. 모델 선정
  Ⅴ. 데이터 전처리
  Ⅵ. 모델링
  Ⅶ. 키워드 추출
  Ⅷ. 서비스 구현
  Ⅸ. 프로젝트 결과
  

Ⅰ. 주제선정

1. 인공지능의 발전과 함께 마케팅 분야도 변화
    1) 마케팅 분야에 인공지능을 활용함에 따라 효율성과 정확도가 크게 향상
    2) 고객 리뷰 분석을 통해 ‘긍정’ 및 ‘부정’ 리뷰를 자동 분류하여 빅데이터화
    3) AI 챗봇의 활용 - ‘KoGPT’ 등장

2. 자료출처
    1) 매일경제 https://www.sedaily.com/NewsView/29RZKXMF51.htm
    2) 경향신문 https://thepoc.co.kr/58/?q=YToxOntzOjEyOiJrZXl3b3JkX3R5cGUiO3M6MzoiYWxsIjt9&bmode=view&idx=7008773&t=board.htmhttps://m.khan.co.kr/economy/economy-general/article/202210131108001#c2b
    3) 한국경제 https://www.hankyung.com/article/2023050776871

Ⅱ. 목표설정

1. 리뷰 감정분석
    1) KoBERT 모델을 Fine-tuning
    2) 감정분석 후 긍정, 중립, 부정으로 분류
    3) 긍정 리뷰 데이터만 사용

2. 핵심 키워드 추출
    1) KeyBERT와 Kiwi 형태소분석기 사용해 핵심 키워드 추출
    2) 긍정 리뷰 데이터에서 핵심 키워드 3개 추출

3. 카피라이팅 서비스
    1) OpenAI API를 사용
    2) 긍정 리뷰 데이터 csv파일을 업로드하면 핵심 키워드 3개를 추출해주는 서비스 구현
    3) 추출한 핵심 키워드 3개와 광고할 제품의 이름, 설명을 조합해 카피라이팅을 해주는 서비스 구현

Ⅲ. 프로젝트 순서도

project_process

Ⅳ. 모델 선정

1. SKTBrain/KoBERT 모델
    1) 기존 BERT 모델의 한국어 성능 한계를 극복하기 위해 개발한 모델
    2) 레이어를 추가해 쉽게 Fine-tuning 수행 가능
    3) 네이버 영화 리뷰 감정분석에 대한 결과가 타 모델들에 비해 훌륭함

Ⅴ. 데이터 전처리

p

1. 학습 데이터
    1) Aihub "속성기반 감정분석 데이터" (25만개)
    2) Text, GeneralPolarity(리뷰, 라벨)를 Feature로 선택
    3) 라벨링 - 0:부정, 1:중립, 2:긍정

2. 테스트 데이터
    1) 치지직 리뷰 크롤링 후 content(리뷰) 컬럼만 사용

Ⅵ. 모델링

m

1. SKTBrain/KoBERT Fine-tuning
    1) 환경 - Colab pro v100 gpu
    2) 텍스트, 라벨을 리스트로 묶어 훈련 양식에 맞춤
    3) Epoch 10, 소요시간 - 2:30 (1Epoch당 15분)

2. 결과 시각화
    1) Training Loss & Training/Test Accuracy
c     2) Confusion Matrix
cc     3) 치지직 리뷰 감정분석 Tableau 대시보드
t

3. 결론
    1) 과적합 가능성이 의심되지만 분류 성능이 우수해 그대로 사용
    2) 치지직 리뷰 감정분석 결과 부정 감정의 분포가 가장 많음
    3) 감정 별 감정분석 정확도는 80% 이상

Ⅶ. 키워드 추출

k

1. 1차 키워드 추출
    1) KeyBERT로 1차 키워드 추출
    2) 키워드로 사용하기 힘든 언어 구조로 출력
    3) 형태소분석기 필요

2. Kiwi 형태소분석기
    1) Kiwi 형태소분석기를 통해 명사만 추출
    2) 대부분 명사로 출력되지만, 여전히 키워드로 사용하기 힘든 언어가 섞여서 출력

3. 2차 키워드 추출
    1) KeyBERT로 2차 키워드 추출
    2) 완벽한 명사 형태의 키워드가 출력
    3) 중요도가 가장 높은 상위 핵심 키워드 3개를 추출

kk

Ⅷ. 서비스 구현

zozozoz 1. OpenAI API KEY 입력
kkk

2. 키워드 추출 페이지
치지직 키워드 추출

3. AI 카피라이팅 페이지
치지직3

Ⅸ. 프로젝트 결과

1. 개선 및 발전사항
    1) 마케팅 챗봇으로 발전
    2) 기업 리뷰나 평가를 감정분석 후 기업의 의사결정에 도움을 주는 서비스로 발전

2. 프로젝트에서 배운 점
    1) 마케팅 관련 프로젝트를 진행한 경험
    2) 새로운 툴들과 다양한 자연어처리 모델을 체험
    3) 라이브러리 버전관리의 중요성을 재확인

3. 프로젝트에서 아쉬운 점
    1) 기업 평가를 하고 싶었지만 정보가 너무 제한적
    2) GA4까지 사용해보고 싶었으나 권한 문제로 사용해보지 못함
    3) 훈련 후 분석 성능은 대체적으로 만족하지만 과적합 가능성이 아쉬움
    4) 환경관리가 잘 이루어지지 않아, Colab 이외 다른 환경에서는 훈련을 해보지 못함
    5) KoBERT가 아닌 다른 모델들의 훈련과정이 순탄치 않았음
    6) 비용적인 문제

🕴️ Thanks.

Notion - https://river-suede-2bf.notion.site/1dddbda15afd4682bec92fb6d900565f
Streamlit URL - https://nomnomnom-jhnzuii6kzyt5i8dazedan.streamlit.app/

Contributors

songeunmin

42 commits

songyeongdal

4 commits

Yyssjj96

4 commits

Languages

Jupyter Notebook

99.9%