KR102095074B1 - 컨텍스트를 이용한 문자열 예측 생성 기법 - Google Patents

컨텍스트를 이용한 문자열 예측 생성 기법 Download PDF

Info

Publication number
KR102095074B1
KR102095074B1 KR1020157002522A KR20157002522A KR102095074B1 KR 102095074 B1 KR102095074 B1 KR 102095074B1 KR 1020157002522 A KR1020157002522 A KR 1020157002522A KR 20157002522 A KR20157002522 A KR 20157002522A KR 102095074 B1 KR102095074 B1 KR 102095074B1
Authority
KR
South Korea
Prior art keywords
context
string
determining
received
conversation
Prior art date
Application number
KR1020157002522A
Other languages
English (en)
Other versions
KR20150037935A (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 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20150037935A publication Critical patent/KR20150037935A/ko
Application granted granted Critical
Publication of KR102095074B1 publication Critical patent/KR102095074B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)

Abstract

모바일 장치에서, 모바일 장치에 대해 컨텍스트가 결정된다. 컨텍스트는 예컨대 사용 중인 현재의 애플리케이션, 모바일 장치의 사용자가 상호작용하고 있거나 또는 대화하고 있는 임의의 접촉대상, 현재의 날짜 및/또는 시간, 현재 대화의 주제, 현재 대화의 스타일 등을 포함하는 다양한 모바일 장치 환경의 특성에 기초하여 결정된다. 결정된 컨텍스트 및 사용자 생성 텍스트와 연관된 문자열 세트에 기초하여, 사용자 생성 텍스트에 대해 하나 이상의 문자열 예측이 생성된다. 문자열 예측은 사용자 생성 텍스트의 제안된 완성본으로서 사용자에게 제시될 수 있다.

Description

