KR102325724B1 - Synchronization of Text Data among a plurality of Devices - Google Patents

Synchronization of Text Data among a plurality of Devices Download PDF

Info

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
Application number
KR1020150028686A
Other languages
Korean (ko)
Other versions
KR20160105688A (en
Inventor
김석원
김완석
심재석
김준희
황재웅
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020150028686A priority Critical patent/KR102325724B1/en
Priority to US15/056,188 priority patent/US10168800B2/en
Publication of KR20160105688A publication Critical patent/KR20160105688A/en
Application granted granted Critical
Publication of KR102325724B1 publication Critical patent/KR102325724B1/en

Links

Images

Classifications

    • 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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17325Synchronisation; Hardware support therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/7243User 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/72436User 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/70Details of telephonic subscriber devices methods for entering alphabetical characters, e.g. multi-tap or dictionary disambiguation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/74Details 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

다수의 기기에서 텍스트 데이터 동기화{Synchronization of Text Data among a plurality of Devices}Synchronization of Text Data among a plurality of Devices

본 발명의 다양한 실시 예들은 입력 단어에 대한 예측 기능을 제공하는 복수의 전자 장치들 사이에서 텍스트 데이터를 동기화하는 기술과 관련된다.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 server 300 through a network. The first electronic device 100 may be registered according to user identification information of a specific user. For example, user A's account user_a@account.com may be registered during initialization or setting of the first electronic device 100 .

제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 electronic device 100 may provide a prediction function for the input word by using the language model. For example, when “I read a” is input by the user in the first electronic device 100, the first electronic device 100 has a probability of coming next based on data pre-stored in the language model or an accumulated user input history. I can recommend a few relatively high words. For example, in response to an input up to “I read a” by the user, three words “book”, “paper”, and “news” may be output on the display of the first electronic device 100 . The user may select any one of the three words, or may directly input the word using an input interface such as a Soft Input Panel (SIP). In addition, the user may select any one of the recommended words (eg, news) in a different way (eg, long touch) to remove it from the recommended list. In this case, the first electronic device 100 may additionally output a word having the fourth highest probability as a recommended word, or may maintain a state in which two words are output.

문장 입력이 종료되면, 제1 전자 장치 100은 문장 입력에 기초하여 언어 모델을 갱신(update)할 수 있다. 예를 들어, 사용자에 의해 입력되거나 선택된 단어의 확률은 증가하고 사용자에 의해 입력되지 않거나 선택되지 않은 단어의 확률은 감소될 수 있다. 언어 모델은, 언어 모델의 종류에 따라 서로 다른 알고리즘으로 동작할 수 있다. 예를 들어 언어 모델의 갱신을 위해 단어와 다른 단어 사이의 관계, 단어의 전체 사용 횟수, 언어 모델에 기존에 저장된 데이터, 또는 임의의 가중치 등이 조합되어 사용될 수 있다.When the sentence input is finished, the first electronic device 100 may update the language model based on the sentence input. For example, the probability of a word entered or selected by the user may increase and the probability of a word not entered or selected by the user may decrease. The language model may operate with different algorithms according to the type of the language model. For example, to update the language model, a relationship between a word and another word, the total number of words used, data previously stored in the language model, or an arbitrary weight may be used in combination.

이하에서 예시적인 언어 모델에 단어/문장의 조합 확률을 설명한다. 예를 들어, 사용자에 의해 <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 electronic device 100 may transmit the updated language model (specifically, data constituting the language model or a database) to the server 300 through a network. The server 300 may acquire user account information (eg, user_a@account.com) of the first electronic device 100 and search for the second electronic device 200 (eg, tablet) using the same or related user account information. The server 300 may provide data for synchronizing the language model to the second electronic device 200 .

도시된 예시에서 제1 전자 장치 100은 스마트폰의 형태로, 제2 전자 장치 200은 태블릿의 형태로 도시되었으나, 이는 설명을 위한 것이며 제1 전자 장치 100과 제2 전자 장치 200을 한정하고자 하는 것이 아니다. 제1 전자 장치 100과 제2 전자 장치 200은 임의의 전자 장치일 수 있으며, 서로 같은 종류의 전자 장치일 수도 있다. (예: 노트 PC와 다른 노트 PC)In the illustrated example, the first electronic device 100 is shown in the form of a smartphone and the second electronic device 200 is shown in the form of a tablet. no. The first electronic device 100 and the second electronic device 200 may be arbitrary electronic devices, or may be the same type of electronic device. (Example: Note PC different from note PC)

이하에서는 도 2, 3을 참조하여 제1 전자 장치 100의 예시적인 구성에 대하여 설명한다. 도 2와 도 3을 참조하여 제공되는 설명은 제2 전자 장치 200에 대한 설명으로도 이해될 수 있다. 또한 도 4를 참조하여 서버 300의 구성에 대한 설명이 제공된다.
Hereinafter, an exemplary configuration of the first electronic device 100 will be described with reference to FIGS. 2 and 3 . The description provided with reference to FIGS. 2 and 3 may also be understood as a description of the second electronic device 200 . In addition, a description of the configuration of the server 300 is provided with reference to FIG. 4 .

도 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 electronic device 100 may obtain a text input or a sentence input from the user. For example, the first electronic device 100 may receive a text input through the keyboard 102 . The text input received through the keyboard 102 may be provided to the input processing unit 110 as a sentence input. Here, the keyboard 102 may correspond to a physical keyboard composed of hardware or a soft input panel (SIP) in the form of a software module.

일 실시 예에서, 제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 electronic device 100 may obtain a sentence input through a user's voice input. For example, the first electronic device 100 may obtain a user's speech through the microphone 104 and convert the corresponding speech into a digital signal. For example, when the user executes an application related to voice recognition or voice recognition is always activated, the user's speech may be acquired through the microphone 104 . The microphone 104 may include an analog-digital converter (ADC) that converts an analog signal into a digital signal. However, in some embodiments, the ADC, a digital-analog converter (DAC), and various signal processing or pre-processing circuits may be included in a separate control module (eg, the processor 210 of FIG. 3 ).

일 실시 예에서, 마이크 104에 의해 획득된 음성 입력, 또는 음성 입력에 기초하여 생성된 오디오 신호(또는 음성 신호)는 음성 인식부 106으로 제공될 수 있다. 음성 인식부 106은, 예를 들어 ASR(Auto Speech Recognition) 기능을 수행하기 위한 엔진 또는 모듈을 탑재하고 있을 수 있다. 여기서 음성 인식부 106으로 제공되는 오디오 신호는 음성 인식을 위해 전처리된 신호일 수 있다. 예를 들어, 상기 오디오 신호는 노이즈 필터링(noise filtering) 또는 인간의 음성에 적합한 이퀄라이저(equalizer)가 적용된 신호일 수 있다.In an embodiment, a voice input obtained by the microphone 104 or an audio signal (or voice signal) generated based on the voice input may be provided to the voice recognition unit 106 . The voice recognition unit 106 may be equipped with an engine or a module for performing, for example, an Auto Speech Recognition (ASR) function. Here, the audio signal provided to the voice recognition unit 106 may be a signal pre-processed for voice recognition. For example, the audio signal may be a signal to which noise filtering or an equalizer suitable for human voice is applied.

음성 인식부 106은 마이크 104로부터 제공되는 오디오 신호에 대하여 음성 인식을 수행할 수 있다. 음성 인식부 106은 음성 입력(오디오 신호)에 대하여 고립 단어 인식(isolated word recognition), 연속어 음성 인식(connected word recognition), 대용량 어휘 인식(large vocabulary recognition) 등을 수행할 수 있다. 음성 인식부 106에 의해 수행되는 음성 인식은 화자 독립(speaker-independent)적으로 구현되거나, 또는 화자 종속(speaker-dependent)적으로 구현될 수 있다. 음성 인식부 106은 반드시 하나의 음성 인식 엔진일 필요는 없으며, 둘 이상의 음성 인식 엔진으로 구성될 수 있다.The voice recognition unit 106 may perform voice recognition on an audio signal provided from the microphone 104 . The voice recognition unit 106 may perform isolated word recognition, connected word recognition, large vocabulary recognition, and the like with respect to a voice input (audio signal). The voice recognition performed by the voice recognition unit 106 may be implemented speaker-independently or speaker-dependently. The voice recognition unit 106 does not necessarily have to be one voice recognition engine, and may be composed of two or more voice recognition engines.

음성 인식부 106은 음성 입력을 텍스트로 변환할 수 있다. 음성 인식부 106은 사용자의 음성 입력을 텍스트 입력으로 변환하고, 변환된 텍스트 입력을 문장 입력으로서 입력 처리부 110으로 제공할 수 있다.The voice recognition unit 106 may convert a voice input into text. The voice recognition unit 106 may convert a user's voice input into a text input, and provide the converted text input as a sentence input to the input processing unit 110 .

다른 실시 예에서, 제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 electronic device 100 may transmit a voice input obtained through the microphone 104 to the server 300 through the communication unit 108 . The server 300 may perform voice recognition (eg, ASR) on the voice input, and provide the result to the first electronic device 100 again. When the server 300 performs voice recognition, the same voice recognition as that of the first electronic device 100 may be performed, or voice recognition may be performed in a different way. For example, the first electronic device 100 performs ASR, but the server 300 generates a speech recognition result by ASR, Natural Language Understanding (NLU), and Dialog Management (DM) or a combination thereof. , the result may be provided to the first electronic device 100 . However, in some embodiments, the voice recognition that can be performed by the aforementioned server 300 may be performed by the voice recognition unit 106 or the processor 210 of the first electronic device 100 .

입력 처리부 110은 음성 또는 텍스트로 입력된 문장 입력을 수집하고 수집된 정보와 관련된 단어 정보를 획득할 수 있다. 입력 처리부 110은 특정 입력, 예를 들어 리턴 키(버튼)이나 문장부호 “.”이 입력되는 것을 기준으로 하여 단어 정보를 획득할 수 있다. 이 경우, 사용자 입력이 완전한 문장을 구성하지 못했을 경우(예: “I read a book and the book’s title is” 등)나 비문인 경우에도 입력 처리부 110은 해당 문장을 문장 입력으로서 획득할 수 있다. 또한 문장 입력이 음성을 통해 제공되는 경우, 음성 입력 사이에 발생하는 간격이나 음성 인식부 106에 의해 처리되는 음성 입력의 단위를 기준으로 하여 단어 정보를 획득할 수 있다. 예를 들어, 입력 처리부 110은 “I am reading a book”과 같은 단어 정보를 획득할 수 있다.The input processing unit 110 may collect a sentence input input by voice or text and acquire word information related to the collected information. The input processing unit 110 may acquire word information based on a specific input, for example, a return key (button) or a punctuation mark “.” is input. In this case, even when the user input does not form a complete sentence (eg, “I read a book and the book’s title is”, etc.) or even if it is an inscription, the input processing unit 110 may obtain the corresponding sentence as a sentence input. Also, when a sentence input is provided through voice, word information may be acquired based on an interval occurring between voice inputs or a unit of voice input processed by the voice recognition unit 106 . For example, the input processing unit 110 may acquire word information such as “I am reading a book”.

언어 모델 처리부 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 model processing unit 120 may analyze the word or sentence input provided by the input processing unit 110 by the language model engine (algorithm) and update the language model data 124 . For example, when a sentence input such as “I am reading a book” is provided, the language model processing unit 120 receives the sentence input [<start>, I], [I, am], [am, reading], [reading , a], [a, book], [book, <end>] can be related according to the context of consecutive words. The language model processing unit 120 may calculate relation information such as a probability that a specific word appears after another word based on the language model data 124 . For example, [I, am, 0.2] means that the probability that “am” appears after “I” is 0.2 (20%). This probability value may be calculated based on pre-stored language model data and relationship information based on sentence input. In one example, [am, reading, 1] means that the probability of “reading” appearing after “am” is 1 (100%), and in this case, the relation information is the case where “am” is followed by “reading”. It could mean the first time. A probability value of 1 may be assigned to the first occurrence as described above, but a default value defined by the language model engine 122 may be assigned. The language model processing unit 120 may update the language model data 124 by using word information obtained through sentence input as described above and relation information obtained based on the word information and the language model data 124 .

전술한 예시는 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 model processing unit 120 may classify the sentence input as [am reading, a] and [reading a, book] to determine the relationship information. For example, in the 2-gram method, since many words can appear after “a”, the probability of “book” can be set relatively low, and as a result, it is located after “I am reading a”. There is also the possibility that inappropriate words will be recommended. However, in the 3-gram method, words that can appear after “reading a”, especially nouns, have to be relatively limited, and as a result, the probability that “book” appears can be set to be relatively high. An exemplary concept of the language model will be described later with reference to FIG. 5 .

언어 모델 처리부 120에서 언어 모델 데이터 124가 갱신되면, 언어 모델 처리부 120은 언어 모델 데이터 124가 갱신되었음을 나타내는 신호를 동기화 제어부 130으로 제공할 수 있다. 이 경우 언어 모델 처리부 120은 동기화 정보를 생성하여 동기화 제어부로 제공할 수 있다. 동기화 제어부 130은 상기 동기화 정보와 서버 300으로부터 획득되는 동기화 정보를 비교하여 동기화 방법을 결정할 수 있다. 이와 관련하여 도 9를 참조하여 후술한다.
When the language model data 124 is updated by the language model processing unit 120, the language model processing unit 120 may provide a signal indicating that the language model data 124 is updated to the synchronization control unit 130 . In this case, the language model processing unit 120 may generate synchronization information and provide it to the synchronization control unit. The synchronization controller 130 may determine a synchronization method by comparing the synchronization information with synchronization information obtained from the server 300 . In this regard, it will be described later with reference to FIG. 9 .

도 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 electronic device 100 described with reference to FIG. 2 is divided based on a function. In other words, some components shown in FIG. 2 may be implemented in software. For example, the keyboard 102 may be a virtual keyboard that is output and implemented on the display of the first electronic device 100 instead of an actual physical keyboard.

도 3은 제1 전자 장치 100은 프로세서 210, 메모리 220, 통신 모듈 230, 입력 인터페이스 240, 디스플레이 250, 및 스피커 260을 포함할 수 있다. 도 2를 참조하여 전술한 각 구성요소의 기능을 수행하기 위한 명령어들이 메모리 220에 저장되어 있을 수 있고, 프로세서 210에 의해 상기 명령어들이 실행될 수 있다. 예를 들어, 프로세서 210은 입력 인터페이스 240을 통해 획득되는 문장 입력에 기초하여 메모리 220에 저장된 언어 모델 데이터 124를 갱신하고, 통신 모듈 230으로 하여금 언어 모델 데이터 124를 서버 300으로 전송하도록 할 수 있다.3 , the first electronic device 100 may include a processor 210 , a memory 220 , a communication module 230 , an input interface 240 , a display 250 , and a speaker 260 . Instructions for performing the function of each component described above with reference to FIG. 2 may be stored in the memory 220 and the instructions may be executed by the processor 210 . For example, the processor 210 may update the language model data 124 stored in the memory 220 based on a sentence input obtained through the input interface 240, and cause the communication module 230 to transmit the language model data 124 to the server 300 .

프로세서 210, 메모리 220, 통신 모듈 230, 입력 인터페이스 240, 디스플레이 250, 및 스피커 260은 버스(bus)를 통해 제어 메시지 또는 데이터를 주고받을 수 있다. 도 3은 본 발명의 여러 실시 예들을 설명하기 위한 구성요소를 도시한 것이며, 도시되지 않은 임의의 구성요소들이 자유롭게 추가될 수 있다. 예를 들어, 각종 센서나 가입자 식별 모듈과 같은 구성이 추가될 수 있다.The processor 210, the memory 220, the communication module 230, the input interface 240, the display 250, and the speaker 260 may exchange control messages or data through a bus. 3 shows components for explaining various embodiments of the present invention, and arbitrary components not shown may be freely added. For example, a configuration such as various sensors or a subscriber identification module may be added.

프로세서 210은 제1 전자 장치 100을 제어하고 본 발명의 다양한 실시 예에 따른 동작을 수행하기 위한 명령어들을 실행할 수 있다. 예를 들어, 프로세서 210은 음성 인식 기능을 수행하거나 언어 모델 데이터 124를 갱신하는 동작을 수행할 수 있다.The processor 210 may execute instructions for controlling the first electronic device 100 and performing operations according to various embodiments of the present disclosure. For example, the processor 210 may perform a voice recognition function or update the language model data 124 .

메모리 220에는 언어 모델 데이터 124가 저장될 수 있다. 언어 모델 데이터 124는 복수의 단어 및 복수의 단어의 조합에 의해 발생할 수 있는 단어 사이의 관계 정보가 포함되어 있을 수 있다. 예를 들어, 언어 모델 데이터 124에 제1 단어, 제2 단어, 상기 제1 단어 또는 상기 제2 단어와 연관된 관계 정보가 포함될 수 있다. 여기서 제1 단어와 연관된 관계 정보는, 상기 제1 단어가 문장의 시작에 위치할 확률, 상기 제1 단어가 제2 단어 다음에 위치할 확률, 및/또는 상기 제1 단어가 문장의 마지막에 위치할 확률을 포함할 수 있다. 만약 언어 모델 엔진 122이 N=3 이상의 N-gram을 사용하는 경우, “상기 제1 단어가 제2 단어 다음에 위치할 확률”에서 상기 제2 단어는 복수의 단어(예: 2개의 단어)를 포함할 수 있다.The memory 220 may store language model data 124 . The language model data 124 may include a plurality of words and relationship information between words that may be generated by a combination of the plurality of words. For example, the language model data 124 may include a first word, a second word, and relationship information associated with the first word or the second word. Herein, the relation information associated with the first word includes a probability that the first word is located at the beginning of a sentence, a probability that the first word is located after a second word, and/or a probability that the first word is located at the end of a sentence. may include the probability of If the language model engine 122 uses N-grams of N=3 or more, the second word is a plurality of words (eg, two words) in “the probability that the first word is located after the second word” may include

다양한 실시 예에서, 상기 관계 정보는 다양한 정보를 추가적으로 포함할 수 있다. 예를 들어, 특정 단어의 입력 횟수, 입력 시간(최근, 예전), 또는 특정 단어가 입력된 장치(예:제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 electronic device 100, the second electronic device 200, etc.), or the aforementioned number of input times and input time , a weight applied in a predefined manner to the input device, etc. may be applied. For example, when “I read a book” is input in the first electronic device 100 and “I read a note” is input in the second electronic device 200, “I read” is input in the first electronic device 100 In the case of “a book”, when “I read” is inputted from the second electronic device 200, “a note” may be recommended.

통신 모듈 230은 서버 300과 통신할 수 있다. 통신 모듈 230은 기능적으로 도 2의 통신부 108에 대응될 수 있다.The communication module 230 may communicate with the server 300 . The communication module 230 may functionally correspond to the communication unit 108 of FIG. 2 .

입력 인터페이스 240은 사용자의 문장 입력을 획득하기 위한 인터페이스에 해당할 수 있다. 예를 들어, 입력 인터페이스 240은 전자 장치 100에서 텍스트나 음성과 같은 사용자 입력을 수신하기 위한 다양한 입력 모듈을 포함할 수 있다. 예를 들어, 입력 인터페이스 240은 물리 키보드 242, 터치 입력을 수신하기 위한 터치 패널 244, 음성 입력을 수신하기 위한 마이크 246 중 하나 이상을 포함할 수 있다. 스마트폰이나 태블릿과 같이 터치 입력을 인식하는 전자 장치의 경우, 디스플레이 250에 상기 터치 패널 244가 일체형으로 결합되어 있을 수 있다. 예를 들어, 디스플레이 250은 디스플레이 패널, 터치 패널 244, 커버 글라스 등이 압착되어 구현될 수 있다. 그러나 일부 실시 예에서, 디스플레이 250은 터치 기능을 지원하지 않고 디스플레이 패널과 커버 글라스를 포함하여 구현될 수 있다. 다양한 실시 예에서, 프로세서 210은 언어 모델에 기초하여 예측 단어를 디스플레이 250에 출력하고, 디스플레이 상에 발생하는 터치 입력에 기초하여 문장 입력을 획득할 수 있다. 한편, 전자 장치 100은 디스플레이 250과 함께, 일종의 출력 모듈로서 음성(또는 소리) 출력을 위한 스피커 260을 포함할 수 있다.The input interface 240 may correspond to an interface for obtaining a user's sentence input. For example, the input interface 240 may include various input modules for receiving a user input such as text or voice from the electronic device 100 . For example, the input interface 240 may include one or more of a physical keyboard 242, a touch panel 244 for receiving a touch input, and a microphone 246 for receiving a voice input. In the case of an electronic device that recognizes a touch input, such as a smart phone or a tablet, the touch panel 244 may be integrally coupled to the display 250 . For example, the display 250 may be implemented by pressing a display panel, a touch panel 244, a cover glass, or the like. However, in some embodiments, the display 250 may not support a touch function and may be implemented including a display panel and a cover glass. In various embodiments, the processor 210 may output a predicted word to the display 250 based on the language model, and may obtain a sentence input based on a touch input generated on the display. Meanwhile, the electronic device 100 may include a speaker 260 for outputting voice (or sound) as a kind of output module along with the display 250 .

이하에서는 도 4를 참조하여 서버 300의 구성에 대하여 설명한다. 도 4는 서버 300의 기능을 중심으로 구성요소를 구분하였으며, 도 4의 서버의 기능과 관련된 설명 역시 서버 300의 제어 모듈이나 통신 모듈 등에 의해 적절하게 수행될 수 있다.
Hereinafter, the configuration of the server 300 will be described with reference to FIG. 4 . In FIG. 4, the components are divided based on the function of the server 300, and the description related to the function of the server in FIG. 4 may also be appropriately performed by the control module or communication module of the server 300.

도 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 server 300 may include an account information processing unit 310 , a synchronization control unit 320 , a language model processing unit 330 , and a communication unit 340 .

통신부 340은 제1 전자 장치 100 또는 제2 전자 장치 200과 통신할 수 있다. 예를 들어, 통신부 340은 제1 전자 장치 100으로부터 언어 모델 데이터 124를 수신하거나, 서버 300의 언어 모델 데이터 334 또는 336을 제1 전자 장치 100으로 송신할 수 있다. 또한 통신부 340은 제1 전자 장치 100 또는 제2 전자 장치 200으로 동기화 알림 메시지(예: 푸시(push) 메시지))를 전송할 수 있다.The communication unit 340 may communicate with the first electronic device 100 or the second electronic device 200 . For example, the communication unit 340 may receive the language model data 124 from the first electronic device 100 or transmit the language model data 334 or 336 of the server 300 to the first electronic device 100 . Also, the communication unit 340 may transmit a synchronization notification message (eg, a push message) to the first electronic device 100 or the second electronic device 200 .

