KR101742138B1 - 메시지 기반 관련 앱 제공 방법 및 그 장치 - Google Patents

메시지 기반 관련 앱 제공 방법 및 그 장치 Download PDF

Info

Publication number
KR101742138B1
KR101742138B1 KR1020160068983A KR20160068983A KR101742138B1 KR 101742138 B1 KR101742138 B1 KR 101742138B1 KR 1020160068983 A KR1020160068983 A KR 1020160068983A KR 20160068983 A KR20160068983 A KR 20160068983A KR 101742138 B1 KR101742138 B1 KR 101742138B1
Authority
KR
South Korea
Prior art keywords
message
app
keyword
information
deep link
Prior art date
Application number
KR1020160068983A
Other languages
English (en)
Inventor
황성재
김강학
손정훈
이주완
손서영
Original Assignee
주식회사 플런티코리아
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 플런티코리아 filed Critical 주식회사 플런티코리아
Priority to KR1020160068983A priority Critical patent/KR101742138B1/ko
Application granted granted Critical
Publication of KR101742138B1 publication Critical patent/KR101742138B1/ko
Priority to US16/306,791 priority patent/US10984192B2/en
Priority to PCT/KR2017/005791 priority patent/WO2017209564A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/10Multimedia information
    • H04L51/20
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/222Monitoring or handling of messages using geographical location information, e.g. messages transmitted or received in proximity of a certain spot or area

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명의 일 태양에 따른, 메시지 기반 관련 앱 제공 방법은, 앱 제공 장치가, 메시지를 제공 받는 단계와 상기 앱 제공 장치가, 상기 메시지를 분석하여, 키워드를 추출하는 단계와 상기 앱 제공 장치가, 상기 키워드를 이용하여, 상기 메시지와 관련된 앱의 리스트를 구성하는 단계와 상기 앱 제공 장치가, 상기 앱의 리스트에 포함된 각 앱에 대해, 각 앱에서 상기 키워드와 관련된 서비스에 접속할 수 있는 딥링크(Deep Link)를 생성하는 단계 및 상기 앱 제공 장치가, 상기 앱의 리스트와 상기 앱의 리스트에 포함된 각 앱의 딥링크를 상기 메시지와 함께 사용자의 단말에 제공하는 단계를 포함할 수 있다.

Description

