고민이 있는 모든 학생을 위한 온라인 또래 상담 플랫폼
2020/06/23 ~ 2020/11/19
Node.js, Flask, MySQL, AWS, NLP
프론트엔드 개발자 1, 백엔드 개발자 1, 자연어처리 모델&서버 개발자 1
- BERT 기반의 자연어처리 감정 분류 모델 개발 및 API 형태로 배포
- 음성인식 구현 및 상담 가이드 챗봇 개발
특히 상담 내용 음성인식을 통해 청소년들의 감정을 지속적으로 파악/관리하는 상담 분석 기능과 문제 상황별 상담 가이드를 제공하는 챗봇을 통해
내담 학생, 또래 상담자, 담당 교사 모두가 효율적이고 전문적인 상담을 할 수 있도록 돕습니다.
- 음성인식 기능 구현
- 화상 상담 코드가 완성된 상태에서 다른 팀원을 대신하여 구현하게 된 기능
- 외부 API인 구글 STT API를 사용해야했고, 기존 코드의 Socket.io를 그대로 사용하면서도 프론트엔드와 서버 모두에 코드를 추가해야해서 어려움을 겪음
⇒ 기존 상담을 위해 사용한 Socket.io를 그대로 활용하여 실시간으로 React 프론트에서 음성 스트림을 받아서 Node.js 상담 서버로 보내고, Node.js 서버가 구글 API 요청을 통해 결과를 받아서 이를 DB에 저장하는 방식으로 구현
- 감정 분석 모델 개발
- 음성 인식된 고민 학생의 상담 텍스트를 7개의 감정으로 분류하는 모델 개발
- 자연어처리 모델 개발이 처음이어서 어려움 겪음
⇒ 이론 공부를 통해 BERT 모델 기반으로 개발 결정. 상담 데이터를 확보하기 위해 청소년 1388 댓글 상담실 데이터를 크롤링하여 데이터셋 구축.
⇒ BERT 모델 중 상담 데이터에 가장 적합하여 정확도가 높았던 KcBERT 선택. 크롤링한 텍스트 데이터로 KcBERT의 추가 Pretrain 후 라벨링된 데이터로 Fine-Tuning하여 최종 모델을 만들고 API 형태로 배포
- 크롤링으로 상담 텍스트 데이터셋을 확보하고, BERT 기반의 자연어처리 모델을 pretrain, 학습, 정확도 향상, 배포하는 프로세스 경험
- React, Node.js, Socket.io, 외부 Speech to Text API를 사용하여 음성 스트림을 처리하고 음성인식을 구현하는 방법을 배움
- 시범적용 결과 7일간 41건의 상담과 긍정적인 후기를 통해 프로그램 완성도 확인. 협력 기관이었던 한국청소년상담복지개발원의 표창장 수여. 주도적으로 프로젝트를 진행해보며 기술적 어려움에 대응하고 사용자의 입장에서 생각하는 방법을 배움