통신부 340은 제1 전자 장치 100에 해당하는 사용자 계정을 식별하기 위해 계정 정보 처리부 310으로 제1 전자 장치 100에 대한 정보를 제공할 수 있다. 이 정보는 상기 동기화 요청 또는 상기 언어 모델 데이터 124의 송신과 함께 제공될 수 있다. 일 실시 예에서, 통신부 240은 수신된 정보를 동기화 제어부 320으로 전달하고, 동기화 제어부 320에서 다시 계정 정보 처리부 310으로 제1 전자 장치 100의 사용자 계정에 대한 조회를 요청할 수 있다.The communication unit 340 may provide information on the first electronic device 100 to the account information processing unit 310 to identify a user account corresponding to the first electronic device 100 . This information may be provided with the synchronization request or transmission of the language model data 124 . In an embodiment, the communication unit 240 may transfer the received information to the synchronization control unit 320, and the synchronization control unit 320 may request the account information processing unit 310 to inquire about the user account of the first electronic device 100 again.

계정 정보 처리부 310은 제공된 제1 전자 장치 100에 대한 정보에 기초하여 사용자 계정(예: user_a@account.com)을 식별하여 동기화 제어부 320으로 제공할 수 있다. 동기화 제어부 320은 식별된 사용자 계정 정보를 언어 모델 처리부 330으로 제공하여 대응되는 언어 모델 데이터 및 동기화 정보를 확인할 수 있다.The account information processing unit 310 may identify a user account (eg, user_a@account.com) based on the provided information on the first electronic device 100 and provide it to the synchronization control unit 320 . The synchronization control unit 320 may provide the identified user account information to the language model processing unit 330 to check corresponding language model data and synchronization information.