컨텍스트를 이용한 문자열 예측 생성 기법{GENERATING STRING PREDICTIONS USING CONTEXTS}
타이핑은, 예컨대 텍스트 메시지 작성, 이메일 작성, 연락처 검색, 및 URL(Uniform Resource Locator) 타이핑을 포함하는, 모바일 장치 상에서의 수많은 시나리오의 일부이다. 모바일 장치 상에서의 타이핑은 느리고 짜증스러울 수 있다. 이것은 온스크린 소프트웨어 키보드를 사용하는 경우에 특히 그럴 수 있다.
이 문제에 대한 한가지 해결책으로 소프트 입력 패널(soft input panel)이 있다. 소프트 입력 패널에서는, 화면의 일부 영역이, 사용자가 지금까지 텍스트 입력 필드에 입력한 문자들에 기초하여, 제안된 단어 예측을 디스플레이할 수 있다. 제안되는 단어는 사용자가 문자를 필드에 입력함에 따라 변한다. 사용자가 자신이 입력하고 있는 단어와 일치하는 단어 예측을 볼 경우, 사용자는 그 단어 예측을 선택할 수 있고, 선택된 단어는 사용자가 입력한 문자들에 대한 대체물로서 텍스트 입력 필드에 위치하게 된다.
통상적으로, 사용자에게 보여지는 단어 예측은 입력된 문자를 사전 내 단어들에 대해 매칭시킨 다음 각 단어가 사용자가 입력하고자 하는 단어일 확률에 기초하여 매칭되는 단어들의 서브세트를 순위화하여 제시함으로써 생성된다. 이 확률은 일반인에 의한 각 매칭되는 단어의 전체적인 사용 확률에 기초할 수 있다.
이러한 단어 예측 방법에 대한 한가지 단점은 입력되고 있는 문자들과 연관된 컨텍스트를 고려하지 않는다는 것이다. 컨텍스트는 사용자가 사용하고 있는 애플리케이션(즉, SMS(short message service) 또는 이메일 애플리케이션), 및 사용자가 통신하고 있는 대상, 사용자의 위치, 날짜 또는 시간, 사용자가 이전에 누구와 통신하였는지, 또는 심지어 사용자와 연관된 기분을 포함할 수 있다. 통상적으로, 사용자는 대화의 컨텍스트에 따라 달라질 수 있는 어휘 세트를 사용한다. 예를 들어, 사용자는 친구와의 대화와 사업 대상과의 대화에서 상이한 어구 세트를 사용할 수 있으며, 또는 워드 프로세싱 애플리케이션을 사용할 때와 SMS 애플리케이션을 사용할 때 상이한 어구 세트를 사용할 수 있다. 예측을 생성할 때 컨텍스트를 고려하지 않으면, 사용자는 너무 넓거나 또는 특정 컨텍스트에 적합하지 않은 단어 예측을 수신할 수 있다.
모바일 장치에서, 모바일 장치에 대해 컨텍스트가 결정된다. 컨텍스트는 모바일 장치 환경의 특성에 기초하여 결정되는데, 예컨대 사용 중인 현재의 애플리케이션, 모바일 장치의 사용자가 상호작용하고 있거나 또는 대화하고 있는 임의의 대상, 현재의 날짜 및/또는 시간, 현재 대화의 주제, 현재 대화의 스타일 등을 포함할 수 있다. 결정된 컨텍스트 및 사용자 생성 텍스트와 연관된 문자열 세트에 기초하여, 사용자 생성 텍스트에 대해 하나 이상의 문자열 예측이 생성된다. 문자열 예측은 사용자 생성 텍스트의 제안된 완성본으로서 사용자에게 제시될 수 있다. 이에 갈음하여 또는 이에 더하여, 결정된 컨텍스트에 기초하여 음성 노트 또는 이모티콘이 생성될 수 있다.
일 구현예에서, 컴퓨팅 장치에 의해 문자열이 수신된다. 수신된 문자열은 애플리케이션과 연관된다. 수신된 문자열에 대한 컨텍스트는 컴퓨팅 장치에 의해 결정된다. 문자열 예측이 수신된 문자열 및 결정된 컨텍스트에 기초하여 생성된다. 각각의 문자열 예측은 문자열을 포함한다. 문자열 예측의 문자열 중 하나 이상이 컴퓨팅 장치에 의해 제공된다. 제공된 문자열 중 하나의 선택의 표시가 컴퓨팅 장치에 의해 수신된다. 선택의 표시에 응답하여, 선택된 문자열이 컴퓨팅 장치의 애플리케이션에게 제공된다.
일 구현예에서, 수신된 문자열에 대한 컨텍스트가 결정된다. 수신된 문자열에 의해 기준이 만족되는지 여부가 결정된다. 수신된 문자열에 의해 기준이 만족되면, 수신된 문자열이 컨텍스트와 연관된 복수의 문자열에 더해진다.
본 개요는 후속하여 발명의 상세한 설명 부분에서 설명되는 개념들 중 선택된 것들을 단순화된 형태로 소개하고자 제공되는 것이다. 본 개요는 청구항의 청구대상의 핵심적인 특징이나 필수적인 특징들을 밝히고자 함이 아니며, 청구항의 청구대상의 범위를 결정하는 데 도움이 되고자 함도 아니다.
전술한 개요 및 후술하는 실시예에 대한 상세한 설명은 첨부 도면을 참고하면 보다 잘 이해될 수 있을 것이다. 실시예들을 예시하기 위해, 실시예들의 구성이 도면에 도시되어 있는데, 이들 실시예는 개시된 특정 방법 및 수단으로 한정되지 않는다.
도 1은 컨텍스트를 이용한 문자열 예측의 선택 및 프리젠테이션을 위한 예시적인 환경을 도시한 것이다.
도 2는 예시적인 후보 예측 생성기를 도시한 것이다.
도 3은 컨텍스트를 이용하여 문자열 예측을 제공하는 방법의 구현예의 동작 흐름도이다.
도 4는 컨텍스트를 업데이트하는 방법의 구현예의 동작 흐름도이다.
도 5는 예시적인 실시예 및 특징들이 구현될 수 있는 예시적인 컴퓨팅 환경을 도시한 것이다.
도 1은 컨텍스트에 기초한 문자열 예측의 선택 및 프리젠테이션을 위한 예시적인 환경(100)을 도시한 것이다. 환경(100)은 복수의 컴퓨팅 장치(115)(예컨대, 컴퓨팅 장치(115a-n))를 포함할 수 있다. 컴퓨팅 장치(115)는 셀 폰, 스마트 폰, 휴대용 미디어 플레이어, 게임 콘솔 등과 같은 모바일 장치를 포함하는 다양한 컴퓨팅 장치일 수 있다. 컴퓨팅 장치(115)는 네트워크(180)를 통해 다른 컴퓨팅 장치와 통신할 수 있다. 네트워크(180)는 PSTN(public switched telephone network), 셀룰러 전화망, 및 패킷 교환 네트워크(예컨대, 인터라넷)를 포함하는 다양한 유형의 네트워크일 수 있다. 적절한 컴퓨팅 장치(115)의 예로는 도 5를 참조하여 설명되는 컴퓨팅 시스템(500)을 들 수 있다.
각각의 컴퓨팅 장치(115)는 운영 체제(125) 및 사용자 인터페이스(120)를 포함할 수 있다. 운영 체제(125)는 다양한 유형의 기존의 운영 체제를 포함할 수 있다. 컴퓨팅 장치(115)의 사용자는 사용자 인터페이스(120)를 사용하여 하나 이상의 문자를 운영 체제(125)에 입력할 수 있다. 사용자 인터페이스(120)는 예를 들어 소프트웨어 키보드 또는 하드웨어 키보드를 포함하는 다양한 인터페이스를 포함할 수 있다.
각각의 컴퓨팅 장치(115)는 또한 하나 이상의 애플리케이션(135)(예컨대, 애플리케이션(135a-n))을 실행할 수 있다. 애플리케이션(135)은 애플리케이션 계층(130)에서 실행될 수 있다. 애플리케이션(135)은, 예컨대 이메일 애플리케이션, SMS(short message service) 또는 텍스트 애플리케이션, 체트(chat) 애플리케이션, 소셜 네트워킹 애플리케이션, 및 워드 프로세싱 애플리케이션을 포함할 수 있다. 컴퓨팅 장치(115)는 애플리케이션(135)을 사용하여 텍스트 기반 메시지를 교환할 수 있다. 예를 들어, 각각의 컴퓨팅 장치는 SMS 애플리케이션을 실행할 수 있고 애플리케이션을 통해 SMS 메시지를 송신하고 수신할 수 있다. 본 명세서에서는 일련의 관련 텍스트 기반 메시지를 대화(conversation)라고 한다.
컴퓨팅 장치의 각각의 사용은 사용자 인터페이스(120) 및 운영 체제(125)를 통해 애플리케이션(135)과 상호작용할 수 있다. 일 구현예에서, 사용자는 사용자 인터페이스(120)의 소프트 입력 패널을 통해 문자들을 입력할 수 있다. 입력된 문자들은 운영 체제(125)에 의해 수신될 수 있고, 하나 이상의 애플리케이션(135)에 제공될 수 있다.
사용자 인터페이스(120)에 문자 단위로 텍스트를 입력하는 것은 컴퓨팅 장치(115)의 사용자에게 번거로울 수 있다. 따라서, 컴퓨팅 장치(115)는 후보 예측 생성기(140)를 더 포함할 수 있다. 후보 예측 생성기(140)는 하나 이상의 문자열 예측을 생성할 수 있다. 문자열 예측은 후보 예측 생성기(140)가 사용자가 사용자 인터페이스(120)에 입력하고자 하는 것을 예측하는 문자열을 포함할 수 있다. 문자열 예측은 문자열에 대한 신뢰 값을 포함할 수 있다. 이에 갈음하여 또는 이에 더하여, 후보 예측 생성기(140)는 음성 노트, 이모티콘, 또는 다른 통신 또는 메시지 유형을 생성할 수 있다. 예측된 문자열은, 단어들, 구들, 문장들, 이모티콘들, 구두점들 또는 기타 부호들, 또는 이들의 조합을 포함하는 하나 이상의 문자의 임의의 시퀀스를 포함할 수 있다.
도 2와 관련하여 설명되는 바와 같이, 문자열 예측은 입력된 문자 또는 문자열과 연관된 하나 이상의 컨텍스트에 부분적으로 기초할 수 있다. 본 명세서에서 사용된 컨텍스트는 입력된 문자 또는 문자열과 연관되는 환경 또는 대화의 하나 이상의 문자들, 특징들, 또는 특성을 포함할 수 있다. 컨텍스트의 특징들 또는 특성들은, 예를 들어 수신된 텍스트가 대화에 참가하고 있는 대상들, 접촉대상(contact) 또는 다른 사용자들을 위한 특정 애플리케이션, 현재의 날짜 및/또는 시간, 대화의 톤(즉, 슬프다거나 또는 행복한), 대화의 주제, 및 대화의 스타일(즉, 공식적 또는 비공식적), 사용자의 위치, 사용자가 이전에 대화한 사용자들, 및 사용자의 기분을 포함할 수 있다.
각각의 컨텍스트는 문자열 세트와 연관될 수 있다. 컨텍스트와 연관된 문자열 세트는 사용자에 의해 컨텍스트 동안 사용되거나 제공된 문자열 또는 그렇지 않으면 컨텍스트와 연관되는 것으로 알려진 문자열을 포함할 수 있다. 예를 들어, SMS 애플리케이션과 연관된 컨텍스트는 "LOL"과 같은 텍스트 메시지에 빈번하게 사용되는 문자열과 연관될 수 있다. 1월 1일과 같은 날짜와 연관된 컨텍스트는 "Happy New Year"와 같은 신정 휴일과 연관되는 문자열을 포함할 수 있다. 사용자의 특정 연락처와 연관된 컨텍스트는 그 연락처와 연락할 때 사용자가 입력한 하나 이상의 문자열을 포함할 수 있다. 컨텍스트와 연관된 문자열 세트의 문자열들은 확률과 연관될 수 있다. 문자열의 확률은 그 컨텍스트에 대해 그 문자열이 사용자 또는 다른 사용자들에 의해 제공된 횟수에 기초할 수 있다.
일부 구현예에서, 사용자가 문자열의 하나 이상의 문자들을 입력할 때, 후보 예측 생성기(140)는 입력된 문자열의 컨텍스트를 결정할 수 있고, 입력된 문자열 및 결정된 컨텍스트에 기초하여 문자열 예측 세트를 생성할 수 있다. 일부 구현예에서, 문자열 예측은 입력된 문자열을 접두사로서 갖거나 또는 입력된 문자열과 유사한 컨텍스트와 연관된 문자열 세트로부터 하나 이상의 문자열을 포함할 수 있다. 이에 더하여, 문자열 예측은 또한, 예컨대 사전과 같이 하나 이상의 모델에 기초하여 생성된 문자열 예측을 포함할 수 있다.
사전이나 모델에만 기초하기보다는 컨텍스트에 기초하여 문자열 예측을 생성함으로써, 생성된 문자열 예측은 사전이나 모델에 사용된 단어 및 구로 한정되지 않는다. 또한, 컨텍스트에 기초한 문자열 예측은 사전이나 모델에 기초하는 문자열 예측보다 더 좁게 조정될 수 있기 때문에, 이들 문자열은 사용자가 입력하고자 하는 문자열을 사전이나 모델에 기초하는 문자열 예측의 문자열보다 더 정확하게 나타낼 수 있다.
도 2는 예시적인 후보 예측 생성기(140)를 도시한 것이다. 도시된 바와 같이, 후보 예측 생성기(140)는 컨텍스트 엔진(240) 및 예측 모델(205)을 포함하는(이들로 제한되지는 않는다) 몇몇 컴포넌트를 포함할 수 있다. 후보 예측 생성기(140)의 컴포넌트들 중 일부 또는 전부는 도 5에 도시된 컴퓨팅 시스템(500)과 같은 컴퓨팅 시스템에 의해 구현될 수 있다.
후보 예측 생성기(140)는 운영 체제(125)로부터 입력된 텍스트(230)를 수신할 수 있다. 입력된 텍스트(230)는 문자열 또는 문자를 포함할 수 있고 컴퓨팅 장치(115)의 사용자에 의해 애플리케이션(135)에게 제공된 텍스트일 수 있다. 입력된 텍스트(230)는 사용자가 애플리케이션(135)에게 제공하고자 하거나 또는 제공하고자 한 문자열과 관련되거나 그 일부일 수 있다. 예를 들어, 입력된 텍스트(230)는 사용자가 입력하고자 하는 문자열의 첫 번째 문자일 수도 있고, 또는 입력된 텍스트(230)는 사용자가 입력하고자 한 문자열의 오탈자일 수도 있다. 따라서, 후보 예측 생성기(140)는 구문 예측 및 스펠링 제안 모두를 하나 이상의 애플리케이션(135)에게 제공하는데 사용될 수 있다.
컨텍스트 엔진(240)은 입력된 텍스트(230)에 대해 하나 이상의 컨텍스트(210)를 결정할 수 있고, 컨텍스트 저장부(260)로부터 결정된 하나 이상의 컨텍스트(210)를 가져올 수 있다. 일부 구현예에서, 각각의 컨텍스트(210)는 복수의 문자열을 포함하거나 이들과 연관될 수 있다. 컨텍스트(210)와 연관된 복수의 문자열은 컨텍스트(210)에 대해 컴퓨팅 장치(115)의 사용자 또는 다른 컴퓨팅 장치(115)의 다른 사용자들에 의해 입력된 문자열을 포함할 수 있다. 예를 들어, 워드 프로세싱 애플리케이션과 연관된 컨텍스트(210)에 대해, 복수의 문자열은 사용자에 의해 워드 프로세싱 애플리케이션에 빈번히 입력된 하나 이상의 문자열을 포함할 수 있다. 공식적인 대화 스타일과 연관된 컨텍스트에 있어서, 복수의 문자열은 사용자 또는 다른 사용자에 의해 공식적 대화 동안 통상적으로 사용된 하나 이상의 문자열을 포함할 수 있다. 일부 구현예에서, 컨텍스트(210)와 연관된 복수의 문자열의 문자열들은 컴퓨팅 장치의 하나 이상의 다른 사용자에 의해 사용된 문자열에 기초할 수 있으며 외부 관리자에 의해 수집되어 컨텍스트 엔진(240)에 제공될 수 있다. 이에 갈음하여 또는 이에 더하여, 후술하는 바와 같이 컨텍스트(210)와 연관된 문자열은 컨텍스트 엔진(240)에 의해 결정될 수 있다.
전술한 바와 같이, 컨텍스트는 사용자가 입력된 텍스트(230)를 제공하고 있는 환경 또는 대화(220)의 하나 이상의 특징, 특성, 또는 속성을 포함할 수 있다. 일부 구현예에서, 컨텍스트 엔진(240)은, 입력된 텍스트(230)와 연관된 특징을 결정하고 결정된 특징과 매칭되는 컨텍스트 저장부(260)의 하나 이상의 컨텍스트(210)를 결정함으로써 입력된 텍스트(230)에 대한 하나 이상의 컨텍스트(210)를 결정할 수 있다.
컨텍스트(210)의 특징은 입력된 텍스트(230)와 연관되는 애플리케이션(135)의 유형을 포함할 수 있다. 입력된 텍스트(230)와 연관되는 애플리케이션(135)은 사용자가 입력된 텍스트(230)를 제공하고 있는 애플리케이션(135)일 수 있다. 애플리케이션(135)의 유형은, 예컨대 SMS 애플리케이션, 워드 프로세싱 애플리케이션, 이메일 애플리케이션, 및 소셜 네트워킹 애플리케이션을 포함할 수 있다. 다른 유형의 애플리케이션이 지원될 수 있다. 컨텍스트 엔진(240)은, 예컨대, 운영 체제(120)로부터 애플리케이션(135)의 유형을 결정할 수 있다.
컨텍스트(210)의 특징은 시간 및/또는 날짜 관련 특징을 포함할 수 있다. 사용자에 의해 제공되는 단어 또는 구의 유형은, 예컨대 시간, 요일, 또는 월에 기초하여 변할 수 있다. 예를 들어, 사용자는 오후에는 "Good Afternoon"을 그리고 오전에는 "Good Morning"이란 구를 사용할 수 있다. 사용자에 의해 사용된 단어 또는 구는 주중 동안과 주말 동안에 상이할 수 있다. 이와 유사하게, 사용자는 예컨대, 제각기의 휴일을 근방의 기간 동안 "Happy St. Patrick's Day" 또는 "Happy Mother's Day"와 같은 특정 휴일 관련 단어나 구를 더 많이 사용할 수 있다. 컨텍스트 엔진(240)은, 예컨대 운영 체제로부터 시간이나 날짜 관련 특징을 결정할 수 있다.
컨텍스트(210)의 특징은 입력된 텍스트(230)와 연관된 대화(220)로부터 결정될 수 있다. 일부 구현예에서, 대화(220)는 사용자 및 대화(220)의 대상인 하나 이상의 다른 사용자에 의해 생성된 텍스트 기반 메시지로부터의 하나 이상의 문자열을 포함할 수 있다. 예를 들어, 대화(220)는 컴퓨팅 장치(115)의 사용자와 다른 컴퓨팅 장치(115)의 하나 이상의 다른 사용자 사이에서 전송된 일련의 텍스트, 이메일, 또는 소셜 네트워킹 메시지일 수 있다. 또한, 컨텍스트의 특징은 대화 동안 언급되거나 제기된 개체나 대상을 포함할 수 있다.
입력된 텍스트(230)와 연관된 대화(220)로부터 컨텍스트 엔진(240)에 의해 결정될 수 있는 컨텍스트(210)의 특징들의 예로는 대화(220)와 연관된 하나 이상의 대상을 들 수 있다. 예를 들어, 사용자가 2명의 친구와 이메일 대화를 하고 있을 수 있다. 이들 친구는 대화(220)의 대상일 수 있다. 사용자들은 자신이 대화하고 있는 대상(예컨대, 자신의 엄마나 친구)에 따라서 상이한 단어나 구를 사용할 수 있다. 컨텍스트 엔진(240)은 입력된 텍스트(230)와 연관된 애플리케이션(135)으로부터 대화(220)의 대상을 결정할 수 있다.
입력된 텍스트(230)와 연관된 대화(220)로부터 컨텍스트 엔진(240)에 의해 결정될 수 있는 컨텍스트(210)의 특징들의 다른 예로는 대화(220)의 스타일 또는 어조를 들 수 있다. 대화(220)의 스타일의 예로는 공식(formal), 비공식(informal), 또는 비즈니스(business)를 들 수 있다. 어조의 예로는 심각한(serious), 슬픈(sad), 행복한(happy), 흥분한(excited)을 들 수 있다. 다른 어조 또는 스타일이 지원될 수도 있다. 통상적으로, 사용자는 대화(220)에서 대화(220)의 스타일이나 어조와 매칭되는 단어나 구 세트를 사용한다.
컨텍스트 엔진(240)은 대화(220)에 사용된 단어나 구에 기초하여 대화(220)의 스타일이나 어조를 결정할 수 있다. 일부 구현예에서, 컨텍스트 엔진(240)은 대화(220)에서 대화의 스타일이나 어조를 나타내는 단어나 구를 찾을 수 있고 결정된 단어에 기초하여 대화(220)의 스타일이나 어조를 결정할 수 있다. 예를 들어, "LOL"과 같은 비공식 단어의 사용은 대화(220)의 스타일이 비공식적임을 나타낼 수 있고, 감탄 부호(exclamation mark)의 사용은 그 대화의 어조가 행복하거나 흥분될 가능성이 높음을 나타낼 수 있다. 일부 구현예에서, 컨텍스트 엔진(240)은 대화(220)를 연속적으로 모니터링할 수 있고 대화(220)가 진행함에 따라 대화(220)의 스타일이나 어조를 업데이트하거나 변경할 수 있다.
입력된 텍스트(230)와 연관된 대화(220)로부터 컨텍스트 엔진(240)에 의해 결정될 수 있는 컨텍스트(210)의 특징들의 추가적인 예로는 대화(220)의 주제를 들 수 있다. 전술한 스타일 및 어조와 유사하게, 컨텍스트 엔진(240)은 대화(220)에서 특정 단어 또는 구를 찾음으로써 대화의 주제를 결정할 수 있다. 예를 들어, 대화(220)에서 "뉴욕(New York)" 및 "여행(trip)"이 다수 출현하는 것은 대화(220)가 뉴욕이나 휴가에 대한 것임을 나타낼 수 있다. 컨텍스트 엔진(240)은 대화(220)를 계속 모니터링할 수 있고, 대화(220)가 진행됨에 따라 대화(220)의 주제를 업데이트하거나 변경할 수 있다.
일부 구현예에서, 컨텍스트 엔진(240)은 컨텍스트 저장부(260)로부터 각각의 결정된 특징에 매칭되는 컨텍스트(210)를 검색할 수 있다. 따라서, 컨텍스트 엔진(240)이 입력된 텍스트(230)와 연관된 컨텍스트(210)가 공식적인 어조의 특징을 가지며 대화의 대상이 사용자의 부모라고 결정하면, 컨텍스트 엔진(240)은 컨텍스트 저장부(260)로부터 공식적 어조의 특징을 가지며 대화의 대상이 사용자의 부모인 컨텍스트(210)를 검색할 수 있다. 그러한 컨텍스트(210)가 컨텍스트 저장부(260)에 존재하지 않으면, 컨텍스트 엔진(240)은 결정된 특징에 가장 가깝거나 가장 유사한 특징을 갖는 컨텍스트(210)를 선택할 수 있다. 이에 갈음하여 또는 이에 더하여, 컨텍스트 엔진(240)은 컨텍스트 저장부(260)로부터의 결정된 특징들 모두를 갖는 단일 컨텍스트(210)를 검색하기보다, 각 특징에 대해 컨텍스트 저장부(260)로부터의 특징을 갖는 컨텍스트(210)를 검색할 수 있다.
후보 예측 생성기(140)는 입력된 텍스트(230) 및 결정된 하나 이상의 컨텍스트(210)에 기초하여 하나 이상의 문자열 예측(215)을 생성할 수 있다. 일부 구현예에서, 문자열 예측(215)은 복수의 문자열로부터 입력된 텍스트(230)를 접두사로서 갖는 하나 이상의 컨텍스트(210) 각각과 연관된 문자열을 결정함으로써 후보 예측 생성기(140)에 의해 생성될 수 있다. 결정된 문자열에 대한 신뢰 값은, 예컨대 결정된 문자열 및 하나 이상의 컨텍스트(210)의 각각의 문자열과 연관된 확률을 포함하는 하나 이상의 컨텍스트(210)의 수에 의해 결정될 수 있다.
문자열 예측(215)이 스펠링 제안으로 사용되는 구현예에서, 후보 예측 생성기(140)는 복수의 문자열로부터 입력된 텍스트(230)를 접두사로 갖는 하나 이상의 컨텍스트(210)의 각각과 연관된 문자열을 결정하기보다는 복수의 문자열로부터 입력된 텍스트(230)와 유사한 문자열을 결정할 수 있다. 문자열들의 유사도를 결정하는 임의의 방법이 이용될 수 있다. 또는 후보 예측 생성기(140)는 입력된 텍스트(230)가 복수의 문자열로부터 하나 이상의 컨텍스트(210) 각각과 연관된 문자열의 임의의 가능한 틀린 철자를 포함하고 있는지를 결정할 수 있고, 결정된 문자열을 이용하여 문자열 예측을 생성할 수 있다.
후보 예측 생성기(140)는 하나 이상의 생성된 문자열 예측(215)을 제공할 수 있다. 문자열 예측(215)이 많이 있는 경우, 후보 예측 생성기(140)는 각각의 문자열 예측(215)과 연관된 신뢰 값에 기초하여 어느 문자열 예측(215)을 제공할 지 선택할 수 있다. 신뢰 값은 결정된 하나 이상의 컨텍스트(210)와 연관된 문자열 각각과 연관된 확률에 기초할 수 있다. 구문 예측 구현예의 경우, 제공된 문자열 예측(215)의 문자열은 사용자 인터페이스(120)의 소프트 입력 패널을 통해 사용자에게 디스플레이될 수 있다. 사용자가 디스플레이된 문자열을 선택하면, 그 문자열은 애플리케이션(135)에 대한 입력으로서 제공될 수 있다.
스펠링 제안 구현예에 있어서, 제공된 문자열 예측(215)의 문자열은 입력된 텍스트(230) 가까이에 디스플레이되거나 또는 선택 메뉴로서 디스플레이될 수 있다. 사용자가 디스플레이된 문자열을 선택하면, 선택된 문자열은 애플리케이션(135)에서 입력된 텍스트(230)를 대체할 수 있다.
컨텍스트(210)에서, 후보 예측 생성기(140)는 예측 모델(205)을 사용하여 하나 이상의 문자열 예측(215)을 생성할 수도 있다. 일 구현예에서, 예측 모델(205)은 사전을 포함할 수 있고, 다양한 문자열(예컨대, 단어 또는 구)을 각 문자열의 확률과 함께 포함할 수 있다. 각 문자열의 확률은, 예컨대 일반적인 사용에서 각 문자열의 인기를 반영할 수 있다. 이들 확률은, 하나 이상의 애플리케이션(135)에 있어서 하나 이상의 대화(220) 기간에 걸쳐 사용자에 의해 제공된 문자열을 수집하고 분석함으로써 결정되었을 수도 있고, 또는 예컨대 신문이나 잡지 또는 기타 언어 소스로부터의 문자열의 분석에 기초할 수 있다. 다른 유형의 방법이 이용될 수 있다.
일부 구현예에서, 후보 예측 생성기(140)는 하나 이상의 컨텍스트(210)를 사용하여 생성된 문자열 예측(215)을 예측 모델(205)에 의해 생성된 문자열 예측(215)과 결합할 수 있다. 예를 들어, 후보 예측 생성기(140)는 하나 이상의 컨텍스트(210)를 사용하여 생성된 최상위(즉, 최고 신뢰 값을 갖는) 문자열 예측 및 예측 모델(205)의 최상위 문자열 예측을 선택할 수 있으며, 선택된 문자열 예측들을 결합할 수 있다.
다른 구현예에서, 후보 예측 생성기(140)는 하나 이상의 컨텍스트(210) 및 예측 모델(205)을 사용하여 하나 이상의 문자열 예측(215)을 생성할 수 있다. 예를 들어, 하나 이상의 컨텍스트(210)와 연관된 복수의 문자열의 문자열들이 모델(205)에 포함될수 있거나, 또는 모델(205) 내의 문자열과 연관된 확률이 하나 이상의 컨텍스트(210)와 연관된 문자열에 기초하여 조정될 수 있다. 후보 예측 생성기(140)에 의해 예측 모델(205)에 행해진 임의의 변경 또는 조정은 임시적일 수 있으며, 컨텍스트 엔진(240)이 하나 이상의 상이한 컨텍스트(210)를 결정하면 역전될 수도 있다.
컨텍스트 엔진(240)은 결정된 컨텍스트(210)를 입력된 텍스트(230)에 기초하여 유지하거나 업데이트할 수 있다. 컨텍스트 엔진(240)은 애플리케이션(135)으로부터 문자열을 수신할 수 있다. 문자열은, 애플리케이션에 제공된 문자열 또는 애플리케이션(135)과 연관된 대화(220)의 일부분인 문자열일 수 있다. 예를 들어, 컴퓨팅 장치(115)의 사용자는 입력된 텍스트(230) "May the force be with you"를 SMS 애플리케이션에 특정 대상과의 대화(220)의 일부로서 제공할 수 있다. 입력된 텍스트(230)와 연관된 컨텍스트는 SMS 애플리케이션의 특징들 및 대화(220)와 연관된 대상을 이용하여 컨텍스트 엔진(240)에 의해 결정될 수 있다.
컨텍스트 엔진(240)은 입력된 텍스트(230)의 문자열이 이미 하나 이상의 컨텍스트(210)와 연관된 문자열의 일부인지를 판정할 수 있다. 이에 갈음하여 또는 이에 더하여, 컨텍스트 엔진(240)은 입력된 텍스트(230)의 문자열과 유사한 문자열이 이미 하나 이상의 컨텍스트(210) 각각과 연관된 문자열의 일부인지를 판정할 수 있다. 유사한 문자열을 판정하는 어떠한 방법도 이용될 수 있다. 입력된 텍스트(230)(또는 유사한 문자열)가 이미 하나 이상의 컨텍스트(210)와 연관된 문자열의 일부이면, 하나 이상의 컨텍스트(210)와 연관된 복수의 문자열 각각 내의 문자열(또는 유사한 문자열)의 확률이 증가할 수 있다. 이 확률은, 예컨대 고정된 양만큼 증가할 수 있다.
입력된 텍스트(230)의 문자열(또는 유사한 문자열)이 하나 이상의 컨텍스트(210)와 연관된 문자열의 일부가 아니면, 컨텍스트 엔진(240)은 입력된 텍스트(230)의 문자열을 하나 이상의 컨텍스트(210)와 연관된 복수의 문자열에 추가할지 여부를 결정할 수 있다. 일부 구현예에서, 입력된 텍스트(230)의 문자열이 컨텍스트(210)와 연관된 기준을 만족시키면 그 문자열은 컨텍스트(210)와 연관된 복수의 문자열에 추가될 수 있다. 예를 들어, 이 기준은 그 문자열이 임계 횟수(예컨대 3회)보다 더 많은 입력된 텍스트(230)의 부분일 것일 수 있다. 다른 임계 횟수 또는 기준이 사용될 수도 있다. 각각의 컨텍스트(210)는 자신의 기준을 가질 수 있거나, 또는 이 기준이 컨텍스트 저장부(260) 내 각 컨텍스트(210)에 대해 동일할 수 있다. 따라서, 위 예를 계속하면, 문자열 "May the force be with you"가 각각의 컨텍스트(210)에 대해 3회를 초과하여 수신되면, 문자열 "May the force be with you"이 SMS 애플리케이션에 대한 컨텍스트(210) 및 대화(220)와 연관된 대상에 대한 컨텍스트(210)에 추가될 수 있다.
도 3은 하나 이상의 컨텍스트를 사용하여 문자열 예측을 제공하는 방법(300)의 구현예의 동작 흐름도이다. 방법(300)은, 예컨대, 컴퓨팅 장치(115)의 후보 예측 생성기(140)에 의해 구현될 수 있다.
301에서 문자열이 수신된다. 이 문자열은 사용자로부터 사용자 인터페이스(120)를 통해 후보 예측 생성기에 의해 입력된 텍스트(230)로서 생성된다. 예를 들어, 사용자는 소프트웨어 키보드를 사용하여 하나 이상의 문자를 텍스트 필드에 입력했을 수 있다. 수신된 문자열은 사용자가 하나 이상의 대상과의 대화의 일부로서 애플리케이션(135)에 제공하고자 하는 문자열의 접두어일 수 있다. 애플리케이션(135)은, 예컨대, SMS 애플리케이션, 소셜 네트워킹 애플리케이션, 및 이메일 애플리케이션 중 하나 이상일 수 있다.
303에서 문자열에 대해 컨텍스트가 결정된다. 컨텍스트(210)는 후보 예측 생성기(140)의 컨텍스트 엔진(240)에 의해 결정될 수 있다. 컨텍스트 엔진(240)은 수신된 문자열에 대한 단일 컨텍스트(210)를 결정하거나 또는 복수의 컨텍스트(210)를 결정할 수 있다. 컨텍스트(210)는 컨텍스트 저장부(260)에 저장된 컨텍스트(210)로부터 결정될 수 있다. 각각의 컨텍스트(210)는 특정 컨텍스트(210) 동안 사용자, 또는 다른 사용자들에 의해 빈번히 제공된 문자열인 복수의 문자열과 연관될 수 있다. 복수의 문자열 각각은 또한 컨텍스트(210) 동안 문자열이 얼마나 빈번하게 제공되었는지를 나타내는 측정치인 확률을 포함할 수 있다.
일부 구현예에서, 컨텍스트를 결정하는 것은 수신된 문자열과 연관된 애플리케이션(135) 또는 수신된 문자열과 연관된 날짜 또는 시간에 기초하여 컨텍스트를 결정하는 것을 포함할 수 있다. 이에 갈음하여 또는 이에 더하여, 예컨대, 컨텍스트는 수신된 문자열과 연관된 대화(220)에 기초할 수 있으며, 컨텍스트는 대화 상대방, 대화의 주제, 또는 대화의 스타일에 기초하여 결정될 수 있다. 대화의 주제 또는 스타일은 대화 내에서 특정 스타일 또는 주제를 나타내는 문자열을 찾아냄으로써 컨텍스트 엔진(240)에 의해 결정될 수 있다.
305에서 수신된 문자열 및 결정된 컨텍스트에 기초하여 복수의 문자열 예측이 생성된다. 복수의 문자열 예측은 문자열 예측(215)을 포함할 수 있고 수신된 문자열을 사용하여 후보 예측 생성기(140)에 의해 생성될 수 있고 복수의 문자열은 결정된 컨텍스트(210)와 연관될 수 있다. 일부 구현예에서, 문자열 예측(215)은 각각 복수의 문자열 중에서 결정된 컨텍스트(210)와 연관된 문자열을 포함할 수 있으며, 복수의 문자열 중에서 수신된 문자열을 접두어로서 포함하는 문자열을 결정함으로써 생성되었을 수 있다. 또는 문자열 예측(215)은 복수의 문자열 중에서 수신된 문자열과 유사한 문자열을 결정함으로써 생성되었을 수 있다. 문자열 예측(215)은 각각 복수의 문자열에서의 상기 문자열의 확률에 기초하는 신뢰 값을 더 포함할 수 있다.
일부 구현예에서, 복수의 문자열 예측(215)은 또한 예측 모델(205) 및 결정된 컨텍스트(210)를 사용하여 후보 예측 생성기(140)에 의해 생성될 수도 있다. 예측 모델(205)은 예컨대 사전을 포함하거나 또는 사전에 기초할 수 있다.
307에서 복수의 문자열 예측 중 하나 이상의 문자열이 제공된다. 하나 이상의 문자열은 후보 예측 생성기(140)에 의해 문자열 예측(215)의 신뢰 값에 따라 제공될 수 있다. 일부 구현예에서, 최고 신뢰 값을 갖는 문자열 예측(215)의 문자열이 제공될 수 있다. 문자열들은, 예컨대 사용자 인터페이스(120)의 소프트 입력 패널에 문자열을 디스플레이함으로써 제공될 수 있다. 문자열이 수신된 문자열에 대한 스펠링 제안으로서 제공될 경우, 문자열은 운영 체제(125)에 의해 수신된 문자열에 인접하게 디스플레이될 수 있다.
309에서 제공된 하나 이상의 문자열 중 한 문자열의 선택의 표시가 수신된다. 선택의 표시는 사용자 인터페이스(125)로부터 운영 체제(125)에 의해 수신될 수 있고 후보 예측 생성기(140)로 제공될 수 있다. 예를 들어, 사용자는 사용자 인터페이스(120)의 소프트 입력 패널에서 문자열들 중 하나를 선택하거나 터치할 수 있다.
311에서 선택된 문자열이 입력으로서 제공된다. 선택된 문자열은 후보 예측 생성기(140)에 의해 대화(220)의 일부로서 또는 수신된 문자열에 대한 스펠링 대체물로서 애플리케이션(135)에 제공될 수 있다.
일부 구현예에서, 선택된 문자열은 또한 결정된 컨텍스트(210)를 후보 예측 생성기(140)의 컨텍스트 엔진(240)에 의해 업데이트하는데 사용될 수도 있다. 예를 들어, 결정된 컨텍스트(210)와 연관된 복수의 문자열 내의 선택된 문자열과 연관된 확률은 후보 예측 생성기(140)의 커텍스트 엔진(240)에 의해 증가될 수 있다.
도 4는 컨텍스트를 업데이트하는 방법(400)의 구현예의 동작 흐름도이다. 방법(400)은, 예컨대 후보 예측 생성기(140)에 의해 구현될 수 있다.
401에서 문자열이 수신된다. 이 문자열은 운영 체제(125)로부터 후보 예측 생성기(140)에 의해 수신될 수 있다. 이 문자열은 애플리케이션(135)의 사용자에 의해 입력되었거나 선택되었을 수 있다. 이 문자열은 하나 이상의 단어 또는 구를 포함할 수 있다.
403에서 수신된 문자열에 대해 컨텍스트가 결정된다. 컨텍스트(210)는 후보 예측 생성기(140)의 컨텍스트 엔진(240)에 의해 결정될 수 있다. 컨텍스트(210)는 특정 컨텍스트(210) 동안, 사용자 또는 다른 사용자들에 의해 빈번하게 제공된 복수의 문자열과 연관될 수 있다. 복수의 문자열 각각은 또한 그 문자열이 컨텍스트(210) 동안 얼마나 빈번하게 제공되었는지에 대한 측정치인 확률을 포함할 수 있다.
405에서 결정된 컨텍스트와 연관되는 복수의 문자열이 수신된 문자열을 포함하는지가 판정된다. 이 판정은 후보 예측 생성기(140)의 컨텍스트 엔진(240)에 의해 행해질 수 있다. 복수의 문자열이 그 문자열을 포함하면, 방법(400)은 407에서 계속 진행된다. 복수의 문자열이 그 문자열을 포함하지 않으면, 방법(400)은 409에서 계속 진행될 수 있다.
407에서 복수의 문자열 내의 상기 문자열의 확률이 증가한다. 이 확률은 후보 예측 생성기(140)의 컨텍스트 엔진(240)에 의해 증가할 수 있다. 예컨대, 컨텍스트 엔진(240)은 복수의 문자열 내의 수신된 문자열의 확률에 고정된 양을 추가함으로써 이 확률을 증가시킬 수 있다.
409에서 문자열이 기준을 만족시키는지 여부가 판정된다. 이 판정은 후보 예측 생성기(140)의 컨텍스트 엔진(240)에 의해 이루어질 수 있다. 일부 구현예에서, 이 기준은 문자열이 임계 횟수보다 더 많이 수신되는 것일 수 있다. 예를 들어, 문자열이 사용자에 의해 애플리케이션(135)에 3회(또는 구현예에 따라서 다른 사전결정된 횟수)보다 많이 입력되거나 제공된 후에 그 문자열이 결정된 컨텍스트(210)와 연관된 복수의 문자열에 추가될 수 있다. 다른 기준이 사용될 수도 있다. 기준이 만족되면, 방법(400)은 411에서 계속 진행될 수 있다. 그렇지 않으면, 방법(400)은 413에서 종료된다.
411에서 문자열이 컨텍스트와 연관된 복수의 문자열에 추가된다. 문자열은 후보 예측 생성기(140)의 컨텍스트 엔진(240)에 의해 추가될 수 있다. 일부 구현예에서, 추가된 문자열과 연관된 확률은, 예를 들어 새로 추가된 문자열에 대해 디폴트 값으로 설정할 수 있다.
도 5는 예시적인 실시예 및 특징들이 구현될 수 있는 예시적인 컴퓨팅 환경을 도시한 것이다. 컴퓨팅 시스템 환경은 적절한 컴퓨팅 환경의 일례일 뿐이며 그 사용 범위나 기능에 대해 어떠한 제한도 둘 의도는 없다.
수많은 다른 범용 또는 특수 목적 컴퓨팅 시스템 환경 또는 구성이 사용될 수도 있다. 사용하기에 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경, 및/또는 구성의 예로는 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩탑 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 임베디드 시스템, 임의의 전술한 시스템들 또는 장치들을 포함하는 분산 컴퓨팅 환경 등을 들 수 있지만, 이들로 한정되지는 않는다.
프로그램 모듈과 같이 컴퓨터에 의해 실행되는 컴퓨터 실행가능 명령어가 사용될 수도 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 태스크가 통신 네트워크 또는 다른 데이터 전송 매체를 통해 링크되는 원격 처리 장치에 의해 수행되는 분산 컴퓨팅 환경이 사용될 수 있다. 분산 컴퓨팅 한경에서, 프로그램 모듈 및 기타 데이터는 메모리 저장 장치를 포함하는 로컬 및 원격 컴퓨터 저장 매체에 위치할 수 있다.
도 5를 참조하면, 본 명세서에 기술된 특징들을 구현하는 예시적인 시스템은 컴퓨팅 시스템(500)과 같은 컴퓨팅 장치를 포함한다. 가장 기본적인 구성에서, 컴퓨팅 시스템(500)은 통상적으로 적어도 하나의 프로세싱 유닛(502) 및 메모리(504)를 포함한다. 컴퓨팅 장치의 정확한 구성 및 유형에 따라, 메모리(504)는 휘발성(예컨대, RAM), 비휘발성(ROM, 플래시 메모리 등) 또는 이 둘의 일부 조합일 수 있다. 이 가장 기본적인 구성은 도 5에 점선(506)으로 도시되어 있다.
컴퓨팅 시스템(500)은 추가적인 특징/기능을 가질 수 있다. 예를 들어, 컴퓨팅 시스템(500)은 자기 또는 광학 디스크 또는 테이프 등을 포함하는 추가 저장부(착탈식 및/또는 비착탈식)를 포함할 수 있다. 이러한 추가적인 저장부는 도 5에 착탈식 저장부(508) 및 비착탈식 저장부(510)로 도시되어 있다.
컴퓨팅 시스템(500)은 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨팅 시스템(500)에 의해 액세스될 수 있는 임의의 이용가능 매체일 수 있으며, 휘발성 및 비휘발성 매체, 착탈식 및 비착탈식 매체 모두를 포함한다.
컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 착탈식 및 비착탈식 매체를 포함한다. 메모리(504), 착탈식 저장부(508), 및 비착탈식 저장부(510)는 모두 컴퓨터 저장 매체의 예들이다. 컴퓨터 저장 매체는, RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광학 저장부, 자기 카세트, 자기 테이프, 자기 디스크 저장부 또는 기타 자기 저장 장치, 또는 원하는 정보를 저장하는데 사용될 수 있고 컴퓨팅 시스템(500)에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있지만, 이들로 한정되지는 않는다. 임의의 그러한 컴퓨터 저장 매체는 컴퓨팅 시스템(500)의 일부일 수 있다.
컴퓨팅 시스템(500)은 장치가 다른 장치 및/또는 인터페이스와 통신할 수 있게 하는 통신 연결부(512)를 포함할 수 있다. 컴퓨팅 시스템(500)은 또한 키보드(소프트웨어 또는 하드웨어), 마우스, 펜, 음성 입력 인터페이스, 터치 인터페이스 등과 같은 입력 장치(514)를 가질 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치(516)가 포함될 수도 있다. 이들 장치는 모두 당해 기술분야에 공지되어 있으므로 여기서 길게 논의할 필요는 없을 것이다.
본 명세서에 기술된 다양한 기법들은 하드웨어 또는 소프트웨어 또는 적절하다면 이들의 조합으로 구현될 수 있다. 따라서, 현재 개시된 청구대상의 방법 및 장치, 또는 소정의 특징들 또는 그 부분들은, 플로피 디스켓, CD-ROM, 하드 드라이브 또는 기타 머신 판독가능 저장 매체와 같은 유형의 매체로 구현된 프로그램 코드의 형태를 취할 수 있으며, 프로그램 코드가 컴퓨터와 같은 머신에 로드되어 실행될 때 이 머신이 현재 개시된 청구대상을 실시하는 장치가 된다.
예시적인 구현예들은 하나 이상의 독립형 컴퓨터 시스템의 상황에서 현재 개시된 청구대상의 특징들을 이용하는 것을 언급하고 있지만, 청구대상은 이들로 한정되지 않고, 오히려 네트워크나 분산 컴퓨팅 환경과 같은 임의의 컴퓨팅 환경과 관련하여 구현될 수 있다. 또한, 현재 개시된 청구대상의 특징들은 복수의 처리 칩 또는 장치 내에 또는 이들에 걸쳐 구현될 수 있으며, 저장은 복수의 장치에 걸쳐 유사하게 이루어질 수 있다. 이러한 장치는, 예컨대 개인용 컴퓨터, 네트워크 서버, 및 핸드헬드 장치를 포함할 수 있다.
구조적인 특징 및/또는 방법적 동작에 특유한 언어로 청구대상이 기술되어 있지만, 첨부된 청구항들에 정의된 청구대상은 반드시 전술한 특정한 특징이나 동작으로 제한되지는 않음을 이해해야 한다. 오히려, 전술한 특정한 특징 및 동작은 청구항을 구현하는 예시적인 형태로서 개시되어 있다.

