SlideShare a Scribd company logo
1 of 34
모두의 키보드
2018.12.01
CosmosBee
전 창 욱
2015. 10
모두의 연구소 참여
(DL/ML 시작)
2016. 10
국립과천과학관
관장상 수상
(거울아거울아)
2016. 10
Google Hack Fair
Seoul Make Fair
(거울아거울아)
2016. 12
명견만리 출연
(덕후편)
2017. 12
서울혁신챌리지
혁신챌린지상 수상
(오 마이 베이비)
2018. 10
국어 정보 처리
시스템 경진 대회
일반 부분 최초 금상 수상
(모두의 키보드)
2019. 01 (예정)
머신러닝과 텐서플로우로
시작하는 자연어처리
부재: 로지스틱 부터 트랜스포머까지
(위키북스)
발표자 소개
Software Engineer
동영상(1분 30초)
만든 이유
빨리 쉽게 모바일비 일반인
개발 과제
음절 예측
문장 추천
STANDALONE APP
KEYBOARD
비 일반인을 위한 기능
음절 예측
초성 음절 예측 추천
앞 음절을 통한 예측 추천
(예) 입력: 안ㄴ 추천:내, 녕, 는, 노, 나, 너, 년, 논, 난, 놓)
(예) 입력: 안 추천:에, 으, 을, 하, 되, 내, 전, 타, 은)
음절 예측
ㅇ ㅏ ㄴ ㄴ ㅕ ㅇ ㅎ ㅏ ㅅ ㅔ ㅇ ㅛ
ㅇ 아 안 ㄴ녀 녕 ㅎ하 ㅅ세 ㅇ 요
초성에서 현재 음절 예측 : 5회
음절에서 다음 음절 예측 : 7회
총 12회 예측 발생
음절 예측
ㅇㅏ
ㄴ
초성 중성
종성
한글 코드 : 1,656,000 (약 백 육십 만)
현대 한글 : 11,172 (약 만 천)
상위 99.9% : 2,350
음절 예측
음절 데이터 : 약 27,000,000 (약 이천 칠백만)
현대 문어체 : 95%
현대 구어체 : 5%
데이터 가공 / 데이터 수집
음절 예측음절 예측
X
X
F(X)
Short-cut connections
CNN
Conv1d
- filter: 100d
- kernel size : 5
residual layer output
음절 예측
Attention
Softmax
상위 99.9% : 2,350
Cross Entropy
Adam10
문장 추천
자주 사용하는 문장 추천
최근에 사용한 문장을 우선 순위 높여 추천
예) 입력: 안 추천: 안녕하세요.
초성 문장 추천
예) 입력: ㅇㄴ 추천: 안녕하세요.
문장 추천
문장 입력 회수 문장 입력 시간
문장 입력 추천 특성
Count Timestamp
Feature Table 구성
입력 문장
Sentence
문장 추천
검색
업데이트입력
검색
미 추천추천
입력 완료 입력 중
초성 추천
ㅇㅏ
ㄴ
초성 중성
종성
Feature Table 완성형 문장 등록
초성 추천
유니코드 한글 소리 마디
유니 코드 사용
초성 중성 종성 영역이
각 음절 마다 코드로 매핑 됨
‘가’ AC00 ‘힣’ D7A3
11184(약 만천)개 AC00 ~ D7AF 범위
19 (초성)
21 (중성)
28 (종성)
초성 추천
21(중성) * 28(종성) = 588
초성 19개
추천 가능 음절
‘ㄱ’, ‘ㄴ’, ‘ㄷ’ …., ‘ㅎ’
초성 추천
S1 + S2 + S3 + S4 …. + Sn
588 * 588 * 588 * 588 * 588 * 588 * 588 * 588 * 588 * 588 * 588
초성 추천 검색 성능 고려 필요
Database File 입출력 최소화 (WAL 적용)
초성 추천 검색 성능 고려 필요
구문 컴파일러 사용(compileStatement 사용)
초성 추천 검색 성능 고려 필요
Index 사용
후보 문장
가장 많이 사용될 확률이 높은 문장 1000개 입력
데이터 가공 / 데이터 입력
전체 구조
User Interface
Keyboard Input Manager
한글 Automata
Candidate
Manager
예측모델
(Tensor Flow)
Data I/O
STANDALONE APP (장점)
서비스 비용
오프라인 서비스
지연 시간
개인 정보 보안
STANDALONE APP (고려 사항)
Mobile Tensorflow lib 활용
SQLite 활용
Mobile 환경에 적합한 얇고 정확도 좋은 모델 설계
Memory 효율적 사용
STANDALONE APP (Save PB)
Package : from tensorflow.python.tools import freeze_graph
Input : graph.pbtxt, model.ckpt-10000
Output : mobile.pb
Function: freeze_graph.freeze_graph
STANDALONE APP (Load PB)
Package :
import org.tensorflow.contrib.android.TensorFlowInferenceInterface
Input : AssetManager object, model file path
Output : interface object
Function: new TensorFlowInferenceInterface
STANDALONE APP
Android 5.0 (API 21)
Lollipop
Device Dependency
KEYBOARD
한글 영문 숫자 기호 지원
한글 조립법(오토마타) 기능
음절 추천 문장 추천 VIEW 지원
진행 중 문장 및 작성 문자 Buffering 기능
비 일반인을 위한 기능
블루투스 스위치를 통한 키보드 제어 기능 지원
문제점
Keyboard 공간 효율적 설계 필요
사용자 맞춤형 음절 예측 필요 (나이, 성별)
대화에 전체적인 맥락적 추천 어려움
개발 순환 구조
1. 데이터 수집
2. 모델링
3. TF Mobile 변환4. Mobile 연동
5. Mobile 최적화
6. Mobile 테스트
개발 마음가짐
생각을 행동으로 옮기는 도전 정신
Deep Learning 중급 지식
Mobile 중급 지식
끝까지 포기하지 않는 끈기
NLP 기초 지식
감사합니다.

