rinker 전시회 발표용 (1)
TRANSCRIPT
[ Lots LAB ] AMI Team Project Entertainment Data Engine
One Chapter
Rinker?
검색엔진에서 인물검색을 하면?
방대하지만 틀에 박힌 결과물
뉴스 웹문서 블로그 동영상 카페
인물 정보 검색은?
답답하고, 딱딱하고, 수동적인…
경력 가족 수상경력 학력 신상
연예인 영화 드라마 음악
이슈 관계 분석 통계
Two Chapter
Search Engine
Desktop
Windows Mac OS Linux
Smart phone
iPhone Android phone
RDB
Graph DB
Internet
NAVER ZUM M-NET NATE Wikipedia DAUM JOINS ….
WEB End-user
Front-end Back-end
Web Service
Tablet
iPAD Android tablet Win8 tablet
Open API
Web crawling Database Search service
자연어 분석 (Natural language
analysis )
SQL 변환기 (SQL Transform)
Open API 모듈 (Open API module)
웹 크롤링 (Web crawling)
Open API 크롤링 (Open API crawling)
키 테이블 (Key table)
맵핑 모듈 (Mapping module)
데이터 가공 (Data Processing)
그래프 색인 변환 (Graph index Transform)
검색유형 분석 (Query pattern
analysis)
템플릿 엔진 (Template engine)
웹 인터페이스 (Web interface)
주 저장소 (Main DB)
임시 저장소 (Repository)
그래프 색인 (Graph Index)
Three Chapter
WEB Crawling
Regular expression
(node-xregxp)
Key table Crawling ( NodeJS application )
HTML (Binary)
Parsing
recoding (node-iconv)
DOM Parser (node-jsdom)
Mapping module
( 자체 제작 )
Mapping
HTML (UTF-8)
JSON (UTF-8)
Text recoding
Repository (MySQL)
Database
Web document (HTML)
Source
HTML 분석
정해진 웹사이트의 스크랩한 웹 문서를 DOM(Document Object Model) 또는 정규표현식을 통하여 분석하고, 분석된 데이터를 미리 정해진 키 테이블(Key table)을 참고한 맵핑(Mapping) 과정을 거쳐서 임시 저장소에 저장된다.
key meaning Format
name ‘이름’ Text (String)
real_name ‘본명’, ‘실명’, ‘진짜 이름’ Text (String)
Birth ‘생일’, ‘출생일’, ‘출생’ YYYY ‘년’ MM ‘월’ DD ‘일’ (Date)
Job ‘직장’, ‘직업’ Text, Text, Text (Array)
Team ‘소속그룹’, ‘소속팀’, ‘팀’, ‘그룹’ Text, Text, Text (Array)
Agency ‘소속사’, ‘소속’, ‘회사’ Text, Text, Text (Array)
Review ‘데뷔’, ‘첫출연’ Date, Text (Array)
반복…
Person data
37,333
Database
TABLE 10 COLUMN 300 ROW 500,000
VALUE 10,000,000
Real-Time Open API Data
Four Chapter
Graph Index
Neo4j : Graph Database
JAVA, HTTP/RETS, GPL, FULL ACID
Graph database model
NODE NODE Relationship
Graph database model
NODE NODE Relationship
property Key : value
property Key : value
property Key : value
node3 name : 광해 type : 영화 runtime : 131분
node2 name : 이병헌 type : 인물 birth : 77-07-12
node1 name : 이민정 type : 인물 birth : 82-02-16
name : 한효주 type : 인물 birth : 87-02-22 node4
node4 name : 추창민 type : 인물 job : 감독
node5 name : 참쓰다 type : 음악 release : 82-02-16
node3 name : 광해 type : 영화 runtime : 131분
node2 name : 이병헌 type : 인물 birth : 77-07-12
Relationship1
type : 이슈 name : 열애 사실 고백 news : [ title : 이민정은 왜 띠동갑 이병헌에게 끌렸을까? url : http://hotissue.com/23423/23 ]
node1 name : 이민정 type : 인물 birth : 82-02-16
Relationship2
type : 주연 role : 광해/하선
name : 한효주 type : 인물 birth : 87-02-22 node4
Relationship3 type : 주연 role : 중전
Relationship4
type : 제작 role : 감독
node4 name : 추창민 type : 인물 job : 감독
Relationship5
type : 음악 role : 아티스트
node5 name : 참쓰다 type : 음악 release : 82-02-16
node3 name : 광해 type : 영화 runtime : 131분
node2 name : 이병헌 type : 인물 birth : 97-07-12
Relationship1
type : 이슈 name : 열애 사실 고백 news : [ title : 이민정은 왜 띠동갑 이병헌에게 끌렸을까? url : http://hotissue.com/23423/23 ]
node1 name : 이민정 type : 인물 birth : 82-02-16
Relationship2
type : 주연 role : 광해/하선
name : 한효주 type : 인물 birth : 87-02-22 node4
Relationship3
type : 주연 role : 중전
Relationship4
type : 제작 role : 감독
node4 name : 추창민 type : 인물 job : 감독
Relationship5
type : 음악 role : 아티스트
node5 name : 참쓰다 type : 음악 release : 82-02-16
node3 name : 광해 type : 영화 runtime : 131분
node2 name : 이병헌 type : 인물 birth : 97-07-12
Relationship1
type : 이슈 name : 열애 사실 고백 news : [ title : 이민정은 왜 띠동갑 이병헌에게 끌렸을까? url : http://hotissue.com/23423/23 ]
node1 name : 이민정 type : 인물 birth : 82-02-16
Relationship2
type : 주연 role : 광해/하선
name : 한효주 type : 인물 birth : 87-02-22 node4
Relationship3
type : 주연 role : 중전
Relationship4
type : 제작 role : 감독
node4 name : 추창민 type : 인물 job : 감독
Relationship5
type : 음악 role : 아티스트
node5 name : 참쓰다 type : 음악 release : 82-02-16
열애 사실 고백
node3 name : 광해 type : 영화 runtime : 131분
node2 name : 이병헌 type : 인물 birth : 97-07-12
Relationship1
type : 이슈 name : 열애 사실 고백 news : [ title : 이민정은 왜 띠동갑 이병헌에게 끌렸을까? url : http://hotissue.com/23423/23 ]
node1 name : 이민정 type : 인물 birth : 82-02-16
Relationship2
type : 주연 role : 광해/하선
name : 한효주 type : 인물 birth : 87-02-22 node4
Relationship3
type : 주연 role : 중전
Relationship4
type : 제작 role : 감독
node4 name : 추창민 type : 인물 job : 감독
Relationship5
type : 음악 role : 아티스트
node5 name : 참쓰다 type : 음악 release : 82-02-16
열애 사실 고백
두 연예인의 비교
비슷한 연예인 예상커플
node3 name : 광해 type : 영화 runtime : 131분
node2 name : 이병헌 type : 인물 birth : 97-07-12
Relationship1
type : 이슈 name : 열애 사실 고백 news : [ title : 이민정은 왜 띠동갑 이병헌에게 끌렸을까? url : http://hotissue.com/23423/23 ]
node1 name : 이민정 type : 인물 birth : 82-02-16
Relationship2
type : 주연 role : 광해/하선
name : 한효주 type : 인물 birth : 87-02-22 node4
Relationship3
type : 주연 role : 중전
Relationship4
type : 제작 role : 감독
node4 name : 추창민 type : 인물 job : 감독
Relationship5
type : 음악 role : 아티스트
node5 name : 참쓰다 type : 음악 release : 82-02-16
열애 사실 고백
두 연예인의 비교
비슷한 연예인 예상커플
예상 커플의 정보비교
Technology
Five Chapter
NodeJS : Server-side javascript
Single thread
Event loop
Non-blocking
Neo4J (node-neo4j)
NodeJS application (Back-end)
Database client
HTTP server, Route
(express)
MySQL (node-mysql)
HTML Template (jade)
Web application framework (express)
MySQL
Database
View Template
CSS Template (stylus)
HTML, CSS, JS (Front-end) Open API
jQuery plug-in
Search form Network
Web Socket (socket.io)
Socket (net)
Natural language analysis
Graph DB
Neo4J
rinker.search.js
Socket (winsock)
Natural language analysis (C#)
rinker.ui.js
jquery.antiscrool.js
jquery.actual.js
jquery.qtip.js
Twitter API Open API
Open API Connect
OAuth (passport)
Test module
Auto complete (jquery.TextExt.js)
Layout foundation
Bootstrap
Browser emulation (Zomzie)
Test famework (Mocha)
Facebook API
플러그인 & API
DAUM API
NATE API
Main DB
Repository DB
주요 기능 ( 모듈 )
자체제작 모듈
* 부호 설명
…
자체제작 모듈
NAVER API
탬플릿
그래프, 테이블, 그리드
데이터
데이터
데이터
템플릿 엔진
DESKTOP . ANDROID PHONE ANDROID TABLET . IPHONE IPAD . .
Device that supports web standards
Distributed systems
Scale-Out
Auto Saharding, Node.js cluster
Github
Rinker !
Six Chapter
구현 서비스 - 3만 7천 명의 연예인 데이터와 관련 콘텐츠 보유 - 자연어 검색 지원 ( 2012년도 한국멀티미디어학회 추계학술발표대회 참가 ) - N-스크린( PC, 태블릿, 스마트폰… 등 )에 대응하는 반응형 인터페이스 - 웹과 OpenAPI ( Twitter, YouTube… 등 )의 데이터를 수집 - 데이터를 다양한 템플릿( 다이나믹 그리드, 그래프, 차트, 테이블 )으로 표현
음악
영화
인물
앨범 자켓 형태로 음악 콘텐츠를 표현
영화 포스터 영화 콘텐츠를 표현
인물 이미지와 인물 정보를 표현
Best Question pattern
SEARCH
node ex) 싸이
node key ex) 싸이 나이
node ex) 싸이 강남스타일
node relationship ex) 싸이 노래
no
Natural language ex) 싸이가 부른 노래
node
아이유 열애설 - Google news API
아이유 열애설 - Naver news API
이이유 열애설 - Daum news API
이이유 열애설 - YouTube data API
이이유 열애설 - Twitter search API
Open API 출연
Relationship 아이유 NODE
인물 NODE
인물 NODE
인물 NODE
Graph index Real-time data
아이유 열애설 SEARCH
이슈 관계 Open API 활용
아이유랑 혈액형이 같은 연예인
“아이유”- 명사 “랑”- 조사 “혈액형”- 명사 “이”- 조사 “같은”- 동사 “연예인”-명사
자연어 검색 기능
Service layout
Started Getting
http://rinker.kr