언어 모델 처리부 330은 언어 모델 엔진 332 및 언어 모델 데이터 334, 또는 336을 포함할 수 있다. 언어 모델 처리부 330은 등록된 사용자 계정에 기초하여 서로 다른 언어 모델 데이터를 포함할 수 있다. 또한 도시된 언어 모델 엔진 332 외에도 언어 모델 처리부 330은 복수의 언어 모델 엔진을 포함할 수 있다. 예를 들어, 계정 정보 처리부 310에서 사용자 계정을 식별한 결과, 해당 사용자 계정이 제1 타입의 언어 모델을 사용하는 것으로 판단되는 경우, 해당 언어 모델 엔진 및 해당 계정의 언어 모델 데이터가 확인될 수 있다.The language model processing unit 330 may include a language model engine 332 and language model data 334 or 336 . The language model processing unit 330 may include different language model data based on the registered user account. In addition to the illustrated language model engine 332, the language model processing unit 330 may include a plurality of language model engines. For example, when the account information processing unit 310 identifies the user account, when it is determined that the corresponding user account uses the first type of language model, the corresponding language model engine and the language model data of the corresponding account may be checked. .

일부 실시 예에서, 언어 모델 엔진 332는 서버 300의 언어 모델 처리부 330에서 생략될 수 있다. 예를 들어, 서버 300에서의 언어 모델 데이터의 업데이트가 지원되지 않고 언어 모델 데이터를 교체하는 동작만 수행하는 경우, 언어 모델 엔진 332는 생략될 수 있다. 그러나 다른 실시 예에서, 서버 300에서 제1 전자 장치 100으로부터 문장 입력 정보 또는 언어 모델 데이터 124를 수신하여 서버 300의 언어 모델 데이터를 갱신하거나 병합하기 위해 서버 300은 특정 언어 모델 엔진 332를 포함할 수 있다.In some embodiments, the language model engine 332 may be omitted from the language model processing unit 330 of the server 300 . For example, when the update of the language model data in the server 300 is not supported and only the operation of replacing the language model data is performed, the language model engine 332 may be omitted. However, in another embodiment, the server 300 may include a specific language model engine 332 in order to update or merge the language model data of the server 300 by receiving the sentence input information or the language model data 124 from the first electronic device 100 in the server 300. have.