More Related Content

Similar to Keyboard cosmos bee_1.0

회사에서 써보는 SQLAlchemy
회사에서 써보는 SQLAlchemy회사에서 써보는 SQLAlchemy
회사에서 써보는 SQLAlchemy
Jc Kim
 
2.보건복지정보개발원 2부(국가표준 및 품질마크)자료
2.보건복지정보개발원 2부(국가표준 및 품질마크)자료2.보건복지정보개발원 2부(국가표준 및 품질마크)자료
2.보건복지정보개발원 2부(국가표준 및 품질마크)자료
Youngil Ryu
 

Similar to Keyboard cosmos bee_1.0 (20)

Advanced nGrinder
Advanced nGrinderAdvanced nGrinder
Advanced nGrinder
 
Machine learning and deep learning (AiBB Lab)
Machine learning and deep learning (AiBB Lab)Machine learning and deep learning (AiBB Lab)
Machine learning and deep learning (AiBB Lab)
 
//BUILD/ Seoul - .NET의 현재와 미래. 그 새로운 시작
//BUILD/ Seoul - .NET의 현재와 미래. 그 새로운 시작//BUILD/ Seoul - .NET의 현재와 미래. 그 새로운 시작
//BUILD/ Seoul - .NET의 현재와 미래. 그 새로운 시작
 
회사에서 써보는 SQLAlchemy
회사에서 써보는 SQLAlchemy회사에서 써보는 SQLAlchemy
회사에서 써보는 SQLAlchemy
 
[FOSS4G KOREA 2014] Introduce uDig
[FOSS4G KOREA 2014] Introduce uDig[FOSS4G KOREA 2014] Introduce uDig
[FOSS4G KOREA 2014] Introduce uDig
 
[E-commerce & Retail Day] 인공지능서비스 활용방안
[E-commerce & Retail Day] 인공지능서비스 활용방안[E-commerce & Retail Day] 인공지능서비스 활용방안
[E-commerce & Retail Day] 인공지능서비스 활용방안
 
[2B2]기계 친화성을 중심으로 접근한 최적화 기법
[2B2]기계 친화성을 중심으로 접근한 최적화 기법[2B2]기계 친화성을 중심으로 접근한 최적화 기법
[2B2]기계 친화성을 중심으로 접근한 최적화 기법
 
11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템
 
Deep learning framework 제작
Deep learning framework 제작Deep learning framework 제작
Deep learning framework 제작
 
(NEMO-UX) 미래 컴퓨팅 환경
(NEMO-UX) 미래 컴퓨팅 환경(NEMO-UX) 미래 컴퓨팅 환경
(NEMO-UX) 미래 컴퓨팅 환경
 
2.보건복지정보개발원 2부(국가표준 및 품질마크)자료
2.보건복지정보개발원 2부(국가표준 및 품질마크)자료2.보건복지정보개발원 2부(국가표준 및 품질마크)자료
2.보건복지정보개발원 2부(국가표준 및 품질마크)자료
 
Spiral 모델 기반 실무 AI 교육.pdf
Spiral 모델 기반 실무 AI 교육.pdfSpiral 모델 기반 실무 AI 교육.pdf
Spiral 모델 기반 실무 AI 교육.pdf
 
Scala for play
Scala for playScala for play
Scala for play
 
응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angular응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angular
 
ARTIK 710 IoT class
ARTIK 710 IoT class ARTIK 710 IoT class
ARTIK 710 IoT class
 
Deview 2014 키노트
Deview 2014 키노트Deview 2014 키노트
Deview 2014 키노트
 
Workshop 210417 dhlee
Workshop 210417 dhleeWorkshop 210417 dhlee
Workshop 210417 dhlee
 
캐드앤그래픽스 2022년 5월호 목차
캐드앤그래픽스 2022년 5월호 목차캐드앤그래픽스 2022년 5월호 목차
캐드앤그래픽스 2022년 5월호 목차
 
[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기
[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기
[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기
 
Graviton2 기반의 EC2 인스턴스 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
Graviton2 기반의 EC2 인스턴스 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나Graviton2 기반의 EC2 인스턴스 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
Graviton2 기반의 EC2 인스턴스 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
 

Keyboard cosmos bee_1.0