Skip to content

dividiviDeep/chatbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Emotion chatbot

DiviDiviDeep Learning 팀의 감정인식 기반 챗봇 웹

👭 Members

| 김민재 | 김영은 | 박가연 | 이승미 | 이화경|


👉 감정 대응형 챗봇


✔ 대화를 자연어 처리하고 의도 및 감정 분석을 통하여 이에 대한 적절한 반응을 할 수 있는 감정 대응형 챗봇 시스템을 설계 및 개발

<세부목표>

  • 주어진 대화 자연어처리 가능
  • 대화를 6가지 감정(기쁨,슬픔,공포,분노,놀람,중립) 중 하나의 감정으로 분류
  • 분류된 감정에 알맞은 답변 생성
  • 감정 인식률 70% 이상의 감정 엔진 개발


👉 시스템 개요도

image

✔ 감정 대응형 챗봇 시스템은 감정 엔진과 답변 생성기로 이루어져 있다. 사용자로부터 웹을 통해 텍스트를 입력받으면 각 감정 분류 모델과 답변 생성 모델에 대화가 전달되도록 한다. 감정 분류 모델에서는 KoBERT를 통해 해당 대화에 대한 감성 분류와 분류된 감성 범주에 해당하는 감정 분류를 수행한다. 답변 생성 모델에서는 감정에 공감하는 답변을 출력하고 KoGPT-2모델을 통해 생성된 적절한 답변을 다시 사용자에게 전달한다.


👉 시스템 설계도

image

✔ 시스템 설계도는 크게 DATA, AI, INFRA 플랫폼으로 구성된다.

⓵ DATA 플랫폼
- 모델을 학습시키기 위한 데이터셋 전처리 및 정제  
- 학습에 이용하는 데이터셋: 생성 모델 학습에 사용되는 Dialog 셋, 감정분류 모델 학습에 사용되는 Sentence&Emotion 셋   
⓶ AI 플랫폼
- 감정 분류 모델 : KoBERT → 감정 분류  
- 답변 생성 모델 : KoGPT2 → 답변 생성  
- 위의 2가지 모델을 사용하여 웹애플리케이션을 통한 생성된 답변 출력  
⓷ INFRA 플랫폼
- 각 모델은 Flask에서 동작  
- 소켓 통신을 통해 감정 분류 결과 전달 및 클라이언트에 전달

📈 감정 분석에 사용한 모델 정확도

  • 데이터셋을 이용하여 학습시킨 감성분석 모델을 이용한 경우: 68.05
  • 감성분석을 수행하지 않은 경우: 67.12

👉 웹 구현 화면

image


✅ 실행 방법

> 각각 다른 두 대의 컴퓨터와 각각 모델 업로드 후 실행 
	server: 답변 생성 모델, client: 감정인식 모델
	
1. 각 root 상태에서 아래의 google dirve 링크의 모델을 각각 다운로드 (답변 생성 : dialogLM, 감정인식: emotion classification)
2. server Ip 주소를 변경하고 serv.py파일을 실행시킨다.
3. client Ip 주소를 변경하고 cli.py파일을 실행시킨다.
4. url에 client Ip 주소:5000를 입력하면 웹 화면이 실행된다. 
- server측에 `답변 생성 모델`의 결과 checkpoint와 model이 있어야함
- client측에 `감정 인식 모델`의 결과 checkpoint와 model이 있어야함

👉 모델 저장소

답변 생성 모델

감정 인식 모델

📂 사용된 라이브러리 및 언어

  • [Flask]
  • [Socket]
  • [Html,Css,Javascript]
  • [Python]

📂 사용 학습 데이터 셋


✒️ 실행 동영상 링크


✒️ 참고 Github 주소

📅 개발 기간

2020/08 ~ 2021/05

About

감정인식 기반 챗봇 웹 repository

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5