KR102617717B1 - 전자 장치 및 그 제어 방법 - Google Patents

전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR102617717B1
KR102617717B1 KR1020160134882A KR20160134882A KR102617717B1 KR 102617717 B1 KR102617717 B1 KR 102617717B1 KR 1020160134882 A KR1020160134882 A KR 1020160134882A KR 20160134882 A KR20160134882 A KR 20160134882A KR 102617717 B1 KR102617717 B1 KR 102617717B1
Authority
KR
South Korea
Prior art keywords
user
word
electronic device
language model
input
Prior art date
Application number
KR1020160134882A
Other languages
English (en)
Other versions
KR20180042577A (ko
Inventor
반대현
박우진
이규행
임상순
한성원
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020160134882A priority Critical patent/KR102617717B1/ko
Priority to EP17862695.8A priority patent/EP3522036B1/en
Priority to US16/342,771 priority patent/US11024300B2/en
Priority to PCT/KR2017/002572 priority patent/WO2018074681A1/ko
Priority to CN201780078439.8A priority patent/CN110100244B/zh
Publication of KR20180042577A publication Critical patent/KR20180042577A/ko
Application granted granted Critical
Publication of KR102617717B1 publication Critical patent/KR102617717B1/ko

Links

Images

Classifications

    • 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
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • G10L15/197Probabilistic grammars, e.g. word n-grams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/268Morphological analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

전자 장치 및 제어 방법이 제공된다. 전자 장치는 사용자 기반 사전(dictionary)을 저장하는 저장부, 사용자 고유 단어와 신경망 기반의 언어모델에 의해 학습된 적어도 하나의 단어가 포함된 문장을 입력 받는 입력부, 및 상기 입력된 문장의 의미 정보(semantic information)를 바탕으로 상기 사용자 고유 단어의 개념 카테고리를 판단하고, 상기 사용자 고유 단어를 상기 사용자 기반 사전에 추가하여 업데이트하고, 상기 학습된 적어도 하나의 단어의 의미 정보에 대응하는 텍스트가 입력된 경우, 상기 텍스트 이후에 입력될 수 있는 자동 완성 추천단어로 상기 사용자 고유 단어를 제공하는 프로세서를 포함한다.

Description

전자 장치 및 그 제어 방법{Electronic Apparatus and Controlling Method thereof}
본 개시는 전자 장치 및 이의 제어 방법에 관한 것이다. 더욱 구체적으로, 본 개시는 신경망 기반 언어모델에서 학습되지 않은 사용자 고유 단어를 의미론적 워드 임베딩(semantic word embedding)을 이용하여 사용자 기반 사전을 제공하는 전자 장치 및 이의 제어 방법에 관한 것이다.
사물인터넷(IoT, Internet on Things) 기기의 활용이 증가됨에 따라, 스마트 기기들에서 사용자에게 더욱 편리한 문자 입력 방법이 개발되고 있다.
예를 들어, 스마트 기기에서 가상의 키보드를 활용하여 단어의 자동완성 기능 및 다음 단어를 예측(next word prediction) 기능 등이 제공되고 있다.
일반적으로, 가상의 키보드를 활용한 단어의 자동완성 기능 및 다음 단어를 예측하는 기능은 N-gram 모델 또는 신경망 언어 모델을 이용한다.
N-gram 모델은 신경망에서 학습된 구문에서 입력된 단어의 문맥적 의미(semantic meaning)를 고려하지 않고 입력된 단어의 순서만을 고려하여 입력될 다음 단어를 예측할 수 있다. 따라서, n-gram 모델은 언어 모델에 단어를 추가하는 것은 쉬우나, 입력될 다음 단어를 예측하여 추천하는 단어들의 순위가 의미적으로 일관성이 없다.
한편, 신경망 방식으로 다음 단어를 예측하여 자동 완성 단어를 추천하는 방식인 문맥적 워드 임베딩(semantic word embedding)은, 의미가 유사한 단어들을 단어의 문맥적 의미를 바탕으로 서로 유사한 벡터 값으로 변환하여, 벡터 공간상에서 서로 인접한 위치에 배치한다. 따라서, 신경망 방식에서는 자동완성 추천단어들의 순위가 의미적으로 일관성이 있다.
그러나, 문맥적 워드 임베딩(semantic word embedding)은 신경망 언어모델에서 학습된 단어들에 대해서만 의미를 분석하고 자동완성 추천단어로 제공된다. 따라서, 종래의 신경망 언어모델(예를 들어, 사전에 포함된 어휘들)에 포함되지 않은 사용자 고유 단어가 사용자 단말에 입력된 경우, 사용자 고유 단어가 문맥상 종래 신경망 언어모델에서 학습된 단어들과 유사한 의미를 가지더라도 사용자 고유 단어가 자동완성 추천 단어로 제공되지 않는 문제점이 있다.
본 개시의 목적은, 상술한 문제점을 해결하기 위해 안출된 것으로, 사용자 단말에서 이용되는 사용자 고유 단어를 문맥적 워드 임베딩(semantic word embedding)을 바탕으로 사용자 기반 사전을 제공하고, 신경망 언어모델을 이용 시 사용자 고유 단어를 자동완성 추천단어로 제공하여 입력 기능의 정확도를 높일 수 있는 전자 장치 및 제어 방법을 제공하는 데 있다.
본 개시의 일 실시 예에 따른, 개인화 서비스를 지원하기 위한 전자 장치는, 사용자 기반 사전(dictionary)을 저장하는 저장부, 사용자 고유 단어와 신경망 기반의 언어모델에 의해 학습된 적어도 하나의 단어가 포함된 문장을 입력 받는 입력부, 및 상기 입력된 문장의 의미 정보(semantic information)를 바탕으로 상기 사용자 고유 단어의 개념 카테고리를 판단하고, 상기 사용자 고유 단어를 상기 사용자 기반 사전에 추가하여 업데이트하고, 상기 학습된 적어도 하나의 단어의 의미 정보에 대응하는 텍스트가 입력된 경우, 상기 텍스트 이후에 입력될 수 있는 자동 완성 추천단어로 상기 사용자 고유 단어를 제공하는 프로세서를 포함한다.
한편, 본 개시의 일 실시 예에 따른, 전자 장치에서 개인화 서비스를 지원하기 위한 제어 방법은, 사용자 고유 단어와 신경망 기반의 언어모델에 의해 학습된 적어도 하나의 단어가 포함된 문장을 입력 받는 단계, 상기 입력된 문장의 의미 정보(semantic information)를 바탕으로 상기 사용자 고유 단어의 개념 카테고리를 판단하는 단계, 상기 사용자 고유 단어를 사용자 기반 사전에 추가하여 업데이트하는 단계, 및 상기 학습된 적어도 하나의 단어의 의미 정보에 대응하는 텍스트가 입력된 경우, 상기 텍스트 이후에 입력될 수 있는 자동 완성 추천단어로 상기 사용자 고유 단어를 제공하는 단계를 포함한다.
상술한 실시 예들을 바탕으로, 본 개시에 따른 전자 장치 및 이의 제어 방법은, 신경망 언어 모델에 학습되지 않은 사용자 고유 단어가 입력되는 경우 사용자 고유 단어의 문맥적 의미를 바탕으로 사용자 고유 단어를 사용자 기반 사전에 추가하여 업데이트하여 전자 장치에 대한 개인화를 지원할 수 있다.
또한, 본 개시의 실시 예에 따른 사용자 기반 사전을 바탕으로, 사용자 고유 단어를 자동입력 추천 단어로 제공함으로써 사용자에게 확장된 입력 생산성을 제공할 수 있다.
또한, 본 개시의 일 실시 예에 따른 전자 장치 및 제어 방법은, 동일한 사용자가 이용하는 복수의 전자 기기간에 사용자 기반 언어모델을 공유함으로써 사용자에게 편리한 입력 생산성을 제공할 수 있다.
도 1은, 본 개시의 일 실시 예에 따른, 사용자 기반 언어 모델을 제공하는 시스템도이다.
도 2는, 본 개시의 일 실시 예에 따른, 전자 장치를 구성하는 간단한 블록도이다.
도 3은, 본 개시의 일 실시 예에 따른, 종래의 신경망 언어 모델에서 입력할 자동완성 단어를 예측하는 방법을 설명하기 위한 도면이다.
도 4a 및 도 4b는, 종래의 n-gram 알고리즘에 의해 입력될 자동완성 단어를 추천하는 방법을 설명하기 위한 도면이다.
도 5a 및 도 5b는, 본 개시의 일 실시 예에 따른, 신경망에서 사용자 고유 단어를 입력될 자동완성 단어로 추천하는 방법을 설명하기 위한 도면이다.
도 6은, 본 개시의 일 실시 예에 따른, 사용자 기반 사전에 저장된 사용자 고유 단어의 개념 카테고리를 설명하기 위한 도면이다.
도 7은, 본 개시의 일 실시 예에 따른, 신경망 언어 모델의 벡터 공간 상에서 사용자 고유 단어의 개념 카테고리를 판단하는 방법을 설명하기 위한 도면이다.
도 8은, 본 개시의 일 실시 예에 따른, 사용자 기반 언어모델을 제공하기 위한 방법을 설명하기 위한 순서도이다.
도 9는, 본 개시의 일 실시 예에 따른, 전자 장치를 구성하는 상세한 블록도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다. 
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
본 개시에서 "텍스트"는 적어도 하나의 어휘(vocabularies), 단어(words), 캐릭터(characters) 등을 포함할 수 있으며, 하나 이상의 단어들로 이루어진 절, 문장 등을 포함할 수 있다.
본 개시에서 "단어"는 숫자, 캐릭터, 특수 문자, 각 언어의 알파벳 중 적어도 하나를 의미 개념의 단위일 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.  그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은, 본 개시의 일 실시 예에 따른, 사용자 기반 언어 모델을 제공하는 시스템도이다.
도 1을 참조하면, 시스템(10)은 전자 장치(100), 서버(200), 및 전자 장치(100)와 서버(200)을 연결하는 유선 또는/및 무선 네트워크(300)로 구성될 수 있다.
예를 들어, 전자 장치(100)는 웨어러블 와치(100-1), 스마트폰(100-2), 태블릿 PC(100-3), 및 헤드 마운티드 디스플레이(100-4) 등과 같은 스마트 기기일 수 있다. 전자 장치(100)는 유선 및/또는 무선 통신 방식을 이용하여 다른 전자 장치를 원격 제어할 수 있다. 전자 장치들(100-1, 100-2, 100-3, 100-4)은 유선 및/또는 무선 통신 방식을 이용하여 서로 데이터를 공유할 수 있다. 상술한 예들은 본 개시를 설명하기 위한 일 실시 예일 뿐, 이에 한정되지 않는다.
본 개시의 일 실시 예에 따라, 전자 장치(100)는 신경망 언어모델에 학습되지 않은 사용자 고유 단어를 포함하는 사용자 기반 사전(dictionary)을 포함할 수 있다. 또한, 전자 장치들(100-1, 100-2, 100-3, 100-4)은 사용자 기반 사전을 서로 공유할 수 있다.
서버(200)는 서비스 서버(200-1) 및 서비스 데이터 베이스(200-2)를 포함할 수 있다. 서비스 서버(200-1)는 전자 장치(100)에 애플리케이션 서비스를 제공하는 서버일 수 있다. 서비스 데이터 베이스(200-2)는 서비스 서버(200-1)의 요청에 의해 신경망(Neural Network, NN) 데이터를 제공할 수 있다. 서비스 데이터 베이스(200-2)는 서비스 서버(200-1)에 포함될 수도 있고 외부에 존재할 수도 있다. 서비스 데이터 베이스(200-2)는 서비스 서버(200-1)를 거치지 않고 전자 장치(100)의 요청에 의해 신경망 데이터를 제공할 수도 있다. 예를 들어, 서비스 데이터 베이스(200-1)는 클라우드 기반 서버일 수 있으나 이에 한정되지 않는다.
서비스 데이터 베이스(200)는 전자 장치(100)에 포함될 수도 있고 포함되지 않고 따로 구현될 수도 있다.
본 개시에서는 서버(200)는 클라우드 기반의 서비스 데이터 베이스(200-2)인 것을 예로 들어 설명하기로 한다. 서버(200)는 다양한 신경망 기반 언어 모델(Language Model, LM)들을 저장할 수 있다.
도 2는, 본 개시의 일 실시 예에 따른, 전자 장치를 구성하는 간단한 블록도이다.
도 2를 참조하면, 전자 장치(100)는 통신부(210), 저장부(230), 입력부(240), 및 프로세서(250)를 포함한다. 실시 예에 따라서는, 도 2에 도시된 구성 요소 중 일부는 생략 또는 변경될 수 있고, 다른 구성 요소가 더 추가될 수도 있다.
통신부(210)는 다양한 유형의 유선 및/또는 무선 통신방식에 따라 다양한 유형의 외부 기기와 통신을 수행하는 구성이다. 다양한 통신 방식은 도 9에서 상술한다.
본 개시의 일 실시 예에 따라, 통신부(210)는 사용자가 이용하고자 하는 다른 전자 장치들과 통신을 수행하여 사용자 기반 언어 모델 정보를 다른 전자 장치와 공유할 수 있다. 또한, 통신부(210)는 클라우드 기반 서버와 통신할 수 있으며, 애플리케이션 서비스를 제공하는 서버와도 통신할 수 있다.
저장부(220)는 전자 장치(100)의 다양한 데이터 정보를 저장할 수 있다. 저장부(230)는 사용자 기반 사전을 저장할 수 있다. 사용자 기반 사전에는 신경망 언어모델에 의해 학습되지 않은 사용자 고유 단어가 저장될 수 있다. 사용자 고유 단어는 적어도 하나의 캐릭터, 알파벳, 어휘 등을 포함할 수 있다.
입력부(240)는 사용자로부터 텍스트를 입력 받을 수 있는 키보드, 마우스, 포인터, 스타일러스 펜, 음성 명령을 입력할 수 있는 마이크 등일 수 있으나 이에 한정되지 않는다.
예를 들어, 키보드는 가상의 키보드(virtual keyboard)일 수 있다. 가상의 키보드는 전자 장치(100)의 디스플레이상에 구현될 수 있다.
본 개시의 일 실시 예에 따라, 입력부(240)는 사용자 고유 단어와 신경망 기반의 언어모델에 의해 학습된 적어도 하나의 단어가 포함된 문장을 입력 받을 수 있다.
프로세서(250)는, 신경망 언어모델들에 의해 학습된 적어도 하나의 단어의 의미 정보(semantic information)를 바탕으로 입력부(210)로부터 입력된 문장에 포함된 사용자 고유 단어의 개념 카테고리를 판단하고, 판단된 개념 카테고리 별로 사용자 고유 단어를 사용자 기반 사전에 추가하여 업데이트할 수 있다.
프로세서(250)는, 학습된 적어도 하나의 단어의 의미 정보에 대응하는 텍스트가 입력되는 경우, 텍스트 이후에 입력될 수 있는 자동완성 추천단어로 사용자 고유 단어를 제공할 수 있다.
프로세서(250)는 자동완성 추천단어로 신경망 기반의 언어모델로부터 추천된 적어도 하나의 단어와 함께 사용자 고유 단어를 제공할 수 있다.
프로세서(250)는, 자동완성 추천단어로서 우선 순위가 지정된 상위 개수의 단어를 제공할 수 있다.
프로세서(250)는, 사용자 고유 단어를 신경망에 입력 값으로 전송하여 판단된 개념 카테고리에 대응되는 신경망 기반의 언어모델의 공간 벡터에 프로젝션할 수 있다.
공간 벡터는 신경망 언어모델에서 입력될 자동 완성 단어로 추천된 적어도 하나의 단어가 위치한 개념 카테고리 공간일 수 있다.
프로세서(250)는, 사용자 고유 단어의 벡터와 추천된 적어도 하나의 단어의 벡터 사이의 코사인 유사도를 판단하여, 판단된 유사도가 지정된 값 이상인 경우 추천된 적어도 하나의 단어가 포함된 개념 카테고리를 사용자 고유 단어의 개념 카테고리로 판단할 수 있다.
프로세서(250)는, 판단된 유사도를 바탕으로, 사용자 고유 단어의 우선 순위가 지정된 상위 순위에 포함된 경우 사용자 고유 단어를 자동 완성 추천 단어로 제공할 수 있다.
프로세서(250)는, 통신부(210)에 의해 타 단말장치로부터 사용자 기반 언어 모델 정보를 요청하는 신호에 따라(in response to), 타 단말장치에 사용자 기반 사전 정보를 제공할 수 있다.
프로세서(250)는, 전자 장치로부터 인증된 타 단말장치에 사용자 기반 사전 정보를 제공할 수 있다.
프로세서(250)는, 사용자 고유 단어의 사용 빈도가 지정된 기간 동안 지정된 횟수 이하인 경우, 사용자 기반 사전에서 사용자 고유 단어를 삭제할 수 있다.
도 3은, 본 개시의 일 실시 예에 따른, 종래의 신경망 언어 모델에서 입력할 자동완성 단어를 예측하는 방법을 설명하기 위한 도면이다.
종래의 신경망 기반 언어모델은 문맥적 워드 임베딩(semantic word embedding)에 의한 자동입력 단어를 예측할 수 있다.
도 3을 참조하면, 예를 들어, 전자 장치(100)에 입력된 문장이 "Meet you at the(401)"인 경우, 신경망 언어모델에서는 "Meet you at the(401)"의 의미를 분석한다. 사용자가 전자 장치(100)에서 입력한 문장 "at the _(400)"의 사용빈도 및 사용된 문장의 의미를 바탕으로 "at the _"가 "장소"를 나타낸 것으로 판단된 경우, 신경망은 전자 장치(100)에 장소를 나타내는 "airport", "hotel", "office" 등을 자동입력 단어(402)로 예측하여 제공할 수 있다.
일반적으로, 신경망에서는Semantic word embedding 알고리즘을 이용하여 비슷한 의미를 가지는 단어들의 벡터 코사인 유사도에 따라 자동 완성 단어를 예측할 수 있다.
즉, 신경망 기반 semantic word embedding 방식에서는 추천된 상위 우선 순위의 단어들(airport, hotel, office)의 의미(예를 들어, 장소)가 유사한 것을 알 수 있다.
그러나, 신경망 기반 semantic word embedding 알고리즘에서는 신경망 기반 언어모델에 학습된 단어들만이 자동 완성 단어로 예측되어 전자 장치(100)에 제공될 수 있다. 따라서, 신경망 언어 모델에 의해 학습되지 않은 사용자 단말 기반의 사용자 고유 단어는 전자 장치(100)에 자주 입력되더라도 자동입력 단어로 추천되지 않는다.
도 4a 및 도 4b는, 종래의 n-gram 알고리즘에 의해 입력될 자동완성 단어를 추천하는 방법을 설명하기 위한 도면이다.
도 4a는 전자 장치(100)가 종래의 언어모델에 학습되지 않은 사용자 고유 단어가 포함된 문장을 입력 받는 것을 도시한 도면이다.
도4a를 참조하면, 전자 장치(100)는 사용자로부터 "Meet you at the" 이후에 신경망 기반 또는 n-gram 기반 언어모델에서 추천한 단어인 "hotel", "office", "airport"가 아닌 "Galbijip"을 입력 받을 수 있다. 이때, "Galbijip"은 신경망 언어 모델에 저장되어 있지 않은 경우, 전자 장치(100)는 다음에 "Meet you at" 또는 "Meet you at the" 등과 문맥의 의미가 비슷한 단어가 입력되는 경우 "Galbijip"을 자동 완성 추천 단어로 제공할 수 없다.
도 4b는 n-gram 알고리즘을 이용하여 사용자 고유 단어를 자동 완성 단어로 추천하는 방법을 도시한 도면이다.
도 4b를 참조하면, 전자 장치(100)는 도 4a에서 입력된 "Meet you at the"와 동일한 어순(Meet, you, at, the)으로 동일한 단어들이 입력된 경우, 사용자가 이전에 "Meet you at the" 이후에 입력했던 "Galbijip"을 자동 완성 단어로 추천할 수 있다. 즉, n-gram 방식에서는 입력된 "Meet", "you", "at", "the"의 개별 단어들과 개별 단어들의 입력 순서를 바탕으로 입력될 자동 완성 단어를 예측할 수 있다.
그러나, 종래의 n-gram 방식은 신경망 기반 알고리즘과 달리 "Meet you at the"와 비슷한 문맥적 의미를 가지는 "See"를 "Meet"의 자리에 입력하는 경우, "See", "you", "at"의 순서에 따른 개별 단어만을 인식하여 분석하므로 "See you at"이 "Meet you at"과 유사한 의미인 것을 판단할 수 없다. 따라서, "See you at" 이후에 자동입력 단어로 사용자 고유 단어인 "Galijip"이 전자 장치(100)에 추천단어로 제공될 수 없다.
또 다른 예를 들어, 전자 장치(100)에 "Go to"라는 텍스트가 입력된 경우, n-gram 방식은 "Go to"의 문맥적 의미를 판단하지 않고 "Go", "to"의 입력 순서 및 개별 언어만 판단하므로 자동 완성 단어로 추천되는 단어들(play, Picnic, school, there)의 의미들 사이에 유사성이 없다. 또한, 전자 장치(100)는 "Go to" 이후에 입력될 자동 완성 단어로 사용자 고유 단어인 "Galbijip"을 예측하여 추천할 수 없다.
즉, 도 3에서 상술한 semantic word embedding 방식과 달리, 도 4b에 도시된 바와 같이, n-gram 방식에서는 추천된 단어들의 의미에 유사성이 없음을 알 수 있다. n-gram 방식에서는 "Meet you at", "See you at" 또는 "Go to" 등이 입력되는 경우, 입력된 텍스트의 문맥적 의미를 바탕으로 의미적으로 비슷한 개념 카테고리에 포함되는 단어를 자동 완성 단어로 추천하지 않는다.
도 5a 및 도 5b는, 본 개시의 일 실시 예에 따른, 신경망에서 사용자 고유 단어를 입력될 자동완성 단어로 추천하는 방법을 설명하기 위한 도면이다.
도 5a는, 본 개시의 일 실시 예에 따른, 신경망에서 사용자 고유 단어를 자동완성 단어로 예측하는 방법을 도시한 도면이다.
도 5a를 참조하면, 전자 장치(100)는 도 4a에서 설명한 바와 같이, 신경망에서 예측하여 추천한 자동 완성 단어들 중 하나가 아닌 사용자 고유 단어인 "Galbijip"(502)을 신경망에서 학습된 단어로 이루어진 텍스트(501) 이후에 입력할 수 있다.
본 개시의 일 실시 예에 따라, 전자 장치(100)에 신경망 언어 모델에 의해 "Meet you at the"(501)와 의미상 비슷한 텍스트인 "See you at the"(503)가 입력되는 경우, 전자 장치(100)는 "at the _"(400)에서 "at the"이후에 입력될 단어(504)로 자동 완성 단어로 예측하여 제공할 수 있다.
또한, 전자 장치(100)는 "See you at the"(503)의 문맥적 의미를 "Meet you at the"(501)와 비슷하다고 판단하여 "See you at the"(503) 이후에 입력될 자동 완성 단어로 사용자 고유 단어인 "Galbijip"을 신경망 기반 언어모델로부터 추천된 "hotel", "office"와 함께 제공할 수 있다.
즉, 본 개시의 일 실시 예에 따른, 전자 장치(100)는 사용자 고유 단어(Galbijip)의 개념 카테고리를 "hotel", "office" 의 개념 카테고리와 동일한 것으로 판단할 수 있다. 예를 들어, 전자 장치(100)는 "Galbijip"을 사용자가 입력하는 문장의 문맥적 의미를 바탕으로 "장소" 개념 카테고리에 포함되는 단어로 판단할 수 있다. 따라서, 신경망 언어 모델에서 제공되는 장소 개념 카테고리에 포함되는 "hotel" 및 "office"와 함께 자동 완성 단어로 예측되어 추천될 수 있다.
도 5b는, 본 개시의 일 실시 예에 따른, 전자 장치(100)에 의미상 유사한 텍스트가 입력되는 경우, 사용자 고유 단어를 자동 완성 단어로 추천하여 제공하는 것을 도시한 도면이다.
도 5b를 참조하면, 전자 장치(100)는 신경망 언어모델들에 의해 학습된 적어도 하나의 단어의 의미 정보에 대응되는 텍스트가 입력되는 경우, 텍스트 이후에 입력될 수 있는 자동완성 추천단어로 신경망 기반의 언어모델로부터 추천된 적어도 하나의 단어와 함께 사용자 고유 단어를 제공할 수 있다.
예를 들어, 도 5a에서 도시된 "Meet you at"이 도 5b와 같이 전자 장치(100)에 재입력되는 경우, 전자 장치(100)는 "Meet you at"의 의미 정보를 바탕으로 이후에 입력될 수 있는 "장소" 또는 "시간"을 의미하는 자동 완성 추천단어인 "6:00", "Galbijip", "Park", "The place"를 제공할 수 있다.
또 다른 예를 들어, "See you at the"가 전자 장치(100)에 입력되는 경우, 전자장치(100)는 "See you at the"의 문맥을 바탕으로 다음에 입력될 수 있는 "장소" 또는 "시간"을 의미하는 자동 완성 추천 단어인 "Night", "The place", "Galbijip", "Park"를 제공할 수 있다.
또 다른 예를 들어, "Go to"가 전자 장치(100)에 입력되는 경우, 전자 장치(100)는 "Go to"의 문맥을 바탕으로 다음에 입력될 수 있는 자동 완성 추천 단어로 "장소"를 의미하는 자동 완성 추천 단어인 "Yummy house", "Galbijip", "Starbucks", "there"를 제공할 수 있다.
상술한 실시 예들에서, "Galbijip"은 도 5a 단계에서 사용자 기반 언어모델에 "장소" 개념 카테고리에 저장된 사용자 고유단어일 수 있으며, 추천된 단어로서 우선순위가 지정된 상위 순위에 포함된 단어일 수 있다.
상술한 바와 같이, 전자 장치(100)는 자동완성 추천단어로 우선 순위가 지정된 상위 개수의 단어를 제공할 수 있다. 도 5b에서는 4개의 추천단위를 제공하는 것을 도시하였으나 이는 일 실시 예일 뿐 이에 한정되지 않는다. 또한, 추천 단어를 제공하는 GUI(Graphic User Interface)는 다양하게 변형하여 구현될 수 있다.
도 6은, 본 개시의 일 실시 예에 따른, 사용자 기반 사전의 개념 카테고리를 설명하기 위한 도면이다.
전자 장치(100)는 사용자로부터 사용자 고유 단어와 서버(200)의 신경망 기반 언어모델(310)에 의해 학습된 적어도 하나의 단어가 포함된 문장을 입력 받을 수 있다.
예를 들어, 문장은 "Meet you at the Galbijip", "See you at the PFC", "Go to Anna's home" 등 다양할 수 있다.
전자 장치(100)는 신경망 언어모델들에 의해 학습된 적어도 하나의 단어의 의미 정보를 바탕으로 사용자 고유 단어의 개념 카테고리를 판단할 수 있다.
예를 들어, "Meet you at the", "See you at the", "Go to"는 신경망 언어모델(영어)(310)에 의해 학습된 단어들을 포함하는 텍스트일 수 있다. 신경망 semantic word embedding 알고리즘에 의해 "Meet you at the"의 "at the _"(400)에서 "at the" 다음에 입력될 단어는 장소(place)(350)를 의미하는 단어들(예를 들어, airport, hotel, office, home 등)을 포함할 수 있다.
또한, "at the _"(400)에서 "at the" 다음에 입력될 단어는 시간(time)(360)을 의미하는 단어들(예를 들어, end, same, next 등)을 포함할 수 있다.
따라서, 전자 장치(100)는 신경망 언어모델(310)에 의해 학습된 적어도 하나의 단어들(350, 360)의 개념 카테고리(place, time)를 바탕으로, 사용자 기반 사전(330)에서 사용자 고유 단어 "Galbijip", "PFC", "Anna's home"의 개념 카테고리를 "장소"로 분류하여 저장하고 사전을 업데이트할 수 있다.
예를 들어, 사용자에 의해 전자 장치(100)에 입력된 "Galbijip", "PFC", "Anna's home" 등의 고유 단어와 서버(200)의 신경망 언어모델(310)의 장소 카테고리에 포함된 단어들(350)의 코사인 유사도가 높은 경우, "Galbijip", "PFC", "Anna's home"의 개념 카테고리는 "장소" 카테고리로 분류되어 전자 장치(100)의 사용자 기반 사전(330)에 저장될 수 있다.
또 다른 예를 들어, "PFC"가 서버(200)의 신경망 언어모델(310)에 포함된 단어들 중 시간 카테고리에 포함된 단어들(360)과 코사인 유사도가 높은 경우, 사용자 고유 단어인 "PFC"는 전자 장치(100)의 사용자 기반 사전(330)의 시간 카테고리에 추가되어 업데이트될 수 있다.
상술한 예시는 본 개시를 설명하기 위한 일 실시 예일 뿐, 이에 한정되지 않으며 다양한 개념 카테고리에 포함된 다양한 단어들로 구현될 수 있다.
도 7은, 본 개시의 일 실시 예에 따른, 사용자 기반 언어모델의 개념 카테고리를 판단하는 방법을 설명하기 위한 도면이다.
신경망 언어 모델에 포함된 단어들은 각각의 공간 벡터 값을 가질 수 있다. 도 7의 좌측 도면을 참조하면, 신경망 언어모델에서 장소 개념 카테고리 공간 상에 저장된 단어들은 각각의 위치벡터를 가지는 것을 알 수 있다.
벡터 공간상에서 각각의 단어의 코사인 유사도가 "0"의 값에 가까울수록 신경망 방식에서는 의미가 유사한 것으로 판단될 수 있다.
예를 들어, 도 7의 좌측 도면에서 hotel, airport, office가 "0"에 가장 가까운 단어들이다. 따라서, 도 4a에 도시된 바와 같이, 종래의 신경망 방식에서는 "Meet you at the" 이후에 입력될 수 있는 자동 완성 추천 단어로서 장소 카테고리에서 우선순위가 높은 "airport", "hotel", "office"를 추천 단어로 예측할 수 있다.
본 개시의 일 실시 예에 따라, 전자 장치(100)는 도 5a 및 도 5b에서 설명한 자동 완성 단어로 추천된 신경망 언어모델에 저장된 단어의 개념 카테고리 공간 벡터에 사용자 고유 단어를 프로젝션할 수 있다. 전자 장치(100)는 사용자 고유 단어를 신경망에 입력 값으로 전송하여 사용자 고유 단어가 포함되는 개념 카테고리에 대응되는 신경망 기반의 언어 모델의 공간 벡터에 사용자 고유 단어를 프로젝션할 수 있다.
따라서, 도 7의 우측 도면에 도시된 바와 같이, 사용자 고유 단어(701)와 신경망 언어모델에서 자동 완성 단어로 추천된 적어도 하나의 단어들은 동일한 공간 벡터 상에 각각에 대응되는 벡터에 위치할 수 있다.
예를 들어, 사용자 고유 단어(701)의 벡터는 "장소" 개념 카테고리 공간 벡터 상에서 코사인 유사도가 "0"값의 위치에 위치할 수 있다. 즉, 도 5a 및 도 5b에서 예로 든, 전자 장치(100)에 입력된 "Meet you at", "See you at" 등의 문장 이후에 입력될 단어로서 장소 개념 카테고리 중 학습된 문장의 의미와 문맥적으로 가장 유사도가 높은 단어가 "Galbijip"(701)일 수 있다. 또한, "Galijip"(701) 다음으로 hotel의 코사인 유사도가 0에 가깝고, hotel 다음으로 office의 코사인 유사도가 0에 가까운 것을 알 수 있다. 따라서, 도 5a에 도시된 바와 같이, "See you at the" 이후에 입력될 자동입력 추천 단어로 우선순위가 높은 "Galbijip", "hotel", "office"가 제공될 수 있다.
또한, 전자 장치(100)는 사용자 고유 단어의 벡터와 신경망 기반 언어모델로부터 입력될 자동 완성 단어로 추천된 적어도 하나의 단어의 벡터 사이의 코사인 유사도를 판단하여, 판단된 유사도가 지정된 값 이상인 경우 추천된 적어도 하나의 단어가 포함된 개념 카테고리를 사용자 고유 단어의 개념 카테고리로 판단할 수 있다.
예를 들어, "PCF"라는 사용자 고유 단어가 신경망 언어모델의 "장소" 개념 카테고리 및 "시간" 개념 카테고리에 동시에 프로젝션 된 경우, "장소" 개념 카테고리 내에 위치한 신경망 언어모델에 의해 학습된 단어들의 벡터와 "PCF"의 벡터 사이의 코사인 유사도와 "시간" 개념 카테고리 내에 위치한 신경망 언어 모델에 의해 단어들의 벡터와 "PCF"의 벡터 사이의 코사인 유사도는 상이한 값이 가질 수 있다.
이때, 코사인 유사도가 "0"에 더 가까운 개념 카테고리를 "PCF"의 개념 카테고리로 판단할 수 있다. 따라서, 전자 장치(100)는 판단된 사용자 고유 단어의 개념 카테고리에 사용자 고유 단어를 추가하여 사용자 기반 사전에 저장할 수 있다.
도 8은, 본 개시의 일 실시 예에 따른, 사용자 기반 언어모델을 제공하기 위한 방법을 설명하기 위한 순서도이다.
S801단계에서, 전자 장치(100)는 사용자 고유 단어 및 신경망(Neural Network, NN) 기반 언어 모델(Language Model, LM)에 의해 학습된 단어가 포함된 문장을 입력 받을 수 있다.
S802 단계에서, 전자 장치(100)는 NN 기반 LM에서 학습된 단어의 의미 정보를 바탕으로 사용자 고유 단어의 개념 카테고리를 판단할 수 있다. 개념 카테고리를 판단하는 방법은 본 개시에서 상세히 상술하였으므로 여기에서는 생략한다.
S803 단계에서, 전자 장치(100)는 판단된 개념 카테고리별로 사용자 고유 단어를 사용자 기반의 사전에 추가하여 업데이트할 수 있다.
따라서, 상술한 실시 예에 따라, 전자 장치(100)는 사용자 단말에 자주 사용되는 사용자 기반 사전을 제공할 수 있다.
S805 단계에서, 전자 장치(100)에는 신경망 기반 언어 모델에 의해 학습된 단어의 의미 정보에 대응되는 텍스트가 사용자에 의해 입력될 수 있다.
S807 단계에서, 전자 장치(100)는 입력된 텍스트의 문맥적 의미를 바탕으로 입력된 텍스트 이후에 입력될 수 있는 자동 완성 추천 단어로 사용자 고유 단어를 사용자 기반 사전으로부터 제공할 수 있다.
또한, 본 개시의 일 실시 예에 따라, 전자 장치(100)는 타 단말장치로부터 사용자 기반 사전 정보를 요청 받을 수 있다. 전자 장치(100)는 타 단말 장치에 사용자 기반 사전 정보를 제공할 수 있다.
예를 들어, 전자 장치(100)는 스마트폰이고, 타 단말 장치는 스마트 텔레비전일 수 있다. 사용자는 스마트폰의 가상 키보드를 이용하여 스마트 텔레비전의 화면에 텍스트를 입력할 수 있다. 이때, 스마트 텔레비전은 스마트폰에 스마트폰의 사용자 기반 사전 정보를 요청할 수 있다.
본 개시의 일 실시 예에 따라, 전자 장치(100)는 타 단말 장치가 전자 장치(100)로부터 인증된 경우 사용자 기반 언어 모델을 제공할 수 있다.
예를 들어, 스마트폰(100)이 스마트 텔레비전에 대한 데이터 공유를 인증한 경우, 스마트폰(100)은 스마트 텔레비전에 스마트폰(100)에 대응되는 사용자 기반 사전 정보를 제공할 수 있다.
따라서, 스마트 텔레비전에서는 입력하지 않았던 사용자 고유 단어일지라도, 스마트 텔레비전에 입력된 문장의 의미 정보를 바탕으로 스마트폰(100) 대응 사용자 기반 사전에 포함된 사용자 고유 단어가 자동완성 추천 단어로 스마트 텔레비전에 제공될 수 있다.
또는, 전자 장치(100)는 타 단말장치의 요청에 대한 응답으로 전자 장치(100)의 사용자 기반 사전 정보를 타 단말 장치에 작은 사이즈의 텍스트 정보 파일로 제공할 수 있다. 예를 들어, 전자 장치(100)는 사용자 기반 사전을 개인화 사전으로 생성하여 전자 장치(100)에 저장할 수도 있다.
본 개시의 일 실시 예에 따라, 전자 장치(100)는 사용자 기반 사전에 저장된 사용자 고유 단어의 사용 빈도가 지정된 기간 동안 지정된 횟수 이하인 경우, 사용자 기반 언어 모델에서 사용자 고유 단어를 삭제할 수 있다. 이때, 지정된 기간 및 지정된 횟수는 다양하게 구현될 수 있다. 이를 통해, 전자 장치(100)의 메모리 용량을 효율적으로 확보할 수 있다.
도 9는, 본 개시의 일 실시 예에 따른, 전자 장치(100)를 구성하는 상세한 블록도이다.
도 9에 도시된 바와 같이, 전자 장치(100)는 영상 획득부(910), 영상 처리부(920), 디스플레이부(930), 통신부(940), 메모리(950), 오디오 처리부(960), 오디오 출력부(970), 감지부(980) 및 프로세서(990) 중 적어도 하나를 포함할 수 있다. 한편, 도 9에 도시된 전자 장치(100)의 구성은 일 예에 불과하므로, 반드시 전술된 블록도에 한정되는 것은 아니다.
실시 예에 따라서는, 도 9에 도시된 구성 요소 중 일부는 생략 또는 변경될 수 있고, 다른 구성 요소가 더 추가될 수도 있다.
메모리(930)는 전자 장치(100)를 구동하기 위한 다양한 프로그램 모듈을 포함할 수 있으나, 각종 프로그램 모듈들은 전자 장치(100)의 종류 및 특성에 따라 일부 생략되거나 변형 또는 추가될 수 있음은 물론이다.
메모리(930)는 내장 메모리 또는 외장 메모리를 포함할 수 있다. 내장 메모리는, 휘발성 메모리 또는 비휘발성 메모리(non-volatile Memory) 중 적어도 하나를 포함할 수 있다. 휘발성 메모리는 예를 들어 DRAM(dynamic RAM), SRAM(static RAM), SDRAM(synchronous dynamic RAM) 등일 수 있다. 비휘발성 메모리는 예를 들어 OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, NAN flash memory, NOR flash memory 등일 수 있다. 또한, 내장 메모리는 Solid State Drive(SSD)일 수 있다.
외장 메모리는 flash drive, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital) 또는 Memory Stick 등을 포함할 수 있다. 외장 메모리는 다양한 인터페이스를 통하여 전자 장치(100)와 기능적으로 연결될 수 있다. 또한, 전자 장치(100)는 하드 드라이브와 같은 저장 장치를 더 포함할 수 있다.
영상 획득부(910)는 다양한 소스를 통해 영상 데이터를 획득할 수 있다. 예를 들어, 영상 획득부(910)는 외부 서버로부터 영상 데이터를 수신할 수 있으며, 전자 장치(100)의 외부에 위치하는 장치로부터 영상 데이터를 수신할 수 있다.
또는, 영상 획득부(910)는 외부 환경을 촬영하여 영상 데이터를 획득할 수 있다. 예로, 영상 획득부(910)는 전자 장치(100)의 외부 환경을 촬영하는 카메라로 구현될 수 있다. 영상 획득부(910)를 통해 획득된 영상 데이터는 영상 처리부(920)에서 처리될 수 있다.
영상 처리부(920)는 영상 획득부(910)에서 수신한 영상 데이터에 대한 처리를 수행하는 구성요소이다. 영상 처리부(920)에서는 영상 데이터에 대한 디코딩, 스케일링, 노이즈 필터링, 프레임 레이트 변환, 해상도 변환 등과 같은 다양한 이미지 처리를 수행할 수 있다.
디스플레이부(930)는 터치 스크린 또는 플렉서블 스크린 등을 포함할 수 있다.
통신부(940)는 다양한 유형의 통신방식에 따라 다양한 유형의 외부 기기와 통신을 수행하는 구성이다. 통신부(940)는 와이파이칩(941), 블루투스 칩(942), 무선 통신 칩(943), NFC 칩(944) 중 적어도 하나를 포함할 수 있다. 프로세서(990)는 통신부(940)를 이용하여 외부 서버 또는 각종 외부 기기와 통신을 수행할 수 있다.
특히, 와이파이 칩(941), 블루투스 칩(942) 각각은 WiFi 방식, Bluetooth 방식으로 통신을 수행할 수 있다. 와이파이 칩(941)이나 블루투스 칩(942)을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다.
무선 통신 칩(943)은 IEEE, Zigbee, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution) 등과 같은 다양한 통신 규격에 따라 통신을 수행하는 칩을 의미한다. NFC 칩(944)은 135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 동작하는 칩을 의미한다.
메모리(950)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 메모리(950)는 프로세서(990)에 의해 액세스되며, 프로세서(990)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 본 개시에서 메모리라는 용어는 메모리(950), 프로세서(990) 내 롬(992), 램(991) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다.
또한, 메모리(950)에는 디스플레이부(930)의 디스플레이 영역에 표시될 각종 화면을 구성하기 위한 프로그램 및 데이터 등이 저장될 수 있다.
오디오 처리부(960)는 영상 콘텐트의 오디오 데이터에 대한 처리를 수행하는 구성요소이다. 오디오 처리부(960)에서는 오디오 데이터에 대한 디코딩이나 증폭, 노이즈 필터링 등과 같은 다양한 처리가 수행될 수 있다. 오디오 처리부(960)에서 처리된 오디오 데이터는 오디오 출력부(970)로 출력될 수 있다.
특히, 오디오 출력부(970)는 스피커로 구현될 수 있으나, 이는 일 실시 예에 불과할 뿐, 오디오 데이터를 출력할 수 있는 출력 단자로 구현될 수 있다.
센서(910)는 다양한 사용자 인터렉션을 감지할 수 있는 복수의 센서를 포함할 수 있다. 센서(910)는 모션센서, 자이로 센서(Gyroscope sensors), 가속도 센서(acceleration sensors), 바로미터(Barometer), 열감지 센서(thermal sensors), 습도 센서(humidity sensors), 초음파 센서 등 다양한 센서들을 포함할 수 있다. 상술한 예시들은 일 실시 예일 뿐, 이에 한정되지 아니한다.
즉, 센서(980)는 전자 장치(100)를 기반으로 이루어지는 상태 변화를 감지하고, 그에 따른 감지 신호를 생성하여 프로세서(990)로 전달할 수 있다.
마이크(미도시)는 전자 장치(100)를 통하여 전자 장치(100) 및 타 단말장치 중 적어도 하나를 제어하기 위한 사용자 음성을 수신하여, 음성 인식 모듈을 통하여 사용자 음성을 인식할 수 있다. 그리고, 인식된 결과를 프로세서(990)로 전송할 수 있다. 이 때, 음성 인식 모듈은 마이크가 아닌 프로세서(990)의 일부 또는 전자 장치(100)의 외부에 위치할 수도 있다.
프로세서(990)(또는, 프로세서)는 메모리(950)에 저장된 각종 프로그램을 이용하여 전자 장치(100)의 전반적인 동작을 제어할 수 있다.
프로세서(990)는 RAM(991), ROM(992), 그래픽 처리부(993), 메인 CPU(994), 제1 내지 n 인터페이스(995-1 ~ 995-n), 버스(996)로 구성될 수 있다. 이때, RAM(991), ROM(992), 그래픽 처리부(993), 메인 CPU(994), 제1 내지 n 인터페이스(995-1 ~ 995-n) 등은 버스(996)를 통해 서로 연결될 수 있다.
RAM(991)은 O/S 및 어플리케이션 프로그램을 저장한다. 구체적으로, 전자 장치(100)가 부팅되면 O/S가 RAM(991)에 저장되고, 사용자가 선택한 각종 어플리케이션 데이터가 RAM(991)에 저장될 수 있다.
ROM(992)에는 시스템 부팅을 위한 명령어 세트 등이 저장된다. 턴 온 명령이 입력되어 전원이 공급되면, 메인 CPU(994)는 ROM(992)에 저장된 명령어에 따라 메모리(950)에 저장된 O/S를 RAM(991)에 복사하고, O/S를 실행시켜 시스템을 부팅시킨다. 부팅이 완료되면, 메인 CPU(994)는 메모리(950)에 저장된 각종 어플리케이션 프로그램을 RAM(991)에 복사하고, RAM(991)에 복사된 어플리케이션 프로그램을 실행시켜 각종 동작을 수행한다.
그래픽 처리부(993)는 아이템, 이미지, 텍스트 등과 같은 다양한 객체를 포함하는 화면을 생성한다.
메인 CPU(994)는 메모리(950)에 액세스하여, 메모리(950)에 저장된 O/S를 이용하여 부팅을 수행한다. 그리고, 메인 CPU(994)는 메모리(950)에 저장된 각종 프로그램, 콘텐트, 데이터 등을 이용하여 다양한 동작을 수행한다.
제1 내지 n 인터페이스(995-1 내지 995-n)는 상술한 각종 구성요소들과 연결된다. 제1 내지 n 인터페이스(995-1 내지 995-n) 중 하나는 네트워크를 통해 외부 장치와 연결되는 네트워크 인터페이스가 될 수도 있다.
다양한 실시 예에 따른 장치 (예: 모듈들 또는 전자 장치(100)) 또는 방법 (예: 동작들)은, 예컨대, 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)에 유지되는(maintain) 프로그램들 중 적어도 하나의 프로그램에 포함된 명령어(instructions)를 실행하는 적어도 하나의 컴퓨터(예: 프로세서 990)에 의하여 수행될 수 있다.
프로그램은, 예로, 하드디스크, 플로피디스크, 마그네틱 매체 (magnetic media)(예: 자기테이프), 광기록 매체 (optical media)(예: CD-ROM (compact disc read only memory), DVD (digital versatile disc), 자기-광 매체 (magneto-optical media)(예: 플롭티컬 디스크 (floptical disk)), 하드웨어 장치 (예: ROM (read only memory), RAM (random access memory), 또는 플래시 메모리 등) 등과 같은 컴퓨터로 읽을 수 저장 매체에 포함될 수 있다. 
저장 매체는 일반적으로 전자 장치(100)의 구성의 일부로 포함되나, 전자 장치(100)의 포트(port)를 통하여 장착될 수도 있으며, 또는 전자 장치(100)의 외부에 위치한 외부 기기(예로, 클라우드, 서버 또는 다른 전자 기기)에 포함될 수도 있다.  또한, 프로그램은 복수의 저장 매체에 나누어 저장될 수도 있으며, 이 때, 복수의 저장 매체의 적어도 일부는 전자 장치(100)의 외부 기기에 위치할 수도 있다.
또한, 이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
100: 전자 장치 200: 서버
210: 통신부 230: 저장부
240: 입력부 250: 프로세서
310: 신경망 기반 언어모델 330: 사용자 기반 사전

Claims (18)

  1. 개인화 서비스를 지원하기 위한 전자 장치에 있어서,
    사용자 기반 사전(dictionary)을 저장하는 저장부;
    사용자 고유 단어와 신경망 기반의 언어모델에 의해 학습된 적어도 하나의 단어가 포함된 문장을 입력 받는 입력부; 및
    상기 사용자 고유 단어가 상기 신경망 기반의 언어모델에 포함되지 않은 경우, 상기 입력된 문장의 의미 정보(semantic information)를 바탕으로 상기 사용자 고유 단어의 개념 카테고리를 판단하고, 상기 사용자 고유 단어를 상기 사용자 기반 사전에 추가하여 업데이트하고, 텍스트를 입력 받도록 상기 입력부를 제어하고, 상기 학습된 적어도 하나의 단어의 의미 정보에 대응하는 상기 텍스트가 입력된 경우, 상기 텍스트 이후에 입력될 수 있는 자동 완성 추천단어로 상기 사용자 고유 단어를 제공하는 프로세서;를 포함하고,
    상기 프로세서는,
    상기 사용자 고유 단어를 상기 판단된 개념 카테고리에 대응되는 상기 신경망 기반의 언어 모델의 공간 벡터에 프로젝션(projection)하고,
    상기 공간 벡터는, 상기 추천된 적어도 하나의 단어가 위치한 개념 카테고리 공간이며,
    상기 프로세서는,
    상기 사용자 고유 단어의 벡터와 상기 추천된 적어도 하나의 단어의 벡터 사이의 코사인 유사도를 판단하여, 상기 판단된 유사도가 지정된 값 이상인 경우 상기 추천된 적어도 하나의 단어가 포함된 개념 카테고리를 상기 사용자 고유 단어의 개념 카테고리로 판단하는 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 텍스트 이후에 입력될 수 있는 자동완성 추천단어로 상기 신경망 기반의 언어모델로부터 추천된 적어도 하나의 단어와 함께 상기 사용자 고유 단어를 제공하는 전자 장치.
  3. 제2항에 있어서,
    상기 프로세서는,
    상기 자동완성 추천단어로서 우선 순위가 지정된 상위 개수의 단어를 제공하는 전자 장치.
  4. 삭제
  5. 삭제
  6. 제3항에 있어서,
    상기 프로세서는,
    상기 판단된 유사도를 바탕으로, 상기 사용자 고유 단어의 우선 순위가 상기 지정된 상위 순위에 포함된 경우 상기 사용자 고유 단어를 상기 자동 완성 추천 단어로 제공하는 전자 장치.
  7. 제1항에서,
    외부 기기와 통신을 수행하는 통신부;를 더 포함하고,
    상기 프로세서는,
    상기 통신부에 의해 타 단말장치로부터 상기 사용자 기반 사전 정보를 요청하는 신호에 따라(in response to), 상기 타 단말장치에 상기 사용자 기반 사전 정보를 제공하는 전자 장치.
  8. 제7항에 있어서,
    상기 프로세서는,
    상기 전자 장치로부터 인증된 상기 타 단말장치에 상기 사용자 기반 사전 정보를 제공하는 전자 장치.
  9. 제1항에 있어서,
    상기 프로세서는,
    상기 사용자 고유 단어의 사용빈도가 지정된 기간 동안 지정된 횟수 이하인 경우, 상기 사용자 기반 사전에서 상기 사용자 고유 단어를 삭제하는 전자 장치.
  10. 전자 장치의 개인화 서비스를 지원하기 위한 제어 방법에 있어서,
    사용자 고유 단어와 신경망 기반의 언어모델에 의해 학습된 적어도 하나의 단어가 포함된 문장을 입력 받는 단계;
    상기 입력된 문장의 의미 정보(semantic information)를 바탕으로 상기 사용자 고유 단어의 개념 카테고리를 판단하는 단계;
    상기 사용자 고유 단어를 사용자 기반 사전에 추가하여 업데이트하는 단계; 및
    상기 학습된 적어도 하나의 단어의 의미 정보에 대응하는 텍스트가 입력된 경우, 상기 텍스트 이후에 입력될 수 있는 자동 완성 추천단어로 상기 사용자 고유 단어를 제공하는 단계;를 포함하고,
    상기 업데이트하는 단계는 상기 사용자 고유 단어를 상기 판단된 개념 카테고리에 대응되는 상기 신경망 기반의 언어 모델의 공간 벡터에 프로젝션하는 단계를 더 포함하고,
    상기 공간 벡터는, 상기 추천된 적어도 하나의 단어가 위치한 개념 카테고리 공간이며,
    상기 업데이트하는 단계는,
    상기 사용자 고유 단어의 벡터와 상기 추천된 적어도 하나의 단어의 벡터 사이의 코사인 유사도를 판단하는 단계; 및
    상기 판단된 유사도가 지정된 값 이상인 경우 상기 추천된 적어도 하나의 단어가 포함된 개념 카테고리를 상기 사용자 고유 단어의 개념 카테고리로 판단하는 단계를 더 포함하는 방법.
  11. 제10항에 있어서,
    상기 제공하는 단계는,
    상기 텍스트 이후에 입력될 수 있는 자동완성 추천단어로 상기 신경망 기반의 언어모델로부터 추천된 적어도 하나의 단어와 함께 상기 사용자 고유 단어를 제공하는 단계;를 더 포함하는 방법.
  12. 제11항에 있어서,
    상기 제공하는 단계는,
    상기 자동완성 추천단어로서 우선 순위가 지정된 상위 개수의 단어를 제공하는 방법.
  13. 삭제
  14. 삭제
  15. ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈
    제12항에 있어서,
    상기 제공하는 단계는,
    상기 판단된 유사도를 바탕으로, 상기 사 용자 고유 단어의 우선 순위가 상기 지정된 상위 순위에 포함된 경우 상기 사용자 고유 단어를 상기 자동 완성 추천 단어로 제공하는 방법.
  16. ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈
    제10항에서,
    통신부를 통해 타 단말장치로부터 상기 사용자 기반 언어 모델 정보를 요청하는 신호를 수신하는 단계; 및
    상기 요청에 응답하여, 상기 타 단말장치에 상기 사용자 기반 언어 모델 정보를 제공하는 단계;를 더 포함하는 방법.
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    제16항에 있어서,
    상기 제공하는 단계는,
    인증된 상기 타 단말장치에 상기 사용자 기반 언어 모델 정보를 제공하는 방법.
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    제10항에 있어서,
    상기 업데이트하는 단계는,
    상기 사용자 고유 단어의 사용빈도가 지정된 기간 동안 지정된 횟수 이하인 경우, 상기 사용자 기반 사전에서 상기 사용자 고유 단어를 삭제하는 단계;를 더 포함하는 방법.
KR1020160134882A 2016-10-18 2016-10-18 전자 장치 및 그 제어 방법 KR102617717B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020160134882A KR102617717B1 (ko) 2016-10-18 2016-10-18 전자 장치 및 그 제어 방법
EP17862695.8A EP3522036B1 (en) 2016-10-18 2017-03-09 Electronic device that provides a user based dictionary using semantic word embedding of user-specific words that are not learned in a neural network-based language model and a control method therefor
US16/342,771 US11024300B2 (en) 2016-10-18 2017-03-09 Electronic device and control method therefor
PCT/KR2017/002572 WO2018074681A1 (ko) 2016-10-18 2017-03-09 전자 장치 및 그 제어 방법
CN201780078439.8A CN110100244B (zh) 2016-10-18 2017-03-09 电子装置及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160134882A KR102617717B1 (ko) 2016-10-18 2016-10-18 전자 장치 및 그 제어 방법

Publications (2)

Publication Number Publication Date
KR20180042577A KR20180042577A (ko) 2018-04-26
KR102617717B1 true KR102617717B1 (ko) 2023-12-27

Family

ID=62018795

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160134882A KR102617717B1 (ko) 2016-10-18 2016-10-18 전자 장치 및 그 제어 방법

Country Status (5)

Country Link
US (1) US11024300B2 (ko)
EP (1) EP3522036B1 (ko)
KR (1) KR102617717B1 (ko)
CN (1) CN110100244B (ko)
WO (1) WO2018074681A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108428446B (zh) * 2018-03-06 2020-12-25 北京百度网讯科技有限公司 语音识别方法和装置
KR102592907B1 (ko) * 2018-06-22 2023-10-23 삼성전자주식회사 텍스트 입력 디바이스 및 그 방법
US11188719B1 (en) 2018-10-22 2021-11-30 Wells Fargo Bank, N.A. Predictive text system
KR20200098068A (ko) * 2019-02-11 2020-08-20 삼성전자주식회사 단어 추천 방법 및 그 전자 장치
US11574026B2 (en) * 2019-07-17 2023-02-07 Avanade Holdings Llc Analytics-driven recommendation engine
KR20210050952A (ko) 2019-10-29 2021-05-10 삼성전자주식회사 뉴럴 네트워크를 이용하여 실험 조건을 최적화하는 장치 및 방법
US11657071B1 (en) * 2020-03-13 2023-05-23 Wells Fargo Bank N.A. Mapping disparate datasets
CN111382340A (zh) * 2020-03-20 2020-07-07 北京百度网讯科技有限公司 信息识别方法、信息识别装置和电子设备
US10915697B1 (en) * 2020-07-31 2021-02-09 Grammarly, Inc. Computer-implemented presentation of synonyms based on syntactic dependency
US11696153B2 (en) * 2020-08-13 2023-07-04 Samsung Electronics Co., Ltd. Transfer learning of network traffic prediction model among cellular base stations
JP2022051113A (ja) * 2020-09-18 2022-03-31 富士フイルムビジネスイノベーション株式会社 情報出力装置、質問生成装置、及びプログラム
CN112949280B (zh) * 2021-03-02 2023-07-07 中国联合网络通信集团有限公司 一种数据处理方法和装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271774A (ja) * 1994-03-30 1995-10-20 Sharp Corp 文章入力装置
US9318108B2 (en) * 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8180633B2 (en) * 2007-03-08 2012-05-15 Nec Laboratories America, Inc. Fast semantic extraction using a neural network architecture
KR101354020B1 (ko) * 2007-08-08 2014-01-22 에스케이 텔레콤주식회사 메시지 작성을 위한 단어 db 생성 방법, 단어 자동 완성방법 및 그를 위한 단말기
KR101495183B1 (ko) * 2008-12-01 2015-02-24 엘지전자 주식회사 단말기 및 그 제어 방법
KR101140724B1 (ko) 2009-08-31 2012-05-04 서울시립대학교 산학협력단 개념 네트워크 기반 사용자 프로파일 구성 방법 및 시스템과 이를 이용한 개인화 질의 확장 시스템
KR20120070782A (ko) 2010-12-22 2012-07-02 에스케이 텔레콤주식회사 단어 학습 서비스 시스템 및 방법
KR101388569B1 (ko) 2011-08-10 2014-04-23 한국전자통신연구원 연속어 음성인식 시스템에서 언어모델의 고유 명사 추가 장치 및 방법
KR101337786B1 (ko) 2011-10-26 2013-12-06 (주)정글시스템 한글 문장을 자동으로 완성하기 위한 한글 입력기 및 자동 문장 완성 방법
US8868592B1 (en) * 2012-05-18 2014-10-21 Google Inc. Providing customized autocomplete data
US9229924B2 (en) * 2012-08-24 2016-01-05 Microsoft Technology Licensing, Llc Word detection and domain dictionary recommendation
US9558743B2 (en) * 2013-03-15 2017-01-31 Google Inc. Integration of semantic context information
CN104376842A (zh) * 2013-08-12 2015-02-25 清华大学 神经网络语言模型的训练方法、装置以及语音识别方法
US9208779B2 (en) * 2013-09-06 2015-12-08 Google Inc. Mixture of n-gram language models
GB201321927D0 (en) * 2013-12-11 2014-01-22 Touchtype Ltd System and method for inputting text into electronic devices
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
WO2016068455A1 (ko) 2014-10-30 2016-05-06 주식회사 플런티코리아 적응적인 키보드 인터페이스를 제공하기 위한 방법 및 시스템, 대화 내용과 연동되는 적응적 키보드를 이용한 답변 입력 방법
CN104375989A (zh) * 2014-12-01 2015-02-25 国家电网公司 自然语言文本关键词关联网络构建系统
KR102380833B1 (ko) * 2014-12-02 2022-03-31 삼성전자주식회사 음성 인식 방법 및 음성 인식 장치

Also Published As

Publication number Publication date
EP3522036A1 (en) 2019-08-07
CN110100244A (zh) 2019-08-06
CN110100244B (zh) 2023-08-01
US20200058298A1 (en) 2020-02-20
EP3522036B1 (en) 2021-02-17
US11024300B2 (en) 2021-06-01
KR20180042577A (ko) 2018-04-26
EP3522036A4 (en) 2019-10-30
WO2018074681A1 (ko) 2018-04-26

Similar Documents

Publication Publication Date Title
KR102617717B1 (ko) 전자 장치 및 그 제어 방법
US10733360B2 (en) Simulated hyperlinks on a mobile device
JP6744314B2 (ja) クラウドソーシングに基づいてデジタルパーソナルアシスタントのための言語理解分類子モデルを更新すること
CN109243432B (zh) 话音处理方法以及支持该话音处理方法的电子设备
CN110785756B (zh) 用于数据内容过滤的方法和装置
BR112017013524B1 (pt) Dispositivo de computação, método e dispositivo de armazenamento legível por computador para conclusão de tarefas sem orientação dentro de assistentes pessoais digitais
US20160110327A1 (en) Text correction based on context
US10430040B2 (en) Method and an apparatus for providing a multitasking view
US11972761B2 (en) Electronic device for sharing user-specific voice command and method for controlling same
CN107291704B (zh) 处理方法和装置、用于处理的装置
US20150199338A1 (en) Mobile language translation of web content
US20200327893A1 (en) Information processing device and information processing method
WO2019109663A1 (zh) 一种跨语言搜索方法和装置、一种用于跨语言搜索的装置
CN108664141B (zh) 具有文档上下文自学习功能的输入法
KR102345625B1 (ko) 자막 생성 방법 및 이를 수행하는 장치
US11151995B2 (en) Electronic device for mapping an invoke word to a sequence of inputs for generating a personalized command
US20200035230A1 (en) System and method supporting context-specific language model
KR20180087608A (ko) 검색 서비스를 제공하는 시스템 및 방법
US11373634B2 (en) Electronic device for recognizing abbreviated content name and control method thereof
US11341965B2 (en) System for processing user utterance and operating method thereof
JP2020525933A (ja) グラフィカルキーボード内からのアプリケーション機能へのアクセス
KR102567003B1 (ko) 전자 장치 및 그 동작방법
US20220374465A1 (en) Icon based tagging
KR102280535B1 (ko) 장문 번역 방법 및 시스템
KR20210050484A (ko) 정보 처리 방법, 장치 및 저장 매체

Legal Events

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