django+python + nginx + gunicorn

24
강호정 감정 컬러 분석 Moodade

Upload: hojung-kang

Post on 23-Jan-2018

281 views

Category:

Software


5 download

TRANSCRIPT

Page 1: django+python + nginx + gunicorn

강호정

감정 컬러 분석Moodade

Page 2: django+python + nginx + gunicorn

목적

컬러를통한감정분석서비스

매일매일 느끼는 나의 감정을 관리 -> 타인의 도움 없이 심리 파악 및컨디션 조절 가능

• 감정 공유 및 커뮤니티 형성 -> 같은 감정을 느끼는 사람들끼리 유대감 형성, 치료/상담 보다도 큰 효과

Page 3: django+python + nginx + gunicorn

서비스

Page 4: django+python + nginx + gunicorn

최종서비스환경

Django 1.9.7

python 3.5.1

Pycharm (IDE tool 파이썬 IDE툴 )

Nginx 1.4.4

Wsgi 컨테이너 : Gunicorn

DB : mysql

Ubuntu 16.04

Page 5: django+python + nginx + gunicorn

서버기본구조

• MTV 구조

(model,template,view)

• Urls.py :url 주소 매핑

• views.py : 컨트롤러역할.

• Settings.py: 프로젝트전체의

환경 설정.

• Models.py : ORM을통해 DB

를 파이썬 객체를 통해 접근

한다.

Page 6: django+python + nginx + gunicorn

서버상세구조

static files(정적자원) 들에 접근

하기 위해서는 static 디렉토리를

따로 설정한다.

Django 템플릿 엔진을 사용해

Html 구조 표현.

Database: mysql 사용

.

Page 7: django+python + nginx + gunicorn

프로젝트 구성도

moodade

mood

moodcalendr

mysite

template

static

kakaoRest

사용자의 감정 분석 및 감정 색채로직 처리

회원의 날짜 별 감정 캘린더 관리

프로젝트 설정 관리

기본 베이스 템플릿 및 회원가입및 로그인 페이지

이미지 , css, 자바스크립트 등의 정적파일 디렉토리

카카오톡 api를 사용하기 위해Rest api 구현

Page 8: django+python + nginx + gunicorn

개발과정

• PaSS 인 pythonanywhere.com 사용

• 소스 배포 및 운영이 매우 간편함(python 에 최적화)

테스트 서버 환경

Page 9: django+python + nginx + gunicorn

개발과정

소스 관리

Github 사용

Page 10: django+python + nginx + gunicorn

개발 과정

배포환경

SSH 를 통해 파일 전송 및 서버 구동 관련 쉘 스크립트 작성 및 실행

Upstart를 이용해 서비스 등록 : 프로세스가 죽거나 시스템이 재부팅되었을 때 등의 자동화 작업을 위해서

Page 11: django+python + nginx + gunicorn

화면

상단바와 하단바 기본 템플릿 base.html을 만들고 다른 페이지에서 이를 확장

하여 페이지를 구성한다.

Base.html

{% block content %}{% endblock %}

contents 영역

Page 12: django+python + nginx + gunicorn

화면

Moodade.co.kr 로 들어갔을 때 처음으로 보여지는 페이지

Page 13: django+python + nginx + gunicorn

화면

8개의 감정 이모티콘 중 자신에 감정에 맞는 이모티콘을 선택한다.

각 카테고리 별로 감정 텍스트 데이터 구축

Page 14: django+python + nginx + gunicorn

그 감정에 맞는 카테고리로부터 데이터를 가져옴.

감정별 단어 DB구축.

각 단어별로 감정 강도를 통해 감정색채가 달라짐.

Page 15: django+python + nginx + gunicorn

선택한결과화면

디자이너가 작업한 이미지를 javascript로 동적으로 처리하기 위해SVG 를 사용

자체 구현한 감정 색채 판별 알고리즘을 통해 텍스트별 감정 강도를 색채로 동적으로 구현.

Page 16: django+python + nginx + gunicorn

기능실행방식

모든 form 에는 csrf_token 을 삽입한다. Xss 공격을 방지하기 위함이다.

Page 17: django+python + nginx + gunicorn

• 사용자는날짜별로자신의감정색을한눈에확인할수있다.

• 각날짜에일기처럼자신의 감정을일기로적는다.

• ajax를통해날짜별로데이터를받아온다.

Page 18: django+python + nginx + gunicorn

현재까지구현내용

Html5 Canvas 객체를 통해서 자신의 감정을 나타내는 색깔에 원하는문구를 입혀서 이미지 파일로 다운받을 수 있게 함.

Canvas 객체의 toDataUrl()을 통해 그림을 문자열로 변환후 다운로드

Page 19: django+python + nginx + gunicorn

회원가입페이지

Django 의 UserCreationForm을 상속받아서 구현 (form.py)

Page 20: django+python + nginx + gunicorn

로그인페이지

Django의 인증 폼인 AuthenticationForm을 상속받아서 구현

Page 21: django+python + nginx + gunicorn

카카오 yellow api

Page 22: django+python + nginx + gunicorn

카카오 yellow api

Django restframework 3.5.1 버전을 사용

Kakao yelloapi에 정의된 /message -> Post방식

사용자가 보낸 감정단어들( 공백을 기준으로 스플릿한다.) 을 분석해서 가장 높은 수치의 감정을가진 카테고리를 반환한다.

Page 23: django+python + nginx + gunicorn

알고리즘

현재 Moodade에적용된 알고리즘은 사전 기반 감정 분류 알고리즘을 응용해서 사용중.

추후 더 많은 감정데이터들의 확보 및 기능 확장을 위해 SVM 을 이용한 머신러닝으로

감정 분석 서비스를 제공할 예정 .

이 부분은 Open API 로 공개하여 사용자들이 자신의 글을 통해 감정을 분석 할 수 있도록

구현할 것. 이로인해서 moodade는더 많은 데이터를 확보 할 수 있고 좀 더 정확한

감성 분석 서비스를 제공할 수 있게됨.

Page 24: django+python + nginx + gunicorn

감사합니다.