KR102355152B1 - 콘텐트 검색을 위한 방법 및 그 전자 장치 - Google Patents

콘텐트 검색을 위한 방법 및 그 전자 장치 Download PDF

Info

Publication number
KR102355152B1
KR102355152B1 KR1020170176739A KR20170176739A KR102355152B1 KR 102355152 B1 KR102355152 B1 KR 102355152B1 KR 1020170176739 A KR1020170176739 A KR 1020170176739A KR 20170176739 A KR20170176739 A KR 20170176739A KR 102355152 B1 KR102355152 B1 KR 102355152B1
Authority
KR
South Korea
Prior art keywords
content
electronic device
information
text
contents
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020170176739A
Other languages
English (en)
Other versions
KR20190075277A (ko
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 KR1020170176739A priority Critical patent/KR102355152B1/ko
Priority to PCT/KR2018/016481 priority patent/WO2019125054A1/en
Priority to CN201880083350.5A priority patent/CN111512299A/zh
Priority to US16/230,311 priority patent/US10902209B2/en
Priority to EP18892875.8A priority patent/EP3685279A4/en
Publication of KR20190075277A publication Critical patent/KR20190075277A/ko
Application granted granted Critical
Publication of KR102355152B1 publication Critical patent/KR102355152B1/ko
Assigned to 주식회사 라스커 reassignment 주식회사 라스커 권리의 전부이전등록 Assignors: 삼성전자주식회사
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 개시는 딥러닝 등의 기계 학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 인공지능(Artificial Intelligence, AI) 시스템 및 그 응용에 관련된 것이다. 다양한 실시 예들에 따르면, 컨텐트를 검색하는 서버의 동작 방법은, 전자 장치로부터 텍스트를 수신하는 과정과, 상기 텍스트에 포함된 단어들의 의미에 대응하는 수치 값(numerical vector)들로부터 상기 텍스트에 대응하는 하나의 지표 값(metric value)을 결정하는 과정과, 상기 지표 값 및 다수의 콘텐트들의 지표 값들에 기반하여, 상기 텍스트에 대응하는 하나의 콘텐트를 선택하는 과정과, 상기 콘텐트에 관련된 정보를 상기 전자 장치로 송신하는 과정을 포함할 수 있다.

Description

콘텐트 검색을 위한 방법 및 그 전자 장치{METHOD FOR SEARCHING CONTENT AND ELECTRONIC DEVICE THEREOF}
본 개시(disclosure)는 일반적으로 전자 장치에 대한 것으로, 보다 구체적으로 콘텐트 검색을 위한 방법 및 그 전자 장치에 관한 것이다.
인공지능(Artificial Intelligence, AI) 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이며, 기존 Rule 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 Rule 기반 스마트 시스템은 점차 딥러닝 기반 인공지능 시스템으로 대체되고 있다.
인공지능 기술은 기계학습(딥러닝) 및 기계학습을 활용한 요소 기술들로 구성된다.
기계학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소기술은 딥러닝 등의 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.
인공지능 기술이 응용되는 다양한 분야는 다음과 같다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리, 기계 번역, 대화시스템, 질의 응답, 음성 인식/합성 등을 포함한다. 시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 객체 인식, 객체 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다. 추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다. 지식 표현은 인간의 경험정보를 지식데이터로 자동화 처리하는 기술로서, 지식 구축(데이터 생성/분류), 지식 관리(데이터 활용) 등을 포함한다. 동작 제어는 차량의 자율 주행, 로봇의 움직임을 제어하는 기술로서, 움직임 제어(항법, 충돌, 주행), 조작 제어(행동 제어) 등을 포함한다.
또한, 최근 사용자들의 콘텐트에 대한 소비 패턴이 다양해지고 있다. 이미지, 비디오, 오디오와 같은 미디어들을 독립적인 콘텐트로서 소비하는 것에서 나아가, 다른 유형의 콘텐트들과 연계된 소비 패턴이 종종 보여진다. 따라서, 다양한 콘텐트 소비 패턴에 적합한 콘텐트 검색 기술이 요구된다.
상술한 바와 같은 논의를 바탕으로, 본 개시(disclosure)는, 콘텐트를 효율적으로 검색하기 위한 방법 및 그 전자 장치를 제공한다.
또한, 본 개시는, 메시지의 문맥(context) 및 감정 상태와 매칭(matching)되는 콘텐트를 검색하기 위한 방법 및 그 전자 장치를 제공한다.
또한, 본 개시는, 매칭 동작을 위해 메시지 및 콘텐트들의 지표 값들을 결정하기 위한 방법 및 그 전자 장치를 제공한다.
또한, 본 개시는, 결합된 뉴럴 모델(combined neural model)을 트레이닝(training)하기 위한 방법 및 그 전자 장치를 제공한다.
본 개시의 다양한 실시 예들에 따르면, 컨텐트를 검색하는 서버의 동작 방법은, 전자 장치로부터 텍스트를 수신하는 과정과, 상기 텍스트에 포함된 단어들의 의미에 대응하는 수치 값(numerical vector)들로부터 상기 텍스트에 대응하는 하나의 지표 값(metric value)을 결정하는 과정과, 상기 지표 값 및 다수의 콘텐트들의 지표 값들에 기반하여, 상기 텍스트에 대응하는 하나의 콘텐트를 선택하는 과정과, 상기 콘텐트에 관련된 정보를 상기 전자 장치로 송신하는 과정을 포함할 수 있다.
본 개시의 다양한 실시 예들에 따르면, 전자 장치의 동작 방법은, 사용자의 입력에 의해 특정된 텍스트에 대한 정보를 서버로 송신하는 과정과, 상기 서버로부터 상기 텍스트에 포함된 단어들의 의미에 대응하는 수치 값(numerical vector)들로부터 결정된 하나의 지표 값(metric value)에 기반하여 검색된 상기 텍스트에 대응하는 적어도 하나의 콘텐트에 관련된 정보를 수신하는 과정과, 상기 적어도 하나의 콘텐트를 표시하는 과정을 포함할 수 있다.
본 개시의 다양한 실시 예들에 따르면, 컨텐트를 검색하는 서버 장치는, 신호를 송신 및 수신하는 송수신부와, 상기 송수신부와 연결된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 전자 장치로부터 텍스트를 수신하고, 상기 텍스트에 포함된 단어들의 의미에 대응하는 수치 값(numerical vector)들로부터 상기 텍스트에 대응하는 하나의 지표 값(metric value)을 결정하고, 상기 지표 값 및 다수의 콘텐트들의 지표 값들에 기반하여, 상기 텍스트에 대응하는 하나의 콘텐트를 선택하고, 상기 콘텐트에 관련된 정보를 상기 전자 장치로 송신하도록 제어하는 서버 장치.
본 개시의 다양한 실시 예들에 따르면, 전자 장치는, 신호를 송신 및 수신하는 송수신부와, 화면을 표시하는 표시부와, 상기 송수신부 및 상기 표시부와 연결된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 사용자의 입력에 의해 특정된 텍스트에 대한 정보를 서버로 송신하고, 상기 서버로부터 상기 텍스트에 포함된 단어들의 의미에 대응하는 수치 값(numerical vector)들로부터 결정된 하나의 지표 값(metric value)에 기반하여 검색된 상기 텍스트에 대응하는 적어도 하나의 콘텐트에 관련된 정보를 수신하고, 상기 적어도 하나의 콘텐트를 표시하도록 제어하는 전자 장치.
본 개시의 다양한 실시 예들에 따른 방법 및 그 전자 장치는, 콘텐트를 효율적으로 검색 및 제공할 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 다양한 실시 예들에 따른 검색 시스템을 도시한다.
도 2는 본 개시의 다양한 실시 예들에 따른 전자 장치의 구성을 도시한다.
도 3은 본 개시의 다양한 실시 예들에 따른 서버의 구성을 도시한다.
도 4는 본 개시의 다양한 실시 예들에 따른 콘텐트 검색의 흐름도를 도시한다.
도 5a는 본 개시의 다양한 실시 예들에 따라 지표 값을 결정하기 위한 흐름도를 도시한다.
도 5b는 본 개시의 다양한 실시 예들에 따른 다양한 유형의 콘텐트들의 지표 값(metric value)들의 생성의 예를 도시한다.
도 6a는 본 개시의 다양한 실시 예들에 따라 그룹화된 콘텐트들을 검색하기 위한 동작 방법을 도시한다.
도 6b는 본 개시의 다양한 실시 예들에 따른 콘텐트들의 그룹화 및 검색의 예를 도시한다.
도 7은 본 개시의 다양한 실시 예들에 따른 결합된 뉴럴 모델(combined neural model)에 대한 트레이닝(training) 절차를 도시한다.
도 8는 본 개시의 다양한 실시 예들에 따른 전자 장치에서 콘텐트를 제공하기 위한 흐름도를 도시한다.
도 9a는 본 개시의 다양한 실시 예들에 따른 전자 장치에서 송신되는 메시지에 대응하는 콘텐트를 제공하기 위한 흐름도를 도시한다.
도 9a 내지 도 9e는 본 개시의 다양한 실시 예들에 따라 송신되는 메시지에 대응하는 콘텐트를 제공하는 전자 장치에 표시되는 화면들의 예를 도시한다.
도 10a는 본 개시의 다양한 실시 예들에 따른 전자 장치에서 수신되는 메시지에 대응하는 콘텐트를 제공하기 위한 흐름도를 도시한다.
도 10a 내지 도 10e는 본 개시의 다양한 실시 예들에 따라 수신되는 메시지에 대응하는 콘텐트를 제공하는 전자 장치에 표시되는 화면들의 예를 도시한다.
도 11은 본 개시의 다양한 실시 예들에 따른 서버에서 부가 정보에 기반하여 콘텐트를 검색 및 가공하기 위한 흐름도를 도시한다.
본 개시에서 사용되는 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 개시에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 개시에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 개시에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 개시에서 정의된 용어일지라도 본 개시의 실시 예들을 배제하도록 해석될 수 없다.
이하에서 설명되는 본 개시의 다양한 실시 예들에서는 하드웨어적인 접근 방법을 예시로서 설명한다. 하지만, 본 개시의 다양한 실시 예들에서는 하드웨어와 소프트웨어를 모두 사용하는 기술을 포함하고 있으므로, 본 개시의 다양한 실시 예들이 소프트웨어 기반의 접근 방법을 제외하는 것은 아니다.
이하 본 개시는 콘텐트를 효율적으로 검색 및 제공하기 위한 방법 및 그 전자 장치에 관한 것이다. 구체적으로, 본 개시는 전자 장치에서 실행되는 어플리케이션을 통해 이루어지는 대화의 상황에 맞는 콘텐트를 검색 및 제공하기 위한 기술을 설명한다.
이하 설명에서 사용되는 다양한 측정값을 지칭하는 용어(예: 지표 값(meric value), 리프레젠테이션(representation)), 데이터 연산/분석 알고리즘을 지칭하는 용어, 장치를 지칭하는 용어, 장치의 구성 요소를 지칭하는 용어 등은 설명의 편의를 위해 예시된 것이다. 따라서, 본 개시가 후술되는 용어들에 한정되는 것은 아니며, 동등한 기술적 의미를 가지는 다른 용어가 사용될 수 있다.
도 1은 본 개시의 다양한 실시 예들에 따른 검색 시스템을 도시한다. 도 1에 예시되 시스템은, 문맥-중심 미디어 검색(context-sensitive media search, CSMS) 시스템으로 지칭될 수 있다.
도 1을 참고하면, 시스템은 전자 장치 110, 서버 120, 네트워크 130을 포함한다.
전자 장치 110은 사용자에 의해 사용되는 컴퓨팅 또는 처리 장치이다. 전자 장치 110는 네트워크 130을 통해 서버 120와 상호 작용할 수 있다. 예를 들어, 전자 장치 110은 휴대 전화, 스마트 폰, PDA(personal digital assistant), 랩탑 컴퓨터, 태블릿 컴퓨터, 데스크탑 컴퓨터 중 하나로 구현될 수 있다. 일 실시 예에 따라, 전자 장치 110은 사용자 간의 대화를 지원하는 적어도 하나의 어플리케이션을 실행할 수 있다. 사용자 간의 대화는 SMS(short message service), 이메일, 소셜 미디어(social media) 및 토론 게시판 등을 포함한 임의의 메시징 시스템 상에서 이루어질 수 있다. 대화를 지원하는 적어도 하나의 어플리케이션을 실행 중, 전자 장치 110는 메시지를 대체하거나 보충할 콘텐트를 검색할 수 있다. 다시 말해, 전자 장치 110은 사용자의 결정을 기반으로 메시지의 문맥 및 감정 상태와 매칭되는 멀티미디어 검색 여부를 결정하고, 검색하기 위한 동작들을 수행할 수 있다. 예를 들어, 전자 장치 110은 네트워크 130을 통해 송수신된 대화 메시지를 서버 120에 송신하고, 콘텐트를 요청할 수 있고, 서버 120로부터 콘텐트를 수신할 수 있다. 서버 120로부터 수신된 콘텐트는 대화 메시지를 대체하거나 보충하도록, 전자 장치 110 상에 표시될 수 있다.
서버 120은 전자 장치 110의 요청에 따라 콘텐트를 검색 및 제공하는 컴퓨팅 또는 처리 장치이다. 서버 120은 네트워크 130을 통해 인터넷에 접속할 수 있고, 인터넷을 통해 콘텐트를 위한 데이터베이스를 주기적으로 업데이트할 수 있다. 이를 통해, 서버 120은 다양한 콘텐트를 제공할 수 있다. 서버 120은 클라우드 솔루션(cloud solution)으로 구현될 수 있다. 일 실시 예에 따라, 서버 120은 전자 장치 110에게 대화 메시지의 문맥(context) 및 감정 상태와 매칭(matching)되는 다양한 유형(type)의 콘텐트들을 제공할 수 있다. 예를 들어, 서버 120은 전자 장치 110으로부터 송신된 메시지를 분석하고, 분석 결과를 기반으로 메시지의 문맥 및 감정 상태와 매칭되는 콘텐트를 검색 및 선택한다. 이 경우, 서버 120은 다수의 콘텐트들을 제시할 수 있으며, 사용자의 선택을 기반으로 콘텐트를 선택할 수 있다. 서버 120은 선택된 콘텐트를 전자 장치 110으로 송신한다.
네트워크 130은 서버 120와 전자 장치 110 간의 통신을 위해 사용된다. 네트워크 130은 무선 망, 유선 망 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 네트워크 130은 인터넷 프로토콜(internet protocol, IP) 패킷들, 프레임 릴레이 프레임들(frame relay frames), 비동기 전송 모드(asynchronous transfer mode, ATM) 셀들 또는 네트워크 주소 사이의 다른 정보를 통신할 수 있다. 네트워크 130은 적어도 하나의 로컬 영역 네트워크들(local area networks, LANs), 도시권 통신망들(metropolitan area networks, MANs), 광역 네트워크들(wide area networks, WANs), 인터넷과 같은 글로벌 네트워크의 전부 또는 일부, 또는 적어도 하나의 위치들에서의 임의의 다른 통신 시스템 또는 시스템들을 포함할 수 있다.
도 1에 도시되지 아니하였으나, 다양한 실시 예들에 따른 시스템은 전자 장치 110의 사용자에 대한 정보를 관리하는 관리 서버를 더 포함할 수 있다. 관리 서버는 사용자의 가입자 정보를 관리하며, 구체적으로, 서비스 등급에 대한 정보를 저장할 수 있다. 이 경우, 서버 120는 컨텐트를 검색하기 위해 관리 서버로부터 사용자에 대한 정보를 획득하고, 사용자에 대한 정보에 기반하여 컨텐트를 검색할 수 있다.
도 1은 문맥에 맞는 미디어 검색 시스템의 일 예를 도시하지만, 다양한 변경이 도 1에 대해 이루어질 수 있다. 예를 들어, 시스템은 임의의 적절한 구성(arrangement)으로 임의의 수의 각 구성 요소를 포함할 수 있다. 일반적으로, 컴퓨팅 및 통신 시스템들은 다양한 구성들을 가지며, 도 1은 본 개시의 범위를 임의의 특정 구성으로 제한하지 않는다. 도 1은 본 특허 문헌에 개시된 다양한 특징들이 사용될 수 있는 하나의 동작 환경을 도시하지만, 이들 특징들은 임의의 다른 적합한 시스템에서 사용될 수 있다.
인간의 눈은 짧은 시간 내에 크고 압축된 정보를 전달할 수 있다. 따라서, 기록된 메시지 텍스트들을 다른 유형의 콘텐트들(예: 이미지, 비디오, 오디오)로 대체하거나 보충하여 사용자가 자신의 요점을 전달하는 추세가 늘어나고 있다. 이에, 본 개시는 기록된 메시지에 매칭(matching)되는 콘텐트를 찾기 위한 콘텐트 검색 서비스를 제안한다. 다양한 실시 예들은 사용자 검색을 기반으로 콘텐트 검색 순위를 매길 수 있으며, 특정 도메인(domain)의 콘텐트 검색을 용이하게 하기 위해 멀티미디어 요약(summary) 데이터 베이스를 준비할 수 있다.
도 2는 본 개시의 다양한 실시 예들에 따른 전자 장치의 구성을 도시한다. 도 2에 예시된 구성은 전자 장치 110의 구성으로서 이해될 수 있다. 이하 사용되는 '…부', '…기' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 2를 참고하면, 전자 장치는 통신부 210, 저장부 220, 디스플레이 230, 입력부 240, 마이크 250, 스피커 260 및 프로세서 270을 포함한다. 단, 다른 실시 예에 따라, 도 2에 도시된 구성요소들 중 적어도 일부가 생략될 수 있다.
통신부 210은 다른 시스템들 또는 장치들과의 통신을 위한 인터페이스를 제공한다. 예를 들어, 통신부 210은 외부 망(예: 네트워크 130)을 통한 통신을 가능하게 하는 네트워크 인터페이스 카드 또는 무선 송수신부를 포함할 수 있다. 예를 들어, 통신부 210는 무선 망에 접속하기 위한 신호 처리를 수행할 수 있다. 예를 들어, 무선 망은 무선랜, 셀룰러 망(예: LTE(long term evolution)) 중 적어도 하나를 포함할 수 있다. 통신부 210는 '송신부', '수신부' 또는 '송수신부'로 지칭될 수 있다.
저장부 220은 전자 장치의 동작을 위한 기본 프로그램, 응용 프로그램, 설정 정보 등의 데이터를 저장할 수 있다. 저장부 220은 휘발성 메모리, 비휘발성 메모리 또는 휘발성 메모리와 비휘발성 메모리의 조합으로 구성될 수 있다. 그리고 저장부 220은 프로세서 270의 요청에 따라 저장된 데이터를 제공할 수 있다. 저장부 220은 운영체제(operating system, OS) 프로그램 222 및 적어도 하나의 어플리케이션들(applications) 224를 저장할 수 있다.
디스플레이 230은 숫자, 문자, 이미지, 그래픽 등의 형태로 정보를 출력하기 위한 기능들을 수행한다. 이를 위해, 디스플레이 230은 출력을 위한 적어도 하나의 하드웨어 모듈을 포함할 수 있다. 예를 들어, 하드웨어 모듈은 LCD(liquid crystal display), LED(Light Emitting Diode), LPD(light emitting polymer display), OLED(Organic Light Emitting Diode), AMOLED(Active Matrix Organic Light Emitting Diode), FLED(Flexible LED) 중 적어도 하나를 포함할 수 있다. 즉, 디스플레이 230은 프로세서 270로부터 수신되는 데이터에 대응하는 화면을 표시할 수 있다. 디스플레이 230은 '출력부', '표시부' 또는 이와 동등한 기술적 의미를 가지는 다른 용어로 지칭될 수 있다.
입력부 240은 외부(예: 사용자)로부터의 입력을 검출하고, 입력에 대응하는 데이터를 프로세서 270로 제공한다. 이를 위해, 입력부 240은 입력을 검출하기 위한 적어도 하나의 하드웨어 모듈을 포함할 수 있다. 예를 들어, 하드웨어 모듈은 센서, 키보드, 키패드, 터치패드, 터치패널 중 적어도 하나를 포함할 수 있다. 일 실시 예에 따라, 입력부 240가 터치패널로 구현되는 경우, 입력부 240는 디스플레이 230와 결합됨으로써 터치스크린이 제공될 수 있다. 이 경우, 입력부 240는 사용자의 터치 입력(예: 탭(tap), 프레스(press), 핀치(pinch), 스트레치(strech), 슬라이드(slide), 스와이프(swipe), 로테이트(rotate) 등)에 대한 데이터를 프로세서 270로 제공할 수 있다.
마이크 250은 압전소자 등의 회로를 포함할 수 있고, 마이크 250에 입력되는 음성에 의한 진동판의 떨림을 이용하여 오디오 신호를 발생한다. 마이크 250은 사용자에 의해 입력되는 음성을 수신할 수 있다. 마이크 250는 입력부 240의 일부 구성으로 이해될 수 있다. 스피커 260은 진동판의 떨림을 이용하여 오디오 신호를 진동으로 바꿔 공기 중에 방사할 수 있다. 스피커 260은 사용자에 의해 수신된 입력 메시지에 대응하는 응답을 아날로그 형태로 출력할 수 있다.
프로세서 270은 전자 장치의 전반적인 동작들 제어한다. 예를 들어, 프로세서 270은 통신부 210을 통해 신호를 송신 및 수신한다. 또한, 프로세서 270은 저장부 320에 데이터를 기록하고, 읽으며, 저장부 320에 저장된 명령어들을 실행한다. 또한, 프로세서 270는 디스플레이 330을 통해 다양한 화면을 표시할 수 있으며, 스피커 360을 통해 오디오 신호를 출력할 수 있다. 또한, 프로세서 270는 입력부 340 및 마이크 350을 통해 입력되는 데이터를 처리하고, 필요에 따라 입력부 340 및 마이크 350의 동작 상태를 제어할 수 있다. 프로세서 270는 하나 또는 다수의 프로세서들을 포함할 수 있다. 예를 들어, 프로세서 270은 마이크로프로세서들(microprocessors), 마이크로컨트롤러들(microcontrollers), 디지털 신호 프로세서들, 현장 프로그래머블 게이트 어레이들(field programmable gate arrays, FPGAs), 주문형 반도체들 및 디스크리트 회로(discrete circuitry) 중 적어도 하나로 구현될 수 있다.
프로세서 270은 저장부 220에 저장된 어플리케이션들 224를 실행할 수 있다. 어플리케이션들 224는 사용자 간 대화를 지원하는 어플리케이션(이하 '대화 어플리케이션')을 포함할 수 있다. 일 실시 예에 따라, 프로세서 270는 대화 어플리케이션이 수행 중 대화의 문맥에 기반하여 콘텐트를 제공하는 기능을 수행하는 콘텐트 제공 모듈 272를 포함할 수 있다. 콘텐트 제공 모듈 272은 'CSMS(context-sensitive media search) 모듈'로 지칭될 수 있다. 여기서, 콘텐트 제공 모듈 272은 저장부 220에 저장된 명령어 집합 또는 코드로서, 적어도 일시적으로 프로세서 270에 상주된(resided) 명령어/코드 또는 명령어/코드를 저장한 저장 공간이거나, 또는, 프로세서 270을 구성하는 회로(circuitry)의 일부일 수 있다.
도 3은 본 개시의 다양한 실시 예들에 따른 서버의 구성을 도시한다. 도 2에 예시된 구성은 서버 120의 구성으로서 이해될 수 있다. 이하 사용되는 '…부', '…기' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 3을 참고하면, 서버는 저장부 320, 통신부 310, 프로세서 330을 포함한다.
통신부 310은 다른 시스템들 또는 장치들과의 통신을 위한 인터페이스를 제공한다. 예를 들어, 통신부 310은 외부 망(예: 네트워크 130)을 통한 통신을 가능하게 하는 네트워크 인터페이스 카드 또는 무선 송수신부를 포함할 수 있다. 통신부 310은 임의의 적절한 물리적 또는 무선 통신 링크(들)을 통해 통신을 지원할 것이다. 통신부 310는 '송신부', '수신부' 또는 '송수신부'로 지칭될 수 있다.
저장부 320은 서버의 동작을 위한 기본 프로그램, 응용 프로그램, 설정 정보 등의 데이터를 저장한다. 저장부 320은 휘발성 메모리, 비휘발성 메모리 또는 휘발성 메모리와 비휘발성 메모리의 조합으로 구성될 수 있다. 그리고, 저장부 320은 프로세서 330의 요청에 따라 저장된 데이터를 제공한다.
프로세서 330은 서버의 전반적인 동작들 제어한다. 예를 들어, 프로세서 330은 통신부 310을 통해 신호를 송신 및 수신한다. 또한, 프로세서 330은 저장부 320에 데이터를 기록하고, 읽으며, 저장부 320에 저장된 명령어들을 실행한다. 프로세서 330는 하나 또는 다수의 프로세서들을 포함할 수 있다. 예를 들어, 프로세서 330은 마이크로프로세서들, 마이크로컨트롤러들, 디지털 신호 프로세서들, FPGA들, 주문형 반도체들 및 디스크리트 회로 중 적어도 하나로 구현될 수 있다.
다양한 실시 예들에 따라, 프로세서 330은 결합된 뉴럴 모델(combined neural model) 332을 포함한다. 결합된 뉴럴 모델 311은 상이한 유형의 뉴럴 네트워크(neural network)들의 결합으로 구성될 수 있다. 적어도 하나의 뉴럴 네트워크들은 콘텐트가 메시지를 대체하거나 보충해야 하는지 결정한다. 또한, 상이한 유형의 뉴럴 네트워크들은 동일 벡터 공간상에 나타낼 수 있는 다양한 유형의 멀티미디어의 지표 값들을 계산할 수 있다. 여기서, 결합된 뉴럴 모델 332는 저장부 320에 저장된 명령어 집합 또는 코드로서, 적어도 일시적으로 프로세서 330에 상주된(resided) 명령어/코드 또는 명령어/코드를 저장한 저장 공간이거나, 또는, 프로세서 320을 구성하는 회로(circuitry)의 일부일 수 있다.
다양한 실시 예들에 따라 제공되는 콘텐트 검색 기술은 딥러닝(deep learning) 등의 기계 학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 인공지능(artificial intelligence, AI) 시스템 및 그 응용에 기반할 수 있다. 다양한 실시 예들은 문맥 중심(context-sensitive)의 콘텐트 검색 수단(tool), 특히, 전자 통신을 통한 콘텐트 제안(contents suggestions)을 제공하고자 한다. 제안되는 다양한 실시 예들은 사용자가 미디어 아이템을 이용하여 메시지를 보충(complement)하기를 원하는 모든 유형의 대화에서 활용될 수 있다. 이를 통해, 매우 효과적인(powerful), 다시 말해, 동시에 짧고(short), 풍부한(expressive) 메시지의 생성에 의한 풍요로운(enrich) 대화가 가능해질 것이다.
검색을 위한 현존하는 시스템은 사용자에게, 검색을 개시하고(initiate), 키워드를 입력할 것을 요구한다. 그러나, 다양한 실시 예들에 따른 검색 시스템은, 별도의 검색을 사용자에게 강제함 없이, 백그라운드에서 조용히(quietly) 대화를 분석하고, 대화에 추가 가능한 관련된 미디어 콘텐트를 제안할 수 있다.
다른 검색 시스템과 달리, 다양한 실시 예들에 따른 검색 시스템은 수동적인(passive) 미디어 소비 보다는 상호적인(interactive) 목적에 부합할 수 있다. 서로 다른 사용자들 간 대화는 그들의 감성적 상태(emotional state)의 측면에서 다양하다. 그러므로, 다양한 실시 예들에 따른 검색 시스템은, 미디어 문맥 적응성(media context-applicable)을 가지도록, 일반적인 사용자 선호도(user preferences)에만 기반하지 아니하고 대화의 텍스트에 기반한 미디어 콘텐트를 제시한다. 다양한 실시 예들에 따른 검색 시스템은 사용자의 감정 상태를 분석할 수 있고, 이에 따라 반응(react)할 수 있다. 또한, 다양한 실시 예들에 따라, 빈번하게 업데이트되는 데이터베이스(frequently-updated database)를 이용하여, 검색 시스템은 사용자에게 상황에 맞춘(tailored to the occasion) 신선하고(fresh), 새로운(new) 콘텐트를 제공할 수 있다.
도 4는 본 개시의 다양한 실시 예들에 따른 콘텐트 검색의 흐름도를 도시한다. 도 4는 서버 120와 전자 장치 110 간의 신호 교환을 예시한다.
도 4를 참고하면, 401 단계에서, 서버 106은 콘텐트 데이터베이스를 업데이트한다. 서버 120은 인터넷을 통해 접속 가능한 다양한 웹사이트들을 이용하여 데이터베이스를 업데이트할 수 있다. 일 실시 예에 따라, 데이터베이스의 업데이트는 주기적으로 수행될 수 있다. 이를 통해, 서버 120은 새로운 콘텐트를 지속적으로 제공할 수 있다. 또한, 서버 106는 업데이트된 콘텐트에 대한 지표 값을 결정할 수 있다. 지표 값은 메시지와 콘텐트의 비교를 위해 정규화된 정보로서, 뉴럴 네트워크를 이용하여 결정될 수 있다.
403 단계에서, 전자 장치 110은 텍스트를 확인한다. 예를 들어, 전자 장치 110은 사용자에 의해 타이핑되는 메시지 내의 텍스트를 확인할 수 있다. 다른 예로, 전자 장치 110은 대화 상대방으로부터 수신되는 메시지 내의 텍스트를 확인할 수 있다.
405 단계에서, 전자 장치 110은 서버 120로 텍스트를 송신하고, 콘텐트를 요청한다. 예를 들어, 전자 장치 110의 클라이언트 SMS/메시징 어플리케이션들은 처리를 담당하는 서버 120에 텍스트를 송신한다. 즉, 전자 장치 110은 서버 120에 텍스트의 문맥(context), 의미(meaning) 및 감정(emotion) 상태와 매칭되는 콘텐트 검색을 요청할 수 있다. 다시 말해, 전자 장치 110은 송수신되는 메시지 내의 텍스트를 서버 120에 송신하고, 텍스트에 매칭되는 콘텐트를 요청한다. 이를 위해, 텍스트 송신 및 콘텐트 요청을 위한 별도의 데이터 포맷이 정의될 수 있다. 예를 들어, 데이터 포맷은 텍스트, 텍스트에 대한 콘텐트가 요청됨을 지시하는 정보, 원하는 콘텐트의 유형을 지시하는 정보, 사용자 또는 전자 장치 110에 관련된 부가 정보 중 적어도 하나를 포함할 수 있다.
407 단계에서, 서버 120은 전자 장치 110로부터 수신된 텍스트의 지표값(metric value)을 결정한다. 즉, 서버 120는 텍스트의 문맥, 의미, 감정 상태를 나타내는 지표 값을 결정한다. 지표 값을 결정하기 위해, 서버 120는 뉴럴 네트워크를 사용할 수 있다. 이때, 요청된 콘텐트가 메시지에 대한 응답인지 또는 메시지를 보완하는 것인지 결정될 수 있다. 지표 값은 다수의 수치화된(numerical) 값들을 포함하는 벡터의 형태를 가질 수 있다. 지표 값은 '리프레젠테이션(representation)'으로 지칭될 수 있다.
409 단계에서, 서버 120은 지표 값을 기반으로 메시지에 매칭되는 콘텐트를 검색 및 선택한다. 서버 120은 다양한 유형의 콘텐트들의 지표 값들을 데이터베이스에 저장하고, 각 콘텐트의 지표 값들을 저장한다. 따라서, 매칭되는 콘텐트를 검색하기 위해, 서버 120는 409 단계에서 생성된 메시지의 지표 값을 저장된 콘텐트들의 지표 값들과 비교한다. 지표 값들이 벡터의 형태를 가지는 경우, 서버 120는 벡터들 간 최소의 거리(예: 유클리디안(euclidean) 거리)를 가지는 지표 값에 대응하는 컨텐트를 선택할 수 있다.
411 단계에서, 서버 120는 전자 장치 110로 콘텐트를 송신한다. 이때, 서버 120는 하나의 콘텐트를 송신하거나, 또는 둘 이상의 콘텐트들을 송신할 수 있다. 둘 이상의 콘텐트들이 송신되는 경우, 전자 장치 110에서 콘텐트의 선택이 이루어질 수 있다. 다른 실시 예에 따라, 콘텐트에 대신하여, 콘텐트를 획득하기 위한 정보(예: URL(uniform resource location))가 송신될 수 있다.
413 단계에서, 전자 장치 110는 콘텐트를 표시한다. 예를 들어, 전자 장치 110는 메시지와 함께, 또는 메시지를 대체하여 콘텐트를 표시할 수 있다. 다른 예로, 전자 장치 110는 콘텐트를 메시지와 결합함으로써 새로운 콘텐트를 구성하고, 새롭게 구성된 콘텐트를 표시할 수 있다.
도 4를 참고하여 설명한 실시 예의 경우, 서버 120은 사전에 콘텐트에 대한 데이터베이스를 업데이트한다. 하지만, 다른 실시 예에 따라, 서버 120는 콘텐트에 대한 요청을 수신한 후, 인터넷을 통해 콘텐트를 검색할 수 있다. 이 경우, 401 단계는 생략될 수 있다.
또한, 도 4를 참고하여 설명한 실시 예의 경우, 메시지에 대한 지표 값은 서버 120에 의해 결정된다. 그러나, 다른 실시 예에 따라, 메시지에 대한 지표 값은 전자 장치 110에 의해 생성될 수 있다. 이 경우, 407 단계 및 409 단계는 전자 장치 110에 의해 수행될 수 있고, 405 단계에서의 메시지를 송신하는 동작에 대신하여 또는 추가적으로 지표 값을 송신하는 동작이 더 수행될 수 있다.
상술한 바와 같이, 텍스트의 의미 및 감정 상태를 나타내는 지표 값이 생성된다. 다양한 실시 예들은 메시지 텍스트의 의미 및 감정 상태를 나타내는 지표 값을 도입한다. 지표 값의 사용은 빠르고 효율적인 검색을 보장하고, 서버는 메시지의 의미 및 감정 상태와 매칭되는 콘텐트 검색을 용이하게 수행할 수 있다. 예를 들어, 텍스트 내의 모든 단어들이, 훈련 프로세스 동안 얻어진, 수치화된 벡터들로 대체된다. 이후, 일련의 수학 연산들을 통해, 뉴럴 네트워크는 일련의 단어 벡터들(sequences of word vectors)로부터 하나의 벡터를 산출한다. 이러한 하나의 벡터는 전체 문장의 의미를 캡쳐하며, 문장의 지표 값으로서 취급된다. 지표 값의 결정에 대한 보다 상세한 실시 예가 이하 도 5a 및 도 5b를 참고하여 설명된다.
도 5a는 본 개시의 다양한 실시 예들에 따라 지표 값을 결정하기 위한 흐름도를 도시한다. 도 5a는 서버 120의 동작 방법을 예시한다. 그러나, 다른 실시 예에 따라, 도 5a의 절차는 단말 110의 동작 방법으로 이해될 수 있다.
도 5a를 참고하면, 501 단계에서, 서버는 대상(object)의 구성성분(element)들에 대응하는 수치 값들을 결정한다. 여기서, 대상은 전자 장치(예: 전자 장치 110)로부터 수신된 텍스트이거나, 데이터베이스에 저장된 콘텐트일 수 있다. 예를 들어, 도 5b에 예시된 바와 같이, 대상은 텍스트 510, 이미지 520, 비디오 530 또는 오디오 540일 수 있다. 구체적으로, 대상이 텍스트 510인 경우, 서버는 각 문장 성분, 즉, 각 단어에 대응하는 수치 값들을 결정한다. 수치 값은 대응되는 단어의 의미, 대응되는 단어와 다른 단어의 관계 중 적어도 하나에 대응할 수 있다. 다른 예로, 대상이 이미지 520인 경우, 서버는 각 픽셀 또는 각 픽셀 블록에 대응하는 수치 값들을 결정한다. 또 다른 예로, 대상이 비디오 530인 경우, 서버는 각 프레임에 대응하는 수치 값들을 결정한다. 이때, 각 프레임에 대응하는 수치 값을 결정하기 위해, 서버는 해당 프레임 내의 각 픽셀 또는 각 픽셀 블록에 대응하는 수치 값들을 먼저 결정할 수 있다. 또 다른 예로, 대상이 오디오 540인 경우, 서버는 오디오를 특정 기준으로 분할함으로써 정의되는 각 데이터에 대응하는 수치 값들을 결정한다. 예를 들어, 각 데이터는 주파수 축, 시간 축 등 다양한 기준으로 분할함으로써 정의될 수 있다. 구성요소를 수치 값으로 변환하기 위한 규칙은 미리 정의될 수 있고, 나아가, 훈련(training) 절차를 통해 업데이트될 수 있다. 이때, 요청된 콘텐트가 메시지에 대한 응답인지 또는 메시지를 보완하는 것인지 결정될 수 있다.
503 단계에서, 서버는 수치 값들로부터 하나의 지표 값을 결정한다. 즉, 구성요소들로부터 계산된 수치 값들에 기반하여, 대상(예: 텍스트)의 의미 및 감정 상태를 나타내는 지표 값이 도출될 수 있다. 즉, 서버는 대상에 대한 분석 결과를 반 다른 유형의 콘텐트와 비교 가능한 형태의 정보로 변환한다. 구체적으로, 서버는 수치 값들에 대한 수학적 연산을 수행함으로써, 하나의 지표 값을 결정할 수 있다. 이를 위해, 서버는 뉴럴 네트워크를 이용하여 메시지를 처리할 수 있다. 예를 들어, 뉴럴 네트워크로서 RNN(recurrent neural network), CNN(convolutional neural network) 중 적어도 하나가 사용될 수 있다. 예를 들어, 도 5b의 예시된 바와 같이, 텍스트 510의 지표 값 514은 RNN 512에 의해, 이미지 520의 지표 값 524은 딥(deep) CNN 522에 의해, 비디오 530의 지표 값 534은 결합된 비디오용 CNN 및 RNN 532에 의해, 오디오 540의 지표 값 544은 오디오용 CNN 542에 의해 결정될 수 있다.
도 5a 및 도 5b를 참고하여 설명한 바와 같이, 서버에 의해 사용되는 결합된 뉴럴 모델은 상이한 유형의 뉴럴 네트워크들의 결합으로 구성될 수 있다. 상이한 유형의 뉴럴 네트워크들은 동일 수치적 벡터 공간(same numerical vector space) 600에 나타낼 수 있는 다양한 유형의 멀티미디어의 지표 값들을 계산할 수 있다. 뉴럴 모델에 의해 계산된 다양한 유형의 콘텐트의 지표 값들은 동일한 수치적 벡터 공간 600에 포함되고, 서버의 데이터베이스에 저장될 수 있다. 서로 다른 유형의 콘텐트의 지표 값들이 동일한 수치적 벡터 공간 600에 존재함으로 인해, 서로 다른 유형의 콘텐트들 간 유사성이 판단될 수 있다. 이를 통해, 서버는 메시지 텍스트의 의미 및 감정 상태와 매칭되는 다양한 유형의 콘텐트를 제시할 수 있고, 메시지와 다양한 유형의 콘텐트들을 쉽게 비교하고, 매칭할 수 있다.
도 5a 및 도 5b를 참고하여 설명한 바와 같이, 수치 값들로부터 지표 값이 결정된다. 수치 값들로부터 지표 값을 결정하는 연산은 다양하게 정의될 수 있다. 일 실시 예에 따라, 지표 값을 결정하는 연산은 가중치들을 이용하여 정의될 수 있다. 예를 들어, 지표 값들은 <수학식 1>과 같이 결정될 수 있다.
Figure 112017127502335-pat00001
<수학식 1>에서, h(t)는 네트워크의 t번째 시점(timestep)에서의 히든 상태(hidden state)이고, v(t)는 시점 t에서의 단어의 수치 값, w1 및 w2는 가중치의 내부(internal) 행렬(matrix)들을 의미한다.
다수의 수치 값들에 대하여 <수학식 1>과 같은 연산이 반복되며, 모든 수치 값에 대한 연산들이 완료되는 때의 h(t)가 지표 값으로서 결정된다. 즉, <수학식 1>의 연산들이 반복 방식으로(in recurrent fashion) 매 시점(timestep)에서 수행된다. 다시 말해, 하나의 시점의 출력이 다음 시점에서의 계산을 위해 사용된다. 마지막 상태의 히든 벡터, 즉 히든 상태가 입력(예: 텍스트)의 지표 값으로서 취급된다.
상술한 다양한 실시 예들에 따라, 다수의 후보 콘텐트들의 지표 값들을 이용하여 메시지에 매칭되는 콘텐트가 검색될 수 있다. 이때, 일 실시 예에 따라, 매칭 연산을 용이하게 수행하기 위해, 생성된 콘텐트들의 지표 값들은 잠재 의미 해싱(latent semantic hashing, 이하 'LSH')에 의해 그룹화될 수 있다. LSH에 의한 그룹화 및 매칭 동작은 이하 도 6a 및 도 6b와 같이 수행될 수 있다.
도 6a는 본 개시의 다양한 실시 예들에 따라 그룹화된 콘텐트들을 검색하기 위한 동작 방법을 도시한다. 도 6a는 서버 120의 동작 방법을 예시한다.
도 6a를 참고하면, 601단계에서, 서버는 콘텐트들을 수집하고, 콘텐트들의 지표 값들을 생성한다. 예를 들어, 도 6b에 도시된 바와 같이, 다수의 콘텐트들 602가 수집된 후, 뉴럴 네트워크 604(예: CNN)를 통해 지표 값들이 결정될 수 있다. 이때, 뉴럴 네트워크는 본질적으로 많은 개수의 콘텐트들로부터 얻어진 지표 값들의 그래픽 모델을 구축한다.
603 단계에서, 서버는 콘텐트들을 그룹화한다. 예를 들어, 서버는 지표 값들을 LSH에 기반하여 그룹핑할 수 있다. LSH는 각 점(point)에 대한 거리 지표(distance metric)에 기반하여 주어진 공간 상의 점들을 버킷(bucket)들로 그룹핑하는 기법이다. LSH에 따르면, 주어진 지표를 기준으로(under the chosen metric), 서로 인접한 점들이 높은 확률로 동일 버킷에 매핑된다. 콘텐트들의 그룹핑에 LSH가 적용되는 경우, 점들은 미디어 아이템에 대하여 계산된 지표 값들(예: 리프레젠테이션 벡터)에 대응한다. LSH에 의해, 데이터 베이스 내의 콘텐트들은 버킷들에 그룹핑되고, 유사한 지표 값을 가지는 콘텐트들이 동일한 버킷에 포함될 수 있다. 즉, 도 6b에 도시된 바와 같이, 유사한 지표 값을 가지는 콘텐트들이 하나의 버킷에 포함되도록 버킷들 606이 결정될 수 있다.
605 단계에서, 서버는 콘텐트에 대한 검색 요청이 발생하는지 판단한다. 즉, 전자 장치로부터 텍스트 및 텍스트에 관련된 콘텐트에 대한 요청이 수신되는지 판단한다. 예를 들어, 도 6b에 도시된 바와 같이, 덱스트 612가 수신될 수 있다.
콘텐트에 대한 검색 요청이 발생하면, 607 단계에서, 서버는 대응하는 버킷 내에서 검색을 수행한다. 이를 위해, 서버는 텍스트의 지표 값을 결정하고, 지표 값에 기반하여 하나의 버킷을 선택하고, 선택된 버킷 내에서 검색을 수행할 수 있다. 예를 들어, 도 6b에 도시된 바와 같이, 뉴럴 네트워크 614(예: RNN)에 의해 지표 값 616이 결정되고, 지표 값 616에 대한 최단 이웃 탐색(nearest neighbour search)이 수행됨으로써, 하나의 콘텐트 618가 선택될 수 있다. 즉, 입력되는 텍스트는 하나의 버킷에 속한 콘텐트들에 대한 검색을 야기하며, 하나의 버킷은 입력되는 텍스트에 대한 해시 함수 결과에 의해 결정될 수 있다.
이를 통해, 콘텐트들의 지표 값들은 잠재 의미 해싱을 통하여 의미론적으로 유사한 콘텐트들 근처 주소에 위치하도록 벡터 공간에 매핑(mapping)될 수 있다. 찾고자 하는 콘텐트는 해당 콘텐트의 주소에서 몇 비트들만 다른 의미론적으로 유사한 다른 모든 콘텐트들의 주소에 간단히 액세스하여 찾아질 수 있다. 다시 말해, LSH 기법이 유사한 지표 값들을 가지는 콘텐트들을 동일 버킷에 그룹핑하므로, 하나의 입력에 대하여 하나의 버킷에 대한 검색만을 요구한다. 즉, LSH 기법에 의해 검색 대상이 감소될 수 있다. 해시 코딩의 효율성을 확장하는 LSH 방식은 기존의 지역 민감성 해시(locality sensitive hash) 보다 빠르고 효율적이다.
LSH에 따라 수행된 그룹핑은 콘텐트 검색을 용이하게 할 수 있다. 예를 들어, 메시지 602에 매칭되는 콘텐트를 검색하는 경우, 메시지 602에 대한 분석(예:RNN을 이용한 분석)을 통해 지표 값 604가 결정된다. 이후, LSH에 따른 그룹핑에 기반하여, 서버는 지표 값 604에 대한 최단 이웃점 탐색(nearest neighbor search)을 수행함으로써, 매칭되는 콘텐트 606을 결정할 수 있다.
상술한 다양한 실시 예들에 따라, 뉴럴 네트워크에 기반하여 결정되는 지표 값을 이용하여 서로 다른 유형의 콘텐트들의 유사성이 판단될 수 있다. 여기서, 뉴럴 네트워크는 트레이닝됨으로써 뉴럴 네트워크의 파라미터가 업데이트될 수 있다. 이하 도 7을 참고하여 뉴럴 네트워크의 트레이닝에 대한 실시 예가 설명된다.
도 7은 본 개시의 다양한 실시 예들에 따른 결합된 뉴럴 모델(combined neural model)에 대한 트레이닝(training) 절차를 도시한다. 도 7은 앤드 투 앤드(end-to-end) 방식의 트레이닝 모델로서, 다중 모드(multimodal) 뉴럴 모델이 주석화된(annotated) 다중 모드 데이터의 집합을 이용하여 엔드 투 엔드 방식으로 결합적으로(jointly) 어떻게 훈련될 수 있는지를 예시적으로 설명한다.
도 7을 참고하면, 매칭되는 콘텐트로 주석화된(annotated) 메시지들은 대규모 코퍼스(corpus) 700을 형성한다. 이때, 역전파(backpropagation) 과정을 통해 주석화된 메시지에 의한 결합된 뉴럴 모델 710이 훈련될 수 있다. 도 7에서, 가중치(예: w1, w2, w3)는 뉴럴 네트워크의 파라미터로서, 내부 연산(internal calculations)을 위해 사용되는 수치적 매트릭스(numerical matrices)의 값들이다. 가중치는 역전파 알고리즘에 의해 갱신될 수 있다. 델타 규칙(delta rule)은 역전파 알고리즘에서 가중치들을 갱신하는 규칙이다. 입력(input)은 텍스트를 의미하고, 출력(output)은 역전파 알고리즘에 의해 처리된 텍스트를 의미한다. 액츄얼 라벨(actual label)은 주석화된(annotated) 훈련 데이터 내의 다중 모드 데이터의 실제(actual) 쌍(pair)을 의미한다.
델타 규칙은 예측 오류(prediction error)의 변화율(gradients)에 기반하여 결정될 수 있다. 예측 오류는 실제 출력 및 목표 값의 차이에 기반하여(예: 차이의 제곱) 결정될 수 있다. 예측 오류는 '비용 함수(cost function)'라 지칭될 수 있다.
결합된 뉴럴 모델 710은 상이한 유형의 뉴럴 네트워크들의 결합으로 구성된다. 적어도 하나의 뉴럴 네트워크는 구성요소로 가중치들(weights)을 포함하고, 가중치들을 통하여 데이터를 처리한다. 즉, 적어도 하나의 뉴럴 네트워크들은 콘텐트 입력 데이터와 가중치들을 곱하여 새로운 신호를 만들고, 새로운 신호의 합으로 출력 지표 값을 도출한다. 따라서, 뉴럴 네트워크가 새로운 데이터에 대해 트레이닝하기 위하여 적절한 가중치 갱신이 필요하다. 즉, 트레이닝은 뉴럴 네트워크를 구성하는 파라미터인 가중치들을 갱신하는 단계이다.
결합된 뉴럴 모델 710은 매칭되는 콘텐트로 보충된 메시지들의 대규모 코퍼스 700으로부터의 역전파를 통해 앤드 투 앤드 방식으로 트레이닝될 수 있다. 역전파는 뉴럴 네트워크에서 사용되는 트레이닝 알고리즘이며, 트레이닝 방법은 지도 학습(supervised learning)이다. 즉, 트레이닝을 하기 위해서는 입력 데이터와 원하는 출력 데이터가 있어야 한다. 콘텐트 입력 데이터가 뉴럴 네트워크의 가중치들(w1, w2, w3 등)과 곱하고 더하는 동작을 몇 번 반복함으로써 입력 데이터의 결과 값인 출력 지표 값을 얻는다. 이때 출력 지표 값은 매칭되는 콘텐트로 보충된 메시지들의 대규모 코퍼스 700에서 주어진 원하는 지표 값과 다를 수 있다. 이때, 매칭되는 콘텐트로 보충된 메시지들의 대규모 코퍼스 700은 이미 트레이닝된 데이터이다. 결국, 뉴럴 네트워크에서는 출력 지표 값과 원하는 지표 값 사이의 오차가 발생하며, 오차를 최소화하기 위하여 적절히 가중치를 갱신하는 방법인 델타 규칙에 의해 가중치들을 갱신한다. 가중치를 갱신하는 방향은 뉴럴 네트워크의 처리 방향과는 반대이며, 이런 이유로 역전파 알고리즘이라고 한다. 이 방식으로 상이한 뉴럴 네트워크 구조들로부터 생성된 인터넷으로부터 업데이트된 콘텐트들의 지표 값들이 동일한 벡터 공간에 자동으로 포함된다. 즉, 결합된 뉴럴 모델 710의 트레이닝이 적절히 이루어지면, 새롭고 알려지지 않은 콘텐트들의 지표 값들이 생성될 수 있다.
도 7과 같은 역전파 알고리즘에 기반한 트레이닝 절차는 다음과 같은 순서로 수행될 수 있다. 먼저, 메시지 M 및 콘텐트 항목 I에 대한 스코어(score)가 뉴럴 네트워크에 의해 계산된다. 이후, 네트워크 가중치 W에 대하여, 유실 함수(loss function) J의 변화량(gradients)이 계산된다. 유실 함수는 트레이닝 쌍(pair)에 대한 기대 값(expected value) 및 네트워크로부터의 스코어 간 차일르 측정하는 함수이다. 이 과정을 수식으로 표현하면, 이하 <수학식 2>와 같다.
Figure 112017127502335-pat00002
<수학식 2>에서, J는 유실 함수, M은 메시지, I는 미디어 아이템, y는 0 또는 1로 설정되는 변수로서, 트레이닝 데이터의 긍정적인 예인 경우 1, 부정적 예인 경우 0으로 설정된다. Wgrad는 가중치의 변화량을 의미한다.
이에 따라, 모델 가중치들은 이하 <수학식 3>과 같이 갱신된다.
Figure 112017127502335-pat00003
<수학식 3>에서, Wnew는 새로운 가중치, Wold는 이전 가중치, α는 학습률(learning rate)을 반영하기 위한 파라미터, Wgrad는 가중치의 변화량을 의미한다.
이러한 트레이닝 절차를 통해, 긍정의 예에 높은 스코어가, 부정의 예에 낮은 스코어가 부여되도록 네트워크 가중치들이 수정된다.
상술한 실시 예들에 따라, 뉴럴 네트워크에 기반하여 텍스트 또는 콘텐트에 대응하는 지표 값들이 생성될 수 있고, 지표 값들에 기반하여 텍스트의 의미에 매칭되는 콘텐트가 검색될 수 있다. 이를 통해, 사용자는 수신 또는 송신되는 메시지에 적절한 콘텐트를 부가함으로써, 새로운 메시징 서비스를 경험할 수 있다. 이러한 콘텐트 검색 서비스를 제공하기 전자 장치의 동작들은 다음과 같다.
도 8는 본 개시의 다양한 실시 예들에 따른 전자 장치에서 콘텐트를 제공하기 위한 흐름도를 도시한다. 도 8는 전자 장치 110의 동작 방법을 예시한다.
도 8을 참고하면, 801 단계에서, 전자 장치는 텍스트를 확인한다. 예를 들어, 텍스트는 메시징 어플리케이션에 의해 송신 또는 수신되는 메시지에 포함된 텍스트일 수 있다. 즉, 전자 장치는 메시징 어플리케이션 실행 중 송신되는 메시지 또는 수신되는 메시지에 포함된 텍스트를 확인한다. 여기서, 텍스트는 메시지의 일부일 수 있으며, 일부는 사용자의 입력에 의해 특정될 수 있다.
903 단계에서, 전자 장치는 텍스트의 문맥 및 감정 상태와 매핑되는 후보 콘텐트들을 결정한다. 구체적으로, 전자 장치는 텍스트에 관련된 정보를 콘텐트 검색을 수행하는 외부 서버(예: 서버 120)로 송신하고, 외부 서버로부터 후보 콘텐트들에 대한 정보를 수신한다. 예를 들어, 텍스트에 관련된 정보는 텍스트 자체 또는 텍스트로부터 생성된 지표 값을 포함할 수 있다.
905 단계에서, 전자 장치는 후보 콘텐트들을 표시한다. 후보 콘텐트들은 유형 별로 분류될 수 있다. 후보 콘텐트들은 썸네일(thumbnail) 또는 미리보기(preview)의 형태로 표시되며, 사용자의 선택을 감지하기 위한 인터페이스와 함께 표시될 수 있다.
907 단계에서, 전자 장치는 선택된 콘텐트를 메시지에 삽입한다. 메시지에 콘텐트가 삽입됨은, 메시지의 일부로서 콘텐트를 포함시키는 것, 콘텐트로 구성된 메시지를 생성하는 것 중 적어도 하나를 포함한다. 이때, 콘텐트 자체가 삽입되거나 또는 콘텐트를 획득하기 위한 정보(예: URL)가 삽입될 수 있다.
도 8을 참고하여 설명한 실시 예와 같이, 전자 장치는 텍스트에 대한 콘텐트를 사용자에게 제공할 수 있다. 일 실시 예에 따라, 텍스트는 송신 또는 수신되는 메시지에 포함될 수 있다. 이 경우, 사용자는 보다 풍부한 메시징 서비스를 경험할 수 있다. 이하 메시지를 송신하는 경우 및 메시지를 수신하는 경우에 대한 보다 구체적인 실시 예들이 설명된다.
도 9a는 본 개시의 다양한 실시 예들에 따른 전자 장치에서 송신되는 메시지에 대응하는 콘텐트를 제공하기 위한 흐름도를 도시한다. 도 9a는 전자 장치 110의 동작 방법을 예시한다.
도 9a를 참고하면, 901 단계에서, 전자 장치는 입력되는 메시지를 확인한다. 예를 들어, 메시지는 터치 스크린에 표시된 키들을 통해 입력될 수 있다. 즉, 전자 장치는 메시징 어플리케이션을 실행하는 중 사용자로부터 입력 수단을 통해 입력되는 메시지를 확인할 수 있다. 이때, 전자 장치는 사용자로부터 입력된 메시지를 표시할 수 있다.
903 단계에서, 전자 장치는 콘텐트 검색 명령이 감지되는지 판단한다. 콘텐트 검색 명령은 다양하게 정의될 수 있다. 일 실시 예에 따라, 도 9b의 화면 910과 같이, 콘텐트 검색 명령은 콘텐트 검색을 위해 정의된 버튼 920(예: 'S')의 누름으로 정의될 수 있다, 다른 실시 예에 따라, 도 9b의 화면 910과 같이, 콘텐트 검색 명령은 텍스트의 선택 및 롱프레스(long press)에 의해 표시되는 메뉴 내의 콘텐트 검색 명령을 위한 항목(item) 922(예: 'media search')의 선택으로 정의될 수 있다.
만일, 콘텐트 검색 명령이 감지되지 아니하면, 905 단계에서, 전자 장치는 메시지 송신 명령이 감지되는지 판단한다. 콘텐트 검색 명령 없이 메시지 송신 명령이 감지되면, 907 단계에서, 전자 장치는 입력된 메시지를 송신한다. 즉, 전자 장치는 콘텐트의 검색 없이 메시지를 송신한다.
반면, 콘텐트 검색 명령이 감지되면, 909 단계에서, 전자 장치는 콘텐트 목록을 표시한다. 일 실시 예에 따라, 콘텐트 목록의 표시에 앞서, 전자 장치는 콘텐트 유형의 선택을 요구하는 인터페이스를 표시할 수 있다. 예를 들어, 도 9c의 화면 930과 같이, 콘텐트 유형들을 지시하는 다수의 항목들(예: 'Image', 'Video', 'Music')을 포함하는 팝업(pop-up) 창 932이 표시될 수 있다. 콘텐트들의 목록은 다수의 콘텐트들의 썸네일 또는 미리보기를 포함할 수 있다. 또한, 콘텐트들의 목록은 콘텐트 유형 별로 분류될 수 있다. 예를 들어, 도 9d의 화면 940과 같이, 콘텐트들의 목록은 콘텐트 유형의 지시(indication) 942, 콘텐트들의 미리보기 이미지들 944를 포함할 수 있다. 사용자는 콘텐트 유형의 지시 942를 통해 목록에 포함되는 콘텐트들의 유형을 변경할 수 있다. 또한, 전자 장치는 사용자의 스와이프(swipe) 입력에 따라 목록을 스크롤링(scrolling)할 수 있다.
911 단계에서, 전자 장치는 콘텐트 선택이 감지되는지 판단한다. 즉, 전자 장치는 표시된 목록에 포함되는 콘텐트들 중 어느 하나가 선택되는지 판단한다. 일 실시 예에 따라, 콘텐트의 선택에 응하여, 전자 장치는 콘텐트의 선택을 재확인(confirm)하기 위한 인터페이스(예: 팝업 창)를 더 표시할 수 있다.
913 단계에서, 전자 장치는 메시지 및 콘텐트에 관련된 정보를 송신한다. 콘텐트가 선택됨에 응하여, 전자 장치는 콘텐트가 삽입된 메시지를 상대방 전자 장치로 송신한다. 이때, 콘텐트에 관련된 정보는 콘텐트 자체, 또는 콘텐트를 획득하기 위한 정보(예: URL)를 포함할 수 있다. 이에 따라, 전자 장치는 메시지와 콘텐트를 표시한다. 예를 들어, 도 9e의 화면 950과 같이, 송신 메시지 및 검색된 콘텐트 952가 표시될 수 있다. 다른 예로, 도 9e의 화면 960과 같이, 검색된 메시지의 URL 964를 포함하는 송신 메시지 및 검색된 콘텐트 962가 표시될 수 있다.
도 10a는 본 개시의 다양한 실시 예들에 따른 전자 장치에서 수신되는 메시지에 대응하는 콘텐트를 제공하기 위한 흐름도를 도시한다. 도 10a는 전자 장치 110의 동작 방법을 예시한다.
도 10a를 참고하면, 1001 단계에서, 전자 장치는 메시지를 수신 및 표시한다. 전자 장치는 메시징 어플리케이션을 실행하는 중 상대방 전자 장치로부터 수신되는 메시지를 표시 수단에 표시할 수 있다.
1003 단계에서, 전자 장치는 콘텐트 검색 명령이 감지되는지 판단한다. 콘텐트 검색 명령은 다양하게 정의될 수 있다. 일 실시 예에 따라, 도 10b의 화면 1010과 같이, 콘텐트 검색 명령은 텍스트의 선택 및 롱프레스에 의해 표시되는 메뉴 내의 콘텐트 검색 명령을 위한 항목(item) 1012(예: 'media search')의 선택으로 정의될 수 있다. 이 경우, 전자 장치는 사용자의 드래그(drag)에 응하여 메시지 내의 일부 텍스트를 하이라이트(highlight) 표시하고, 하이라이트된 텍스트에 대한 롱프레스에 응하여 메뉴를 표시하고, 사용자의 항목 선택을 확인한다.
1005 단계에서, 전자 장치는 콘텐트 목록을 표시한다. 일 실시 예에 따라, 콘텐트 목록의 표시에 앞서, 전자 장치는 콘텐트 유형의 선택을 요구하는 인터페이스를 표시할 수 있다. 예를 들어, 도 10c의 화면 1020과 같이, 콘텐트 유형들을 지시하는 다수의 항목들(예: 'Image', 'Video', 'Music')을 포함하는 팝업 창 1022이 표시될 수 있다. 콘텐트들의 목록은 다수의 콘텐트들의 썸네일 또는 미리보기를 포함할 수 있다. 또한, 콘텐트들의 목록은 콘텐트 유형 별로 분류될 수 있다. 예를 들어, 도 10d의 화면 1030과 같이, 콘텐트들의 목록은 콘텐트 유형의 지시 1032, 콘텐트들의 미리보기 이미지들 1034를 포함할 수 있다. 사용자는 콘텐트 유형의 지시 1032를 통해 목록에 포함되는 콘텐트들의 유형을 변경할 수 있다.
1007 단계에서, 전자 장치는 콘텐트 선택이 감지되는지 판단한다. 즉, 전자 장치는 표시된 목록에 포함되는 콘텐트들 중 어느 하나가 선택되는지 판단한다. 일 실시 예에 따라, 콘텐트의 선택에 응하여, 전자 장치는 콘텐트의 선택을 재확인(confirm)하기 위한 인터페이스(예: 팝업 창)를 더 표시할 수 있다.
1009 단계에서, 전자 장치는 선택된 콘텐트에 관련된 정보를 송신한다. 즉, 전자 장치는 선택된 콘텐트에 대한 정보를 수신된 메시지를 송신한 상대방 전자 장치로 송신할 수 있다. 콘텐트에 관련된 정보는 콘텐트 자체, 또는 콘텐트를 획득하기 위한 정보(예: URL)를 포함할 수 있다. 다른 실시 예에 따라, 전자 장치는, 선택된 콘텐트에 관련된 정보를 송신하지 아니하고, 선택된 콘텐트를 표시할 수 있다.
상술한 다양한 실시 예들에 따르는 검색 시스템은 텍스트 형태의 메시지를 처리한다. 그러나, 다른 실시 예에 따라, 검색 시스템은 상이한 유형들의 입력들(예를 들어, 음성 메시지)에 확장될 수 있다. 검색 시스템은 음성 커뮤니케이터(voice communicator) 등에 적용될 수 있다. 예를 들어, 음성 메시지 신호는 외부 모듈에 의해 텍스트 형태로 변환될 수 있고, 검색 시스템은 변환된 텍스트를 기반으로 문맥에 맞는 미디어 검색을 수행할 수 있다. 또한, 검색 시스템은 실시간으로 음성 메시지에 직접적으로 작용하는 알고리즘을 제안할 수 있다. 음성 메시지 등의 입력을 사용하면, 음성 억양이나 강조와 같은 추가적인 특징들이 활용될 수 있다.
본 개시의 다양한 실시 예들에 따르면, 검색 시스템은 사용자의 선택에 기초하여 사용자 모델을 생성하고 업데이트할 수 있다. 사용자 모델은 콘텐트 검색 순위를 다시 결정할 수 있다. 이를 통해, 검색 시스템은 사용자의 선호도를 반영하여 콘텐트 검색을 수행할 수 있다. 예를 들어, 검색 시스템은 하나의 웹 사이트보다 다른 웹 사이트의 콘텐트를 우선하여 검색을 수행할 수 있다. 또한, 검색 시스템은 특정 유형의 콘텐트(예: 사진, 노래 또는 단편 영화 등)를 우선하여 검색을 수행할 수 있다. 검색 시스템은 특정 유형의 콘텐트를 특정 감정과 매칭할 수 있다. 예를 들어, 검색 시스템은 행복한 사람들의 이미지를 사용하여 기쁨을 표현할 수 있고, 아기 동물 이미지를 사용하여 사랑과 부드러움을 표현할 수 있다.
본 개시의 다양한 실시 예들에 따르면, 검색 시스템은 사용자의 선택에 기초하여 사전 정의된 카테고리를 수동으로 선택하고, 콘텐트 검색을 수행할 수 있다. 예를 들어, 사전 정의된 카테고리들은 기쁨, 슬픔, 분노, 놀라움 등의 가장 일반적인 감정들을 나타낼 수 있다. 검색 시스템은 카테고리 이름을 입력으로 하여 콘텐트를 검색할 수 있다.
상술한 다양한 실시 예들에서, 검색 시스템은 사용자의 입력(예: 메시지)에 기반하여 콘텐트를 검색한다. 다른 실시 예에 따라, 콘텐트는 사용자의 입력에 더하여, 다른 부가 정보(additional information)에 기반하여 검색될 수 있다. 나아가, 부가 정보는 콘텐트의 검색은 물론, 콘텐트의 가공(modification)을 위해 사용될 수 있다. 부가 정보가 이용되는 실시 예가 이하 도 11을 참고하여 설명된다.
도 11은 본 개시의 다양한 실시 예들에 따른 서버에서 부가 정보에 기반하여 콘텐트를 검색 및 가공하기 위한 흐름도를 도시한다. 도 11은 서버 120의 동작 방법을 예시한다.
도 11을 참고하면, 1101 단계에서, 서버는 부가 정보를 획득한다. 부가 정보는 콘텐트 검색의 주된 기준이 되는 메시지(예: 텍스트 메시지), 즉, 전자 장치(예: 전자 장치 110)로부터 제공되는 메시지 외 다른 정보를 의미한다. 예를 들어, 예를 들어, 부가 정보는 사용자의 생체 정보, 전자 장치의 위치 정보, 시간 정보, 센서에 의해 측정된 센싱 정보, 사용자의 가입자 정보(예: 등급), 전자 장치에서 실행 중인 어플리케이션에 대한 정보, 전자 장치의 기기 종류(device type), 전자 장치의 모델(model)에 대한 정보, 전자 장치의 하드웨어 능력(capability) 정보 중 적어도 하나를 포함할 수 있다. 부가 정보는 전자 장치로부터 수신되는 콘텐트의 요청과 함께 수신되거나, 가입자 정보를 관리하는 관리 서버로부터 수신되거나, 또는 서버의 내부에서 생성될 수 있다.
1103 단계에서, 서버는 콘텐트를 검색한다. 이를 위해, 서버는 메시지에 포함된 텍스트의 지표 값을 결정하고, 데이터베이스에 저장된 콘텐트들의 지표 값들 및 텍스트의 지표 값을 비교할 수 있다. 이때, 다양한 실시 예들에 따라, 서버는 부가 정보에 기반하여 콘텐트를 검색할 수 있다. 일 실시 예에 따라, 서버는 부가 정보를 더 고려하여 지표 값을 결정할 수 있다. 즉, 서버는 부가 정보를 텍스트화하고, 메시지에 포함된 텍스트 및 부가 정보로부터 생성된 텍스트 모두에 대응하는 지표 값을 결정할 수 있다. 다른 실시 예에 따라, 서버는 부가 정보에 기반하여 검색의 범위를 제한할 수 있다. 다시 말해, 서버는 부가 정보에 기반하여 검색을 위한 콘텐트들의 풀(pool)을 결정할 수 있다. 구체적으로, 데이터베이스에 저장된 콘텐트들은 다수의 그룹들로 분류될 수 있고, 각 그룹은 시간대, 위치, 사용자 등급, 전자 장치의 하드웨어 능력 등 다양한 부가 정보에 따라 선택적으로 가용하도록(available) 설정될 수 있다.
1105 단계에서, 서버는 콘텐트를 가공한다. 예를 들어, 서버는 전자 장치의 하드웨어 능력, 실행 중인 어플리케이션 등에 적합한 형태로 콘텐트를 가공할 수 있다. 여기서, 적합한 형태는 해당 부가 정보에 의해 특정되는 조건(예: 해상도, 코덱, 허용되는 유형 등) 하에서 콘텐트가 표시 또는 재생 가능한 상태 또는 사용자에 의해 선호되는 상태를 의미한다. 예를 들어, 서버는 콘텐트의 해상도, 코덱, 유형 중 적어도 하나를 변경하거나, 둘 이상의 콘텐트들을 결합할 수 있다.
1107 단계에서, 서버는 콘텐트를 송신한다. 다른 실시 예에 따라, 콘텐트에 대신하여, 콘텐트를 획득하기 위한 정보(예: URL)가 송신될 수 있다.
도 11을 참고하여 설명한 실시 예에서, 서버는 콘텐트를 가공한 후, 송신한다. 이때, 다수의 콘텐트들이 검색되는 경우, 서버는 검색된 모든 콘텐트들을 가공하거나, 또는 사용자에 의해 선택된 하나의 콘텐트만을 가공할 수 있다. 사용자에 의해 선택된 하나의 콘텐트만을 가공하는 경우, 서버는 콘텐트들을 송신하고, 사용자의 선택을 알리는 피드백 정보를 수신한 후, 피드백 정보에 의해 지시되는 콘텐트를 가공할 수 있다.
다른 실시 예에 따라, 콘텐트의 가공은 전자 장치에 의해 수행될 수 있다. 이 경우, 서버는 가공 없이 콘텐트를 송신하고, 콘텐트를 수신한 전자 장치는 콘텐트를 가공할 수 있다. 또 다른 실시 예에 따라, 콘텐트를 가공하는 1105 단계는 전자 장치 및 서버 모두에 의해 수행되지 아니할 수 있다.
도 11을 참고하여 설명한 실시 예에서, 서버는 부가 정보에 기반하여 콘텐트를 검색할 수 있다. 부가 정보에 기반한 콘텐트의 검색에 대한 구체적인 동작은 부가 정보의 유형에 따라 달라질 수 있다.
예를 들어, 시간 정보가 이용되는 경우, 서버는 현재 시간이 속한 시간대를 확인하고, 확인된 시간대에 대응하는 그룹 내에서 검색을 수행할 수 있다. 즉, 시간대에 따라 가용한 콘텐트들이 변화하게 되며, 사용자는 현재 시각에 대응하는 시간대에서 가용한 콘텐트를 이용할 수 있다.
다른 예로, 사용자 등급이 이용되는 경우, 서버는 관리 서버로 사용자의 등급을 문의하고, 사용자 등급이 따라 허용되는 적어도 하나의 그룹 내에서 검색을 수행할 수 있다. 이에 따라, 사용자 등급에 따라 차등화된 콘텐트 검색 서비스가 제공될 수 있다.
상술한 다양한 실시 예들에 따라, 메시지 등에 매칭되는 콘텐트가 제공될 수 있다. 상술한 콘텐트 검색에 대한 다양한 실시 예들 중, 부가 정보에 따라 콘텐트가 제한되는 실시 예는 메시징 어플리케이션을 통한 대화 중 이모티콘(emoticon)의 사용에도 적용될 수 있다. 예를 들어, 사용자 등급에 따라 사용 가능한 이모티콘이 제한될 수 있다. 만일, 이모티콘의 목록을 결정함에 있어서 메시지에 포함되는 텍스트의 의미가 고려된다면, 이모티콘의 사용은 상술한 다양한 실시 예들에 따른 콘텐트 검색과 유사하게 취급될 수 있다.
본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(read only memory, ROM), 전기적 삭제가능 프로그램가능 롬(electrically erasable programmable read only memory, EEPROM), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(compact disc-ROM, CD-ROM), 디지털 다목적 디스크(digital versatile discs, DVDs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다.
또한, 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(local area network), WAN(wide area network), 또는 SAN(storage area network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시 예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 개시의 실시 예를 수행하는 장치에 접속할 수도 있다.
상술한 본 개시의 구체적인 실시 예들에서, 개시에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (24)

  1. 서버의 동작 방법에 있어서,
    다수의 콘텐트들의 지표 값(representative value)들에 기반하여 상기 다수의 콘텐트들을 다수의 그룹들로 그룹핑하는 과정과,
    전자 장치로부터 텍스트를 수신하는 과정과,
    상기 텍스트에 포함된 단어들의 의미에 대응하는 수치 값(numerical vector)들로부터 상기 텍스트의 지표 값을 결정하는 과정과,
    상기 다수의 그룹들 중 상기 텍스트의 지표 값에 대응하는 한 그룹을 식별하는 과정과,
    부가 정보에 기반하여 상기 그룹 내에서 검색을 위한 콘텐트 풀(pool)을 선택하되, 상기 부가 정보는 현재 시간 정보를 포함하는 과정과,
    상기 텍스트의 지표 값 및 상기 콘텐트 풀에 포함된 콘텐트들 각각의 지표 값 간의 비교 결과에 기반하여, 상기 콘텐트 풀 내에서 상기 텍스트에 대응하는 적어도 하나의 콘텐트를 선택하는 과정과,
    상기 적어도 하나의 콘텐트에 관련된 정보를 상기 전자 장치로 송신하는 과정을 포함하는 방법.
  2. 삭제
  3. 청구항 1에 있어서,
    상기 다수의 콘텐트들을 수집하는 과정과,
    상기 다수의 콘텐트들의 지표 값들을 결정하는 과정을 더 포함하는 방법.
  4. 청구항 3에 있어서,
    상기 다수의 콘텐트들의 지표 값들을 결정하는 과정은,
    이미지 유형(type)의 콘텐트에 대하여, 이미지의 각 픽셀 또는 각 픽셀 블록에 대응하는 수치 값들을 결정하는 과정과,
    비디오 유형의 콘텐트에 대하여, 비디오의 각 프레임에 대응하는 수치 값들을 결정하는 과정과,
    오디오 유형의 콘텐트에 대하여, 오디오를 특정 기준으로 분할함으로써 정의되는 각 데이터에 대응하는 수치 값들을 결정하는 과정을 포함하는 방법.
  5. 청구항 1에 있어서,
    상기 부가 정보는, 상기 전자 장치의 사용자의 생체 정보, 상기 전자 장치의 위치 정보, 센서에 의해 측정된 센싱 정보, 상기 사용자의 가입자 정보, 상기 전자 장치에서 실행 중인 어플리케이션에 대한 정보, 상기 전자 장치의 기기 종류(device type), 상기 전자 장치의 모델(model)에 대한 정보, 상기 전자 장치의 하드웨어 능력(capability) 정보 중 적어도 하나를 더 포함하는 방법.
  6. 청구항 1에 있어서,
    상기 텍스트의 지표 값을 결정하는 과정은,
    상기 수치 값들 및 상기 부가 정보에 기반하여 상기 텍스트의 지표 값을 결정하는 과정을 포함하는 방법.
  7. 전자 장치의 동작 방법에 있어서,
    사용자의 입력에 의해 특정된 텍스트에 대한 정보를 서버로 송신하는 과정과,
    상기 서버로부터 검색을 위한 콘텐트 풀(pool)에 포함되는 적어도 하나의 콘텐트에 관련된 정보를 수신하되, 상기 콘텐트 풀은 다수의 그룹들 중 상기 텍스트의 지표 값(representative value)에 대응하는 한 그룹에 포함되는 과정과,
    상기 적어도 하나의 콘텐트를 표시하는 과정을 포함하며,
    상기 그룹은 상기 다수의 그룹들 중 상기 텍스트의 지표 값에 대응하고,
    상기 콘텐트 풀은 현재 시간 정보를 포함하는 부가 정보에 기반하여 상기 그룹 내에서 선택되고,
    상기 적어도 하나의 콘텐트는 상기 텍스트의 지표 값과 상기 그룹 내 콘텐트들 각각의 지표 값 간의 비교 결과와 관련되는 방법.
  8. 청구항 7에 있어서,
    검색하고자 하는 콘텐트 유형들을 문의하는 인터페이스를 표시하는 과정을 더 포함하는 방법.
  9. 청구항 7에 있어서,
    상기 텍스트에 대한 정보는, 상기 텍스트, 상기 텍스트의 지표 값 중 적어도 하나를 포함하는 방법.
  10. 청구항 7에 있어서,
    수신된 메시지를 표시하는 과정과,
    상기 메시지에 포함된 텍스트의 적어도 일부에 대한 사용자의 특정에 응하여, 검색 명령을 위한 항목(item)을 표시하는 과정과,
    상기 항목의 선택에 응하여, 콘텐트의 유형을 문의하는 인터페이스를 표시하는 과정과,
    상기 콘텐트의 유형에 대한 상기 사용자의 선택에 응하여, 선택된 유형의 후보 콘텐트들을 표시하는 과정을 더 포함하는 방법.
  11. 청구항 7에 있어서,
    송신을 위해 입력된 메시지를 표시하는 과정과,
    상기 메시지에 포함된 텍스트의 적어도 일부에 대응하는 콘텐트의 검색 명령이 감지되면, 콘텐트의 유형을 문의하는 인터페이스를 표시하는 과정과,
    상기 콘텐트의 유형에 대한 상기 사용자의 선택에 응하여, 선택된 유형의 후보 콘텐트들을 표시하는 과정을 더 포함하는 방법.
  12. 청구항 7에 있어서,
    상기 부가 정보를 송신하는 과정을 더 포함하며,
    상기 부가 정보는, 상기 전자 장치의 사용자의 생체 정보, 상기 전자 장치의 위치 정보, 센서에 의해 측정된 센싱 정보, 상기 사용자의 가입자 정보, 상기 전자 장치에서 실행 중인 어플리케이션에 대한 정보, 상기 전자 장치의 기기 종류(device type), 상기 전자 장치의 모델(model)에 대한 정보, 상기 전자 장치의 하드웨어 능력(capability) 정보 중 적어도 하나를 더 포함하는 방법.
  13. 서버에 있어서,
    신호를 송신 및 수신하는 송수신부와,
    상기 송수신부와 연결된 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는,
    다수의 콘텐트들의 지표 값(representative value)들에 기반하여 상기 다수의 콘텐트들을 다수의 그룹들로 그룹핑하고,
    전자 장치로부터 텍스트를 수신하고,
    상기 텍스트에 포함된 단어들의 의미에 대응하는 수치 값(numerical vector)들로부터 상기 텍스트의 지표 값을 결정하고,
    상기 다수의 그룹들 중 상기 텍스트의 지표 값에 대응하는 한 그룹을 식별하고,
    부가 정보에 기반하여 상기 그룹 내에서 검색을 위한 콘텐트 풀을 선택하되, 상기 부가 정보는 현재 시간 정보를 포함하고,
    상기 텍스트의 지표 값 및 상기 콘텐트 풀에 포함된 콘텐트들 각각의 지표 값 간의 비교 결과에 기반하여, 상기 콘텐트 풀 내에서 상기 텍스트에 대응하는 적어도 하나의 콘텐트를 선택하고,
    상기 적어도 하나의 콘텐트에 관련된 정보를 상기 전자 장치로 송신하도록 제어하는 서버.
  14. 삭제
  15. 청구항 13에 있어서,
    상기 적어도 하나의 프로세서는, 상기 다수의 콘텐트들을 수집하고, 상기 다수의 콘텐트들의 지표 값들을 결정하는 서버.
  16. 청구항 15에 있어서,
    상기 적어도 하나의 프로세서는, 이미지 유형(type)의 콘텐트에 대하여, 이미지의 각 픽셀 또는 각 픽셀 블록에 대응하는 수치 값들을 결정하고, 비디오 유형의 콘텐트에 대하여, 비디오의 각 프레임에 대응하는 수치 값들을 결정하고, 오디오 유형의 콘텐트에 대하여, 오디오를 특정 기준으로 분할함으로써 정의되는 각 데이터에 대응하는 수치 값들을 결정하는 서버.
  17. 청구항 13에 있어서,
    상기 부가 정보는, 상기 전자 장치의 사용자의 생체 정보, 상기 전자 장치의 위치 정보, 센서에 의해 측정된 센싱 정보, 상기 사용자의 가입자 정보, 상기 전자 장치에서 실행 중인 어플리케이션에 대한 정보, 상기 전자 장치의 기기 종류(device type), 상기 전자 장치의 모델(model)에 대한 정보, 상기 전자 장치의 하드웨어 능력(capability) 정보 중 적어도 하나를 더 포함하는 서버.
  18. 청구항 13에 있어서,
    상기 적어도 하나의 프로세서는, 상기 수치 값들 및 상기 부가 정보에 기반하여 상기 텍스트의 지표 값을 결정하는 서버.
  19. 전자 장치에 있어서,
    신호를 송신 및 수신하는 송수신부와,
    화면을 표시하는 표시부와,
    상기 송수신부 및 상기 표시부와 연결된 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는,
    사용자의 입력에 의해 특정된 텍스트에 대한 정보를 서버로 송신하고,
    상기 서버로부터 검색을 위한 콘텐트 풀(pool)에 포함되는 적어도 하나의 콘텐트에 관련된 정보를 수신하되, 상기 콘텐트 풀은 다수의 그룹들 중 상기 텍스트의 지표 값(representative value)에 대응하는 한 그룹에 포함되고,
    상기 적어도 하나의 콘텐트를 표시하도록 제어하며,
    상기 그룹은 상기 다수의 그룹들 중 상기 텍스트의 지표 값에 대응하고,
    상기 콘텐트 풀은 현재 시간 정보를 포함하는 부가 정보에 기반하여 상기 그룹 내에서 선택되고,
    상기 적어도 하나의 콘텐트는 상기 텍스트의 지표 값과 상기 그룹 내 콘텐트들 각각의 지표 값 간의 비교 결과와 관련되는 전자 장치.
  20. 청구항 19에 있어서,
    상기 적어도 하나의 프로세서는, 검색하고자 하는 콘텐트 유형들을 문의하는 인터페이스를 표시하도록 제어하는 전자 장치.
  21. 청구항 19에 있어서,
    상기 텍스트에 대한 정보는, 상기 텍스트, 상기 텍스트의 지표 값 중 적어도 하나를 포함하는 전자 장치.
  22. 청구항 19에 있어서,
    상기 적어도 하나의 프로세서는,
    수신된 메시지를 표시하고,
    상기 메시지에 포함된 텍스트의 적어도 일부에 대한 사용자의 특정에 응하여, 검색 명령을 위한 항목(item)을 표시하고,
    상기 항목의 선택에 응하여, 콘텐트의 유형을 문의하는 인터페이스를 표시하고,
    상기 콘텐트의 유형에 대한 상기 사용자의 선택에 응하여, 선택된 유형의 후보 콘텐트들을 표시하는 도록 제어하는 전자 장치.
  23. 청구항 19에 있어서,
    상기 적어도 하나의 프로세서는,
    송신을 위해 입력된 메시지를 표시하고,
    상기 메시지에 포함된 텍스트의 적어도 일부에 대응하는 콘텐트의 검색 명령이 감지되면, 콘텐트의 유형을 문의하는 인터페이스를 표시하고,
    상기 콘텐트의 유형에 대한 상기 사용자의 선택에 응하여, 선택된 유형의 후보 콘텐트들을 표시하도록 제어하는 전자 장치.
  24. 청구항 19에 있어서,
    상기 적어도 하나의 프로세서는, 상기 부가 정보를 송신하도록 제어하며,
    상기 부가 정보는, 상기 전자 장치의 사용자의 생체 정보, 상기 전자 장치의 위치 정보, 센서에 의해 측정된 센싱 정보, 상기 사용자의 가입자 정보, 상기 전자 장치에서 실행 중인 어플리케이션에 대한 정보, 상기 전자 장치의 기기 종류(device type), 상기 전자 장치의 모델(model)에 대한 정보, 상기 전자 장치의 하드웨어 능력(capability) 정보 중 적어도 하나를 더 포함하는 전자 장치.
KR1020170176739A 2017-12-21 2017-12-21 콘텐트 검색을 위한 방법 및 그 전자 장치 Active KR102355152B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020170176739A KR102355152B1 (ko) 2017-12-21 2017-12-21 콘텐트 검색을 위한 방법 및 그 전자 장치
PCT/KR2018/016481 WO2019125054A1 (en) 2017-12-21 2018-12-21 Method for content search and electronic device therefor
CN201880083350.5A CN111512299A (zh) 2017-12-21 2018-12-21 用于内容搜索的方法及其电子设备
US16/230,311 US10902209B2 (en) 2017-12-21 2018-12-21 Method for content search and electronic device therefor
EP18892875.8A EP3685279A4 (en) 2017-12-21 2018-12-21 CONTENT SEARCH PROCESS AND ASSOCIATED ELECTRONIC DEVICE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170176739A KR102355152B1 (ko) 2017-12-21 2017-12-21 콘텐트 검색을 위한 방법 및 그 전자 장치

Publications (2)

Publication Number Publication Date
KR20190075277A KR20190075277A (ko) 2019-07-01
KR102355152B1 true KR102355152B1 (ko) 2022-01-25

Family

ID=66951178

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170176739A Active KR102355152B1 (ko) 2017-12-21 2017-12-21 콘텐트 검색을 위한 방법 및 그 전자 장치

Country Status (5)

Country Link
US (1) US10902209B2 (ko)
EP (1) EP3685279A4 (ko)
KR (1) KR102355152B1 (ko)
CN (1) CN111512299A (ko)
WO (1) WO2019125054A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102355152B1 (ko) * 2017-12-21 2022-01-25 삼성전자주식회사 콘텐트 검색을 위한 방법 및 그 전자 장치
CN113496277A (zh) 2020-04-03 2021-10-12 三星电子株式会社 用于检索图像的神经网络装置及其操作方法
KR102424342B1 (ko) * 2020-11-24 2022-07-25 울산과학기술원 섬네일 이미지 생성 방법 및 장치
KR102227756B1 (ko) * 2020-12-07 2021-03-15 박봉진 구조물 손상판단 서비스 시스템 및 서비스 제공방법
US11741130B2 (en) * 2021-08-16 2023-08-29 International Business Machines Corporation Summarizing conversations in a messaging application with internal social network discovery
CN119065535A (zh) * 2023-06-02 2024-12-03 华为技术有限公司 一种交互方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120265747A1 (en) * 2007-08-27 2012-10-18 Yahoo! Inc. System and method for providing vector terms related to instant messaging conversations
US20170302716A1 (en) * 2010-02-18 2017-10-19 Mobitv, Inc. Retrieval and display of related content using text stream data feeds

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751776B1 (en) 1999-08-06 2004-06-15 Nec Corporation Method and apparatus for personalized multimedia summarization based upon user specified theme
US7434176B1 (en) 2003-08-25 2008-10-07 Walt Froloff System and method for encoding decoding parsing and translating emotive content in electronic communication
US8326775B2 (en) * 2005-10-26 2012-12-04 Cortica Ltd. Signature generation for multimedia deep-content-classification by a large-scale matching system and method thereof
US8442973B2 (en) 2006-05-02 2013-05-14 Surf Canyon, Inc. Real time implicit user modeling for personalized search
US7870140B2 (en) 2006-06-12 2011-01-11 D&S Consultants, Inc. System and method of incorporating user preferences in image searches
US7756535B1 (en) * 2006-07-07 2010-07-13 Trend Micro Incorporated Lightweight content filtering system for mobile phones
US8023974B1 (en) * 2007-02-15 2011-09-20 Trend Micro Incorporated Lightweight SVM-based content filtering system for mobile phones
US9424444B2 (en) 2009-10-14 2016-08-23 At&T Mobility Ii Llc Systems, apparatus, methods and computer-readable storage media for facilitating integrated messaging, contacts and social media for a selected entity
US20140164507A1 (en) * 2012-12-10 2014-06-12 Rawllin International Inc. Media content portions recommended
US20140161356A1 (en) * 2012-12-10 2014-06-12 Rawllin International Inc. Multimedia message from text based images including emoticons and acronyms
US20140164506A1 (en) * 2012-12-10 2014-06-12 Rawllin International Inc. Multimedia message having portions of networked media content
US20140163957A1 (en) * 2012-12-10 2014-06-12 Rawllin International Inc. Multimedia message having portions of media content based on interpretive meaning
US20140163980A1 (en) * 2012-12-10 2014-06-12 Rawllin International Inc. Multimedia message having portions of media content with audio overlay
US20150356508A1 (en) * 2014-06-06 2015-12-10 International Business Machines Corporation Collaboration using extensible state sharing
JP2016015009A (ja) * 2014-07-02 2016-01-28 ソニー株式会社 情報処理システム、情報処理端末、および情報処理方法
US9043196B1 (en) * 2014-07-07 2015-05-26 Machine Zone, Inc. Systems and methods for identifying and suggesting emoticons
KR101787248B1 (ko) 2016-04-14 2017-10-18 라인 가부시키가이샤 메신저 서비스를 이용한 키워드 검색 방법 및 시스템
US10140017B2 (en) * 2016-04-20 2018-11-27 Google Llc Graphical keyboard application with integrated search
US10796220B2 (en) * 2016-05-24 2020-10-06 Marvell Asia Pte, Ltd. Systems and methods for vectorized FFT for multi-dimensional convolution operations
US10375241B2 (en) * 2016-09-23 2019-08-06 Genesys Telecommunications Laboratories, Inc. System and method for automatic quality management in a contact center environment
KR102355152B1 (ko) * 2017-12-21 2022-01-25 삼성전자주식회사 콘텐트 검색을 위한 방법 및 그 전자 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120265747A1 (en) * 2007-08-27 2012-10-18 Yahoo! Inc. System and method for providing vector terms related to instant messaging conversations
US20170302716A1 (en) * 2010-02-18 2017-10-19 Mobitv, Inc. Retrieval and display of related content using text stream data feeds

Also Published As

Publication number Publication date
US20190197110A1 (en) 2019-06-27
US10902209B2 (en) 2021-01-26
CN111512299A (zh) 2020-08-07
EP3685279A1 (en) 2020-07-29
WO2019125054A1 (en) 2019-06-27
EP3685279A4 (en) 2020-11-04
KR20190075277A (ko) 2019-07-01

Similar Documents

Publication Publication Date Title
US12423339B2 (en) Method and system for multi-level artificial intelligence supercomputer design
KR102355152B1 (ko) 콘텐트 검색을 위한 방법 및 그 전자 장치
KR102942446B1 (ko) 콘텐츠 기반의 스타일을 갖는 텍스트 또는 음성을 생성하는 인공 지능 장치 및 그 방법
GB2547068B (en) Semantic natural language vector space
US20190103111A1 (en) Natural Language Processing Systems and Methods
CN118103834A (zh) 一种信息获取方法以及装置
CN111753060A (zh) 信息检索方法、装置、设备及计算机可读存储介质
AU2016256753A1 (en) Image captioning using weak supervision and semantic natural language vector space
US20170200066A1 (en) Semantic Natural Language Vector Space
US20210382893A1 (en) Intelligently identifying the most knowledgable person based on multiple data source inputs
US11257482B2 (en) Electronic device and control method
CN111539212A (zh) 文本信息处理方法、装置、存储介质及电子设备
KR102861081B1 (ko) 생성형 모델 생성 질문 및 답변을 갖는 사전적 질의 및 콘텐츠 제안
US11308146B2 (en) Content fragments aligned to content criteria
CN106104427B (zh) 输入的感知内容的重新格式化
CN111434118A (zh) 用户感兴趣信息生成的装置和方法
KR20260048356A (ko) 운영 체제에서의 시각 검색 인터페이스
CN114880442B (zh) 习题知识点的识别方法、装置、计算机设备和存储介质
CN118798134A (zh) 内容生成方法、装置、电子设备和可读存储介质
CN115378890B (zh) 信息输入方法、装置、存储介质及计算机设备
US20250355958A1 (en) On-Demand Generative Response Simplification
CN116595252A (zh) 一种数据处理方法及相关装置
CN116401522A (zh) 一种金融服务动态化推荐方法和装置
KR102877224B1 (ko) 챗봇 서비스에서의 사용자 질문 보완 방법 및 장치
US20260064761A1 (en) Visual Search Pivot Generation

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

A201 Request for examination
PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

L13-X000 Limitation or reissue of ip right requested

St.27 status event code: A-2-3-L10-L13-lim-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R14-asn-PN2301

R14 Transfer of ownership recorded

Free format text: ST27 STATUS EVENT CODE: A-5-5-R10-R14-ASN-PN2301 (AS PROVIDED BY THE NATIONAL OFFICE)

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

U11 Full renewal or maintenance fee paid

Free format text: ST27 STATUS EVENT CODE: A-4-4-U10-U11-OTH-PR1001 (AS PROVIDED BY THE NATIONAL OFFICE)

Year of fee payment: 5

P14 Amendment of ip right document requested

Free format text: ST27 STATUS EVENT CODE: A-5-5-P10-P14-NAP-X000 (AS PROVIDED BY THE NATIONAL OFFICE)

P14-X000 Amendment of ip right document requested

St.27 status event code: A-5-5-P10-P14-nap-X000