DiviDiviDeep Learning 팀의 감정인식 기반 챗봇 웹
| 김민재 | 김영은 | 박가연 | 이승미 | 이화경|
✔ 대화를 자연어 처리하고 의도 및 감정 분석을 통하여 이에 대한 적절한 반응을 할 수 있는 감정 대응형 챗봇 시스템을 설계 및 개발
<세부목표>
- 주어진 대화 자연어처리 가능
- 대화를 6가지 감정(기쁨,슬픔,공포,분노,놀람,중립) 중 하나의 감정으로 분류
- 분류된 감정에 알맞은 답변 생성
- 감정 인식률 70% 이상의 감정 엔진 개발
✔ 감정 대응형 챗봇 시스템은 감정 엔진과 답변 생성기로 이루어져 있다. 사용자로부터 웹을 통해 텍스트를 입력받으면 각 감정 분류 모델과 답변 생성 모델에 대화가 전달되도록 한다. 감정 분류 모델에서는 KoBERT를 통해 해당 대화에 대한 감성 분류와 분류된 감성 범주에 해당하는 감정 분류를 수행한다. 답변 생성 모델에서는 감정에 공감하는 답변을 출력하고 KoGPT-2모델을 통해 생성된 적절한 답변을 다시 사용자에게 전달한다.
✔ 시스템 설계도는 크게 DATA, AI, INFRA 플랫폼으로 구성된다.
- 모델을 학습시키기 위한 데이터셋 전처리 및 정제
- 학습에 이용하는 데이터셋: 생성 모델 학습에 사용되는 Dialog 셋, 감정분류 모델 학습에 사용되는 Sentence&Emotion 셋
- 감정 분류 모델 : KoBERT → 감정 분류
- 답변 생성 모델 : KoGPT2 → 답변 생성
- 위의 2가지 모델을 사용하여 웹애플리케이션을 통한 생성된 답변 출력
- 각 모델은 Flask에서 동작
- 소켓 통신을 통해 감정 분류 결과 전달 및 클라이언트에 전달
- 데이터셋을 이용하여 학습시킨 감성분석 모델을 이용한 경우: 68.05
- 감성분석을 수행하지 않은 경우: 67.12
> 각각 다른 두 대의 컴퓨터와 각각 모델 업로드 후 실행
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]
2020/08 ~ 2021/05