Skip to content

Latest commit

 

History

History
56 lines (40 loc) · 4.11 KB

project_sookim1110.md

File metadata and controls

56 lines (40 loc) · 4.11 KB

오손도손 프로젝트

고민이 있는 모든 학생을 위한 온라인 또래 상담 플랫폼

진행 기간

2020/06/23 ~ 2020/11/19

주요 사용 기술

Node.js, Flask, MySQL, AWS, NLP

팀 구성

프론트엔드 개발자 1, 백엔드 개발자 1, 자연어처리 모델&서버 개발자 1

담당 기능 (김지수)

  • BERT 기반의 자연어처리 감정 분류 모델 개발 및 API 형태로 배포
  • 음성인식 구현 및 상담 가이드 챗봇 개발

프로젝트 소개

Screen Shot 2021-09-29 at 2 45 32 PM

오손도손은 청소년들이 온라인 상에서 쉽고 편하게 또래 상담을 하여 고민을 해소할 수 있도록 돕는 '또래상담 플랫폼'입니다.
특히 상담 내용 음성인식을 통해 청소년들의 감정을 지속적으로 파악/관리하는 상담 분석 기능과 문제 상황별 상담 가이드를 제공하는 챗봇을 통해
내담 학생, 또래 상담자, 담당 교사 모두가 효율적이고 전문적인 상담을 할 수 있도록 돕습니다.

전체 아키텍처

Screen Shot 2021-09-29 at 2 58 42 PM

개발 어려움 및 해결 방안

  1. 음성인식 기능 구현
  • 화상 상담 코드가 완성된 상태에서 다른 팀원을 대신하여 구현하게 된 기능
  • 외부 API인 구글 STT API를 사용해야했고, 기존 코드의 Socket.io를 그대로 사용하면서도 프론트엔드와 서버 모두에 코드를 추가해야해서 어려움을 겪음

⇒ 기존 상담을 위해 사용한 Socket.io를 그대로 활용하여 실시간으로 React 프론트에서 음성 스트림을 받아서 Node.js 상담 서버로 보내고, Node.js 서버가 구글 API 요청을 통해 결과를 받아서 이를 DB에 저장하는 방식으로 구현

  1. 감정 분석 모델 개발
  • 음성 인식된 고민 학생의 상담 텍스트를 7개의 감정으로 분류하는 모델 개발
  • 자연어처리 모델 개발이 처음이어서 어려움 겪음

⇒ 이론 공부를 통해 BERT 모델 기반으로 개발 결정. 상담 데이터를 확보하기 위해 청소년 1388 댓글 상담실 데이터를 크롤링하여 데이터셋 구축.

⇒ BERT 모델 중 상담 데이터에 가장 적합하여 정확도가 높았던 KcBERT 선택. 크롤링한 텍스트 데이터로 KcBERT의 추가 Pretrain 후 라벨링된 데이터로 Fine-Tuning하여 최종 모델을 만들고 API 형태로 배포

경험

  • 크롤링으로 상담 텍스트 데이터셋을 확보하고, BERT 기반의 자연어처리 모델을 pretrain, 학습, 정확도 향상, 배포하는 프로세스 경험
  • React, Node.js, Socket.io, 외부 Speech to Text API를 사용하여 음성 스트림을 처리하고 음성인식을 구현하는 방법을 배움
  • 시범적용 결과 7일간 41건의 상담과 긍정적인 후기를 통해 프로그램 완성도 확인. 협력 기관이었던 한국청소년상담복지개발원의 표창장 수여. 주도적으로 프로젝트를 진행해보며 기술적 어려움에 대응하고 사용자의 입장에서 생각하는 방법을 배움

기타 자료

BERT 기반 상담 분석 모델

114339941-67dc8300-9b91-11eb-915b-e5c9c187e3e2

114339950-6ad77380-9b91-11eb-87a6-3c6dd1b48b64

상담 분석 예시 화면

114338770-bc323380-9b8e-11eb-8e02-9cc17617ec62

음성 인식 프로세스

114339948-69a64680-9b91-11eb-9c07-6613b7c8d01b