KR102325724B1 - Synchronization of Text Data among a plurality of Devices - Google Patents
Synchronization of Text Data among a plurality of Devices Download PDFInfo
- Publication number
- KR102325724B1 KR102325724B1 KR1020150028686A KR20150028686A KR102325724B1 KR 102325724 B1 KR102325724 B1 KR 102325724B1 KR 1020150028686 A KR1020150028686 A KR 1020150028686A KR 20150028686 A KR20150028686 A KR 20150028686A KR 102325724 B1 KR102325724 B1 KR 102325724B1
- Authority
- KR
- South Korea
- Prior art keywords
- language model
- electronic device
- server
- input
- synchronization
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 66
- 238000004891 communication Methods 0.000 claims description 34
- 230000006870 function Effects 0.000 claims description 18
- 230000008569 process Effects 0.000 description 29
- 238000012545 processing Methods 0.000 description 24
- 230000001360 synchronised effect Effects 0.000 description 13
- 230000010365 information processing Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000005236 sound signal Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000006059 cover glass Substances 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17325—Synchronisation; Hardware support therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
- G06F3/0233—Character input methods
- G06F3/0237—Character input methods using prediction or retrieval techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/26—Speech to text systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/274—Converting codes to words; Guess-ahead of partial word inputs
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
- G10L15/30—Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/7243—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
- H04M1/72436—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages for text messaging, e.g. short messaging services [SMS] or e-mails
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2250/00—Details of telephonic subscriber devices
- H04M2250/70—Details of telephonic subscriber devices methods for entering alphabetical characters, e.g. multi-tap or dictionary disambiguation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2250/00—Details of telephonic subscriber devices
- H04M2250/74—Details of telephonic subscriber devices with voice recognition means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명의 일 실시 예에 따른 전자 결제를 지원하는 사용자 단말은, 디스플레이, 결제 어플리케이션이 저장된 메모리, 및 상기 결제 어플리케이션을 구동하는 프로세서를 포함하고, 상기 프로세서는 잠금 상태의 상기 디스플레이 상에 적어도 하나의 지정된 사용자 입력이 수신되면, 상기 결제 어플리케이션을 상기 잠금 상태를 해제하지 않고 구동할 수 있다. 이 외에도 명세서를 통해 파악되는 다양한 실시 예가 가능하다.A user terminal supporting electronic payment according to an embodiment of the present invention includes a display, a memory in which a payment application is stored, and a processor for driving the payment application, wherein the processor includes at least one on the display in a locked state. When a designated user input is received, the payment application may be driven without releasing the lock state. In addition to this, various embodiments identified through the specification are possible.
Description
본 발명의 다양한 실시 예들은 입력 단어에 대한 예측 기능을 제공하는 복수의 전자 장치들 사이에서 텍스트 데이터를 동기화하는 기술과 관련된다.Various embodiments of the present disclosure relate to a technique for synchronizing text data among a plurality of electronic devices that provide a prediction function for an input word.
스마트폰이나 태블릿과 같은 전자 장치는 물리 입력 장치(예: 하드웨어 키보드) 또는 소프트웨어 입력 장치(예: SIP(Soft Input Panel), 또는 가상 키보드)를 포함할 수 있다. 사용자는 이와 같은 입력 장치를 통해 상대방과 대화 메시지를 주고받거나 이메일을 작성하는 등 다수의 단어들을 입력할 수 있다.An electronic device such as a smart phone or a tablet may include a physical input device (eg, a hardware keyboard) or a software input device (eg, a soft input panel (SIP) or a virtual keyboard). A user may input a plurality of words, such as exchanging a conversation message with a counterpart or writing an e-mail, through such an input device.
최근 전자 장치는 단어 예측 기능 또는 예측 엔진(prediction engine)을 보유하여, 사용자의 입력 습관 및 예측 기능을 통해 입력 예측 단어(predictive words)를 제공할 수 있다. 예를 들어, 전자 장치는 사용자가 메신저 어플리케이션에서 특정 단어를 입력하거나 심지어 아무 단어도 입력하지 않은 상태에서, 입력할 것으로 예상되는 추천 단어들을 디스플레이에 출력하고 사용자 선택에 따라 해당 단어를 입력 창(field)에 입력시킬 수 있다. 이에 따라, 전자 장치는 사용자가 일일이 모든 단어의 모든 캐릭터(character)를 입력할 필요 없이 문장이 쉽게 완성될 수 있도록 하는 편의 기능을 제공할 수 있다.Recently, an electronic device may have a word prediction function or a prediction engine, and may provide input predictive words through a user's input habit and prediction function. For example, the electronic device outputs recommended words expected to be input on the display while the user inputs a specific word in the messenger application or even does not input any words, and inputs the word according to the user's selection into an input field. ) can be entered. Accordingly, the electronic device may provide a convenient function that enables the user to easily complete a sentence without having to input all characters of all words one by one.
한편 사용자가 사용하는 전자 장치(예: 스마트폰)의 교체 주기가 짧아지고, 사용자가 여러 개의 전자 장치(예: 스마트폰, 스마트 워치, 태블릿, PC(Personal Computer), TV 등)를 하나의 사용자 계정 등으로 연동하여 사용함에 따라, 사용자가 입력 장치로 사용하는 전자 장치가 수시로 변경될 수 있다. 예를 들어, 사용자는 스마트폰을 새 모델로 교체하거나, 평소에는 스마트폰을 사용하다가 태블릿으로 이메일을 작성할 수 있다. On the other hand, the replacement cycle of electronic devices (eg, smartphones) used by users is shortened, and users can use multiple electronic devices (eg, smartphones, smart watches, tablets, personal computers (PCs), TVs, etc.) to one user. The electronic device used by the user as an input device may be changed at any time according to the use in conjunction with an account or the like. For example, a user can replace a smartphone with a new model, or write an email on a tablet while using the smartphone normally.
이와 같이 사용하는 전자 장치가 교체되는 경우 기존의 장치에서 누적된 입력 이력이나 학습된 언어 모델이 변경된 장치에서 지원되지 않거나, 입력 이력의 일부가 손실되는 경우가 발생할 수 있다. 또한 사용자의 전자 장치들이 서로 다른 언어 모델을 사용하는 경우, 언어 모델이 상호 호환되지 않을 수 있다.When the electronic device used as described above is replaced, the input history accumulated in the existing device or the learned language model may not be supported by the changed device, or a part of the input history may be lost. Also, when the user's electronic devices use different language models, the language models may not be compatible with each other.
본 명세서에 기재된 다양한 실시 예들은 상기한 문제점을 포함하여, 복수의 단말 사이에서 언어 모델을 효율적으로 동기화하고 입력 이력을 보존하기 위한 다양한 방법을 제공하고자 한다.Various embodiments described herein are intended to provide various methods for efficiently synchronizing a language model among a plurality of terminals and preserving input histories, including the above problems.
본 발명의 일 실시 예에 전자 장치는, 언어 모델 데이터가 저장되는 메모리, 서버와 통신하는 통신 모듈, 문장 입력을 획득하는 입력 인터페이스 및 상기 문장 입력에 기초하여 상기 언어 모델 데이터를 갱신하고, 상기 전자 장치의 사용자 계정과 연관된 다른 전자 장치와 상기 언어 모델 데이터를 동기화하기 위해 상기 통신 모듈로 하여금 상기 언어 모델 데이터를 상기 서버로 전송하도록 하는 프로세서를 포함할 수 있다.According to an embodiment of the present invention, the electronic device updates the language model data based on a memory storing language model data, a communication module communicating with a server, an input interface for obtaining a sentence input, and the sentence input, and the electronic device and a processor for causing the communication module to transmit the language model data to the server to synchronize the language model data with another electronic device associated with a user account of the device.
또한 본 발명의 일 실시 예에 따른 전자 장치는, 통신 모듈, 입력 인터페이스, 상기 통신 모듈 및 입력 인터페이스와 전기적으로 연결되는 프로세서, 및 상기 프로세서와 전기적으로 연결되고 텍스트 데이터를 포함하는 메모리를 포함할 수 있다. 상기 메모리는, 실행 시에, 상기 프로세서가, 상기 입력 인터페이스를 통하여 터치 또는 음성 입력을 수신하고, 상기 입력에 기초하여 텍스트를 생성하고, 상기 생성된 텍스트에 기초하여 하나 이상의 단어를 상기 텍스트 데이터에 반영하고, 상기 통신 모듈을 통하여, 상기 텍스트 데이터와 관련된 제1 버전 정보를 수신하고, 상기 제1 버전 정보의 수신 전에 상기 메모리에 이미 저장된 제2 버전 정보와 상기 제1 버전 정보를 비교하도록 하는 인스트럭션들(instructions)을 저장할 수 있다.In addition, the electronic device according to an embodiment of the present invention may include a communication module, an input interface, a processor electrically connected to the communication module and the input interface, and a memory electrically connected to the processor and including text data. have. The memory, when executed, causes the processor to receive a touch or voice input through the input interface, generate text based on the input, and add one or more words to the text data based on the generated text. reflect, receive, through the communication module, first version information related to the text data, and compare the first version information with second version information already stored in the memory before receiving the first version information You can store instructions.
본 발명의 다양한 실시 예에 따르면, 복수의 전자 장치들 사이에서 텍스트 데이터를 동기화하여 입력 단어 예측 기능을 향상 시키고 지속적인 사용자 경험을 유지할 수 있다.According to various embodiments of the present disclosure, by synchronizing text data among a plurality of electronic devices, an input word prediction function may be improved and a continuous user experience may be maintained.
또한, 언어 모델이 동기화될 때 발생하는 입력 이력의 손실이나 사용자가 의도적으로 예측 단어에서 배제시킨 단어들이 동기화 이후에 다시 예측 단어로 제공되는 것을 방지할 수 있다.In addition, it is possible to prevent loss of input history that occurs when the language model is synchronized or words that the user intentionally excluded from prediction words are provided as prediction words again after synchronization.
또한 서로 다른 언어 모델을 사용하는 전자 장치들 사이에서 입력 이력을 제공하여 언어 모델을 개선시킬 수 있다.Also, the language model may be improved by providing input histories between electronic devices using different language models.
이 외에도 명세서를 통해 도출되는 다양한 효과들이 제공될 수 있다.In addition to this, various effects derived through the specification may be provided.
도 1은 본 발명의 일 실시 예에 따른 언어 모델의 동기화를 위한 네트워크 환경을 나타낸다.
도 2는 본 발명의 일 실시 예에 따른 전자 장치의 일 예시를 나타낸다.
도 3은 본 발명의 일 실시 예에 따른 전자 장치의 다른 예시를 나타낸다.
도 4는 본 발명의 일 실시 예에 따른 동기화 서버의 일 예시를 나타낸다.
도 5는 본 발명의 일 실시 예에 따른 언어 모델을 개념적으로 나타낸다.
도 6은 본 발명의 일 실시 예에 따른 언어 모델의 동기화 프로세스를 나타낸다.
도 7은 본 발명의 일 실시 예에 따른 전자 장치에서 언어 모델의 동기화를 위해 서버로 언어 모델 데이터를 제공하는 프로세스를 나타낸다.
도 8은 본 발명의 일 실시 예에 따른 전자 장치에서 서버로부터 수신된 데이터에 기초하여 언어 모델의 동기화를 수행하는 프로세스를 나타낸다.
도 9는 본 발명의 일 실시 예에 따른 전자 장치에서 동기화 방법을 결정하는 프로세스를 나타낸다.
도 10은 본 발명의 일 실시 예에 따른 서버에서 언어 모델의 동기화를 수행하는 프로세스를 나타낸다.
도 11은 본 발명의 일 실시 예에 따른 이종 언어 모델을 사용하는 전자 장치들 사이의 동기화 프로세스를 나타낸다.
도 12는 본 발명의 일 실시 예에 따른 삭제된 예측 단어를 반영하기 위한 동기화 프로세스를 나타낸다.
도 13a, 도 13b, 및 도 13c는 본 발명의 일 실시 예에 따른 언어 모델의 동기화에 따른 예시적인 화면을 나타낸다.
도 14는 본 발명의 일 실시 예에 따른 어플리케이션에 따라 언어 모델을 동기화하는 방법을 개념적으로 나타낸다.
도 15는 본 발명의 일 실시 예에 따른 동기화 시스템에서 예시적인 동기화 순서를 나타낸다.1 shows a network environment for synchronizing a language model according to an embodiment of the present invention.
2 illustrates an example of an electronic device according to an embodiment of the present invention.
3 illustrates another example of an electronic device according to an embodiment of the present invention.
4 shows an example of a synchronization server according to an embodiment of the present invention.
5 conceptually illustrates a language model according to an embodiment of the present invention.
6 shows a synchronization process of a language model according to an embodiment of the present invention.
7 illustrates a process of providing language model data to a server for language model synchronization in an electronic device according to an embodiment of the present invention.
8 illustrates a process of synchronizing a language model based on data received from a server in an electronic device according to an embodiment of the present invention.
9 illustrates a process for determining a synchronization method in an electronic device according to an embodiment of the present invention.
10 is a diagram illustrating a process of synchronizing a language model in a server according to an embodiment of the present invention.
11 illustrates a synchronization process between electronic devices using heterogeneous language models according to an embodiment of the present invention.
12 illustrates a synchronization process for reflecting deleted prediction words according to an embodiment of the present invention.
13A, 13B, and 13C show exemplary screens according to synchronization of a language model according to an embodiment of the present invention.
14 conceptually illustrates a method of synchronizing a language model according to an application according to an embodiment of the present invention.
15 shows an exemplary synchronization sequence in a synchronization system according to an embodiment of the present invention.
이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시 예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.Hereinafter, various embodiments of the present invention will be described with reference to the accompanying drawings. However, this is not intended to limit the present invention to specific embodiments, and it should be understood that various modifications, equivalents, and/or alternatives of the embodiments of the present invention are included. In connection with the description of the drawings, like reference numerals may be used for like components.
본 문서에서 사용된 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명의 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 일반적으로 사용되는 사전에 정의된 용어들은 관련 기술의 문맥 상 가지는 의미와 동일 또는 유사한 의미를 가지는 것으로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 발명의 실시 예들을 배제하도록 해석될 수 없다.Terms used in this document are only used to describe specific embodiments, and may not be intended to limit the scope of other embodiments. The singular expression may include the plural expression unless the context clearly dictates otherwise. All terms used herein, including technical or scientific terms, may have the same meaning as commonly understood by one of ordinary skill in the art of the present invention. Commonly used terms defined in the dictionary may be interpreted as having the same or similar meaning as the meaning in the context of the related art, and unless explicitly defined in this document, are not interpreted in an ideal or excessively formal meaning . In some cases, even terms defined in this document cannot be construed to exclude embodiments of the present invention.
예를 들어, 본 발명의 여러 실시 예에서, 동기화가 되는 객체로서 언어 모델(Language Model)을 예시하고 있으나, 동기화 대상은 본 발명이 의도하는 일 목적에서와 같이 사용자 단말들 사이에 텍스트 입력 및 추천에 대한 경험을 공유하기 위한 데이터로 이해될 수 있다. 예를 들어, 본 문서에서 언어 모델은 텍스트 데이터, 텍스트 데이터베이스, 또는 데이터 구조 등 다양한 개념으로 이해될 수 있다.
For example, in various embodiments of the present invention, although a language model is exemplified as an object to be synchronized, the synchronization target is text input and recommendation between user terminals as in one purpose of the present invention. It can be understood as data for sharing experiences. For example, in this document, a language model may be understood as various concepts such as text data, a text database, or a data structure.
이하, 첨부 도면을 참조하여, 다양한 실시 예에 따른 전자 장치가 설명된다.
Hereinafter, an electronic device according to various embodiments will be described with reference to the accompanying drawings.
도 1은 본 발명의 일 실시 예에 따른 언어 모델의 동기화를 위한 네트워크 환경을 나타낸다.1 shows a network environment for synchronizing a language model according to an embodiment of the present invention.
도 1을 참조하면, 제1 전자 장치 100(예: 스마트폰)은 네트워크를 통해 서버 300과 연결될 수 있다. 제1 전자 장치 100은 특정 사용자의 사용자 식별 정보에 의해 등록되어 있을 수 있다. 예를 들어, 사용자 A의 계정 user_a@account.com이 제1 전자 장치 100의 초기화(initializing) 또는 설정 과정에서 등록될 수 있다.Referring to FIG. 1 , a first electronic device 100 (eg, a smartphone) may be connected to a
제1 전자 장치 100은 언어 모델을 이용하여 입력 단어에 대한 예측 기능을 제공할 수 있다. 예를 들어, 제1 전자 장치 100에서 사용자에 의해 “I read a”까지 입력된 경우, 제1 전자 장치 100은 언어 모델에 미리 저장된 데이터나 축적된 사용자의 입력 이력에 기초하여 다음에 올 확률이 상대적으로 높은 단어 몇 개를 추천할 수 있다. 예를 들어, 상기 사용자에 의한 “I read a”까지 입력에 반응하여 제1 전자 장치 100의 디스플레이에 “book”, “paper”, “news”의 3개 단어가 출력될 수 있다. 사용자는 상기 3개의 단어 중 어느 하나의 단어를 선택할 수도 있고, SIP(Soft Input Panel)과 같은 입력 인터페이스를 이용하여 단어를 직접 입력할 수도 있다. 또한 사용자는 추천 단어 중 어느 하나의 단어(예: news)를 다른 방식으로 선택(예: 롱 터치)하여 추천 목록에서 제거시킬 수 있다. 이 경우 제1 전자 장치 100은 4번째로 확률이 높은 단어를 추천 단어로 추가 출력하거나, 혹은 2개의 단어가 출력된 상태를 유지할 수 있다.The first
문장 입력이 종료되면, 제1 전자 장치 100은 문장 입력에 기초하여 언어 모델을 갱신(update)할 수 있다. 예를 들어, 사용자에 의해 입력되거나 선택된 단어의 확률은 증가하고 사용자에 의해 입력되지 않거나 선택되지 않은 단어의 확률은 감소될 수 있다. 언어 모델은, 언어 모델의 종류에 따라 서로 다른 알고리즘으로 동작할 수 있다. 예를 들어 언어 모델의 갱신을 위해 단어와 다른 단어 사이의 관계, 단어의 전체 사용 횟수, 언어 모델에 기존에 저장된 데이터, 또는 임의의 가중치 등이 조합되어 사용될 수 있다.When the sentence input is finished, the first
이하에서 예시적인 언어 모델에 단어/문장의 조합 확률을 설명한다. 예를 들어, 사용자에 의해 <BOS> JONE READ MOBY DIC <BOS>, <BOS> MARY READ A DIFFERENT BOOK <BOS>, <BOS> SHE READ A BOOK BY CHER <EOS>과 같은 3개의 문장이 획득될 수 있다. 여기서 <BOS>는 문장의 시작(begin of sentence), <EOS>는 문장의 종료(end of sentence)를 의미할 수 있다.Hereinafter, word/sentence combination probabilities will be described in an exemplary language model. For example, three sentences will be obtained by the user: <BOS> JONE READ MOBY DIC <BOS>, <BOS> MARY READ A DIFFERENT BOOK <BOS>, <BOS> SHE READ A BOOK BY CHER <EOS> can Here, <BOS> may mean the beginning of a sentence, and <EOS> may mean the end of a sentence.
위 3개의 문장으로부터 “John read a book”이 조합될 확률은 다음과 같은 방식으로 획득할 수 있다. JOHN으로 문장이 시작될 확률, JOHN 다음에 READ가 올 확률, READ 다음에 A가 올 확률, A 다음에 BOOK이 올 확률, BOOK으로 문장이 종료될 확률을 계산하고, 이를 서로 곱함으로써 상기 문장의 확률을 얻을 수 있다. 예를 들어, JONE으로 문장이 시작될 확률 P(JOHN|<BOS>)은 상기 3개의 문장 중 JONE으로 문장이 시작된 경우는 1번이므로 1/3에 해당한다. 또한 JONE 다음에 READ가 올 확률 P(READ|JOHN)은 JONE 다음에 온 단어는 오직 READ 밖에 없으므로 1에 해당한다. 이와 같은 방식으로 P(A|READ)(=2/3), P(BOOK|A)(=1/2), P(<EOS>|BOOK)(=1/2)을 계산하고 이를 모두 곱하면, P(JOHN READ A BOOK)에 해당하는 확률 약 0.06을 획득할 수 있다.The probability that “John read a book” is combined from the above three sentences can be obtained in the following way. Probability of the sentence by calculating the probability that the sentence starts with JOHN, the probability that READ comes after JOHN, the probability that READ comes after A, the probability that A comes after BOOK, and the probability that the sentence ends with BOOK are multiplied by each other can get For example, the probability P(JOHN|<BOS>) of starting a sentence with JONE corresponds to 1/3 because the case where the sentence starts with JONE is 1 among the three sentences. Also, the probability P(READ|JOHN) of READ after JONE is 1 because the only word that comes after JONE is READ. Calculate P(A|READ)(=2/3), P(BOOK|A)(=1/2), P(<EOS>|BOOK)(=1/2) in this way and multiply them all together Then, a probability of about 0.06 corresponding to P(JOHN READ A BOOK) can be obtained.
제1 전자 장치 100은 네트워크를 통해 갱신된 언어 모델(구체적으로 언어 모델을 구성하는 데이터, 또는 데이터베이스)을 서버 300으로 전송할 수 있다. 서버 300에서는 제1 전자 장치 100의 사용자 계정 정보(예: user_a@account.com)를 획득하고, 동일하거나 관련된 사용자 계정 정보를 사용하는 제2 전자 장치 200(예: 태블릿)을 검색할 수 있다. 서버 300은 제2 전자 장치 200으로 언어 모델을 동기화하기 위한 데이터를 제공할 수 있다.The first
도시된 예시에서 제1 전자 장치 100은 스마트폰의 형태로, 제2 전자 장치 200은 태블릿의 형태로 도시되었으나, 이는 설명을 위한 것이며 제1 전자 장치 100과 제2 전자 장치 200을 한정하고자 하는 것이 아니다. 제1 전자 장치 100과 제2 전자 장치 200은 임의의 전자 장치일 수 있으며, 서로 같은 종류의 전자 장치일 수도 있다. (예: 노트 PC와 다른 노트 PC)In the illustrated example, the first
이하에서는 도 2, 3을 참조하여 제1 전자 장치 100의 예시적인 구성에 대하여 설명한다. 도 2와 도 3을 참조하여 제공되는 설명은 제2 전자 장치 200에 대한 설명으로도 이해될 수 있다. 또한 도 4를 참조하여 서버 300의 구성에 대한 설명이 제공된다.
Hereinafter, an exemplary configuration of the first
도 2는 본 발명의 일 실시 예에 따른 전자 장치의 일 예시를 나타낸다.2 illustrates an example of an electronic device according to an embodiment of the present invention.
도 2를 참조하면, 제1 전자 장치 100은 사용자로부터 텍스트 입력 또는 문장 입력을 획득할 수 있다. 예를 들어, 제1 전자 장치 100은 키보드 102를 통해 텍스트 입력을 수신할 수 있다. 키보드 102를 통해 수신된 텍스트 입력은 문장 입력으로서 입력 처리부 110으로 제공될 수 있다. 여기서 키보드 102는 하드웨어로 구성되는 물리 키보드 또는 소프트웨어 모듈 형태의 SIP(Soft Input Panel)에 해당할 수 있다.Referring to FIG. 2 , the first
일 실시 예에서, 제1 전자 장치 100은 사용자의 음성 입력을 통해 문장 입력을 획득할 수 있다. 예를 들어, 제1 전자 장치 100은 마이크 104를 통해 사용자의 발화(speech)를 획득하고, 해당 발화를 디지털 신호로 변환할 수 있다. 예를 들어, 사용자가 음성 인식과 관련된 어플리케이션을 실행하거나, 또는 음성 인식이 항상 활성화 상태인 경우, 사용자의 발화(speech)는 마이크 104는 통해 획득될 수 있다. 마이크 104는 아날로그 신호를 디지털 신호로 변환하는 ADC(Analog-Digital Convertor)를 포함할 수 있다. 그러나 일부 실시 예에서, ADC, DAC(Digital-Analog Convertor) 및 다양한 신호 처리 또는 전처리(pre-processing) 회로는 별도의 제어 모듈(예: 도 3의 프로세서 210)에 포함될 수 있다.In an embodiment, the first
일 실시 예에서, 마이크 104에 의해 획득된 음성 입력, 또는 음성 입력에 기초하여 생성된 오디오 신호(또는 음성 신호)는 음성 인식부 106으로 제공될 수 있다. 음성 인식부 106은, 예를 들어 ASR(Auto Speech Recognition) 기능을 수행하기 위한 엔진 또는 모듈을 탑재하고 있을 수 있다. 여기서 음성 인식부 106으로 제공되는 오디오 신호는 음성 인식을 위해 전처리된 신호일 수 있다. 예를 들어, 상기 오디오 신호는 노이즈 필터링(noise filtering) 또는 인간의 음성에 적합한 이퀄라이저(equalizer)가 적용된 신호일 수 있다.In an embodiment, a voice input obtained by the
음성 인식부 106은 마이크 104로부터 제공되는 오디오 신호에 대하여 음성 인식을 수행할 수 있다. 음성 인식부 106은 음성 입력(오디오 신호)에 대하여 고립 단어 인식(isolated word recognition), 연속어 음성 인식(connected word recognition), 대용량 어휘 인식(large vocabulary recognition) 등을 수행할 수 있다. 음성 인식부 106에 의해 수행되는 음성 인식은 화자 독립(speaker-independent)적으로 구현되거나, 또는 화자 종속(speaker-dependent)적으로 구현될 수 있다. 음성 인식부 106은 반드시 하나의 음성 인식 엔진일 필요는 없으며, 둘 이상의 음성 인식 엔진으로 구성될 수 있다.The
음성 인식부 106은 음성 입력을 텍스트로 변환할 수 있다. 음성 인식부 106은 사용자의 음성 입력을 텍스트 입력으로 변환하고, 변환된 텍스트 입력을 문장 입력으로서 입력 처리부 110으로 제공할 수 있다.The
다른 실시 예에서, 제1 전자 장치 100은 마이크 104를 통해 획득된 음성 입력을 통신부 108을 통해 서버 300으로 전달할 수 있다. 서버 300은 음성 입력에 대하여 음성 인식(예: ASR)을 수행하고, 수행 결과를 다시 제1 전자 장치 100으로 제공할 수 있다. 서버 300에서 음성 인식을 수행하는 경우, 제1 전자 장치 100과 동일한 음성인식이 수행될 수도 있으나, 다른 방식으로 음성 인식이 수행될 수도 있다. 예를 들어, 제1 전자 장치 100에서는 ASR을 수행하지만, 서버 300에서는 ASR 및 자연어 이해(Natural Language Understanding, NLU), 및 대화 관리(Dialog Management, DM) 또는 그 조합에 의해 음성 인식 결과를 생성하고, 제1 전자 장치 100으로 상기 결과를 제공할 수 있다. 그러나 일부 실시 예에서, 전술한 서버 300에서 수행 가능한 음성 인식이 제1 전자 장치 100의 음성 인식부 106 또는 프로세서 210에 의해 수행될 수 있다.In another embodiment, the first
입력 처리부 110은 음성 또는 텍스트로 입력된 문장 입력을 수집하고 수집된 정보와 관련된 단어 정보를 획득할 수 있다. 입력 처리부 110은 특정 입력, 예를 들어 리턴 키(버튼)이나 문장부호 “.”이 입력되는 것을 기준으로 하여 단어 정보를 획득할 수 있다. 이 경우, 사용자 입력이 완전한 문장을 구성하지 못했을 경우(예: “I read a book and the book’s title is” 등)나 비문인 경우에도 입력 처리부 110은 해당 문장을 문장 입력으로서 획득할 수 있다. 또한 문장 입력이 음성을 통해 제공되는 경우, 음성 입력 사이에 발생하는 간격이나 음성 인식부 106에 의해 처리되는 음성 입력의 단위를 기준으로 하여 단어 정보를 획득할 수 있다. 예를 들어, 입력 처리부 110은 “I am reading a book”과 같은 단어 정보를 획득할 수 있다.The
언어 모델 처리부 120은 입력 처리부 110에 의해 제공되는 단어 또는 문장 입력을 언어 모델 엔진(알고리즘)에 의해 분석하고 언어 모델 데이터 124를 갱신할 수 있다. 예를 들어, “I am reading a book”과 같은 문장 입력이 제공된 경우, 언어 모델 처리부 120은 상기 문장 입력을 [<시작>, I], [I, am], [am, reading], [reading, a], [a, book], [book, <종료>]와 같이 연속된 단어들의 전후 관계에 따라 연관 지을 수 있다. 언어 모델 처리부 120은 특정 단어가 다른 단어 다음에 나올 확률과 같은 관계 정보를 언어 모델 데이터 124에 기초하여 연산할 수 있다. 예를 들어, [I, am, 0.2]는 “I” 다음에 “am”이 나올 확률이 0.2(20%)임을 의미한다. 이 확률 값은 기 저장된 언어 모델 데이터 및 문장 입력에 기초한 관계 정보에 기반하여 계산될 수 있다. 일 예시에서, [am, reading, 1]은 “am” 다음에 “reading”이 나올 확률은 1(100%)를 의미하고, 이 경우 관계 정보는 “am” 다음에 “reading”이 나온 경우가 처음이라는 것을 의미할 수 있다. 이와 같이 처음 발생하는 경우에 대해서는 1의 확률 값이 부여될 수도 있지만, 언어 모델 엔진 122에 의해 정의되는 기본 값이 부여될 수도 있다. 언어 모델 처리부 120은, 이와 같이 문장 입력을 통해 획득되는 단어 정보, 및 상기 단어 정보와 언어 모델 데이터 124에 기초하여 획득되는 관계 정보를 이용하여 상기 언어 모델 데이터 124를 갱신할 수 있다.The language
전술한 예시는 N-gram 언어 모델에서 N이 2인 경우, 다시 말해서 연속되는 2개의 단어 단위로 분석한 경우를 나타낸다. 다양한 실시 예에서, N은 3 이상의 값을 가질 수도 있다. 예를 들어, N이 3인 경우 언어 모델 처리부 120은 상기 문장 입력을 [am reading, a], [reading a, book]과 같이 구분하여 관계 정보를 판단할 수 있다. 예를 들어, 2-gram 방식에서는 “a” 다음에는 다수의 단어들이 등장할 수 있기 때문에 “book”이 나올 확률이 상대적으로 낮게 설정될 수 있고, 결과적으로 “I am reading a” 다음에 위치하기에 부적절한 단어가 추천될 가능성도 존재한다. 하지만 3-gram 방식에서는 “reading a” 다음에 등장할 수 있는 단어, 특히 명사의 경우 상대적으로 제한적일 수 밖에 없고, 결과적으로 “book”이 등장할 확률이 상대적으로 높게 설정될 수 있다. 언어 모델에 대한 예시적인 개념에 대하여는 도 5를 참조하여 후술한다.The above-described example shows a case in which N is 2 in the N-gram language model, that is, a case in which analysis is performed in units of two consecutive words. In various embodiments, N may have a value of 3 or more. For example, when N is 3, the language
언어 모델 처리부 120에서 언어 모델 데이터 124가 갱신되면, 언어 모델 처리부 120은 언어 모델 데이터 124가 갱신되었음을 나타내는 신호를 동기화 제어부 130으로 제공할 수 있다. 이 경우 언어 모델 처리부 120은 동기화 정보를 생성하여 동기화 제어부로 제공할 수 있다. 동기화 제어부 130은 상기 동기화 정보와 서버 300으로부터 획득되는 동기화 정보를 비교하여 동기화 방법을 결정할 수 있다. 이와 관련하여 도 9를 참조하여 후술한다.
When the
도 3은 본 발명의 일 실시 예에 따른 전자 장치의 다른 예시를 나타낸다.3 illustrates another example of an electronic device according to an embodiment of the present invention.
도 2를 참조하여 설명된 제1 전자 장치 100의 각 구성요소들은 기능을 중심으로 구분된다. 다시 말해서, 도 2에 도시된 일부 구성요소들은 소프트웨어로 구현될 수 있다. 예를 들어, 키보드 102는 실제 물리 키보드가 아닌 제1 전자 장치 100의 디스플레이에 출력되어 구현되는 가상 키보드일 수 있다.Each component of the first
도 3은 제1 전자 장치 100은 프로세서 210, 메모리 220, 통신 모듈 230, 입력 인터페이스 240, 디스플레이 250, 및 스피커 260을 포함할 수 있다. 도 2를 참조하여 전술한 각 구성요소의 기능을 수행하기 위한 명령어들이 메모리 220에 저장되어 있을 수 있고, 프로세서 210에 의해 상기 명령어들이 실행될 수 있다. 예를 들어, 프로세서 210은 입력 인터페이스 240을 통해 획득되는 문장 입력에 기초하여 메모리 220에 저장된 언어 모델 데이터 124를 갱신하고, 통신 모듈 230으로 하여금 언어 모델 데이터 124를 서버 300으로 전송하도록 할 수 있다.3 , the first
프로세서 210, 메모리 220, 통신 모듈 230, 입력 인터페이스 240, 디스플레이 250, 및 스피커 260은 버스(bus)를 통해 제어 메시지 또는 데이터를 주고받을 수 있다. 도 3은 본 발명의 여러 실시 예들을 설명하기 위한 구성요소를 도시한 것이며, 도시되지 않은 임의의 구성요소들이 자유롭게 추가될 수 있다. 예를 들어, 각종 센서나 가입자 식별 모듈과 같은 구성이 추가될 수 있다.The
프로세서 210은 제1 전자 장치 100을 제어하고 본 발명의 다양한 실시 예에 따른 동작을 수행하기 위한 명령어들을 실행할 수 있다. 예를 들어, 프로세서 210은 음성 인식 기능을 수행하거나 언어 모델 데이터 124를 갱신하는 동작을 수행할 수 있다.The
메모리 220에는 언어 모델 데이터 124가 저장될 수 있다. 언어 모델 데이터 124는 복수의 단어 및 복수의 단어의 조합에 의해 발생할 수 있는 단어 사이의 관계 정보가 포함되어 있을 수 있다. 예를 들어, 언어 모델 데이터 124에 제1 단어, 제2 단어, 상기 제1 단어 또는 상기 제2 단어와 연관된 관계 정보가 포함될 수 있다. 여기서 제1 단어와 연관된 관계 정보는, 상기 제1 단어가 문장의 시작에 위치할 확률, 상기 제1 단어가 제2 단어 다음에 위치할 확률, 및/또는 상기 제1 단어가 문장의 마지막에 위치할 확률을 포함할 수 있다. 만약 언어 모델 엔진 122이 N=3 이상의 N-gram을 사용하는 경우, “상기 제1 단어가 제2 단어 다음에 위치할 확률”에서 상기 제2 단어는 복수의 단어(예: 2개의 단어)를 포함할 수 있다.The
다양한 실시 예에서, 상기 관계 정보는 다양한 정보를 추가적으로 포함할 수 있다. 예를 들어, 특정 단어의 입력 횟수, 입력 시간(최근, 예전), 또는 특정 단어가 입력된 장치(예:제1 전자 장치100, 제2 전자 장치 200 등), 또는 전술한 입력 횟수, 입력 시간, 입력 장치에 대하여 미리 정의된 방식으로 적용되는 가중치 등이 적용될 수 있다. 예를 들어, 제1 전자 장치 100에서 “I read a book”이 입력되고, 제2 전자 장치 200에서 “I read a note”가 입력된 경우, 제1 전자 장치 100에서 “I read”가 입력되는 경우 “a book”을 제2 전자 장치 200에서 “I read”가 입력되는 경우 “a note”가 추천될 수 있다.In various embodiments, the relationship information may additionally include various types of information. For example, the number of times a specific word is inputted, an input time (recent or past), or a device into which a specific word is input (eg, the first
통신 모듈 230은 서버 300과 통신할 수 있다. 통신 모듈 230은 기능적으로 도 2의 통신부 108에 대응될 수 있다.The
입력 인터페이스 240은 사용자의 문장 입력을 획득하기 위한 인터페이스에 해당할 수 있다. 예를 들어, 입력 인터페이스 240은 전자 장치 100에서 텍스트나 음성과 같은 사용자 입력을 수신하기 위한 다양한 입력 모듈을 포함할 수 있다. 예를 들어, 입력 인터페이스 240은 물리 키보드 242, 터치 입력을 수신하기 위한 터치 패널 244, 음성 입력을 수신하기 위한 마이크 246 중 하나 이상을 포함할 수 있다. 스마트폰이나 태블릿과 같이 터치 입력을 인식하는 전자 장치의 경우, 디스플레이 250에 상기 터치 패널 244가 일체형으로 결합되어 있을 수 있다. 예를 들어, 디스플레이 250은 디스플레이 패널, 터치 패널 244, 커버 글라스 등이 압착되어 구현될 수 있다. 그러나 일부 실시 예에서, 디스플레이 250은 터치 기능을 지원하지 않고 디스플레이 패널과 커버 글라스를 포함하여 구현될 수 있다. 다양한 실시 예에서, 프로세서 210은 언어 모델에 기초하여 예측 단어를 디스플레이 250에 출력하고, 디스플레이 상에 발생하는 터치 입력에 기초하여 문장 입력을 획득할 수 있다. 한편, 전자 장치 100은 디스플레이 250과 함께, 일종의 출력 모듈로서 음성(또는 소리) 출력을 위한 스피커 260을 포함할 수 있다.The
이하에서는 도 4를 참조하여 서버 300의 구성에 대하여 설명한다. 도 4는 서버 300의 기능을 중심으로 구성요소를 구분하였으며, 도 4의 서버의 기능과 관련된 설명 역시 서버 300의 제어 모듈이나 통신 모듈 등에 의해 적절하게 수행될 수 있다.
Hereinafter, the configuration of the
도 4는 본 발명의 일 실시 예에 따른 동기화 서버의 일 예시를 나타낸다.4 shows an example of a synchronization server according to an embodiment of the present invention.
도 4를 참조하면, 서버 300은 계정 정보 처리부 310, 동기화 제어부 320, 언어 모델 처리부 330, 및 통신부 340을 포함할 수 있다.Referring to FIG. 4 , the
통신부 340은 제1 전자 장치 100 또는 제2 전자 장치 200과 통신할 수 있다. 예를 들어, 통신부 340은 제1 전자 장치 100으로부터 언어 모델 데이터 124를 수신하거나, 서버 300의 언어 모델 데이터 334 또는 336을 제1 전자 장치 100으로 송신할 수 있다. 또한 통신부 340은 제1 전자 장치 100 또는 제2 전자 장치 200으로 동기화 알림 메시지(예: 푸시(push) 메시지))를 전송할 수 있다.The
통신부 340은 제1 전자 장치 100에 해당하는 사용자 계정을 식별하기 위해 계정 정보 처리부 310으로 제1 전자 장치 100에 대한 정보를 제공할 수 있다. 이 정보는 상기 동기화 요청 또는 상기 언어 모델 데이터 124의 송신과 함께 제공될 수 있다. 일 실시 예에서, 통신부 240은 수신된 정보를 동기화 제어부 320으로 전달하고, 동기화 제어부 320에서 다시 계정 정보 처리부 310으로 제1 전자 장치 100의 사용자 계정에 대한 조회를 요청할 수 있다.The
계정 정보 처리부 310은 제공된 제1 전자 장치 100에 대한 정보에 기초하여 사용자 계정(예: user_a@account.com)을 식별하여 동기화 제어부 320으로 제공할 수 있다. 동기화 제어부 320은 식별된 사용자 계정 정보를 언어 모델 처리부 330으로 제공하여 대응되는 언어 모델 데이터 및 동기화 정보를 확인할 수 있다.The account
언어 모델 처리부 330은 언어 모델 엔진 332 및 언어 모델 데이터 334, 또는 336을 포함할 수 있다. 언어 모델 처리부 330은 등록된 사용자 계정에 기초하여 서로 다른 언어 모델 데이터를 포함할 수 있다. 또한 도시된 언어 모델 엔진 332 외에도 언어 모델 처리부 330은 복수의 언어 모델 엔진을 포함할 수 있다. 예를 들어, 계정 정보 처리부 310에서 사용자 계정을 식별한 결과, 해당 사용자 계정이 제1 타입의 언어 모델을 사용하는 것으로 판단되는 경우, 해당 언어 모델 엔진 및 해당 계정의 언어 모델 데이터가 확인될 수 있다.The language
일부 실시 예에서, 언어 모델 엔진 332는 서버 300의 언어 모델 처리부 330에서 생략될 수 있다. 예를 들어, 서버 300에서의 언어 모델 데이터의 업데이트가 지원되지 않고 언어 모델 데이터를 교체하는 동작만 수행하는 경우, 언어 모델 엔진 332는 생략될 수 있다. 그러나 다른 실시 예에서, 서버 300에서 제1 전자 장치 100으로부터 문장 입력 정보 또는 언어 모델 데이터 124를 수신하여 서버 300의 언어 모델 데이터를 갱신하거나 병합하기 위해 서버 300은 특정 언어 모델 엔진 332를 포함할 수 있다.In some embodiments, the
또한, 일부 실시 예에서, 언어 모델 처리부 330는 하나의 사용자 계정에 대응하는 복수의 언어 모델 데이터를 관리할 수 있다. 예를 들어, 제1 전자 장치 100에서 사용되는 어플리케이션(예: 메신저 어플리케이션, 이메일 어플리케이션, 웹 어플리케이션 등) 또는 텍스트 필드(예: 인터넷 주소 입력 필드, 이메일 주소 입력 필드, 이메일 본문 입력 필드, 메시지 텍스트 입력 필드 등)에 따라 서로 다른 언어 모델 데이터가 사용될 수 있다. 이와 관련하여 도 14를 참조하여 후술한다.
Also, in some embodiments, the language
도 5는 본 발명의 일 실시 예에 따른 언어 모델을 개념적으로 나타낸다.5 conceptually illustrates a language model according to an embodiment of the present invention.
도 5를 참조하면, 기존의 언어 모델 데이터 502가 문장 입력 504에 의해 갱신되는 예시를 개념적으로 나타낸다. 언어 모델 데이터 502에 따르면 “I read a” 다음에 입력이 예측되는 단어는 “book”이 0.5의 확률을 가지고, “paper”가 0.2의 확률을 가질 수있다. 이 상태에서 “He reads a memo”와 같은 문장 입력 504가 발생하면, 프로세서 210은 문장 입력 504로부터 단어 정보를 획득하고, 획득된 단어 정보와 기존의 언어 모델 데이터 502에 기초하여 언어 모델 데이터 502를 갱신할 수 있다. 예를 들어, “a” 다음에 발생할 수 있는 단어들의 관계 정보가 재 정의될 수 있다. 예를 들어, 각 단어의 관계 정보가 “book”은 0.45로, “paper”는 0.18로 낮아지고, “memo”는 0.06으로 증가(생성)될 수 있다.Referring to FIG. 5 , an example in which the existing
도 5에 도시된 예시에서, 언어 모델이 3개의 단어 단위로(N=3) 관계 정보를 분석하는 경우, 언어 모델 데이터 502에서 “read a” 다음에 “book”이 나올 확률이 0.5, “paper”가 나올 확률이 0.2에 해당할 수 있다. 이제 문장 입력 504가 획득되면 프로세서 210는 [reads a, memo]에 대한 관계 정보를 정의할 수 있다. 이 경우, 프로세서 210은 문장 입력 504에 대하여 형태소 분석 알고리즘(예: 테이블 파싱(table parsing)), 품사 부착 알고리즘(예: 은닉 마르코프 모델(Hidden Markov Model, HMM), 구절단위 분석 알고리즘, 또는 구문 분석 알고리즘 등을 적용할 수 있다. 프로세서 210은 [reads a]를 [read a] 또는 [read [관사]]의 형태로 분석하고, “memo”를 “book” 및 “paper”과 동일한 계층의 노드에 위치시킬 수 있다. 이와 같이 동작함으로써, [read a]와 [reads a], 또는 나아가 [read a], [read the], [reads any] 등 다양한 문법적인 변형에 대해서도 적절한 관계 정보를 획득할 수 있다.In the example shown in FIG. 5 , when the language model analyzes the relationship information in units of three words (N=3), the probability that “book” appears after “read a” in the
도 5에 도시된 언어 모델 데이터는 설명의 편의를 위해 단순화 한 것으로, 보다 복잡한 트리 구조와 낮은 확률로 구현될 수 있다. 예를 들어, “to the” 다음에 입력이 발생할 수 있는 단어는 다수가 존재하지만 언어 모델 및 사용자의 입력 이력에 기초하였을 때, “new”가 발생활 확률은 0.00301555, “next”와 “point”가 발생할 확률은 0.00282858, 다른 단어들은 그 이하의 확률 값을 가질 수 있다. 이 경우, 디스플레이 250에는 입력 필드에 “to the”가 입력된 상태에서 “new, next, point”가 추천 단어로 디스플레이 될 수 있다.The language model data shown in FIG. 5 is simplified for convenience of explanation, and may be implemented with a more complex tree structure and low probability. For example, there are many words for which input can occur after “to the”, but based on the language model and the user’s input history, the probability of occurrence of “new” is 0.00301555, “next” and “point” The probability of occurrence of is 0.00282858, and other words may have a probability value less than or equal to 0.00282858. In this case, “new, next, point” may be displayed as a recommendation word on the
위의 예시에서 사용자가 “point”를 소정의 입력(예: 롱 터치)를 통해 예측 단어에서 삭제시키는 경우, 언어 모델은 “to the” 다음에 “point”가 발생할 확률을 0 또는 임의의 숫자 또는 비율로 하향 조정할 수 있다. 이와 같은 삭제 단어에 대한 목록은 별도의 데이터 베이스로 관리될 수 있으며, 삭제 단어 데이터베이스를 동기화 하는 프로세스에 대하여 도 12를 참조하여 후술한다.
In the example above, when the user deletes “point” from the predicted word through a predetermined input (eg, a long touch), the language model calculates the probability that “point” occurs after “to the” is 0 or a random number or The ratio can be adjusted downward. Such a list of deleted words may be managed as a separate database, and a process of synchronizing the deleted word database will be described later with reference to FIG. 12 .
도 6은 본 발명의 일 실시 예에 따른 언어 모델의 동기화 프로세스를 나타낸다. 이하의 설명에서 전술한 내용과 대응되거나 중복 또는 유사한 내용은 그 설명이 생략될 수 있다.6 shows a synchronization process of a language model according to an embodiment of the present invention. In the following description, the description of the content corresponding to, overlapping with, or similar to the above-described content may be omitted.
도 6을 참조하면, 동작 602에서 제1 전자 장치 100은 문장 입력을 획득할 수 있다. 동작 604에서 제1 전자 장치 100은 제1 전자 장치 100에 저장된 언어 모델 데이터를 갱신할 수 있다. 예를 들어, 프로세서 210은 상기 문장 입력에 포함된 적어도 하나의 단어 및 상기 적어도 하나의 단어와 연관된 관계 정보에 기초하여 상기 언어 모델 데이터를 갱신할 수 있다. 여기서 관계 정보는 상기 문장 입력으로부터 획득되는 단어 정보와 기존에 제1 전자 장치 100에 저장되어 있던 언어 모델 데이터에 기초하여 생성될 수 있다. 일 실시 예에서, 제1 전자 장치 100에 언어 모델 데이터가 존재하지 않는 경우, 동작 604에서 제1 전자 장치 100은 언어 모델 데이터를 생성할 수 있다.Referring to FIG. 6 , in
동작 606에서, 제1 전자 장치 100은 서버 300으로 갱신된 언어 모델 데이터를 전송할 수 있다. 동작 608에서, 서버 300은 동작 606에서 수신된 언어 모델 데이터로 기존의 언어 모델을 교체할 수 있다. 다시 말해서 서버 300에 저장된 언어 모델 데이터(예: 언어 모델 데이터 334)가 제1 전자 장치 100으로부터 수신된 언어 모델 데이터(예: 언어 모델 데이터 124)로 대체될 수 있다.In operation 606 , the first
동작 610에서, 서버 300은 제1 전자 장치 100의 사용자 계정과 관련된 제2 전자 장치 200을 검색할 수 있다. 예를 들어, 서버 300은 제1 전자 장치 100의 사용자 계정(user_a@account.com)과 동일한 계정을 사용하거나, 상기 사용자 계정과 동일 사용자로 등록되거나 소정의 관련성(예: 가족)을 갖는 사용자 계정(예: user_a@samsung.com, user_a@gmail.com, user_a@facebook.com 등)을 사용하는 전자 장치를 검색할 수 있다.In
동작 612에서, 서버 300은 제2 전자 장치 200으로 언어 모델 데이터를 전송할 수 있다. 동작 612에서 전송되는 언어 모델 데이터는 동작 606에서 서버 300으로 전송된 언어 모델 데이터에 대응될 수 있다. 동작 614에서, 제2 전자 장치 200은 언어 모델 데이터를 수신하면, 제2 전자 장치에 저장되어 있던 언어 모델 데이터와 수신된 언어 모델 데이터를 병합할 수 있다.In operation 612 , the
동작 612가 수행되기 전에, 서버 300은 제2 전자 장치 200으로 최신의 언어 모델 데이터가 업데이트 되었음을 나타내는 동기화 요청 메시지를 전송할 수 있다. 서버 300은 제2 전자 장치 200으로부터 동기화 요청 메시지에 대한 응답이 수신되면, 그에 기초하여 언어 모델 데이터를 전송할 수 있다.Before operation 612 is performed, the
제2 전자 장치 200은 언어 모델 데이터를 병합한 후에는 다시 서버 300으로 병합된 언어 모델 데이터를 전송하고, 서버 300은 동작 608에서 교체된 언어 모델 데이터를 다시 상기 병합된 언어 모델 데이터로 대체하고, 이 병합된 언어 모델 데이터를 제1 전자 장치 100으로 전송함으로써, 최종적으로 제1 전자 장치 100, 서버 300, 제2 전자 장치 200의 언어 모델 데이터가 동기화될 수 있다.After merging the language model data, the second
도 6은 제1 전자 장치 100과 제2 전자 장치 200이 서버 300을 통해 언어 모델을 동기화하는 프로세스를 간략하게 설명한다. 서로 다른 장치 사이에서 동기화를 수행하기 위해 동기화 정보를 확인하고, 동기화 알림 메시지를 전송하는 동작과 같은 세부적인 프로세스들은 도 7 내지 12를 참조하여 설명된다.
FIG. 6 briefly describes a process in which the first
도 7은 본 발명의 일 실시 예에 따른 전자 장치에서 언어 모델의 동기화를 위해 서버로 언어 모델 데이터를 제공하는 프로세스를 나타낸다.7 illustrates a process of providing language model data to a server for language model synchronization in an electronic device according to an embodiment of the present invention.
도 7은 제1 전자 장치 100에서 언어 모델 데이터를 갱신하고 서버 300으로 갱신된 언어 모델 데이터를 제공하는 프로세스에 해당할 수 있다. 예를 들어, 도 7의 프로세스는 도 6의 동작 602 내지 동작 606에 해당할 수 있다. FIG. 7 may correspond to a process of updating language model data in the first
제1 전자 장치 100은 동작 702에서 물리 키보드나 소프트 키보드(예: SIP) 등을 통해 텍스트 입력을 획득할 수 있다. 또한, 제1 전자 장치 100은, 동작 704에서 사용자의 음성 입력을 획득하고, 획득된 음성 입력에 대한 음성 인식(예: ASR)의 적용하고, 동작 708에서 음성 인식 결과에 기초하여 결과에 기초하여 텍스트를 획득할 수 있다. 이와 같이 동작 702에서 입력된 텍스트 또는 동작 704에서 입력된 음성이 문장 입력으로서 획득될 수 있다.The first
동작 710에서 제1 전자 장치 100은 문장 입력 정보를 저장할 수 있다. 저장된 문장 입력 정보는 제1 전자 장치 100과 이종의 언어 모델을 사용하는 다른 전자 장치 사이의 언어 모델 업데이트를 위해 서버 300으로 제공될 수 있다. 이와 관련된 실시 예는 도 11을 참조하여 후술한다.In
동작 712에서 제1 전자 장치 100은 문장 입력으로부터 단어 정보를 추출할 수 있다. 제1 전자 장치 100은 문장에 포함된 적어도 하나의 단어 및 단어들의 배치 순서 등을 추출할 수 있다. In
동작 714에서, 제1 전자 장치 100은 언어 모델 데이터와 단어 정보에 기초하여 관계 정보를 생성할 수 있다. 동작 716에서, 제1 전자 장치 100은 동작 712에서 획득된 단어 정보와 동작 714에서 생성된 관계 정보에 기초하여 언어 모델 데이터를 갱신할 수 있다. 동작 718에서 제1 전자 장치 100은 갱신된 언어 모델 데이터를 서버 300으로 전송할 수 있다. 동작 718에서, 제1 전자 장치는 상기 갱신된 언어 모델 데이터 외에 추가적으로, 제1 전자 장치 100(또는 그 사용자)을 식별하기 위한 식별 정보, 상기 문장 입력 정보, 언어 모델 데이터에 해당하는 동기화 정보 등을 서버 300으로 전송할 수 있다.
In
도 8은 본 발명의 일 실시 예에 따른 전자 장치에서 서버로부터 수신된 데이터에 기초하여 언어 모델의 동기화를 수행하는 프로세스를 나타낸다.8 illustrates a process of synchronizing a language model based on data received from a server in an electronic device according to an embodiment of the present invention.
도 8은 제2 전자 장치 200에서 서버 300으로부터 언어 모델 데이터를 수신하여 동기화를 수행하는 프로세스를 나타낸다. 예를 들어, 도 8의 프로세스는 도 6의 동작 612 내지 614 또는 그 이후의 프로세스에 해당할 수 있다.FIG. 8 illustrates a process of performing synchronization by receiving language model data from a
서버 300은 제1 전자 장치 100으로부터 언어 모델 데이터를 수신하여 자신의 언어 모델 데이터를 교체하고 나면, 제2 전자 장치 200으로 새로운 언어 모델 데이터의 업데이트가 있음을 나타내고 동기화를 유도하는 동기화 알림 메시지를 전송할 수 있다. 동작 802에서 제2 전자 장치 200은 이 동기화 알림 메시지를 수신할 수 있다. After the
동작 804에서, 제2 전자 장치 200은 동기화 응답 이벤트를 발생시킬 수 있다. 예를 들어, 동기화 알림 메시지가 제2 전자 장치 200의 디스플레이에 푸시 알림의 형태로 제공되고, 사용자에 의해 동기화를 수행하거나 승인하도록 하는 입력이 발생하면, 제2 전자 장치 200은 서버 300으로 동기화를 시작하라는 응답을 전송할 수 있다. 일 실시 예에서, 제2 전자 장치 200은 알림 메시지가 수신되면 자동으로 동기화가 진행되도록 설정되어 있거나, 혹은 알림 메시지가 수신되고 제2 전자 장치 200이 Wi-Fi에 연결되면 동기화가 진행되도록 설정되어 있을 수 있다. 또는, 제2 전자 장치 200은 지정된 시간(예: 자정)이 되면 동기화를 시작하도록 설정되어 있을 수 있다.In
동작 806에서 제2 전자 장치 200은 서버 300으로부터 최근에 교체된 언어 모델 데이터를 수신할 수 있다. 동작 808에서 제2 전자 장치 200은 제2 전자 장치에 저장된 언어 모델 데이터와 수신된 언어 모델 데이터를 서로 병합할 수 있다. 이 과정에서, 제2 전자 장치 200은 두 언어 모델 데이터에서 중복되는 단어 데이터에 대해서는 전체 언어 모델 데이터의 크기 중에서 중복되는 단어 데이터의 확률(관계 정보) 값을 다시 계산할 수 있다.In
동작 806 이전에는 제1 전자 장치 100과 서버 300에 저장된 언어 모델 데이터(예: 버전 1.0)가 최신 언어 모델 데이터이지만, 동작 808이 수행된 이후에는, 병합된 언어 모델 데이터(예: 버전 1.2)가 최신 언어 모델 데이터가 될 수 있다. 그에 따라, 동작 810에서 제2 전자 장치 200은 병합된 언어 모델 데이터를 서버 300으로 전송하고, 서버 300은 제2 전자 장치 200으로부터 수신된 언어 모델 데이터를 제1 전자 장치 100으로 전송할 수 있다.Before
다만 일 실시 예에서, 제1 전자 장치 100이 서버 300으로 언어 모델 데이터(예: 버전 1.0)를 전송한 이후부터 다시 서버 300으로부터 언어 모델 데이터(예: 버전 1.2)를 수신하는 동안, 제1 전자 장치 100에 아무런 문장 입력이 제공되지 않았다면 제1 전자 장치 100의 언어 모델 데이터는 병합되더라도 버전 1.2의 언어 모델 데이터와 동일하게 될 수 있다. 그러나 그 사이에 제1 전자 장치 100에 임의의 문장 입력이 발생하고, 제1 전자 장치 100의 언어 모델 데이터가 변경된 경우(예: 버전 1.1), 버전 1.2의 언어 모델 데이터를 수신하여 병합하면 새로운 언어 모델 데이터(예: 버전 1.3)가 생성될 수 있다. 특히, 제1 전자 장치 100과 제2 전자 장치 200을 통해 동시적으로 또는 근소한 시간 차이로 사용자 입력이 지속적으로 발생하는 경우, 서버 300을 통한 동기화 동작이 계속해서 반복될 수 있다. 따라서 일 실시 예에서, 제1 전자 장치 100 또는 제2 전자 장치는 서버 300으로부터 동기화 요청 메시지를 수신(예: 동작 802)하여 동기화를 수행한 경우, 일정 시간 동안, 또는 일정 조건이 만족될 때까지 문장 입력이 발생하여도 서버 300으로 언어 모델 데이터를 전송하지 않도록 설정될 수 있다.
However, in an embodiment, after the first
도 9는 본 발명의 일 실시 예에 따른 전자 장치에서 동기화 방법을 결정하는 프로세스를 나타낸다.9 illustrates a process for determining a synchronization method in an electronic device according to an embodiment of the present invention.
제1 전자 장치 100 또는 제2 전자 장치 200은 서버 300으로 자신의 언어 모델 데이터를 전송하거나(상향 동기화(Up Sync)), 서버 300으로부터 언어 모델 데이터를 수신하여(하향 동기화(Down Sync)) 언어 모델의 동기화를 수행할 수 있다. 이하에서는 편의상 제1 전자 장치 100을 기준으로 하여 상향 동기화 또는 하향 동기화 방식을 결정하는 방법을 설명한다.The first
도 9를 참조하면, 동작 902에서 동기화 요청 이벤트가 발생할 수 있다. 예를 들어, 제1 전자 장치 100에 설정된 동기화 주기가 도래하거나, 사용자의 입력에 의한 강제 동기화가 수행될 수 있다. 도 8의 동작 802에 의한 동기화 알림 메시지 역시 동기화 요청 이벤트의 하나로 설정될 수 있다.Referring to FIG. 9 , a synchronization request event may occur in
동기화 요청 이벤트가 발생하면, 동작 904에서 제1 전자 장치 100(예: 통신 모듈 230)은 서버 300으로 서버 300에 저장된 언어 모델 데이터의 동기화 정보를 요청하고, 서버 300으로부터 서버의 동기화 정보를 획득할 수 있다. 동작 906에서, 제1 전자 장치 100(예: 프로세서 210)은 제1 전자 장치 100에 저장된 언어 모델 데이터의 동기화 정보(예: 제1 동기화 정보)와 상기 수신된 서버 300에 저장된 언어 모델 데이터의 동기화 정보(예: 제2 동기화 정보)를 비교할 수 있다. 이 동기화 정보에는 언어 모델 데이터의 마지막 동기화 시간 정보(예: 타임 스탬프 정보)가 포함될 수 있다. 또한 상기 동기화 정보에는 동기화가 이루어진 장치에 대한 정보가 부수적으로 포함될 수 있다. When a synchronization request event occurs, in operation 904, the first electronic device 100 (eg, the communication module 230) requests synchronization information of the language model data stored in the
일 실시 예에서, 제1 전자 장치 100은 언어 모델 데이터가 갱신될 때마다, 마지막 갱신 시점에 대한 타임 스탬프(time stamp, TS) 정보를 언어 모델 데이터 또는 별도의 메모리 공간에 저장할 수 있다. 즉, 제1 전자 장치 100은 언어 모델 데이터에 변경 사항이 발생 하면(예: 전자 장치 100의 입력 인터페이스를 통해 획득된 텍스트 또는 음성 입력에 기초하여 언어 모델이 갱신되거나 또는 서버 300으로부터 수신된 데이터에 기초하여 언어 모델이 병합되면) 그 시점의 타임 스탬프 정보를 기록할 수 있다. 예를 들어, TS1, TS2, 및 TS3에서 전자 장치 100에 저장된 언어 모델 데이터가 자체적으로 갱신되고, TS4에서 서버 300과 상향 또는 하향 동기화에 의해 언어 모델 데이터가 갱신(병합)되고, TS5, TS6에서 문장 입력에 기초하여 언어 모델 데이터가 갱신되는 경우, 현재 전자 장치 100의 언어 모델 데이터의 동기화 정보는 서버 300과 전자 장치 100 사이에 동기화가 수행된 시점의 언어 모델 데이터의 타임 스탬프 정보(즉 TS4)를 포함할 수 있다.In an embodiment, whenever the language model data is updated, the first
동작 908에서 제1 전자 장치 100은 두 동기화 정보가 일치하는지 여부를 판단할 수 있다. 예를 들어, 제1 동기화 정보가 2015년 1월 1일 새벽 2시에 제1 전자 장치 100과 서버 300 사이에서 동기화가 이루어졌음을 나타내는 경우, 제2 동기화 정보가 제1 동기화 정보와 동일한 정보를 포함하는지 여부가 판단될 수 있다.In
일치하는 것으로 판단되는 경우, 예를 들어 제2 동기화 정보 역시 2015년 1월 1일 새벽 2시에 제1 전자 장치 100과 서버 300 사이에서 동기화가 이루어졌음을 나타내는 경우, 동작 910에서 제1 전자 장치 100은 그 이후로 제1 전자 장치 100에서 발생한 문장 입력에 의해 언어 모델 데이터에 변경 내용이 있는지 여부를 판단할 수 있다. 만약 변경 내용이 존재하지 않는 경우, 제1 전자 장치 100과 서버 300의 언어 모델 데이터가 이미 동기화 된 상태이므로 프로세스는 종료될 수 있다. 만약 변경 내용이 존재하는 경우, 동작 912에서 제1 전자 장치 100은 제1 전자 장치 100의 상기 변경된 언어 모델 데이터를 서버 300으로 발송할 수 있다. (상향 동기화) 이 경우 제1 전자 장치 100은 서버 300으로 언어 모델 데이터를 발송하는 시점에 기초하여 동기화 정보를 수정하고, 서버 300으로 수정된 동기화 정보를 제공할 수 있다.When it is determined that they match, for example, when the second synchronization information also indicates that synchronization is performed between the first
동작 908에서 제1 동기화 정보와 제2 동기화 정보가 일치하지 않는 경우, 예를 들어 제1 전자 장치 100과 마지막 동기화를 수행한 이후에 서버 300이 제2 전자 장치 200과 동기화를 수행한 경우, 동작 914에서 제1 전자 장치 100은 서버 300에 저장된 언어 모델 데이터를 요청하고 수신할 수 있다. 동작 916에서 제1 전자 장치 100은 수신된 언어 모델 데이터를 제1 전자 장치 100에 저장되어 있던 언어 모델 데이터와 병합할 수 있다. 병합이 완료되면 동작 918에서 제1 전자 장치는 동기화 정보를 갱신하고, 동작 920에서 서버 300으로 병합된 언어 모델 데이터 및 갱신된 동기화 정보를 전송할 수 있다.
In
도 10은 본 발명의 일 실시 예에 따른 서버에서 언어 모델의 동기화를 수행하는 프로세스를 나타낸다.10 illustrates a process of synchronizing language models in a server according to an embodiment of the present invention.
동작 1002에서 서버 300은 제1 전자 장치 100으로부터 동기화 요청 메시지를 수신할 수 있다. 동작 1004에서, 서버 300은 상기 동기화 요청에 응답하여 서버 300에 저장된 언어 모델 데이터의 동기화 정보를 제1 전자 장치 100으로 전송할 수 있다. 제1 전자 장치 100에서 하향 동기화 방식을 결정한 경우, 동작 1006에서 서버 300은 제1 전자 장치 100으로부터 서버 300의 언어 모델 데이터를 요청하는 메시지를 수신할 수 있다. 그러나 제1 전자 장치 100에서 상향 동기화 방식을 결정한 경우, 동작 1012에서 제1 전자 장치 100으로부터 제1 전자 장치 100의 언어 모델 데이터가 수신될 수 있다. 이 경우 전자 장치 100으로부터 갱신된 동기화 정보가 함께 수신될 수 있다.In
동작 1006에서 서버 300의 언어 모델 데이터가 요청되면, 동작 1008에서 서버 300은 제1 전자 장치 100으로 언어 모델 데이터를 전송할 수 있다. 제1 전자 장치 100에서 상기 언어 모델 데이터를 수신하고, 자체 언어 모델 데이터와 병합이 완료되면, 서버 300은 동작 1010에서 제1 전자 장치 100으로부터 병합된 언어 모델 데이터를 수신할 수 있다. 이 경우, 병합된 언어 모델 데이터에 기초하여 갱신된 동기화 정보가 함께 수신될 수 있다.When the language model data of the
동작 1014에서 서버 300은 제1 전자 장치 100으로부터 수신된 언어 모델 데이터로 기존에 저장된 언어 모델 데이터를 대체할 수 있다. 또한 동작 1016에서 전자 장치 100으로부터 수신된 동기화 정보(또는 언어 모델 데이터)에 기초하여 서버 300의 언어 모델 데이터에 대한 동기화 정보를 갱신할 수 있다.In operation 1014 , the
동작 1018에서, 서버 300은 제1 전자 장치 100과 동일한(또는 관련있는) 사용자 계정의 제2 전자 장치 200을 검색할 수 있다. 동작 1020에서 서버 300은 제2 전자 장치 200으로 동기화 알림 메시지를 전송할 수 있다. 동작 1020 이후에는 도 8 또는 도 9의 프로세스가 제2 전자 장치 200에서 수행될 수 있다.
In
도 11은 본 발명의 일 실시 예에 따른 이종 언어 모델을 사용하는 전자 장치들 사이의 동기화 프로세스를 나타낸다.11 illustrates a synchronization process between electronic devices using heterogeneous language models according to an embodiment of the present invention.
서로 다른 언어 모델을 사용하는 경우, 서로 다른 알고리즘을 사용하기 때문에 언어 모델 데이터를 병합하는 것이 불가능하거나, 병합의 결과가 비효율적일 수 있다. 그러나 서로 다른 언어 모델을 사용하더라도 사용자의 문장 입력을 각자 모델에 맞게 처리할 수 있기 때문에, 문장 입력에 대한 정보를 제공하여 유사한 사용자 경험을 제공할 수 있다.When using different language models, it may be impossible to merge language model data because different algorithms are used, or the result of merging may be inefficient. However, even if different language models are used, since the user's sentence input can be processed according to each model, information on the sentence input can be provided to provide a similar user experience.
동작 1102에서 제1 전자 장치는 문장 입력을 획득하고, 동작 1104에서 언어 모델 데이터를 갱신할 수 있다. 예를 들어, 제1 전자 장치 100은 제1 타입의 언어 모델을 사용하고 있을 수 있다.In
동작 1106에서, 제1 전자 장치 100은 서버 300으로 언어 모델 타입 정보, 언어 모델 데이터, 문장 입력 정보를 전송할 수 있다. 동작 1108에서 서버 300은 수신된 언어 모델의 타입 정보에 기초하여 사용자 계정에 대응하는 제1 타입의 언어 모델 데이터를 교체할 수 있다.In operation 1106, the first
동작 1110에서 서버 300은 사용자 계정과 연관된 제2 전자 장치 200을 검색할 수 있다. 동작 1112에서, 서버 300은 제2 전자 장치 200으로 언어 모델 타입 정보(제1 타입), 언어 모델 데이터, 문장 입력 정보를 제공할 수 있다.In
예를 들어 제2 전자 장치 200이 상기 제1 타입과 다른 제2 타입의 언어 모델을 사용하는 전자 장치인 경우, 제2 전자 장치 200은 동작 1114에서 언어 모델 정보를 확인하여, 호환되지 않는 타입의 언어 모델 데이터를 수신했다는 것을 확인할 수 있다. 이 경우, 동작 1116에서 제2 전자 장치 200은 언어 모델 데이터를 병합하는 대신, 수신된 문장 입력 정보에 기초하여 제2 타입의 언어 모델 데이터를 갱신할 수 있다. 이와 같은 동작을 통해, 본 발명의 일 실시 예에서는, 서로 다른 타입의 언어 모델을 사용하는 전자 장치들 사이에서 호환 가능한 일부 정보를 동기화 함으로써 사용자의 사용자 경험을 향상시킬 수 있다. 예를 들어, “I am reading a book”이라는 입력 단어가 있을 때, “am” 다음에 “reading”이 예측될 확률 값은 서로 호환될 수 없지만, “am” 뒤에 “reading”이 입력된 이력은 서로 호환 가능하며, 이를 통해 실질적으로 동일한 예측 단어가 제공되도록 할 수 있다.For example, if the second
도 11의 실시 예에서는, 서버 300은 모든 정보를 제2 전자 장치 200으로 제공하고, 제2 전자 장치 200에서 동기화할 데이터를 결정하였지만, 일부 실시 예에서는 서버 300에 각 전자 장치의 언어 모델의 타입 정보가 함께 저장되고 있을 수 있다. 이 경우, 서버 300은 수신된 언어 모델 데이터의 언어 모델 타입과, 동기화 대상이 되는 전자 장치의 언어 모델 타입이 다른 경우 언어 모델 데이터를 전송하지 않고 문장 입력 정보만 전송하여 데이터 사용량을 감소시킬 수 있다.
In the embodiment of FIG. 11 , the
도 12는 본 발명의 일 실시 예에 따른 삭제된 예측 단어를 반영하기 위한 동기화 프로세스를 나타낸다.12 illustrates a synchronization process for reflecting deleted prediction words according to an embodiment of the present invention.
제1 전자 장치 100의 언어 모델에 기초하여 제공된 예측 단어를 사용자가 직접 삭제 또는 배제한 경우, 해당 언어 모델 데이터에서 삭제된 단어는 제2 전자 장치 200의 언어 모델과 병합하게 되면 다시 복구될 수 있다. 다시 말해서, 단어 A, B, C, D, E가 있는 언어 모델 데이터에서 단어 A를 삭제하였는데, 단어 A, B, C, D, E가 있는 다른 언어 모델 데이터와 병합하게 되면, 삭제된 단어 A가 복구될 수 있다. 이하에서는 사용자의 삭제 내역을 반영하여 동기화가 수행될 때, 다른 전자 장치의 언어 모델 데이터에서도 동일하게 삭제 내역이 반영될 수 있는 프로세스를 설명한다.When the user directly deletes or excludes the predicted word provided based on the language model of the first
동작 1202에서 제1 전자 장치 100은 삭제 단어에 대한 정보를 획득한다. 예를 들어, 제1 전자 장치 100에서 문장 입력이 발생할 때 언어 모델 데이터에 기초하여 입력이 예측되는 예측 단어가 디스플레이 될 수 있고, 이 중 임의의 단어가 사용자 선택에 의해 삭제될 수 있다. 동작 1202에서 프로세스 210은 이와 같은 삭제된 단어에 대한 삭제 단어 데이터베이스를 생성할 수 있다.In operation 1202, the first
동작 1204에서, 제1 전자 장치 100은 문장 입력을 획득하고, 동작 1206에서 삭제된 예측 단어를 반영하여 언어 모델 데이터를 갱신할 수 있다.In
동작 1208에서, 제1 전자 장치 100은 서버 300으로 언어 모델 데이터와 삭제 단어 정보, 예를 들어 삭제 단어 데이터베이스를 전송할 수 있다. 동작 1210에서, 서버 300은 동작 1208에서 획득된 언어 모델 데이터로 서버 300에 기 저장된 언어 모델 데이터를 교체하고, 동작 1212에서 사용자 계정과 관련된 제2 전자 장치 200을 검색할 수 있다.In operation 1208, the first
동작 1214에서 서버 300은 제2 전자 장치 200으로 교체된 언어 모델 데이터와 삭제 단어 정보를 함께 전송할 수 있다.In
동작 1216에서, 제2 전자 장치 200은 기 저장된 언어 모델 데이터와 수신된 언어 모델 데이터를 병합할 수 있다. 이 동작에서, 제1 전자 장치 100에 의해 삭제되었던 예측 단어들이 복구될 가능성이 있다. 병합이 완료된 후, 동작 1218에서 제2 전자 장치 200은 삭제 단어 정보를 병합된 언어 모델 데이터에 병합할 수 있다. 동작 1218을 통해, 설령 동작 1216에서 삭제된 예측 단어들이 복구되더라도, 최종적으로 예측 단어들이 동일하게 삭제된 상태로 동기화가 이루어지도록 할 수 있다.In
언어 모델 데이터를 모든 사용자 단말에서 초기화 하기 위한 프로세스도 도 12와 유사한 흐름으로 진행될 수 있다. 예를 들어, 제1 전자 장치 100에서 언어 모델 데이터를 초기화 한 경우, 결과적으로 제2 전자 장치 200의 언어 모델 데이터로 동기화될 수 있다. 따라서, 제1 전자 장치 100에서 언어 모델 데이터를 초기화 한 경우, 초기화 완료 직후에 상향 동기화가 수행되도록 설정될 수 있다. 이 경우, 제1 전자 장치 100은 상향 동기화 시에 서버 300으로 초기화 정보를 함께 전달할 수 있다. 서버 300은 수신된 언어 모델 데이터(즉, 초기 언어 모델 데이터)로 기 저장된 언어 모델 데이터를 교체하고, 제2 전자 장치 200으로 언어 모델 데이터와 초기화 정보를 전송할 수 있다. 제2 전자 장치 200은 언어 모델 데이터를 병합한 후에 초기화 정보를 적용하여, 학습된 데이터를 모두 초기화할 수 있다. 일 예시에서, 제2 전자 장치 200은 초기화 정보가 있는 경우, 언어 모델 데이터를 병합하는 과정을 생략하고, 초기화 동작을 우선 적용할 수 있다.
A process for initializing the language model data in all user terminals may also proceed in a flow similar to that of FIG. 12 . For example, when the language model data of the first
도 13a, 도 13b, 및 도 13c는 본 발명의 일 실시 예에 따른 언어 모델의 동기화에 따른 예시적인 화면을 나타낸다.13A, 13B, and 13C show exemplary screens according to synchronization of a language model according to an embodiment of the present invention.
도 13a는 사용자 단말 101에서 채팅 어플리케이션 104이 실행된 상태에서 SIP 105를 통해 문장 입력 1300이 발생할 때, 예측 단어가 제공되는 예시를 나타낸다. 예를 들어, 사용자가 “I am reading a book”을 입력하려고 하고, “I am”까지 입력하였을 때, 사용자 단말 101은 언어 모델에 기초하여 “playing”을 예측하여 예측 단어 영역 107에 출력할 수 있다. 사용자에 의해 “I am reading a book”이 최종적으로 입력되면, 사용자 단말 101은 언어 모델을 갱신하여, “am” 다음에 “reading”이 위치하는 관계정보를 생성할 수 있다.13A illustrates an example in which a predicted word is provided when a
이제 도 13b에 도시된 것과 같이 사용자 단말 101의 언어 모델이 서버 302를 통해 다른 사용자 단말 201과 동기화되면, 두 단말 모두 사용자에 의해 “I am”까지 입력되었을 때 예측 단어로 “playing”과 “reading”이 제공될 수 있다.Now, when the language model of the
만약 이 상태에서, 사용자 단말 201에서 “I am working now”와 같은 단어가 입력되고, 언어 모델이 갱신 및 동기화된 후, 사용자 단말 101에서 “I am”이 입력되면, 사용자 단말 101에서는 “reading”, “playing” 및 “working” 또는 확률에 기초하여 상기 단어들 중 적어도 하나가 추천될 수 있다.If, in this state, a word such as “I am working now” is input in the
도 13c는 웨어러블 장치 109에서 획득되는 음성 입력에 기초하여 언어 모델 데이터가 사용자 단말 101과 동기화되는 예시를 나타낸다. 웨어러블 장치 109는 예를 들어 스마트 워치(smart watch)나 스마트 밴드(smart band) 또는 목걸이형 장치(예: Gear Circle 등) 일 수 있다. 웨어러블 장치 109는, 일반적으로 스마트폰이나 태블릿과 같은 다른 전자 장치에 비하여 소형이고, 따라서 작은 디스플레이 화면을 구비하거나 디스플레이가 구비되어 있지 않을 수 있다. 다시 말해서, 웨어러블 장치 109는 하드웨어 또는 소프트웨어 모듈 형태의 키보드를 탑재하기 어려운 구조를 가질 수 있다. 웨어러블 장치 109에서는 작은 디스플레이에 출력된 예측 단어에 대한 사용자 선택에 의해 문장이 입력되거나, 음성 입력에 대한 음성 인식을 통해 문장이 입력될 수 있다.13C illustrates an example in which language model data is synchronized with the
일 실시 예에서, 웨어러블 장치 109에서 획득되는 주된 입력은 웨어러블 장치 109에 탑재된 마이크를 통한 사용자의 음성 입력일 수 있다. 음성 입력은 웨어러블 장치 109 자체, 또는 웨어러블 장치와 페어링된 다른 전자 장치, 또는 웨어러블 장치 109와 직접 또는 간접적으로 연결되는 음성 인식 서버에 탑재된 음성 인식 모듈 또는 기능에 의해 문장 입력으로 변환될 수 있다. 여기서 문장 입력이란, 적어도 하나의 단어를 포함할 수 있다. 음성 인식과 관련한 내용은 도 2를 참조하여 자세히 설명된 바 있으므로, 도 13c에서는 구체적인 설명을 생략한다.In an embodiment, the main input obtained from the
일 실시 예에서, 사용자에 의해 “I am reading a book”이라는 발화(speech) 1310이 웨어러블 장치 109의 마이크를 통해 입력되면, 웨어러블 장치 109(예: 입력 처리부)는 상기 발화 입력을 직접, 또는 다른 장치를 통해 분석하고, 이에 기반하여 입력 단어 정보를 생성할 수 있다. 이와 같은 방식으로 생성된 입력 단어 정보는 전술한 다양한 예시에서와 같이, 언어 모델 동기화 방법에 따라 다른 전자 장치(예: 사용자 단말 101)와 관계성 정보 생성 및 동기화가 가능하다. 예를 들어, 웨어러블 장치 109는 발화 1310에 기초하여 웨어러블 장치 109의 언어 모델 데이터를 갱신하고, 갱신된 언어 모델 데이터를 서버 302로 전송할 수 있다. 서버 109는 기 저장된 언어 모델 데이터를 수신된 언어 모델 데이터로 대체하고, 다시 사용자 단말 101로 제공할 수 있다. 사용자 단말 101에서는 결과적으로 기존의 언어 모델 데이터와 웨어러블 장치 109로부터 전송된 언어 모델 데이터가 병합될 수 있다. 예를 들어, 기존에 사용자 단말 101에서 SIP를 통해 “I am”이 입력되면 “playing”이 예측 단어로 추천되는 경우, 웨어러블 장치 109로 “I am reading a book”이라는 발화(speech) 1310이 입력되고, 상기 입력이 언어 모델 데이터에 반영되어 동기화되면, 사용자 단말 100에서 “I am”이 입력되었을 때 “playing” 외에 “reading”이 예측 단어로 제공될 수 있다.In an embodiment, when a
위 실시 예는 음성 데이터를 웨어러블 장치에서 입력 받고 해당 데이터를 단말 100과 동기화 하는 내용에 관하여 설명하고 있으나, 음성 입력은 단말 자체에서도 가능하며, 전술한 SIP등을 이용한 텍스트 입력과 동등한 관계의 입력 수단으로서 활용될 수 있다. Although the above embodiment describes the contents of receiving voice data from the wearable device and synchronizing the data with the terminal 100, voice input is also possible in the terminal itself, and an input means equivalent to text input using the aforementioned SIP or the like. can be used as
도 14는 본 발명의 일 실시 예에 따른 어플리케이션에 따라 언어 모델을 동기화하는 방법을 개념적으로 나타낸다.14 conceptually illustrates a method of synchronizing a language model according to an application according to an embodiment of the present invention.
일 실시 예에서, 언어 모델은 어플리케이션에 따라서 다른 방식으로 관리될 수 있다. 예를 들어, 동일한 언어 모델이 어플리케이션에 따라 다른 문장 입력에 의해 학습될 수 있고, 어플리케이션에 따라 서로 다른 언어 모델이 사용될 수도 있다. 예를 들어, 전자 장치의 사용자는 SMS와 같은 메시지 어플리케이션을 사용할 때와, 페이스북이나 트위터와 같은 소셜 어플리케이션을 사용할 때, 또는 이메일을 작성할 때의 문장 입력이 서로 다른 성향을 보일 수 있다. 예를 들어, 친구끼리 주로 사용하는 소셜 어플리케이션의 문장 입력에 기초한 예측 단어의 제공은, 공적인 이메일을 작성할 때에는 별로 도움이 되지 않을 수 있다.In an embodiment, the language model may be managed in different ways depending on the application. For example, the same language model may be learned by inputting different sentences according to applications, and different language models may be used according to applications. For example, when the user of the electronic device uses a message application such as SMS, when using a social application such as Facebook or Twitter, or when composing an e-mail, a text input tendency may be different. For example, provision of predictive words based on sentence input of a social application that is mainly used by friends may not be very helpful when composing a public e-mail.
따라서, 일 실시 예에 따른 제1 사용자 단말 1410은 제1 어플리케이션 언어 모델 1412, 제2 어플리케이션 언어 모델 1414, 제3 어플리케이션 언어 모델 1416을 포함할 수 있다. 각각의 언어 모델은 각각의 어플리케이션을 통한 문장 입력에 기초하여 학습되고 갱신될 수 있다. 서버 1430 및 제2 사용자 단말 1420 역시 각각의 어플리케이션에 대응되는 언어 모델들 사이에서 동기화를 수행할 수 있다. 예를 들어, 제1 어플리케이션 언어 모델 1412는 서버 1430의 제1 어플리케이션 언어 모델 1432를 대체하고, 다시 제2 사용자 단말 1420의 제1 어플리케이션 언어 모델 1422와 병합될 수 있다. 이와 유사한 방식으로 제2 어플리케이션 언어 모델 1414는 서버 1430의 제2 어플리케이션 언어 모델 1434를 대체하고, 다시 제2 사용자 단말 1420의 제2 어플리케이션 언어 모델 1424와 병합되고, 제3 어플리케이션 언어 모델 1416는 서버 1430의 제3 어플리케이션 언어 모델 1436를 대체하고, 다시 제2 사용자 단말 1420의 제3 어플리케이션 언어 모델 1426과 병합될 수 있다.Accordingly, the
도 14에 도시된 어플리케이션에 따른 언어 모델 데이터의 동기화 방법은, 입력 필드에 따른 언어 모델 데이터의 동기화 방법에도 대응되는 방법으로 적용될 수 있다. 예를 들어, SMS와 같은 메시지 어플리케이션의 입력 화면은 메시지의 수신자 필드, 메시지 내용 필드를 포함할 수 있다. 통상적으로 대화의 상대방이 이미 선택된 상태에서 대화 내용을 입력 받는 메신저 어플리케이션의 입력 화면은 메시지 내용 필드만 포함할 수 있다. 이메일 어플리케이션의 입력 화면은 수신자 필드, 이메일 타이틀 필드, 이메일 내용 필드를 포함할 수 있다. 인터넷 어플리케이션의 입력 화면은 웹사이트의 주소 입력 필드와 검색어 입력 필드를 포함할 수 있다. 이와 같은 상황에서, 일 실시 예에 따른 언어 모델 데이터의 동기화 방법은 입력 필드에 따라 언어 모델을 다르게 적용할 수 있다. 전자 장치 100은 다양한 어플리케이션의 수신자 필드에서 발생한 입력을 수집하고 이에 기초하여 언어 모델 데이터를 갱신 및 동기화 하고, 특정 어플리케이션에서 수신자 필드가 선택되었을 때, 자주 사용된 단어(예: 수신자)를 예측 단어로서 추천할 수 있다.
The method for synchronizing language model data according to an application illustrated in FIG. 14 may be applied as a method corresponding to a method for synchronizing language model data according to an input field. For example, an input screen of a message application such as SMS may include a message recipient field and a message content field. In general, an input screen of a messenger application that receives a conversation content while a counterpart of the conversation is already selected may include only a message content field. The input screen of the email application may include a recipient field, an email title field, and an email content field. The input screen of the Internet application may include an address input field and a search word input field of a website. In such a situation, the method for synchronizing language model data according to an embodiment may apply a language model differently according to an input field. The
도 15는 본 발명의 일 실시 예에 따른 동기화 시스템에서 예시적인 동기화 순서를 나타낸다.15 shows an exemplary synchronization sequence in a synchronization system according to an embodiment of the present invention.
도 15를 참조하면, 제1 전자 장치 100은 제1 버전(V1)의 언어 모델(또는 언어 모델 데이터)을 포함하고, 제2 전자 장치 200은 제2 버전(V2)의 언어 모델을 포함할 수 있다. 일 실시 예에서, 서버 300의 언어 모델은 초기화 상태(V0)로 가정할 수 있다. 다른 실시 예에서 서버 300의 언어 모델은 다른 임의의 버전을 가질 수 있으나, 본 예시에서는 서버 300에 탑재된 초기 버전의 언어 모델은 제1 버전의 언어 모델로 대체되므로, 편의상 초기화 상태로 가정하고 설명한다.Referring to FIG. 15 , the first
또한 도 15의 동기화 예시에서, 상향 동기화(UP SYNC)는 점선(dashed line)으로, 하향 동기화(DOWN SYNC) 및 동기화 알리 메시지(PUSH)는 2점쇄선(2 point chain line)으로, 언어 모델 교체 및 사용자 입력에 의한 갱신은 실선(solid line)으로, 언어 모델 병합은 굵은 실선(bolded solid line)으로 표시될 수 있다.Also, in the synchronization example of FIG. 15 , UP SYNC is indicated by a dashed line, and DOWN SYNC and a synchronization notification message (PUSH) are indicated by a two-dot chain line, language model replacement And update by user input may be indicated by a solid line, and language model merging may be indicated by a bold solid line.
제1 전자 장치 100은 제1 버전의 언어 모델을 서버 300으로 업로드할 수 있다. (동작 1) 서버 300은 제1 전자 장치 100으로부터 제1 버전의 언어 모델을 수신하면, 서버 300에 탑재된 초기 버전(VO)의 언어 모델을 제1 버전의 언어 모델로 대체할 수 있다. (동작 2) 서버 300은 제2 전자 장치 200으로 제1 버전의 언어 모델을 전송할 수 있다. (동작 3)The first
제2 전자 장치 200은 서버 300으로부터 제1 버전의 언어 모델을 수신하면, 제1 버전의 언어 모델과 제2 버전의 언어 모델을 병합(merge)하여 제3 버전의 언어 모델을 생성할 수 있다. (동작 4) 그 후 제2 전자 장치 200은 수신된 사용자 입력 1510에 기초하여, 제3 버전의 언어 모델을 제4 버전의 언어 모델로 업데이트 할 수 있다. (동작 5)Upon receiving the language model of the first version from the
다른 실시 예에서, 제2 전자 장치 200은 서버 300으로 제3 버전의 언어 모델을 전송하고, 서버 300은 제1 버전의 언어 모델을 제3 버전의 언어 모델로 대체한 후에, 다시 제1 전자 장치 100으로 제3 버전의 언어 모델을 전송할 수 있다. 이 경우, 제1 버전과 제3 버전의 언어 모델을 병합하더라도 제3 버전의 언어 모델이 생성되므로, 제1 전자 장치 100, 제2 전자 장치 200, 및 서버 300을 포함하는 동기화 시스템 사이의 언어 모델이 제3 버전으로 동기화될 수 있다. 그러나 전술한 다양한 실시 예에서와 같이, 동기화 동작은 시간적 간격을 두고 발생하거나, 특정 조건이 만족될 때 수행될 수 있다. 이하에서 계속 설명된다.In another embodiment, the second
다시 도 15를 참조하면, 제2 전자 장치 200은 제4 버전의 언어 모델을 서버 300으로 전송할 수 있다. (동작 6) 서버 300은 제1 버전의 언어 모델을 제4 버전의 언어 모델로 대체하고 (동작 7), 제4 버전의 언어 모델에 대한 동기화 알림 메시지를 제1 전자 장치 100으로 전송하거나, 혹은 제4 버전의 언어 모델을 제1 전자 장치 100으로 전송할 수 있다. (동작 8) 제1 전자 장치 100을 제4 버전의 언어 모델이 수신되면 제1 버전의 언어 모델과 병합하여 제5 버전의 언어 모델을 생성할 수 있다. (동작 9). 동작 5에서와 유사하게, 제1 전자 장치 100은 제1 전자 장치 100에서 발생한 사용자 입력 1520에 기초하여 언어 모델을 제6 버전으로 갱신할 수 있다. (동작 10).Referring back to FIG. 15 , the second
제1 전자 장치 100은 제6 버전의 언어 모델을 서버 300으로 전송하고 (동작 11), 서버 300은 언어 모델을 제4 버전에서 제6 버전으로 대체할 수 있다. (동작 12) 서버 300은 제6 버전의 언어 모델, 또는 이에 대한 동기화 알림 메시지를 제2 전자 장치 200으로 전송하고 (동작 13), 제2 전자 장치 200은 제6 버전의 언어 모델이 수신되면 제4 버전의 언어 모델과 병합하여 제7 버전의 언어 모델을 생성할 수 있다. (동작 14)The first
전술한 동기화 순서는 예시적인 것이며, 도 6 내지 도 12에서 설명된 다양한 변형이 가해질 수 있다.The synchronization sequence described above is exemplary, and various modifications described with reference to FIGS. 6 to 12 may be applied.
본 문서에서 사용된 용어 "모듈"은, 예를 들면, 하드웨어, 소프트웨어 또는 펌웨어(firmware) 중 하나 또는 둘 이상의 조합을 포함하는 단위(unit)를 의미할 수 있다. "모듈"은, 예를 들면, 유닛(unit), 로직(logic), 논리 블록(logical block), 부품(component), 또는 회로(circuit) 등의 용어와 바꾸어 사용(interchangeably use)될 수 있다. "모듈"은, 일체로 구성된 부품의 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수도 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들면, "모듈"은, 알려졌거나 앞으로 개발될, 어떤 동작들을 수행하는 ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays) 또는 프로그램 가능 논리 장치(programmable-logic device) 중 적어도 하나를 포함할 수 있다. As used herein, the term “module” may refer to, for example, a unit including one or a combination of two or more of hardware, software, or firmware. The term “module” may be used interchangeably with terms such as, for example, unit, logic, logical block, component, or circuit. A “module” may be a minimum unit or a part of an integrally configured component. A “module” may be a minimum unit or a part of performing one or more functions. A “module” may be implemented mechanically or electronically. For example, a “module” may be one of an application-specific integrated circuit (ASIC) chip, field-programmable gate arrays (FPGAs) or programmable-logic device that performs certain operations, known or to be developed in the future. It may include at least one.
다양한 실시 예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는, 예컨대, 프로그램 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서(예: 프로세서 210)에 의해 실행될 경우, 상기 하나 이상의 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 읽을 수 있는 저장매체는, 예를 들면, 메모리 220이 될 수 있다.At least a portion of an apparatus (eg, modules or functions thereof) or a method (eg, operations) according to various embodiments is, for example, a computer-readable storage medium in the form of a program module It can be implemented as a command stored in . When the instruction is executed by a processor (eg, the processor 210 ), the one or more processors may perform a function corresponding to the instruction. The computer-readable storage medium may be, for example, the
예를 들어, 통신 모듈, 입력 인터페이스, 상기 통신 모듈 및 입력 인터페이스와 전기적으로 연결되는 프로세서, 및 상기 프로세서와 전기적으로 연결되고 언어 모델 데이터를 포함하는 메모리를 포함하는 전자 장치에 있어서, 상기 메모리에는 실행될 때 프로세서가 상기 입력 인터페이스를 통하여 터치 또는 음성 입력을 수신하고, 상기 입력에 기초하여 텍스트를 생성하고, 상기 생성된 텍스트에 기초하여 하나 이상의 단어를 상기 언어 모델 데이터에 반영하고, 상기 통신 모듈을 통하여, 서버로부터 상기 언어 모델 데이터와 관련된 제1 버전 정보를 수신하고, 상기 제1 버전 정보의 수신 전에 상기 메모리에 이미 저장된 제2 버전 정보와 상기 제1 버전 정보를 비교하도록 하는 인스트럭션들(instructions)이 저장되어 있을 수 있다. 여기서 상기 제1 버전 정보 또는 상기 제2 버전 정보는 상기 언어 모델 데이터의 타임 스탬프(time stamp) 정보 및 업데이트와 관련된 장치에 대한 정보를 포함할 수 있다.For example, an electronic device comprising a communication module, an input interface, a processor electrically connected to the communication module and the input interface, and a memory electrically connected to the processor and including language model data, wherein the memory contains When the processor receives a touch or voice input through the input interface, generates text based on the input, reflects one or more words in the language model data based on the generated text, and through the communication module , instructions for receiving the first version information related to the language model data from the server, and comparing the first version information with the second version information already stored in the memory before receiving the first version information may be stored. Here, the first version information or the second version information may include time stamp information of the language model data and information about an update-related device.
또한, 상기 메모리에는 실행 시에 상기 프로세서가, 상기 비교 결과 상기 제1 버전과 상기 제2 버전이 다른 경우, 상기 통신 모듈을 통하여 상기 서버의 언어 모델 데이터를 수신하고, 상기 프로세서를 통해 상기 메모리에 포함된 언어 모델 데이터와 상기 획득된 언어 모델 데이터를 병합하고, 상기 통신 모듈을 통하여 상기 병합된 언어 모델 데이터를 상기 서버로 전송하도록 하고, 상기 비교 결과 상기 제1 버전과 상기 제2 버전이 같은 경우, 상기 통신 모듈을 통하여 상기 서버로 상기 메모리에 포함된 언어 모델 데이터를 상기 서버로 전송하도록 하는 인스트럭션들이 저장될 수 있다. 다양한 실시 예에서, 상기 언어 모델 데이터의 전송 또는 수신은 상기 전자 장치에 대응하는 사용자 계정에 기반하여 수행될 수 있으며, 상기 언어 모델 데이터는 상기 하나 이상의 단어 및 상기 하나 이상의 단어와 다른 단어 사이의 관계 정보를 포함할 수 있다.
In addition, in the memory, the processor receives language model data of the server through the communication module when the first version and the second version are different as a result of the comparison at the time of execution, and stores the language model data in the memory through the processor When the included language model data and the acquired language model data are merged, the merged language model data is transmitted to the server through the communication module, and the first version and the second version are the same as a result of the comparison , instructions for transmitting the language model data included in the memory to the server to the server through the communication module may be stored. In various embodiments, the transmission or reception of the language model data may be performed based on a user account corresponding to the electronic device, and the language model data may include the one or more words and a relationship between the one or more words and other words. may contain information.
컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(magnetic media)(예: 자기테이프), 광기록 매체(optical media)(예: CD-ROM, DVD, 자기-광 매체(magneto-optical media)(예: 플롭티컬 디스크(floptical disk)), 하드웨어 장치(예: ROM, RAM, 또는 플래시 메모리 등) 등을 포함할 수 있다. 또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 다양한 실시 예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지다.The computer-readable recording medium includes a hard disk, a floppy disk, a magnetic medium (eg, a magnetic tape), and an optical media (eg, a CD-ROM, a DVD, a magneto-optical medium). optical media (e.g., a floppy disk), hardware devices (e.g., ROM, RAM, or flash memory, etc.), etc. In addition, program instructions include machine code such as generated by a compiler. In addition, it may include high-level language code that can be executed by a computer using an interpreter, etc. The hardware device described above may be configured to operate as one or more software modules to perform operations of various embodiments, and vice versa. .
다양한 실시 예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 다양한 실시 예에 따른 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)한 방법으로 실행될 수 있다. 또한, 일부 동작은 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.A module or a program module according to various embodiments may include at least one or more of the above-described components, some may be omitted, or may further include additional other components. Operations performed by a module, a program module, or other components according to various embodiments may be executed sequentially, in parallel, iteratively, or in a heuristic method. Also, some operations may be executed in a different order, omitted, or other operations may be added.
그리고 본 문서에 개시된 실시 예는 개시된, 기술 내용의 설명 및 이해를 위해 제시된 것이며, 본 발명의 범위를 한정하는 것은 아니다. 따라서, 본 문서의 범위는, 본 발명의 기술적 사상에 근거한 모든 변경 또는 다양한 다른 실시 예를 포함하는 것으로 해석되어야 한다.
In addition, the embodiments disclosed in this document are provided for description and understanding of the disclosed, technical content, and do not limit the scope of the present invention. Accordingly, the scope of this document should be construed to include all modifications or various other embodiments based on the technical spirit of the present invention.
Claims (27)
입력 단어 예측 기능을 제공하기위한 제 1 언어 모델을 저당하도록 구성된 메모리,
서버와 통신하도록 구성된 통신 모듈,
문장 입력을 획득하도록 구성된 입력 인터페이스 및
프로세서;를 포함하며,
상기 프로세서는:
상기 문장 입력에 기초하여 상기 제1 언어 모델을 갱신하고,
상기 통신 모듈로 하여금 상기 문장 입력에 대한 정보를 상기 서버로 전송하도록 하여 상기 제 1 언어 모델의 업데이트된 부분을 다른 전자 장치의 제 2 언어 모델과 동기화하며, 상기 제 2 언어 모델의 유형은 상기 제 1 언어 모델의 유형과 다르고,
상기 전송된 정보는 상기 제 1 언어 모델의 유형 정보를 포함하며,
상기 전송된 정보는 상기 다른 전자 장치에 제공되고,
상기 전송된 정보는 상기 제 2 언어 모델을 업데이트하기 위해 상기 다른 전자 장치에 의해 사용되는, 전자 장치.In an electronic device,
a memory configured to mortgage a first language model for providing an input word prediction function;
a communication module configured to communicate with the server;
an input interface configured to obtain sentence input; and
processor; including;
The processor is:
updating the first language model based on the sentence input;
Synchronize the updated part of the first language model with a second language model of another electronic device by causing the communication module to transmit the information on the sentence input to the server, wherein the type of the second language model is the second language model 1 different from the type of language model,
The transmitted information includes type information of the first language model,
The transmitted information is provided to the other electronic device,
and the transmitted information is used by the other electronic device to update the second language model.
상기 프로세서는 상기 문장 입력에 포함된 적어도 하나의 단어 및 상기 적어도 하나의 단어와 연관된 관계 정보에 기초하여 상기 제1 언어 모델을 갱신하도록 설정되는, 전자 장치.The method according to claim 1,
and the processor is configured to update the first language model based on at least one word included in the sentence input and relation information associated with the at least one word.
상기 제1 언어 모델은 제1 단어, 제2 단어, 및 상기 제1 단어 또는 상기 제2 단어와 연관된 관계 정보를 포함하는, 전자 장치.The method according to claim 1,
and the first language model includes a first word, a second word, and relationship information associated with the first word or the second word.
상기 제1 단어와 연관된 관계 정보는 상기 제1 단어가 문장의 시작에 위치할 확률, 상기 제1 단어가 상기 제2 단어 다음에 위치할 확률, 상기 제1 단어가 문장의 마지막에 위치할 확률 중 적어도 하나를 포함하도록 구성되는, 전자 장치.4. The method of claim 3
The relationship information associated with the first word may include one of a probability that the first word is located at the beginning of a sentence, a probability that the first word is located after the second word, and a probability that the first word is located at the end of a sentence. An electronic device configured to include at least one.
상기 프로세서는, 상기 문장 입력이 음성 입력인 경우 상기 음성 입력에 대한 ASR(Automatic Speech Recognition)의 적용 결과에 기초하여 텍스트를 획득하고, 상기 획득된 텍스트에 기초하여 상기 제1 언어 모델을 갱신하도록 구성되는, 전자 장치.The method according to claim 1,
The processor is configured to obtain a text based on a result of applying Automatic Speech Recognition (ASR) to the speech input when the sentence input is a speech input, and to update the first language model based on the obtained text being an electronic device.
상기 통신 모듈은 상기 서버로부터 상기 서버의 언어 모델 데이터를 수신하고,
상기 프로세서는 상기 수신된 상기 서버의 상기 언어 모델 데이터와 상기 메모리에 저장된 상기 제1 언어 모델을 병합하도록 구성되는, 전자 장치.The method according to claim 1,
The communication module receives the language model data of the server from the server,
and the processor is configured to merge the received language model data of the server with the first language model stored in the memory.
상기 프로세서는 상기 통신 모듈로 하여금 상기 서버로 상기 병합된 언어 모델 데이터를 전송하도록 구성되는, 전자 장치.7. The method of claim 6,
and the processor is configured to cause the communication module to transmit the merged language model data to the server.
동기화 요청 이벤트가 발생하면 상기 통신 모듈은 상기 서버로부터 상기 서버에 저장된 상기 언어 모델 데이터의 동기화 정보를 획득하고,
상기 프로세서는 상기 전자 장치의 동기화 정보와 상기 서버로부터 획득된 동기화 정보를 비교하여 상기 언어 모델 데이터의 동기화 방식을 결정하도록 구성되는, 전자 장치.The method according to claim 1,
When a synchronization request event occurs, the communication module obtains synchronization information of the language model data stored in the server from the server,
and the processor is configured to determine a synchronization method of the language model data by comparing synchronization information of the electronic device with synchronization information obtained from the server.
상기 프로세서는 상기 전자 장치의 동기화 정보가 상기 서버로부터 획득된 동기화 정보와 일치하면, 상기 통신 모듈로 하여금 상기 메모리에 저장된 상기 제1 언어 모델을 상기 서버로 전송하도록 구성되는, 전자 장치.9. The method of claim 8,
The processor is configured to cause the communication module to transmit the first language model stored in the memory to the server when the synchronization information of the electronic device matches the synchronization information obtained from the server.
상기 프로세서는 상기 전자 장치의 동기화 정보가 상기 서버로부터 획득된 동기화 정보와 일치하지 않으면, 상기 통신 모듈로 하여금 상기 서버로부터 상기 서버의 상기 언어 모델 데이터를 수신하도록 하고, 상기 수신된 언어 모델 데이터와 상기 메모리에 저장된 상기 제1 언어 모델을 병합하도록 구성되는, 전자 장치.9. The method of claim 8,
If the synchronization information of the electronic device does not match the synchronization information obtained from the server, the processor causes the communication module to receive the language model data of the server from the server, and the received language model data and the and merging the first language model stored in a memory.
상기 프로세서는 상기 통신 모듈로 하여금 상기 병합된 언어 모델 데이터를 상기 서버로 전송하도록 구성되는, 전자 장치.11. The method of claim 10,
and the processor is configured to cause the communication module to transmit the merged language model data to the server.
상기 프로세서는 상기 결정된 동기화 방식으로 상기 제1 언어 모델의 동기화가 이루어지면 상기 전자 장치에 저장된 상기 제1 언어 모델의 동기화 정보를 갱신하도록 구성되는, 전자 장치.9. The method of claim 8,
and the processor is configured to update synchronization information of the first language model stored in the electronic device when the synchronization of the first language model is achieved in the determined synchronization method.
상기 전자 장치의 동기화 정보는 상기 제1 언어 모델의 마지막 동기화 시간 정보 및 동기화가 이루어진 장치에 대한 정보 중 적어도 하나의 정보를 포함하는, 전자 장치.9. The method of claim 8,
The synchronization information of the electronic device includes at least one of information on a last synchronization time of the first language model and information on a device in which synchronization is performed.
상기 프로세서는 사용자로부터 상기 문장 입력이 발생할 때, 상기 제1 언어 모델에 기초하여 입력이 예측되는 예측 단어를 디스플레이 하도록 설정되는, 전자 장치.The method according to claim 1,
and the processor is configured to display a predicted word whose input is predicted based on the first language model when the sentence input from the user occurs.
상기 프로세서는 상기 예측 단어 중 사용자 선택에 의해 삭제된 단어에 대한 삭제 단어 데이터베이스를 생성하고,
상기 삭제 단어 데이터베이스를 상기 문장 입력에 대한 정보와 함께 전송하도록, 설정되는 전자 장치.
15. The method of claim 14,
The processor generates a deleted word database for words deleted by user selection among the predicted words,
an electronic device configured to transmit the deleted word database together with information on the input of the sentence.
상기 다른 전자 장치는 상기 전자 장치의 사용자 계정과 동일한 계정 또는 상기 사용자 계정과 동일 사용자로 등록된 계정을 사용하는, 전자 장치.
The method according to claim 1,
and the other electronic device uses the same account as the user account of the electronic device or an account registered as the same user as the user account.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150028686A KR102325724B1 (en) | 2015-02-28 | 2015-02-28 | Synchronization of Text Data among a plurality of Devices |
US15/056,188 US10168800B2 (en) | 2015-02-28 | 2016-02-29 | Synchronization of text data among a plurality of devices |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150028686A KR102325724B1 (en) | 2015-02-28 | 2015-02-28 | Synchronization of Text Data among a plurality of Devices |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160105688A KR20160105688A (en) | 2016-09-07 |
KR102325724B1 true KR102325724B1 (en) | 2021-11-15 |
Family
ID=56798858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150028686A KR102325724B1 (en) | 2015-02-28 | 2015-02-28 | Synchronization of Text Data among a plurality of Devices |
Country Status (2)
Country | Link |
---|---|
US (1) | US10168800B2 (en) |
KR (1) | KR102325724B1 (en) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102325724B1 (en) * | 2015-02-28 | 2021-11-15 | 삼성전자주식회사 | Synchronization of Text Data among a plurality of Devices |
US9703394B2 (en) * | 2015-03-24 | 2017-07-11 | Google Inc. | Unlearning techniques for adaptive language models in text entry |
US9978367B2 (en) * | 2016-03-16 | 2018-05-22 | Google Llc | Determining dialog states for language models |
KR102417046B1 (en) * | 2016-10-21 | 2022-07-06 | 삼성전자주식회사 | Device and method for providing recommended words for character input from user |
WO2018074895A1 (en) | 2016-10-21 | 2018-04-26 | Samsung Electronics Co., Ltd. | Device and method for providing recommended words for character input |
US10529324B1 (en) * | 2016-12-27 | 2020-01-07 | Cognistic, LLC | Geographical based voice transcription |
KR102068182B1 (en) * | 2017-04-21 | 2020-01-20 | 엘지전자 주식회사 | Voice recognition apparatus and home appliance system |
US10636421B2 (en) * | 2017-12-27 | 2020-04-28 | Soundhound, Inc. | Parse prefix-detection in a human-machine interface |
US10699074B2 (en) | 2018-05-22 | 2020-06-30 | Microsoft Technology Licensing, Llc | Phrase-level abbreviated text entry and translation |
KR102592907B1 (en) * | 2018-06-22 | 2023-10-23 | 삼성전자주식회사 | Method and device for recognizing a text |
US11205045B2 (en) * | 2018-07-06 | 2021-12-21 | International Business Machines Corporation | Context-based autocompletion suggestion |
US10664658B2 (en) * | 2018-08-23 | 2020-05-26 | Microsoft Technology Licensing, Llc | Abbreviated handwritten entry translation |
US10885912B2 (en) * | 2018-11-13 | 2021-01-05 | Motorola Solutions, Inc. | Methods and systems for providing a corrected voice command |
CN109617950B (en) * | 2018-11-26 | 2021-09-03 | 杭州涂鸦信息技术有限公司 | Data updating method, device, equipment and readable storage medium |
CN111274815B (en) * | 2020-01-15 | 2024-04-12 | 北京百度网讯科技有限公司 | Method and device for mining entity focus point in text |
KR102160143B1 (en) * | 2020-07-17 | 2020-09-25 | 마보현 | Electronic device for perfoming an analysis of a topic using a deep learning model a and machine learning model and method for operating thereof |
US11929079B2 (en) | 2020-10-27 | 2024-03-12 | Samsung Electronics Co., Ltd | Electronic device for managing user model and operating method thereof |
KR20220055789A (en) * | 2020-10-27 | 2022-05-04 | 삼성전자주식회사 | Electronic device for managing user model and operating mehtod thereof |
US20220229985A1 (en) * | 2021-01-21 | 2022-07-21 | Apple Inc. | Adversarial discriminative neural language model adaptation |
US20230026140A1 (en) * | 2021-07-24 | 2023-01-26 | Vmware, Inc. | Synchronization of notification actions across multiple enrolled devices |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140108018A1 (en) * | 2012-10-17 | 2014-04-17 | Nuance Communications, Inc. | Subscription updates in multiple device language models |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001507482A (en) * | 1997-10-08 | 2001-06-05 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Vocabulary and / or language model training |
US6195641B1 (en) * | 1998-03-27 | 2001-02-27 | International Business Machines Corp. | Network universal spoken language vocabulary |
US6408272B1 (en) * | 1999-04-12 | 2002-06-18 | General Magic, Inc. | Distributed voice user interface |
US20030182113A1 (en) * | 1999-11-22 | 2003-09-25 | Xuedong Huang | Distributed speech recognition for mobile communication devices |
US7035788B1 (en) * | 2000-04-25 | 2006-04-25 | Microsoft Corporation | Language model sharing |
JP3581648B2 (en) * | 2000-11-27 | 2004-10-27 | キヤノン株式会社 | Speech recognition system, information processing device, control method thereof, and program |
FR2820872B1 (en) * | 2001-02-13 | 2003-05-16 | Thomson Multimedia Sa | VOICE RECOGNITION METHOD, MODULE, DEVICE AND SERVER |
JP2003036088A (en) * | 2001-07-23 | 2003-02-07 | Canon Inc | Dictionary managing apparatus for voice conversion |
US7962575B2 (en) * | 2003-11-03 | 2011-06-14 | Grape Technology Group, Inc. | System and method for data synchronization between devices |
US20050283724A1 (en) * | 2004-06-18 | 2005-12-22 | Research In Motion Limited | Predictive text dictionary population |
US7756708B2 (en) * | 2006-04-03 | 2010-07-13 | Google Inc. | Automatic language model update |
US8831943B2 (en) * | 2006-05-31 | 2014-09-09 | Nec Corporation | Language model learning system, language model learning method, and language model learning program |
JP5233989B2 (en) * | 2007-03-14 | 2013-07-10 | 日本電気株式会社 | Speech recognition system, speech recognition method, and speech recognition processing program |
US9424246B2 (en) | 2009-03-30 | 2016-08-23 | Touchtype Ltd. | System and method for inputting text into electronic devices |
US8341224B2 (en) * | 2010-02-24 | 2012-12-25 | Microsoft Corporation | Multi-master text synchronization using deltas |
US8239366B2 (en) * | 2010-09-08 | 2012-08-07 | Nuance Communications, Inc. | Method and apparatus for processing spoken search queries |
US10037319B2 (en) | 2010-09-29 | 2018-07-31 | Touchtype Limited | User input prediction |
GB201208373D0 (en) | 2012-05-14 | 2012-06-27 | Touchtype Ltd | Mechanism for synchronising devices,system and method |
US8819574B2 (en) | 2012-10-22 | 2014-08-26 | Google Inc. | Space prediction for text input |
KR102015534B1 (en) * | 2012-12-24 | 2019-08-28 | 삼성전자주식회사 | Message sync method, machine-readable storage medium and server |
KR101440482B1 (en) * | 2012-12-28 | 2014-09-17 | 전자부품연구원 | Apparatus converting hologram image of two-dimensional image and method thereof |
US8832589B2 (en) | 2013-01-15 | 2014-09-09 | Google Inc. | Touch keyboard using language and spatial models |
US9199155B2 (en) | 2013-03-14 | 2015-12-01 | Google Inc. | Morpheme-level predictive graphical keyboard |
US20140278349A1 (en) | 2013-03-14 | 2014-09-18 | Microsoft Corporation | Language Model Dictionaries for Text Predictions |
US9672818B2 (en) | 2013-04-18 | 2017-06-06 | Nuance Communications, Inc. | Updating population language models based on changes made by user clusters |
US20140350931A1 (en) | 2013-05-24 | 2014-11-27 | Microsoft Corporation | Language model trained using predicted queries from statistical machine translation |
US20140351760A1 (en) | 2013-05-24 | 2014-11-27 | Google Inc. | Order-independent text input |
US20150006148A1 (en) | 2013-06-27 | 2015-01-01 | Microsoft Corporation | Automatically Creating Training Data For Language Identifiers |
US9639854B2 (en) * | 2014-06-26 | 2017-05-02 | Nuance Communications, Inc. | Voice-controlled information exchange platform, such as for providing information to supplement advertising |
KR102325724B1 (en) * | 2015-02-28 | 2021-11-15 | 삼성전자주식회사 | Synchronization of Text Data among a plurality of Devices |
US20170018268A1 (en) * | 2015-07-14 | 2017-01-19 | Nuance Communications, Inc. | Systems and methods for updating a language model based on user input |
KR102413067B1 (en) * | 2015-07-28 | 2022-06-24 | 삼성전자주식회사 | Method and device for updating language model and performing Speech Recognition based on language model |
-
2015
- 2015-02-28 KR KR1020150028686A patent/KR102325724B1/en active IP Right Grant
-
2016
- 2016-02-29 US US15/056,188 patent/US10168800B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140108018A1 (en) * | 2012-10-17 | 2014-04-17 | Nuance Communications, Inc. | Subscription updates in multiple device language models |
Also Published As
Publication number | Publication date |
---|---|
KR20160105688A (en) | 2016-09-07 |
US20160252972A1 (en) | 2016-09-01 |
US10168800B2 (en) | 2019-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102325724B1 (en) | Synchronization of Text Data among a plurality of Devices | |
JP6789320B2 (en) | Providing a state machine personal assistant module that can be traced selectively | |
US10777201B2 (en) | Voice enabled bot platform | |
US10217463B2 (en) | Hybridized client-server speech recognition | |
US10242661B2 (en) | Recognizing accented speech | |
US9697829B1 (en) | Evaluating pronouns in context | |
CN108733655B (en) | Word level correction of speech input | |
CN109710727B (en) | System and method for natural language processing | |
JP2022547631A (en) | Stopword data augmentation for natural language processing | |
US10217477B2 (en) | Electronic device and speech recognition method thereof | |
KR20190082294A (en) | Modality learning in mobile devices | |
JP2019523907A (en) | Non-deterministic task start with personal assistant module | |
CN111666380A (en) | Intelligent calling method, device, equipment and medium | |
US20210056950A1 (en) | Presenting electronic communications in narrative form | |
US20210004538A1 (en) | Method for providing rich-expression natural language conversation by modifying reply, computer device and computer-readable recording medium | |
US11551676B2 (en) | Techniques for dialog processing using contextual data | |
TW201606750A (en) | Speech recognition using a foreign word grammar | |
JP2023519713A (en) | Noise Data Augmentation for Natural Language Processing | |
US20140136210A1 (en) | System and method for robust personalization of speech recognition | |
JP2018063271A (en) | Voice dialogue apparatus, voice dialogue system, and control method of voice dialogue apparatus | |
CN106896936B (en) | Vocabulary pushing method and device | |
CN117882365A (en) | Verbal menu for determining and visually displaying calls | |
US20230141853A1 (en) | Wide and deep network for language detection using hash embeddings | |
US20220414334A1 (en) | Post-model filtering of predictive text |
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 |