또한, 일부 실시 예에서, 언어 모델 처리부 330는 하나의 사용자 계정에 대응하는 복수의 언어 모델 데이터를 관리할 수 있다. 예를 들어, 제1 전자 장치 100에서 사용되는 어플리케이션(예: 메신저 어플리케이션, 이메일 어플리케이션, 웹 어플리케이션 등) 또는 텍스트 필드(예: 인터넷 주소 입력 필드, 이메일 주소 입력 필드, 이메일 본문 입력 필드, 메시지 텍스트 입력 필드 등)에 따라 서로 다른 언어 모델 데이터가 사용될 수 있다. 이와 관련하여 도 14를 참조하여 후술한다.
Also, in some embodiments, the language model processing unit 330 may manage a plurality of language model data corresponding to one user account. For example, an application (eg, a messenger application, an email application, a web application, etc.) used in the first electronic device 100 or a text field (eg, an Internet address input field, an email address input field, an email body input field, a message text input) field, etc.), different language model data may be used. In this regard, it will be described later with reference to FIG. 14 .

도 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 language model data 502 is updated by a sentence input 504 is conceptually shown. According to the language model data 502, as for the word for which input is predicted after “I read a”, “book” may have a probability of 0.5, and “paper” may have a probability of 0.2. In this state, when a sentence input 504 such as “He reads a memo” occurs, the processor 210 acquires word information from the sentence input 504, and uses the language model data 502 based on the acquired word information and the existing language model data 502 Can be updated. For example, relation information of words that may occur after “a” may be redefined. For example, the relation information of each word may be decreased to 0.45 for “book”, 0.18 for “paper”, and increased (created) for “memo” to 0.06.

도 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 language model data 502 is 0.5, “paper” The probability of ” may correspond to 0.2. Now, when the sentence input 504 is obtained, the processor 210 may define relationship information for [reads a, memo]. In this case, the processor 210 performs a morphological analysis algorithm (eg, table parsing), a part-of-speech attachment algorithm (eg, a Hidden Markov Model (HMM), a phrase unit analysis algorithm, or a syntax analysis with respect to the sentence input 504 ) Algorithms can be applied, etc. The processor 210 analyzes [reads a] in the form of [read a] or [read [article]], and stores “memo” in the node of the same layer as “book” and “paper”. By operating in this way, it is possible to obtain appropriate relational information for various grammatical variations such as [read a] and [reads a], or further [read a], [read the], [reads any]. have.

도 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 display 250 while “to the” is input in the input field.

위의 예시에서 사용자가 “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 operation 602 , the first electronic device 100 may obtain a sentence input. In operation 604 , the first electronic device 100 may update the language model data stored in the first electronic device 100 . For example, the processor 210 may update the language model data based on at least one word included in the sentence input and relation information associated with the at least one word. Here, the relationship information may be generated based on word information obtained from the sentence input and language model data previously stored in the first electronic device 100 . According to an embodiment, when the language model data does not exist in the first electronic device 100, in operation 604, the first electronic device 100 may generate the language model data.

동작 606에서, 제1 전자 장치 100은 서버 300으로 갱신된 언어 모델 데이터를 전송할 수 있다. 동작 608에서, 서버 300은 동작 606에서 수신된 언어 모델 데이터로 기존의 언어 모델을 교체할 수 있다. 다시 말해서 서버 300에 저장된 언어 모델 데이터(예: 언어 모델 데이터 334)가 제1 전자 장치 100으로부터 수신된 언어 모델 데이터(예: 언어 모델 데이터 124)로 대체될 수 있다.In operation 606 , the first electronic device 100 may transmit updated language model data to the server 300 . In operation 608 , the server 300 may replace the existing language model with the language model data received in operation 606 . In other words, language model data (eg, language model data 334 ) stored in the server 300 may be replaced with language model data (eg, language model data 124 ) received from the first electronic device 100 .

동작 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 operation 610, the server 300 may search for the second electronic device 200 related to the user account of the first electronic device 100 . For example, the server 300 uses the same account as the user account (user_a@account.com) of the first electronic device 100, is registered as the same user as the user account, or has a user account having a predetermined relation (eg, family). (eg, user_a@samsung.com, user_a@gmail.com, user_a@facebook.com, etc.) can be searched for.

동작 612에서, 서버 300은 제2 전자 장치 200으로 언어 모델 데이터를 전송할 수 있다. 동작 612에서 전송되는 언어 모델 데이터는 동작 606에서 서버 300으로 전송된 언어 모델 데이터에 대응될 수 있다. 동작 614에서, 제2 전자 장치 200은 언어 모델 데이터를 수신하면, 제2 전자 장치에 저장되어 있던 언어 모델 데이터와 수신된 언어 모델 데이터를 병합할 수 있다.In operation 612 , the server 300 may transmit language model data to the second electronic device 200 . The language model data transmitted in operation 612 may correspond to the language model data transmitted to the server 300 in operation 606 . In operation 614, upon receiving the language model data, the second electronic device 200 may merge the language model data stored in the second electronic device with the received language model data.

동작 612가 수행되기 전에, 서버 300은 제2 전자 장치 200으로 최신의 언어 모델 데이터가 업데이트 되었음을 나타내는 동기화 요청 메시지를 전송할 수 있다. 서버 300은 제2 전자 장치 200으로부터 동기화 요청 메시지에 대한 응답이 수신되면, 그에 기초하여 언어 모델 데이터를 전송할 수 있다.Before operation 612 is performed, the server 300 may transmit a synchronization request message indicating that the latest language model data has been updated to the second electronic device 200 . When a response to the synchronization request message is received from the second electronic device 200, the server 300 may transmit language model data based thereon.

제2 전자 장치 200은 언어 모델 데이터를 병합한 후에는 다시 서버 300으로 병합된 언어 모델 데이터를 전송하고, 서버 300은 동작 608에서 교체된 언어 모델 데이터를 다시 상기 병합된 언어 모델 데이터로 대체하고, 이 병합된 언어 모델 데이터를 제1 전자 장치 100으로 전송함으로써, 최종적으로 제1 전자 장치 100, 서버 300, 제2 전자 장치 200의 언어 모델 데이터가 동기화될 수 있다.After merging the language model data, the second electronic device 200 transmits the merged language model data back to the server 300, and the server 300 replaces the language model data replaced in operation 608 with the merged language model data again, By transmitting the merged language model data to the first electronic device 100, the language model data of the first electronic device 100, the server 300, and the second electronic device 200 may be finally synchronized.

도 6은 제1 전자 장치 100과 제2 전자 장치 200이 서버 300을 통해 언어 모델을 동기화하는 프로세스를 간략하게 설명한다. 서로 다른 장치 사이에서 동기화를 수행하기 위해 동기화 정보를 확인하고, 동기화 알림 메시지를 전송하는 동작과 같은 세부적인 프로세스들은 도 7 내지 12를 참조하여 설명된다.
FIG. 6 briefly describes a process in which the first electronic device 100 and the second electronic device 200 synchronize a language model through the server 300 . Detailed processes such as checking synchronization information and transmitting a synchronization notification message to perform synchronization between different devices will be described with reference to FIGS. 7 to 12 .

도 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 electronic device 100 and providing the updated language model data to the server 300 . For example, the process of FIG. 7 may correspond to operations 602 to 606 of FIG. 6 .

제1 전자 장치 100은 동작 702에서 물리 키보드나 소프트 키보드(예: SIP) 등을 통해 텍스트 입력을 획득할 수 있다. 또한, 제1 전자 장치 100은, 동작 704에서 사용자의 음성 입력을 획득하고, 획득된 음성 입력에 대한 음성 인식(예: ASR)의 적용하고, 동작 708에서 음성 인식 결과에 기초하여 결과에 기초하여 텍스트를 획득할 수 있다. 이와 같이 동작 702에서 입력된 텍스트 또는 동작 704에서 입력된 음성이 문장 입력으로서 획득될 수 있다.The first electronic device 100 may obtain a text input through a physical keyboard or a soft keyboard (eg, SIP) in operation 702 . In addition, the first electronic device 100 obtains a user's voice input in operation 704, applies voice recognition (eg, ASR) to the obtained voice input, and based on the voice recognition result in operation 708 based on the result text can be obtained. In this way, the text input in operation 702 or the voice input in operation 704 may be acquired as a sentence input.

동작 710에서 제1 전자 장치 100은 문장 입력 정보를 저장할 수 있다. 저장된 문장 입력 정보는 제1 전자 장치 100과 이종의 언어 모델을 사용하는 다른 전자 장치 사이의 언어 모델 업데이트를 위해 서버 300으로 제공될 수 있다. 이와 관련된 실시 예는 도 11을 참조하여 후술한다.In operation 710, the first electronic device 100 may store sentence input information. The stored sentence input information may be provided to the server 300 to update a language model between the first electronic device 100 and another electronic device using a different language model. An embodiment related thereto will be described later with reference to FIG. 11 .

