KR20140009284A - 텍스트 입력을 용이하게 하기 위한 방법 및 시스템 - Google Patents

텍스트 입력을 용이하게 하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20140009284A
KR20140009284A KR1020137017731A KR20137017731A KR20140009284A KR 20140009284 A KR20140009284 A KR 20140009284A KR 1020137017731 A KR1020137017731 A KR 1020137017731A KR 20137017731 A KR20137017731 A KR 20137017731A KR 20140009284 A KR20140009284 A KR 20140009284A
Authority
KR
South Korea
Prior art keywords
input
text
service
user
assistant
Prior art date
Application number
KR1020137017731A
Other languages
English (en)
Other versions
KR101781557B1 (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 KR20140009284A publication Critical patent/KR20140009284A/ko
Application granted granted Critical
Publication of KR101781557B1 publication Critical patent/KR101781557B1/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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/232Orthographic correction, e.g. spell checking or vowelisation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation

Landscapes

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

Abstract

텍스트 입력을 용이하게 하기 위한 방법 및 시스템이 개시된다. 상기 방법은: 클라이언트에서 운영 환경의 애플리케이션 내로 입력 어시스턴트(input assistant)를 작동시키는 단계 -상기 입력 어시스턴트는 동일한 운영 환경 내에서 상기 애플리케이션으로서 독립된 입력 서비스이고 복수개의 애플리케이션들 내로 작동되어 운영될 수 있는 것-, 사용자로부터 상기 애플리케이션의 입력 필드에 텍스트 문자열을 수신하는 단계, 상기 입력 어시스턴트에 의해 텍스트 문자열을 완성하기 위한 입력 예측을 제공하는 단계, 상기 애플리케이션의 상기 입력 필드 내에서 적어도 한 단어의 입력 텍스트를 선택하는 단계, 상기 입력 어시스턴트에 의해, 상기 입력 어시스턴트와 통신하는 상기 하나 이상의 텍스트 보조 서비스로부터 상기 입력 텍스트에 관련된 텍스트 콘텐트를 수신하는 단계, 및 상기 수신된 텍스트 콘텐트를 사용자의 텍스트 입력을 보조하기 위해 사용자에게 제시하는 단계를 포함한다.

Description

텍스트 입력을 용이하게 하기 위한 방법 및 시스템{METHOD AND SYSTEM FOR FACILITATING TEXT INPUT}
본 명세서는 일반적으로 텍스트 입력에 관련되며, 특히, 입력 언어에 친숙하지 않은 사용자에게 텍스트 입력을 용이하게 하는 것과 관련된다.
영어와 같은 일부 라틴 계열 언어들에 있어서, 단어들은 컴퓨터에서 타이핑할 때 매번 한 글자씩 입력되는 알파벳 글자들로 구성된다. 사용자에 의해 입력된 텍스트 문자열(text string)에는 단어의 철자 오기(misspelling), 또는 잘못된 시제와 같은 문법적인 실수, 또는 다른 에러와 같은 일부 에러들이 있을 수 있다. 예를 들어, 모국어가 영어가 아니면서 영어 텍스트를 입력하는 사용자에게 있어서, 적절한 단어 또는 구문(phrases)이 사용되는 것을 보장하기 위해 사용자의 모국어에서의 단어의 정의나 문장의 의미를 판단하기 위해서, 사용자가 온라인 사전 또는 번역 서비스와 같은 추가적인 리소스를 찾는 것이 필요할 수 있다. 일부 경우에 있어서, 사용되는 서비스는 철자 검사(spell checker), 동의어나 반의어를 찾기 위한 유의어 사전(thesaurus), 가장 많이 쓰이는 형태(예를 들어, 철자) 예측 등과 같은 특정 문자열(string)에 대한 어떤 텍스트 입력 보조 기능을 제공할 수 있다. 도 1a는 텍스트 문자열 "honor"에 대한 대안(alternate) 또는 교정(corrections)을 제공하는 텍스트 데이터의 예시이다. 이 텍스트 에디터는 커서를 문자열 내로 이동시켜 마우스를 우클릭하는 것에 의해 트리거(triggered)된다. 이 예시에서, 사용자는 사용자가 원래 입력 필드(input field)에 타이핑하고자 의도했던 단어를 선택할 수 있다. 도 1b는 Google Inc에 의해 제공되는 온라인 사전 서비스인 Google Dictionary에서 단어 "bilingual"의 의미를 찾는 것에 대한 예시이다.
그러나 위의 두 예시에서, 입력 보조 기능은 도 1a의 텍스트 에디터와 같은 특정 애플리케이션에 제한되거나, 서비스에 의해 제공되는 별도의 애플리케이션에서의 인터페이스를 따라서 작동되어야 하는 별도의 서비스에 의해 제공된다. 뿐만 아니라, 각각의 경우에 제공된 서비스(들)은 특정 애플리케이션에서 텍스트 입력을 제공할 때 사용자가 의지하기에 충분하지 않을 수 있다.
반면에, 중국어, 한국어, 또는 일본어의 동아시아 언어들과 같은 일부 비-라틴 계열 언어들에 있어서, 이들 언어의 어떤 문자나 기호도 그 키보드 상에 찾을 수 없기 때문에, 사용자가 이와 같은 언어들의 어떤 문자를 직접 타이핑 하기 위해 보통의 키보드(common keyboard)를 사용하는 것은 가능하지 않다. 다양한 입력 방법이 이들 언어에서 텍스트 입력을 용이하게 하기 위해 사용된다. 이는 운영체제에서 일명 IME(Input Method Editor)를 구현하고 이를 애플리케이션 에서 사용자로부터의 텍스트 입력을 요구할 수 있는 각 애플리케이션에 적용함(invoking)으로써 달성된다. 하나 이상의 IME가 다른 언어로 또는 같은 언어로 텍스트를 입력하기 위해 하나의 컴퓨터 상에 설치될 수 있고, 각각은 사용자의 기호(preference)에 따라 사용자에 의해 이용될 수 있다. IMF(IME Framework)는 다른 IME를 관리하는 운영체제 내의 관리 플랫폼(managing platform)이다. IMF는 Microsoft Windows(IMM32 및 Text Service Framework), Linux(scim 및 ibus), Mac OSX 및 Android(IMF)와 같은 다양한 현대의 운영체제에 존재한다. 운영체제 내에서 다른 IME들 사이의 전환은 IMF에 의해 관리된다. 그러나, 문자의 간접 입력을 제공하는 기능 이외에, 이와 같은 아시아 언어들에 대해 제공되는 대부분의 입력방법들은 텍스트 입력 경험(text input experience)에 있어서 사용자를 보조하는 많은 부가 기능들을 갖지 못한다.
모국어가 중국어이면서 특정 애플리케이션의 입력 필드에 영어로 타이핑 하고 있는 사용자와 같이, 비-모국어(non-native language)로 타이핑을 하거나 글을 쓸 때, 입력 보조를 종종 요구할 수 있는 사용자에 있어서, 만약 사용자가 어떤 애플리케이션의 타입이 사용 또는 상호작용 되고 있는지에 관계없이, 다수의 다른 서비스들을 작동시키지 않고 진보된 런타임 입력 보조 기능(advanced runtime input assistance features)을 위한 단지 하나의 서비스에 의지할 수 있다면, 도움이 될 것이다.
여기에 기술된 시스템과 방법은, 운영제체 환경 내의 어떤 애플리케이션에서도 적용되며, 사용자가 다양한 입력 보조 서비스들에 대한 이 단일 서비스에 의지할 수 있도록 진보된 입력 어시스턴트 기능을 제공하는, IME로서 구현되는 입력 어시스턴트를 제공하여 상기의 문제들을 해결하는 것을 목적으로 한다.
일반적으로, 본 명세서에 기술된 하나의 획기적인 주요 내용은 텍스트 입력을 용이하게 하기 위한 방법과 관련된다. 상기 방법은, 클라이언트에서 운영 환경의 애플리케이션 내로 입력 어시스턴트(input assistant)를 작동시키는 단계 -상기 입력 어시스턴트는 동일한 운영 환경 내에서 상기 애플리케이션으로서 독립된 입력 서비스이고 복수개의 애플리케이션들 내로 작동되어 운영될 수 있는 것-; 사용자로부터 상기 애플리케이션의 입력 필드에 텍스트 문자열을 수신하는 단계; 상기 애플리케이션의 상기 입력 필드 내에서 하나의 단어의 적어도 일 부분의 입력 텍스트를 선택하는 단계; 적어도 둘 이상의 다른 텍스트 보조 서비스들로부터 하나 이상의 텍스트 보조 서비스를 선택하는 단계; 상기 입력 어시스턴트에 의해, 상기 입력 어시스턴트와 통신하여 상기 하나 이상의 선택된 텍스트 보조 서비스로부터 상기 입력 텍스트에 관련된 텍스트 콘텐트를 수신하는 단계; 및 상기 클라이언트에서 상기 수신된 텍스트 콘텐트를 제시하는 단계를 포함한다.
다른 특징에서, 상기 입력 예측을 제공하는 단계는, 마지막 문자의 입력 이래로 사용자에 의한 비활동(inaction)의 미리 정해진 시간 후에 수행될 수 있고, 상기 입력 예측은 상기 입력 문자열에 대한 관련도(relevance)에 따라 랭크된 단어들 또는 표현들의 목록을 포함할 수 있다.
또 다른 특징에서, 상기 수신된 텍스트 콘텐트의 항목들은 상기 선택된 입력 텍스트에 대한 각 항목의 각각의 관련성 랭킹에 따라 상기 애플리케이션 내의 메뉴에 제시될 수 있고, 사용자가 예를 들어 스페이스 바 또는 "리턴" 키를 눌러서 상기 메뉴 내의 일 항목의 선택을 확인할 때, 상기 선택된 아이템은 상기 선택된 입력 텍스트를 대체하기 위해 상기 입력 필드로 기록될 수 있다.
일 특징에서, 상기 입력 어시스턴트와 통신하는 상기 텍스트 보조 서비스들은 적어도: 제 2 언어의 단어 또는 구(phrase)에 대한 의미를 제 1 언어로 제공하는 사전 서비스; 하나의 언어에서 단어의 잘못된 철자를 탐지하고 그것의 정확한 철자를 같은 언어로 제공하는 철자 검사 서비스; 적어도 두 개의 언어들 사이의 텍스트 번역을 제공하는 번역 서비스; 하나의 언어에서 특정 단어에 대한 동의어 또는 반의어를 제공하는 유의어 사전 서비스; 특정 사용자에 의해 입력된 타겟 표현과 관련된 과거 표현들을 제공하는 입력 히스토리 서비스; 하나 이상의 입력 문장의 문법을 검사하는 문법 검사기; 특정 문서 타입의 본문(body text)을 포함하기 위한 미리 정의된 문서 타입을 제공하는 템플릿 필러(template filler)를 포함할 수 있고, 또는 상기 서비스들은 심지어 입력 텍스트의 전체적인 쓰기 퀄리티를 판단하기 위해 사용될 수 있는 그레이더(grader)에 의해 제공될 수 있다. 다른 특징에서, 상기 사용자에 의해 입력된 상기 텍스트 문자열은 영어일 수 있고; 상기 2개 국어 사전 서비스는 영어 단어 또는 구에 대한 중국어 의미를 제공하기 위한 영어-중국어 사전 서비스일 수 있고; 상기 철자 검사 서비스는 영어 단어의 잘못된 철자를 탐지하고 그것의 정확한 철자를 제공하기 위해 구성될 수 있고; 상기 번역 서비스는 영어와 중국어 사이를 번역하도록 구성될 수 있고; 상기 유의어 사전 서비스는 영어 단어의 동의어 및 반의어를 반환하도록 구성될 수 있다.
또 다른 특징에서, 적어도 하나의 상기 텍스트 보조 서비스는 상기 클라이언트로부터 원격인 서버에 의해 제공된다.
각각의 이들 특징의 다른 실시예들은 대응하는 시스템, 장치, 및 컴퓨터 저장 디바이스 상에 기록되고, 이들 방법의 액션을 수행하도록 각각 구성되는 컴퓨터 프로그램을 포함할 수 있다.
하나 이상의 실시예들의 세부 내용은 첨부의 도면 및 이하의 설명에 의해 개시된다. 다른 특징, 목적, 및 이점들은 명세서 및 도면, 및 청구항들로부터 명확해질 것이다.
도 1a-1b는 특정 애플리케이션에 내재된 텍스트 입력을 용이하게 하기 위한 현존하는 특징들의 스크린샷이다.
도 2는 텍스트 입력을 용이하게 하기 위한 시스템의 다이어그램이다.
도 3은 텍스트 입력을 용이하게 하기 위한 프로세스를 나타내는 흐름도이다.
도 4a-4c는 생성된 입력 제안들의 예시이다.
도 5a-5d는 사용자에 의한 텍스트의 입력을 보조하기 위한 활용 제안(conjugated suggestions)을 제공하는 다른 타입의 예시들을 나타낸다.
다양한 도면에서 동일 기호는 동일 구성요소를 나타낸다.
도 2는 텍스트 입력을 용이하게 하기 위한 시스템의 다이어그램이다. 이 시스템의 예시 실시예에서, 다양한 다른 애플리케이션들이 컴퓨터의 운영체제 내에 설치된다. 웹 브라우저(210), 또는 텍스트 에디터(212) 등과 같은 이들 애플리케이션 각각은, 애플리케이션과 사용자의 상호작용 동안에 사용자가 텍스트 콘텐트를 입력하기 위한 적어도 하나의 필드를 포함한다. 각 애플리케이션은 사용자가 애플리케이션의 특정 입력 필드에 영어와 같은 특정 언어로 어떤 텍스트를 타이핑 하고 있을 때 텍스트 입력 보조를 제공할 수 있는, 예를 들어 철자-검사기(spell checker)와 같은 어떤 내부 텍스트 입력 보조 기능들을 이미 갖고 있을 수 있다.
이 애플리케이션들은, 그들이 자체 입력 보조 능력을 갖는 지와 무관하게, 운영체제의 관리 하에서 외부 IME 또는 동일 운영체제 환경에 상주하는 입력 보조(input assistant)를 작동시키도록 구성된다. 상기 작동(invocation)은, 커서가 입력 필드 내에서 깜박이고 있을 때와 같이 포커스가 애플리케이션의 입력 필드 내에 있을 때, "ctrl+space"와 같은 키의 특정 조합을 누르는 것에 의해 야기될 수 있다. 이 작동된 IME 또는 외부 입력 보조는 어떠한 작동 중인 애플리케이션에 대해서도 그 작동 중인 애플리케이션 자체 내부의 입력 보조 기능들에 의해 제공되는 것보다 훨씬 넓은 범위의 기능을 커버할 수 있는 일 세트의 균일한 입력 보조 기능을 제공할 수 있다.
도 2의 시스템에서, 입력 어시스턴트(220)는 다양한 애플리케이션들(210-214)과 동일한 운영체제 환경에서 동작한다. 이 예시에서 상기 입력 보조는, 3개의 모듈: 텍스트 파서(text parser)(222), 프레젠테이션 처리기(presentation handler)(224) 및 서비스 통신 인터페이스(service communication interface)(226)를 포함한다. 텍스트 파서(222)는 애플리케이션의 입력 필드로부터 텍스트 문자열 형태의 텍스트 입력을 수신하고, 이 수신된 텍스트 문자열에 대한 예비적 파싱(preliminary parsing)을 수행하고, 어느 입력 보조 서비스가 이 입력 문자열의 요청을 처리하기에 적절한지 판단하고, 상세 텍스트 보조 정보를 위해 텍스트 문자열을 서비스 통신 인터페이스(226)를 통해 관련 서비스로 보내도록 구성된다. 프레젠테이션 처리기(224)는, 입력 문자열에 대한 관련성(relevance)에 따라 다른 서비스들로부터의 결과들의 각 아이템을 점수화(scoring) 및 서열화(ranking)하는 것과 같이, 입력 보조 서비스로부터 적절한 형태로 수신된 결과들을 처리 및 제시하고, 사용자가 볼 수 있도록 팝업 메뉴에 상기 서열화에 따라 상기 아이템들을 디스플레이 하도록 구성된다. 나아가, 처리기(224)는 또한 리스트 내의 특정 항목을 애플리케이션의 입력 필드에 입력하거나 팝업 메뉴 또는 서브 메뉴에서 나가는(exiting) 네비게이션 커맨드나 선택을 사용자로부터 수신할 수 있다.
서비스 통신 인터페이스(226)는 입력 어시스턴트(220) 및 작동 중인 애플리케이션들(210-214)와 동일 컴퓨터 내에서 구현될 수 있거나, 원격 서버에서 구현될 수 있는 다양한 입력 보조 서비스들과 통신하도록 구성된다. 인터페이스(226)는 애플리케이션의 입력 필드로부터 수신된 상기 파싱된 문자열(parsed string)을 적절한 서비스들로 보내고 그 서비스들로부터의 결과를 기다린다. 결과가 수신되면, 인터페이스(226)는 작동 중인 애플리케이션 내에서 클라이언트 디바이스 상에 프레젠테이션 처리 및 디스플레이를 위해 이 결과를 프레젠테이션 처리기(224)로 보낸다.
복수개의 다른 텍스트 보조 서비스들(232-238)이 입력 어시스턴트(220)에 이용 가능할 수 있다. 처리 복잡성의 본질(the nature of processing complexity)에 기초하여, 일부 또는 전부의 입력 보조 서비스들(232-238)은 입력 어시스턴트(220)와 동일한 운영체제 환경에 상주할 수 있고, 또한 일부 실시예에서는 운영체제 하에서 용이한 개발 및 관리를 위해 하나의 제품으로서 입력 어시스턴트(220)와 통합될 수 있다. 일부 다른 입력 보조 서비스들은 작동 중인 애플리케이션과 입력 어시스턴트(220)가 실행 중인 컴퓨터로부터 원격에 상주할 수 있다. 입력 어시스턴트(220)는, 서비스 통신 인터페이스(226)를 통해, SOAP(Simple Object Access Protocol)를 경유하는 콜 투 웹(a call to a web) 서비스와 같이, 표준 프로토콜에 따라 인터넷 또는 다른 전용 네트워크(dedicated networks)를 경유하는 이와 같은 서비스들과 통신할 수 있다. 개인정보(privacy)를 보장하기 위해, 이와 같은 통신은 개인정보 보호 기술 및/또는 암호화 프로토콜을 이용하여 구현될 수 있다.
도 3은 텍스트 입력을 용이하게 하기 위한 프로세스를 나타내는 흐름도이다. 도 3의 프로세스는 도 1의 입력 어시스턴트(220) 내에서 구현될 수 있다. 단계 301에서, 입력 어시스턴트(220)가 애플리케이션에서 작동된다. 이 경우에서 상기 애플리케이션은, 예를 들어 워드 프로세싱 애플리케이션, 인스턴트 메신저, 또는 Google chrome 또는 다른 브라우저와 같은 특정 브라우저에 의해 오픈된 텍스트 입력을 가지는 웹 페이지, 또는 사용자와 상호작용하는 특정 단계에서 사용자로부터 텍스트 입력을 요구하는 어떤 다른 애플리케이션일 수 있다. 참조의 편의상, 어떤 특정한 애플리케이션 대신에, 포괄적인 용어 "애플리케이션(application)"은 여기에서 사용자와 상호작용 하는 동안 사용자로부터 텍스트 입력을 수신하기 위한 입력 필드를 가지는 애플리케이션을 참조하기 위해 사용된다. 애플리케이션은, 철자 검사, 문법 검사, 동의어 및 반의어를 찾기 위한 유의어 사전(thesaurus) 등을 제공하는 워드 프로세싱 프로그램과 같이, 이미 그 자신의 입력 보조 기능을 가질 수 있다. 이러한 애플리케이션의 사용에 있어서, 사용자는 그 애플리케이션 자체 내부의 입력 보조 기능들을 이용하는 것을 선택하거나, 애플리케이션 내에서 입력 어시스턴트(220)의 작동을 통하여 여기에 기술된 시스템에 의해 제공되는 것과 같은 외부 리소스를 사용하는 것을 결정할 수 있다.
일부 실시예에서, 사용자가 현재 작업중인 입력 필드가 포커스의 대상이 된 후, 예를 들어 커서가 입력 필 내에 위치하고 입력 필드가 입력 테스트를 수신할 준비가 되었다는 것을 나타내면서 깜박거릴 때, 사용자는 "Ctrl+space" 또는 "Ctrl+Shift+space" 등과 같은 키의 조합을 입력하여 입력 어시스턴트(220)를 작동시키도록 진행할 수 있다. 입력 어시스턴트(220)를 작동시키기 위한 정확한 키의 조합은 운영체제 환경에서 커스텀 설정(custom configured)될 수 있다. 예를 들면, 입력 어시스턴트(220)는 애플리케이션과 동일 컴퓨터 상의 동일 운영체제 환경에 상주하는 서비스이고, 입력 어시스턴트(220)와 애플리케이션은 모두 이 컴퓨터 상의 동일 운영체제에 의해 관리되고 있다.
외부의 입력 어시스턴트(220)를 작동시키는 것은 그들의 다른 트리거 설정(triggering settings)으로 인해 애플리케이션에서 어떤 내부 입력 보조 기능을 자동으로 금지할 필요가 없다. 예를 들어, 특정 워드 프로세싱 프로그램에서, 철자 및 문법에 대한 검사가 입력 필드에 이미 입력된 전체 텍스트에 대해서 백그라운드 프로세스에 의해 자동으로 수행될 수 있고, 동이어나 반의어를 찾는 것이 타겟 단어를 선택하고 "Shift+F7"을 누르는 것에 의해 수행될 수 있다; 입력 어시스턴트(220)가 작동됨과 함께, 특정 입력 문자열을 처리하기 위한 입력 어시스턴트(220)를 호출(calling up)하기 위한 메커니즘이 위의 트리거 메커니즘(triggering mechanism)과 구별되는 한, 사용자는 그의 텍스트 입력 경험을 향상시키기 위해 상기 내부 또는 외부 입력 보조 기능을 호출하는 것에 대한 선택권을 항상 가질 수 있다.
애플리케이션에서 입력 어시스턴트(220)가 작동되고 입력 필드가 사용자로부터 텍스트 입력을 수신한 후에, 외부 입력 어시스턴트(220)로부터 사용자는 입력 보조를 이용할 수 있다. 예를 들어, 사용자는 다음 문자열, "Wikipedia is a free, multili"를 입력 필드로 입력할 수 있다(단계 302). 그 후에, 사용자는 입력을 의도한 단어의 철자가 어떻게 되는지 생각하기 위해 이 지점에서 멈출 수 있다.
일부 실시예에서, 입력 어시스턴트(220)는 만약 마지막 문자의 입력 이래로 미리 정의된 시간 기간, 예를 들어 2초 동안 사용자로부터 아무런 활동이 없다는 것이 판단되면, 자동으로 트리거될 수 있다. 일부 실시예에서, 입력 어시스턴트(220)는 오직 미리 정의된 시간 기간이 만료되고 이미 입력된 텍스트는 적어도 특정 임계 길이, 예를 들어 4개의 문자인 경우에만 트리거 될 수 있다. 트리거되면, 입력 어시스턴트(220)는 커서가 위치해 있는 뒤에서부터 다음 공백(space)까지의 텍스트 문자열을 읽는다. 위 예시에서, 문자열 "multili"는 입력 문자열로 읽히고, 추가 처리를 위해 입력 어시스턴트(220)로 보내진다.
대안적으로, 사용자는 커서를 그가 입력한 문자열의 끝에서 미완성 단어의 중간 또는 첫 번째 글자 앞에서 오른쪽으로 이동시킬 수 있다. 예를 들어, 커서는 문자열 "multili"에서 글자 "l"과 "t" 사이에 위치하거나, 글자 "m" 앞에서 오른쪽에 위치할 수 있다. 사용자는 입력 어시스턴트(220)를 트리거하기 위해 "Ctrl+'\'"와 같은 키 조합을 추가로 이용할 수 있다. 이 경우에, 입력 어시스턴트(220)는 커서 앞뒤의 연속적인, 즉, 사이에 어떤 공백(space)도 없는, 문자열을 읽고, 유사하게 그 문자열 "multili"를 입력 어시스턴트(220)로의 입력 문자열로 취할 수 있다. 나아가, 만약 사용자가 부주의하게 문자열 "multili" 뒤에 하나 이상의 공백을 입력했다면, 입력 어시스턴트(220)는 이 공백을 스킵하고 다음 공백까지 다시 읽도록 구성될 수 있고, 따라서 여전히 문자열 "multili"를 입력 어시스턴트(220)로의 입력 문자열로서 획득할 수 있다. 즉, 상기 시스템은 입력 텍스트로부터, 철자가 정확하거나 부정확할 수 있는 마지막 입력 단어 또는 단어 조각(fragment)을 읽을 수 있다.
입력 문자열이 획득되면, 입력 어시스턴트(220)는 문자열 "multili"로 시작하는 어떤 가능한 단어들을 획득하기 위해 서비스 통신 인터페이스(226)를 통해 사전 서비스(232)로 이 입력 문자열을 보낸다. 이 경우, 이 문자열로 시작하는 단어를 완성하기 위해 입력 제안(input suggestion)을 제공하기 위한 목적으로, 문자열 "multili"는 있는 그대로 보내지고 타겟 서비스, 즉 단어 또는 단어 조각에 대한 사전 서비스가 확실(하거나 타겟 서비스가 최소 한도의 신뢰도로 결정)하기 때문에, 입력 어시스턴트의 텍스트 파서(222)는 그 입력 문자열에 대한 파싱과 함께 그 자체를 수반할 것이 요구되지 않는다. 문자열 "multili"를 수신하면, 입력 어시스턴트(220) 자체에 통합된 디지털 사진 제품이거나 인터넷을 통해 액세스 가능한 온라인 사전 서비스일 수 있는 사전 서비스(232)는, 그 문자열 "multili"로 시작하는 어떤 단어들을 그것의 데이터 스토어로부터 검색하고, 그들을 그 자신의 랭킹 기준(ranking criteria)에 따라 정렬하고, 사용자에게 제시하기 위해 그 결과를 서비스 통신 인터페이스(226)를 통해 입력 어시스턴트(220)의 프레젠테이션 처리기(224)로 내보낸다. 프레젠테이션 처리기(224)는, 예측 단어 리스트(list of predicted words)를 수신하면, 팝업 메뉴를 준비하고 팝업 메뉴와 단어들을 애플리케이션의 입력 필드에 인접하게 디스플레이 한다(단계 303). 일부 사용자에 있어서, 자동-완성 기능은 필요하지 않을 수 있다. 이 경우, 도 3에 도시된 단계 303은 스킵될 수 있고, 입력 어시스턴트(220)는 단계 304-306에서 기술되는 보조(assistance)를 제공하기 위해 진행할 수 있다.
예측 단어 리스트는 그 기본적인 의미와 함께 제시될 수 있다. 일부 실시예에서, 기본적인 의미들은 다른 언어이다. 도 4a는 모국어가 중국어인 사용자에 의한 쉬운 이해를 위해 각 단어 뒤에 중국어로 기본적인 의미가 보여지는, 예측 단어 리스트 메뉴의 일 예시이다. 이 예시에서, 첫 번째 예측 단어 "multilingual"가 기본으로 선택된다. 문자열 "lingual"은 단어 "multilingual"을 완성하기 위해, 음영 색상으로, 또는 밑줄 또는 이는 제안된 입력이고 입력 필드 내에서의 최종 입력이 아니라는 것을 보여주는 어떤 다른 독특한 방법으로 강조되는 예측 부분 "ngual"과 함께 입력 필드에 이미 임시적으로 입력된다. 만약 사용자가 단어 "multilingual"이 사용자가 입력하기를 의도한 것이라고 판단하면, 사용자는 예를 들어 스페이스 바 또는 "리턴(return)" 키를 눌러서 완성 단어 "multilingual"의 입력을 적어 둘 수 있다. 만약 이 단어가 사용자가 의도한 것이 아니라면, 사용자는 업/다운 화살표 키를 이용하여 의도된 단어를 향해 위아래로 스크롤 하여(scrolling up or down) 리스트에서 다른 단어를 선택할 수 있다. 일부 실시예에서, 스크롤링 하는 동안, 선택된 단어는, 단어 "multilingual"에 대한 기본 선택의 경우에서와 동일한 방법으로 입력 필드 내에서 임시적으로 자동-완성 될 수 있다.
영어 단어의 사용을 잘못 이해하는 비-영어 발화 사용자를 더 보조하기 위해, 사전 서비스(232)는 단어의 각 의미에 대한 보다 상세한 설명 및 이와 같은 각 사용에 대해 샘플 문장을 소스 언어(즉, 입력되는 단어의 언어)로 더 제공할 수 있다. 위의 경우에, 단어의 정의는 프레젠테이션 처리기(224)에 의해 별도의 윈도우에서 제공될(rendered) 수 있다. 도 4b에서, 단어 "multilingual"에 대해서 상세한 의미가 중국어로, 대응하는 샘플 문장이 영어로, 도 4a에서와 같이 단어 "multilingual"이 선택되었을 때 오른쪽 화살표 키를 누름으로써 트리거되는 서브-윈도우에서 제공될 수 있다. 사전 서비스(232)는, 용어 "multilingualism"의 다른 번역이 서브-윈도우에 제공되는 도 4c에서 예시된 것과 같이, 만약 사용자가 그 웹 페이지를 방문하길 원하면 추가적인 참조를 위해 단어의 각 특정 의미 또는 번역에 대한 웹 페이지로의 URL 링크를 더 제공할 수 있다.
단어의 나머지 부분을 예측하는 기능, 즉 단어 레벨에서 자동-완성의 기능 외에, 입력 어시스턴트(220)는 입력 텍스트와 관련된 정보를 획득하여 입력 언어의 비-모국어 발화자를 보조하거나, 사용자의 이전 입력 히스토리로부터 입력 힌트를 제공하는 점에 있어서 더욱 다용도일 수 있다.
일부 실시예에서, 철자 검사 서비스(spell checking service)는 입력 단어 또는 단어들의 철자를 검사하기 위해 제공될 수 있다. 자동 완성 기능과 함께 위의 경우에, 만약 입력 어시스턴트(220)가 입력 문자열에 대해 사전 서비스(232)로부터 이용 가능한 예측 단어가 없다고 판단하면, 예를 들어 입력 문자열이 "multtpl"인 경우, 입력 어시스턴트(220)는 사용자가 특정 시간 동안 기다려서 자동 완성 서비스를 요청하지 않을 수 있고, 대신에 입력 문자열을 철자 검사하는 서비스를 요청할 수 있다(또는 철자 검사 서비스 없이는 자동 완성 서비스를 이용할 수 없다)고 판단할 수 있다. 입력 어시스턴트는 이 단어의 가능한 정확한 철자를 획득하기 위해 입력 문자열 "multtpl"을 철자 검사 서비스(234)로 전달할 것이다. 철자 검사 서비스는, 사전 서비스(232)와 유사하게, 로컬 컴퓨터 상에서 입력 어시스턴트(220)과 통합된 하나의 서비스이거나, 인터넷을 통해 액세스 가능한 원격 서비스일 수 있다. 철자 검사 서비스(234)로부터의 각 결과는 입력 문자열과의 관련성에 따라 점수화되고 서열화된다. 결과들을 수신하면, 프레젠테이션 처리기(224)는 사용자의 리뷰 및 선택을 위해 사전 서비스(232)에서의 결과와 유사한 방식으로 이 결과들을 제시한다.
사용자가 사전 서비스(232) 또는 철자 검사 서비스(234)로부터의 결과들을 리뷰하는 것을 마치고 그의 선택을 한 후에, 그는 그의 선택 이후에 추가적인 콘텐트를 타이핑하는 것으로 진행할 수 있다. 이 경우, 입력 어시스턴트(220)는, 커서가 새로운 위치에서 또 다른 미리 정해진 시간 기간 동안 비활성화되는 것을 통하거나, 입력 문자열의 수동 선택 및 그 텍스트 문자열을 입력 어시스턴트(220)로 보내는 사용자로부터의 입력 어시스턴트(220)에 대한 자발적인 호출 모두를 통해, 사용자로부터의 다음 호출을 기다린다. 완성 단어의 예측 또는 입력 문자열에 대한 철자 검사를 수행하는 것을 위해 미리 정해진 시간 동안 대기하여 입력 어시스턴트(220)를 활성화 하는 단계는 선택적이다. 사용자는, 이하에서 자세히 설명되는 바와 같이, 입력 보조를 위해 입력 어시스턴트(220)를 직접 활성화할 수 있다.
자동 완성 또는 철자 검사 목적을 위해 단순히 미리 정해진 시간을 기다려서 입력 어시스턴트(220)를 트리거하는 것 외에도, 입력 어시스턴트(220)는 다른 진보된 서비스를 위해 수동 또는 자동으로 더 트리거 될 수 있다. 일부 실시예에서, 사용자는 마우스 또는, "Shift" + 화살표 키와 같은 조합을 이용하여 단어 또는 연속적인 문자들의 문자열을 수동으로 선택할 수 있고, "Ctrl+'\'"와 같은 또 다른 키의 조합을 눌러서 입력 어시스턴트(220)를 트리거 할 수 있다(단계 304). 대안적인 실시예에서, 입력 필드에서 하나 이상의 단어의 선택은, 사용자가 최초에 어떤 입력 텍스트도 수동으로 선택하지 않고 "Ctrl+'\'"을 눌러 입력 어시스턴트(220)를 트리거 할 때, 입력 어시스턴트(220)에 의해 자동으로 수행될 수 있다. 이 경우에, 입력 어시스턴트(220)는 주위의 텍스트를 체크하고, 예를 들어 커서가 위치한 곳으로부터 시작하여 이전의 부분적인 하나 또는 몇몇 단어들을 입력 보조 서비스를 작동시키기 위한 입력 텍스트로 선택할 수 있다. 대안적인 실시예에서, 만약 사용자가 짧은 시간, 예를 들어 1초 내에 "Ctrl+'\'"를 두 번 누르면, 입력 어시스턴트(220)는 커서 주위의 전체 문장을 입력 텍스트로 선택할 수 있다.
사용자에 의해 수동으로 선택되거나 입력 어시스턴트(220)에 의해 자동으로 선택된 입력 문자열을 입력 필드로부터 수신하면, 입력 어시스턴트(220)의 텍스트 파서(222)는 우선 입력 문자열에 대해 예비 파싱 프로세스를 수행한다. 일부 실시예에서, 텍스트 파서(222)는 우선 입력 문자열의 언어를 판단한다. 예를 들어, 만약 입력 문자열이 문자 "
Figure pct00001
"의 문자열이면, 텍스트 파서는 그것이 중국어라고 판단한다. 중국어 입력의 경우에, 영어 단어에 친숙하지 않은 사용자는 이 중국어 텍스트에 대응하는 영어 단어를 요청할 가능성이 높기 때문에, 텍스트 파서(222)는 대응하는 영어로의 단어 또는 의미를 위해 이 중국어 텍스트를 사전 서비스(232)로 전달할 것이다. 이 경우에 사전 서비스(232)는, 프레젠테이션 처리기(224)에 의한 사용자에게 적절한 프레젠테이션을 위해 용어 "orchid"를 입력 어시스턴트(220)로 반환할 것이다.
역으로, 만약 입력 문자열이 "wikipedia is a free, multilingual encyclopedia project"라면, 텍스트 파서(222)는 입력 텍스트가 영어라고 판단할 것이다. 나아가, 텍스트 파서(222)는, 단순히 입력 문자열 내에서 적어도 하나의 공백을 식별함으로써, 문자열의 텍스트로부터 이 입력 문자열에는 하나보다 더 많은 단어가 있다는 것을 판단할 것이다. 이 경우에, 사용자는 단순히 단어 또는 단어들의 의미를 체크하고자 하는 것이 아니라, 대신에 문장의 구절(a phrase of a sentence)를 체크하고자 하는 것으로 추정된다.
일부 실시예에서, 이 입력 문자열은 입력 어시스턴트(220)가 상주하는 컴퓨터로부터 원격에 위치할 수 있는 번역 서비스로 전달되고, 사용자가 입력한 단어가 대체로 영어로 정확하다는 것을 확인하여 사용자에게 참고로 제공되도록 입력 문자열의 중국어 번역을 획득할 수 있다. 텍스트 파서(222)는 또한 입력 문자열의 영어 문법을 검사하는 문법 서비스로 이 입력 문자열을 보내고, 제안된 개선(suggested improvements) 또는 단순히 입력 문자열에서 문제가 있는 부분을 강조한 형태로 그 결과들을 획득할 수 있다. 위의 번역 및 문법 검사 프로세스들은 동시에 수행될 수 있고(단계 305), 두 서비스들로부터의 결과들이 사용자에게 프레젠테이션을 위해 하나의 리스트에 종합될 수 있다(단계 306).
특정 입력 문자열에 대하여 어떤 서비스가 호출되어야 하는 지를 판단하기 위해 다른 규칙 또는 기준들이 텍스트 파서(222)에 설정될 수 있다. 상기 규칙 또는 기준은 서비스의 선택을 다양한 언어의 탐지된 문자(characteristics)(예를 들어, 공백, 공백 없음, 연속적인 문자의 수, 등)에 기초하여 정의할 수 있다. 예를 들어, 10개가 넘는 비-연속적인 공백을 포함하는 입력 문자열은 철자 검사 서비스 및 번역 서비스로만 전달될 수 있고, 3개 미만의 비-연속적인 공백을 포함하는 입력 문자열은 사전 서비스(232), 철자 검사 서비스(234), 입력 히스토리 서비스(236), 등으로 전달될 수 있다. 사용자의 텍스트 입력 경험을 향상시키기 위한 가능한 최선의 결과 또는 결과의 조합을 제공하는데 있어서 어느 서비스가 수신된 입력 문자열을 처리하기에 적절할 것인지를 더 잘 판단하기 위해 부가적인 기능들인 텍스트 파서(222)에서 그것의 예비 파싱 단계에서 더 수행될 수 있다. 대안적으로, 항상 텍스트 파서(222)에 의해 판단되는 것 대신에, 단순히 특정 키의 조합을 타이핑하거나, 특정 입력 문자열을 처리하기 위한 적절한 서비스를 선택하기 위해 입력 어시스턴트(220)에서 기능적인 GUI 윈도우를 작동시킴으로써, 특정 입력 보조 서비스가 특정 입력 문자열에 대해서 사용자에 의해 수동으로 지정되고 트리거될 수 있다.
추가적인 대안으로, 텍스트 파서(222)는 상기 판단을 할 필요가 없지만, 상기 요청을 입력 어시스턴트(220)과 연결된 모든 입력 보조 서비스들로 전달한다. 각 입력 보조 서비스들은 수신된 입력 텍스트가 그것이 결과를 제공하기에 적절한지 판단할 것이다. 상기 판단은 예를 들어 어느 시점에 텍스트가 각 특정 서비스에 의해 처리되는 것이 적절한지를 정의하는 규칙 또는 조건들을 참조로 하여 이루어질 수 있다. 예를 들어, 만약 번역 서비스가 수신된 텍스트가 타겟 언어인 것을 발견하면, 요청하는 입력 어시스턴트(220)으로 빈 값(null value)을 반환할 것이다. 프레젠테이션 처리기(224)는 이제 어떤 빈 값들을 스킵하는 동안 다른 서비스들로의 결과들을 사용자에게 제시하기 위해 재조합할 것이다.
일부 실시예에서, 입력 히스토리 서비스(236)는 사용자가 특정 콘텍스트에서 종종 사용할 수 있는 콘텐트의 많은 부분을 입력하는데 있어서 사용자를 보조하기 위해 사용자 특정 입력 히스토리(user specific input history)를 제공할 수 있다. 예를 들어, 변리사는 OA(office action)에 대응하는 데 있어서 많은 고정된 표현들을 사용할 수 있다. 이 경우에, 사용자는 입력 어시스턴트(220)에 대한 사용자 계정을 가질 수 있고, 사용자는 그의 선호에 따라 설정을 구성하기 위해 입력 어시스턴트(220)를 호출할 수 있고 자주 사용되는 표현을 나중 사용을 위해 입력 히스토리 서비스(236)에 대한 계정에 저장할 수 있다. 입력 히스토리 서비스는 중앙 서버에 위치할 수 있고, 이는 사용자가 다른 컴퓨터들로부터 입력 어시스턴트(220)에 대한 계정에 로그인 하는 것을 허용하고 여전히 입력 어시스턴트(220)에서의 그의 선호 구성(preferred configuration)을 향유하고 입력 경험을 보조하는데 있어서 사용자 자신의 입력 히스토리를 이용하는 것의 이점을 가진다.
도 5a는 사용자의 입력 히스토리로부터 검색된 한 항목의 샘플 디스플레이다. 이 예시에서, 첫 번째 항목 "Wikipedia is a complimentary, multilingual encyclopedia project"는 입력 문자열 "Wikipedia is"의 예측 결과이고 사용자의 과거 입력으로부터 검색된다. 이 예시에서 다른 2개의 항목은 웹 콘텐트의 코퍼스(corpus)로부터 검색된 관련 문장들이고, 이는 입력 어시스턴트(220)과 연계된, 구문(phrases), 문장 또는 심지어 입력 문자열에 기초한 단락들을 제공하는 독립 서비스일 수 있다.
일부 실시예에서, 다른 서비스로부터의 결과들은 사용자가 그로부터 선택하도록 하나의 단일 팝업 윈도우에서 제공될 수 있다. 프레젠테이션 처리기(224)는 각 결과 항목의 입력 문자열에 대한 관련성을 반영하기 위해 각 서비스로부터의 각 결과 아이템의 가중치 랭킹(weighted ranking)을 적어도 포함하는 어떤 알려진 랭킹 기준(ranking criteria)에 따라 각 서비스로부터의 결과들을 분류할 수 있다. 일부 실시예에서, 프레젠테이션 처리기는 다른 서비스로부터의 결과들을 프레젠테이션을 위한 하나의 디스플레이에 합친다. 위의 도 5a의 예시에서, 리스트의 3개의 항목들은 2개의 다른 서비스들로부터 온 것이다. 프레젠테이션 처리기(224)는 입력 히스토리 서비스(236)에서의 첫 번째 결과와 웹 콘텐트의 코퍼스에서의 다른 두 개의 항목을 디스플레이하기 위해 하나의 윈도우에 합친다.
일부 실시예에서, 사전 서비스(232)는 리뷰를 위해 특정 카테고리의 대안적인 결과를 사용자에게 제시할 수 있다. 이 다른 결과들은 다른 사용자 입력, 예를 들어 다른 키보드 작동 명령(invocation commands)에 응답하여 디스플레이 될 수 있다. 예를 들어, 도 5b에서, 어간(word stem) "impress"의 입력 문자열의 다른 형태들이 제시되고, 그것들의 품사 등(parts of speech, word class, etc.)도 또한 각 단어 뒤에 예측 결과로서 설명된다. 도 5c에서, 사전 서비스 내의 유의어사전 하위-서비스(thesaurus sub-service)는 입력 단어"free"의 동의어들을 제공한다. 도 5d에서, 동사 "watch"의 다른 파생어(reflective forms)가, 각 항목에 모국어가 중국어인 영어 사용자의 쉬운 이해를 위해 특정 품사의 설명이 중국어로 딸려서 제시된다.
텍스트 입력 경험에 있어서 사용자를 보조하는 서비스들은 전술한 바에 한정되지 않는다. 다른 언어, 또는 부가적인 입력 보조나 텍스트 예측 기능에 대한 보조를 제공하는 다른 서비스들이 사용자에게 부가적인 입력 보조를 제공하기 위해 입력 어시스턴트(220)에 또한 통합되거나 연결될 수 있다. 한 서비스는, 전체로서 하나의 흔하게 사용되는 구문을 구성하는, 예를 들어 입력 문자열 "a of"가 구 "a lot of"의 예측을 반환하는 것과 같은, 입력 문자열에서 하나 이상의 빠진 단어들을 채우는 기능을 제공할 수 있다. 또한, 본 명세서에서 키 입력 또는 키 입력 조합의 다른 정의는 오직 예시적인 목적일 뿐이다; 많은 다른 조합이 서비스를 트리거하거나 팝업 윈도우를 처리하는 것에 대한 동일한 효과를 달성하기 위해 다른 운영체제들에서 정의될 수 있다.
본 명세서에서 설명된 주요 내용의 실시예들 및 기능적인 동작들은, 본 명세서에서 개시된 구조 및 그 구조적 등가물 또는 그것들의 하나 이상의 결합을 포함하여, 유형적으로 구현된(tangibly-embodied) 컴퓨터 소프트웨어나 펌웨어, 하드웨어 내의, 디지털 전기 회로에서 구현될 수 있다. 본 명세서에서 기술된 수요 내용의 실시예들은 하나 이상의 컴퓨터 프로그램, 즉 데이터 처리 장치의 실행을 위해 또는 그 동작을 제어하기 위해 컴퓨터 저장 매체 상에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로 구현될 수 있다. 대안적으로 또는 부가하여, 프로그램 명령어들은, 데이터 처리 장치에 의한 실행을 위해 적합한 수신 장치로의 전송을 위해 정보를 인코딩하기 위해 생성된 인위적으로 생성된 신호, 예를 들어 기계-생성된 전기적, 광학적, 또는 전자적 신호인 전파된 신호 상에 인코딩될 수 있다. 상기 컴퓨터 저장 매체는 기계-판독가능한 저장 디바이스, 기계-판독가능한 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스, 또는 이것들의 하나 이상의 조합일 수 있다.
용어 "데이터 처리 장치(data processing apparatus)"는, 예시 방안으로 프로그램 작동이 가능한 프로세서, 컴퓨터, 또는 다수 프로세서 또는 컴퓨터를 포함하여, 데이터 처리를 위한 모든 종류의 장치(apparatus), 디바이스(devices), 및 기계(machines)를 포함한다. 상기 장치(apparatus)는 특정 목적의 논리 회로, 예를 들어, FPGA(field programmable gate array)나 ASIC(application-specific integrated circuit)를 포함할 수 있다. 상기 장치는 또한, 하드웨어에 부가하여, 질의(question)에 있어서 컴퓨터 프로그램의 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택(protocol stack), 운영체제, 또는 이들 하나 이상의 조합을 구성하는 코드를 포함할 수 있다.
(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드로도 또한 참조될 수 있는)컴퓨터 프로그램은 컴파일되거나 해석된 언어 또는 선언적이거나 절차적인 언어를 포함하는 어떤 형태의 프로그래밍 언어로 작성될 수 있고, 이것은 독립형 프로그램, 또는 모듈, 구성요소, 서브루틴 또는 기타 컴퓨팅 환경에서 사용하기에 적합한 유닛을 포함하는, 어떤 형태로도 적용될 수 있다. 컴퓨터 프로그램은, 그럴 필요는 없지만, 하나의 파일 또는 파일 시스템에 대응될 수 있다. 프로그램은 다른 프로그램들 또는 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 잡고 있는 파일의 일부, 질의(question)에 있어서 프로그램에 전용인 단일 파일, 또는 다수의 조정된 파일들(예를 들어, 하나 이상의 모듈, 서브-프로그램, 또는 코드의 부분들을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 장소에 위치하거나 또는 다수의 장소에 걸쳐 분산되며 통신 네트워크를 통해 상호연결된 하나의 컴퓨터 또는 다수의 컴퓨터 상에서 실행되도록 적용될 수 있다.
본 명세서에 기술된 프로세스 및 논리 흐름들은 입력 데이터에 대해 동작하고 출력을 생성하여 기능들을 수행하기 위한 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 작동이 가능한 프로세서에 의해 수행될 수 있다. 상기 프로세스 및 논리 흐름들은 또한, 특정 목적의 논리 회로, 예를 들어 FPAG나 ASIC에 의해 수행될 수 있고 장치도 또한 그로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은, 일 예로서, 일반적이고 특별한 목적의 마이크로프로세서 둘 다, 및 어떤 종류의 디지털 컴퓨터의 어떤 하나 이상의 프로세서도 포함한다. 일반적으로 프로세서는 프로세서는 명령어들과 데이터를 ROM이나 RAM 또는 둘 다로부터 수신할 것이다. 컴퓨터의 필수 구성요소는 명령어를 수행하거나 실행하기 위한 프로세서 및 명령어 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대용량 저장장치, 예를 들어 자기(magnetic), 광자기디스크(magneto-optical disks), 또는 광디스크를 포함하거나, 또는 데이터를 수신 또는 전송하거나, 그 둘을 위해 이와 작동적으로 연결될 수 있다. 그러나 컴퓨터가 이와 같은 디바이스들을 포함할 필요는 없다. 나아가, 컴퓨터는 다른 디바이스, 예를 들어, 단지 몇 가지 예만 들면, 모바일 전화, PDA, 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기, 또는 휴대 저장 디바이스(예를 들어, USB 플래시 드라이브)에 임베디드 될 수 있다.
컴퓨터 프로그램 명령어 및 데이터를 저장하기에 적합한 컴퓨터-판독가능 매체는, 일 예시로서 반도체 메모리 디바이스, 예를 들어, EPROM, EEPROM, 및 플래시 메모리 디바이스; 자기 디스크, 예를 들어 내부 하드 디스크 또는 제거 가능한 디스크; 광자기 디스크; 및 CD=ROM 및 DVD-ROM 디스크를 포함하여, 모든 형태의 비 휘발성 메모리, 미디어 및 메모리 디바이스를 포함한다. 상기 프로세서 및 메모리는 특정 목적의 논리 회로에 의해 추가되거나 그에 통합될 수 있다.
사용자와 상호작용을 제공하기 위해, 본 명세서에 기술된 주요 내용의 실시예들은, 정보를 사용자에게 디스플레이 하기 위한 디스플레이 디바이스, 예를 들어 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와, 사용자가 입력을 컴퓨터에 제공할 수 있는 키보드와 포인팅 디바이스, 예를 들어 마우스나 트랙볼을 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류의 디바이스들도 역시 사용자와 상호작용을 제공하기 위해 사용될 수 있다; 예를 들어, 사용자에게 제공되는 피드백은 어떤 형태의 감각의 피드백, 예를 들어, 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백일 수 있다; 그리고 사용자로부터의 입력은 음향(acoustic), 음성(speech), 또는 촉각입력을 포함하는 어떤 형태로 수신될 수 있다. 부가하여, 컴퓨터는 사용자에 의해 사용되는 디바이스로 문서를 보내고 그로부터 문서를 수신함으로써; 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 클라이언트 디바이스 상의 웹 브라우저로 웹 페이지를 보냄으로써, 사용자와 상호작용 할 수 있다.
본 명세서가 많은 특정 실시예들의 세부 사항을 포함하지만, 이것들은 어떤 발명 또는 청구될 수 있는 것의 범위에 대한 제한으로서 해석돼서는 안되며, 대신에 특정 발명의 특정 실시예에서 특정될 수 있는 특징에 대한 설명으로서 해석되어야 한다. 본 명세서에서 별개의 실시예들의 내용으로 설명된 특정 특징들은 또한 하나의 단일 실시예에서 조합되어 구현될 수 있다. 역으로, 단일 실시예의 내용에 기술된 다양한 특징들은 또한 별개로 또는 어떤 적절한 하위 조합으로 다수의 실시예에서 구현될 수 있다. 나아가, 특징들이 특정 조건에서 동작하는 것으로 위에서 기술되고 심지어 초기에 그와 같이 클레임 되더라도, 클레임 된 조합으로부터 하나 이상의 특징들은 일부 경우에 그 조합으로부터 삭제될 수 있고, 클레임 된 조합은 하위 조합 또는 하위 조합의 변형을 지향할 수 있다.
유사하게, 동작들이 도면에서 특정 순서로 도시되었지만, 이는 그러한 동작들이 도시된 특정 순서 또는 시계열적 순서로 수행되는 것, 또는 원하는 결과를 달성하기 위해 모든 도시된 동작이 수행되어야 하는 것을 요구하는 것으로 이해돼서는 안 된다. 어떤 상황에서는, 멀티태스킹 또는 병행 프로세스가 유리할 수 있다. 나아가, 상술한 실시예에서 다양한 시스템 컴포넌트의 구분은 그러한 구분이 모든 실시예에서 요구되는 것으로 이해돼서는 안되며 기술된 프로그램 컴포넌트 및 시스템들은 일반적으로 하나의 단일 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품들에 패키지 되는 것으로 이해되어야 한다.
주요 내용의 특정 실시예들이 기술되었다. 다른 실시예들은 후속하는 청구항의 범위 내에 있다. 예를 들어, 청구항에서 인용된 동작들은 다른 순서로 수행되면서 여전히 원하는 결과를 달성할 수 있다. 일 예시로서, 첨부된 도면에 도시된 프로세스들은, 원하는 결과를 달성하기 위해, 도시된 특정 순서, 또는 시계열적 순서를 필수적으로 요구하지 않는다. 어떤 실시예에서는, 멀티태스킹 및 병행 프로세스가 유리할 수 있다.

Claims (16)

  1. 텍스트 입력을 용이하게 하기 위한 방법에 있어서,
    클라이언트에서 운영 환경의 애플리케이션 내로 입력 어시스턴트(input assistant)를 작동시키는 단계 -상기 입력 어시스턴트는 동일한 운영 환경 내에서 상기 애플리케이션으로서 독립된 입력 서비스이고 복수개의 애플리케이션들 내로 작동되어 운영될 수 있는 것-;
    사용자로부터 상기 애플리케이션의 입력 필드에 텍스트 문자열을 수신하는 단계; 및
    상기 입력 어시스턴트에 의해, 상기 문자열을 완성하기 위한 입력 예측을 제공하는 단계를 포함하고, 상기 제공하는 단계는,
    상기 애플리케이션의 상기 입력 필드 내에서 하나의 단어의 적어도 일 부분의 입력 텍스트를 선택하는 단계;
    적어도 둘 이상의 다른 텍스트 보조 서비스들로부터 하나 이상의 텍스트 보조 서비스를 선택하는 단계;
    상기 입력 어시스턴트에 의해, 상기 입력 어시스턴트와 통신하여 상기 하나 이상의 선택된 텍스트 보조 서비스로부터 상기 입력 텍스트에 관련된 텍스트 콘텐트를 수신하는 단계; 및
    상기 클라이언트에서 상기 수신된 텍스트 콘텐트를 제시하는 단계를 포함하는 방법.
  2. 청구항 1에 있어서,
    상기 예측을 제공하는 단계는, 마지막 문자의 입력 이래로 사용자에 의한 비활동(inaction)의 미리 정해진 시간 후에 수행되는 방법.
  3. 청구항 1에 있어서,
    상기 입력 예측은 상기 입력 문자열에 대한 관련도(relevance)에 따라 랭크된 단어들 또는 표현들의 목록을 포함하는 것을 특징으로 하는 방법.
  4. 청구항 3에 있어서,
    상기 목록은 상기 애플리케이션 내부의 팝업 메뉴에서 사용자에게 제시되는 것을 특징으로 하는 방법.
  5. 청구항 3에 있어서,
    상기 목록에서 가장 높은 랭킹의 상기 단어들 또는 표현들의 나머지 부분은 입력 텍스트에 음영 색상으로 채워지고, 사용자 확인에 따라 상기 입력 필드에 기록되는 것을 특징으로 하는 방법.
  6. 청구항 5에 있어서,
    상기 메뉴의 항목의 선택에 대한 사용자 확인에 따라, 상기 선택된 항목을 상기 선택된 입력 텍스트를 대체하기 위해 상기 입력 필드로 기록하는 단계를 더 포함하는 방법.
  7. 청구항 6에 있어서,
    상기 확인은 스페이스 바 또는 “리턴(return)” 키를 누르는 것을 특징으로 하는 방법.
  8. 청구항 1에 있어서,
    상기 둘 이상의 다른 텍스트 보조 서비스는 적어도 하나 이상의:
    제 2 언어의 단어 또는 구(phrase)에 대한 의미를 제 1 언어로 제공하는 사전 서비스;
    하나의 언어에서 단어의 잘못된 철자를 탐지하고 그것의 정확한 철자를 같은 언어로 제공하는 철자 검사 서비스;
    적어도 두 개의 언어들 사이의 텍스트 번역을 제공하는 번역 서비스;
    하나의 언어에서 특정 단어에 대한 동의어 또는 반의어를 제공하는 유의어 사전 서비스;
    특정 사용자에 의해 입력된 타겟 표현과 관련된 과거 표현들을 제공하는 입력 히스토리 서비스;
    하나 이상의 입력 문장의 문법을 검사하는 문법 검사기;
    특정 문서 타입의 본문(body text)을 포함하기 위한 미리 정의된 문서 타입을 제공하는 템플릿 필러(template filler); 또는
    입력 텍스트의 전체적인 쓰기 퀄리티를 판단하기 위해 사용될 수 있는 그레이더(grader)를 포함하는 것을 특징으로 하는 방법.
  9. 청구항 8에 있어서,
    상기 사용자에 의해 입력된 상기 텍스트 문자열은 영어이고;
    상기 2개 국어 사전 서비스는 영어 단어 또는 구에 대한 중국어 의미를 제공하기 위한 영어-중국어 사전 서비스이고;
    상기 철자 검사 서비스는 영어 단어의 잘못된 철자를 탐지하고 그것의 정확한 철자를 제공하기 위해 구성되고;
    상기 번역 서비스는 영어와 중국어 사이를 번역하도록 구성되고;
    상기 유의어 사전 서비스는 영어 단어의 동의어 및 반의어를 반환하도록 구성되는 것을 특징으로 하는 방법.
  10. 청구항 1에 있어서,
    적어도 하나의 상기 텍스트 보조 서비스는 상기 클라이언트로부터 원격인 서버에서 구현되는 것을 특징으로 하는 방법.
  11. 청구항 1에 있어서,
    상기 입력 텍스트를 선택하는 단계는, 사용자에 의해 수동으로 수행되는 것을 특징으로 하는 방법.
  12. 청구항 1에 있어서,
    상기 입력 텍스트를 선택하는 단계는, 상기 입력 어시스턴트에 의해 자동으로 수행되는 것을 특징으로 하는 방법.
  13. 텍스트 입력을 용이하게 하기 위한 시스템에 있어서,
    클라이언트에서 애플리케이션 내로 작동되고 상기 애플리케이션의 입력 필드에 사용자로부터 수신된 입력 텍스트를 처리하도록 구성되는 입력 어시스턴트,-상기 입력 어시스턴트는 동일한 운영 환경 내에서 상기 애플리케이션으로서 독립된 입력 서비스이고 복수개의 애플리케이션들 내로 작동되어 운영될 수 있는 것-;
    상기 입력 텍스트를 파싱하기 위한 텍스트 파서;
    둘 이상의 다른 텍스트 보조 서비스와 통신하고 적어도 하나 이상의 상기 다른 텍스트 서비스를 선택하는, 상기 입력 텍스트와 관련된 텍스트 콘텐트를 결과들로서 상기 입력 어시스턴트로 반환하도록 구성되는 서비스 통신 인터페이스; 및
    상기 입력 어시스턴트(보조) 서비스들로부터 수신된 상기 결과들을 제시하기 위한 프리젠테이션 처리기를 포함하는 시스템.
  14. 청구항 13에 있어서,
    적어도 하나의 텍스트 보조 서비스는 원격 서버에 위치하는 것을 특징으로 하는 시스템.
  15. 청구항 14에 있어서,
    상기 다른 텍스트 보조 서비스는 적어도:
    제 2 언어의 단어 또는 구(phrase)에 대한 의미를 제 1 언어로 제공하는 사전 서비스;
    하나의 언어에서 단어의 잘못된 철자를 탐지하고 그것의 정확한 철자를 같은 언어로 제공하는 철자 검사 서비스;
    적어도 두 개의 언어들 사이의 텍스트 번역을 제공하는 번역 서비스;
    하나의 언어에서 특정 단어에 대한 동의어 또는 반의어를 제공하는 유의어 사전 서비스; 또는
    특정 사용자에 의해 입력된 타겟 표현과 관련된 과거 표현들을 제공하는 입력 히스토리 서비스를 포함하는 것을 특징으로 하는 시스템.
  16. 청구항 14에 있어서,
    상기 사용자에 의해 입력된 상기 텍스트 문자열은 영어이고;
    상기 2개 국어 사전 서비스는 영어 단어 또는 구에 대한 중국어 의미를 제공하기 위한 영어-중국어 사전 서비스이고;
    상기 철자 검사 서비스는 영어 단어의 잘못된 철자를 탐지하고 그것의 정확한 철자를 제공하기 위해 구성되고;
    상기 번역 서비스는 영어와 중국어 사이를 번역하도록 구성되고;
    상기 유의어 사전 서비스는 영어 단어의 동의어 및 반의어를 반환하도록 구성되는 것을 특징으로 하는 시스템.
KR1020137017731A 2011-01-05 2011-01-05 텍스트 입력을 용이하게 하기 위한 방법 및 시스템 KR101781557B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/070044 WO2012092709A1 (en) 2011-01-05 2011-01-05 Method and system for facilitating text input

Publications (2)

Publication Number Publication Date
KR20140009284A true KR20140009284A (ko) 2014-01-22
KR101781557B1 KR101781557B1 (ko) 2017-09-26

Family

ID=46381530

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137017731A KR101781557B1 (ko) 2011-01-05 2011-01-05 텍스트 입력을 용이하게 하기 위한 방법 및 시스템

Country Status (6)

Country Link
US (1) US9009030B2 (ko)
EP (1) EP2661705A4 (ko)
JP (1) JP5809290B2 (ko)
KR (1) KR101781557B1 (ko)
CN (1) CN103370705B (ko)
WO (1) WO2012092709A1 (ko)

Families Citing this family (162)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US20120197628A1 (en) * 2011-01-28 2012-08-02 International Business Machines Corporation Cross-language spell checker
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
TWI526914B (zh) * 2011-04-29 2016-03-21 華碩電腦股份有限公司 多元輸入方法以及多元輸入模組
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US9348479B2 (en) 2011-12-08 2016-05-24 Microsoft Technology Licensing, Llc Sentiment aware user interface customization
US9378290B2 (en) 2011-12-20 2016-06-28 Microsoft Technology Licensing, Llc Scenario-adaptive input method editor
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
CN110488991A (zh) 2012-06-25 2019-11-22 微软技术许可有限责任公司 输入法编辑器应用平台
US8959109B2 (en) 2012-08-06 2015-02-17 Microsoft Corporation Business intelligent in-document suggestions
CN103631388A (zh) * 2012-08-28 2014-03-12 华为终端有限公司 一种优化手写输入法的方法及装置
KR101911999B1 (ko) 2012-08-30 2018-10-25 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 피처 기반 후보 선택 기법
US9026429B2 (en) * 2012-12-05 2015-05-05 Facebook, Inc. Systems and methods for character string auto-suggestion based on degree of difficulty
US9244905B2 (en) 2012-12-06 2016-01-26 Microsoft Technology Licensing, Llc Communication context based predictive-text suggestion
CN103902440B (zh) * 2012-12-25 2018-07-20 腾讯科技(深圳)有限公司 应用程序中的文字检测方法和装置
CN104969289B (zh) 2013-02-07 2021-05-28 苹果公司 数字助理的语音触发器
US9977779B2 (en) * 2013-03-14 2018-05-22 Apple Inc. Automatic supplementation of word correction dictionaries
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US20150031011A1 (en) * 2013-04-29 2015-01-29 LTG Exam Prep Platform, Inc. Systems, methods, and computer-readable media for providing concept information associated with a body of text
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
KR101959188B1 (ko) 2013-06-09 2019-07-02 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
US20150006632A1 (en) * 2013-06-27 2015-01-01 Google Inc. Determining additional information for an intended action of a user
WO2015018055A1 (en) 2013-08-09 2015-02-12 Microsoft Corporation Input method editor providing language assistance
US20150067491A1 (en) * 2013-09-03 2015-03-05 International Business Machines Corporation Intelligent auto complete
US9760624B1 (en) 2013-10-18 2017-09-12 Google Inc. Automatic selection of an input language
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
KR101609184B1 (ko) 2014-05-27 2016-04-06 네이버 주식회사 사전 기능을 제공하는 방법과 시스템, 그리고 기록 매체 및 파일 배포 시스템
WO2015183699A1 (en) 2014-05-30 2015-12-03 Apple Inc. Predictive messaging method
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US10579212B2 (en) 2014-05-30 2020-03-03 Apple Inc. Structured suggestions
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US10565219B2 (en) 2014-05-30 2020-02-18 Apple Inc. Techniques for automatically generating a suggested contact based on a received message
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
CN105278970A (zh) * 2014-06-16 2016-01-27 中兴通讯股份有限公司 一种数据处理方法、装置和终端
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10515151B2 (en) * 2014-08-18 2019-12-24 Nuance Communications, Inc. Concept identification and capture
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
TWI617981B (zh) * 2014-10-08 2018-03-11 極刻科技(香港)控股有限公司 一種使用線上內容以輸入訊息至應用程式的方法
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
CN104615591B (zh) * 2015-03-10 2019-02-05 上海触乐信息科技有限公司 基于上下文的前向输入纠错方法和装置
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10445425B2 (en) 2015-09-15 2019-10-15 Apple Inc. Emoji and canned responses
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10613825B2 (en) * 2015-11-30 2020-04-07 Logmein, Inc. Providing electronic text recommendations to a user based on what is discussed during a meeting
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10296576B2 (en) * 2015-12-08 2019-05-21 International Business Machines Corporation Filling information from mobile devices with security constraints
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
WO2017181355A1 (en) * 2016-04-20 2017-10-26 Google Inc. Automatic translations by keyboard
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DE102016114265A1 (de) * 2016-08-02 2018-02-08 Claas Selbstfahrende Erntemaschinen Gmbh Verfahren zum zumindest teilweise maschinellen Transferieren einer in einer Quellsprache abgefassten Wortfolge in eine Wortfolge einer Zielsprache
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US10817551B2 (en) 2017-04-25 2020-10-27 Panasonic Intellectual Property Management Co., Ltd. Method for expanding word, word expanding apparatus, and non-transitory computer-readable recording medium
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
CN107102748A (zh) * 2017-05-22 2017-08-29 北京百度网讯科技有限公司 用于输入字词的方法和输入法
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
JP6775202B2 (ja) * 2017-06-19 2020-10-28 パナソニックIpマネジメント株式会社 処理方法、処理装置、及び処理プログラム
US11263399B2 (en) * 2017-07-31 2022-03-01 Apple Inc. Correcting input based on user context
US10515637B1 (en) * 2017-09-19 2019-12-24 Amazon Technologies, Inc. Dynamic speech processing
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
KR102424514B1 (ko) 2017-12-04 2022-07-25 삼성전자주식회사 언어 처리 방법 및 장치
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US10496705B1 (en) 2018-06-03 2019-12-03 Apple Inc. Accelerated task performance
KR102206486B1 (ko) * 2018-06-29 2021-01-25 네이버 주식회사 입력 어플리케이션을 이용한 번역 서비스 제공 방법 및 이를 이용하는 단말장치
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
JP7147640B2 (ja) * 2019-03-14 2022-10-05 オムロン株式会社 文字入力装置、文字入力方法、及び、文字入力プログラム
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11093720B2 (en) * 2019-03-28 2021-08-17 Lenovo (Singapore) Pte. Ltd. Apparatus, method, and program product for converting multiple language variations
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11227599B2 (en) 2019-06-01 2022-01-18 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators
US11308265B1 (en) * 2019-10-11 2022-04-19 Wells Fargo Bank, N.A. Digitally aware neural dictation interface
CN111062201B (zh) * 2019-12-20 2023-07-21 北京百度网讯科技有限公司 用于处理信息的方法和装置
CN113449501A (zh) * 2020-03-24 2021-09-28 腾讯科技(深圳)有限公司 文档编辑方法、装置、计算机设备和存储介质
US11043220B1 (en) 2020-05-11 2021-06-22 Apple Inc. Digital assistant hardware abstraction
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
EP4224358A1 (en) 2022-02-08 2023-08-09 Koa Health B.V. Sucursal en España Method and system for a more accurate autocomplete mechanism

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01100668A (ja) * 1987-10-14 1989-04-18 Hitachi Ltd 日本語処理方式
US5109352A (en) * 1988-08-09 1992-04-28 Dell Robert B O System for encoding a collection of ideographic characters
US5511193A (en) * 1993-02-19 1996-04-23 Apple Computer, Inc. Text services manager providing multiple instances of input methods for text language processing and automatic synchronization between met hods
US5392386A (en) * 1994-02-03 1995-02-21 Inter Hi-Tec Ag Method and apparatus for adding functionality to computer programs executing under graphical user interfaces
JPH07334625A (ja) * 1994-06-06 1995-12-22 Nec Corp 文字列入力装置
US5635932A (en) * 1994-10-17 1997-06-03 Fujitsu Limited Lempel-ziv compression with expulsion of dictionary buffer matches
US5893133A (en) * 1995-08-16 1999-04-06 International Business Machines Corporation Keyboard for a system and method for processing Chinese language text
US5956674A (en) * 1995-12-01 1999-09-21 Digital Theater Systems, Inc. Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels
US6272456B1 (en) * 1998-03-19 2001-08-07 Microsoft Corporation System and method for identifying the language of written text having a plurality of different length n-gram profiles
JP3391257B2 (ja) * 1998-03-31 2003-03-31 日本電気株式会社 かな漢字自動変換方法及びかな漢字自動変換装置
JP3739959B2 (ja) * 1999-03-23 2006-01-25 株式会社リコー デジタル音響信号符号化装置、デジタル音響信号符号化方法及びデジタル音響信号符号化プログラムを記録した媒体
JP2001229156A (ja) * 2000-02-17 2001-08-24 Omron Corp 文字入力支援方法およびその方法を実施するためのプログラムが記録された記録媒体、ならびに文字入力支援機能付きの情報処理装置
US7107204B1 (en) * 2000-04-24 2006-09-12 Microsoft Corporation Computer-aided writing system and method with cross-language writing wizard
JP2003223437A (ja) * 2002-01-29 2003-08-08 Internatl Business Mach Corp <Ibm> 正解語の候補の表示方法、スペルチェック方法、コンピュータ装置、プログラム
US6946715B2 (en) * 2003-02-19 2005-09-20 Micron Technology, Inc. CMOS image sensor and method of fabrication
CN100350356C (zh) * 2002-07-01 2007-11-21 索尼爱立信移动通讯股份有限公司 输入文本的方法及使用该方法的电子装置
US20040153963A1 (en) * 2003-02-05 2004-08-05 Simpson Todd G. Information entry mechanism for small keypads
WO2005004113A1 (ja) * 2003-06-30 2005-01-13 Fujitsu Limited オーディオ符号化装置
US20080109889A1 (en) * 2003-07-01 2008-05-08 Andrew Bartels Methods, systems and devices for securing supervisory control and data acquisition (SCADA) communications
CN1293480C (zh) * 2003-08-11 2007-01-03 摩托罗拉公司 用于文本输入预测的存储器和用户词典
US7478033B2 (en) * 2004-03-16 2009-01-13 Google Inc. Systems and methods for translating Chinese pinyin to Chinese characters
US7660779B2 (en) * 2004-05-12 2010-02-09 Microsoft Corporation Intelligent autofill
US20090193334A1 (en) * 2005-05-18 2009-07-30 Exb Asset Management Gmbh Predictive text input system and method involving two concurrent ranking means
US8117540B2 (en) * 2005-05-18 2012-02-14 Neuer Wall Treuhand Gmbh Method and device incorporating improved text input mechanism
US7886233B2 (en) * 2005-05-23 2011-02-08 Nokia Corporation Electronic text input involving word completion functionality for predicting word candidates for partial word inputs
US7747639B2 (en) * 2005-08-24 2010-06-29 Yahoo! Inc. Alternative search query prediction
US20080182599A1 (en) * 2007-01-31 2008-07-31 Nokia Corporation Method and apparatus for user input
US8078978B2 (en) * 2007-10-19 2011-12-13 Google Inc. Method and system for predicting text
CN104866469B (zh) * 2007-04-11 2018-10-02 谷歌有限责任公司 具有第二语言模式的输入法编辑器
WO2008137160A1 (en) * 2007-05-07 2008-11-13 Biap, Inc. Providing personalized resources on-demand over a broadband network to consumer device applications
JP5206678B2 (ja) * 2007-06-26 2013-06-12 日本電気株式会社 シンクライアントシステム
US8726194B2 (en) * 2007-07-27 2014-05-13 Qualcomm Incorporated Item selection using enhanced control
EP2597868B1 (en) * 2007-09-24 2017-09-13 Qualcomm Incorporated Enhanced interface for voice and video communications
CN101398835B (zh) * 2007-09-30 2012-08-29 日电(中国)有限公司 基于自然语言的服务选择系统与方法以及服务查询系统与方法
US20090198691A1 (en) * 2008-02-05 2009-08-06 Nokia Corporation Device and method for providing fast phrase input
US8312032B2 (en) * 2008-07-10 2012-11-13 Google Inc. Dictionary suggestions for partial user entries
US8605039B2 (en) 2009-03-06 2013-12-10 Zimpl Ab Text input
GB0905457D0 (en) * 2009-03-30 2009-05-13 Touchtype Ltd System and method for inputting text into electronic devices
GB2470585A (en) * 2009-05-28 2010-12-01 Nec Corp Using a predictive text module to identify an application or service on a device holding data to be input into a message as text.
US8190420B2 (en) * 2009-08-04 2012-05-29 Autonomy Corporation Ltd. Automatic spoken language identification based on phoneme sequence patterns
US20110087961A1 (en) * 2009-10-11 2011-04-14 A.I Type Ltd. Method and System for Assisting in Typing
US20120035905A1 (en) * 2010-08-09 2012-02-09 Xerox Corporation System and method for handling multiple languages in text
US8688435B2 (en) * 2010-09-22 2014-04-01 Voice On The Go Inc. Systems and methods for normalizing input media
US8898586B2 (en) * 2010-09-24 2014-11-25 Google Inc. Multiple touchpoints for efficient text input
US20120197628A1 (en) * 2011-01-28 2012-08-02 International Business Machines Corporation Cross-language spell checker

Also Published As

Publication number Publication date
US20120173222A1 (en) 2012-07-05
WO2012092709A1 (en) 2012-07-12
CN103370705A (zh) 2013-10-23
JP5809290B2 (ja) 2015-11-10
KR101781557B1 (ko) 2017-09-26
CN103370705B (zh) 2018-01-02
JP2014505939A (ja) 2014-03-06
EP2661705A4 (en) 2016-06-01
EP2661705A1 (en) 2013-11-13
US9009030B2 (en) 2015-04-14

Similar Documents

Publication Publication Date Title
KR101781557B1 (ko) 텍스트 입력을 용이하게 하기 위한 방법 및 시스템
US8229732B2 (en) Automatic correction of user input based on dictionary
US9098488B2 (en) Translation of multilingual embedded phrases
EP2252944B1 (en) Universal language input
US9805718B2 (en) Clarifying natural language input using targeted questions
KR100643801B1 (ko) 복수의 언어를 연동하는 자동완성 추천어 제공 시스템 및방법
RU2675152C2 (ru) Быстрые задачи для экранных клавиатур
US20110099506A1 (en) Predictive Text Entry for Input Devices
US20150106702A1 (en) Cross-Lingual Input Method Editor
US20120297294A1 (en) Network search for writing assistance
JP2016218995A (ja) 機械翻訳方法、機械翻訳装置及びプログラム
CN111462740A (zh) 非语音字母语言的话音辅助应用原型测试的话音命令匹配
US11544448B2 (en) Computer-implemented presentation of synonyms based on syntactic dependency
JP2023519713A (ja) 自然言語処理のためのノイズデータ拡張
US20180018303A1 (en) Design time user interface with intelligent text reduction
CN110785762B (zh) 用于编写电子消息的系统和方法
KR102158544B1 (ko) 모바일 기기의 입력 인터페이스 내에서 맞춤법 검사를 지원하는 방법 및 시스템
Guy et al. Architecture of a Web-based predictive editor for controlled natural language processing
US20240005101A1 (en) Information processing apparatus, information processing method, and non-transitory computer readable medium
JP2006012188A (ja) 文書処理方法及び装置
Nalbandian et al. A Speech Interface to the PENG^ ASP ASP System
WO2014138756A1 (en) System and method for automatic diacritizing vietnamese text
WO2022104297A1 (en) Multimodal input-based data selection and command execution
Fletcher Ghanaian language integration on Android smartphones
KR20070064566A (ko) 자동완성 질의어 제공 시스템, 방법 및 상기 방법을실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한기록 매체

Legal Events

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