메시지 기반 관련 앱 제공 방법 및 그 장치 {Method and apparatus for providing related application based on message}
본 발명은 메시지에 기반하여 관련된 앱을 제공하는 방법 및 그 장치에 관한 것이다. 보다 자세하게는, 메시지를 제공 받고 분석하여 상기 메시지의 내용(text) 및 문맥(context)에 따라, 관련된 앱을 실행할 수 있는 딥링크(deep link)를 생성하여, 이를 사용자에게 제공하는 방법 및 그 방법을 수행하는 장치에 관한 것이다.
랩탑(laptop), 스마트폰(smart phone), 스마트 패드(smart pad)와 같이 한 손으로 들고 다닐 수 있는 이동식 스마트 디바이스(portable smart device)가 범용화됨과 더불어, 최근에는 사용자가 항상 착용할 수 있는 스마트 글래스(smart glasses), 스마트 워치(smart watch), 스마트 링(smart ring), 스마트 넥클리스(smart necklace) 등의 웨어러블 디바이스(wearable device)도 서서히 그 사용 범위가 넓어지고 있다.
이러한 웨어러블 디바이스는 사용자의 몸에 어색함이 없이 상시적으로 착용되어야 하기 때문에 그 형태나 크기에 있어서 물리적인 제약을 받게 된다. 예를 들면, 사용자의 손목에 착용되어야 하는 스마트 워치의 형태나 크기는 전통적인 손목시계의 그것으로부터 크게 벗어나지 않도록 설계되기 때문에, 웨어러블 디바이스에는 랩탑이나 스마트 패드에 장착되는 것과 같은 큰 크기의 디스플레이가 장착되기 어렵다.
따라서 웨어러블 디바이스에 포함된 협소한 크기의 디스플레이에서 일반 스마트 기기에서 구현될 수 있는 다양한 기능을 모두 수행할 수 있도록 하는 것이 웨어러블 디바이스 보급에 중요한 역할을 담당한다.
본 발명이 해결하고자 하는 기술적 과제는 사용자간 대화 내용(text) 및 상황에 관한 맥락(context) 정보를 참조하여 사용자가 처한 상황에 적절한 앱을 추천할 수 있는 방법 및 그 방법을 수행하는 장치를 제공하는 것을 목적으로 한다.
또한 본 발명이 해결하고자 하는 다른 기술적 과제는 사용자의 의도에 부합하는 앱을 실행하는 것뿐만 아니라 사용자의 의도에 부합하는 앱의 특정 페이지로 바로 연결될 수 있도록 하는 딥링크를 생성하여 다른 앱을 실행하는 방법 및 그 방법을 수행하는 장치를 제공하는 것을 목적으로 한다.
또한 본 발명이 해결하고자 하는 또 다른 기술적 과제는 시간, 장소, 사용자의 상황, 대화 상대 등을 종합적으로 반영하여 사용자에게 맞춤 서비스를 제공하는 다른 적절한 앱을 추천하고, 상기 맞춤 서비스를 실행하는 방법 및 그 방법을 수행하는 장치를 제공하는 것을 목적으로 한다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 태양에 따른, 메시지 기반 관련 앱 제공 방법은, 앱 제공 장치가, 메시지를 제공 받는 단계와 상기 앱 제공 장치가, 상기 메시지를 분석하여, 키워드를 추출하는 단계와 상기 앱 제공 장치가, 상기 키워드를 이용하여, 상기 메시지와 관련된 앱(APP)을 결정하는 단계와 상기 앱 제공 장치가, 상기 앱을 통하여, 상기 키워드와 관련된 정보를 얻기 위한 딥링크(Deep Link)를 생성하는 단계 및 상기 앱 제공 장치가, 상기 앱과 상기 딥링크를 상기 메시지와 함께 상기 메시지의 수신자의 단말에 제공하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 태양에 따른, 메시지 기반 관련 앱 제공 장치는, 네트워크 인터페이스와 하나 이상의 프로세서와 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드하는 메모리 및 특정 키워드와 관련된 앱을 매칭하여 저장하는 스토리지를 포함할 수 있다. 여기서 상기 컴퓨터 프로그램은, 메시지를 분석하여, 키워드를 추출하는 오퍼레이션과 상기 키워드를 이용하여, 상기 메시지와 관련된 앱을 검색하는 오퍼레이션과 상기 앱을 통하여, 상기 키워드와 관련된 정보를 얻기 위한 딥링크(Deep Link)를 생성하는 오퍼레이션 및 상기 앱과 상기 딥링크를 상기 메시지와 함께 상기 메시지의 수신자의 단말에 제공하는 오퍼레이션을 포함할 수 있다.
상기와 같은 본 발명에 따르면 메시지의 내용(text) 및 메시지를 작성하는 상황에 관한 맥락(context) 정보를 참조하여 사용자가 실행할 것으로 기대되는 앱을 용이하고 간편하게 실행할 수 있다.
또한, 상기와 같은 본 발명에 따르면 사용자의 의도에 부합하는 앱을 메신저를 종료하지 않고도 앱을 실행하여 해당 업무를 수행한 후, 다시 메신저 대화를 이어 나갈 수 있다. 이를 통해 사용자 편의성을 확보할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
도 1은 웨어러블 디바이스에서 입력할 수 있는 대화의 예시를 나타낸 예시도이다.
도 2는 본 발명의 일 실시예에 따른 메시지 기반 관련 앱 제공 장치의 블록 구성도를 포함하는 시스템도이다.
도 3은 본 발명의 일 실시예에 따른 메시지 기반 관련 앱 제공 시스템의 신호 흐름도이다.
도 4는 도 3에 의한 메시지 기반 관련 앱 제공 시스템에 의해 처리되는 텍스트의 예시도이다.
도 5는 메시지 기반 앱 제공 장치(100)가 사용자에 의해 입력된 텍스트에 속성(Entity)를 추가하는 것에 대한 예시도이다.
도 6은 도 5의 속성(Entity)이 부여된 텍스트를 사용자가 선택하는 경우에 대한 동작을 나타낸 도면이다.
도 7은 도 5의 메시지 기반 앱 제공 서비스가 속성(Entity)에 의해 실행 가능한 앱이 충돌하는 경우에 있어서의 동작을 설명하기 위한 예시도이다.
도 8은 본 발명의 일 실시예에 따른 메시지 기반 앱 제공 장치(100)의 데이터 전처리 과정을 나타낸 예시도이다.
도 9는 대화 쌍 데이터를 하나의 대화 정보로 그룹핑 한 결과를 나타낸 도면이다.
도 10는 본 발명의 일 실시예에 따른 메시지 기반 앱 제공 장치(100)를 활용하여 사용자가 상대방에게 딥링크를 전송하는 방법을 나타낸 도면이다.
도 11은 본 발명의 일 실시예에 따른 메시지 기반 앱 제공 방법에 관한 순서도이다.
도 12는 도 11의 클러스터에 대하여 점수화 하는 단계(S220)를 구체화한 순서도이다.
도 13은 도 12의 대화 상대 정보를 클러스터링 점수에 반영하는 예를 나타낸 도면이다.
도 14는 컴퓨팅 장치가 사용자로부터 추천 앱 리스트로부터 선택 입력(S240) 받고 앱을 실행하는 단계(S250)를 상세히 나타낸 순서도이다.
도 15는 앱 리스트와 딥링크가 메시지와 함께 사용자에게 제공되는 사용자 인터페이스(UI; User Interface)의 예시도이다.
도 16은 본 발명의 일 실시예에 따른 텍스트가 아닌 메시지에 기반하여 관련 앱을 추천하는 방법의 예시도이다.
도 17은 본 발명의 일 실시예에 따른 메시지 기반 앱 제공 장치의 하드웨어 구성의 일 예를 나타내는 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참고하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 본 발명에 대하여 첨부된 도면에 따라 보다 상세히 설명한다.
도 1은 웨어러블 디바이스에서 입력할 수 있는 대화의 예시를 나타낸 예시도이다.
웨어러블 디바이스(10)는 차세대 스마트 기기로서 요즘 들어, 웨어러블 디바이스(10)에 대한 연구가 활발하다. 그런데, 웨어러블 디바이스(10)는 몸에 착용할 수 있어 간편하다는 장점이 있는 반면, 스마트 기기의 큰 화면에 익숙한 몇몇 사용자들에게 웨어러블 디바이스(10)의 작은 화면이 불편하게 느껴지는 단점이 있다. 따라서 웨어러블 디바이스(10)는 이러한 불편을 해소하고자, 상대방과의 대화를 분석하여 이와 관련된 앱을 추천해주거나 관련된 앱의 해당 페이지로 직접적으로 연결해줄 수 있는 방법 및 장치가 필요하다.
웨어러블 디바이스(10)에 포함된 입력창(20)에 사용자는 다양한 대화를 입력할 수 있다. 그 중에서도 도 1에서는 "안동"이 포함된 경우를 가정하여 몇몇 실시예를 도시하였다. 사용자가 웨어러블 디바이스(10)에 포함된 입력창(20)에 "안동"이 포함된 대화로 “안동” 김씨야(21), “안동” 하회마을 갈래(22), "안동" 찜닭 먹자(23), "안동"철이라고 합니다(24) 등등을 웨어러블 디바이스(10)에 표시된 자판을 통해 입력할 수 있다.
웨어러블 디바이스(10)는 특정 단어가 포함된 대화 쌍 데이터를 전처리 하여 특정 단어와 관련된 속성을 파악할 수 있다면, 개체명 인식(NER; Named-Entity Recognition) 기술을 활용하여 미리 정의된 카테고리들을 따라 앱을 추천할 수도 있고, 앱의 특정 페이지로 이동할 수 있는 딥링크를 생성할 수도 있다. 이에 도 2를 참고하여 대화 정보에 기반하여 관련 앱을 추천하는 시스템의 구성을 자세히 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른 메시지 기반 관련 앱 제공 장치의 블록 구성도를 포함하는 시스템도이다.
도 2를 참고하면, 메시지 기반 관련 앱 제공 시스템은 웨어러블 디바이스인 제1 디바이스(10), 스마트폰인 제2 디바이스(50), 네트워크(30) 및 메시지 기반 앱 제공 장치(100)을 포함할 수 있다. 물론 제1 디바이스(10)가 웨어러블 디바이스이고 제2 디바이스(50)는 스마트폰인 것은 일종의 예시일 뿐이다.
즉 제1 디바이스(10) 및 제2 디바이스(50)는 네트워크(30)를 통해 서로 통신 가능한 스마트 기기일 수 있다. 예를 들면, 제1 디바이스(10) 및 제2 디바이스(50)는 데스크탑 컴퓨터, 워크스테이션, PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), 텔레비전 중 하나일 수 있다.
또는, 제1 디바이스(10) 및 제2 디바이스(50)는 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 하나, 텔레매틱스 네트워크(telematics network)를 구성하는 다양한 전자 장치들 중 하나, 스마트 카드, 또는 컴퓨팅 시스템을 구성하는 다양한 구성 요소들 중 하나 등과 같은 전자 장치의 다양한 구성 요소들 중 하나로 제공될 수 있다.
네트워크(30)는 유선 통신이나 무선 통신과 같은 통신 양태를 가리지 않고 구성될 수 있으며, 근거리 통신망(LAN; Local Area Network), 도시권 통신망(MAN, Metropolitan Area Network), 광역 통신망(WAN: Wide Area Network)등 다양한 통신망으로 구성될 수 있다.
바람직하게는, 제1 디바이스(10)는 네트워크(30)를 통해 제2 디바이스(50)와 커뮤니케이션(communication) 할 수 있다. 예를 들어 제1 디바이스(10) 사용자가 “안동” 찜닭 먹자(23)라는 대화를 입력하여, 제2 디바이스(50)에 메시지를 전송했다고 가정하자.
일반적인 메시지 전송 시스템에서는 제1 디바이스(10)에서 입력된 대화 내용만이 제2 디바이스(50)에 전송된다. 하지만, 본 발명의 일 실시예에 따른 메시지 기반 앱 제공 장치(100)는 제1 디바이스(10)에서 입력된 대화 정보에 기반하여, 추천 앱 리스트(51)를 입력된 대화 내용과 함께 제2 디바이스(50)에 전송한다.
도 2를 참고하면, 메시지 기반 앱 제공 장치(100)는 데이터 수집부(110), 데이터 전처리부(120), 앱 리스트 구성부(130), 앱 리스트 개인화부(140), 랭킹부(150), 딥링크 생성부(160)를 포함할 수 있다.
물론 메시지 기반 앱 제공 장치(100)는 앱 리스트 DB(미도시)나 딥링크 DB(미도시)를 더 포함할 수 있다. 그러나 이에 한정되는 것은 아니고 앱 리스트 DB(미도시)나 딥링크 DB(미도시)는 메시지 기반 앱 제공 장치(100)의 외부에 위치할 수 있다.
데이터 수집부(110)는 사용자들 간 메시지를 수신하여 저장하고, 그에 응답하여 입력한 메시지를 대화 정보로 수집할 수 있다. 또한 데이터 수집부(110)는 사용자들 간의 메신저에 오고 간 대화뿐 아니라 트위터와 같은 소셜 네트워크 서비스(SNS; Social Network Service), 블로그 등 온라인을 통하여 획득할 수 있는 데이터로부터 대화 정보를 수집할 수 있다.
물론 데이터 수집부(110)는 반드시 대화쌍 데이터만을 수집하는 것은 아니고, 트위터와 같은 소셜 네트워크 서비스(SNS, Social Network Service), 블로그 등 온라인에 게재된 문장 하나의 데이터를 수집할 수 있다. 이렇게 수집된 문장들은 머신 러닝(machine learning)에 의해 개체명 인식 알고리즘을 학습하는데 활용될 수 있다.
또한 데이터 수집부(110)는 제1 디바이스(10)가 제2 디바이스(50)에 전송한 특정 메시지 뿐만 아니라, 상기 특정 메시지를 포함하는 메시지의 그룹을 수집하여 분석에 활용할 수 있다. 즉 단순히 하나의 메시지만을 분석하여 문맥을 파악하기보다 해당 메시지가 나온 시간, 장소, 대화 상대 등을 고려하여 텍스트의 전반적인 의미를 파악하는데 활용할 수 있다.
예를 들면, 상기 제1 디바이스(10)와 상기 제2 디바이스(50) 사이에 주고 받은 다른 메시지를 분석하여 문맥을 파악하는데 활용할 수 있다. 이 때에는 상기 메시지의 그룹은 상기 특정 메시지 이전에 작성된 메시지 중에서 상기 제1 디바이스(10)와 상기 제2 디바이스(50) 사이에 주고 받은 메시지를 포함할 수 있다.
또 다른 예를 들면, 상기 제1 디바이스(10)가 상기 제2 디바이스(50)에 보낼 메시지를 작성한 장소를 기준으로, 해당 장소에서 다른 디바이스의 사용자가 작성한 메시지를 더 포함하는 메시지의 그룹을 분석에 이용하여, 상기 제1 디바이스(10)가 송신한 메시지의 의미를 파악할 수 있다. 동일한 단어여도 지리적 공간에 따라, 또는 학교나 회사처럼 사회적 공간에 따라 의미가 다를 수 있으므로 이를 반영하기 위한 것이다.
데이터 전처리부(120)는 수집된 대화 정보 데이터를 전처리하여 데이터를 관리하고, 수집된 대화 정보에 속성(Entity)를 부여한다. 구체적으로 데이터 전처리부(120)는 수집된 대화 정보 또는 문장을 정제하고, 전체 문장 중에 특정 단어나 키워드에 속성(Entity)을 부여하여 연관 지을 수 있다. 데이터 전처리부(120)는 수집된 대화 정보에 포함된 단어나 키워드에 속성(Entity)을 부여하기 위해서 개체명 인식 알고리즘을 사용할 수 있다.
개체명 인식 알고리즘은 미리 지정된 속성(Entity)을 문장 내에 미리 정의된 특정 단어나 키워드와 매칭하는 방법이다. 개체명 인식 알고리즘은 사전 기반의 매칭, 문법 기반의 매칭, 통계적 방법의 세가지 예시를 포함한다. 개체명 인식 알고리즘은 세가지 예시 중 하나만을 지정하여 사용하는 것이 아니라 혼합하여 사용될 수 있다.
개체명 인식 알고리즘은 문법 기반의 매칭에 의해 속성(Entity)이 부여될 개체명을 인식할 수 있다. 개체명에 어떠한 속성(Entity)이 부여될 것인지 여부에 대해서는 사전 기반 매칭(matching)을 사용할 수 있는데, 이때 복수의 속성(Entity)이 매칭 될 수 있는 경우에 통계적 방법에 의해 학습된 패턴으로부터 하나의 속성(Entity)을 선택하여 특정 단어나 키워드에 매칭될 수 있다.
앱 리스트 구성부(130)는 데이터 전처리부(120)에 의해 부여된 속성(Entity)으로부터 카테고리를 추정할 수 있다. 즉 대화 내용과 특정 속성(Entity)과의 연관 관계로부터 대화의 문맥 흐름을 파악하여 그 카테고리를 분류할 수 있다. 앱 리스트 구성부(130)는 수집된 대화 정보 또는 문장 정보를 기반으로 대화의 흐름을 파악하여 앱 리스트 DB(미도시)에 저장된 카테고리와 관련된 앱 정보를 요청할 수 있다. 카테고리와 관련된 앱 정보로부터 추천 앱 리스트를 생성할 수 있다.
예를 들면, 도 2에서 제1 디바이스(10)가 전송한 "안동 찜닭 먹자"(23)라는 메시지를 분석하여, "안동 찜닭"의 카테고리는 <메뉴>이고 "먹자"의 카테고리는 <동사>임을 파악한 뒤, <메뉴>와 관련된 앱의 리스트를 앱 리스트 DB(미도시)에서 조회하고 "먹자"라는 <동사>와 연관 지어, 그 결과로 음식을 주문할 수 있는 앱 리스트(51)를 제2 디바이스(50)에 메시지와 함께 전송하는 것이다.
이 과정에서 앱 리스트 개인화부(140)는 제1 디바이스(10)나 제2 디바이스(50)의 개인화 정보를 이용하여 앱 리스트를 재구성한다. 여기서 개인화 정보라 함은 디바이스의 식별자나 위치 정보와 같은 기기 자체에 관한 정보 또는 아이디나 이메일과 같은 디바이스의 사용자에 관한 정보 등을 포괄하는 개념이다. 예를 들면 제1 디바이스(10)의 위치 정보나 제2 디바이스(50)의 위치 정보를 고려하여 음식을 주문할 수 있는 앱 리스트(51)를 재구성하여 제공할 수 있다.
개인화 정보에 대해서 보다 구체적으로 살펴보면, 개인화 정보는 각 디바이스 사용자의 개인 정보, 단말의 기기 정보, 각 디바이스 사용자의 앱 사용 패턴 중에 하나 이상을 포괄하는 개념이다.
개인 정보의 예를 들면 나이, 성별, 직업 등이 있을 수 있다. 동일한 음절의 단어여도 사회적 계층에 따라 의미가 다를 수 있으므로 사용자의 개인 정보를 알고 있다면 이를 분석에 활용할 수 있다. 또한, 일정 정보나 신체 정보, 송신자와 수신자 사이의 인간 관계 등을 더 고려할 수 있다.
단말의 기기 정보는 예를 들면 단말 자체의 정보로서 휴대폰 번호나 이통사 정보 등이 있을 수 있으며, 추가로 단말에서 측정이 가능한 정보도 포함할 수 있다. 단말에서 측정이 가능한 정보란 GPS나 가속도 센서, 조명 센서 등을 통해서 측정한 정보들을 포함한다.
마지막으로 사용자의 앱 사용 패턴이란, 본 발명이 결국은 사용자가 해당 메시지와 관련하여 사용할만한 앱을 딥링크와 함께 간편하게 제공하는 것이 목적이므로, 이전에 해당 사용자가 주로 사용했던 앱의 사용 패턴을 고려하여 추천 앱을 제공하는 것을 말한다. 여기서 사용자는 메시지의 작성자인 송신자 및 수신자를 모두 포함할 수 있다.
랭킹부(150)에서는 앱 리스트 구성부(130)에서 만들어지고 앱 리스트 개인화부(140)에서 재구성된 앱 리스트(51)의 순서를 재조정할 수 있다. 앞서 설명한 것처럼 본 발명의 메시지 기반 관련 앱 제공 방법은 웨어러블 디바이스처럼 디스플레이가 작은 기기에서 사용자의 편의성을 확보하기 위한 것임을 전제로 한다.
즉, 모든 앱의 리스트를 한번에 사용자에게 제공할 수는 없는 경우를 위한 것이다. 그러므로 여러 개의 앱 중에서 현재 상황에 가장 적절한 앱만을 선별할 필요가 있다. 이를 위해 랭킹부(150)에서는 앱과 현재 대화 내용의 상관 관계를 수치화하여 가장 점수가 높은 몇 개의 앱만 리스트로 정렬하여 사용자에게 제공할 수 있다.
또한 랭킹부(150)에서는 앱 리스트 구성부(130)에서 생성된 앱의 목록을 유사도를 기준으로 클러스터링을 하여 순위를 재조정할 수 있다. 예를 들면 장소 <location>과 관련된 앱으로 검색된 앱 중에서 "지도 앱" 클러스터로 구글맵, 네이버 지도, 다음 지도 등을 하나의 클러스터로 묶고, "맛집 앱" 클러스터로 망고 플레이트 (com. mangoplate), 다이닝 코드 (com. diningcode), 카카오 플레이스 (com.kakao.kakaoplace) 등을 하나의 클러스터로 묶어 사용자에게 제공할 수 있다.
이 경우 사용자 인터페이스(UI) 상에서는 앱 리스트의 상단에 탭을 제공하여 지도 앱을 볼 수 있는 탭, 맛집 앱을 볼 수 있는 탭을 두어 각 클러스터 별로 추천 앱을 제공한다면, 단순히 추천 앱을 목록으로 제공하는 것보다 더 사용자 편의성을 더욱 강화할 수 있을 것이다.
딥링크 생성부(160)는 랭킹부(150)에서 재조정된 앱 리스트(51)에서 추천 앱의 특정 페이지로 바로 이동할 수 있는 딥링크를 생성할 수 있다. 딥링크는 일반 PC 웹 브라우저에서 사용되는 URL 주소와 유사하게 모바일 앱에서의 특정 기능을 수행할 수 있는 페이지로 바로 이동 할 수 있는 주소를 의미한다. 즉 딥링크 생성부(160)는 앱 리스트(51)의 목록에 있는 각 앱에 대해 특정 기능을 수행할 수 있는 페이지로 직접적으로 이동할 수 딥링크를 생성할 수 있다.
가령, “안동 찜닭 먹자”를 입력하였을 때, “안동 찜닭”과 관련된 “배달 주문 가능한 앱”이 추천될 수 있다면, 딥링크 생성부(160)는 “배달 주문 가능한 앱”에서 “안동 찜닭”을 주문할 수 있는 업체가 나열된 페이지로 바로 이동할 수 있는 딥링크를 생성할 수 있다. 사용자는 딥링크 생성부(160)에 의해 생성된 딥링크로부터 앱을 실행 시킨 후 추가적인 입력 없이도 바로 원하는 검색 결과가 나열된 페이지로 이동할 수 있기 때문에 웨어러블 디바이스와 같이 화면이 작은 스마트기기에 적합한 기술일 수 있다.
즉 단순히 메시지 내용과 관련된 앱 리스트(51)를 사용자에게 제공하는 것에서 그치는 것이 아니라, 실제 그 메시지 내용과 관련된 서비스를 한번의 터치로 바로 이용할 수 있도록, 앱의 아이콘에 해당 앱 내에서 관련된 서비스를 바로 이용할 수 있는 메뉴의 딥링크를 걸어서 제공하는 것이다.
메시지 기반 앱 제공 장치(100)는 딥링크 생성부(160)에 의해 딥링크가 걸린 앱 리스트(51)와 제1 디바이스(10)에 의해 송신된 대화 내용을 결합하여 제2 디바이스(50)에 송신할 수 있다. 예를 들면 도 2의 예시처럼 상단에 제1 디바이스(10)에서 전송한 메시지가 노출되고, 하단에 관련된 앱의 아이콘이 노출되는 형식으로 사용자 편의성을 확보할 수 있다. 물론 이 때 해당 아이콘에는 앱 내에서 메시지 내용과 관련된 서비스를 바로 이용할 수 있는 딥링크가 걸려 있다.
또는 메시지 기반 앱 제공 장치(100)는 앱 리스트(51)를 대화 내용과 합쳐 하나의 메시지를 생성할 수 있다. 즉 앱 리스트(51)는 도 2의 예시처럼 메시지 아래에 관련된 앱의 아이콘이 나열되는 형태로 사용자에게 제공될 수도 있지만, 아예 메시지 안에 추천 앱의 목록이 포함되어 사용자에게 텍스트와 URL이 결합된 형태로 제공될 수도 있다. 여기서 메시지 기반 앱 제공 장치(100)는 딥링크의 URL을 그 길이를 줄여 간소화된 임시 주소로 변형하여 제공할 수도 있다.
제2 디바이스(50)는 메시지 기반 앱 제공 장치(100)로부터 수신된 제1 디바이스(10)의 대화를 화면에 표시할 수 있다. 이 때 메시지의 표시와 함께 제2 디바이스(50)는 메시지 기반 앱 제공 장치(100)에 의해 송신된 딥링크를 아이콘의 배열(51)로 표시할 수 있다. 아이콘의 배열(51)은 메시지 기반 앱 제공 장치(100)가 송신한 연관 앱 리스트에 해당하는 아이콘들을 나열하여 표시할 수 있다. 그러나 이에 한정되는 것은 아니고, 제2 디바이스(50)는 문자 메시지에 포함된 간소화된 링크 주소, 이를테면 구글 링크 주소 변환기에 의해 변환된 주소로서 딥링크를 수신할 수 있다.
지금까지 살펴본 도 2의 예시에서는 제1 디바이스(10)에서 제2 디바이스(50)로 메시지를 전송하는 과정에서, 메시지를 후킹(hooking)하여 원래의 메시지에 해당 메시지와 관련된 앱의 리스트를 덧붙여서 전송하는 메시지 기반 앱 제공 장치(100)를 살펴보았다. 그러나 본 발명의 일 실시예에 따른 메시지 기반 앱 제공 장치(100)는 반드시 실시간인 경우로 한정되는 것은 아니다.
경우에 따라서는 사전에 작성되어 저장된 텍스트에도 적용될 수 있다. 예를 들면, 특정 사용자가 모바일로 특정 제품과 관련하여 리뷰로 작성된 블로그의 글을 읽는다고 가정해보자. 이 경우 본 발명의 일 실시예에 따른 메시지 기반 앱 제공 장치(100)는 해당 블로그의 글을 분석하여 상기 특정 제품을 바로 구매할 수 있는 딥링크가 걸린 쇼핑 앱을 추천 앱으로 블로그의 텍스트 하단에 제공할 수도 있다.
이상으로 도 2의 예시를 통해, 본 발명의 일 실시예에 따른 메시지 기반 앱 제공 장치(100)의 개괄적인 내용을 살펴보았다. 다음으로는 도 3의 신호 흐름도와 도 4의 예시도를 통해 메시지 기반 앱 제공 장치(100)의 동작에 대해 보다 더 자세히 살펴보도록 한다.
도 3은 본 발명의 일 실시예에 따른 메시지 기반 관련 앱 제공 시스템의 신호 흐름도이다. 도 4는 도 3에 의한 메시지 기반 관련 앱 제공 시스템에 의해 처리되는 텍스트의 예시도이다.
도 3 및 도 4를 참조하여 본 발명의 일 실시예에 따른 메시지 기반 앱 제공 시스템의 동작을 설명하도록 한다.
도 3을 참고하면, 제1 디바이스(10)는 입력창을 통해 사용자로부터 텍스트를 입력 받는다(S100). 다음으로 제1 디바이스(10)는 사용자로부터 입력 받은 텍스트를 네트워크(30)를 통해 메시지 기반 앱 제공 장치(100)로 전송한다(S105).
메시지 기반 앱 제공 장치(100)는 제1 디바이스(10)로부터 수신한 텍스트를 데이터 수집부(110)에 의해 수집하고, 데이터 전처리부(120)에 의해 텍스트 분석을 수행할 수 있다(S110).
예를 들어 제1 디바이스(10)에 의해 입력된 텍스트(S100)가 "안동 하회마을 갈래" 인 경우(Case(A))와 "안동 찜닭 먹자"인 경우(Case(B))로 나누어 메시지 기반 앱 제공 장치(100)의 동작 처리 과정을 설명한다. 텍스트 분석(S110) 단계에서 데이터 전처리부(120)는 데이터 수집부(110)에 의해 수집된 텍스트의 품사를 태깅(tagging)하는 과정을 포함할 수 있다.
데이터 전처리부(120)는 텍스트에 품사를 태깅(tagging) 한 후, 명사에 해당되는 단어 중 기 지정된 특정 키워드 또는 단어가 포함되어 있는지 파악하여, 특정 키워드 또는 단어가 포함되어 있는 경우에 그것과 관련된 속성(Entity)를 추가할 수 있다(S115).
“안동” 이라는 명사 뒤에 지역의 고유 명칭인 "하회마을"이 오는 경우에 데이터 전처리부(120)는 <location>이라는 속성을 "안동 하회마을"에 부여하여 매칭시킬 수 있다. "안동"이라는 명사 뒤에 "찜닭"이라는 음식명이 오는 경우에 데이터 전처리부(120)는 <menu>라는 속성을 "안동 찜닭"에 부여하여 매칭할 수 있다.
이처럼 “안동”은 지역명임에도 불구하고 뒤에 붙는 명사에 따라 서로 다른 속성을 가질 수 있다. 이 때 적합한 속성을 부여하기 위해서 개체명 인식 알고리즘을 사용할 수 있는데, 개체명 인식 알고리즘은 사전 기반 매칭에 한정되지 않고, 문법과 통계적 기반을 혼합하여 사용하기 때문에, "안동"이라는 단어에 <location>이라는 속성만 부여되는 것이 아니라 경우에 따라서는 <menu>라는 속성도 부여될 수 있다.
특정 단어나 키워드에 부여된 속성을 기반으로 카테고리를 추출할 수 있다(S120). <location> 이라는 속성(Entity)와 연관된 카테고리로 예를 들어, 여행, 지도, 길 찾기 등을 생각해 볼 수 있다. 반면에, <menu>라는 속성(Entity)와 연관된 카테고리로 예를 들어, 주문, 쿠폰 북, 맛집 소개 등을 생각해 볼 수 있다. 관련 카테고리 추출(S120)은 앱 리스트 구성부(130)에 의해 수행될 수 있으며, 속성(Entity)과 연관된 카테고리를 매칭하기 위해서 학습 모델을 기반으로 하는 업데이트 방식을 사용할 수 있다.
앱 리스트 구성부(130)는 속성(Entity)과 연관된 카테고리를 추정하여, 카테고리와 연관된 앱을 카테고리별 앱 리스트 DB(미도시)로부터 제공받아 랭킹부(150)에 전달할 수 있다. 랭킹부(150)는 연관 앱 리스트를 생성(S125) 한 후, 앱 리스트를 사용자들이 많이 접속하거나 다운로드 받은 순서대로 앱 리스트를 재배열(S130) 할 수 있다.
딥링크 생성부(160)는 카테고리와 관련된 앱에 특정 페이지로 직접 연결될 수 있는 딥링크를 생성할 수 있다(S135). 딥링크 생성부(160)는 생성된 딥링크에 대한 주소를 간소화된 주소로 바꿀 수 있다(S140). 또한 딥링크 생성부(160)는 텍스트와 딥링크에 대한 간소화된 주소를 조합하여 하나의 메시지를 생성할 수 있다(S145). 메시지 기반 앱 제공 장치(100)는 딥링크를 포함한 텍스트를 제2 디바이스(50)에 전송할 수 있다(S150).
제2 디바이스(50)는 사용자로부터 앱 리스트 중 하나를 선택하는 선택 입력을 받으면(S160), 해당 앱이 설치 되어 있는 경우(S165)에는, 선택된 앱의 특정 페이지로 이동할 수 있다(S175). 여기서 해당 특정 페이지는 딥링크에 의해 접속되는 페이지로 대화 내용에 맞춰 관련된 서비스를 바로 이용할 수 있는 페이지이다.
만약에 선택된 앱이 제2 디바이스(50)에 설치되어 있지 않다면, 선택된 앱을 설치할 수 있는 페이지로 이동할 수 있다(S170). 선택된 앱의 설치가 끝나면, 선택된 앱의 특정 페이지로 이동할 수 있다(S175).
지금까지 도 2 내지 도 4를 통해서 살펴본 본 발명의 일 실시예에 따른 메시지 기반 앱 제공 장치(100)를 이용하면, 메시지를 수신한 사용자가 메시지와 관련하여 실행할 것으로 예상되는 앱을 우선하여 제공할 수 있고, 또한 단순히 앱의 리스트를 아이콘으로 제공하는 것에서 그치는 것이 아니라 대화 내용에 맞추어 앱에서 대화 내용과 가장 관련이 있는 메뉴에 바로 접속할 수 있는 딥링크를 제공하여 사용자의 편의성을 강화할 수 있다.
다만 지금까지 도 2 내지 도 4를 통해서 본 발명의 일 실시예에 따른 메시지 기반 앱 제공 장치(100)는 서버의 역할을 수행하는 메시지 기반 앱 제공 장치(100) 측면에서 본 발명을 살펴본 것으로, 발명을 좀 더 입체적으로 이해하기 위해 다음으로는 클라이언트 측면에서 발명을 설명하도록 한다.
도 5는 메시지 기반 앱 제공 장치(100)가 사용자에 의해 입력된 텍스트에 속성(Entity)를 추가하는 것에 대한 예시도이다. 도 6은 도 5의 속성(Entity)이 부여된 텍스트를 사용자가 선택하는 경우에 대한 동작을 나타낸 도면이다. 도 7은 도 5의 메시지 기반 앱 제공 서비스가 속성(Entity)에 의해 실행 가능한 앱이 충돌하는 경우에 있어서의 동작을 설명하기 위한 예시도이다.
이하, 도 5 내지 도 7을 참조하여, 본 발명의 일 실시예에 따른 메시지 기반 관련 앱 제공 방법을 디바이스(1000) 측면에서 설명하도록 한다.
메세지기반 앱 제공 방법은 데이터 수집단계, 데이터 전처리 단계, 앱 리스트 구성 단계, 앱 리스트 개인화 단계, 랭킹 단계, 딥링크 생성 단계를 포함할 수 있다.
데이터 수집 단계는 디바이스(1000) 사용자가 입력한 텍스트 데이터를 수집할 수 있다. 도 5에 도시된 바와 같이 사용자가 "I love it newest song Bon Jovi's Always"라고 입력한 경우, 데이터 수집부(110)는 "I love it newest song Bon Jovi's Always"라는 텍스트를 수집할 수 있다.
데이터 전처리 단계는 데이터 수집부(110)에 의해 수집된 텍스트에 속성(Entity)를 부여할 수 있다. 데이터 전처리부(120)는 "I love it newest song Bon Jovi's<person> Always<music>."의 속성(Entity)을 태깅(tagging)할 수 있다.
데이터 전처리 단계에 의해 속성(Entity)이 태깅된 키워드는 앱 리스트 구성 단계, 앱 리스트 개인화 단계 및 랭킹 단계에 의해 사용자의 의도에 부합한, 즉 사용자에게 적합한 앱을 추천해줄 수 있다.
앱 리스트 구성부(130)와 앱 리스트 개인화부(140) 및 랭킹부(150)는 동일한 카테고리에 속한 앱 중 랭킹이 가장 높은 앱을 선정할 수 있다. 만약 서로 다른 카테고리에 속한 앱이 있는 경우에는, 서로 다른 카테고리 각각 마다 동일한 카테고리 내에서 가장 랭킹이 높은 앱들로 구성된 앱 리스트를 구성할 수 있다.
상기 랭킹이 가장 높은 앱들로 구성된 리스트는 동일 카테고리에 속한 앱 중에서 상기 사용자 정보 및 상기 맥락 정보에 기초하여 선정될 수 있으며, 랭킹이 높은 순으로 디스플레이 장치에 순차적으로 배열하여 표시할 수 있다. 이 때 상기 사용자 정보 및 상기 맥락 정보는 사용자의 일정 정보(예: 구글 캘린더 인터페이스 상의 일정 정보), GPS 좌표계 정보, 사용자 프로파일 정보(연령대, 성별 등), 디바이스의 생체 센서로부터 감지된 생체 정보 및 상기 생체 정보로 유추한 감정 정보 등을 포함한다.
이렇게 생성된 앱 리스트와 딥링크는 도 6의 예시처럼 사용자의 단말에 제공될 수 있다. 상기 디스플레이 장치에 표시되는 상기 순차적 배열은 상기 앱 리스트 표시 직전에 디스플레이 장치에 대한 사용자의 터치 입력 지점/위치에 기반하여 표시될 수 있으며, 이에 의하여 사용자로 하여금 랭킹이 가장 높은 앱에 대하여 빠르게 접근이 가능하도록 유도할 수 있다.
이렇게 구성된 앱 리스트를 화면에 표시할 때, 앱 링크는 앱을 대표하는 이미지와 해당 키워드를 포함하는 링크의 종류에 따라 다르게 표시될 수 있다. 예를 들면, 앱이 존재하는 경우 딥링크임을 알려줄 수 있다면, 앱이 존재하지 않을 때는 설치해야 한다는 표시가 들어갈 수 있고, 웹페이지로 연결되는 경우 웹 링크임을 알려주는 표시가 될 수 있다.
추천 리스트로 제공되는 앱에 사용되는 주요 메시지 키워드는 메시지를 보여줄 때 별도로 구분되는 방법(예를 들면, 두꺼운 글씨 혹은 색을 적용)으로 표시하여 사용자에게 알려줄 수 있다. 이러한 사용자 UI에 대해서는 추후 도 15에서 보다 자세히 살펴보도록 한다.
도 6을 참고하면, 사용자가 트위터에 2016년 01월 28일 입력한 텍스트(60)를 분석하여 관련 앱을 추천한 것을 볼 수 있다. 즉 사용자가 입력한 텍스트를 분석하여 키워드(63)를 추출하고, 추출한 키워드 중에서 "Bon Jovi"(61)는 속성이 <person>으로 이와 관련된 앱은 위키피디아(Wikipedia)를 이용할 수 있는 딥링크가 생성되어 사용자에게 제공된다. 다음으로는 "Always"(62)는 속성이 <music>으로 이와 관련된 앱은 유튜브나 뮤직 플레이어 앱을 이용할 수 있는 딥링크가 생성되어 사용자에게 제공된다.
딥링크의 구체적인 예를 살펴보면 유튜브를 이용할 수 있는 딥링크(64)를 볼 수 있다. 즉 target는 "YouTube"이고, 이를 선택하면 singer는 "Bon Jovi"로 filter는 "Always"로 검색이 된 결과를 바로 접속할 수 딥링크가 생성되어 사용자에게 제공된다.
만약 사용자가 속성(Entity)이 태깅된 키워드를 선택하면, 해당 키워드와 관련된 앱 리스트가 키워드의 하단에 노출이 된다. 즉 "Bon Jovi"(61)를 선택하면 그 하단에 위키피디아의 아이콘이 노출되고, "Always" (62)를 선택하면 그 하단에 유튜브나 뮤직 플레이어 앱의 아이콘이 노출된다.
즉 클라이언트(100)는 서버에 텍스트를 송신하고 그 결과로 텍스트와 관련이 있는 앱 리스트를 전송 받아 이를 사용자에게 제공하는 것이다. 그리고 만약 사용자가 앱 리스트에 노출된 앱 아이콘 중 하나를 선택하여 실행하면 딥링크가 걸린 앱이 실행되어 사용자의 추가적인 입력이 없더라도 바로 관련된 메뉴로 이동하여 서비스를 제공할 수 있다.
도 7을 참고하면, 앱 리스트가 디스플레이의 크기가 작은 웨어러블 디바이스인 클라이언트(1000)에서 표시된 예를 볼 수 있다. 도 7과 같이 사용자가 Always(62)를 선택한 경우, Always(62)에 태깅된 속성(Entity)과 관련된 실행 가능한 앱을 리스트의 형태로 형성한 후, 실행 앱 선택(1020) 창을 표시할 수 있다. 사용자가 실행 앱 선택(1020) 창에 표시된 앱 리스트 중 어느 하나를 사용자가 선택하면, 선택 정보를 수신하여 서비스를 제공한다.
즉 Always(62)에 태깅된 속성(Entity)인 <Music>과 관련하여 <Music> 속성과 관련하여, 뮤직 비디오 카테고리와 음악 감상 카테고리 각각에서 가장 랭킹이 높은 유튜브와 뮤직 플레이어를 각각 선정할 수 있고, 이를 선택할 수 있는 실행 앱 선택(1020)창을 구성할 수 있다.
이처럼 메시지와 관련된 앱을 자동으로 분석하여 사용자에게 제공하면 도 7처럼 디스플레이가 작은 클라이언트(1000)에서도 사용자가 손쉽게 서비스를 이용할 수 있는 효과가 있다. 특히 유튜브를 실행하고 거기서 다시 "Bon Jovi"의 "Always"를 검색해서 뮤직 비디오를 보는 것이 아니라, 자동으로 "Bon Jovi"의 "Always"의 뮤직 비디오가 검색된 페이지로 유튜브를 실행할 수 있으므로 사용자의 편의성을 극대화할 수 있다.
이상으로 본 발명의 일 실시예에 따른 메시지 기반 관련 앱 제공 장치(100)에 대해 개괄적으로, 또 입체적으로 살펴보았다. 다음으로는 메시지 기반 관련 앱 제공 장치(100)의 각 구성 요소에 대해서 자세히 살펴보도록 한다. 구체적으로는 데이터 수집부(110)와 데이터 전처리부(120)에서 사용되는 개체명 인식 알고리즘에 대해서 살펴보도록 한다.
도 8은 본 발명의 일 실시예에 따른 메시지 기반 앱 제공 장치(100)의 데이터 전처리 과정을 나타낸 예시도이고, 도 9는 대화 쌍 데이터를 하나의 대화 정보로 그룹핑 한 결과를 나타낸 도면이다.
메시지 기반 앱 제공 장치(100)의 데이터 수집부(110)는 SNS 상에서 오고 간 대화 쌍 데이터를 수집할 수 있다. 데이터 수집부(110)는 단편적인 하나의 문장이 아닌 대화의 쌍(pair)를 수집할 수 있다. 대화 쌍 중 하나의 문장은 Parent로 다른 문장은 Child로 나타내어 저장할 수 있다.
데이터 전처리부(120)는 데이터 수집부(110)에 의해 수집된 대화의 쌍(Pair) 데이터를 토큰 단위로 분리하고, 노이즈를 제거 한 후, 속성(Entity)을 부여할 수 있는 키워드를 추출하여 속성(Entity)을 부여할 수 있다. 데이터 전처리부(120)는 키워드에 속성(Entity)을 추가하기 위해 앞서 설명한 바와 같이 개체명 인식 알고리즘을 사용할 수 있다.
데이터 전처리부(120)는 대화쌍 데이터의 전처리 과정으로 키워드에 연관된 속성(Entity)를 추출한 후, 메타정보를 태깅(tagging)할 수 있다. 이하 도 8을 참조하여 데이터 수집부(110) 및 데이터 전처리부(120)의 동작과 개체명 인식 알고리즘을 상세히 설명하도록 한다.
데이터 수집부(110)는 기 지정된 특정 키워드인 "Osha Thai"를 포함하는 문장이 있는 경우 "Come to Osha Thai!"라는 문장과 "Where"라는 문장을 하나의 대화쌍 데이터(200)로 수집할 수 있다.
데이터 전처리부(120)는 데이터 수집부(110)에 의해 수집된 대화쌍 데이터(200)에서 이모티콘(emoticon)이나 특수문자 등의 노이즈를 제거할 수 있다. 데이터 전처리부(120)는 대화쌍 데이터(200)를 토큰 단위로 분리한 대화쌍 데이터(204)로 바꿀 수 있다. 데이터 전처리부(120)는 토큰 단위로 분리한 대화쌍 데이터(204)에 품사를 태깅(tagging)한 대화쌍 데이터(207)로 바꿀 수 있다.
데이터 전처리부(120)는 대화쌍 데이터의 전처리 과정으로 속성을 부여할 수 있는 단어를 추출하고, 속성을 추가한 대화쌍 데이터(210)를 생성할 수 있다. 데이터 전처리부(120)는 속성을 추가한 단어에 메타 정보를 태깅(tagging)하는 과정을 포함할 수 있다(212).
구체적으로 도 8을 참조하여 설명하면, SNS 상에 게재된 User1과 User2의 대화 쌍 중 "Osha Thai"라는 기 지정된 키워드가 포함된 경우 데이터 수집부(110)는 "Come to Osha Thai"라는 문장과 "Where"라는 문장을 한 쌍의 대화 쌍 데이터(200)로 수집할 수 있다.
데이터 전처리부(120)는 데이터 수집부(110)에 의해 수집된 대화쌍 데이터(200)를 제공 받아 "@twitter_user1"와 "@twitter_user2"를 제거한 대화 쌍 데이터(204)를 생성할 수 있다.
데이터 전처리부(120)는 노이즈가 제거된 대화 쌍 데이터(204)에 포함된 각 문장(205, 206)을 토큰 단위로 나눌 수 있다. 따라서 노이즈가 제거된 대화 쌍 데이터(204)에 포함된 제1 문장(205)을 "Come", "To", "Osha", "Thai"로 나눌 수 있다.
데이터 전처리부(120)는 토큰 단위로 나눈 대화 쌍 데이터(204)에 품사(POS)를 태깅(tagging)한 대화쌍 데이터(207)를 생성할 수 있다. "Come"은 동사 "To"는 전치사, "Osha"는 명사, "Thai"는 명사, "Where"는 의문사이므로 데이터 전처리부(120)는 토큰 단위로 나눈 대화 쌍 데이터(204)로부터 품사를 태깅(tagging)한 대화 쌍 데이터(207)를 생성할 수 있다.
데이터 전처리부(120)는 품사를 태깅(tagging)한 대화 쌍 데이터(207)로부터 최종적으로 전처리된 대화쌍 데이터(210)를 생성할 수 있다. 데이터 전처리부(120)는 부모 문장(parent)과 자식 문장(child)을 나누어 최종적인 전처리된 대화쌍 데이터(210)를 생성할 수 있다. 이때 "Osha Thai"라는 기 지정된 키워드에 속성(Entity)이 부여될 수 있다. 속성(Entity)은 "Osha Thai"가 레스토랑 명칭이므로 "location"이라고 붙인 것을 예시하고 있으나 이에 한정되는 것은 아니다.
데이터 전처리부(120)는 속성(Entity)이 부여된 "Osha Thai"에 대해서 위치적 정보인 "GPS"(37.9, -112.4)라는 메타정보를 부가할 수 있다(212)
도 9를 참고하면, 데이터 전처리부(120)에 의한 전처리된 대화쌍 데이터(210)를 이용하여 메타 정보와 속성 정보를 맵핑(mapping)한 데이터 트리를 만들 수 있다.
“Osha Thai"는 location이라는 속성 정보와 GPS정보를 하나의 연결 리스트로 생성할 수 있다. 이때, "Come to Osha Thai"라는 제1 문장에 대한 "Where"라는 제2 문장의 대화 쌍을 하나의 데이터로 연결시킨 후, "Osha Thai"라는 키워드에 대한 속성 정보 및 메타 정보가 "Osha Thai" 자식 노드로 추가 될 수 있다.
또한 데이터 전처리부(120)에서 딥링크를 구성하기 위해 반영하는 속성 정보는 텍스트에만 국한되는 것이 아니라 답변제시로 사용된 이미지, 음악, 지도 등 멀티미디어 데이터가 활용될 수 있다. 예를 들어, 도16과 같이 답변에 사용된 이미지의 의미를 인식하여 딥링크를 추천할 수 있다. 또한 상기 답변제시 형태는 텍스트뿐만 아니라 사용자의 음성입력 정보를 포함한다.
또한 도 9과 같이 대화 쌍 데이터와 대화 쌍 데이터에 대한 문맥 흐름에 따른 속성 정보와 메타 정보를 연관 지어 저장시키게 되면, 상기 정보는 랭킹부(150)에 제공되어, 연관도 산정 점수에 영향을 줄 수 있다.
지금까지 도 8 내지 도 9를 통해, 데이터 수집부(110)와 데이터 전처리부(120)에서 메시지를 분석하여 그 속성을 태깅(tagging)하는 과정을 살펴보았다. 이는 자연어 처리에 기반한 것으로 기계 학습을 통해 메시지를 분석하고 그 속성을 태깅(tagging)하는 과정을 반복하여 수행할 수 있다. 특히 동일한 음절의 단어이더라도 문맥에 따라 그 의미가 달라질 수 있으므로 기계 학습을 통해 그 정확도를 높일 수 있다.
다음으로는 메시지 기반 앱 제공 장치(100)의 앱 리스트 구성부(130)와 앱 리스트 개인화부(140)에 대해서 살펴보도록 하자. 앱 리스트 구성부(130)와 앱 리스트 개인화부(140)는 자연어 처리를 통해 의미가 파악된 키워드에 대해 해당 키워드와 관련이 있는 앱의 리스트를 제공하는 역할을 수행한다.
앱 리스트 구성부(130)는 이렇게 전처리된 최종 대화쌍 데이터(210)를 기반으로 전처리된 데이터와 연관된 실행 가능한 앱을 앱 리스트 DB를 통해 조회할 수 있다. 앱 리스트 DB에는 전처리된 데이터와 연관된 실행 가능한 앱들의 리스트가 저장되어 있다.
전처리된 데이터와 연관된 실행 가능한 앱들 전부 또는 일부가 대화 과정에서 실행 가능한 앱들의 후보가 될 수 있다. 구체적으로 전처리된 데이터와 연관된 실행 가능한 앱들은 속성(Entity)이 추가된 키워드와 연관된 것이지만, 대화 쌍 데이터에 포함된 추가적인 속성(Entity)이 부여된 키워드에 의해서 실행 가능한 앱 후보들 중 가장 연관도가 높은 하나의 앱을 결정할 수 있다.
앱 리스트 구성부(130)에서 앱 리스트 DB를 조회하여 만든 앱 후보를 앱 리스트 개인화부(140)에서 필터링을 하여 보다 사용자에게 맞는 앱들만 걸러질 수 있도록 한다.
즉 앱 리스트 개인화부(140)는 메세지의 내용을 기반으로 앱 리스트를 구성하고, 이후 사용자의 주변 환경 및 과거 기록 등을 이용하여 재구성하는 기능을 수행한다. 예를 들어, 사용자의 관심도, 과거 앱 사용기록, 개별 앱의 결과값 반영 등을 통해 좀 더 개인화 된 앱의 리스트를 제공할 수 있다.
도 9를 참고하면 "Osha Thai"와 관련하여 <location>이라는 속성을 태깅(tagging)하였고, 세부 정보로 GPS 정보를 얻었다. 앱 리스트 DB에는 <location>과 관련된 앱으로 대중 교통 알림 앱이나 네비게이션 앱, 지도 앱 등이 조회가 된다고 가정해보자. 이 경우 앱 리스트 구성부(130)에서는 조회 결과로 이들을 앱 후보로 선정할 수 있다.
대중 교통 알림 앱은 대중 교통 정보 및 대중 교통 도착 알림 정보를 제공하지만, 네비게이션 앱은 자가 운전하는 경우에 운전 경로를 안내해준다. 또한 지도 앱은 구글 맵 등을 통해 "Osha Thai" 음식점의 지도상의 위치 정보를 제공한다. 여기서 대중 교통 알림 앱을 자주 사용하는 사람에게 네비게이션 앱을 제공하는 것은 상황이 적절하지 않다.
이러한 문제를 해결하기 위해서 대화쌍 데이터의 문맥적인 흐름만이 중요한 것이 아니라, 사용자의 사용패턴에 가장 부합하는 앱을 제공하여야 한다. 이를 앱 리스트 개인화부(140)에서 수행할 수 있다. 즉 앱 리스트 개인화부(140)에서는 사용자의 사용 패턴, 개인 정보, 기기 정보 등을 고려하여 앱 리스트 구성부(130)에서 앱 리스트 DB를 조회한 결과로 만든 앱 리스트에 1차적인 필터링을 수행하여, 보다 사용자에게 적절한 앱 리스트로 재구성하는 역할을 수행한다.
다음으로 메시지 기반 앱 제공 장치(100)의 랭킹부(150)와 딥링크 생성부(160)에 대해서 살펴보도록 하자. 랭킹부(150)는 앱 리스트 개인화부(140)에 의해 1차 필터링(filtering) 된 앱 리스트에 대해, 사용자의 사용패턴에 가장 적합한 앱을 추천하기 위해 실행 가능한 앱 각각에 대하여 관련도 점수를 부여할 수 있다.
랭킹부(150)는 각 앱 별로 점수화를 수행할 수 있다. 구체적으로 랭킹부(150)는 대화 정보 및 사용자의 사용 패턴을 기반으로 각 앱에 대한 점수를 부여할 수 있다. 랭킹부(150)는 가장 높은 점수가 부여된 앱을 선정할 수 있다.
랭킹부(150)는 점수화 과정을 통해 실행 가능한 앱 중 하나를 선정하여 상기 선정된 앱에 관한 정보를 딥링크 생성부(160)에 제공하면, 딥링크 생성부(160)는 상기 선정된 앱의 특정 페이지로 이동할 수 있는 딥링크를 생성할 수 있다. 딥링크는 인터넷 익스플로러 상의 URL과 같이 모바일 앱 내에서 특정 페이지에 바로 도달할 수 있는 링크를 의미한다.
이때 상기 앱의 특정 페이지 정보는 대화 정보 및 사용패턴에 기초하여 차별적으로 결정될 수 있다. 또한 상기 대화 정보로부터 추출한 대화 사용자 정보 및 맥락정보에 기초하여 앱의 특정 페이지 정보를 결정함으로써, 사용자의 동일한 텍스트 정보를 입력하더라도 다른 앱 구성이 배열/표시될 수 있으며, 또는 동일한 앱 구성을 제공하더라도 상기 사용자 정보 및 맥락정보에 따라 이동되는 앱의 특정 페이지가 달라질 수 있다.
딥링크 생성부(160)는 랭킹부(150)로부터 앱을 선정할 때 사용된 키워드, 예를 들어 "Osha Thai"를 사용하여 앱 내에서 "Osha Thai"와 관계된 페이지로 바로 이동할 수 있도록 할 수 있다. 예를 들어 대중 교통 알림 앱에서는 현재 위치를 출발점으로 "Osha Thai"위치를 도착점으로 하여 교통수단을 안내를 제공하는 서비스로 딥링크를 생성할 수 있고, 네비게이션 앱에서는 현재 위치를 출발점으로 "Osha Thai"위치를 도착점으로 하는 길안내를 제공하는 서비스로 딥링크를 생성할 수 있다.
딥링크에 대해 보다 자세히 살펴보면, 딥링크란 각기 다른 앱들 사이에서 각각의 특정 페이지에 특정 값을 전달할 수 있는 프로토콜을 의미한다. 예를 들어 웹 URL "http://map.naver.com/local/siteview.nhn?code=19585783"는 네이버 지도 웹 사이트의 특정 위치에 관한 링크이다.
웹 URL은 일반적으로 "http://"나 "https://"의 접두어(prefix)를 가진다. 마찬가지로 모바일 어플리케이션도 각자의 접두어를 통해 서비스를 제공할 수 있다. 예를 들면 유튜브는 youtube://, 멜론(아이폰)은 meloniphone://, 벅스는 bugs3://를 접두어로 가지고 있다.
만약 모바일 어플리케이션에서 네이버 앱을 실행하여 특정 서비스를 제공하고 싶다면 "http://developer.naver.com/wiki/pages/UrlScheme"를 참고하여, "naversearchapp://명령어?파라미터=옵션&version=버전"와 같은 딥링크를 생성하여 사용자에게 제공하면 된다. 마찬가지로 다른 모바일 어플리케이션도 각 어플리케이션마다 특정 접두어로 시작하는 딥링크를 생성하는 방법에 대해 가이드 문서를 제공하고 있다.
딥링크 DB는 각 모바일 어플리케이션 별로 딥링크를 생성하는 프로토콜을 데이터베이스화 한 것이다. 즉 딥링크를 생성하기 위한 접두어, 변수명 등을 사전에 딥링크 DB로 구축하고, 딥링크 생성부(160)에서 딥링크를 생성할 때 메시지에서 추출한 키워드를 파라미터로 딥링크를 생성하여 바로 서비스를 이용할 수 있도록 사용자에게 제공하는 것이다.
데이터 수집부(110), 데이터 전처리부(120), 앱 리스트 구성부(130), 앱 리스트 개인화부(140), 랭킹부(150) 및 딥링크 생성부(160)를 통해 현재 메시지와 관련하여 가장 관련도가 높은 앱의 리스트와 해당 앱의 특정 서비스로 접속할 수 있는 딥링크를 원래의 메시지와 함께 사용자에게 제공하면, 단순히 그냥 메시지만 전달하는 것에 비해 손쉽게 연관 앱을 실행할 수 있는 사용자 경험을 향상시킬 수 있다.
도 10는 본 발명의 일 실시예에 따른 메시지 기반 앱 제공 장치(100)를 활용하여 사용자가 상대방에게 딥링크를 전송하는 방법을 나타낸 도면이다.
도 10을 참고하면, 메시지 기반 앱 제공 장치(100)를 이용하여 제1 디바이스(1000)에서 제2 디바이스(1001)로 딥링크를 전송하는 과정을 볼 수 있다. 메시지 기반 앱 제공 장치(100)는 그 사이에서 메시지를 분석하여 메시지와 함께 앱 리스트와 딥링크를 생성한 후 제2 디바이스(1001)로 전송할 수 있다. 제2 디바이스(1001)는 앱 리스트와 딥링크(192)를 수신한 후 곧바로 딥링크(192)가 연결하는 앱의 페이지를 직접적으로 실행할 수 있다.
도 11은 본 발명의 일 실시예에 따른 메시지 기반 앱 제공 방법에 관한 순서도이다.
도 11을 참조하면, 컴퓨팅 장치가 메신저나 SNS 등을 통하여 대화 정보 데이터를 수집할 수 있다(S200). 컴퓨팅 장치는 수집한 대화 정보를 전처리 할 수 있다(S205).
대화 정보 데이터 전처리 단계는, 컴퓨팅 장치가 대화 정보 중 이모티콘(emoticon)이나 Twitter 상의 사용자 정보를 제거하고 대화 정보만을 추출한 뒤, 대화 정보를 토큰 단위로 분할한 후, 대화 정보에 품사를 태깅(tagging)을 수행하는 것을 포함 할 수 있다.
또한 대화 정보 전처리 단계는, 컴퓨팅 장치가 수집한 대화 정보에 품사를 태깅(tagging)한 뒤, 기 지정된 몇몇 키워드에 속성(Entity)를 추가하고, 추가된 속성(Entity)에 대해 메타 정보를 추가하여, 전처리가 완료된 대화 정보를 생성하는 것을 포함할 수 있다.
컴퓨팅 장치는 전처리된 대화 정보를 활용하여 실행 가능한 앱을 목록화 할 수 있다(S210). 실행 가능한 앱을 목록화 하는 단계에서, 사전에 구축된 앱 리스트 DB를 활용할 수 있다. 상기 앱 리스트 DB에는 특정 속성과 관련된 앱의 정보가 저장되어 있다. 컴퓨팅 장치는 앱의 목적이 유사한 실행 가능한 앱들을 하나의 클러스터에 포함시키는 클러스터링을 수행할 수 있다(S215). 클러스터링은 앱의 성격이나 카테고리가 유사한 정도에 의해 수행될 수 있다.
컴퓨팅 장치는 클러스터링 된 각각의 클러스터에 대해 대화 정보와의 관련 정도를 점수화 하여 각각의 클러스터에 관련도 점수를 부여할 수 있다(S220). 또한 컴퓨팅 장치는 가장 높은 점수를 얻은 클러스터에 포함된 앱을 추천 앱 후보로 도출할 수 있다(S225).
컴퓨팅 장치는 가장 높은 점수가 부여된 클러스터에 복수개의 앱을 추천 앱 리스트로 생성한 후, 사용자에게 제공할 수 있다(S230). 사용자가 제공받은 복수개의 추천 앱 리스트 중 어느 하나를 선택하여 컴퓨팅 장치가 선택 입력을 받으면(S235), 컴퓨팅 장치는 선택된 앱을 실행할 수 있다(S240).
도 12는 도 11의 클러스터에 대하여 점수화 하는 단계(S220)를 구체화한 순서도이다. 도 13은 도 12의 대화 상대 정보를 클러스터링 점수에 반영하는 예를 나타낸 도면이다.
도 12를 참고하여 클러스터에 대하여 점수화 하는 단계(S220)를 상세히 설명하도록 한다. 도 12를 참고하면, 클러스터에 대하여 점수화 하는 단계(S220)는 메신저와 대화 하는 상대 또는 대화 정보가 입력된 대화 그룹 특성에 따른 관련도를 도출하고(S226), 대화 상대 또는 대화 그룹 특성에 관한 관련도 점수를 클러스터에 대한 점수화 단계(S220)에 반영하는 것(S227)을 포함할 수 있다.
다음으로는 도 13을 참조하여 대화 상대 또는 대화 그룹 특성을 클러스터링 점수에 반영하는 것을 상세히 설명하도록 한다.
커피(271)라는 키워드가 대화 정보에 포함된 경우 <dessert>라는 속성이 부여될 수 있다. 이때, 사용자가 회사(272)라는 그룹에 포함된 user1과 대화 하는 경우 <dessert>라는 속성은 회사 근처 사용자가 자주 가는 A 커피 전문점의 주문 앱(274)을 추천해주는 것이 사용자에게 더 적합하다.
반면에, 사용자가 대학 동기(273) 그룹에 포함된 user 2나 user 3과 대화 하는 경우에는 동일한 커피(271)라는 키워드가 대화 정보에 포함되어 있다고 하더라도 추천하는 앱이 달라질 수 있다. 특히, 대학 동기(273)와 대화 하는 경우에는 모임의 특성 정보가 더 중요하게 작용할 수 있으므로, 회사 그룹(272)에 속한 대화 상대와는 다른 관련도 정보가 부여되어 모임 장소 근처의 커피 전문점 추천 앱(275)이 추천될 수 있다.
이처럼 텍스트 그 자체와 문맥뿐만 아니라 사용자의 사용 패턴, 개인 정보, 기기 정보 등을 고려하여 추천 앱을 다시 한 번 더 필터링할 수 있다. 또한 제공된 추천 앱에 대한 사용자의 반응을 다시 피드백으로 반영할 수 있다.
도 14는 컴퓨팅 장치가 사용자로부터 추천 앱 리스트로부터 선택 입력(S240) 받고 앱을 실행하는 단계(S250)를 상세히 나타낸 순서도이다.
도 14를 참고하면, 컴퓨팅 장치는 사용자가 선택한 앱에 대한 기본 딥링크 주소를 수집할 수 있다(S241). 그 후에, 컴퓨팅 장치는 속성(Entity) 정보와 속성(Entity) 정보에 관련된 카테고리 정보를 기반으로 전처리된 데이터의 좌표계에 해당하는 키워드를 수신하고(S242), 딥링크 생성에 있어서 GPS 좌표계 정보가 필요한지 판단하고(S253), GPS 좌표계 정보가 필요하다면, 사용자의 GPS 위치 정보를 수집한 뒤(S264), 딥링크를 생성하고(S245), 사용자의 GPS 위치 정보가 필요하지 않다면(S253), 수신한 키워드(S242)를 기반으로 딥링크를 생성할 수 있다(S245).
도 15는 앱 리스트와 딥링크가 메시지와 함께 사용자에게 제공되는 사용자 인터페이스(UI; User Interface)의 예시도이다.
도 11 내지 도 14의 단계를 통해 메시지를 분석하여 메시지와 관련된 앱을 검색하고, 상기 앱의 특정 서비스와 관련된 딥링크를 생성하여 메시지와 함께 제공하면 이를 수신한 사용자의 단말에서는 도 15와 같이 화면에 표시될 수 있다.
도 15를 참고하면 대화 상대방 설현이가 "러기지백 사고 싶어"라는 메시지를 보낸 것을 볼 수 있다. "러기지백"은 속성이 <product>이고 "사고 싶어"는 <shopping>로 추천 앱은 온라인으로 물건을 살 수 있는 앱들이 주로 검색될 것이다.
도 15를 참고하면 사용자에게 다섯개의 추천 앱이 제공된 것을 볼 수 있다. 그 중에서 인스타그램 앱(311), 네이버 앱(313), 지마켓 앱(317)의 경우에는 메시지를 수신한 사용자의 단말에 이미 설치된 앱들로 앱의 오른쪽 상단에 딥링크가 걸려있음을 "#" 표시로 안내할 수 있다. 반면에 망고스타일 앱(315), 신세계 앱(319)의 경우에는 아직 사용자의 단말에 설치되지 않은 앱들로 이 때에는 앱의 오른쪽 상단에 설치가 필요함을 ""의 다운로드 표시로 안내할 수 있다.
이를 통해 메시지를 수신한 사용자가 "Reply"를 통해 메시지에 바로 답장 메시지를 보낼 수도 있고, 또는 딥링크가 걸린 앱을 실행하여 설현이가 사고 싶어할 만한 러기지백을 선택하여 해당 상품의 페이지 링크를 메시지에 대한 응답으로 보낼 수 있다.
종래에는 설현이로부터 "러기지백 사고 싶어"라는 메시지를 수신하면 메시지 앱을 종료하고 쇼핑 앱을 실행하여 "러기지백"을 상품으로 검색하고, 그 중에서 특정 상품을 선택하여 주소를 복사하고, 다시 메시지 앱으로 돌아와서 상품 링크를 보내면서 "그럼 이거 어때?"와 같은 응답 메시지를 보냈다.
반면에, 본 발명의 일 실시예에 따른 메시지 기반 관련 앱 제공 방법을 이용하면, 설현이로부터 "러기지백 사고 싶어"라는 메시지를 수신하면 자동으로 그 하단에 상품을 쇼핑할 수 있는 앱들의 목록이 나열되고, 그 중에서 특정 앱을 사용자가 선택하면 자동으로 해당 앱에서 "러기지백"이 검색된 페이지로 이동하여 설현이가 사고 싶어할 만한 러기지백을 손쉽게 고를 수 있다.
또한 본 발명의 일 실시예에 다른 메시지 기반 관련 앱 제공 방법은 대화 내용과 연관이 있는 앱을 딥링크를 이용하여 제공하므로 설현이가 사고 싶어 할 만한 러기지백을 고른 후, 카카오톡이나 라인 같은 원래 메시지를 주고 받던 앱으로 다시 돌아와서 대화 내용을 손쉽게 이어갈 수 있다.
도 16은 본 발명의 일 실시예에 따른 텍스트가 아닌 메시지에 기반하여 관련 앱을 추천하는 방법의 예시도이다.
지금까지 도 1 내지 도 15를 통해서 살펴본 메시지 기반 관련 앱 제공 방법 및 장치는 주로 텍스트를 대상으로 관련 앱을 추천하는 것에 관한 발명이었다. 이 과정에서 자연어 처리의 개체명 인식(NER)과 앱의 특정 서비스를 바로 이용할 수 있는 딥링크(Deep Link)를 중점으로 발명을 설명하였다.
하지만 실제 카카오톡이나 라인 등의 메신저 앱을 살펴보면 텍스트 외에도 다양한 형식의 데이터들이 메시지로 오고 가는 것을 볼 수 있다. 예를 들면 이미지가 메시지로 온 경우에는 해당 이미지의 내용을 분석하여 관련된 앱을 제공할 수도 있을 것이다.
도 16을 참고하면, 상대방이 보낸 메시지에 포함된 그림의 내용을 분석하고 해당 그림의 내용과 어울릴 수 있는 음악을 관련 앱으로 추천하는 것을 볼 수 있다. 만약 그림의 내용이 경쾌하고 밝은 그림이라면 이를 수신한 사용자에게 경쾌하고 밝은 음악을 재생할 수 있는 앱을 관련 앱으로 사용자에게 추천할 수 있다.
이를 통해 단순히 텍스트 기반의 메시지뿐만 아니라 다양한 종류의 파일을 메시지로 주고 받을 때에도 그와 관련된 추천 앱을 사용자에게 제공하여 사용자의 편의성을 향상시킬 수 있다. 이과정에서 텍스트를 대상으로 하는 경우에는 자연어 처리 알고리즘이, 이미지를 대상으로 하는 경우에는 이미지 분석 알고리즘이 사용될 수 있다.
도 16의 예시에서는 이미지를 분석하여 음악을 제공하는 경우를 예로 들었으나 반드시 이에 한정되는 것은 아니다. 경우에 따라서는 음악을 포함하는 메시지를 분석할 수도 있다. 예를 들면 음악을 분석하여 노래인 경우, 노래의 가사에서 키워드를 추출하여 관련된 앱을 제공할 수 있다. 또는 텍스트를 포함한 이미지인 경우 광학 문자 인식(OCR; Optical Character Reader)를 통해 이미지에 포함된 텍스트를 분석하여 키워드를 추출할 수 있다.
즉 메시지에 멀티미디어가 포함된 경우 이미지 분석, 영상 분석, 소리 분석 등, 다양한 분석 알고리즘을 통해 멀티미디어를 분석하여, 멀티미디어와 관련된 키워드를 추가로 더 추출하고, 이를 이용하여 해당 메시지 및 해당 멀티미디어와 관련된 앱을 사용자에게 추천할 수 있다. 이를 이용하면 단순 텍스트뿐만 아니라 이모티콘, 이미지, 영상 등을 이용하는 메시지 사용자의 편의성을 더욱 높일 수 있다.
도 17은 본 발명의 일 실시예에 따른 메시지 기반 앱 제공 장치의 하드웨어 구성의 일 예를 나타내는 도면이다.
도 17을 참고하면 메시지 기반 앱 제공 장치(100)는 하나 이상의 프로세서(510), 메모리(520), 스토리지(560) 및 인터페이스(570)을 포함할 수 있다. 프로세서(510), 메모리(520), 스토리지(560) 및 인터페이스(570)는 시스템 버스(550)를 통하여 데이터를 송수신한다.
프로세서(510)는 메모리(520)에 로드 된 컴퓨터 프로그램을 실행하고, 메모리(520)는 상기 컴퓨터 프로그램을 스토리지(560)에서 로드(load) 한다. 상기 컴퓨터 프로그램은, 입력 데이터 처리 오퍼레이션(521), 앱 리스트 구성 오퍼레이션(523), 앱 리스트 개인화 오퍼레이션(535), 딥 링크 생성 오퍼레이션(527)을 포함할 수 있다.
입력 데이터 처리 오퍼레이션(521)은 네트워크(30)를 통해서 제1 디바이스(10)와 제2 디바이스(50) 사이에 오고 가는 메시지를 수신하여 스토리지(560)의 입력 데이터(561)로 저장할 수 있다. 입력 데이터 처리 오퍼레이션(521)은 이렇게 수집된 데이터를 자연어 처리를 통해 키워드를 추출하고 그 의미를 분석하여 속성을 태깅(tagging)한다.
앱 리스트 구성 오퍼레이션(523)은 속성이 태깅된 키워드로 앱 리스트 DB(567)를 조회하여 해당 키워드와 관련이 있는 앱의 후보군을 조회한다. 다음으로 앱 리스트 개인화 오퍼레이션(525)는 이렇게 조회된 후보군을 대상으로 개인화 정보(563)를 이용하여 보다 사용자에게 적절한 앱들만 선별하여 1차적인 필터링을 수행한다.
여기서 개인화 정보(563)는 사용자의 사용 패턴, 개인 정보, 기기 정보 등을 포함하는 정보 사전에 수집되어 스토리지(560)에 저장되어 있는 정보이다. 또한 개인화 정보(563)는 사용자에게 제공한 앱 리스트에 대한 사용자의 반응을 피드백으로 지속적으로 갱신될 수 있는 값이다.
사용자의 개인화 정보(563)를 바탕으로 1차 필터링 된 앱 리스트는 다시 랭킹 오퍼레이션(미도시)에 의해 노출 순서가 조정될 수 있다. 현재 메시지와의 관련도, 사용자의 개인화 정보(563)와의 관련도 등이 수치화 되어 이를 바탕으로 앱 리스트의 노출 순서를 조정할 수 있다.
딥링크 생성 오퍼레이션(527)은 앱 리스트에 포함된 각 앱에 대해 딥링크 DB(569)를 조회하여 해당 앱의 특정 서비스로 바로 접속할 수 있는 딥링크를 생성한다. 앞서 설명한 것처럼 모바일 어플리케이션의 딥링크는 각 어플리케이션 별로 접두어나 변수명 등이 상이하므로, 이를 데이터베이스화 한 딥링크 DB(569)를 참고하여 키워드를 파라미터로 전달할 수 있다.
이를 통해 메시지와 관련된 특정 앱, 나아가 특정 앱의 특정 서비스를 사용자에게 바로 제공하여 한번의 터치, 즉 한번의 사용자 입력만으로도 메시지를 수신한 사용자가 실행할 만한 앱을 제공하고 서비스를 제공할 수 있다. 특히 웨어러블 디바이스처럼 디스플레이가 작은 기기에서는 이러한 편의성 향상이 서비스에 대한 사용자의 만족도로 이어질 수 있다.
도 17의 각 구성 요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성 요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성 요소로 구현될 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (18)

  1. 앱 제공 장치가, 메시지를 제공 받는 단계;
    상기 앱 제공 장치가, 상기 메시지를 분석하여, 키워드를 추출하는 단계;
    상기 앱 제공 장치가, 상기 키워드를 이용하여, 상기 메시지와 관련된 복수의 앱(APP)을 결정하는 단계;
    상기 앱 제공 장치가, 상기 복수의 앱에 속한 각 앱을 통하여, 상기 키워드와 관련된 정보를 얻기 위한 딥링크(Deep Link)를 각 앱마다 생성하는 단계; 및
    상기 앱 제공 장치가, 상기 복수의 앱과 상기 복수의 앱에 속한 각 앱의 딥링크를 상기 메시지와 함께 상기 메시지의 수신자의 단말에 제공하는 단계를 포함하되,
    상기 딥링크는 상기 각 앱마다 서로 다른 접두어(prefix)를 가지며, 상기 키워드를 파라미터로 포함하는 것으로, 상기 각 앱마다 상기 키워드와 관련된 정보를 얻을 수 있는 특정 페이지로 바로 이동할 수 있는 주소인,
    메시지 기반 관련 앱 제공 방법.
  2. 제1항에 있어서,
    상기 메시지를 제공 받는 단계는,
    상기 메시지를 포함하는 메시지의 그룹을 제공 받는 단계를 포함하고,
    상기 키워드를 추출하는 단계는,
    상기 메시지의 그룹에 포함된 다른 메시지를 함께 분석하는 단계를 포함하는,
    메시지 기반 관련 앱 제공 방법.
  3. 제2항에 있어서,
    상기 메시지 그룹은,
    상기 메시지 이전에 작성된 다른 메시지를 더 포함하는 그룹인,
    메시지 기반 관련 앱 제공 방법.
  4. 제2항에 있어서,
    상기 메시지 그룹은,
    상기 메시지가 작성된 장소에서 일정 범위 이내의 장소에서 작성된 다른 메시지를 더 포함하는 그룹인,
    메시지 기반 관련 앱 제공 방법.
  5. 제2항에 있어서,
    상기 메시지 그룹은,
    상기 메시지를 작성한 송신자와 상기 수신자 사이에 주고 받은 다른 메시지를 더 포함하는 그룹인,
    메시지 기반 관련 앱 제공 방법.
  6. 제1항에 있어서,
    상기 메시지는,
    멀티미디어(multimedia)를 포함하는 메시지이고,
    상기 키워드를 추출하는 단계는,
    상기 메시지에 포함된 멀티미디어와 관련된 키워드를 더 추출하는 단계를 포함하는,
    메시지 기반 관련 앱 제공 방법.
  7. 제1항에 있어서,
    상기 키워드를 추출하는 단계는,
    상기 메시지에 대해 개체명 인식(NER; Named Entity Recognition)를 수행하여, 상기 키워드의 카테고리를 분류하는 단계를 포함하고,
    상기 메시지와 관련된 앱을 결정하는 단계는,
    상기 키워드의 카테고리를 더 이용하여, 상기 메시지와 관련된 앱을 결정하는 단계를 포함하는,
    메시지 기반 관련 앱 제공 방법.
  8. 제1항에 있어서,
    상기 메시지와 관련된 앱을 결정하는 단계는,
    상기 메시지의 키워드가 복수인 경우, 각 키워드 별로 앱을 결정하는 단계를 포함하는,
    메시지 기반 관련 앱 제공 방법.
  9. 제1항에 있어서,
    상기 메시지와 관련된 앱을 결정하는 단계는,
    상기 메시지를 작성한 송신자 또는 상기 수신자와 관련된 개인화 정보를 더 이용하여 상기 앱을 결정하는 단계를 포함하는,
    메시지 기반 관련 앱 제공 방법.
  10. 제9항에 있어서,
    상기 송신자와 개인화 관련된 정보는,
    상기 송신자의 개인 정보, 상기 송신자의 단말의 기기 정보, 상기 송신자의 앱 사용 패턴 중에 하나 이상을 포함하는,
    메시지 기반 관련 앱 제공 방법.
  11. 제9항에 있어서,
    상기 수신자와 개인화 관련된 정보는,
    상기 수신자의 개인 정보, 상기 수신자의 단말의 기기 정보, 상기 수신자의 앱 사용 패턴 중에 하나 이상을 포함하는,
    메시지 기반 관련 앱 제공 방법.
  12. 제1항에 있어서,
    상기 메시지와 관련된 앱을 결정하는 단계는,
    상기 앱과 상기 메시지와의 관련도를 연산하는 단계;
    상기 관련도를 이용하여, 상기 앱의 우선순위를 결정하고, 상기 우선순위에 따라 앱을 결정하는 단계를 포함하는,
    메시지 기반 관련 앱 제공 방법.
  13. 제1항에 있어서,
    상기 딥링크를 생성하는 단계는,
    상기 앱에 대해, 상기 수신자의 단말에 설치되어 있는지 여부를 판단하는 단계; 및
    설치되지 않은 앱의 경우에는 상기 설치되지 않은 앱을 설치할 수 있는 딥링크를 생성하는 단계를 포함하는,
    메시지 기반 관련 앱 제공 방법.
  14. 제1항에 있어서,
    상기 딥링크를 생성하는 단계는,
    상기 메시지를 작성한 송신자 또는 상기 수신자와 관련된 개인화 정보를 더 이용하여 상기 딥링크를 생성하는 단계를 포함하는,
    메시지 기반 관련 앱 제공 방법.
  15. 제1항에 있어서,
    상기 메시지의 수신자의 단말에 제공하는 단계는,
    상기 앱과 상기 메시지와의 관련도를 연산하는 단계;
    상기 관련도를 이용하여, 상기 앱의 우선순위를 결정하고, 상기 우선순위에 따라 앱을 정렬하는 단계를 포함하는,
    메시지 기반 관련 앱 제공 방법.
  16. 제1항에 있어서,
    상기 메시지의 수신자의 단말에 제공하는 단계는,
    상기 앱을 유사도에 따라 클러스터로 구분하는 단계; 및
    상기 클러스터 별로 상기 앱을 상기 메시지의 수신자의 단말에 제공하는 단계를 포함하는,
    메시지 기반 관련 앱 제공 방법.
  17. 제1항에 있어서,
    상기 메시지의 수신자의 단말에 제공하는 단계는,
    상기 앱의 이름과 상기 딥링크를 상기 메시지에 텍스트의 형태로 병합하여, 상기 병합된 메시지를 제공하는 단계를 포함하는,
    메시지 기반 관련 앱 제공 방법.
  18. 네트워크 인터페이스;
    하나 이상의 프로세서;
    상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드하는 메모리; 및
    특정 키워드와 관련된 앱을 매칭하여 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    메시지를 분석하여, 키워드를 추출하는 오퍼레이션;
    상기 키워드를 이용하여, 상기 메시지와 관련된 복수의 앱을 검색하는 오퍼레이션;
    상기 복수의 앱에 속한 각 앱을 통하여, 상기 키워드와 관련된 정보를 얻기 위한 딥링크(Deep Link)를 각 앱마다 생성하는 오퍼레이션; 및
    상기 복수의 앱과 상기 복수의 앱에 속한 각 앱의 딥링크를 상기 메시지와 함께 상기 메시지의 수신자의 단말에 제공하는 오퍼레이션을 포함하되,
    상기 딥링크는 상기 각 앱마다 서로 다른 접두어(prefix)를 가지며, 상기 키워드를 파라미터로 포함하는 것으로, 상기 각 앱마다 상기 키워드와 관련된 정보를 얻을 수 있는 특정 페이지로 바로 이동할 수 있는 주소인,
    메시지 기반 관련 앱 제공 장치.