동작 712에서 제1 전자 장치 100은 문장 입력으로부터 단어 정보를 추출할 수 있다. 제1 전자 장치 100은 문장에 포함된 적어도 하나의 단어 및 단어들의 배치 순서 등을 추출할 수 있다. In operation 712, the first electronic device 100 may extract word information from the sentence input. The first electronic device 100 may extract at least one word included in a sentence and an arrangement order of the words.

동작 714에서, 제1 전자 장치 100은 언어 모델 데이터와 단어 정보에 기초하여 관계 정보를 생성할 수 있다. 동작 716에서, 제1 전자 장치 100은 동작 712에서 획득된 단어 정보와 동작 714에서 생성된 관계 정보에 기초하여 언어 모델 데이터를 갱신할 수 있다. 동작 718에서 제1 전자 장치 100은 갱신된 언어 모델 데이터를 서버 300으로 전송할 수 있다. 동작 718에서, 제1 전자 장치는 상기 갱신된 언어 모델 데이터 외에 추가적으로, 제1 전자 장치 100(또는 그 사용자)을 식별하기 위한 식별 정보, 상기 문장 입력 정보, 언어 모델 데이터에 해당하는 동기화 정보 등을 서버 300으로 전송할 수 있다.
In operation 714, the first electronic device 100 may generate relationship information based on the language model data and word information. In operation 716, the first electronic device 100 may update the language model data based on the word information obtained in operation 712 and the relationship information generated in operation 714 . In operation 718 , the first electronic device 100 may transmit the updated language model data to the server 300 . In operation 718, in addition to the updated language model data, the first electronic device additionally receives identification information for identifying the first electronic device 100 (or its user), the sentence input information, and synchronization information corresponding to the language model data. It can be sent to server 300.

도 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 server 300 in the second electronic device 200 . For example, the process of FIG. 8 may correspond to operations 612 to 614 or subsequent processes of FIG. 6 .

서버 300은 제1 전자 장치 100으로부터 언어 모델 데이터를 수신하여 자신의 언어 모델 데이터를 교체하고 나면, 제2 전자 장치 200으로 새로운 언어 모델 데이터의 업데이트가 있음을 나타내고 동기화를 유도하는 동기화 알림 메시지를 전송할 수 있다. 동작 802에서 제2 전자 장치 200은 이 동기화 알림 메시지를 수신할 수 있다. After the server 300 receives the language model data from the first electronic device 100 and replaces its own language model data, the server 300 transmits a synchronization notification message indicating that there is an update of the new language model data to the second electronic device 200 and inducing synchronization. can In operation 802, the second electronic device 200 may receive this synchronization notification message.

동작 804에서, 제2 전자 장치 200은 동기화 응답 이벤트를 발생시킬 수 있다. 예를 들어, 동기화 알림 메시지가 제2 전자 장치 200의 디스플레이에 푸시 알림의 형태로 제공되고, 사용자에 의해 동기화를 수행하거나 승인하도록 하는 입력이 발생하면, 제2 전자 장치 200은 서버 300으로 동기화를 시작하라는 응답을 전송할 수 있다. 일 실시 예에서, 제2 전자 장치 200은 알림 메시지가 수신되면 자동으로 동기화가 진행되도록 설정되어 있거나, 혹은 알림 메시지가 수신되고 제2 전자 장치 200이 Wi-Fi에 연결되면 동기화가 진행되도록 설정되어 있을 수 있다. 또는, 제2 전자 장치 200은 지정된 시간(예: 자정)이 되면 동기화를 시작하도록 설정되어 있을 수 있다.In operation 804, the second electronic device 200 may generate a synchronization response event. For example, when a synchronization notification message is provided in the form of a push notification on the display of the second electronic device 200, and an input to perform or approve synchronization occurs by the user, the second electronic device 200 performs synchronization with the server 300 You can send a response to start. In an embodiment, the second electronic device 200 is set to automatically perform synchronization when a notification message is received, or is set to perform synchronization when a notification message is received and the second electronic device 200 is connected to Wi-Fi. there may be Alternatively, the second electronic device 200 may be set to start synchronization at a specified time (eg, midnight).

동작 806에서 제2 전자 장치 200은 서버 300으로부터 최근에 교체된 언어 모델 데이터를 수신할 수 있다. 동작 808에서 제2 전자 장치 200은 제2 전자 장치에 저장된 언어 모델 데이터와 수신된 언어 모델 데이터를 서로 병합할 수 있다. 이 과정에서, 제2 전자 장치 200은 두 언어 모델 데이터에서 중복되는 단어 데이터에 대해서는 전체 언어 모델 데이터의 크기 중에서 중복되는 단어 데이터의 확률(관계 정보) 값을 다시 계산할 수 있다.In operation 806 , the second electronic device 200 may receive the recently replaced language model data from the server 300 . In operation 808, the second electronic device 200 may merge the language model data stored in the second electronic device and the received language model data. In this process, the second electronic device 200 may recalculate a probability (relationship information) value of the overlapping word data among the sizes of the entire language model data with respect to the word data overlapping in the two language model data.

동작 806 이전에는 제1 전자 장치 100과 서버 300에 저장된 언어 모델 데이터(예: 버전 1.0)가 최신 언어 모델 데이터이지만, 동작 808이 수행된 이후에는, 병합된 언어 모델 데이터(예: 버전 1.2)가 최신 언어 모델 데이터가 될 수 있다. 그에 따라, 동작 810에서 제2 전자 장치 200은 병합된 언어 모델 데이터를 서버 300으로 전송하고, 서버 300은 제2 전자 장치 200으로부터 수신된 언어 모델 데이터를 제1 전자 장치 100으로 전송할 수 있다.Before operation 806, the language model data (eg, version 1.0) stored in the first electronic device 100 and the server 300 is the latest language model data, but after operation 808 is performed, the merged language model data (eg, version 1.2) is It can be the latest language model data. Accordingly, in operation 810 , the second electronic device 200 may transmit the merged language model data to the server 300 , and the server 300 may transmit the language model data received from the second electronic device 200 to the first electronic device 100 .

다만 일 실시 예에서, 제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 electronic device 100 transmits the language model data (eg, version 1.0) to the server 300, while receiving the language model data (eg, version 1.2) from the server 300 again, the first electronic device 100 If no sentence input is provided to the device 100, even if the language model data of the first electronic device 100 is merged, the language model data of the version 1.2 may be the same. However, in the meantime, when an arbitrary sentence input occurs in the first electronic device 100 and the language model data of the first electronic device 100 is changed (eg, version 1.1), when the language model data of version 1.2 is received and merged, a new language Model data (eg version 1.3) can be generated. In particular, when a user input is continuously generated through the first electronic device 100 and the second electronic device 200 simultaneously or with a slight time difference, the synchronization operation through the server 300 may be continuously repeated. Accordingly, in an embodiment, when the first electronic device 100 or the second electronic device performs synchronization by receiving a synchronization request message from the server 300 (eg, in operation 802), for a predetermined period of time or until a predetermined condition is satisfied. It may be set not to transmit the language model data to the server 300 even when a sentence input occurs.

도 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 electronic device 100 or the second electronic device 200 transmits its own language model data to the server 300 (Up Sync) or receives language model data from the server 300 (Down Sync) to obtain a language Synchronization of models can be performed. Hereinafter, for convenience, a method of determining an up-synchronization or down-synchronization method with reference to the first electronic device 100 will be described.

도 9를 참조하면, 동작 902에서 동기화 요청 이벤트가 발생할 수 있다. 예를 들어, 제1 전자 장치 100에 설정된 동기화 주기가 도래하거나, 사용자의 입력에 의한 강제 동기화가 수행될 수 있다. 도 8의 동작 802에 의한 동기화 알림 메시지 역시 동기화 요청 이벤트의 하나로 설정될 수 있다.Referring to FIG. 9 , a synchronization request event may occur in operation 902 . For example, a synchronization period set in the first electronic device 100 may arrive or forced synchronization may be performed by a user input. The synchronization notification message in operation 802 of FIG. 8 may also be set as one of the synchronization request events.

동기화 요청 이벤트가 발생하면, 동작 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 server 300 to the server 300, and obtains synchronization information of the server from the server 300. can In operation 906 , the first electronic device 100 (eg, the processor 210 ) synchronizes synchronization information (eg, first synchronization information) of the language model data stored in the first electronic device 100 with the received language model data stored in the server 300 . Information (eg, second synchronization information) may be compared. This synchronization information may include last synchronization time information (eg, timestamp information) of the language model data. In addition, the synchronization information may additionally include information on a synchronized device.