Claims (20)

  1. 컴퓨팅 장치에 의해, 문자열(string)을 수신하는 단계 - 상기 수신된 문자열은 상기 컴퓨팅 장치의 사용자와 하나 이상의 대상(party) 사이의 대화(conversation)와 연관됨 - 와,
    상기 컴퓨팅 장치에 의해, 상기 대화의 상기 하나 이상의 대상 중 하나의 대상과 연관된 연락처에 기초하여 상기 수신된 문자열에 대한 컨텍스트를 결정하는 단계 - 상기 컨텍스트는, 상기 사용자가 상기 연락처와 이전에 상호작용했던 때에 상기 사용자가 입력했던 복수의 문자열만을 포함함 - 와,
    상기 컴퓨팅 장치에 의해, 상기 수신된 문자열 및 상기 결정된 컨텍스트의 상기 복수의 문자열에 기초하여 복수의 문자열 예측을 생성하는 단계 - 각각의 문자열 예측은 문자열을 포함함 - 와,
    상기 컴퓨팅 장치에 의해, 상기 복수의 문자열 예측의 하나 이상의 문자열을 제공하는 단계와,
    상기 컴퓨팅 장치에 의해, 상기 복수의 문자열 예측의 상기 제공된 하나 이상의 문자열 중 하나의 문자열의 선택의 표시를 수신하는 단계와,
    상기 컴퓨팅 장치에 의해, 상기 선택의 표시에 응답하여, 상기 선택된 문자열을 애플리케이션에 제공하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 대화의 상기 하나 이상의 대상 중 하나의 대상과 연관된 상기 연락처에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 단계는 상기 애플리케이션에 기초하여 상기 컨텍스트를 결정하는 단계를 포함하는
    방법.
  3. 제1항에 있어서,
    상기 수신된 문자열은 문자(character)인
    방법.
  4. 제1항에 있어서,
    상기 대화의 주제를 결정하는 단계를 더 포함하고,
    상기 대화의 상기 하나 이상의 대상 중 하나의 대상과 연관된 상기 연락처에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 단계는 상기 결정된 주제에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 단계를 더 포함하는
    방법.
  5. 제1항에 있어서,
    상기 대화의 스타일을 결정하는 단계를 더 포함하고,
    상기 대화의 상기 하나 이상의 대상 중 하나의 대상과 연관된 상기 연락처에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 단계는 상기 결정된 스타일에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 단계를 더 포함하는
    방법.
  6. 제1항에 있어서,
    상기 수신된 문자열과 연관된 시간 또는 날짜를 결정하는 단계를 더 포함하고,
    상기 대화의 상기 하나 이상의 대상 중 하나의 대상과 연관된 상기 연락처에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 단계는 상기 수신된 문자열과 연관된 상기 시간 또는 날짜에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 단계를 더 포함하는
    방법.
  7. 컴퓨팅 장치에 의해, 문자열을 수신하는 단계 - 상기 수신된 문자열은 상기 컴퓨팅 장치의 사용자와 하나 이상의 대상 사이의 대화와 연관됨 - 와,
    상기 컴퓨팅 장치에 의해, 상기 대화의 상기 하나 이상의 대상 중 하나의 대상과 연관된 연락처에 기초하여 상기 수신된 문자열에 대한 컨텍스트를 결정하는 단계 - 상기 컨텍스트는, 상기 사용자가 상기 연락처와 이전에 상호작용했던 때에 상기 사용자가 입력했던 복수의 문자열만을 포함함 - 와,
    상기 컴퓨팅 장치에 의해, 기준(criterion)이 상기 수신된 문자열에 의해 충족되는지를 판정하는 단계와,
    상기 컴퓨팅 장치에 의해, 상기 기준이 상기 수신된 문자열에 의해 충족되는 경우, 상기 수신된 문자열을 상기 컨텍스트의 상기 복수의 문자열에 추가하는 단계를 포함하는
    방법.
  8. 제7항에 있어서,
    상기 수신된 문자열이 상기 결정된 컨텍스트의 상기 복수의 문자열 내에 있는지를 판정하는 단계와,
    상기 복수의 문자열 내에 있다면, 상기 복수의 문자열 내의 상기 수신된 문자열과 연관된 확률을 증가시키는 단계를 더 포함하는
    방법.
  9. 제7항에 있어서,
    상기 대화의 상기 하나 이상의 대상 중 하나의 대상과 연관된 상기 연락처에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 단계는 애플리케이션에 기초하여 상기 컨텍스트를 결정하는 단계를 포함하는
    방법.
  10. 제7항에 있어서,
    상기 대화의 주제를 결정하는 단계를 더 포함하고,
    상기 대화의 상기 하나 이상의 대상 중 하나의 대상과 연관된 상기 연락처에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 단계는 상기 결정된 주제에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 단계를 더 포함하는
    방법.
  11. 제7항에 있어서,
    상기 대화의 스타일을 결정하는 단계를 더 포함하고,
    상기 대화의 상기 하나 이상의 대상 중 하나의 대상과 연관된 상기 연락처에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 단계는 상기 결정된 스타일에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 단계를 더 포함하는
    방법.
  12. 제7항에 있어서,
    상기 수신된 문자열과 연관된 시간 또는 날짜를 결정하는 단계를 더 포함하고,
    상기 대화의 상기 하나 이상의 대상 중 하나의 대상과 연관된 상기 연락처에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 단계는 상기 수신된 문자열과 연관된 상기 시간 또는 날짜에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 단계를 더 포함하는
    방법.
  13. 적어도 하나의 컴퓨팅 장치와,
    후보 예측 생성기를 포함하되,
    상기 후보 예측 생성기는
    문자열을 수신 - 상기 수신된 문자열은 상기 적어도 하나의 컴퓨팅 장치의 사용자와 하나 이상의 대상 사이의 대화에 연관됨 - 하고,
    상기 하나 이상의 대상 중 하나의 대상과 연관된 연락처에 기초하여 상기 수신된 문자열에 대한 컨텍스트를 결정 - 상기 컨텍스트는, 상기 사용자가 상기 연락처와 이전에 상호작용했던 때에 상기 사용자가 입력했던 복수의 문자열만을 포함함 - 하며,
    상기 수신된 문자열 및 상기 결정된 컨텍스트의 상기 복수의 문자열에 기초하여 복수의 문자열 예측을 생성 - 각각의 문자열 예측은 문자열을 포함함 - 하며,
    상기 복수의 문자열 예측의 하나 이상의 문자열을 제공하도록 구성되는
    시스템.
  14. 제13항에 있어서,
    상기 후보 예측 생성기는 또한
    상기 복수의 문자열 예측의 상기 제공된 하나 이상의 문자열 중 하나의 문자열의 선택의 표시를 수신하고,
    상기 선택의 표시에 응답하여, 상기 선택된 문자열을 애플리케이션에 제공하도록 구성되는
    시스템.
  15. 제13항에 있어서,
    상기 후보 예측 생성기는 또한 상기 대화의 주제를 결정하도록 구성되고,
    상기 하나 이상의 대상 중 하나의 대상과 연관된 상기 연락처에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 것은 상기 결정된 주제에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 것을 더 포함하는
    시스템.
  16. 제13항에 있어서,
    상기 후보 예측 생성기는 또한 상기 대화의 스타일을 결정하도록 구성되고,
    상기 하나 이상의 대상 중 하나의 대상과 연관된 상기 연락처에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 것은 상기 결정된 스타일에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 것을 더 포함하는
    시스템.
  17. 제13항에 있어서,
    상기 후보 예측 생성기는 또한 상기 수신된 문자열과 연관된 날짜 또는 시간을 결정하도록 구성되고,
    상기 하나 이상의 대상 중 하나의 대상과 연관된 상기 연락처에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 것은 상기 수신된 문자열과 연관된 상기 날짜 또는 시간에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 것을 더 포함하는
    시스템.
  18. 제1항에 있어서,
    상기 수신된 문자열과 연관된 톤(tone)을 결정하는 단계를 더 포함하고,
    상기 대화의 상기 하나 이상의 대상 중 하나의 대상과 연관된 상기 연락처에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 단계는 상기 결정된 톤에 기초하여 상기 수신된 문자열에 대한 상기 컨텍스트를 결정하는 단계를 더 포함하는
    방법.
  19. 제18항에 있어서,
    상기 결정된 톤은 형식적인 톤(formal tone) 또는 비형식적인 톤 중 하나 이상을 포함하는
    방법.
  20. 제18항에 있어서,
    상기 결정된 톤은 진지함, 슬픔, 행복함 또는 흥분됨 중 하나 이상을 포함하는
    방법.
