KR101554295B1 - 범용 언어 입력 - Google Patents

범용 언어 입력 Download PDF

Info

Publication number
KR101554295B1
KR101554295B1 KR1020107018453A KR20107018453A KR101554295B1 KR 101554295 B1 KR101554295 B1 KR 101554295B1 KR 1020107018453 A KR1020107018453 A KR 1020107018453A KR 20107018453 A KR20107018453 A KR 20107018453A KR 101554295 B1 KR101554295 B1 KR 101554295B1
Authority
KR
South Korea
Prior art keywords
input
application
translations
computer system
translation
Prior art date
Application number
KR1020107018453A
Other languages
English (en)
Other versions
KR20100125257A (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 KR20100125257A publication Critical patent/KR20100125257A/ko
Application granted granted Critical
Publication of KR101554295B1 publication Critical patent/KR101554295B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3337Translation of the query language, e.g. Chinese to English
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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 Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

범용 언어 입력을 위한 컴퓨터 프로그램 제품을 포함하는 시스템, 방법 및 장치가 제공된다. 일 구현예에 있어서, 방법이 제공된다. 이 방법은 제2 애플리케이션의 애플리케이션 인터페이스로의 사용자 입력을 검출하기 위하여, 제1 애플리케이션 또는 운영 시스템 컴포넌트를 사용하는 단계를 포함한다. 이 방법은 또한, 애플리케이션 인터페이스에서 입력이 검출됨에 따라서, 입력에 대한 하나 이상의 번역을 제공하기 위하여 제1 애플리케이션을 자동적으로 사용하는 단계를 포함하고, 이 단계는 입력을 번역 모델에 전송하는 단계, 번역된 입력을 번역 모델로부터 수신하는 단계, 및 번역된 입력을 제2 애플리케이션의 애플리케이션 인터페이스에 전송하는 단계를 포함한다.

Description

범용 언어 입력{Universal language input}
본 명세서는 언어 입력 방식에 관련된다.
언어 입력 방식을 통해, 사용자는 입력 방식 편집기(IME)를 사용하여 언어를 입력한다. IME는 하나의 입력 방식이 사용될 수 있도록 하는 언어 입력 방식 애플리케이션이다. 하나의 입력 방식에 의해, 사용자는 소스 언어로 된 키보드(예컨대, QWERTY 키보드)를 사용하여 대상 언어(예컨대, 비-라틴 언어)로 된 입력을 제공할 수 있다. IME는 대상 언어의 표의 문자(ideograph)를 소스 언어로 된 키보드 상의 키로 맵핑한다(예컨대, 입력 언어에서 특정 키나 키의 조합을 누르는 것은 맵핑에 기초하여 대상 언어의 상응하는 표의 문자를 생성함). 하지만, 종래의 IME는 맵핑된 문자를 단지 대체할 뿐이고, 입력을 번역하지 않았다(예컨대, 소스 언어로 된 입력 텍스트의 의미를 해석하고, 실질적으로 동일한 의미를 갖는 번역된 텍스트를 대상 언어로 제공함).
소스 언어로 된 입력을 제공하고, 그 입력을 대상 언어로 번역하기를 원하는 사용자는 개별 사전 또는 번역 애플리케이션을 통상 사용한다. 사용자는 사전 또는 번역 애플리케이션에 소스 언어로 된 입력을 제공한다. 다음, 사용자는 번역된 입력(예컨대, 대상 언어로 번역된 입력)을 사전 또는 번역 애플리케이션으로부터 복사하고, 그 번역된 입력을 소망하는 위치에 붙여 넣는다. 더욱이, 사용자가 텍스트의 개별 부분을 번역하고 싶으면(예컨대, 채팅 대화의 다른 행들을 입력함), 통상적으로 사용자는 텍스트의 각 부분을 사전 또는 번역 애플리케이션에 제공한다. 다음, 사용자는 번역된 텍스트의 각 부분을 사전 또는 번역 애플리케이션으로부터 복사하여 소망하는 위치(예컨대, 채팅 인터페이스)에 붙여 넣는다.
범용 언어 입력을 위한, 특히 입력을 번역하기 위한 컴퓨터 프로그램 제품을 포함하는 시스템, 방법 및 장치가 제공된다. 일반적으로, 일 양태의 방법이 제공된다. 이 방법은 제2 애플리케이션의 애플리케이션 인터페이스로의 사용자 입력을 검출하기 위하여, 제1 애플리케이션 또는 운영 시스템 컴포넌트를 사용하는 단계를 포함한다. 이 방법은 또한 애플리케이션 인터페이스에서 입력이 검출됨에 따라서, 입력에 대한 하나 이상의 번역을 제공하기 위하여 제1 애플리케이션을 자동적으로 사용하는 단계, 입력을 번역 모델에 전송하는 단계, 번역된 입력을 번역 모델로부터 수신하는 단계, 및 번역된 입력을 제2 애플리케이션의 애플리케이션 인터페이스에 전송하는 단계를 포함한다. 이 양태의 다른 구현예에는 시스템, 장치 및 컴퓨터 프로그램 제품이 있다.
이 양태의 다른 구현예는 후술하는 특징 중 하나 이상을 포함할 수 있다. 사용자 입력의 검출은 운영 시스템 또는 하나 이상의 애플리케이션과 통신할 수 있는 인터페이스에 훅을 적용하고, 및 인터페이스에 대한 호출을 감시하는 것을 포함할 수 있다. 이 호출은 시스템 호출 또는 애플리케이션 프로그램 인터페이스 호출을 포함할 수 있다. 제1 애플리케이션 또는 운영 시스템 컴포넌트는 입력 방식 편집기를 포함할 수 있다. 입력에 대한 하나 이상의 번역을 제공하는 것은 사용자 인터페이스에 하나 이상의 번역을 제시하고, 및 선택된 번역을 텍스트 브라우저 또는 편집기에 복사하는 것을 포함할 수 있다. 이 선택된 번역은 하나 이상의 번역에 대한 사용자의 선택에 의해 식별(identified)될 수 있다. 번역 모델은 원격 번역 서버에 위치될 수 있다. 제1 애플리케이션은 업데이트 서버를 사용하여 업데이트될 수 있다. 번역 모델은 선택 가능한 언어 모델을 사용할 수 있다.
본 명세서에 설명된 주제(subject matter)의 특정 실시예는 다음의 장점 중 하나 이상을 실현하기 위하여 구현될 수 있다. 번역을 수행하지 않는 애플리케이션(즉, 번역을 수행하기 위하여 별도의 애플리케이션을 사용할 필요가 있는 애플리케이션)에서, 사용자는 범용 언어 입력 방식 편집기를 통하여 입력 텍스트를 자동적으로 번역하고, 이로써 사용자의 시간과 키 입력을 절약할 수 있다. 범용 언어 입력 방식 편집기는 원격 번역 서버와 업데이트 서버를 이용할 수 있고, 이로써 번역 범위(translation coverage)의 확대가 가능해진다(예컨대, 로컬 언어 모델에서는 사용할 수 없는 추가적인 언어, 단어 및 구문에 대한 액세스가 가능해짐). 더욱이, 번역 서버의 사용에 의해 번역 모델의 컴포넌트가 원격지에 저장될 수 있으므로, 입력 방식 편집기의 메모리 크기가 축소된다.
본 명세서에 설명된 주제에 대한 하나 이상 실시예의 상세한 사항은 첨부 도면 및 이하의 설명에 개시된다. 이 주제의 다른 특징, 양태 및 장점은 상세한 설명, 도면 및 청구항으로부터 명백하게 된다.
도1은 수신된 번역 입력을 포함하는 애플리케이션 인터페이스의 예시적 스크린샷이다.
도2는 애플리케이션 인터페이스로의 입력을 그 입력이 검출되면 번역하는 예시적 컴퓨터 시스템의 개념적 블록도이다.
도3은 애플리케이션 인터페이스로의 입력을 그 입력이 검출되면 번역하는 예시적 프로세스를 도시한다.
도4는 범용 컴퓨터 시스템의 개략도이다.
도1은 번역되어 수신된 입력(155; 예컨대, 애플리케이션 인터페이스(100)로의 사용자 입력에 대한 하나 이상의 번역)을 포함하는 애플리케이션 인터페이스(100)의 예시적 스크린샷이다. 애플리케이션 인터페이스(100)는 예를 들어, 텍스트 브라우저 또는 편집기(예컨대, 채팅 애플리케이션, 워드 프로세서, 이메일 애플리케이션, 또는 웹 브라우저)일 수 있다. 일부 구현예에서, 애플리케이션 인터페이스(100)는 디스플레이 영역(110), 사용자 입력 영역(120), 및 번역 윈도우(130)를 포함한다. 번역 윈도우(130)는 탐색 필드(140; "搜索"은 "search"를 의미함), 및 번역된 입력 영역(150)을 포함한다.
예를 들어, 애플리케이션 인터페이스(100)는 채팅 클라이언트 애플리케이션(예컨대, Google Talk)의 채팅 윈도우를 나타낸다. 디스플레이 영역(110)은 채팅 참가자의 채팅 내용(예건대, 채팅 참가자 사이 대화의 행을, 입력 시간에 따라서 나타내는 텍스트)을 디스플레이한다. 사용자 입력 영역(120)은 번역될 예시적 입력(예컨대, "hello")을 포함한다. 일부 구현예에서, 번역될 입력에는 밑줄이 그어져(예컨대, 예시적 입력(125) "hello"), 그 입력이 번역된 입력(155)으로부터의 번역에 의해 대체될 수 있음을 사용자에게 알린다.
일부 구현예에서, 사용자는 번역될 입력(125)을 사용자 입력 영역(120)에 제공한다. 범용 언어 입력 방식 편집기는, 도2~4에 도시된 바와 같이, 입력을 검출하고, 그 입력에 대한 하나 이상의 번역을 자동적으로 제공할 수 있다. 예를 들어, 범용 언어 입력 방식 편집기는 입력으로서 "hello"를 검출하고, 번역될 입력(125)을 탐색 필드(140)에 자동적으로 제시하고, 번역될 입력(125)을 사용자가 계속 제공하도록 허용할 수 있다. 범용 언어 입력 방식 편집기는 번역된 입력을 번역된 입력 영역(150)에 자동적으로 제공한다. 일부 구현예에서, 범용 언어 입력 방식 편집기는, 예건대 주어진 입력을 번역하는 다수의 방식이 있을 때, 하나 이상의 가능한 번역을 제공한다. 예컨대, 번역된 입력(155)은 영단어 "hello"의 중국어 번역인 제1 번역 "
Figure 112010053492233-pct00001
" 및 제2 번역 "
Figure 112010053492233-pct00002
"를 포함한다.
일부 구현예에서, 범용 언어 입력 방식 편집기는 백그라운드 프로세스로서 실행된다. 예를 들어, 입력 방식 편집기를 사용할 수 있는 애플리케이션이 실행 중일 때, 범용 언어 입력 방식 편집기는 백그라운드 프로세스로서 실행될 수 있다. 또 다른 예로서, 운영 시스템이 부팅(boot up)되면, 범용 언어 입력 방식 편집기는 백그라운드 프로세스로서 시작된다. 특히, 번역 윈도우는 입력 방식을 사용하는 애플리케이션과 함께 사용자 인터페이스에 자동적으로 제시될 수 있다. 일부 구현예에서, 사용자는 번역을 위해 탐색 필드(140)에 입력을 직접 제공할 수 있다.
일부 실시예에서, 범용 언어 입력 방식 편집기는 사용자에 의해 수동으로 시작되고 조작될 수 있다. 예를 들어, 사용자는 범용 언어 입력 방식 편집기를 백그라운드 프로세스로서 시작시킬 수 있다. 특히, 범용 언어 입력 방식 편집기는 사용자의 토클(toggle; 예컨대, 키보드 단축키 또는 토클 버튼을 마우스로 클릭하기)에 응답하여 번역 윈도우를 개방할 수 있다. 일부 구현예에서, 사용자는 디스플레이 컨트롤(160)을 이용하여, 번역 윈도우를 사용자의 선호에 따라서 감추거나 드러낼 수 있다.
도2는 애플리케이션 인터페이스로의 입력을 그 입력이 검출됨에 따라서 번역하는 예시적 컴퓨터 시스템(200)의 개념적 블록도를 도시한다. 컴퓨터 시스템(200)은 사용자 인터페이스(202)와 소프트웨어(204)를 포함한다. 사용자(201)는 사용자 인터페이스(202)를 통하여 컴퓨터 시스템(200)에 액세스할 수 있다. 소프트웨어(204)는 애플리케이션(205), 범용 언어 입력 방식 편집기(206) 및 운영 시스템(OS; 207)을 포함한다. 운영 시스템(207)은 소프트웨어(204; 예컨대, 애플리케이션(205) 및 범용 언어 입력 방식 편집기(206))와 사용자(201) 사이에 사용자 인터페이스(202)를 제공할 수 있는 특정 소프트웨어이다.
범용 언어 입력 방식 편집기(206)는 번역 모델(209) 및 하나 이상의 언어 모델(210)을 포함한다. 대안적으로, 번역 모델(209)은 범용 언어 입력 방식 편집기(206)로부터 분리될 수 있다. 하나 이상의 언어 모델(210)은 범용 언어 입력 방식 편집기(206)로부터 또한 분리될 수 있다. 예를 들어, 이 모델들은 소프트웨어(예를 들어, 소프트웨어(204)) 내에 개별 소프트웨어 컴포넌트로서 포함되거나, 또는 원격적으로 위치(예컨대, 모델들은 원격 번역 서버(212)에 위치될 수 있음)될 수 있다. 언어 모델(210)은 사전(예컨대, Google 사전)을 더 포함할 수 있다. 소프트웨어(204)는 또한 훅 모듈(hook module; 208)을 포함한다. 훅 모듈은 예를 들어, 특정 애플리케이션(205)으로의 입력을 가로채고(intercept), 그 가로챈 입력을 범용 언어 입력 방식 편집기(206)에 전송할 수 있다. 일부 구현예에서, 훅 모듈(208)은 범용 언어 입력 방식 편집기(206)의 컴포넌트이다. 시스템(200)은 도3에 도시된 바와 같이, 애플리케이션 인터페이스로의 입력을 그 입력이 검출됨에 따라서 번역할 수 있다.
일부 구현예에서, 범용 언어 입력 방식 편집기(206)는 업데이트를 위해 업데이트 서버(211)를 사용한다. 업데이트 서버(211)는 소프트웨어(204)를 업데이트하기 위하여 컴퓨터 시스템(200)과 통신할 수 있다. 예를 들어, 컴퓨터 시스템(200)은 업데이터 애플리케이션(updater application)과 통신하기 위하여, 익스포트된(exported) 애플리케이션 프로그램 인터페이스(API) 관리자를 사용할 수 있다. 업데이터 애플리케이션은 업데이트 서버(211)로부터 업데이트를 다운로드하고, 그 업데이트(예컨대, 언어 모델에 대한 새로운 구문(phrase))를 범용 언어 입력 방식 편집기(206)에 들여보낸다(import). 특히, 들여보내진 구문은 하나 이상의 언어 모델(210) 내 사전에 부가된다.
또한, 업데이트 서버(211)는 번역 모델(예컨대, 번역 모델(209)), 언어 모델(210), 및 훅 모듈(208)을 포함하는 범용 언어 입력 방식 편집기(206)를 다운로드하거나 인스톨하는데 사용될 수 있다. 업데이트 서버(211)는 이들 컴포넌트 각각을 업데이트하는데 또한 사용될 수 있다. 예를 들어, 사용자는 추가적 대상 언어에 상응하는 추가적 언어 모델을 다운로드할 수 있다.
일부 구현예에서, 범용 언어 입력 방식 편집기(206)는 수신된 입력에 대한 번역을 제공하기 위하여 번역 서버(예컨대, 원격 번역 서버(212))를 사용한다. 예를 들어, 번역 서버(212)는 번역된 입력을 범용 언어 입력 방식 편집기(206)에 전송하기 위하여 컴퓨터 시스템(200)과 통신할 수 있다.
예를 들어, 범용 언어 입력 방식 편집기(206)는 익스포트된 API 관리자를 사용하여 번역 서버(212)와 통신할 수 있다. 번역 서버(212)는 소스 언어의 입력을 하나 이상의 대상 언어로 번역하기 위하여 번역 모델 및 하나 이상의 언어 모델을 포함한다. 일부 구현예에서, 로컬 번역 모델(예컨대, 번역 모델(209))이 특정 번역을 수행할 수 없으면(예컨대, 번역 모델(209)의 사전이 특정 단어 또는 구문을 포함하지 않거나, 번역 모델(209)이 적절한 언어 모델을 포함하지 않음), 범용 언어 입력 방식 편집기(206)는 번역 서버(212)를 사용한다.
도3은 애플리케이션 인터페이스로의 입력을 그 입력이 검출됨에 따라서 번역하는 예시적 프로세스(300)를 도시한다. 편의를 위해, 애플리케이션 인터페이스로의 입력을 그 입력이 검출됨에 따라서 번역하는 것은 번역을 수행하는 시스템과 관련하여 설명한다. 시스템은 제2 애플리케이션의 애플리케이션 인터페이스(예컨대, 도1의 애플리케이션 인터페이스(100))로의 사용자 입력을 검출하기 위하여, 제1 애플리케이션(예컨대, 도2의 범용 언어 입력 방식 편집기(206)) 또는 운영 시스템 컴포넌트(예컨대, 훅 모듈(208))를 사용한다(310).
훅 모듈은 소프트웨어(예컨대, 소프트웨어(204))내에 포함될 수 있다. 일부 구현예에서, 훅 모듈은 범용 언어 입력 방식 편집기의 일부일 수 있다. 일부 구현예에서, 훅 모듈은 운영 시스템 내에 인스톨된 컴포넌트이다. 범용 언어 입력 방식 편집기는 제2 애플리케이션의 애플리케이션 인터페이스로의 사용자 입력을 검출하기 위하여 훅 모듈을 사용할 수 있다.
훅 모듈(예컨대, 훅 모듈(208))은 하나 이상의 애플리케이션(예컨대, 애플리케이션(205) 및 범용 언어 입력 방식 편집기(206)) 및 운영 시스템(예컨대, 운영 시스템(207))과 통신할 수 있는 인터페이스를 훅하기 위하여 응용될 수 있다. 훅을 통하여, 사용자 또는 프로그램은 인터페이스에 대한 호출(call)을 감시할 수 있다. 특히, 훅 모듈은 인터페이스에 대한 시스템 호출 또는 API 호출(예컨대, 윈도우 메시지 핸들러(handler)와 같은 이벤트 핸들러가 수신한 키보드 이벤트)을 감시할 수 있다.
훅 모듈은 입력을 가로채고, 그 입력을 다른 소프트웨어 컴포넌트(예컨대, 범용 언어 입력 방식 편집기(206))에 전달할 수 있다. 예를 들어, 훅 모듈은 자신의 고유 어드레스를 이벤트에 대한 핸들러로서 등록하고, 입력이 검출됨에 따라서 시스템이 그 입력을 번역 모델(예컨대, 번역 모델(209))에 전송(320)하는 것을 허용한다. 번역 모델은 하나 이상의 언어 모델을 사용하여 입력을 번역된 입력으로 번역한다. 일부 구현예에서, 도2에서 설명한 바와 같이, 시스템은 번역을 위해 입력을 번역 서버(212)에 전송한다(320).
일부 구현예에서, 입력은 클립보드로부터 복사된 컨텐츠를 포함한다. 예를 들어, 사용자가 컨텐츠 소스(예컨대, 웹페이지)로부터 애플리케이션 인터페이스(예컨대, 애플리케이션 인터페이스(100))에 입력 "hello"를 복사하면, 시스템은 애플리케이션 인터페이스로 복사된 입력 "hello"를 검출하기 위하여 제1 애플리케이션 또는 운영 시스템 컴포넌트를 사용한다. 일부 구현예에서, 입력은 원격 소스로부터 인입(incoming)되는 입력(예컨대, 다른 채팅 참가자로부터의 채팅 대화를 나타내는 인입 텍스트, 및 웹페이지로부터의 데이터를 나타내는 인입 텍스트)을 포함한다.
일부 구현예에서, 제1 애플리케이션 또는 운영 시스템 컴포넌트는 제2 애플리케이션(예컨대, 채팅 클라이언트 애플리케이션)의 애플리케이션 인터페이스 내 특정 구조적 요소(예컨대, 도1의 사용자 입력 영역(120))로의 사용자 입력을 가로챈다. 예를 들어, 훅 모듈(208)은 사용자 입력 영역(120)에 제공된 사용자 입력을 가로챈다. 대안적으로, 훅 모듈(208)은 채팅 클라이언트 애플리케이션의 도움말 기능(help feature)에 대하여, 예컨대 탐색 필드에 제공된 사용자 입력을 가로채지 않는다.
일부 구현예에서, 입력이 검출되면, 범용 언어 입력 방식 편집기(206)는 그 입력을 번역되어야 할 입력으로서 자동적으로 식별한다. 더욱이, 범용 언어 입력 방식 편집기(206)는 입력이 번역될 수 있음을 사용자에게 나타낼 수 있다. 예를 들어, 범용 언어 입력 방식 편집기(206)는 시각적 단서(예컨대, 입력을 강조(highlighting)하거나, 입력에 밑줄을 그음)를 표시자(indicator)로서 사용할 수 있다.
입력을 번역하는 하나의 예시적 기술은 통계적 기계 번역이다. 통계적 기계 번역은 소스 언어의 특정 입력이 주어지면, 대상 언어에서 가장 가능성 있는 번역을 식별하기 위하여 시도한다. 예를 들어, 프랑스어로부터 영어로 문장을 번역하는 경우, 통계적 기계 번역은 주어진 프랑스어 문장에 대해 가장 가능성 있는 영어 문장을 식별한다. 이 가장 가능성 있는 번역은 다음과 같이 쓰일 수 있다.
Figure 112010053492233-pct00003
이 식은 모든 가능한 문장 중, P(e┃f)에 대하여 가장 큰 값을 제공하는 영어 문장(e)를 기술한다. 부가적으로, 베이즈의 규칙은 다음과 같이 규정하고 있다.
Figure 112010053492233-pct00004
베이즈의 규칙을 이용하면, 이 가장 가능성 있는 문장은 다음과 같이 쓰일 수 있다.
Figure 112010053492233-pct00005
따라서 가장 가능성 있는 e(즉, 가장 가능성 있는 영어 번역)는 e가 출현할 확률과 e가 f로 번역될 확률(즉, 주어진 영어 문장이 프랑스어 문장으로 번역될 확률)의 곱을 최대화하는 것이다.
또 다른 예시적 기술은 P(e┃f)에 대하여 특정의 임계량보다 큰 값을 갖는 모든 가능한 번역을 식별한다. 이 기술에 의해 시스템은 입력에 대한 하나 이상의 번역을 포함하는 번역된 입력을 제공할 수 있다.
일부 구현예에서, 사용자는 하나 이상의 언어 모델(210) 중 하나 이상을 선택한다. 예를 들어, 사용자가 제1 언어의 입력(예컨대, 영어 단어 "hello")을 제2 언어(예컨대, 중국어 문구 "
Figure 112010053492233-pct00006
")로 번역하기를 원하는 경우, 사용자는 제2 언어를 선택하고, 이로써 제2 언어에 상응하는 언어 모델(예컨대, 중국어 모델)을 선택한다. 또 다른 예로서, 사용자가 제1 언어의 입력(예컨대, 영어 단어 "hello")을 제3 언어(예컨대, 스페인어 단어 "hola")로 번역하기를 원하는 경우, 사용자는 제3 언어를 선택하고, 이로써 제3 언어에 상응하는 언어 모델(예컨대, 스페인어 모델)을 선택할 수 있다.
일부 구현예에서, 시스템은 하나 이상의 언어 모델(210) 중 하나 이상을 자동적으로 선택한다. 예를 들어, 범용 언어 입력 방식 편집기(206)는 컨텍스트 식별 모듈(context identification module)을 포함할 수 있다. 컨텍스트 식별 모듈은 제2 애플리케이션에서 사용자 입력의 컨텍스트(예컨대, 웹채팅에서 다른 채팅 참가자가 사용하는 언어, 또는 웹사이트 또는 이메일 수신자와 연관된 지리적 영역)를 식별할 수 있다. 예를 들어, 다른 채팅 참가자가 중국어로 채팅하고 있거나, 사용자가 중국어 웹사이트(예컨대, www.google.cn)를 방문하고 있거나, 또는, 사용자가 중국 이메일 주소(예컨대, )에 이메일을 보내는 경우, 범용 언어 입력 방식 편집기(206)는 선택 가능한 언어 모델로부터 중국어 모델을 자동적으로 선택할 수 있다.
일부 구현예에서, 번역된 입력은 하나 이상의 언어로 된 하나 이상의 번역을 포함한다. 예를 들어, 사용자 또는 시스템은 번역 모델에 의해 사용될 2개 이상의 언어 모델을 선택할 수 있다. 대안적으로, 시스템은 번역 모델에 의해 사용될 2개 이상의 언어 모델을 자동적으로 선택할 수 있다. 특히, 웹 채팅에서, 한 채팅 참가자가 스페인어를 입력하고, 다른 채팅 참가자가 중국어를 입력하고, 사용자가 입력 "hello"를 제공하면, 스페인어 모델과 중국어 모델이 선택되고, 번역된 입력(예컨대, "hola", "
Figure 112010053492233-pct00007
" 및 "
Figure 112010053492233-pct00008
")은 제2 애플리케이션의 애플리케이션 인터페이스(예컨대, 도1의 애플리케이션 인터페이스(100)의 번역된 입력 영역(150))에 전송될 수 있다.
시스템은 번역된 입력을 번역 모델(예컨대, 번역 모델(209); 또는 특히 도2에 설명된 상황에서는, 원격 번역 서버(212)의 번역 모델)로부터 수신하고(330), 번역된 입력을 제2 애플리케이션의 애플리케이션 인터페이스(예컨대, 애플리케이션(205) 중 하나의 애플리케이션 인터페이스)에 전송한다(340). 예를 들어, 훅 모듈은 번역된 입력을 원래의 핸들러에 전송하는 것을 포함하여 원래의 핸들러(예컨대, 윈도우 메시지 핸들러)를 호출하여 훅을 등록해제하고, 원래의 핸들러는 번역된 입력을 제2 애플리케이션의 애플리케이션 인터페이스에 전송한다(340).
일부 구현예에서, 시스템은 번역된 입력을 사용자 인터페이스(예컨대, 사용자 인터페이스(202))에 선택을 위해 제시한다(350). 번역된 입력은 번역될 입력에 대한 하나 이상의 번역을 포함할 수 있다. 일부 구현예에서, 사용자는 사용자 인터페이스에 제시된 하나 이상의 번역 중 하나를 선택된 번역으로서 선택한다. 일부 구현예에서, 하나 이상의 번역은 정확한 번역이 될 가능성에 따라서 사용자 인터페이스에 제시된다(예컨대, 정확한 번역이 될 가능성이 감소하는 순서로 수치적 리스트에 제시됨). 정확한 번역이 될 가능성은, 예를 들어, 컨텍스트(예컨대, 앞서 번역된 입력)에 따라서 달라질 수 있다. 일부 구현예에서, 하나 이상의 번역은 훈련 데이터(training data)에서 그 번역이 출현하는 빈도에 따라서 사용자 인터페이스에 제시될 수 있다.
일부 구현예에서, 번역 모델(209)은 하나 이상의 번역 중 하나를 선택된 번역으로서 자동적으로 선택한다. 예를 들어, 하나 이상의 언어 모델(210)은 사전을 포함할 수 있고, 이 사전은 훈련 데이터에서 출현하는 워드 또는 구문의 상대 빈도를 또한 포함한다. 번역 모델(209)은 출현할 가능성이 가장 높은 번역을 선택된 번역으로서 자동적으로 선택할 수 있다(예컨대, 통계적 기계 번역을 사용함).
시스템은 선택된 번역을 제2 애플리케이션의 텍스트 브라우저 또는 편집기에 복사하고(360), 추가적인 사용자 입력에 대한 감시를 계속한다(370). 시스템이 추가 사용자 입력을 감지하면(단계 370에서 "예"), 시스템은 단계 320, 330, 340 및 선택적으로는 350, 360, 370을 포함하는 단계를 수행한다. 그렇지 않은 경우, 프로세스는 종료한다(380).
일부 구현예에서, 훅 모듈은 사용자가 제2 애플리케이션을 종료시키거나 또는 제2 애플리케이션이 사용자의 관심을 더 이상 받지 못 할 때(예컨대, 사용자가 관심을 제3 애플리케이션으로 전환하거나, 사용자가 그래픽 사용자 인터페이스에서 제2 애플리케이션을 최소화함)까지는 훅을 등록해제하지 않는다. 일부 구현예에서, 훅 모듈은 사용자가 수동으로 제1 애플리케이션을 디스에이블(즉, 종료시킴)할 때까지 훅을 등록해제하지 않는다. 더욱이, 일부 구현예에서, 훅 모듈은, 제2 애플리케이션이 사용자의 관심내로 다시 복귀하거나 또는 사용자가 제2 애플리케이션을 다시 시작하면, 운영 시스템 또는 하나 이상의 애플리케이션과 통신할 수 있는 인터페이스를 자동적으로 다시 훅(re-hook) 한다.
예를 들어, 사용자는 영어 문자 "water"를 입력으로서 처음 제공한다. 시스템이 입력을 감지함에 따라서, 그 입력은 번역 모델에 전송된다. 물을 의미하는, 중국어 문자 "水"는 번역된 입력으로서 번역 모델로부터 수신되고, 제2 애플리케이션의 애플리케이션 인터페이스에 전송된다. 더욱이, 사용자가 입력의 제공을 계속함에 따라서, 영어 문자 "water"인 원래 열은 영어 문자 "waterfall"인 열이 될 수 있다. 시스템이 입력(예컨대, 입력되는 각 문자)을 검출함에 따라서, 입력은 번역을 위해 번역 모델에 전송된다. 예를 들어, 사용자가 마지막 문자 "l"을 타이핑한 후, 시스템은 "waterfall"을 의미하는 "瀑布"를 제2 애플리케이션의 애플리케이션 인터페이스에 자동적으로 전송할 수 있다. 일부 구현예에서, 범용 언어 입력 방식 편집기(206)는 예측적 번역을 제공한다. 예를 들어, 사용자가 문자 "f"를 타이핑한 후, 시스템은 "瀑布"; "waterfowl"을 의미하는 "水禽"; 및 "waterfront"를 의미하는 "
Figure 112010053492233-pct00009
"을 제2 애플리케이션의 애플리케이션 인터페이스에 자동적으로 전송할 수 있다. 사용자가 문자 "a"를 타이핑한 후에, 시스템은 "瀑布"를 자동적으로 전송한다.
도1과 도2에 도시된 바와 같이, 예를 들어, 사용자는 애플리케이션 인터페이스(100; 예컨대, Google Talk 클라이언트 애플리케이션 인터페이스 또는 그 밖의 채팅 또는 메시징 애플리케이션 인터페이스)에 "hello"를 타이핑할 수 있다. 윈도우 운영 시스템을 실행 중인 컴퓨터 시스템에서, 입력 "hello"를 포함하는 키보드 이벤트는 Win32 API에 전송된다. 특히, 윈도우 메시지 핸들러는 키보드 이벤트를 프로세스할 수 있다. 하지만, 범용 언어 입력 방식 편집기(206)는 훅 모듈(208)을 사용하여, Win32 API를 후킹하고, 입력을 가로채고, 입력을 번역 모델(209)에 전송할 수 있다.
번역 모델(209)은 하나 이상의 언어 모델 중 하나(예컨대, 중국어 번역 모델)를 사용하여 입력을 번역하고, 그 번역된 입력을 윈도우 메시지 핸들러에 전송한다. 윈도우 메시지 핸들러는 번역된 입력을 애플리케이션 인터페이스(100)에 전송한다. 선택적으로는, 범용 언어 입력 방식 편집기(206)는 사용자가 선택하도록, 사용자 인터페이스(예컨대, 번역된 입력(155)을 포함하는 번역 윈도우(130))에 번역된 입력을 제시할 수 있다.
다음, 시스템은 선택된 입력(예컨대, 중국어 문구 "
Figure 112010053492233-pct00010
" 또는 중국어 단어 "
Figure 112010053492233-pct00011
")을 텍스트 브라우저 또는 편집기(예컨대, 사용자 입력 영역(120))에 복사한다. 예를 들어, "
Figure 112010053492233-pct00012
"가 "hello"를 대체하기 위하여 사용자 입력 영역(120)에 복사될 수 있다. 대안적으로, "
Figure 112010053492233-pct00013
"가 "hello"를 대체하기 위하여 사용자 입력 영역(120)에 복사될 수 있다. 범용 언어 입력 방식 편집기(206)는 추가 입력(예컨대, 사용자 입력 영역(120)에 제공된 추가 입력)에 대한 감시(370)를 계속할 수 있다.
도4는 범용 컴퓨터 시스템(400)의 개략도이다. 시스템(400)은 범용 언어 입력 방식 편집기(206)와 관련하여 설명된 동작들을 실행하는데 사용될 수 있다. 시스템(400)은 프로세서(410), 메모리(420), 저장 디바이스(430) 및 입력/출력 디바이스(440)를 포함한다. 구성요소(410, 420, 430 및 440) 각각은 시스템 버스(450)를 통해 상호 접속된다. 프로세서(410)는 시스템(400) 내에서 실행 명령들을 처리할 수 있다. 실행된 명령은 예컨대, 범용 언어 입력 방식 편집기(206) 내 하나 이상의 구성요소를 구현할 수 있다. 일 구현예에서, 프로세서(410)는 싱글 쓰레드(single-threaded) 프로세서이다. 다른 구현예에서, 프로세서(410)는 멀티 쓰레드(multi-threaded) 프로세서이다. 프로세서(410)는 메모리(420) 또는 저장 디바이스(430)에 저장된 명령들을 처리하여 입력/출력 디바이스(440) 상에 사용자 인터페이스(예컨대, 사용자 인터페이스(202))용 그래픽 정보를 디스플레이할 수 있다.
메모리(420)는 휘발성 또는 비휘발성 등의 컴퓨터 판독 가능 매체이고, 시스템(400) 내의 정보를 저장한다. 메모리(420)는 예컨대, 범용 언어 입력 방식 편집기(206)를 저장할 수 있다. 저장 디바이스(430)는 시스템(400)에 대해 영구 저장부를 제공할 수 있다. 저장 디바이스(430)는 플로피디스크 디바이스, 하드디스크 디바이스, 광학디스크 디바이스, 테이프 디바이스 또는 그 밖의 적절한 영구 저장 수단일 수 있다. 입력/출력 디바이스(440)는 시스템(400)에 대하여 입력/출력 동작을 제공한다. 일 구현예에서, 입력/출력 디바이스(440)는 키보드 및/또는 포인팅 디바이스를 포함한다. 다른 구현예에서, 입력/출력 디바이스(440)는 그래픽 사용자 인터페이스를 디스플레이하기 위한 디스플레이 유닛을 포함한다.
입력/출력 디바이스(440)는 범용 언어 입력 방식 편집기(206)에 대하여 입력/출력 동작을 제공할 수 있다. 범용 언어 입력 방식 편집기(206)는 사용자 입력을 검출하고, 번역된 입력을 예를 들어, 채팅 애플리케이션(예컨대, 채팅 윈도우(100)), 텍스트 편집기 또는 브라우저 애플리케이션(예컨대, 워드 프로세서, 이메일 애플리케이션, 또는 웹 브라우저), 번역 애플리케이션, 또는 번역된 입력을 사용할 수 있는 그 밖의 애플리케이션(예컨대, 채팅 기능이 있는 게임 애플리케이션) 등의 애플리케이션에 전송할 수 있다. 범용 언어 입력 방식 편집기(206)는 번역 모델(209) 및 하나 이상의 언어 모델(210)과 같은 컴포넌트를 포함할 수 있다. 범용 언어 입력 방식 편집기(206)는 또한 업데이트와 번역을 위하여 서버를 사용할 수 있다. 이러한 컴포넌트의 예에는 업데이트 서버(211)와 번역 서버(212)가 있다. 이러한 컴포넌트(209,210,211 및 212)는 저장 디바이스(430), 메모리(420)에 영구적으로 존재할 수 있고, 또는 예컨대 네트워크 접속을 통해 얻어질 수 있다.
본 명세서에서 설명된 주제와 기능적 동작은 디지털 전자 회로로 구현되거나, 컴퓨터 소프트웨어, 펌웨어 또는 본 명세서에 개시된 구조 및 그들의 구조적 등가물을 포함하는 하드웨어, 또는 이들의 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 기재된 주제의 실시예는 하나 이상의 컴퓨터 프로그램 제품, 즉, 데이터 프로세싱 장치에 의해 실행되거나 또는 그 장치의 동작을 제어하도록, 유형의 프로그램 운반체(carrier)에 구체화된 컴퓨터 프로그램 명령들의 하나 이상의 모듈로서 구현될 수 있다. 유형의 프로그램 운반체는 전파되는(propagated) 신호 또는 컴퓨터 판독가능 매체일 수 있다. 전파되는 신호는 인공적으로 생성된 신호(예를 들어, 기계-생성 전기, 광 또는 전자기 신호)로서, 컴퓨터에 의한 실행을 위하여 적절한 수신기 장치로 전송하기 위한 정보를 인코딩하기 위해 생성된다. 컴퓨터 판독가능 매체는 기계 판독가능 저장 디바이스, 기계 판독가능 저장 기판(substrate), 메모리 디바이스, 기계 판독가능 전파되는 신호를 실현하는 조성물, 또는 이들 중 하나 이상의 조합일 수 있다.
"데이터 프로세싱 장치"라는 용어는 데이터를 처리하기 위한 모든 장치, 디바이스 및 기계를 포괄하며, 예를 들어, 프로그래머블 프로세서, 컴퓨터 또는 복수의 프로세서나 컴퓨터를 포함한다. 장치는, 하드웨어 외에도, 당해 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드를 포함할 수 있다. 코드는 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 시스템, 또는 이들 중 하나 이상의 조합을 구성한다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로도 알려짐)은 컴파일 또는 인터프리터 언어나 선언적 또는 절차적 언어를 포함하는 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 그 밖의 유닛을 포함하는 임의의 형태로도 사용될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 상응해야 하는 것은 아니다. 프로그램은 다른 프로그램 또는 데이터를 보유하는 파일의 일부에 저장되거나(예를 들어, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트), 당해 프로그램 전용의 단일 파일에 저장되거나, 또는 다수의 조화된(coordinated) 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램, 코드의 부분을 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터에서, 또는 한 위치에 배치되거나 또는 다수의 위치에 걸쳐서 분산되고 통신 네트워크에 의해 접속된 다수의 컴퓨터에서 실행되도록 배치될 수 있다.
본 명세서에 설명된 프로세스와 논리 흐름은, 입력 데이터에 작용하여 출력을 생성하는 기능들을 수행하기 위하여 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그래머블 프로세서들에 의해 수행될 수 있다. 프로세스와 논리 흐름은 전용 논리 회로(예를 들어, FPGA(field programmable gate array), 또는 ASIC(application specific integrated circuit))에 의해 수행될 수 있고, 장치들은 전용 논리 회로에 의해 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서에는, 예를 들어, 범용 및 전용 마이크로프로세서들, 및 임의 종류의 디지털 컴퓨터 중 하나 이상의 프로세서들이 있다. 일반적으로, 프로세서는 판독 전용 메모리(ROM), 또는 랜덤 액세스 메모리(RAM), 또는 양자 모두로부터 명령과 데이터를 수신한다. 컴퓨터의 필수 구성요소는 명령을 실행하는 프로세서, 및 명령과 데이터를 저장하는 하나 이상의 메모리 디바이스이다.
일반적으로, 컴퓨터는 데이터를 저장하기 위해 하나 이상의 대용량 저장 디바이스(예를 들어, 자기 디스크, 광자기 디스크, 또는 광 디스크)를 포함하거나, 또는 이 디바이스와 데이터를 송수신하도록 결합될 수 있다. 하지만 컴퓨터는 이러한 디바이스를 구비할 필요는 없다. 더욱이, 컴퓨터는 예를 들어, 모바일 전화기, 개인 정보 단말(PDA), 모바일 오디오 또는 비디오 재생기, 게임 콘솔, GPS(global positioning system) 수신기 등과 같은 다른 디바이스에 내장될 수 있다.
컴퓨터 프로그램 명령과 데이터를 저장하기 적합한 컴퓨터 판독가능 매체에는, 예를 들어, 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM, 플래시 메모리 디바이스); 자기 디스크(예를 들어, 내부 하드디스크, 착탈식 디스크); 광자기 디스크; 및 CD ROM과 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스가 있다. 프로세서와 메모리는 전용 논리 회로에 의해 보완되거나 또는 전용 논리 회로에 통합될 수 있다.
사용자와의 상호작용을 제공하기 위하여, 본 명세서에 기술된 주제의 실시예는, 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스(예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터), 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 구비한 컴퓨터 상에 구현될 수 있다. 사용자는 키보드와 포인팅 디바이스를 이용하여 컴퓨터에 입력을 제공할 수 있다. 사용자와의 상호작용을 제공하기 위하여 다른 종류의 디바이스가 또한 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백(feedback)은 예를 들어, 시각 피드백, 청각 피드백 또는 촉각 피드백인 임의 형태의 감각 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다.
본 명세서에 기술된 주제의 실시예는, 예컨대, 데이터 서버와 같은 백엔드(back-end) 컴포넌트를 구비하는 컴퓨팅 시스템; 또는 예컨대, 애플리케이션 서버와 같은 미들웨어 컴포넌트를 구비하는 컴퓨팅 시스템; 또는 예컨대, 사용자가 본 명세서에 기술된 주제의 구현예와 상호작용할 수 있는 그래픽 사용자 인터페이스 또는 웹브라우저를 구비한 클라이언트 컴퓨터와 같은 프론트엔드(front-end) 컴포넌트를 구비하는 컴퓨터 시스템; 또는 이러한 백엔드, 미들웨어 또는 프론트엔드 컴포넌트의 임의 조합을 구비하는 컴퓨팅 시스템으로 구현될 수 있다. 시스템의 컴포넌트는 디지털 데이터 통신의 임의 형태 또는 매체(예를 들어, 통신 네트워크)에 의해 상호접속될 수 있다. 통신 네트워크의 예에는 근거리 네트워크(LAN)와 인터넷과 같은 광역 네트워크(WAN)가 포함된다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 보통 서로 떨어져 있으며, 일반적으로는 통신 네트워크를 통하여 상호작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터상에서 실행되고, 상호 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의하여 발생한다.
본 명세서가 다수의 특정한 구현 세부사항을 포함하고 있지만, 이는 어떠한 발명의 범위나 청구할 사항의 범위에 대한 제한으로서 이해되어서는 안 되며, 특정 발명의 특정한 실시형태에 고유할 수 있는 특징들의 설명으로서 이해되어야 한다. 개별의 실시 형태를 배경으로 본 명세서에서 설명된 소정 특징들은 조합되어 단일 실시형태로 구현될 수 있다. 반대로, 단일 실시 형태를 배경으로 설명한 다양한 특징은 복수의 실시 형태에서 개별로 구현되거나 어떤 적당한 하위 조합으로서도 구현 가능하다. 또한, 앞에서 특징들이 소정 조합에서 동작하는 것으로서 설명되고 그와 같이 청구되었지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우에 해당 조합으로부터 삭제될 수 있으며, 청구된 조합은 하위 조합이나 하위 조합의 변형으로 될 수 있다.
마찬가지로, 도면에서 특정한 순서로 동작을 묘사하고 있지만, 바람직한 결과를 얻기 위해, 그러한 동작이 도시한 특정 순서나 순차적인 순서로 수행되어야 한다거나, 설명한 모든 동작들이 수행되어야 한다는 것을 의미하는 것은 아니다. 소정 환경에서, 멀티태스킹 및 병렬 프로세싱이 바람직할 수 있다. 또한, 상술한 실시 형태에 있어서 다양한 시스템 구성요소의 분리는 모든 실시 형태에서 그러한 분리를 요구하는 것으로 이해되어서는 안 되며, 설명한 프로그램 구성요소와 시스템은 단일 소프트웨어 제품으로 통합되거나 또는 복수의 소프트웨어 제품으로 패키지될 수 있다는 점을 이해해야 한다.
본 명세서에서 기술된 주제의 특정 실시형태가 설명되었다. 그 밖의 실시형태는 후술하는 청구범위 내에 속한다. 예를 들어, 청구항에 인용된 동작들은 상이한 순서로 수행될 수 있지만, 여전히 바람직한 결과를 달성한다. 일 실시예로서, 첨부한 도면에 도시한 프로세스는, 바람직한 결과를 얻기 위해, 도시한 특정 순서나 순차적인 순서를 반드시 요구하는 것은 아니다. 소정 구현예에서, 멀티태스킹과 병렬 프로세싱이 바람직할 수 있다.
200 : 컴퓨터
201 :사용자
202 : 사용자 인터페이스
204 : 소프트웨어
205 : 애플리케이션
206 : 범용 언어 입력 방식 편집기
208 : 훅 모듈
209 : 번역 모델
210 : 언어 모델(들)
211 : 업데이트 서버
212 : 번역 서버

Claims (25)

  1. 컴퓨터에 의해 구현되는 방법(computer-implemented method)에 있어서,
    프로세서를 포함하는 컴퓨터 시스템에서, 상기 컴퓨터 시스템상에서 실행되는 복수의 애플리케이션들(applications)과 운영 시스템(operating system) 사이의 인터페이스에 대해 훅(hook)을 적용함에 의해 상기 컴퓨터 시스템상에서 실행되는 상기 복수의 애플리케이션들 중 하나의 애플리케이션에 대한 사용자 입력을 가로채는(intercept) 단계와, 상기 사용자 입력은 소스 언어(source language)로 된 것이고;
    상기 컴퓨터 시스템에서, 상기 컴퓨터 시스템상에서 실행되는 다른 애플리케이션에 상기 입력을 리다이렉트(redirect)하는 단계와, 상기 다른 애플리케이션은 상기 복수의 애플리케이션들과 다르며;
    상기 컴퓨터 시스템에서, 상기 다른 애플리케이션을 사용해서 상기 입력의 하나 이상의 번역들을 발생시키는 단계와, 상기 입력의 하나 이상의 번역들 각각은 타겟 언어로 된 것이고, 상기 타겟 언어는 상기 소스 언어와 다르며;
    상기 컴퓨터 시스템에서, 선택된 번역을 획득하기 위해 상기 입력의 하나 이상의 번역들 중 하나의 번역을 선택하는 단계와; 그리고
    상기 컴퓨터 시스템에서, 상기 복수의 애플리케이션들 중 상기 하나의 애플리케이션에 상기 선택된 번역을 보내는 단계를 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
  2. 제1항에 있어서,
    상기 컴퓨터 시스템에서, 상기 컴퓨터 시스템의 운영 시스템이 부팅(boot up)될 때 상기 다른 애플리케이션을 시작(launch)하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
  3. 제1항에 있어서,
    상기 컴퓨터 시스템에서, 상기 사용자로부터의 입력에 응답하여 상기 다른 애플리케이션을 시작하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
  4. 제1항에 있어서,
    상기 다른 애플리케이션은 배경 프로세스(background process)로서 실행되는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
  5. 제1항에 있어서,
    상기 복수의 애플리케이션들 중 상기 하나의 애플리케이션에 대한 사용자 입력을 가로채는 단계는 인터페이스를 통해 호출(call)을 감시(monitor)하는 것을 포함하고, 상기 인터페이스는 상기 컴퓨터 시스템의 복수의 애플리케이션들과 운영 시스템 사이에 있고, 상기 호출은 시스템 호출과 애플리케이션 프로그래밍 인터페이스(API) 호출 중 하나의 호출인 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
  6. 제1항에 있어서,
    상기 다른 애플리케이션을 사용해서 상기 하나 이상의 번역들을 발생시키는 단계는, 상기 컴퓨터 시스템에서, 하나 이상의 언어 모델들을 사용해서 상기 하나 이상의 번역들 각각에 대한 확률값을 발생시키는 것을 더 포함하고, 확률값 각각은 특정 번역이 상기 소스 언어로부터 상기 타겟 언어로의 상기 입력의 올바른 번역일 가능성을 표시하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
  7. 제6항에 있어서,
    상기 하나 이상의 언어 모델들을 사용해서 상기 하나 이상의 번역들 각각에 대한 확률값을 발생시키는 것은,
    상기 컴퓨터 시스템으로부터, 상기 입력을 원격 번역 서버에 보내는 것과, 상기 원격 번역 서버는 상기 하나 이상의 언어 모델들을 포함하고; 그리고
    상기 컴퓨터 시스템에서, 상기 하나 이상의 번역들 및 상기 하나 이상의 번역들의 대응하는 확률값들을 상기 원격 번역 서버로부터 수신하는 것을 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
  8. 제6항에 있어서,
    상기 입력의 상기 하나 이상의 번역들 중 상기 하나의 번역을 선택하는 단계는, 상기 컴퓨터 시스템에서, 상기 선택된 번역을 획득하기 위해 가장 높은 확률값을 갖는 상기 하나 이상의 번역들 중 하나의 번역을 선택하는 것을 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
  9. 제1항에 있어서,
    상기 입력의 상기 하나 이상의 번역들 중 상기 하나의 번역을 선택하는 단계는, 상기 컴퓨터 시스템에서, 상기 선택된 번역을 획득하기 위해 상기 사용자에 의한 상기 입력의 하나 이상의 번역들 중 상기 하나의 번역의 선택을 수신하는 것을 더 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
  10. 제1항에 있어서,
    상기 컴퓨터 시스템의 입/출력 디바이스에서, 상기 복수의 애플리케이션들 중 상기 하나의 애플리케이션의 애플리케이션 인터페이스에서 상기 선택된 번역을 디스플레이하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
  11. 제1항에 있어서,
    상기 복수의 애플리케이션들 중 상기 하나의 애플리케이션은 메시징 또는 웹 브라우징을 위한 애플리케이션이고, 그리고 상기 선택된 번역은 상기 복수의 애플리케이션들 중 상기 하나의 애플리케이션의 애플리케이션 인터페이스의 사용자 입력 영역 중 하나에서 디스플레이되는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
  12. 제1항에 있어서,
    상기 복수의 애플리케이션들 중 상기 하나의 애플리케이션에 대한 상기 사용자 입력을 가로채는 단계는 훅 모듈(hook module)에 의해 수행되는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
  13. 컴퓨터 시스템에 있어서,
    적어도 하나의 프로세서와;
    상기 적어도 하나의 프로세서에 결합되고 명령들이 포함된 컴퓨터에 의해 판독 가능한 매체를 포함하고, 상기 명령들은 상기 적어도 하나의 프로세서에 의해 실행되었을 때, 상기 적어도 하나의 프로세서로 하여금,
    상기 컴퓨터 시스템상에서 실행되는 복수의 애플리케이션들과 운영 시스템 사이의 인터페이스에 대해 훅을 적용함에 의해 상기 컴퓨터 시스템상에서 실행되는 상기 복수의 애플리케이션들 중 하나의 애플리케이션에 대한 사용자 입력을 가로채는 것과, 상기 입력은 소스 언어로 된 것이고;
    상기 컴퓨터 시스템상에서 실행되는 다른 애플리케이션에 상기 입력을 리다이렉트하는 것과, 상기 다른 애플리케이션은 상기 복수의 애플리케이션들과 다르며;
    상기 다른 애플리케이션을 사용해서 상기 입력의 하나 이상의 번역들을 발생시키는 것과, 상기 입력의 하나 이상의 번역들 각각은 타겟 언어로 된 것이고, 상기 타겟 언어는 상기 소스 언어와 다르며;
    선택된 번역을 획득하기 위해 상기 입력의 하나 이상의 번역들 중 하나의 번역을 선택하는 것과; 그리고
    상기 복수의 애플리케이션들 중 상기 하나의 애플리케이션에 상기 선택된 번역을 보내는 것을 포함하는 동작들을 수행하게 하는 것을 특징으로 하는 컴퓨터 시스템.
  14. 제13항에 있어서,
    상기 동작들은 상기 컴퓨터 시스템의 운영 시스템이 부팅될 때 상기 다른 애플리케이션을 시작하는 것을 더 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  15. 제13항에 있어서,
    상기 동작들은 상기 사용자로부터의 입력에 응답하여 상기 다른 애플리케이션을 시작하는 것을 더 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  16. 제13항에 있어서,
    상기 다른 애플리케이션은 배경 프로세스로서 실행되는 것을 특징으로 하는 컴퓨터 시스템.
  17. 제13항에 있어서,
    상기 복수의 애플리케이션들 중 상기 하나의 애플리케이션에 대한 사용자 입력을 가로채는 것은 인터페이스를 통해 호출을 감시하는 것을 포함하고, 상기 인터페이스는 상기 컴퓨터 시스템의 상기 복수의 애플리케이션들과 운영 시스템 사이에 있고, 상기 호출은 시스템 호출과 애플리케이션 프로그래밍 인터페이스(API) 호출 중 하나의 호출인 것을 특징으로 하는 컴퓨터 시스템.
  18. 제13항에 있어서,
    상기 다른 애플리케이션을 사용해서 상기 하나 이상의 번역들을 발생시키는 것은, 하나 이상의 언어 모델들을 사용해서 상기 하나 이상의 번역들 각각에 대한 확률값을 발생시키는 것을 더 포함하고, 확률값 각각은 특정 번역이 상기 소스 언어로부터 상기 타겟 언어로의 상기 입력의 올바른 번역일 가능성을 표시하는 것을 특징으로 하는 컴퓨터 시스템.
  19. 제18항에 있어서,
    상기 하나 이상의 언어 모델들을 사용해서 상기 하나 이상의 번역들 각각에 대한 확률값을 발생시키는 것은,
    상기 입력을 원격 번역 서버에 보내는 것과, 상기 원격 번역 서버는 상기 하나 이상의 언어 모델들을 포함하고; 그리고
    상기 하나 이상의 번역들 및 상기 하나 이상의 번역들의 대응하는 확률값들을 상기 원격 번역 서버로부터 수신하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  20. 제18항에 있어서,
    상기 입력의 상기 하나 이상의 번역들 중 상기 하나의 번역을 선택하는 것은 상기 선택된 번역을 획득하기 위해 가장 높은 확률값을 갖는 상기 하나 이상의 번역들 중 하나의 번역을 선택하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  21. 제13항에 있어서,
    상기 입력의 상기 하나 이상의 번역들 중 상기 하나의 번역을 선택하는 것은 상기 선택된 번역을 획득하기 위해 상기 사용자에 의한 상기 입력의 하나 이상의 번역들 중 상기 하나의 번역의 선택을 수신하는 것을 더 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  22. 제13항에 있어서,
    상기 컴퓨터 시스템의 입/출력 디바이스에서, 상기 복수의 애플리케이션들 중 상기 하나의 애플리케이션의 애플리케이션 인터페이스에서 상기 선택된 번역을 디스플레이하는 것을 더 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  23. 제13항에 있어서,
    상기 복수의 애플리케이션들 중 상기 하나는 메시징 또는 웹 브라우징을 위한 애플리케이션이고, 그리고 상기 선택된 번역은 상기 복수의 애플리케이션들 중 상기 하나의 애플리케이션의 애플리케이션 인터페이스의 사용자 입력 영역 중 하나에서 디스플레이되는 것을 특징으로 하는 컴퓨터 시스템.
  24. 제13항에 있어서,
    상기 복수의 애플리케이션들 중 상기 하나의 애플리케이션에 대한 상기 사용자 입력을 가로채는 것은 훅 모듈에 의해 수행되는 것을 특징으로 하는 컴퓨터 시스템.
  25. 삭제
KR1020107018453A 2008-02-19 2009-02-11 범용 언어 입력 KR101554295B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/033,697 2008-02-19
US12/033,697 US8473276B2 (en) 2008-02-19 2008-02-19 Universal language input

Publications (2)

Publication Number Publication Date
KR20100125257A KR20100125257A (ko) 2010-11-30
KR101554295B1 true KR101554295B1 (ko) 2015-09-18

Family

ID=40933963

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107018453A KR101554295B1 (ko) 2008-02-19 2009-02-11 범용 언어 입력

Country Status (6)

Country Link
US (1) US8473276B2 (ko)
EP (1) EP2252944B1 (ko)
KR (1) KR101554295B1 (ko)
CN (1) CN102007493B (ko)
TW (1) TWI470451B (ko)
WO (1) WO2009108504A2 (ko)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2648617C (en) 2006-04-05 2017-12-12 Yap, Inc. Hosted voice recognition system for wireless devices
US8510109B2 (en) 2007-08-22 2013-08-13 Canyon Ip Holdings Llc Continuous speech transcription performance indication
US9973450B2 (en) 2007-09-17 2018-05-15 Amazon Technologies, Inc. Methods and systems for dynamically updating web service profile information by parsing transcribed message strings
US8352264B2 (en) 2008-03-19 2013-01-08 Canyon IP Holdings, LLC Corrective feedback loop for automated speech recognition
US8825770B1 (en) 2007-08-22 2014-09-02 Canyon Ip Holdings Llc Facilitating presentation by mobile device of additional content for a word or phrase upon utterance thereof
US9053489B2 (en) 2007-08-22 2015-06-09 Canyon Ip Holdings Llc Facilitating presentation of ads relating to words of a message
EP2120130A1 (en) * 2008-05-11 2009-11-18 Research in Motion Limited Mobile electronic device and associated method enabling identification of previously entered data for transliteration of an input
US20100082330A1 (en) * 2008-09-29 2010-04-01 Yahoo! Inc. Multi-lingual maps
US9824071B2 (en) * 2008-12-03 2017-11-21 Microsoft Technology Licensing, Llc Viewing messages and message attachments in different languages
US9323854B2 (en) * 2008-12-19 2016-04-26 Intel Corporation Method, apparatus and system for location assisted translation
JP2010176543A (ja) * 2009-01-30 2010-08-12 Toshiba Corp 翻訳装置、方法、及びプログラム
US9424246B2 (en) 2009-03-30 2016-08-23 Touchtype Ltd. System and method for inputting text into electronic devices
US10191654B2 (en) 2009-03-30 2019-01-29 Touchtype Limited System and method for inputting text into electronic devices
US9189472B2 (en) 2009-03-30 2015-11-17 Touchtype Limited System and method for inputting text into small screen devices
GB0917753D0 (en) 2009-10-09 2009-11-25 Touchtype Ltd System and method for inputting text into electronic devices
GB0905457D0 (en) * 2009-03-30 2009-05-13 Touchtype Ltd System and method for inputting text into electronic devices
EP2452252A1 (en) * 2009-07-09 2012-05-16 Eliyahu Mashiah Content sensitive system and method for automatic input language selection
US20110087962A1 (en) * 2009-10-14 2011-04-14 Qualcomm Incorporated Method and apparatus for the automatic predictive selection of input methods for web browsers
US8682640B2 (en) * 2009-11-25 2014-03-25 International Business Machines Corporation Self-configuring language translation device
KR101301536B1 (ko) * 2009-12-11 2013-09-04 한국전자통신연구원 외국어 작문 서비스 방법 및 시스템
EP2339576B1 (en) 2009-12-23 2019-08-07 Google LLC Multi-modal input on an electronic device
US11416214B2 (en) 2009-12-23 2022-08-16 Google Llc Multi-modal input on an electronic device
US20110184723A1 (en) * 2010-01-25 2011-07-28 Microsoft Corporation Phonetic suggestion engine
WO2011136768A1 (en) * 2010-04-29 2011-11-03 Hewlett-Packard Development Company, L.P. Processing content in a plurality of languages
US8380487B2 (en) * 2010-06-21 2013-02-19 International Business Machines Corporation Language translation of selected content in a web conference
US8463592B2 (en) 2010-07-27 2013-06-11 International Business Machines Corporation Mode supporting multiple language input for entering text
CN102339280A (zh) * 2010-07-27 2012-02-01 英业达股份有限公司 翻译词汇的显示系统及其显示方法
WO2012047997A1 (en) * 2010-10-05 2012-04-12 Citrix Systems, Inc. Display management for native user experiences
US9405791B2 (en) 2010-12-13 2016-08-02 Google Inc. Remotely updated toolbar language translation service
US8352245B1 (en) 2010-12-30 2013-01-08 Google Inc. Adjusting language models
US8296142B2 (en) 2011-01-21 2012-10-23 Google Inc. Speech recognition using dock context
US9015030B2 (en) * 2011-04-15 2015-04-21 International Business Machines Corporation Translating prompt and user input
CN102789451B (zh) * 2011-05-16 2015-06-03 北京百度网讯科技有限公司 一种个性化的机器翻译系统、方法及训练翻译模型的方法
WO2013075332A1 (en) * 2011-11-25 2013-05-30 Google Inc. Providing translation assistance in application localization
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
US9436291B2 (en) * 2012-04-13 2016-09-06 Texas Instruments Incorporated Method, system and computer program product for operating a keyboard
CN104428734A (zh) 2012-06-25 2015-03-18 微软公司 输入法编辑器应用平台
EP2867749A4 (en) * 2012-06-29 2015-12-16 Microsoft Technology Licensing Llc INTERLINGUISTIC INPUT METHOD EDITOR
JP6066265B2 (ja) * 2012-07-31 2017-01-25 株式会社リコー 画像表示装置
US8959109B2 (en) 2012-08-06 2015-02-17 Microsoft Corporation Business intelligent in-document suggestions
US9767156B2 (en) 2012-08-30 2017-09-19 Microsoft Technology Licensing, Llc Feature-based candidate selection
JP2016507828A (ja) * 2013-01-11 2016-03-10 カタール・ファンデーション 機械翻訳システム及び方法
CN103279264A (zh) * 2013-05-03 2013-09-04 富泰华工业(深圳)有限公司 电子装置及其输入操作管理方法
US9430465B2 (en) * 2013-05-13 2016-08-30 Facebook, Inc. Hybrid, offline/online speech translation system
CN104298491B (zh) * 2013-07-18 2019-10-08 腾讯科技(深圳)有限公司 消息处理方法及装置
CN105580004A (zh) * 2013-08-09 2016-05-11 微软技术许可有限责任公司 提供语言帮助的输入方法编辑器
US9842592B2 (en) 2014-02-12 2017-12-12 Google Inc. Language models using non-linguistic context
US9412365B2 (en) 2014-03-24 2016-08-09 Google Inc. Enhanced maximum entropy models
US9740687B2 (en) 2014-06-11 2017-08-22 Facebook, Inc. Classifying languages for objects and entities
US9864744B2 (en) 2014-12-03 2018-01-09 Facebook, Inc. Mining multi-lingual data
US10067936B2 (en) 2014-12-30 2018-09-04 Facebook, Inc. Machine translation output reranking
US9830404B2 (en) 2014-12-30 2017-11-28 Facebook, Inc. Analyzing language dependency structures
US9830386B2 (en) 2014-12-30 2017-11-28 Facebook, Inc. Determining trending topics in social media
US9787529B1 (en) * 2015-01-16 2017-10-10 Juniper Networks, Inc. Systems and methods for tunneling socket calls across operating systems
US9477652B2 (en) 2015-02-13 2016-10-25 Facebook, Inc. Machine learning dialect identification
US10134394B2 (en) 2015-03-20 2018-11-20 Google Llc Speech recognition using log-linear model
US9734142B2 (en) * 2015-09-22 2017-08-15 Facebook, Inc. Universal translation
US10133738B2 (en) 2015-12-14 2018-11-20 Facebook, Inc. Translation confidence scores
US9734143B2 (en) 2015-12-17 2017-08-15 Facebook, Inc. Multi-media context language processing
US9805029B2 (en) 2015-12-28 2017-10-31 Facebook, Inc. Predicting future translations
US10002125B2 (en) 2015-12-28 2018-06-19 Facebook, Inc. Language model personalization
US9747283B2 (en) 2015-12-28 2017-08-29 Facebook, Inc. Predicting future translations
US9978367B2 (en) 2016-03-16 2018-05-22 Google Llc Determining dialog states for language models
GB201610984D0 (en) 2016-06-23 2016-08-10 Microsoft Technology Licensing Llc Suppression of input images
US10902221B1 (en) 2016-06-30 2021-01-26 Facebook, Inc. Social hash for language models
US10902215B1 (en) 2016-06-30 2021-01-26 Facebook, Inc. Social hash for language models
US10832664B2 (en) 2016-08-19 2020-11-10 Google Llc Automated speech recognition using language models that selectively use domain-specific model components
US10180935B2 (en) 2016-12-30 2019-01-15 Facebook, Inc. Identifying multiple languages in a content item
US10311860B2 (en) 2017-02-14 2019-06-04 Google Llc Language model biasing system
CN107179837B (zh) * 2017-05-11 2020-11-06 北京小米移动软件有限公司 输入方法及装置
CN109598001A (zh) * 2017-09-30 2019-04-09 阿里巴巴集团控股有限公司 一种信息显示方法、装置及设备
US10380249B2 (en) 2017-10-02 2019-08-13 Facebook, Inc. Predicting future trending topics
CN109040428A (zh) * 2018-07-03 2018-12-18 深圳天珑无线科技有限公司 一种信息处理交互方法、通讯设备及计算机存储介质
CN109739664B (zh) * 2018-12-29 2021-05-18 联想(北京)有限公司 信息处理方法、装置、电子设备和介质
CN109979461B (zh) * 2019-03-15 2022-02-25 科大讯飞股份有限公司 一种语音翻译方法及装置
US11842165B2 (en) * 2019-08-28 2023-12-12 Adobe Inc. Context-based image tag translation
US20230229869A1 (en) * 2022-01-20 2023-07-20 Vmware, Inc. Local input method for remote desktops

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050086214A1 (en) 2003-10-21 2005-04-21 Bayer Materialscience Ag Computer system and method for multilingual associative searching

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995017729A1 (en) * 1993-12-22 1995-06-29 Taligent, Inc. Input methods framework
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
US5974372A (en) * 1996-02-12 1999-10-26 Dst Systems, Inc. Graphical user interface (GUI) language translator
US6092036A (en) * 1998-06-02 2000-07-18 Davox Corporation Multi-lingual data processing system and system and method for translating text used in computer software utilizing an embedded translator
JP2003529845A (ja) * 2000-03-31 2003-10-07 アミカイ・インコーポレイテッド ネットワーク経由の多言語翻訳を提供する方法と装置
US20050091576A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Programming interface for a computer platform
CN1391180A (zh) * 2001-06-11 2003-01-15 国际商业机器公司 外语写作辅助方法和辅助工具
CN1421804A (zh) 2001-11-30 2003-06-04 英业达股份有限公司 不同语言的词汇处理系统与方法
AU2003267953A1 (en) * 2002-03-26 2003-12-22 University Of Southern California Statistical machine translation using a large monlingual corpus
US7383542B2 (en) * 2003-06-20 2008-06-03 Microsoft Corporation Adaptive machine translation service
US7539619B1 (en) * 2003-09-05 2009-05-26 Spoken Translation Ind. Speech-enabled language translation system and method enabling interactive user supervision of translation and speech recognition accuracy
US7318020B1 (en) * 2003-10-08 2008-01-08 Microsoft Corporation Methods and systems for external localization
TWI297123B (en) * 2004-12-29 2008-05-21 Delta Electronics Inc Interactive entertainment center
US7983897B2 (en) * 2007-02-14 2011-07-19 Google Inc. Machine translation feedback
CN101072168B (zh) 2007-06-22 2011-11-02 腾讯科技(深圳)有限公司 一种多语言即时通讯终端及其系统和方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050086214A1 (en) 2003-10-21 2005-04-21 Bayer Materialscience Ag Computer system and method for multilingual associative searching

Also Published As

Publication number Publication date
CN102007493A (zh) 2011-04-06
WO2009108504A3 (en) 2009-10-22
US8473276B2 (en) 2013-06-25
EP2252944B1 (en) 2014-08-27
EP2252944A2 (en) 2010-11-24
WO2009108504A2 (en) 2009-09-03
KR20100125257A (ko) 2010-11-30
TWI470451B (zh) 2015-01-21
TW200947237A (en) 2009-11-16
CN102007493B (zh) 2014-09-03
US20090210214A1 (en) 2009-08-20

Similar Documents

Publication Publication Date Title
KR101554295B1 (ko) 범용 언어 입력
US9043300B2 (en) Input method editor integration
US9009030B2 (en) Method and system for facilitating text input
US9378290B2 (en) Scenario-adaptive input method editor
KR101872549B1 (ko) 시스템 레벨 검색 사용자 인터페이스에서의 등록 기법
US20170160879A1 (en) Method and system for inputting information
WO2018039008A1 (en) Providing ideogram translation
US20120060147A1 (en) Client input method
KR102081471B1 (ko) 버퍼로부터의 문자열 예측들
CN108768824B (zh) 信息处理方法及装置
US9009031B2 (en) Analyzing a category of a candidate phrase to update from a server if a phrase category is not in a phrase database
CA2939395A1 (en) Method and device for invoking a search from a text message
US20240281595A1 (en) Message Correction Method, Electronic Device, and Non-transitory Readable Storage Medium
JP7209433B2 (ja) データプリフェッチ方法、デバイス、電子機器、コンピュータ可読記憶媒体及びコンピュータプログラム製品
WO2017049765A1 (zh) 搜索结果的展现方法、装置、系统、设备及计算机存储介质
KR102158544B1 (ko) 모바일 기기의 입력 인터페이스 내에서 맞춤법 검사를 지원하는 방법 및 시스템
WO2016107611A1 (zh) 一种用于移动终端的文本查找方法和装置
JP5468576B2 (ja) 翻訳装置、翻訳方法及び翻訳プログラム
KR102556179B1 (ko) 데이터 프리페치 방법, 장치, 전자 기기 및 컴퓨터 판독 가능 저장 매체
US20230370396A1 (en) Method and apparatus for messaging service
US8935343B2 (en) Instant messaging network resource validation
CN108509058B (zh) 输入方法与相关设备
KR102084597B1 (ko) 메신저 어플리케이션 실행 장치 및 방법
KR20230159105A (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
FPAY Annual fee payment

Payment date: 20180828

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190830

Year of fee payment: 5