일 실시 예에서, 제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 electronic device 100 may store time stamp (TS) information on the last update time in the language model data or a separate memory space. That is, when a change occurs in the language model data of the first electronic device 100 (eg, the language model is updated based on a text or voice input obtained through the input interface of the electronic device 100, or the data received from the server 300 If the language model is merged based on it), time stamp information at that point can be recorded. For example, language model data stored in the electronic device 100 is updated by itself in TS1, TS2, and TS3, language model data is updated (merged) by up or down synchronization with the server 300 in TS4, and in TS5 and TS6 When the language model data is updated based on the input of the sentence, the synchronization information of the current language model data of the electronic device 100 is time stamp information of the language model data at the point in time when synchronization is performed between the server 300 and the electronic device 100 (ie, TS4) may include.

동작 908에서 제1 전자 장치 100은 두 동기화 정보가 일치하는지 여부를 판단할 수 있다. 예를 들어, 제1 동기화 정보가 2015년 1월 1일 새벽 2시에 제1 전자 장치 100과 서버 300 사이에서 동기화가 이루어졌음을 나타내는 경우, 제2 동기화 정보가 제1 동기화 정보와 동일한 정보를 포함하는지 여부가 판단될 수 있다.In operation 908, the first electronic device 100 may determine whether two pieces of synchronization information match. For example, when the first synchronization information indicates that synchronization is performed between the first electronic device 100 and the server 300 at 2:00 am on January 1, 2015, the second synchronization information includes the same information as the first synchronization information. Whether to include it may be determined.

일치하는 것으로 판단되는 경우, 예를 들어 제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 electronic device 100 and the server 300 at 2 am on January 1, 2015, in operation 910 , the first electronic device Thereafter, 100 may determine whether there is a change in the language model data by a sentence input generated by the first electronic device 100 . If there is no change, since the language model data of the first electronic device 100 and the server 300 are already synchronized, the process may be terminated. If there is a change content, in operation 912 , the first electronic device 100 may transmit the changed language model data of the first electronic device 100 to the server 300 . (Up Synchronization) In this case, the first electronic device 100 may correct synchronization information based on a time point at which the language model data is transmitted to the server 300 and provide the corrected synchronization information to the server 300 .

동작 908에서 제1 동기화 정보와 제2 동기화 정보가 일치하지 않는 경우, 예를 들어 제1 전자 장치 100과 마지막 동기화를 수행한 이후에 서버 300이 제2 전자 장치 200과 동기화를 수행한 경우, 동작 914에서 제1 전자 장치 100은 서버 300에 저장된 언어 모델 데이터를 요청하고 수신할 수 있다. 동작 916에서 제1 전자 장치 100은 수신된 언어 모델 데이터를 제1 전자 장치 100에 저장되어 있던 언어 모델 데이터와 병합할 수 있다. 병합이 완료되면 동작 918에서 제1 전자 장치는 동기화 정보를 갱신하고, 동작 920에서 서버 300으로 병합된 언어 모델 데이터 및 갱신된 동기화 정보를 전송할 수 있다.
In operation 908, when the first synchronization information and the second synchronization information do not match, for example, when the server 300 performs synchronization with the second electronic device 200 after the last synchronization with the first electronic device 100, operation In operation 914 , the first electronic device 100 may request and receive language model data stored in the server 300 . In operation 916 , the first electronic device 100 may merge the received language model data with the language model data stored in the first electronic device 100 . When the merging is completed, the first electronic device updates synchronization information in operation 918 and transmits the merged language model data and updated synchronization information to the server 300 in operation 920 .

도 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 operation 1002 , the server 300 may receive a synchronization request message from the first electronic device 100 . In operation 1004, the server 300 may transmit synchronization information of the language model data stored in the server 300 to the first electronic device 100 in response to the synchronization request. When the first electronic device 100 determines the downlink synchronization method, in operation 1006, the server 300 may receive a message requesting language model data of the server 300 from the first electronic device 100 . However, when the first electronic device 100 determines the upward synchronization method, language model data of the first electronic device 100 may be received from the first electronic device 100 in operation 1012 . In this case, updated synchronization information may also be received from the electronic device 100 .

동작 1006에서 서버 300의 언어 모델 데이터가 요청되면, 동작 1008에서 서버 300은 제1 전자 장치 100으로 언어 모델 데이터를 전송할 수 있다. 제1 전자 장치 100에서 상기 언어 모델 데이터를 수신하고, 자체 언어 모델 데이터와 병합이 완료되면, 서버 300은 동작 1010에서 제1 전자 장치 100으로부터 병합된 언어 모델 데이터를 수신할 수 있다. 이 경우, 병합된 언어 모델 데이터에 기초하여 갱신된 동기화 정보가 함께 수신될 수 있다.When the language model data of the server 300 is requested in operation 1006, the server 300 may transmit the language model data to the first electronic device 100 in operation 1008. When the first electronic device 100 receives the language model data and merging with its own language model data is completed, the server 300 may receive the merged language model data from the first electronic device 100 in operation 1010 . In this case, synchronization information updated based on the merged language model data may be received together.

동작 1014에서 서버 300은 제1 전자 장치 100으로부터 수신된 언어 모델 데이터로 기존에 저장된 언어 모델 데이터를 대체할 수 있다. 또한 동작 1016에서 전자 장치 100으로부터 수신된 동기화 정보(또는 언어 모델 데이터)에 기초하여 서버 300의 언어 모델 데이터에 대한 동기화 정보를 갱신할 수 있다.In operation 1014 , the server 300 may replace the previously stored language model data with the language model data received from the first electronic device 100 . Also, in operation 1016 , synchronization information for the language model data of the server 300 may be updated based on the synchronization information (or language model data) received from the electronic device 100 .

동작 1018에서, 서버 300은 제1 전자 장치 100과 동일한(또는 관련있는) 사용자 계정의 제2 전자 장치 200을 검색할 수 있다. 동작 1020에서 서버 300은 제2 전자 장치 200으로 동기화 알림 메시지를 전송할 수 있다. 동작 1020 이후에는 도 8 또는 도 9의 프로세스가 제2 전자 장치 200에서 수행될 수 있다.
In operation 1018 , the server 300 searches for the second electronic device 200 of the same (or related) user account as the first electronic device 100 . In operation 1020, the server 300 may transmit a synchronization notification message to the second electronic device 200 . After operation 1020 , the process of FIG. 8 or 9 may be performed in the second electronic device 200 .

도 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 operation 1102, the first electronic device may obtain a sentence input, and in operation 1104 may update the language model data. For example, the first electronic device 100 may be using the first type of language model.

동작 1106에서, 제1 전자 장치 100은 서버 300으로 언어 모델 타입 정보, 언어 모델 데이터, 문장 입력 정보를 전송할 수 있다. 동작 1108에서 서버 300은 수신된 언어 모델의 타입 정보에 기초하여 사용자 계정에 대응하는 제1 타입의 언어 모델 데이터를 교체할 수 있다.In operation 1106, the first electronic device 100 may transmit language model type information, language model data, and sentence input information to the server 300 . In operation 1108, the server 300 may replace the first type of language model data corresponding to the user account based on the received language model type information.

동작 1110에서 서버 300은 사용자 계정과 연관된 제2 전자 장치 200을 검색할 수 있다. 동작 1112에서, 서버 300은 제2 전자 장치 200으로 언어 모델 타입 정보(제1 타입), 언어 모델 데이터, 문장 입력 정보를 제공할 수 있다.In operation 1110, the server 300 may search for the second electronic device 200 associated with the user account. In operation 1112, the server 300 may provide language model type information (first type), language model data, and sentence input information to the second electronic device 200 .

예를 들어 제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 electronic device 200 is an electronic device that uses a language model of a second type different from the first type, the second electronic device 200 checks language model information in operation 1114 to determine the language model of the incompatible type. You can confirm that the language model data has been received. In this case, in operation 1116 , the second electronic device 200 may update the second type of language model data based on the received sentence input information, instead of merging the language model data. Through this operation, according to an embodiment of the present invention, a user's user experience may be improved by synchronizing some compatible information between electronic devices using different types of language models. For example, when there is an input word “I am reading a book”, the probability values of “am” followed by “reading” are not compatible with each other, but the history of “am” followed by “reading” is They are compatible with each other, which allows for substantially identical prediction words to be provided.

도 11의 실시 예에서는, 서버 300은 모든 정보를 제2 전자 장치 200으로 제공하고, 제2 전자 장치 200에서 동기화할 데이터를 결정하였지만, 일부 실시 예에서는 서버 300에 각 전자 장치의 언어 모델의 타입 정보가 함께 저장되고 있을 수 있다. 이 경우, 서버 300은 수신된 언어 모델 데이터의 언어 모델 타입과, 동기화 대상이 되는 전자 장치의 언어 모델 타입이 다른 경우 언어 모델 데이터를 전송하지 않고 문장 입력 정보만 전송하여 데이터 사용량을 감소시킬 수 있다.
In the embodiment of FIG. 11 , the server 300 provides all information to the second electronic device 200 and determines data to be synchronized in the second electronic device 200. However, in some embodiments, the server 300 provides the server 300 with the type of the language model of each electronic device. Information may be stored together. In this case, when the language model type of the received language model data is different from the language model type of the electronic device to be synchronized, the server 300 may reduce data usage by transmitting only sentence input information without transmitting the language model data. .