KR1020157002522A 2012-07-30 2013-07-30 컨텍스트를 이용한 문자열 예측 생성 기법 KR102095074B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/561,095 2012-07-30
US13/561,095 US9195645B2 (en) 2012-07-30 2012-07-30 Generating string predictions using contexts
PCT/US2013/052600 WO2014022322A1 (en) 2012-07-30 2013-07-30 Generating string predictions using contexts

Publications (2)

Publication Number Publication Date
KR20150037935A KR20150037935A (ko) 2015-04-08
KR102095074B1 true KR102095074B1 (ko) 2020-03-30

Family

ID=49029167

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157002522A KR102095074B1 (ko) 2012-07-30 2013-07-30 컨텍스트를 이용한 문자열 예측 생성 기법

Country Status (6)

Country Link
US (1) US9195645B2 (ko)
EP (1) EP2880513A1 (ko)
JP (1) JP2015528968A (ko)
KR (1) KR102095074B1 (ko)
CN (1) CN104508604A (ko)
WO (1) WO2014022322A1 (ko)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5727980B2 (ja) * 2012-09-28 2015-06-03 株式会社東芝 表現変換装置、方法およびプログラム
US10824297B2 (en) * 2012-11-26 2020-11-03 Google Llc System for and method of accessing and selecting emoticons, content, and mood messages during chat sessions
US9923849B2 (en) * 2013-05-09 2018-03-20 Ebay Inc. System and method for suggesting a phrase based on a context
US9390706B2 (en) 2014-06-19 2016-07-12 Mattersight Corporation Personality-based intelligent personal assistant system and methods
US9798708B1 (en) 2014-07-11 2017-10-24 Google Inc. Annotating relevant content in a screen capture image
CN104267821A (zh) * 2014-09-01 2015-01-07 深圳市金立通信设备有限公司 一种终端
CN104267825A (zh) * 2014-09-01 2015-01-07 深圳市金立通信设备有限公司 一种字符输入方法
US20160224524A1 (en) * 2015-02-03 2016-08-04 Nuance Communications, Inc. User generated short phrases for auto-filling, automatically collected during normal text use
US10970646B2 (en) 2015-10-01 2021-04-06 Google Llc Action suggestions for user-selected content
KR102393928B1 (ko) 2015-11-10 2022-05-04 삼성전자주식회사 응답 메시지를 추천하는 사용자 단말 장치 및 그 방법
US10055390B2 (en) * 2015-11-18 2018-08-21 Google Llc Simulated hyperlinks on a mobile device based on user intent and a centered selection of text
CN105404401A (zh) * 2015-11-23 2016-03-16 小米科技有限责任公司 输入处理方法、装置及设备
CN108476164B (zh) 2015-12-21 2021-10-08 谷歌有限责任公司 在消息传送应用中自动地提供机器人服务的方法
EP3395018A1 (en) 2015-12-21 2018-10-31 Google LLC Automatic suggestions for message exchange threads
CN107423277A (zh) * 2016-02-16 2017-12-01 中兴通讯股份有限公司 一种表情输入方法、装置及终端
US10015124B2 (en) 2016-09-20 2018-07-03 Google Llc Automatic response suggestions based on images received in messaging applications
WO2018057536A1 (en) 2016-09-20 2018-03-29 Google Llc Bot requesting permission for accessing data
WO2018057541A1 (en) 2016-09-20 2018-03-29 Google Llc Suggested responses based on message stickers
US10540451B2 (en) 2016-09-28 2020-01-21 International Business Machines Corporation Assisted language learning
US20180101599A1 (en) * 2016-10-08 2018-04-12 Microsoft Technology Licensing, Llc Interactive context-based text completions
EP3340070A1 (en) * 2016-12-21 2018-06-27 Doro AB Improved text input
US10146768B2 (en) * 2017-01-25 2018-12-04 Google Llc Automatic suggested responses to images received in messages using language model
CN107168546B (zh) * 2017-03-27 2021-03-09 上海奔影网络科技有限公司 输入提示方法及装置
CN107168990A (zh) * 2017-03-28 2017-09-15 厦门快商通科技股份有限公司 基于用户性格的智能客服系统及对话方法
US10891485B2 (en) 2017-05-16 2021-01-12 Google Llc Image archival based on image categories
US10348658B2 (en) 2017-06-15 2019-07-09 Google Llc Suggested items for use with embedded applications in chat conversations
US10404636B2 (en) 2017-06-15 2019-09-03 Google Llc Embedded programs and interfaces for chat conversations
KR20190024071A (ko) * 2017-08-31 2019-03-08 필아이티 주식회사 가상 키보드에서 추천어를 제공하는 모바일 장치 및 방법
US10891526B2 (en) 2017-12-22 2021-01-12 Google Llc Functional image archiving
US10725924B2 (en) * 2018-03-27 2020-07-28 Microsoft Technology Licensing, Llc Low-latency hybrid client-server cooperation
US11205045B2 (en) * 2018-07-06 2021-12-21 International Business Machines Corporation Context-based autocompletion suggestion
US10891950B2 (en) 2018-09-27 2021-01-12 International Business Machines Corporation Graph based prediction for next action in conversation flow
US11126794B2 (en) * 2019-04-11 2021-09-21 Microsoft Technology Licensing, Llc Targeted rewrites
CN114008578A (zh) 2019-06-18 2022-02-01 三星电子株式会社 用于管理对显示器上呈现的数据的操作的方法和装置
CN112230811A (zh) * 2020-10-15 2021-01-15 科大讯飞股份有限公司 输入方法、装置、设备及存储介质
US20220335224A1 (en) * 2021-04-15 2022-10-20 International Business Machines Corporation Writing-style transfer based on real-time dynamic context
CN114791769A (zh) * 2022-06-24 2022-07-26 湖北云享客数字智能科技有限公司 一种用户行为预测结果的大数据库建立方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070078642A1 (en) 2005-10-04 2007-04-05 Robert Bosch Gmbh Natural language processing of disfluent sentences
US20070094008A1 (en) 2005-10-21 2007-04-26 Aruze Corp. Conversation control apparatus
US20090070113A1 (en) 2002-04-23 2009-03-12 At&T Corp. System for handling frequently asked questions in a natural language dialog service
US20100131447A1 (en) 2008-11-26 2010-05-27 Nokia Corporation Method, Apparatus and Computer Program Product for Providing an Adaptive Word Completion Mechanism

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5797098A (en) * 1995-07-19 1998-08-18 Pacific Communication Sciences, Inc. User interface for cellular telephone
US6377965B1 (en) 1997-11-07 2002-04-23 Microsoft Corporation Automatic word completion system for partially entered data
US7679534B2 (en) * 1998-12-04 2010-03-16 Tegic Communications, Inc. Contextual prediction of user words and user actions
US20100122164A1 (en) 1999-12-03 2010-05-13 Tegic Communications, Inc. Contextual prediction of user words and user actions
JP2004021321A (ja) * 2002-06-12 2004-01-22 Sony Ericsson Mobilecommunications Japan Inc 辞書データ検索方法、辞書データ検索装置および辞書データ検索プログラム
US8498865B1 (en) * 2004-11-30 2013-07-30 Vocera Communications, Inc. Speech recognition system and method using group call statistics
JP2006344039A (ja) * 2005-06-09 2006-12-21 Casio Hitachi Mobile Communications Co Ltd 電子メール装置、および、プログラム
US20090119173A1 (en) * 2006-02-28 2009-05-07 Buzzlogic, Inc. System and Method For Advertisement Targeting of Conversations in Social Media
WO2008018274A1 (fr) * 2006-08-10 2008-02-14 Sharp Kabushiki Kaisha dispositif de conversion de caractère et procédé de commande de dispositif de conversion de caractère
US7856503B2 (en) * 2006-10-19 2010-12-21 International Business Machines Corporation Method and apparatus for dynamic content generation
JP4547366B2 (ja) * 2006-11-09 2010-09-22 株式会社ソニー・コンピュータエンタテインメント 文字入力装置、その制御方法、プログラム及び情報記憶媒体
US7912700B2 (en) 2007-02-08 2011-03-22 Microsoft Corporation Context based word prediction
US8676901B1 (en) * 2007-11-01 2014-03-18 Google Inc. Methods for transcoding attachments for mobile devices
GB0905457D0 (en) * 2009-03-30 2009-05-13 Touchtype Ltd System and method for inputting text into electronic devices
JP2010257201A (ja) * 2009-04-24 2010-11-11 Nec Corp 入力予測装置、携帯端末、入力予測方法およびプログラム
CN101571758B (zh) * 2009-06-04 2012-12-12 腾讯科技(深圳)有限公司 一种输入法系统和方法
JP2011076140A (ja) * 2009-09-29 2011-04-14 Sony Ericsson Mobilecommunications Japan Inc コミュニケーション端末、コミュニケーション情報提供サーバ、コミュニケーションシステム、携帯電話端末、コミュニケーション情報生成方法、コミュニケーション情報生成プログラム、コミュニケーション補助方法、及び、コミュニケーション補助プログラム
US20110087961A1 (en) 2009-10-11 2011-04-14 A.I Type Ltd. Method and System for Assisting in Typing
US8341196B2 (en) 2009-11-23 2012-12-25 Nokia Corporation Method and apparatus for creating a contextual model based on offline user context data
JP2012208893A (ja) * 2011-03-30 2012-10-25 Nifty Corp 予測入力装置
US8762302B1 (en) * 2013-02-22 2014-06-24 Bottlenose, Inc. System and method for revealing correlations between data streams
US8862467B1 (en) * 2013-12-11 2014-10-14 Google Inc. Contextual speech recognition

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090070113A1 (en) 2002-04-23 2009-03-12 At&T Corp. System for handling frequently asked questions in a natural language dialog service
US20070078642A1 (en) 2005-10-04 2007-04-05 Robert Bosch Gmbh Natural language processing of disfluent sentences
US20070094008A1 (en) 2005-10-21 2007-04-26 Aruze Corp. Conversation control apparatus
US20100131447A1 (en) 2008-11-26 2010-05-27 Nokia Corporation Method, Apparatus and Computer Program Product for Providing an Adaptive Word Completion Mechanism