KR1020160068983A 2016-06-02 2016-06-02 메시지 기반 관련 앱 제공 방법 및 그 장치 KR101742138B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160068983A KR101742138B1 (ko) 2016-06-02 2016-06-02 메시지 기반 관련 앱 제공 방법 및 그 장치
US16/306,791 US10984192B2 (en) 2016-06-02 2017-06-02 Application list providing method and device therefor
PCT/KR2017/005791 WO2017209564A1 (ko) 2016-06-02 2017-06-02 앱 리스트 제공 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160068983A KR101742138B1 (ko) 2016-06-02 2016-06-02 메시지 기반 관련 앱 제공 방법 및 그 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020170064614A Division KR101756738B1 (ko) 2017-05-25 2017-05-25 메시지 기반 관련 앱 제공 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR101742138B1 true KR101742138B1 (ko) 2017-05-31

Family

ID=59052349

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160068983A KR101742138B1 (ko) 2016-06-02 2016-06-02 메시지 기반 관련 앱 제공 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR101742138B1 (ko)

Similar Documents

Publication Publication Date Title
US11303590B2 (en) Suggested responses based on message stickers
US10853582B2 (en) Conversational agent
US20230306052A1 (en) Method and system for entity extraction and disambiguation
US10728203B2 (en) Method and system for classifying a question
US10992609B2 (en) Text-messaging based concierge services
US20190121850A1 (en) Computerized system and method for automatically transforming and providing domain specific chatbot responses
US10984192B2 (en) Application list providing method and device therefor
US20170097984A1 (en) Method and system for generating a knowledge representation
US20180349387A1 (en) Computerized system and method for search query auto-completion
CN112840335A (zh) 用于浏览器的以用户为中心的上下文信息
CN107636648A (zh) 基于情绪标识来构造响应
CN112889043A (zh) 以用户为中心的浏览器位置
US11232522B2 (en) Methods, systems and techniques for blending online content from multiple disparate content sources including a personal content source or a semi-personal content source
US20190332605A1 (en) Methods, systems and techniques for ranking blended content retrieved from multiple disparate content sources
KR20170037593A (ko) 답변 추천 장치 및 방법
TW202301081A (zh) 輔助系統之基於真實世界文字偵測的任務執行
KR101720972B1 (ko) 답변 추천 장치 및 방법
KR101756738B1 (ko) 메시지 기반 관련 앱 제공 방법 및 그 장치
Kim et al. Rating and comments mining using TF-IDF and SO-PMI for improved priority ratings
KR101742138B1 (ko) 메시지 기반 관련 앱 제공 방법 및 그 장치
JP5657259B2 (ja) 情報処理装置、通信端末、興味情報提供方法および興味情報提供プログラム
JP2015038781A (ja) 情報処理装置、興味情報提供方法および興味情報提供プログラム
KR101726845B1 (ko) 자료 제공 장치, 방법, 및 컴퓨터 프로그램
KR20160107101A (ko) 전자 장치 및 전자 장치에서 컨텐츠 필터링 방법 및 시스템
KR20170047966A (ko) 인문학 정보를 자동으로 구성하는 방법

Legal Events

Date Code Title Description
GRNT Written decision to grant