도 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 electronic device 100, the deleted word from the corresponding language model data may be restored when it is merged with the language model of the second electronic device 200 . In other words, when word A is deleted from language model data having words A, B, C, D, and E, and merging with other language model data having words A, B, C, D, E, the deleted word A can be restored. Hereinafter, when synchronization is performed by reflecting the deletion history of the user, a process in which the deletion history can be equally reflected in the language model data of other electronic devices will be described.

동작 1202에서 제1 전자 장치 100은 삭제 단어에 대한 정보를 획득한다. 예를 들어, 제1 전자 장치 100에서 문장 입력이 발생할 때 언어 모델 데이터에 기초하여 입력이 예측되는 예측 단어가 디스플레이 될 수 있고, 이 중 임의의 단어가 사용자 선택에 의해 삭제될 수 있다. 동작 1202에서 프로세스 210은 이와 같은 삭제된 단어에 대한 삭제 단어 데이터베이스를 생성할 수 있다.In operation 1202, the first electronic device 100 acquires information on the deleted word. For example, when a sentence input occurs in the first electronic device 100, a predicted word whose input is predicted based on the language model data may be displayed, and any word among them may be deleted by a user selection. In operation 1202, the process 210 may generate a deleted word database for the deleted word.

동작 1204에서, 제1 전자 장치 100은 문장 입력을 획득하고, 동작 1206에서 삭제된 예측 단어를 반영하여 언어 모델 데이터를 갱신할 수 있다.In operation 1204 , the first electronic device 100 may obtain a sentence input and update the language model data by reflecting the predicted word deleted in operation 1206 .

동작 1208에서, 제1 전자 장치 100은 서버 300으로 언어 모델 데이터와 삭제 단어 정보, 예를 들어 삭제 단어 데이터베이스를 전송할 수 있다. 동작 1210에서, 서버 300은 동작 1208에서 획득된 언어 모델 데이터로 서버 300에 기 저장된 언어 모델 데이터를 교체하고, 동작 1212에서 사용자 계정과 관련된 제2 전자 장치 200을 검색할 수 있다.In operation 1208, the first electronic device 100 may transmit language model data and deleted word information, for example, a deleted word database to the server 300 . In operation 1210, the server 300 replaces the language model data previously stored in the server 300 with the language model data obtained in operation 1208, and searches for the second electronic device 200 related to the user account in operation 1212.

동작 1214에서 서버 300은 제2 전자 장치 200으로 교체된 언어 모델 데이터와 삭제 단어 정보를 함께 전송할 수 있다.In operation 1214, the server 300 may transmit the replaced language model data and the deleted word information to the second electronic device 200 together.

동작 1216에서, 제2 전자 장치 200은 기 저장된 언어 모델 데이터와 수신된 언어 모델 데이터를 병합할 수 있다. 이 동작에서, 제1 전자 장치 100에 의해 삭제되었던 예측 단어들이 복구될 가능성이 있다. 병합이 완료된 후, 동작 1218에서 제2 전자 장치 200은 삭제 단어 정보를 병합된 언어 모델 데이터에 병합할 수 있다. 동작 1218을 통해, 설령 동작 1216에서 삭제된 예측 단어들이 복구되더라도, 최종적으로 예측 단어들이 동일하게 삭제된 상태로 동기화가 이루어지도록 할 수 있다.In operation 1216, the second electronic device 200 may merge pre-stored language model data and received language model data. In this operation, there is a possibility that prediction words deleted by the first electronic device 100 are recovered. After the merging is completed, in operation 1218 , the second electronic device 200 may merge the deleted word information into the merged language model data. In operation 1218, even if the prediction words deleted in operation 1216 are recovered, the synchronization may be performed in a state in which the prediction words are finally deleted in the same way.

언어 모델 데이터를 모든 사용자 단말에서 초기화 하기 위한 프로세스도 도 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 electronic device 100 is initialized, as a result, it may be synchronized with the language model data of the second electronic device 200 . Therefore, when the first electronic device 100 initializes the language model data, it may be set to perform upward synchronization immediately after the initialization is completed. In this case, the first electronic device 100 may transmit initialization information together to the server 300 during up synchronization. The server 300 may replace the previously stored language model data with the received language model data (ie, initial language model data), and transmit the language model data and initialization information to the second electronic device 200 . After merging the language model data, the second electronic device 200 may apply initialization information to initialize all the learned data. In one example, when there is initialization information, the second electronic device 200 may omit a process of merging language model data and first apply an initialization operation.

도 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 sentence input 1300 occurs through SIP 105 in a state in which the chatting application 104 is executed in the user terminal 101. Referring to FIG. For example, when the user tries to input “I am reading a book” and inputs “I am”, the user terminal 101 may predict “playing” based on the language model and output it to the predicted word area 107. have. When “I am reading a book” is finally input by the user, the user terminal 101 may update the language model to generate relationship information in which “reading” is positioned after “am”.

이제 도 13b에 도시된 것과 같이 사용자 단말 101의 언어 모델이 서버 302를 통해 다른 사용자 단말 201과 동기화되면, 두 단말 모두 사용자에 의해 “I am”까지 입력되었을 때 예측 단어로 “playing”과 “reading”이 제공될 수 있다.Now, when the language model of the user terminal 101 is synchronized with the other user terminal 201 through the server 302 as shown in FIG. 13B , when both terminals are input by the user until "I am", "playing" and "reading" are predicted words. ” may be provided.

만약 이 상태에서, 사용자 단말 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 user terminal 201, and after the language model is updated and synchronized, when “I am” is input in the user terminal 101, the user terminal 101 is “reading” , “playing” and “working” or at least one of the above words based on probability may be recommended.

도 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 user terminal 101 based on a voice input obtained from the wearable device 109 . The wearable device 109 may be, for example, a smart watch, a smart band, or a necklace type device (eg, Gear Circle, etc.). The wearable device 109 is generally smaller than other electronic devices such as a smart phone or a tablet, and thus may have a small display screen or may not have a display. In other words, the wearable device 109 may have a structure in which it is difficult to mount a keyboard in the form of a hardware or software module. In the wearable device 109, a sentence may be input by a user selection of a predicted word output on a small display, or a sentence may be input through voice recognition for a voice input.

일 실시 예에서, 웨어러블 장치 109에서 획득되는 주된 입력은 웨어러블 장치 109에 탑재된 마이크를 통한 사용자의 음성 입력일 수 있다. 음성 입력은 웨어러블 장치 109 자체, 또는 웨어러블 장치와 페어링된 다른 전자 장치, 또는 웨어러블 장치 109와 직접 또는 간접적으로 연결되는 음성 인식 서버에 탑재된 음성 인식 모듈 또는 기능에 의해 문장 입력으로 변환될 수 있다. 여기서 문장 입력이란, 적어도 하나의 단어를 포함할 수 있다. 음성 인식과 관련한 내용은 도 2를 참조하여 자세히 설명된 바 있으므로, 도 13c에서는 구체적인 설명을 생략한다.In an embodiment, the main input obtained from the wearable device 109 may be a user's voice input through a microphone mounted on the wearable device 109 . The voice input may be converted into a sentence input by a voice recognition module or function mounted on the wearable device 109 itself, another electronic device paired with the wearable device, or a voice recognition server directly or indirectly connected to the wearable device 109 . Here, the sentence input may include at least one word. Since the contents related to speech recognition have been described in detail with reference to FIG. 2 , a detailed description thereof will be omitted in FIG. 13C .

일 실시 예에서, 사용자에 의해 “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 utterance 1310 “I am reading a book” is input by a user through a microphone of the wearable device 109, the wearable device 109 (eg, an input processing unit) directly or other It is possible to analyze through the device and generate input word information based thereon. As in the various examples described above, the input word information generated in this way can generate and synchronize relation information with another electronic device (eg, the user terminal 101) according to a language model synchronization method. For example, the wearable device 109 may update the language model data of the wearable device 109 based on the utterance 1310 and transmit the updated language model data to the server 302 . The server 109 may replace the pre-stored language model data with the received language model data and provide it to the user terminal 101 again. As a result, in the user terminal 101, the existing language model data and the language model data transmitted from the wearable device 109 may be merged. For example, when “I am” is input through SIP in the user terminal 101, and “playing” is recommended as a predictive word, a utterance 1310 of “I am reading a book” is inputted to the wearable device 109 . If the input is reflected in the language model data and synchronized, when “I am” is inputted from the user terminal 100, “reading” may be provided as a predicted word in addition to “playing”.

위 실시 예는 음성 데이터를 웨어러블 장치에서 입력 받고 해당 데이터를 단말 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 first user terminal 1410 according to an embodiment may include a first application language model 1412, a second application language model 1414, and a third application language model 1416. Each language model may be learned and updated based on a sentence input through each application. The server 1430 and the second user terminal 1420 may also perform synchronization between language models corresponding to respective applications. For example, the first application language model 1412 may replace the first application language model 1432 of the server 1430 and may be merged with the first application language model 1422 of the second user terminal 1420 again. In a similar manner, the second application language model 1414 replaces the second application language model 1434 of the server 1430, and is again merged with the second application language model 1424 of the second user terminal 1420, and the third application language model 1416 is the server 1430 may replace the third application language model 1436 of , and may be merged with the third application language model 1426 of the second user terminal 1420 again.

도 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 electronic device 100 collects inputs generated from recipient fields of various applications, updates and synchronizes language model data based on this, and uses frequently used words (eg, recipients) as predictive words when a recipient field is selected in a specific application. can recommend

도 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 electronic device 100 may include the language model (or language model data) of the first version V1, and the second electronic device 200 may include the language model of the second version V2. have. According to an embodiment, it may be assumed that the language model of the server 300 is in an initialization state (V0). In another embodiment, the language model of the server 300 may have a different arbitrary version, but in this example, the language model of the initial version mounted on the server 300 is replaced with the language model of the first version, so for convenience, it is assumed that the language model is in an initialized state. do.

또한 도 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 electronic device 100 may upload the first version of the language model to the server 300 . (Operation 1) When receiving the language model of the first version from the first electronic device 100, the server 300 may replace the language model of the initial version (VO) loaded in the server 300 with the language model of the first version. (Operation 2) The server 300 may transmit the first version of the language model to the second electronic device 200 . (action 3)

제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 server 300, the second electronic device 200 may generate the language model of the third version by merging the language model of the first version and the language model of the second version. (Operation 4) Thereafter, the second electronic device 200 may update the language model of the third version to the language model of the fourth version based on the received user input 1510 . (Action 5)

다른 실시 예에서, 제2 전자 장치 200은 서버 300으로 제3 버전의 언어 모델을 전송하고, 서버 300은 제1 버전의 언어 모델을 제3 버전의 언어 모델로 대체한 후에, 다시 제1 전자 장치 100으로 제3 버전의 언어 모델을 전송할 수 있다. 이 경우, 제1 버전과 제3 버전의 언어 모델을 병합하더라도 제3 버전의 언어 모델이 생성되므로, 제1 전자 장치 100, 제2 전자 장치 200, 및 서버 300을 포함하는 동기화 시스템 사이의 언어 모델이 제3 버전으로 동기화될 수 있다. 그러나 전술한 다양한 실시 예에서와 같이, 동기화 동작은 시간적 간격을 두고 발생하거나, 특정 조건이 만족될 때 수행될 수 있다. 이하에서 계속 설명된다.In another embodiment, the second electronic device 200 transmits the language model of the third version to the server 300, the server 300 replaces the language model of the first version with the language model of the third version, and then the first electronic device again 100 may send a third version of the language model. In this case, since the language model of the third version is generated even if the language models of the first version and the third version are merged, the language model between the synchronization system including the first electronic device 100 , the second electronic device 200 , and the server 300 . This third version can be synchronized. However, as in the above-described various embodiments, the synchronization operation may occur at a time interval or may be performed when a specific condition is satisfied. The description continues below.

다시 도 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 electronic device 200 may transmit the fourth version of the language model to the server 300 . (Operation 6) The server 300 replaces the language model of the first version with the language model of the fourth version (operation 7), and transmits a synchronization notification message for the language model of the fourth version to the first electronic device 100, or The fourth version of the language model may be transmitted to the first electronic device 100 . (Operation 8) When the language model of the fourth version is received, the first electronic device 100 may be merged with the language model of the first version to generate the language model of the fifth version. (Act 9). Similar to operation 5 , the first electronic device 100 may update the language model to the sixth version based on the user input 1520 generated in the first electronic device 100 . (Act 10).

제1 전자 장치 100은 제6 버전의 언어 모델을 서버 300으로 전송하고 (동작 11), 서버 300은 언어 모델을 제4 버전에서 제6 버전으로 대체할 수 있다. (동작 12) 서버 300은 제6 버전의 언어 모델, 또는 이에 대한 동기화 알림 메시지를 제2 전자 장치 200으로 전송하고 (동작 13), 제2 전자 장치 200은 제6 버전의 언어 모델이 수신되면 제4 버전의 언어 모델과 병합하여 제7 버전의 언어 모델을 생성할 수 있다. (동작 14)The first electronic device 100 may transmit the language model of the sixth version to the server 300 (operation 11), and the server 300 may replace the language model from the fourth version to the sixth version. (Operation 12) The server 300 transmits the sixth version language model or a synchronization notification message for it to the second electronic device 200 (operation 13), and when the sixth version language model is received, the server 300 transmits the sixth version language model. A seventh version of the language model can be created by merging with the 4th version of the language model. (Action 14)

전술한 동기화 순서는 예시적인 것이며, 도 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 memory 220.

예를 들어, 통신 모듈, 입력 인터페이스, 상기 통신 모듈 및 입력 인터페이스와 전기적으로 연결되는 프로세서, 및 상기 프로세서와 전기적으로 연결되고 언어 모델 데이터를 포함하는 메모리를 포함하는 전자 장치에 있어서, 상기 메모리에는 실행될 때 프로세서가 상기 입력 인터페이스를 통하여 터치 또는 음성 입력을 수신하고, 상기 입력에 기초하여 텍스트를 생성하고, 상기 생성된 텍스트에 기초하여 하나 이상의 단어를 상기 언어 모델 데이터에 반영하고, 상기 통신 모듈을 통하여, 서버로부터 상기 언어 모델 데이터와 관련된 제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에 있어서,
상기 프로세서는 상기 문장 입력에 포함된 적어도 하나의 단어 및 상기 적어도 하나의 단어와 연관된 관계 정보에 기초하여 상기 제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 언어 모델은 제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.
청구항 3에 있어서
상기 제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.
청구항 1에 있어서,
상기 프로세서는, 상기 문장 입력이 음성 입력인 경우 상기 음성 입력에 대한 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에 있어서,
상기 통신 모듈은 상기 서버로부터 상기 서버의 언어 모델 데이터를 수신하고,
상기 프로세서는 상기 수신된 상기 서버의 상기 언어 모델 데이터와 상기 메모리에 저장된 상기 제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.
청구항 6에 있어서,
상기 프로세서는 상기 통신 모듈로 하여금 상기 서버로 상기 병합된 언어 모델 데이터를 전송하도록 구성되는, 전자 장치.
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.
청구항 1에 있어서,
동기화 요청 이벤트가 발생하면 상기 통신 모듈은 상기 서버로부터 상기 서버에 저장된 상기 언어 모델 데이터의 동기화 정보를 획득하고,
상기 프로세서는 상기 전자 장치의 동기화 정보와 상기 서버로부터 획득된 동기화 정보를 비교하여 상기 언어 모델 데이터의 동기화 방식을 결정하도록 구성되는, 전자 장치.
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.
청구항 8에 있어서,
상기 프로세서는 상기 전자 장치의 동기화 정보가 상기 서버로부터 획득된 동기화 정보와 일치하면, 상기 통신 모듈로 하여금 상기 메모리에 저장된 상기 제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.
청구항 8에 있어서,
상기 프로세서는 상기 전자 장치의 동기화 정보가 상기 서버로부터 획득된 동기화 정보와 일치하지 않으면, 상기 통신 모듈로 하여금 상기 서버로부터 상기 서버의 상기 언어 모델 데이터를 수신하도록 하고, 상기 수신된 언어 모델 데이터와 상기 메모리에 저장된 상기 제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.
청구항 10에 있어서,
상기 프로세서는 상기 통신 모듈로 하여금 상기 병합된 언어 모델 데이터를 상기 서버로 전송하도록 구성되는, 전자 장치.
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.
청구항 8에 있어서,
상기 프로세서는 상기 결정된 동기화 방식으로 상기 제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.
청구항 8에 있어서,
상기 전자 장치의 동기화 정보는 상기 제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에 있어서,
상기 프로세서는 사용자로부터 상기 문장 입력이 발생할 때, 상기 제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.
청구항 14에 있어서,
상기 프로세서는 상기 예측 단어 중 사용자 선택에 의해 삭제된 단어에 대한 삭제 단어 데이터베이스를 생성하고,
상기 삭제 단어 데이터베이스를 상기 문장 입력에 대한 정보와 함께 전송하도록, 설정되는 전자 장치.
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.
삭제delete 삭제delete 삭제delete 삭제delete 청구항 1에 있어서,
상기 다른 전자 장치는 상기 전자 장치의 사용자 계정과 동일한 계정 또는 상기 사용자 계정과 동일 사용자로 등록된 계정을 사용하는, 전자 장치.

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.

삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020150028686A 2015-02-28 2015-02-28 Synchronization of Text Data among a plurality of Devices KR102325724B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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