KR102450973B1 - 단어 추천 방법 및 이를 위한 장치 - Google Patents

단어 추천 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR102450973B1
KR102450973B1 KR1020170154976A KR20170154976A KR102450973B1 KR 102450973 B1 KR102450973 B1 KR 102450973B1 KR 1020170154976 A KR1020170154976 A KR 1020170154976A KR 20170154976 A KR20170154976 A KR 20170154976A KR 102450973 B1 KR102450973 B1 KR 102450973B1
Authority
KR
South Korea
Prior art keywords
word
registered
words
input
text
Prior art date
Application number
KR1020170154976A
Other languages
English (en)
Other versions
KR20180125863A (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 US15/954,931 priority Critical patent/US10846477B2/en
Publication of KR20180125863A publication Critical patent/KR20180125863A/ko
Priority to US17/099,831 priority patent/US11556708B2/en
Application granted granted Critical
Publication of KR102450973B1 publication Critical patent/KR102450973B1/ko

Links

Images

Classifications

    • 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
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Machine Translation (AREA)
  • Audiology, Speech & Language Pathology (AREA)

Abstract

복수의 등록 단어의 시퀀스에 관한 정보를 저장하는 저장부, 복수의 등록 단어에 속하는 제 1 등록 단어에 제 1 단어가 붙은, 복수의 등록 단어에 속하지 않는 제 1 어절을 포함하는 텍스트를 입력하는 사용자 입력을 수신하는 사용자 입력부, 제 1 어절로부터 제 1 등록 단어를 검출하고, 복수의 등록 단어의 시퀀스에 관한 정보 및 검출된 제 1 등록 단어에 기초하여, 텍스트 다음에 입력될 예상 어절을 결정하는 제어부 및 결정된 예상 어절을 디스플레이하는 디스플레이부를 포함하는, 일 실시예에 따른 디바이스가 개시된다.

Description

단어 추천 방법 및 이를 위한 장치 {METHOD FOR RECOMMEND A WORD AND APPARATUS THEREOF}
본 개시는, 사용자의 텍스트 입력에 따라, 입력될 단어를 추천하는 방법 및 이를 위한 장치에 관한 것이다.
한국어, 일본어 또는 터키어와 같은 교착어의 경우, 주어진 단어에 붙을 수 있는 다양한 접사(affix)로 인하여, 하나의 단어가 다양한 단어로 변형될 수 있다. 예를 들어, 아래 표 1과 같이, 그(he)를 변형시켜 10개 이상의 단어를 만들 수 있다.
단어 형태소 영어
그가 그+가 he
그는 그+는 he
그에게 그+에게 to him
그도 그+도 him(he) also
그를 그+를 him
그의 그+의 his
교착어는 접사에 의한 단어의 변형이 많기 때문에, 단어 또는 어절의 수가 다른 언어 비해 월등히 많다.
단어 또는 어절의 수가 많으므로, 언어 모델을 생성하기 위한 데이터가 많이 필요하며, 정확한 단어를 추천하기 어려운 문제점이 있다.
본 발명은, 입력된 어절에 대한 정보가 없더라도, 입력된 어절에 기초하여 다음 어절을 추천하기 위한 다양한 실시예가 제공된다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제 1 측면은, 복수의 등록 단어의 시퀀스에 관한 정보를 저장하는 저장부, 복수의 등록 단어에 속하는 제 1 등록 단어에 제 1 단어가 붙은, 복수의 등록 단어에 속하지 않는 제 1 어절을 포함하는 텍스트를 입력하는 사용자 입력을 수신하는 사용자 입력부, 제 1 어절로부터 제 1 등록 단어를 검출하고, 복수의 등록 단어의 시퀀스에 관한 정보 및 검출된 제 1 등록 단어에 기초하여, 텍스트 다음에 입력될 예상 어절을 결정하는 제어부 및 결정된 예상 어절을 디스플레이하는 디스플레이부를 포함하는, 디바이스를 제공할 수 있다.
또한, 제어부는, 제 1 어절을 구성하는 복수의 음절에 대하여 복수의 등록 단어에 대응하는 복수의 필터를 적용함으로써, 제 1 어절로부터 제 1 등록 단어를 검출할 수 있다.
또한, 제어부는, 텍스트로부터 제 1 등록 단어를 포함하는 적어도 하나의 등록 단어를 검출하고, 복수의 등록 단어의 시퀀스에 관한 정보에 기초하여, 복수의 등록 단어 중 적어도 하나의 등록 단어의 시퀀스 다음에 입력될 확률이 가장 높은 등록 단어를 예상 어절로써 결정할 수 있다.
또한, 제어부는, 신경망(Neural network) 알고리즘을 이용하여 복수의 등록 단어 중 적어도 하나의 등록 단어의 시퀀스 다음에 입력될 확률이 가장 높은 어절을 결정할 수 있다.
또한, 사용자 입력부는, 텍스트의 다음 어절을 입력하는 사용자 입력을 수신하고, 제어부는, 텍스트로부터 검출된 적어도 하나의 등록 단어의 시퀀스가 신경망의 입력값으로 입력되었을 때, 입력된 다음 어절이 신경망의 출력값으로 출력되도록, 신경망을 구성하는 파라미터를 업데이트할 수 있다.
또한, 제어부는, 제 1 어절로부터 검출된 제 1 등록 단어와 함께, 제 1 어절 내에 포함된 적어도 하나의 형태소에 기초하여, 텍스트 다음에 입력될 예상 어절을 결정할 수 있다.
또한, 제어부는, 복수의 등록 단어의 시퀀스에 관한 정보 및 검출된 제 1 등록 단어에 기초하여, 텍스트 다음에 입력될 복수의 예상 어절을 결정하고, 디스플레이부는, 복수의 예상 어절 중 하나를 선택하기 위한 메뉴를 디스플레이하고, 복수의 예상 어절 중 하나를 선택하는 사용자 입력을 수신함에 따라, 텍스트 다음에 선택된 어절을 입력할 수 있다.
도 1은 일부 실시예에 따른, 디바이스가 사용자의 텍스트 입력에 기초하여, 입력된 텍스트의 다음에 입력될 어절을 추천하는 방법을 도시한다.
도 2는 일부 실시예에 따른, 디바이스가 언어 모델을 생성하는 방법을 도시한다.
도 3은 일부 실시예에 따른, 디바이스가 마지막 어절 다음에 입력될 예상 어절을 결정하기 위한 방법의 흐름도이다.
도 4는 일부 실시예에 따른, 디바이스가 어절에 포함된 등록 단어에 기초하여 어절에 대응하는 벡터를 생성하는 방법을 도시한다.
도 5는 일부 실시예에 따른, 디바이스가 어절 내의 등록 단어뿐만 아니라 어절 내의 형태소를 함께 고려하여 어절에 대응하는 벡터를 생성하는 방법의 흐름도이다.
도 6은 일부 실시예에 따른, 디바이스가 어절 내의 등록 단어뿐만 아니라 어절 내의 형태소를 함께 고려하여 어절에 대응하는 벡터를 생성하는 방법을 도시한다.
도 7은 일부 실시예에 따른, 디바이스가 예상 어절을 추천하는 방법을 도시한다.
도 8a 내지 8b는 일부 실시예에 따른, 디바이스가 등록 단어를 예상 어절로써 추천할 때, 등록 단어에 대응하는 접사를 함께 추천하는 방법을 도시한다.
도 9는 일부 실시예에 따른 디바이스의 블록도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
단어란 분리하여 자립적으로 쓸 수 있는 말이나 이에 준하는 말 또는 문법적 기능을 나타내는 말을 의미할 수 있다. 예를 들어,“존이 제인의 일기를 읽은 것 같다.”라는 문장에서 단어는 ‘존’, ‘제인’, ‘일기’, ‘읽은’및 ‘같다' 를 포함하며, 주격 조사 ‘이’, 소유격 조사‘의’, 목적격 조사‘를’및 의존 명사 ‘것’일 수 있다.
어절이란, 문장에서 띄어쓰기로 구분되는 말의 덩어리를 의미할 수 있다. 예를 들어, '존이 제인의 일기를 읽은 것 같다.'라는 문장에서 어절은, '존이', '제인의', '일기를', '읽은', '것' 및 '같다'일 수 있다.
어절은 하나의 단어만으로 이루어질 수 있으며, 복수의 단어가 결합되어 이루어질 수도 있다.
등록 단어란, 언어 모델을 구성하는 언어 사전에 등록된 단어 또는 어절을 의미할 수 있다.
형태소는, 뜻을 가진 가장 작은 말의 단위를 의미할 수 있다. 예를 들어, '철수가 이야기 책을 읽었다.'라는 문장에서, 형태소는 '철수', '가', '이야기', '책', '을', '읽', '었' 및 '다'를 포함할 수 있다.
도 1은 일부 실시예에 따른, 디바이스(1000)가 사용자의 텍스트 입력에 기초하여, 입력된 텍스트의 다음에 입력될 어절을 추천하는 방법을 도시한다.
디바이스(1000)는 언어 모델에 기초하여 예상 어절을 추천할 수 있다.
언어 모델이란, 언어 사전에 포함된 복수의 등록 단어의 시퀀스에 대한 확률 정보를 의미할 수 있다. 예를 들어, 언어 사전이 '철수가', '학교에' 및 '갔다' 라는 등록 단어들로 구성되었을 때, 언어 모델은, '철수가 학교에 갔다', '철수가 갔다 학교에', '학교에 철수가 갔다', '학교에 갔다 철수가', '갔다 철수가 학교에' 및 '갔다 학교에 철수가'라는 6개의 시퀀스에 대한 확률을 산출하기 위한 모델일 수 있다.
디바이스(1000)는 문장을 수신함에 따라, 수신된 문장에 기초하여 언어 모델을 학습할 수 있다. 예를 들어, 디바이스(1000)는 수신된 문장 내의 어절 중에 언어 사전에 존재하지 않는 어절을 등록 단어로써 언어 사전에 포함시키고, 수신된 문장 내의 어절의 시퀀스에 기초하여, 언어 모델의 확률 정보를 업데이트 할 수 있다.
예를 들어, '철수가 학교에 갔다'라는 시퀀스가 가장 많이 입력된 경우, 6개의 시퀀스 중 '철수가 학교에 갔다'라는 시퀀스의 확률이 가장 높은 값을 갖도록 언어 모델을 업데이트 할 수 있다.
또한, 디바이스(1000)는 엔-그램(n-gram) 방법 또는 뉴럴 네트워트(neural network) 방법에 기초하여, 언어 모델을 생성 또는 업데이트할 수 있으나, 이에 제한되지 않는다.
이에 따라, 디바이스(1000)는 언어 모델을 이용하여 음성 인식 또는 기계 번역을 수행할 수 있다. 예를 들어, 사용자로부터 음성을 수신함에 따라, 수신된 음성으로부터 m개 어절의 시퀀스를 결정하고, m개 어절의 시퀀스에 대응하는 확률에 기초하여 결정된 시퀀스가 유효한지 여부를 판단할 수 있다.
또한, 디바이스(1000)는 언어 모델을 이용하여, 하나 이상의 어절이 입력되었을 때, 입력된 마지막 어절 다음에 입력될 예상 어절을 결정할 수 있다. 예를 들어, 디바이스(1000)는, 언어 사전에 포함된 복수의 등록 단어들 각각에 대하여, 마지막 어절 다음에 입력될 확률을 결정하고, 복수의 등록 단어들 중 확률이 가장 큰 등록 단어를 예상 어절로써 결정할 수 있다.
디바이스(1000)는 언어 모델을 이용하여 음성 인식, 언어 번역 및 입력 단어 예측뿐만 아니라, 품사 태깅, 구문 분석, 필기 인식, 오타 교정 및 정보 검색을 수행할 수 있다.
도 1을 참조하면, 일 실시예에 따른, 디바이스(1000)는 입력된 적어도 하나의 어절이 언어 사전에 존재하지 않는 어절이라도, 마지막 어절 다음에 입력될 예상 어절을 추천할 수 있다.
예를 들어, 디바이스(1000)가 '삼성 디지털프라자'(110), '삼성 소프트웨어'(120) 및 '삼성전자 주식'(130)이라는 텍스트들을 수신함에 따라, 수신된 텍스트들에 기초하여 언어 모델을 업데이트할 수 있다. 예를 들어, 언어 사전에 '삼성', '삼성 전자'만이 포함되어 있고, '삼성전자주식회사'는 포함되어 있지 않은 경우, 디바이스(1000)는 '삼성'이라는 어절 다음에 '디지털프라자' 또는 '소프트웨어'라는 어절이 나타날 확률 및 '삼성전자'라는 어절 다음에 '주식'이라는 어절이 나타날 확률이 높아지도록 언어 모델을 업데이트할 수 있다.
이후, '삼성전자주식회사'(140)를 입력하는 사용자 입력을 수신한 경우, '삼성전자주식회사'(140)는 언어 사전에 포함되어 있지 않는 어절이므로, 언어 모델은 '삼성전자주식회사'(140)라는 어절에 관한 어떠한 정보도 포함하지 않을 수 있다. 따라서, '삼성전자주식회사'(140)라는 어절 다음에 입력될 수 있는 예상 어절은 추천되지 못할 수 있다.
일부 실시예에 따른 디바이스(1000)는 '삼성전자주식회사'(140)가 언어 사전에 포함되어 있지 않는 어절이라도, 어절에 포함된 등록 단어에 기초하여, 예상 어절을 추천할 수 있다. 예를 들어, 디바이스(1000)는 '삼성전자주식회사'(140)로부터 '삼성' 또는 '삼성전자'라는 등록 단어를 검출할 수 있다. 언어 모델은 '삼성' 또는 '삼성전자'라는 등록 단어를 포함하고 있으며, '삼성' 또는 '삼성전자' 다음에 입력될 확률이 높은 어절로써 '주식', '소프트웨어' 및 '디지털프라자'를 나타내고 있으므로, 디바이스(1000)는 언어 모델에 기초하여 '삼성전자주식회사'(140) 다음에 입력될 예상 어절로써 '주식', '소프트웨어' 및 '디지털프라자'를 추천할 수 있다.
도 2는 일부 실시예에 따른, 디바이스(1000)가 언어 모델을 생성하는 방법을 도시한다.
도 2를 참조하면, 디바이스(1000)는 텍스트에 대하여 임베딩 레이어(210), 히든 레이어(220) 및 소프트맥스 레이어(230)를 순차적으로 적용하여 언어 모델을 생성 및 업데이트할 수 있다.
언어 모델의 입력은 주어진 어절들의 집합일 수 있으며, 언어 모델의 출력은 주어진 어절들의 집합 이후에 입력될 수 있는 어절들의 확률일 수 있다.
임베딩 레이어(210)는 입력된 텍스트를 텍스트 내에 포함된 각각의 어절에 대한 벡터(212)로 변환하고, 변환된 벡터(212)를 히든 레이어의 입력으로 설정하는 레이어일 수 있다. 예를 들어, '그는(he is) 학생이다(a student)'라는 텍스트에 대하여, 디바이스(1000)는 임베딩 레이어(210)를 통해, '그는'에 대한 벡터를 생성하고, '학생이다' 에 대한 벡터를 생성하여, 생성된 두 개의 벡터를 히든 레이어에 대한 입력으로 설정할 수 있다.
이 경우, 디바이스(1000)는 언어 사전에 포함되지 않은 어절이라도, 어절 내에 존재하는 등록 단어에 기초하여, 언어 사전에 포함되지 않은 어절에 대한 벡터(212)를 생성할 수 있다. 디바이스(1000)는 어절을 구성하는 음절에 기초하여, 어절에 포함된 등록 단어를 검출할 수 있다. 이러한 실시예에 대해서는, 도 3 내지 도 4를 참조하여 상세히 후술된다.
또한, 디바이스(1000)는 어절에 포함된 등록 단어뿐만 아니라 어절에 포함된 형태소에 기초하여 어절에 대한 벡터(212)를 생성할 수 있다. 이러한 실시예에 대해서는, 도 5 내지 도 6을 참조하여 상세히 후술된다.
히든 레이어(220)는 신경망 레이어로써, Recurrent neural networks (RNNs)로 구성될 수 있으며, 주어진 어절들이 순차적으로 입력되었을 때, 입력된 어절들의 시퀀스를 학습하는 레이어일 수 있다.
RNNs는 순차적인 데이터를 모델링하는데 이상적인 아키텍처이며, 주어진 입력 문맥에 따라 하나의 언어 사전 내의 등록 단어들에 대한 확률을 모델링할 수 있다. RNNs를 이용하여 언어를 모델링(RNN-LM)할 때, RNNs의 크기는 주로 언어 사전의 크기 즉, 언어 사전 내의 등록 단어들의 수에 의해 결정될 수 있다.
교착어의 경우, 등록 단어로써 설정될 수 있는 단어 또는 어절의 수가 다른 언어에 비해 월등히 많으므로, 교착어를 RNNs를 이용하여 모델링하게 되면 RNNs의 크기가 너무 커지게 되므로 실제 제품에 적용하기 어려운 문제가 있다. 또한, 가능한 모든 단어 또는 어절을 포함하는 사전을 이용하여 RNNs를 학습시켜야 하므로 정확하게 모델링하기 어려운 문제가 있다.
일 실시예에 따른, 디바이스(1000)는 언어 사전에 등록되지 않은 어절이라도, 어절 내에 존재하는 등록 단어에 기초하여 예상 어절을 결정하므로, 언어 사전 내에 많은 수의 어절이 존재하지 않더라도 비교적 정확하게 예상 어절을 추천할 수 있다.
소프트맥스 레이어(230)는 최종적으로 언어 사전 내의 복수의 등록 단어들 각각에 대하여, 마지막 어절 다음에 입력될 확률을 계산하는 레이어일 수 있다. 예를 들어, 언어 사전 내에 '다음주', '월요일', '회의' 및 '회사'라는 어절이 포함되어 있고, 사용자로부터 '다음주 월요일'이라는 텍스트를 수신하였을 때, 디바이스(1000)는 '다음주 월요일 회의'라는 시퀀스가 발생할 확률 및 '다음주 월요일 회사'라는 시퀀스가 발생할 확률을 산출할 수 있다.
또한, 디바이스(1000)는 '다음주 월요일' 다음에 '회사'가 입력될 확률이 가장 높도록 RNNs의 파라미터들을 조절함으로써, 언어 모델을 업데이트할 수 있다.
또한, 새로운 어절이 입력되었을 때, 디바이스(1000)는 언어 사전에 새로운 어절을 추가할 수 있으며, 추가된 새로운 어절과 언어 사전에 기 포함되어 있었던 어절들간의 시퀀스에 대한 확률 정보 또한 업데이트할 수 있다.
도 3은 일부 실시예에 따른, 디바이스(1000)가 마지막 어절 다음에 입력될 예상 어절을 결정하기 위한 방법의 흐름도이다.
단계 S310에서, 디바이스(1000)는, 복수의 등록 단어의 시퀀스에 관한 정보를 저장 할 수 있다.
복수의 등록 단어는 언어 사전 내에 포함된 단어 또는 어절들을 의미할 수 있다. 디바이스(1000)가 사용자에 의해 입력된 텍스트로부터 단어 또는 어절을 검출하고, 검출된 단어 또는 어절을 자동으로 등록 단어로써 저장할 수 있으며, 단어 또는 어절을 등록 단어로서 입력하는 사용자 입력을 수신할 수도 있다.
디바이스(1000)는 언어 모델에 기초하여, 언어 사전 내의 복수의 등록 단어들의 시퀀스에 관한 확률 정보를 산출할 수 있다. 또한, 디바이스(1000)는 텍스트가 입력됨에 따라, 언어 사전 내에 없는 새로운 단어 또는 어절들을 언어 사전에 포함시킬 수 있으며, 입력된 텍스트에 기초하여 언어 모델을 업데이트 할 수 있다.
단계 S320에서, 디바이스(1000)는 복수의 등록 단어에 속하는 제 1 등록 단어에 제 1 단어가 붙은, 복수의 등록 단어에 속하지 않는 제 1 어절을 포함하는 텍스트를 입력하는 사용자 입력을 수신할 수 있다.
제 1 어절은 등록 단어가 아닐 수 있다. 즉, 제 1 어절은 언어 사전에 포함되지 않은 어절일 수 있다. 제 1 단어는 언어 사전에 포함된 단어 또는 어절일 수 있으며, 포함되지 않은 어절일 수도 있다. 또한, 제 1 단어는 독립적으로 사용될 수 있는 단어일 수 있으며, 독립적으로 사용될 수 없는 접사일 수도 있다. 또한, 제 1 등록 단어는 언어 사전에 포함된 단어 또는 어절을 의미할 수 있다.
예를 들어, 언어 사전에 '삼성전자'라는 단어가 포함되어 있고, 디바이스(1000)가 '삼성전자주식회사'라는 텍스트 입력을 수신할 수 있다. 이 경우, 제 1 등록 단어는 '삼성전자'이고, 제 1 단어는 '주식회사'이며, 제 1 어절은 '삼성전자주식회사'일 수 있다. 또한, 예를 들어, 언어 사전에 '학생'라는 단어가 포함되어 있고, 디바이스(1000)가 '학생이'라는 텍스트 입력을 수신할 수 있다. 이 경우, 제 1 등록 단어는 '학생'이고, 제 1 단어는 '이'이며, 제 1 어절은 '학생이'일 수 있다. 또한, 예를 들어, 언어 사전에 'sad'라는 단어가 포함되어 있고, 디바이스(1000)가 'sadness'라는 텍스트 입력을 수신할 수 있다. 이 경우, 제 1 등록 단어는 'sad'이고, 제 1 단어는 'ness'이며, 제 1 어절은 'sadness'일 수 있다.
단계 S330에서, 디바이스(1000)는 제 1 어절로부터 제 1 등록 단어를 검출하고, 복수의 등록 단어의 시퀀스에 관한 정보 및 검출된 제 1 등록 단어에 기초하여, 텍스트 다음에 입력될 예상 어절을 결정할 수 있다.
디바이스(1000)는 제 1 어절로부터 제 1 등록 단어를 검출할 수 있다. 예를 들어, 언어 사전에 '삼성' 및 '삼성 전자'만이 등록되어 있고, '삼성전자주식회사'는 등록되어 있지 않은 경우, 디바이스(1000)는 '삼성전자주식회사'라는 어절로부터 '삼성' 및 '삼성전자'를 검출할 수 있다. 또한, 예를 들어, 또한, 언어 사전에 '학생' 및 '나는'만이 등록되어 있는 경우, 디바이스(1000)는 '나는 학생이다'라는 텍스트로부터 '나는' 및 '학생'을 검출할 수 있다.
디바이스(1000)는 제 1 어절을 구성하는 복수의 음절에 대하여 제 1 등록 단어에 대응하는 필터를 적용함으로써, 제 1 어절로부터 제 1 등록 단어를 검출할 수 있다. 예를 들어, '학생'이 등록 단어인 경우, 디바이스(1000)는 '학생'에 대응하는 필터를 '학생이다'라는 4개의 음절에 적용함으로써, '학생이다'로부터 '학생'이라는 등록 단어를 검출할 수 있다. 디바이스(1000)는 언어 사전에 포함된 복수의 등록 단어 각각에 대한 필터를 저장할 수 있다. 따라서, 필터의 개수는 등록 단어의 개수 일 수 있다. 이에 따라, 하나의 어절이 주어진 경우, 주어진 어절에 각각의 필터를 적용함으로써, 주어진 어절 내에 각각의 필터에 대응하는 등록 단어가 존재하는지 여부를 결정할 수 있다. 음절에 기초하여 어절로부터 등록 단어를 검출하는 실시예는 도 4를 참조하여 후술된다.
디바이스(1000)는 텍스트로부터 제 1 등록 단어를 포함하는 적어도 하나의 등록 단어를 검출할 수 있다. 예를 들어, '나는 학생이다'라는 텍스트를 수신한 경우, 디바이스(1000)는 '학생'이라는 제 1 등록 단어와 함께 '나는'이라는 등록 단어를 검출할 수 있다.
디바이스(1000)는 언어 모델 즉, 언어 사전을 구성하는 복수의 등록 단어의 시퀀스에 관한 정보에 기초하여, 복수의 등록 단어 중 적어도 하나의 등록 단어의 시퀀스 다음에 입력될 확률이 가장 높은 등록 단어를 예상 어절로써 결정할 수 있다.
이 경우, 디바이스(1000)는, 신경망 알고리즘을 이용하여 예상 어절을 결정할 수 있다.
또한, 텍스트의 다음 어절을 입력하는 사용자 입력을 수신함에 따라, 디바이스(1000)는 텍스트로부터 검출된 적어도 하나의 등록 단어의 시퀀스가 신경망의 입력값으로 입력되었을 때, 입력된 다음 어절이 신경망의 출력값으로 출력되도록, 신경망을 구성하는 파라미터를 업데이트할 수 있다.
또한, 디바이스(1000)는 제 1 어절로부터 검출된 제 1 등록 단어와 함께, 제 1 어절 내에 포함된 적어도 하나의 형태소에 기초하여, 텍스트 다음에 입력될 예상 어절을 결정할 수 있다. 형태소에 기초하여 예상 어절을 결정하는 실시예는 도 5 내지 6을 참조하여 후술된다.
또한, 디바이스(1000)는 언어 모델 및 텍스트로부터 검출된 적어도 하나의 등록 단어에 기초하여, 텍스트 다음에 입력될 복수의 예상 어절을 결정할 수 있다. 이 경우, 디바이스(1000)는 복수의 예상 어절 중 하나를 선택하기 위한 메뉴를 디스플레이하고, 복수의 예상 어절 중 하나를 선택하는 사용자 입력을 수신함에 따라, 선택된 어절을 텍스트 다음에 입력된 어절로써 디스플레이 할 수 있다.
또한, 디바이스(1000)는, 제 1 단어를 제 1 등록 단어에 관한 접사로써 저장할 수 있다. 이 경우, 제 1 등록 단어가 예상 어절로써 결정됨에 따라, 디바이스(1000)는 제 1 등록 단어 및 제 1 어절 중 하나를 선택하기 위한 메뉴를 디스플레이할 수 있다.
예를 들어, '학생'이라는 등록 단어에 '이'라는 접사가 붙은 '학생이'라는 어절이 새로운 등록 단어로써 저장된 후, 이후, 사용자의 입력에 따라, '학생'이라는 등록 단어가 예상 어절로써 결정된 경우, 디바이스(1000)는 '학생'뿐만 아니라 '학생이'라는 등록 단어를 예상 어절로써 제공할 수 있다. 또한, 사용자의 입력에 따라 '학생이'라는 등록 단어가 예상 어절로써 결정된 경우, 디바이스(1000)는 '학생이'뿐만 아니라 '학생'이라는 등록 단어를 예상 어절로써 제공할 수도 있다.
단계 S340에서, 디바이스(1000)는 결정된 예상 어절을 디스플레이할 수 있다.
디바이스(1000)는 적어도 하나의 예상 어절을 결정함에 따라, 적어도 하나의 예상 어절 중 하나를 선택하기 위한 메뉴를 디스플레이할 수 있다. 또한, 디바이스(1000)는 산출된 확률이 높은 순서로 적어도 하나의 예상 어절을 디스플레이할 수 있다.
도 4는 일부 실시예에 따른, 디바이스(1000)가 어절에 포함된 등록 단어에 기초하여 어절에 대응하는 벡터(212)를 생성하는 방법을 도시한다.
도 4를 참조하면, 디바이스(1000)는 어절을 어절에 포함된 등록 단어를 나타내는 dembed 벡터(212)로써 변환할 수 있다.
예를 들어, '나는 학생이다'라는 텍스트가 입력되었고, 언어 사전은 '나는', '학생', '선생님' 및 '가방' 라는 등록 단어로 구성된 경우, 디바이스(1000)는 '나는' 이라는 어절을 '나는'이라는 등록 단어를 나타내는 벡터로 변환하고, '학생이다'라는 어절에 대한 정보를 '학생'이라는 등록 단어를 나타내는 벡터로 변환할 수 있다.
도 4는 도 2의 임베딩 레이어에 대응될 수 있으며, 어절에 포함된 등록 단어에 대한 정보를 나타내는 dembed 벡터(212)는 도 2의 히든 레이어의 입력값으로 입력될 수 있다.
디바이스(1000)는 어절을 구성하는 음절에 기초하여, 어절에 포함된 등록 단어를 검출할 수 있다. 예를 들어, 디바이스(1000)는 어절을 구성하는 음절에 대하여 CNN(Convolution neural network) 필터를 적용함으로써, 어절에 포함된 등록 단어를 검출할 수 있다.
하나의 음절을 ds 차원의 벡터로 표현하는 경우, n개의 음절로 구성된 어절은 시작과 끝을 나타내는 엘리먼트를 포함하여 (n+2) * ds 크기의 행렬로 표현될 수 있다. 예를 들어, 하나의 음절이 3차원 벡터로써 표현되는 경우, '학생이다'라는 어절은 6 * 3 크기의 행렬(400)로 표현될 수 있다.
디바이스(1000)는 어절을 나타내는 형렬(400)에 CNN 필터(410, 420)를 컨벌루션함으로써, 어절 내에 포함된 등록 단어를 나타내는 dembed 벡터(212)를 생성할 수 있다. 하나의 CNN 필터는 하나의 등록 단어를 검출하기 위한 필터일 수 있다. 예를 들어 제 1 CNN 필터(410)는 '학생'이라는 등록 단어를, 제 2 CNN 필터(420)는 '선생님'이라는 등록 단어를 검출하기 위한 필터일 수 있다. 또한, 제 3 CNN 필터(미도시)는 '가방'이라는 등록 단어를 검출하기 위한 필터이고, 제 4 필터(미도시)는 '친구'라는 등록 단어를 검출하기 위한 필터일 수 있다.
또한, 디바이스(1000)에는 언어 사전 내에 포함된 등록 단어들 각각에 대한 CNN 필터가 저장되어 있을 수 있다. 또한, 언어 사전 내에 포함된 등록 단어들의 개수는 CNN 필터의 개수일 수 있다. 또한, 하나의 어절로부터 생성된 dembed 벡터(212)의 크기는 언어 사전 내에 포함된 등록 단어의 개수와 동일할 수 있다. 예를 들어, 언어 사전 내에 2 음절의 등록 단어가 3개 존재하고, 3 음절의 등록 단어가 4개 존재하는 경우, 하나의 어절로부터 생성된 dembed 벡터(212)는 2 음절의 등록 단어들에 대응되는 3 개의 엘리먼트와 3 음절의 등록 단어들에 대응하는 4 개의 엘리먼트를 더하여 7개의 엘리먼트를 가질 수 있다.
디바이스(1000)는 '학생이다'라는 어절을 표현하는 6*3 행렬(400)에, '학생'을 검출하기 위한 2*3 행렬의 제 1 CNN 필터(410)를 컨벌루션함으로써, 5개의 엘리먼트를 갖는 제 1 벡터(430)를 산출할 수 있다. 마찬가지로, 디바이스는 등록 단어인 '나는'에 대응하는 벡터(432) 및 '가방'에 대응하는 벡터(434)를 생성할 수 있다. 이 때, '학생이다'라는 어절을 표현하는 행렬(400)의 두번째 및 세번째에 '학생'이라는 단어가 위치하므로, 제 1 벡터(430)의 5개의 엘리먼트 중 두번째 엘리먼트의 값이 가장 크게 산출되며, 가장 큰 값이 dembed 벡터(212)의 2 음절 엘리먼트들(213) 중 '학생'에 대응되는 엘리먼트의 값으로 결정될 수 있다.
디바이스는 3 개의 2 음절 등록 단어가 어절 내에 존재하는지 여부를 나타내는 벡터(213)를 생성할 수 있다.
디바이스(1000)는 '선생님'을 검출하기 위한 제 2 CNN 필터(420)를 '학생이다'를 표현하는 행렬(400)에 컨벌루션함으로써 제 2 벡터(440)을 산출할 수 있다. 디바이스(1000)는 제 2 벡터(440) 내의 엘리먼트 중 가장 큰 값을 dembed 벡터(212)의 3 음절 엘리먼트들(214) 중 '선생님'에 대응되는 엘리먼트의 값으로 결정할 수 있다.
디바이스는 4 개의 3 음절 등록 단어가 어절 내에 존재하는지 여부를 나타내는 벡터(214)를 생성할 수 있다.
'학생이다'라는 어절에는 '선생님'이라는 등록 단어가 존재하지 않으므로, 제 2 벡터(440) 내의 엘리먼트들의 값들 중 가장 큰 값이라도 기준값 보다 낮을 수 있다.
이에 따라, dembed 벡터(212) 내의 하나의 엘리먼트는 하나의 등록 단어에 대응될 수 있으며, 엘리먼트의 값이 기준값 보다 큰 경우, 엘리먼트에 대응되는 등록 단어가 어절 내에 포함된 것으로 결정할 수 있다.
디바이스(1000)는 텍스트를 구성하는 어절로부터 산출된 벡터들을 어절의 순서에 따라 순차적으로 히든 레이어의 입력값으로 입력함으로써, 입력된 텍스트 다음에 입력될 예상 어절을 결정할 수 있다.
이에 따라, 디바이스(1000)는 입력된 어절이 언어 사전에 포함되어 있지 않은 어절이라도, 어절을 구성하는 음절에 기초하여 어절에 포함된 등록 단어를 검출하고, 검출된 등록 단어에 기초하여 입력된 텍스트 다음에 입력될 수 있는 예상 어절을 결정할 수 있다.
도 5는 일부 실시예에 따른, 디바이스(1000)가 어절 내의 등록 단어뿐만 아니라 어절 내의 형태소를 함께 고려하여 어절에 대응하는 벡터를 생성하는 방법의 흐름도이다.
단계 S510에서, 디바이스(1000)는 복수의 등록 단어의 시퀀스에 관한 정보를 저장할 수 있다. 단계 S520에서, 디바이스(1000)는 복수의 등록 단어에 속하는 제 1 등록 단어에 제 1 단어가 붙은, 복수의 등록 단어에 속하지 않는 제 1 어절을 포함하는 텍스트를 입력하는 사용자 입력을 수신할 수 있다.
단계 S520 내지 S520는 도 3의 단계 S310 내지 S320을 참조하여 설명될 수 있다.
단계 S530에서, 디바이스(1000)는 제 1 어절로부터 검출된 제 1 등록 단어 및 제 1 어절 내의 형태소에 기초하여, 텍스트 다음에 입력될 예상 어절을 결정할 수 있다.
예를 들어, 제 1 어절이 '학생이다'인 경우, 디바이스(1000)는 '학생이다'라는 어절로부터 등록 단어인 '학생'을 검출하고, '학생이다' 내의 형태소인 '학생' 및 '이다'를 검출할 수 있다. 이에 따라, 디바이스(1000)는 '학생'이라는 등록 단어뿐만 아니라, '학생이다'라는 어절 내의 형태소인 '학생' 및 '이다'에 기초하여 '학생이다'에 대응하는 벡터를 생성함으로써, 좀 더 정확한 예상 어절을 추천할 수 있다.
단계 S540에서, 디바이스(1000)는 결정된 예상 어절을 디스플레이할 수 있다. 단계 S540은 도 3의 단계 S340을 참조하여 설명될 수 있다.
도 6은 일부 실시예에 따른, 디바이스(1000)가 어절 내의 등록 단어뿐만 아니라 어절 내의 형태소를 함께 고려하여 어절에 대응하는 벡터를 생성하는 방법을 도시한다.
도 6을 참조하면, 디바이스(1000)가 도 4에서 설명된 어절에 포함된 등록 단어에 대한 정보를 나타내는 제 1 벡터(510)에, 어절내의 형태소에 대한 정보를 나타내는 제 2 벡터(520)를 더함으로써, 어절에 대응하는 벡터(212)를 생성할 수 있다.
디바이스(1000)는 형태소를 기준으로 어절을 분리하고, 분리된 형태소를 벡터로 표현함으로써, 어절의 의미를 나타내는 벡터(520)를 생성할 수 있다.
형태소는 뜻을 가진 가장 작은 말의 단위를 의미할 수 있다. 예를 들어, '학생이다'라는 어절 내의 형태소는 '학생'과 '이다'일 수 있다. 이 경우, '학생'은 명사이며, '이다'는 동사이다. 또한, '그는'이라는 어절의 형태소는 '그'와 '는'일 수 있다. 이 경우, '그'는 대명사이고, '는' 은 후치사이다.
이와 같이, 한국어의 경우, 대부분의 어절은 세 개 이하의 형태소로 분리될 수 있다. 이에 따라, 디바이스(1000)는 세 개의 형태소에 대응하는 세 개의 벡터를 이어 붙여, 하나의 어절에 대응하는 제 2 벡터(520)를 생성할 수 있다. 이 경우, 하나의 형태소는 3 개의 엘리먼트를 갖는 하나의 벡터(dm)로 표현될 수 있다.
도 7은 일부 실시예에 따른, 디바이스(1000)가 예상 어절을 추천하는 방법을 도시한다.
도 7을 참조하면, 디바이스(1000)는 입력된 어절뿐만 아니라 입력된 어절 내의 등록 단어에 기초하여 언어 모델을 업데이트할 수 있다.
예를 들어, 디바이스(1000)는 '회사 어떻니'(710), '나는 요즘 회사가 너무좋아!'(720), '오늘 퇴근하고 말날까?'라는 텍스트를 입력하는 사용자 입력을 수신할 수 있다. 디바이스(1000)의 내의 언어 사전에 '회사'라는 등록 단어가 존재 하는 경우, 디바이스(1000)는 '회사 어떻니'라는 문장으로부터, '회사' 다음에 '어떻니?'라는 어절이 입력되는 시퀀스의 확률이 높아지도록 언어 모델을 업데이트 할 수 있다.
또한, 디바이스(1000)는 '나는 요즘 회사가 너무좋아!'라는 문장을 수신함에 따라, '회사가'라는 어절로부터 '회사'라는 등록 단어를 검출하고, '나는', '요즘', '회사가' 및 '너무좋아!' 순서의 시퀀스뿐만 아니라, '나는', '요즘', '회사' 및 '너무좋아!' 순서의 시퀀스의 확률이 높아지도록 언어 모델을 업데이트할 수도 있다.
이에 따라, 사용자가 '요즘 회사'(730)라는 텍스트를 입력함에 따라, 디바이스(1000)는 '어떻니?'(740) 뿐만 아니라, '너무좋아!'(750)라는 어절을 예상 어절로써 추천할 수 있다.
도 8a 내지 8b는 일부 실시예에 따른, 디바이스(1000)가 등록 단어를 예상 어절로써 추천할 때, 등록 단어에 대응하는 접사를 함께 추천하는 방법을 도시한다.
도 8a를 참조하면, 디바이스(1000)는 어절로부터 등록 단어를 검출함에 따라, 등록 단어에 붙은 단어를 등록 단어의 접사로써 저장할 수 있다.
예를 들어, '삼성전자 주식이 많이 올랐어?'라(810)는 문장을 수신함에 따라, 디바이스(1000)는 '삼성전자', '주식이', '많이', '올랐어?'라는 순서의 시퀀스의 확률이 높아지도록 언어 모델을 업데이트할 수 있다. 이 경우, 디바이스(1000)는 '주식이'라는 어절에서 '주식'이라는 등록 단어를 검출하고, '이'를 주식에 대한 접사로써 저장할 수 있다.
마찬가지로, '잠깐만 주식시세 확인해 볼께'(820)라는 문장을 수신함에 따라, 디바이스(1000)는 '주식시세'라는 어절에서 '주식'이라는 등록 단어를 검출하고, '시세'를 주식에 대한 접사로써 저장할 수 있다.
또한, '삼성 주식을 언제 샀어?'(830)라는 문장을 수신함에 따라, 디바이스(1000)는 '주식을'이라는 어절에서 '주식'이라는 등록 단어를 검출하고, '을'을 주식에 대한 접사로써 저장할 수 있다.
이 후, '삼성전자주식회사'(840)라는 어절을 입력하는 사용자 입력을 수신함에 따라, 디바이스(1000)는 '삼성전자주식회사' (840)라는 어절로부터 '삼성전자'라는 등록 단어를 검출하고, 검출된 등록 단어 다음에 입력될 예상 어절로써 '주식'을 결정할 수 있다.
또한, 디바이스(1000)는 '주식'을 예상 어절로써 디스플레이할 수 있다.
또한, 디바이스(1000)는 '주식'에 대응하여 저장된 접사인 '이', '시세' 및 을'이 '주식'에 붙은 '주식이', '주식시세' 및 '주식을' 중 하나를 선택하기 위한 메뉴 아이콘(845)을 디스플레이할 수 있다.
도 8b를 참조하면, 메뉴 아이콘(845)을 선택하는 사용자 입력을 수신함에 따라, 디바이스(1000)는 '주식이', 주식시세' 및 주식을' 중 하나를 선택하기 위한 메뉴(850)를 디스플레이할 수 있다.
'주식시세'를 선택하는 사용자 입력을 수신함에 따라, 디바이스(1000)는 '삼성전자주식회사' 다음 어절로써 '주식시세'를 디스플레이할 수 있다.
도 9는 일부 실시예에 따른 디바이스(1000)의 블록도이다.
도 9에 도시된 바와 같이, 일부 실시예에 따른 디바이스(1000)는 제어부(1300), 사용자 입력부(1100) 및 디스플레이부(1210를 포함할 수 있다. 그러나, 도 9에 도시된 구성 요소 모두가 디바이스(1000)의 필수 구성 요소인 것은 아니다. 도 9에 도시된 구성 요소보다 많은 구성 요소에 의해 디바이스(1000)가 구현될 수도 있고, 도 9에 도시된 구성 요소보다 적은 구성 요소에 의해 디바이스(1000)가 구현될 수도 있다.
사용자 입력부(1100)는, 사용자가 디바이스(1000)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부(1100)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다. 또한, 사용자 입력부(1100)는 텍스트를 입력하는 사용자 입력을 수신할 수 있다. 예를 들어, 사용자 입력부(1100)는 터치 키보드 상에서 텍스트를 입력하는 사용자 입력을 수신할 수 있다.
출력부(1200)는, 오디오 신호 또는 비디오 신호 또는 진동 신호를 출력할 수 있으며, 출력부(1200)는 디스플레이부(1210), 음향 출력부(1220), 및 진동 모터(1230)를 포함할 수 있다.
디스플레이부(1210)는 디바이스(1000)에서 처리되는 정보를 표시 출력한다. 예를 들어, 디스플레이부(1210)는, 사용자에 의해 입력된 텍스트를 디스플레이할 수 있다. 또한, 디스플레이부(1210)는, 제어부(1300)에 의해 결정된 예상 어절을 디스플레이할 수 있다.
한편, 디스플레이부(1210)와 터치패드가 레이어 구조를 이루어 터치 스크린으로 구성되는 경우, 디스플레이부(1210)는 출력 장치 이외에 입력 장치로도 사용될 수 있다. 디스플레이부(1210)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다.
음향 출력부(1220)는 통신부(1500)로부터 수신되거나 메모리(1700)에 저장된 음향 데이터를 출력한다. 진동 모터(1230)는 진동 신호를 출력할 수 있다.
제어부(1300)는, 통상적으로 디바이스(1000)의 전반적인 동작을 제어한다. 예를 들어, 제어부(1300)는, 메모리(1700)에 저장된 프로그램들을 실행함으로써, 사용자 입력부(1100), 출력부(1200), 센싱부(1400), 통신부(1500), A/V 입력부(1600) 등을 전반적으로 제어할 수 있다. 제어부(1300)는, 도 1 내지 도 8b에 설시된 디바이스(1000)의 기능을 수행하기 위하여, 디바이스(1000)의 동작을 제어할 수 있다.
구체적으로, 제어부(1300)는 복수의 등록 단어에 속하는 제 1 등록 단어에 제 1 단어가 붙은, 복수의 등록 단어에 속하지 않는 제 1 어절을 포함하는 텍스트를 입력하는 사용자 입력이 수신됨에 따라, 제 1 어절로부터 제 1 등록 단어를 검출하고, 복수의 등록 단어의 시퀀스에 관한 정보 및 검출된 제 1 등록 단어에 기초하여, 텍스트 다음에 입력될 예상 어절을 결정할 수 있다.
또한, 제어부(1300)는, 제 1 어절을 구성하는 복수의 음절에 대하여 복수의 등록 단어에 대응하는 복수의 필터를 적용함으로써, 제 1 어절로부터 제 1 등록 단어를 검출할 수 있다.
또한, 제어부(1300)는, 텍스트로부터 제 1 등록 단어를 포함하는 적어도 하나의 등록 단어를 검출하고, 복수의 등록 단어의 시퀀스에 관한 정보에 기초하여, 복수의 등록 단어 중 적어도 하나의 등록 단어의 시퀀스 다음에 입력될 확률이 가장 높은 등록 단어를 예상 어절로써 결정할 수 있다.
또한, 제어부(1300)는, 신경망(Neural network) 알고리즘을 이용하여 복수의 등록 단어 중 적어도 하나의 등록 단어의 시퀀스 다음에 입력될 확률이 가장 높은 어절을 결정할 수 있다.
또한, 제어부(1300)는, 텍스트의 다음 어절을 입력하는 사용자 입력을 수신함에 따라, 텍스트로부터 검출된 적어도 하나의 등록 단어의 시퀀스가 신경망의 입력값으로 입력되었을 때, 입력된 다음 어절이 신경망의 출력값으로 출력되도록, 신경망을 구성하는 파라미터를 업데이트할 수 있다.
또한, 제어부(1300)는, 텍스트 내의 제 1 어절로부터 검출된 제 1 등록 단어와 함께, 제 1 어절 내에 포함된 적어도 하나의 형태소에 기초하여, 텍스트 다음에 입력될 예상 어절을 결정할 수 있다.
또한, 제어부(1300)는, 복수의 등록 단어의 시퀀스에 관한 정보 및 검출된 제 1 등록 단어에 기초하여, 텍스트 다음에 입력될 복수의 예상 어절을 결정할 수 있다.
또한, 제어부(1300)는, 복수의 예상 어절 중 하나를 선택하는 사용자 입력을 수신함에 따라, 선택된 어절을 텍스트 다음 어절로써 입력할 수 있다.
또한, 제어부(1300)는, 제 1 단어를 제 1 등록 단어에 관한 접사로써 저장하고, 제 1 등록 단어가 예상 어절로써 결정됨에 따라, 제 1 등록 단어 및 제 1 어절 중 하나를 선택하기 위한 메뉴를 디스플레이하도록 디스플레이부(1210)를 제어할 수 있다.
센싱부(1400)는, 디바이스(1000)의 상태 또는 디바이스(1000) 주변의 상태를 감지하고, 감지된 정보를 제어부(1300)로 전달할 수 있다.
센싱부(1400)는, 지자기 센서(Magnetic sensor)(1410), 가속도 센서(Acceleration sensor)(1420), 온/습도 센서(1430), 적외선 센서(1440), 자이로스코프 센서(1450), 위치 센서(예컨대, GPS)(1460), 조도 센서(1495), 근접 센서(1480), 및 RGB 센서(illuminance sensor)(1490) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 각 센서들의 기능은 그 명칭으로부터 당업자가 직관적으로 추론할 수 있으므로, 구체적인 설명은 생략하기로 한다.
통신부(1500)는, 디바이스(1000)가 외부와 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 예를 들어, 통신부(1500)는, 근거리 통신부(1510), 이동 통신부(1520), 방송 수신부(1530)를 포함할 수 있다.
근거리 통신부(short-range wireless communication unit)(151)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
이동 통신부(1520)는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
방송 수신부(1530)는, 방송 채널을 통하여 외부로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 방송 채널은 위성 채널, 지상파 채널을 포함할 수 있다. 구현 예에 따라서 디바이스(1000)가 방송 수신부(1530)를 포함하지 않을 수도 있다.
A/V(Audio/Video) 입력부(1600)는 오디오 신호 또는 비디오 신호 입력을 위한 것으로, 이에는 카메라(1610)와 마이크로폰(1620) 등이 포함될 수 있다.
메모리(1700)는, 제어부(1300)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 디바이스(1000)로 입력되거나 디바이스(1000)로부터 출력되는 데이터를 저장할 수도 있다.
메모리(1700)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
메모리(1700)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, UI 모듈(1710), 터치 스크린 모듈(1720), 알림 모듈(1730), 이미지 필터 모듈(1740) 등으로 분류될 수 있다.
메모리(1700)는 복수의 등록 단어를 포함하는 언어 사전을 저장할 수 있다. 또한, 메모리(1700)는 언어 사전 내의 복수의 등록 단어들의 시퀀스에 관한 확률 정보인 언어 모델을 저장할 수 있다.
UI 모듈(1710)은, 애플리케이션 별로 디바이스(1000)와 연동되는 특화된 UI, GUI 등을 제공할 수 있다. 터치 스크린 모듈(1720)은 사용자의 터치 스크린 상의 터치 제스처를 감지하고, 터치 제스처에 관한 정보를 제어부(1300)로 전달할 수 있다. 일부 실시예에 따른 터치 스크린 모듈(1720)은 터치 코드를 인식하고 분석할 수 있다. 터치 스크린 모듈(1720)은 컨트롤러를 포함하는 별도의 하드웨어로 구성될 수도 있다.
일부 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
또한, 본 명세서에서, '부'는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (17)

  1. 복수의 등록 단어의 시퀀스에 관한 정보를 저장하는 저장부; 및
    프로세서를 포함하고, 상기 프로세서는,
    제1 결합 단어를 포함하는 텍스트를 입력하는 사용자 입력을 획득하고,
    상기 제1 결합 단어로부터, 상기 복수의 등록 단어 중 적어도 하나의 단어에 대응되는 제1 부분을 검출하고,
    상기 복수의 등록 단어의 시퀀스에 관한 정보 및 상기 검출된 제1 부분에 기초하여, 상기 텍스트에 연속으로 입력될 수 있는 복수의 예상 단어들을 결정하고,
    상기 결정된 복수의 예상 단어들 중 하나를 선택하기 위한 메뉴를 디스플레이하고,
    상기 복수의 예상 단어들 중 하나를 선택하는 사용자 입력을 획득하고,
    상기 복수의 예상 단어들 중 하나를 선택하는 사용자 입력에 대응되는 단어를 상기 텍스트에 연속하여 디스플레이하며,
    상기 제1 결합 단어는 상기 복수의 등록 단어 중 적어도 하나의 단어에 대응되는 제1 부분 및 상기 복수의 등록 단어 중 어느 단어에도 대응되지 않는 제2 부분을 포함하는, 디바이스.
  2. ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1 항에 있어서,
    상기 프로세서는, 상기 제1 결합 단어를 구성하는 복수의 음절에 대하여 상기 복수의 등록 단어에 대응하는 복수의 필터를 적용함으로써, 상기 제1 결합 단어로부터 상기 복수의 등록 단어 중 적어도 하나의 단어에 대응되는 상기 제1 부분을 검출하는, 디바이스.
  3. 제 1 항에 있어서,
    상기 프로세서는, 상기 제1 부분에 대응되는 적어도 하나의 등록 단어를 검출하고, 상기 복수의 등록 단어의 시퀀스에 관한 정보에 기초하여, 상기 복수의 등록 단어 중 상기 제1 부분에 대응되는 적어도 하나의 등록 단어의 시퀀스 다음에 입력될 확률이 가장 높은 등록 단어를 상기 복수의 예상 단어들 중 하나로써 결정하는, 디바이스.
  4. 제 3 항에 있어서,
    상기 프로세서는, 신경망(Neural network) 알고리즘을 이용하여 상기 복수의 등록 단어 중 상기 제1 부분에 대응되는 적어도 하나의 등록 단어의 다음에 입력될 확률이 가장 높은 단어를 결정하는, 디바이스.
  5. 제 4 항에 있어서, 상기 프로세서는,
    상기 텍스트의 다음 단어를 입력하는 사용자 입력을 획득하고,
    상기 텍스트로부터 검출된 상기 제1 부분에 대응되는 적어도 하나의 등록 단어의 시퀀스가 상기 신경망의 입력값으로 입력되었을 때, 상기 입력된 다음 단어가 상기 신경망의 출력값으로 출력되도록, 상기 신경망을 구성하는 파라미터를 업데이트하는, 디바이스.
  6. ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1 항에 있어서,
    상기 프로세서는,
    상기 제1 결합 단어로부터 검출된 상기 제1 부분과 함께, 상기 제1 결합 단어 내에 포함된 적어도 하나의 형태소에 기초하여, 상기 텍스트 다음에 연속으로 입력될 수 있는 상기 복수의 예상 단어들을 결정하는, 디바이스.
  7. 삭제
  8. 제 1 항에 있어서, 상기 프로세서는,
    상기 제2 부분을 상기 제1 부분에 관한 접사로써 저장하고,
    상기 제1 부분이 예상 단어로 결정되는 경우, 상기 제1 부분 및 상기 제 1결합 단어 중 하나를 선택하기 위한 메뉴를 디스플레이하는, 디바이스.
  9. 디바이스의 프로세서에 의해 수행되는 단어 추천 방법에 있어서,
    복수의 등록 단어의 시퀀스에 관한 정보를 저장하는 단계;
    제1 결합 단어를 포함하는 텍스트를 입력하는 사용자 입력을 획득하는 단계;
    상기 제1 결합 단어로부터, 상기 복수의 등록 단어 중 적어도 하나의 단어에 대응되는 제1 부분을 검출하는 단계;
    상기 복수의 등록 단어의 시퀀스에 관한 정보 및 상기 검출된 제1 부분에 기초하여, 상기 텍스트에 연속으로 입력될 수 있는 복수의 예상 단어들을 결정하는 단계;
    상기 결정된 복수의 예상 단어들 중 하나를 선택하기 위한 메뉴를 디스플레이하는 단계;
    상기 복수의 예상 단어들 중 하나를 선택하는 사용자 입력을 획득하는 단계; 및
    상기 복수의 예상 단어들 중 하나를 선택하는 사용자 입력에 대응되는 단어를 상기 텍스트에 연속하여 디스플레이하는 단계를 포함하고,
    상기 제1 결합 단어는 상기 복수의 등록 단어 중 적어도 하나의 단어에 대응되는 제1 부분 및 상기 복수의 등록 단어 중 어느 단어에도 대응되지 않는 제2 부분을 포함하는, 단어 추천 방법.
  10. ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈
    제 9 항에 있어서,
    상기 제1 결합 단어로부터, 상기 복수의 등록 단어 중 적어도 하나의 단어에 대응되는 제1 부분을 검출하는 단계는,
    상기 제1 결합 단어를 구성하는 복수의 음절에 대하여 상기 복수의 등록 단어에 대응하는 복수의 필터를 적용함으로써, 상기 제1 결합 단어로부터 상기 복수의 등록 단어 중 적어도 하나의 단어에 대응되는 상기 제1 부분을 검출하는 단계를 포함하는, 방법.
  11. 제 9 항에 있어서,
    상기 텍스트에 연속으로 입력될 수 있는 복수의 예상 단어들을 결정하는 단계는,
    상기 제1 부분에 대응되는 적어도 하나의 등록 단어를 검출하는 단계; 및
    상기 복수의 등록 단어의 시퀀스에 관한 정보에 기초하여, 상기 복수의 등록 단어 중 상기 제1 부분에 대응되는 적어도 하나의 등록 단어의 시퀀스 다음에 입력될 확률이 가장 높은 등록 단어를 상기 복수의 예상 단어들 중 하나로써 결정하는 단계를 포함하는, 방법.
  12. 제 11 항에 있어서,
    상기 텍스트 다음에 입력될 예상 어절을 결정하는 단계는,
    신경망(Neural network) 알고리즘을 이용하여 상기 복수의 등록 단어 중 상기 제1 부분에 대응되는 적어도 하나의 등록 단어의 다음에 입력될 확률이 가장 높은 단어를 결정하는 단계를 포함하는, 방법.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    제 12 항에 있어서,
    상기 단어 추천 방법은,
    상기 텍스트의 다음 단어를 입력하는 사용자 입력을 획득하는 단계; 및
    상기 텍스트로부터 검출된 상기 제1 부분에 대응되는 적어도 하나의 등록 단어의 시퀀스가 상기 신경망의 입력값으로 입력되었을 때, 상기 입력된 다음 단어가 상기 신경망의 출력값으로 출력되도록, 상기 신경망을 구성하는 파라미터를 업데이트하는 단계를 더 포함하는, 방법.
  14. ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈
    제 9 항에 있어서,
    상기 텍스트에 연속으로 입력될 수 있는 복수의 예상 단어들을 결정하는 단계는,
    상기 제1 결합 단어로부터 검출된 상기 제1 부분과 함께, 상기 제1 결합 단어 내에 포함된 적어도 하나의 형태소에 기초하여, 상기 텍스트 다음에 연속으로 입력될 수 있는 상기 복수의 예상 단어들을 결정하는 단계를 더 포함하는, 방법.
  15. 삭제
  16. 제 9 항에 있어서,
    상기 단어 추천 방법은,
    상기 제2 부분을 상기 제1 부분에 관한 접사로써 저장하는 단계; 및
    상기 제1 부분이 예상 단어로 결정되는 경우, 상기 제1 부분 및 상기 제1 결합 단어 중 하나를 선택하기 위한 메뉴를 디스플레이하는 단계를 더 포함하는, 방법.
  17. 제 9 항 내지 제 14 항 및 제 16 항 중 어느 한 항에 있어서, 상기 단어 추천 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록매체.
KR1020170154976A 2017-05-16 2017-11-20 단어 추천 방법 및 이를 위한 장치 KR102450973B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/954,931 US10846477B2 (en) 2017-05-16 2018-04-17 Method and apparatus for recommending word
US17/099,831 US11556708B2 (en) 2017-05-16 2020-11-17 Method and apparatus for recommending word

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201762506763P 2017-05-16 2017-05-16
US62/506,763 2017-05-16

Publications (2)

Publication Number Publication Date
KR20180125863A KR20180125863A (ko) 2018-11-26
KR102450973B1 true KR102450973B1 (ko) 2022-10-05

Family

ID=64603120

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170154976A KR102450973B1 (ko) 2017-05-16 2017-11-20 단어 추천 방법 및 이를 위한 장치

Country Status (1)

Country Link
KR (1) KR102450973B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102530295B1 (ko) * 2022-03-11 2023-05-10 주식회사 보이스에이아이 인공 지능 기반의 스마트 초성 입력 서비스를 제공하는 서버 및 그 서버의 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060136208A1 (en) 2004-12-17 2006-06-22 Electronics And Telecommunications Research Institute Hybrid apparatus for recognizing answer type
KR100643801B1 (ko) * 2005-10-26 2006-11-10 엔에이치엔(주) 복수의 언어를 연동하는 자동완성 추천어 제공 시스템 및방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060136208A1 (en) 2004-12-17 2006-06-22 Electronics And Telecommunications Research Institute Hybrid apparatus for recognizing answer type
KR100597437B1 (ko) * 2004-12-17 2006-07-06 한국전자통신연구원 하이브리드 정답유형 인식 장치 및 방법
KR100643801B1 (ko) * 2005-10-26 2006-11-10 엔에이치엔(주) 복수의 언어를 연동하는 자동완성 추천어 제공 시스템 및방법
US20070100890A1 (en) 2005-10-26 2007-05-03 Kim Tae-Il System and method of providing autocomplete recommended word which interoperate with plurality of languages

Also Published As

Publication number Publication date
KR20180125863A (ko) 2018-11-26

Similar Documents

Publication Publication Date Title
KR102628036B1 (ko) 음성 신호를 기초로 한 텍스트 편집 장치 및 텍스트 편집 방법
CN107077841B (zh) 用于文本到语音的超结构循环神经网络
CN106098060B (zh) 语音的纠错处理方法和装置、用于语音的纠错处理的装置
US9842101B2 (en) Predictive conversion of language input
US11640503B2 (en) Input method, input device and apparatus for input
US12045578B2 (en) Method for determining text similarity, storage medium and electronic device
US11514916B2 (en) Server that supports speech recognition of device, and operation method of the server
CN108803890B (zh) 一种输入方法、输入装置和用于输入的装置
US12039971B2 (en) Method, apparatus, electronic device and storage medium for semantic recognition
CN107564526B (zh) 处理方法、装置和机器可读介质
KR20200080400A (ko) 페르소나에 기반하여 문장을 제공하는 방법 및 이를 지원하는 전자 장치
CN109101505B (zh) 一种推荐方法、推荐装置和用于推荐的装置
US20150186357A1 (en) Language Preference Selection for a User Interface Using Non-Language Elements
KR20210032875A (ko) 음성 정보 처리 방법, 장치, 프로그램 및 저장 매체
CN114154459A (zh) 语音识别文本处理方法、装置、电子设备及存储介质
US11556708B2 (en) Method and apparatus for recommending word
CN112037756A (zh) 语音处理方法、装置和介质
CN115879440A (zh) 自然语言处理、模型训练方法、装置、设备及存储介质
CN111640452B (zh) 一种数据处理方法、装置和用于数据处理的装置
KR102450973B1 (ko) 단어 추천 방법 및 이를 위한 장치
KR20200057426A (ko) 음성 인식 기반 이미지를 표시하는 전자 장치
CN111324214B (zh) 一种语句纠错方法和装置
KR20210050484A (ko) 정보 처리 방법, 장치 및 저장 매체
CN114550691A (zh) 一种多音字消歧方法、装置、电子设备及可读存储介质
CN112612442A (zh) 一种输入方法、装置和电子设备

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