Also Published As

Publication number Publication date
CN104508604A (zh) 2015-04-08
US9195645B2 (en) 2015-11-24
EP2880513A1 (en) 2015-06-10
KR20150037935A (ko) 2015-04-08
JP2015528968A (ja) 2015-10-01
WO2014022322A1 (en) 2014-02-06
US20140032206A1 (en) 2014-01-30

Similar Documents

Publication Publication Date Title
KR102095074B1 (ko) 컨텍스트를 이용한 문자열 예측 생성 기법
JP6563465B2 (ja) エモティコンを識別および提案するためのシステムおよび方法
US10031908B2 (en) System and method for automatically suggesting diverse and personalized message completions
US7827165B2 (en) Providing a social network aware input dictionary
US9183535B2 (en) Social network model for semantic processing
US10146404B2 (en) String prediction
EP2875418B1 (en) String predictions from buffer
US20090249198A1 (en) Techniques for input recogniton and completion
US20100114887A1 (en) Textual Disambiguation Using Social Connections
US20140349690A1 (en) Method and device for generating contact entry, and storage medium
CN114595316A (zh) 管理对话数据提供者
EP2089790A1 (en) Input prediction
US20140082104A1 (en) Updating a Message
KR101695348B1 (ko) 메신저 기반 서비스 제공 장치 및 이를 이용한 방법
RU2631164C2 (ru) Способ анимации sms-сообщений
JP5402700B2 (ja) 返信メール作成装置および返信メール作成方法
CN117882365A (zh) 确定和视觉显示呼叫的口头菜单
CN110931014A (zh) 基于正则匹配规则的语音识别方法及装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant