KR102604552B1 - 단어 임베딩 방법, 단어 임베딩 장치, 음성 인식 방법 및 음성 인식 장치 - Google Patents

단어 임베딩 방법, 단어 임베딩 장치, 음성 인식 방법 및 음성 인식 장치 Download PDF

Info

Publication number
KR102604552B1
KR102604552B1 KR1020160090206A KR20160090206A KR102604552B1 KR 102604552 B1 KR102604552 B1 KR 102604552B1 KR 1020160090206 A KR1020160090206 A KR 1020160090206A KR 20160090206 A KR20160090206 A KR 20160090206A KR 102604552 B1 KR102604552 B1 KR 102604552B1
Authority
KR
South Korea
Prior art keywords
word
sentence
embedding
unlabeled
similar
Prior art date
Application number
KR1020160090206A
Other languages
English (en)
Other versions
KR20180008199A (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 KR1020160090206A priority Critical patent/KR102604552B1/ko
Priority to US15/642,547 priority patent/US20180018971A1/en
Publication of KR20180008199A publication Critical patent/KR20180008199A/ko
Application granted granted Critical
Publication of KR102604552B1 publication Critical patent/KR102604552B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification
    • G10L17/18Artificial neural networks; Connectionist approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/243Natural language query formulation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification
    • G10L17/04Training, enrolment or model building
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue

Abstract

단어 임베딩 방법 및 장치는 입력 문장에 포함된 언레이블된 단어를 검출하고, 입력 문장에 포함된 레이블된 단어들에 기초하여, 언레이블된 단어를 임베딩한 결과에 따른 특징 벡터를 출력한다.

Description

단어 임베딩 방법, 단어 임베딩 장치, 음성 인식 방법 및 음성 인식 장치 {METHOD AND APPARATUS FOR WORD EMBEDDING, METHOD AND APPARATUS FOR VOICE RECOGNITION}
아래의 실시예들은 단어 임베딩 방법, 단어 임베딩 장치, 음성 인식 방법 및 음성 인식 장치에 관한 것이다.
별도의 명령 입력 또는 버튼 선택과 같은 동작이 없이도 사용자의 음성을 인식함으로써 사용자의 요청을 처리하는 기술이 다양한 전자 장치들에서 사용자 편의를 향상시키기 위하여 제공되고 있다. 이러한 음성 인식은 학습 기반 모델을 이용하여 사용자의 음성을 미리 학습시켜 두고, 이후의 사용자 요청 시 미리 학습된 음성을 인식함으로써 이루어진다. 학습 기반 모델에서 학습한 적이 없는 처음 보는 단어(unseen word)가 등장하는 경우, 해당 단어뿐만 아니라, 해당 단어를 포함하는 문장 전체에 대한 의미 파악이 용이하지 않다.
일 측에 따르면, 단어 임베딩 방법은 입력 문장을 수신하는 단계; 상기 입력 문장에 포함된 언레이블된 단어(unlabeled word)를 검출(detect)하는 단계; 상기 입력 문장에 포함된 레이블된 단어들(labeled words)에 기초하여, 상기 언레이블된 단어를 임베딩(embedding)하는 단계; 및 상기 임베딩 결과에 따른 특징 벡터를 출력하는 단계를 포함한다.
상기 언레이블된 단어를 임베딩하는 단계는 상기 언레이블된 단어에 대응하는 적어도 하나의 레이블된 단어를 검색하는 단계; 및 상기 입력 문장에 포함된 레이블된 단어들과 상기 검색된 적어도 하나의 레이블된 단어에 기초하여, 상기 언레이블된 단어를 임베딩하는 단계를 포함한다.
상기 적어도 하나의 레이블된 단어를 검색하는 단계는 웹 서치(web search) 또는 미리 저장된 사전 데이터베이스 중 적어도 하나를 이용하여 상기 적어도 하나의 레이블된 단어를 검색하는 단계를 포함할 수 있다.
상기 언레이블된 단어는 상기 입력 문장에 포함된 복수의 단어들 중 미리 정해진 유형의 특징 벡터에 대응되는 레이블된 단어를 제외한 나머지 단어를 포함할 수 있다.
상기 언레이블된 단어를 검출하는 단계는 상기 입력 문장에 포함된 복수의 단어들 각각에 대하여, 해당 단어에 대응하는 미리 정해진 유형의 특징 벡터를 획득하는 단계; 및 상기 해당 단어에 대응하여 상기 미리 정해진 유형의 특징 벡터를 획득할 수 없는 경우, 상기 해당 단어를 상기 언레이블된 단어로 검출하는 단계를 포함할 수 있다.
상기 해당 단어에 대응하는 미리 정해진 유형의 특징 벡터를 획득하는 단계는 상기 해당 단어를 뉴럴 네트워크를 포함하는 제1 모델에 인가함으로써, 상기 해당 단어에 대응하는 미리 정해진 유형의 특징 벡터를 획득하는 단계를 포함할 수 있다.
상기 언레이블된 단어를 임베딩하는 단계는 상기 언레이블된 단어를 상기 제1 모델과 구별되는 제2 모델에 인가함으로써 임베딩하는 단계를 포함할 수 있다.
상기 언레이블된 단어를 임베딩하는 단계는 상기 입력 문장에 포함된 레이블된 단어들을 포함하는 유사 문장들을 검색하는 단계; 및 상기 유사 문장들 중 최대 유사도를 가지는 최유사 문장을 이용하여 상기 언레이블된 단어를 임베딩하는 단계를 포함할 수 있다.
상기 언레이블된 단어를 임베딩하는 단계는 상기 입력 문장에 포함된 레이블된 단어들을 포함하는 유사 문장들을 검색하는 단계; 상기 유사 문장들 중 설정된 임계치보다 큰 유사도를 가지는 적어도 하나의 유사 문장을 추출하는 단계; 및 상기 적어도 하나의 유사 문장을 이용하여 상기 언레이블된 단어를 임베딩하는 단계를 포함할 수 있다.
상기 적어도 하나의 유사 문장을 추출하는 단계는 상기 임계치보다 큰 유사도를 가지는 적어도 하나의 유사 문장을 유사도 순으로 추출하는 단계를 포함할 수 있다.
상기 언레이블된 단어를 임베딩하는 단계는 복수의 언레이블된 단어들에 대응하여 기 생성된 특징 벡터들을 저장하는 룩업 테이블을 참조함으로써, 상기 언레이블된 단어에 대응하는 특징 벡터를 검출하는 단계를 포함할 수 있다.
일 측에 따르면, 음성 인식 방법은 사용자의 음성을 인식하여 입력 문장을 생성하는 단계; 상기 입력 문장에 포함된 언레이블된 단어를 검출(detect)하는 단계; 상기 입력 문장에 포함된 레이블된 단어들에 대응하는 제1 특징 벡터들을 획득하는 단계; 상기 제1 특징 벡터들에 기초하여, 상기 언레이블된 단어에 대응하는 제2 특징 벡터를 획득하는 단계; 및 상기 제1 특징 벡터들 및 상기 제2 특징 벡터에 기초하여, 상기 입력 문장에 대응하는 해석 정보(interpretation information)를 생성하는 단계를 포함한다.
상기 언레이블된 단어를 검출하는 단계는 상기 입력 문장에 포함된 복수의 단어들 각각에 대하여, 해당 단어에 대응하는 미리 정해진 유형의 상기 제1 특징 벡터를 획득할 수 없는 경우, 상기 해당 단어를 상기 언레이블된 단어로 검출하는 단계를 포함할 수 있다.
상기 제1 특징 벡터들을 획득하는 단계는 상기 입력 문장에 포함된 레이블된 단어들을 뉴럴 네트워크를 포함하는 제1 모델에 인가함으로써, 상기 해당 단어에 대응하는 미리 정해진 유형의 제1 특징 벡터를 획득하는 단계를 포함할 수 있다.
상기 제2 특징 벡터를 획득하는 단계는 상기 제1 특징 벡터들에 기초하여, 상기 언레이블된 단어를 상기 제1 모델과 구별되는 제2 모델에 인가하여 임베딩 함으로써 상기 제2 특징 벡터를 획득하는 단계를 포함할 수 있다.
일 측에 따르면, 단어 임베딩 장치는 입력 문장을 수신하는 송수신 인터페이스; 및 상기 입력 문장에 포함된 언레이블된 단어를 검출하고, 상기 입력 문장에 포함된 레이블된 단어들에 기초하여, 상기 언레이블된 단어를 임베딩하는 프로세서를 포함하고, 상기 송수신 인터페이스는 상기 임베딩 결과에 따른 특징 벡터를 출력한다.
상기 프로세서는 웹 서치 또는 미리 저장된 사전 데이터베이스 중 적어도 하나를 이용하여 상기 언레이블된 단어에 대응하는 적어도 하나의 레이블된 단어를 검색하고, 상기 입력 문장에 포함된 레이블된 단어들과 상기 검색된 적어도 하나의 레이블된 단어에 기초하여, 상기 언레이블된 단어를 임베딩할 수 있다.
상기 프로세서는 상기 입력 문장에 포함된 복수의 단어들 각각에 대하여, 해당 단어에 대응하는 미리 정해진 유형의 특징 벡터를 획득하고, 상기 해당 단어에 대응하여 상기 미리 정해진 유형의 특징 벡터를 획득할 수 없는 경우, 상기 해당 단어를 상기 언레이블된 단어로 검출할 수 있다.
일 측에 따르면, 음성 인식 장치는 사용자의 음성을 인식하여 입력 문장을 생성하는 문장 생성기; 및 상기 입력 문장에 포함된 언레이블된 단어를 검출하고, 상기 입력 문장에 포함된 레이블된 단어들에 대응하는 제1 특징 벡터들을 획득하며, 상기 제1 특징 벡터들에 기초하여, 상기 언레이블된 단어에 대응하는 제2 특징 벡터를 획득하는 단어 임베딩 장치를 포함하고, 상기 제1 특징 벡터들 및 상기 제2 특징 벡터에 기초하여, 상기 입력 문장에 대응하는 해석 정보를 생성한다.
도 1은 일 실시예에 따른 단어 임베딩 방법이 수행되는 환경을 설명하기 위한 도면.
도 2는 일 실시예에 따른 단어 임베딩 과정을 개념적으로 설명하기 위한 도면.
도 3은 일 실시예에 따른 단어 임베딩 방법을 나타낸 흐름도.
도 4는 일 실시예에 따라 입력 문장에 포함된 언레이블된 단어를 검출하는 방법을 나타낸 흐름도.
도 5 내지 도 6은 실시예들에 따라 언레이블된 단어를 임베딩하는 방법을 나타낸 흐름도.
도 7은 다른 실시예에 따른 단어 임베딩 방법을 나타낸 흐름도.
도 8은 일 실시예에 따라 처음 보는 단어를 오프 라인 상에서 미리 학습시키는 과정을 나타낸 도면.
도 9는 일 실시예에 따른 음성 인식 방법을 나타낸 흐름도.
도 10은 일 실시예에 따른 단어 임베딩 장치의 블록도.
도 11은 다른 실시예에 따른 단어 임베딩 장치의 블록도.
도 12는 일 실시예에 따른 음성 인식 장치의 블록도.
본 명세서에서 개시되어 있는 특정한 구조적 또는 기능적 설명들은 단지 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 실시예들은 다양한 다른 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 이해되어야 한다. 예를 들어 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~간의"와 "바로~간의" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
하기에서 설명될 실시예들은 자동차, 텔레비전, 핸드폰, 기타 전자 장치 등에 탑재되어 이전에 학습한 적이 없는 단어가 입력된 경우에 신속, 정확한 단어 임베딩 결과를 제공하는 데에 사용될 수 있다. 실시예들은 퍼스널 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트 폰, 스마트 가전 기기, 및 웨어러블 디바이스 등 다양한 형태의 제품으로 구현될 수 있다. 예를 들어, 실시예들은 스마트 폰, 모바일 기기, 스마트 홈 시스템, 자율 주행 자동차 및 웨어러블 디바이스 등에서 탑재되어 음성 인식 장치로 기능할 수 있다. 이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 단어 임베딩 방법이 수행되는 환경을 설명하기 위한 도면이다. 도 1을 참조하면, 학습되지 않은 단어가 포함된 문장에 대한 음성 인식 장치의 처리 결과가 도시된다.
예를 들어, 음성 인식 장치에 "강남역 근처 음식점을 알려줘"라는 제1 문장이 미리 학습되어 있고, 사용자가 "강남역 근처 식당을 알려줘"와 같은 제2 문장을 말한 경우에 음성 인식 장치의 처리 과정은 다음과 같다.
제1 문장에 포함된 단어들(예를 들어, '강남역', '근처', '음식점', 및 '알려줘')은 학습 모델에 인가되어 미리 알고 있는 단어, 다시 말해, 해당 단어에 대응하는 특징 벡터들이 마련된 단어들이다. 인식 장치는 해당 단어에 대응하는 특징 벡터들에 의해 제1 문장의 의미를 해석할 수 있다. 이때, 학습 모델은 뉴럴 네트워크(Neural Network; NN)로 구성될 수 있다.
뉴럴 네트워크는 언어의 어순이나 문법적인 특성을 고려하기 위해, 문장이나, 구 또는 절 단위로 입력 단어들을 표현하는 특징 벡터들을 입력 받고, 구 또는 절 단위로 예측 단어들을 표현하는 특징 벡터들을 출력하도록 트레이닝 특징 벡터의 레이블을 정의할 수 있다. 특징 벡터들이 마련된 단어는 특징 벡터의 레이블이 정의되어 있다는 의미에서 '레이블된 단어(labeled word)'라고 부를 수 있다. 특징 벡터는 임의의 단어를 표현(representation)하는 것으로서, 예를 들어, (3.432, 4.742, .. , 0.299) 또는 (0,1,0,1,0, 1,0) 등과 같은 실수 벡터일 수 있다. 이와 같이 자연어 단어를 실수 공간상의 벡터로 표현하는 것을 '단어 임베딩(word imbedding)'이라고 한다.
제2 문장의 경우, 제1 문장과 유사하지만, '음식점'이라는 단어를 대신하여, '식당'이라는 단어가 포함되어 있다. 이때, '식당'이라는 단어가 사전에 학습하지 못한 처음 보는 단어인 경우, 식당에 대응하는 특징 벡터가 존재하지 않으므로 인식 장치는 제2 문장을 해석할 수가 없다. '처음 보는 단어(unseen word)'는 학습 등을 통해 미리 마련된 특징 벡터가 레이블되지 않았다는 의미로 '언레이블된 단어(unlabeled word)'라고 부를 수 있다.
일 실시예에서는 제2 문장과 같이 처음 보는 단어 또는 처음 보는 단어가 포함된 문장에 대하여 처음 보는 단어의 벡터를 생성하는 별도의 모델을 이용하여 단어 임베딩을 수행할 수 있다. 또한, 일 실시예에서는 웹 서치 등과 같은 별도의 검색 과정을 통해 검출된 단어 또는 문장을 추가적으로 이용함으로써 처음 보는 단어에 대한 효율적인 임베딩을 제공할 수 있다. 처음 보는 단어의 벡터를 생성하는 별도의 모델은 예를 들어, RNN(Recurrent Neural Network), CNN(Convolutional Neural Network), bidirectional RNN 등으로 구성될 수 있다.
도 2는 일 실시예에 따른 단어 임베딩 과정을 개념적으로 설명하기 위한 도면이다. 도 2를 참조하면, 입력 문장에 처음 보는 단어가 포함된 경우의 단어 임베딩 장치(이하, 임베딩 장치)의 동작이 도시된다.
사용자 또는 별도의 장치로부터 문장이 입력되면(210), 임베딩 장치는 문장 내의 단어들을 미리 학습된 뉴럴 네트워크 모델에 의해 벡터 표현으로 변환할 수 있다(220). 임베딩 장치는 예를 들어, 문장 내의 단어들을 미리 학습된 뉴럴 네트워크 모델에 의해 임베딩된 벡터 값 또는 특징 벡터로 변환할 수 있다. 이때, 뉴럴 네트워크 모델은 예를 들어, 회귀 뉴럴 네트워크(RNN)로 구성될 수 있다.
임베딩 장치는 문장 내에 처음 보는 단어가 존재하는지 여부를 판단할 수 있다(230). 단계(230)의 판단 결과, 문장 내에 처음 보는 단어가 존재하지 않는 경우, 임베딩 장치는 단계(220)에서 이용된 학습된 뉴럴 네트워크 모델을 적용하여 입력된 문장을 해석할 수 있다(240). 임베딩 장치는 단계(240)의 해석 결과를 출력할 수 있다(260).
단계(230)의 판단 결과, 문장 내에 처음 보는 단어가 존재하는 경우, 임베딩 장치는 처음 보는 단어(또는 처음 보는 단어를 포함하는 문장)를 별개의 뉴럴 네트워크 모델에 인가하여 벡터 표현으로 변환할 수 있다(250). 별개의 뉴럴 네트워크 모델은 처음 보는 단어에 대응되는 벡터 표현을 결정할 수 있다. 임베딩 장치는 단계(250)에서 변환된 벡터 표현을 출력할 수 있다(260).
일 실시예에서 임베딩 장치는 처음 보는 단어를 제외한 나머지 단어만을 포함한 문장을 가지고 학습시켰을 때의 나머지 단어들에 대한 특징 벡터를 사전에 알고 있다. 때문에 임베딩 장치는 해당 문장의 문맥을 고려하여 처음 보는 단어가 그 의미에 해당하는 가장 유사한 특징 벡터를 갖도록 처리할 수 있다.
이와 같이, 처음 보는 단어에 대응하는 특징 벡터를 문맥상 유사한 의미를 가지는 특징 벡터로 변환하고자 할 때, 처음 보는 단어가 들어간 하나의 문장만으로는 처음 보는 단어의 의미 파악이 모호할 수 있다. 따라서, 임베딩 장치는 처음 보는 단어가 들어간 문장과 유사한 문장(들)을 검색하여 문장 임베딩(sentence embedding)을 진행할 수 있다. 유사 문장들의 검색 시에, 임베딩 장치는 사전에 지정한 임계치(threshold)을 기반으로 입력 문장과 가장 유사한 문장을 추출할 수 있다. 임베딩 장치는 별개의 뉴럴 네트워크 모델에 처음 보는 단어를 포함하는 입력 문장과 웹 서치 기반으로 얻은 유사한 문장들을 함께 인가함으로써 처음 보는 단어의 임베딩 결과에 해당하는 특징 벡터를 실시간으로 출력할 수 있다.
또는, 임베딩 장치는 웹 서핑을 통해 처음 보는 단어가 들어간 여러 문장들을 추출하고, 사전에 정해놓은 임계치를 이용하여 가장 의미가 비슷하다고 여겨지는 문장을 다시 한 번 추출함으로써 특징 벡터 및 뉴럴 네트워크 모델의 정확도를 향상시킬 수 있다. 일 실시예에서는 상술한 과정들을 통해 처음 보는 단어에 대하여 문맥 상 가장 유사한 의미를 갖는 특징 벡터를 출력할 수 있다.
일 실시예에서 처음 보는 단어를 임베딩하는 과정은 모두 실시간으로 수행될 수 있으나, 실시예에 따라서, 응답 시간(response time)이 중요하여 실시간 웹 서치를 이용하는 것이 어려운 경우가 발생할 수도 있다. 이러한 경우, 처음 보는 단어에 대응한 특징 벡터를 오프 라인으로 미리 준비해 둠으로써 처음 보는 단어가 실제 출현하였을 때 미리 준비해 놓은 특징 벡터를 그대로 적용하여 응답 시간을 줄일 수 있다. 이와 같이 실시간 웹 서치를 이용하는 것이 어려운 경우에 수행 가능한 실시예는 도 8을 참조하여 설명한다.
도 3은 일 실시예에 따른 단어 임베딩 방법을 나타낸 흐름도이다. 도 3을 참조하면, 일 실시예에 따른 임베딩 장치는 입력 문장을 수신한다(310). 임베딩 장치는 예를 들어, 사용자 또는 별도의 음성 변환 장치 등으로부터 입력 문장을 수신할 수 있다.
임베딩 장치는 입력 문장에 포함된 언레이블된 단어를 검출(detect)한다(320). 언레이블된 단어는 입력 문장에 포함된 복수의 단어들 중 미리 정해진 유형의 특징 벡터에 대응되는 레이블된 단어를 제외한 나머지 단어를 포함할 수 있다. 이때, 미리 정해진 유형의 특징 벡터는 예를 들어, 분포형 벡터(distributional vector)일 수도 있고, 원-핫 벡터(one-hot vector)일 수도 있다. 임베딩 장치가 언레이블된 단어를 검출하는 방법은 도 4를 참조하여 설명한다.
임베딩 장치는 입력 문장에 포함된 레이블된 단어들에 기초하여, 언레이블된 단어를 임베딩한다(330). 임베딩 장치가 언레이블된 단어를 임베딩하는 방법은 도 5 내지 도 6을 참조하여 설명한다.
임베딩 장치는 임베딩 결과에 따른 특징 벡터를 출력한다(340).
도 4는 일 실시예에 따라 입력 문장에 포함된 언레이블된 단어를 검출하는 방법을 나타낸 흐름도이다. 도 4를 참조하면, 일 실시예에 따른 임베딩 장치는 입력 문장에 포함된 복수의 단어들 각각에 대하여, 해당 단어에 대응하는 미리 정해진 유형의 특징 벡터를 획득할 수 있다(410). 임베딩 장치는 예를 들어, 해당 단어를 뉴럴 네트워크를 포함하는 제1 모델에 인가함으로써, 해당 단어에 대응하는 미리 정해진 유형의 특징 벡터를 획득할 수 있다. 제1 모델은 예를 들어, 회귀 뉴럴 네트워크(Recurrent Neural Network; RNN)로 구성되며, 미리 학습된 것일 수 있다.
단계(410)에서 미리 정해진 유형의 특징 벡터를 획득할 수 없는 경우, 임베딩 장치는 해당 단어를 언레이블된 단어로 검출할 수 있다(420).
도 5는 일 실시예에 따라 언레이블된 단어를 임베딩하는 방법을 나타낸 흐름도이다. 도 5를 참조하면, 일 실시예에 따른 임베딩 장치는 언레이블된 단어에 대응하는 적어도 하나의 레이블된 단어를 검색할 수 있다(510). 임베딩 장치는 예를 들어, 웹 서치(web search)를 통해 언레이블된 단어에 대응하는 적어도 하나의 레이블된 단어를 검색하거나, 또는 미리 저장된 사전(dictionary) 데이터베이스를 이용하여 언레이블된 단어에 대응하는 적어도 하나의 레이블된 단어를 검색할 수 있다.
임베딩 장치는 입력 문장에 포함된 레이블된 단어들과 검색된 적어도 하나의 레이블된 단어에 기초하여, 언레이블된 단어를 임베딩할 수 있다(520). 임베딩 장치는 입력 문장에 포함된 레이블된 단어들과 검색된 적어도 하나의 레이블된 단어에 기초하여 언레이블된 단어를 임베딩 함으로써 언레이블된 단어에 대응하는 특징 벡터가 문맥상 보다 유사한 의미를 가지도록 임베딩 정확도를 향상시킬 수 있다.
도 6은 다른 실시예에 따라 언레이블된 단어를 임베딩하는 방법을 나타낸 흐름도이다. 도 6을 참조하면, 일 실시예에 따른 임베딩 장치는 입력 문장에 포함된 레이블된 단어들을 포함하는 유사 문장들을 검색할 수 있다(610). 임베딩 장치는 웹 서치(web search) 또는 미리 저장된 사전(dictionary) 데이터베이스를 이용하여 입력 문장에 포함된 레이블된 단어들을 포함하는 유사 문장들을 검색할 수 있다. 이때, 임베딩 장치는 입력 문장에 포함된 레이블된 단어들을 모두 포함하는 유사 문장들을 검색할 수도 있고, 일부만을 포함하는 유사 문장들을 검색할 수도 있다.
단계(610)에서, 임베딩 장치는 예를 들어, 자카드 계수(jaccard coefficient) 방법, 편집 거리(edit distance) 방법 및 해시 함수(hash function) 등과 같은 유사도 판단 방법을 이용하여 입력 문장에 유사한 유사 문장들을 검색할 수 있다. 자카드 계수는 두 객체(문장) 간의 겹치는 정도를 수치로 나타낸 것으로서, 자카드 수치가 높을수록 두 문장 간의 유사도는 높은 것으로 판단될 수 있다. 편집 거리 방법은 '리벤슈타인 디스턴스 알고리즘(Levenshtein Distance algorithm)'으로도 불리며, 두 개의 문자열이 얼마나 유사한지를 알아내는 방법이다. 편집 거리 방법은 예를 들어, 문자열 A와 B가 존재한다고 가정했을 때, A와 B가 같아지기 위해서는 몇 번의 연산을 거쳐야 하는지를 계산함으로써 유사 여부를 결정할 수 있다. 편집 거리 방법에서는 삽입(insert(add)), 삭제(delete) 및 대체(replacement) 등의 연산이 수행될 수 있다. 해시 함수를 이용하는 경우, 두 문장 간의 해시 함수 값이 유사한지 여부에 의해 유사 여부를 결정할 수 있다. 이때, 각 방법마다에 대하여 유사한 것으로 판단되는 기준, 다시 말해 임계치는 서로 다른 값으로 설정될 수 있다.
임베딩 장치는 단계(610)에서 검색된 유사 문장들 중 미리 설정된 임계치보다 큰 유사도를 가지는 적어도 하나의 유사 문장을 추출할 수 있다(620). 미리 설정된 임계치는 상술한 유사도 판단 방법에 따라 서로 달리 설정될 수 있다. 임베딩 장치는 예를 들어, 임계치보다 큰 유사도를 가지는 적어도 하나의 유사 문장을 유사도 순으로 추출할 수 있다.
임베딩 장치는 적어도 하나의 유사 문장을 이용하여 언레이블된 단어를 임베딩할 수 있다(630). 임베딩 장치는 예를 들어, 적어도 하나의 유사 문장을 제1 모델과 구별되는 제2 모델에 인가함으로써 언레이블된 단어를 임베딩할 수 있다. 이때, 제2 모델은 예를 들어, 입력 문장의 문맥 및/또는 입력 문장에 포함된 단어들 간의 관계 중 적어도 하나에 기초하여 단어의 의미를 추정하는 뉴럴 네트워크를 포함할 수 있다. 제2 모델은 예를 들어, RNN(Recurrent Neural Network), CNN(Convolutional Neural Network), bidirectional RNN 등으로 구성될 수 있다. 임베딩 장치는 적어도 하나의 문장에 포함된 적어도 일부의 단어를 이용하여 언레이블된 단어를 임베딩할 수 있다.
실시예에 따라서, 임베딩 장치는 입력 문장에 포함된 레이블된 단어들을 포함하는 유사 문장들을 검색하고, 유사 문장들 중 최대 유사도를 가지는 최유사 문장만을 이용하여 언레이블된 단어를 임베딩할 수도 있다.
도 7은 다른 실시예에 따른 단어 임베딩 방법을 나타낸 흐름도이다. 일 실시예에 따른 임베딩 장치는 입력 문장을 수신한다(710).
임베딩 장치는 입력 문장에 포함된 복수의 단어들 각각을 뉴럴 네트워크를 포함하는 제1 모델에 인가함으로써, 해당 단어에 대응하는 미리 정해진 유형의 특징 벡터를 획득할 수 있다(720).
임베딩 장치는 해당 단어에 대응하여 미리 정해진 유형의 특징 벡터를 획득할 수 없는 경우, 해당 단어를 언레이블된 단어로 검출할 수 있다(730).
임베딩 장치는 입력 문장에 포함된 레이블된 단어들에 기초하여, 언레이블된 단어를 제1 모델과 구별되는 제2 모델에 인가함으로써 임베딩할 수 있다(740).
임베딩 장치는 단계(740)의 임베딩 결과에 따른 특징 벡터를 출력할 수 있다(750).
도 8은 일 실시예에 따라 처음 보는 단어를 오프 라인 상에서 미리 학습시키는 과정을 나타낸 도면이다. 처음 보는 단어(언레이블된 단어)를 오프 라인 상에서 미리 뉴럴 네트워크를 학습시키는 경우, 임베딩 장치는 처음 보는 단어와 관련된 상황(문맥 상의 의미 등)을 알고 있다. 때문에 임베딩 장치는 웹 서치 과정 등을 통해 오프 라인으로 처음 보는 단어에 대응한 유사 문장 및 처음 보는 단어에 대응한 특징 벡터를 미리 준비할 수 있다. 임베딩 장치는 이후, 실제 입력 문장에 처음 보는 단어가 출현하였을 때 미리 준비해 놓은 특징 벡터를 그대로 적용함으로써 응답 시간을 줄일 수 있다.
이와 같은 오프 라인 상의 학습 시에 처음 보는 단어라고 가정된 단어의 웹 서치 결과, 또 다른 처음 보는 단어가 검색될 수 있다. 이 경우, 임베딩 장치는 학습이 완료된 이후, 또 다른 처음 보는 단어에 대한 임베딩을 오프 라인으로 미리 계산하여 룩업 테이블을 미리 생성해 둘 수 있다.
임베딩 장치는 예를 들어, 복수의 언레이블된 단어들에 대응하여 기 생성된 특징 벡터들을 저장하는 룩업 테이블을 참조함으로써, 언레이블된 단어에 대응하는 특징 벡터를 검출할 수 있다.
도 8을 참조하면, 일 실시예에 따른 임베딩 장치는 문장이 입력되면(810), 문장 내에서 학습에 사용될 처음보는 단어(또는 처음보는 단어가 들어간 문장)을 선택할 수 있다(820). 임베딩 장치는 학습에 사용될 처음보는 단어를 RNN 모델에 인가하여 벡터 표현으로 변환할 수 있다(830). 임베딩 장치는 벡터 표현을 출력할 수 있다(840).
실시예에 따라서, 학습에 사용될 언레이블된 단어가 포함된 문장이 선택되면, 임베딩 장치는 웹 서치 후, 선택된 문장에 유사한 문장들을 포함하는 문장 목록을 생성할 수 있다(840). 임베딩 장치는 미리 설정된 임계치를 이용하여 선택된 문장에 가장 유사한 문장을 선택, 추출할 수 있다(850). 임베딩 장치는 가장 유사한 문장을 RNN 모델에 인가함으로써 언레이블된 단어를 벡터 표현으로 변환할 수 있다(830).
도 9는 일 실시예에 따른 음성 인식 방법을 나타낸 흐름도이다. 도 9를 참조하면, 일 실시예에 따른 단어 임베딩 방법을 이용하는 음성 인식 과정이 도시된다.
일 실시예에 따른 음성 인식 장치는 사용자의 음성을 인식하여 입력 문장을 생성한다(910).
음성 인식 장치는 입력 문장에 포함된 언레이블된 단어를 검출한다(920). 예를 들어, 입력 문장에 포함된 복수의 단어들 각각에 대하여, 해당 단어에 대응하는 미리 정해진 유형의 제1 특징 벡터를 획득할 수 없는 경우, 음성 인식 장치는 해당 단어를 언레이블된 단어로 검출할 수 있다.
음성 인식 장치는 입력 문장에 포함된 레이블된 단어들에 대응하는 제1 특징 벡터들을 획득한다(930). 음성 인식 장치는 입력 문장에 포함된 레이블된 단어들을 뉴럴 네트워크를 포함하는 제1 모델에 인가함으로써, 해당 단어에 대응하는 미리 정해진 유형의 제1 특징 벡터를 획득할 수 있다.
음성 인식 장치는 제1 특징 벡터들에 기초하여, 언레이블된 단어에 대응하는 제2 특징 벡터를 획득한다(940). 음성 인식 장치는 제1 특징 벡터들에 기초하여, 언레이블된 단어를 제1 모델과 구별되는 제2 모델에 인가하여 임베딩 함으로써 제2 특징 벡터를 획득할 수 있다.
음성 인식 장치는 제1 특징 벡터들 및 제2 특징 벡터에 기초하여, 입력 문장에 대응하는 해석 정보(interpretation information)를 생성한다(950). 해석 정보는 기계가 인식할 수 있는 자연어 해석 정보로 이해될 수 있다.
이 밖에도, 일 실시예에 따른 음성 인식 장치에는 도 2 내지 도 8을 통해 전술한 단어 임베딩 방법이 동일하게 적용될 수 있다.
도 10은 일 실시예에 따른 단어 임베딩 장치의 블록도이다. 도 10을 참조하면, 일 실시예에 따른 단어 임베딩 장치(1000)는 송수신 인터페이스(1010), 프로세서(1030) 및 메모리(1050)를 포함한다. 송수신 인터페이스(1010), 프로세서(1030) 및 메모리(1050)는 통신 버스(bus)(1005)를 통해 서로 연결될 수 있다.
송수신 인터페이스(1010)는 입력 문장을 수신한다. 송수신 인터페이스(1010)는 프로세서(1030)에서의 임베딩 결과에 따른 특징 벡터를 출력한다.
프로세서(1030)는 입력 문장에 포함된 언레이블된 단어를 검출하고, 입력 문장에 포함된 레이블된 단어들에 기초하여, 언레이블된 단어를 임베딩한다.
프로세서(1030)는 웹 서치 또는 미리 저장된 사전 데이터베이스 중 적어도 하나를 이용하여 언레이블된 단어에 대응하는 적어도 하나의 레이블된 단어를 검색할 수 있다. 프로세서(1030)는 입력 문장에 포함된 레이블된 단어들과 검색된 적어도 하나의 레이블된 단어에 기초하여, 언레이블된 단어를 임베딩할 수 있다.
프로세서(1030)는 입력 문장에 포함된 복수의 단어들 각각에 대하여, 해당 단어에 대응하는 미리 정해진 유형의 특징 벡터를 획득할 수 있다. 프로세서(1030)는 해당 단어에 대응하여 미리 정해진 유형의 특징 벡터를 획득할 수 없는 경우, 해당 단어를 언레이블된 단어로 검출할 수 있다.
또한, 프로세서(1030)는 이 밖에도, 도 1 내지 도 9를 통하여 전술한 적어도 하나의 방법을 수행할 수 있다. 프로세서(1030)는 프로그램을 실행하고, 단어 임베딩 장치(1000)를 제어할 수 있다. 프로세서(1030)에 의하여 실행되는 프로그램 코드는 메모리(1050)에 저장될 수 있다.
메모리(1050)는 프로세서(1030)에서의 임베딩 결과에 따른 특징 벡터를 저장할 수 있다. 또는 메모리(1050)는 웹 서치 또는 미리 저장된 사전 데이터베이스 중 적어도 하나를 이용하여 검색된, 언레이블된 단어에 대응하는 적어도 하나의 레이블된 단어를 저장할 수 있다. 메모리(1050)는 상술한 프로세서(1030)에서의 처리 과정에서 생성되는 다양한 정보들을 저장할 수 있다. 또한, 메모리(1050)는 송수신 인터페이스(1010)를 통해 수신된 정보를 저장할 수 있다.
이 밖에도, 메모리(1050)는 각종 데이터와 프로그램 등을 저장할 수 있다. 메모리(1050)는 휘발성 메모리 및 비휘발성 메모리를 포함할 수 있다. 메모리(1050)는 하드 디스크 등과 같은 대용량 저장 매체를 구비하여 각종 데이터를 저장할 수 있다. 예를 들어, 메모리(1050)는 하나 이상의 하드 디스크를 이용하여 사전 데이터베이스를 구성하고, 데이터베이스에 다양한 유사어 등을 저장할 수 있다.
도 11은 다른 실시예에 따른 단어 임베딩 장치의 블록도이다. 도 11을 참조하면, 일 실시예에 따른 단어 임베딩 장치(1100)는 입력 인터페이스(1110), 제1 모델(1130), 임베딩 프로세서(1150) 및 출력 인터페이스(1170)를 포함할 수 있다. 임베딩 프로세서(1150)는 검색기(1153) 및 제2 모델(1156)을 포함할 수 있다.
입력 인터페이스(1110)를 통해 입력 문장을 수신되면, 단어 임베딩 장치(1100)는 문장에 포함된 각 단어들에 미리 학습시킨 제1 모델(1130)에서 정의한 특징 벡터를 적용하여 입력 문장을 표현할 수 있다.
이때, 문장 내 포함된 모든 단어가 단어 임베딩되어 특징 벡터가 존재한다면, 단어 임베딩 장치(1100)는 존재하는 특징 벡터를 출력 인터페이스(1170)를 통해 바로 출력할 수 있다. 반면, 문장 내에 단어 임베딩되지 않은 처음 보는 단어, 다시 말해 언레이블된 단어가 포함된 경우, 단어 임베딩 장치(1100)는 언레이블된 단어에 대응하는 적합한 특징 벡터를 결정 또는 지정해 주어야 한다. 이때, 일 실시예에 따른 단어 임베딩 장치(1100)는 별도의 제2 모델(1156)을 이용하여 언레이블된 단어에 대응하는 적합한 특징 벡터를 결정할 수 있다.
입력 문장에 언레이블된 단어가 존재하는 경우, 단어 임베딩 장치(1100)는 언레이블된 단어를 별도의 제2 모델(1156)에 인가함으로써 보다 문맥을 활용하고 효율적으로 언레이블된 단어에 대한 단어 임베딩을 수행할 수 있다.
또한, 언레이블된 단어를 포함하는 문장만을 이용하여 언레이블된 단어에 대한 단어 임베딩을 수행하는 경우에 단어의 의미가 다소 모호해 질 수 있다. 따라서, 단어 임베딩 장치(1100)는 웹 서치 등에 의해 검색된 유사 문장을 임베딩 시에 추가로 이용할 수 있다. 검색기(1153)는 언레이블된 단어 또는 언레이블된 단어를 포함하는 문장에 대한 웹 서치에 의해 유사 문장을 검색하여 추출할 수 있다. 임베딩 프로세서(1150)는 추출된 유사 문장(또는 추출된 유사 문장에 포함된 레이블된 단어, 언레이블된 단어) 및 입력 문장(또는 입력 문장에 포함된 언레이블된 단어)을 제1 모델과 구별되는 제2 모델(1156)에 인가함으로써 언레이블된 단어를 임베딩할 수 있다.
출력 인터페이스(1170)는 언레이블된 단어의 임베딩 결과에 따른 특징 벡터를 출력할 수 있다. 이와 함께, 임베딩 프로세서(1150)는 언레이블된 단어의 임베딩 결과에 따른 특징 벡터를 제1 모델(1130)에게 제공할 수 있다.
도 12는 일 실시예에 따른 음성 인식 장치의 블록도이다. 도 12를 참조하면, 일 실시예에 따른 음성 인식 장치(1200)는 문장 생성기(1210) 및 단어 임베딩 장치(1230)를 포함한다.
문장 생성기(1210)는 사용자의 음성을 인식하여 입력 문장을 생성한다.
단어 임베딩 장치(1230)는 문장 생성기(1210)에서 생성된 입력 문장에 포함된 언레이블된 단어를 검출하고, 입력 문장에 포함된 레이블된 단어들에 대응하는 제1 특징 벡터들을 획득한다. 단어 임베딩 장치(1230)는 제1 특징 벡터들에 기초하여, 언레이블된 단어에 대응하는 제2 특징 벡터를 획득한다. 단어 임베딩 장치(1230)는 전술한 단어 임베딩 장치에 해당할 수 있다.
음성 인식 장치(1200)는 제1 특징 벡터들 및 제2 특징 벡터에 기초하여, 입력 문장에 대응하는 해석 정보를 생성한다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 저장될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
1000: 단어 임베딩 장치
1005: 통신 버스
1010: 송수신 인터페이스
1030: 프로세서
1050: 메모리

Claims (20)

  1. 입력 문장을 수신하는 단계;
    상기 입력 문장에 포함된 언레이블된 단어(unlabeled word)를 검출하는 단계;
    복수의 언레이블된 단어들에 대응하여 기 생성된 특징 벡터들을 저장하는 룩업 테이블(lookup table)로부터 상기 언레이블된 단어에 대응하는 특징 벡터를 검출함으로써 상기 언레이블된 단어를 임베딩(embedding)하는 단계; 및
    상기 임베딩 결과에 따른 특징 벡터를 출력하는 단계
    를 포함하고,
    상기 입력 문장의 적어도 일부를 기반으로 인터넷에서 웹 서치를 수행하여 상기 입력 문장에서 언레이블된 단어와 구별되는 처음 보는 단어를 검색하는 단계;상기 처음 보는 단어를 임베딩하기 위한특징 벡터를 미리 계산하는 단계; 및
    상기 미리 계산된 특징 벡터를 상기 룩업 테이블에 저장하는 단계
    를 더 포함하며,
    학습에 사용될 상기 처음 보는 단어가 포함된 문장이 선택되면, 상기 선택된 문장의 적어도 일부를 기반으로 상기 웹 서치를 수행하여 상기 선택된 문장에 유사한 문장들을 포함하는 문장 목록을 생성하는 단계;
    미리 설정된 임계치를 이용하여 상기 문장 목록 중 상기 선택된 문장에 가장 유사한 문장을 선택 및 추출하는 단계; 및
    상기 가장 유사한 문장을 뉴럴 네트워크 모델에 인가함으로써 상기 처음보는 단어를 벡터 표현으로 변환하는 단계
    를 더 포함하는, 단어 임베딩 방법.
  2. 제1항에 있어서,
    상기 언레이블된 단어를 임베딩하는 단계는
    상기 언레이블된 단어에 대응하는 적어도 하나의 레이블된 단어를 검색하는 단계; 및
    상기 입력 문장에 포함된 레이블된 단어들과 상기 검색된 적어도 하나의 레이블된 단어에 기초하여, 상기 언레이블된 단어를 임베딩하는 단계
    를 포함하는, 단어 임베딩 방법.
  3. ◈청구항 3은(는) 설정등록료 납부시 포기되었습니다.◈
    제2항에 있어서,
    상기 적어도 하나의 레이블된 단어를 검색하는 단계는
    상기 웹 서치 또는 미리 저장된 사전 데이터베이스 중 적어도 하나를 이용하여 상기 적어도 하나의 레이블된 단어를 검색하는 단계
    를 포함하는, 단어 임베딩 방법.
  4. ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 언레이블된 단어는
    상기 입력 문장의 레이블된 단어를 제외한 나머지 단어를 포함하는, 단어 임베딩 방법.
  5. 제1항에 있어서,
    상기 언레이블된 단어를 검출하는 단계는
    상기 입력 문장에 포함된 복수의 단어들 각각에 대응하는 특징 벡터들을 획득하는 단계; 및
    해당 단어에 대응하여 특징 벡터를 획득할 수 없는 경우, 상기 해당 단어를 상기 언레이블된 단어로 검출하는 단계
    를 포함하는, 단어 임베딩 방법.
  6. 제5항에 있어서,
    상기 특징 벡터들을 획득하는 단계는
    상기 해당 단어를 뉴럴 네트워크를 포함하는 제1 모델에 인가함으로써, 상기 해당 단어에 대응하는 미리 정해진 유형의 특징 벡터들을 획득하는 단계
    를 포함하는, 단어 임베딩 방법.
  7. 제6항에 있어서,
    상기 처음 보는 단어의 특징 벡터를 미리 계산하는 단계는
    상기 처음 보는 단어를 상기 제1 모델과 구별되는 제2 모델에 인가함으로써 임베딩하는 단계
    를 포함하는, 단어 임베딩 방법.
  8. 제1항에 있어서,
    상기 처음 보는 단어의 특징 벡터를 미리 계산하는 단계는
    상기 입력 문장에 포함된 레이블된 단어들을 포함하는 유사 문장들을 검색하는 단계; 및
    상기 유사 문장들 중 최대 유사도를 가지는 최유사 문장을 이용하여 상기 처음 보는 단어를 임베딩하는 단계
    를 포함하는, 단어 임베딩 방법.
  9. 제8항에 있어서,
    상기 처음 보는 단어를 임베딩하는 단계는
    상기 입력 문장에 포함된 레이블된 단어들을 포함하는 유사 문장들을 검색하는 단계;
    상기 유사 문장들 중 설정된 임계치보다 큰 유사도를 가지는 적어도 하나의 유사 문장을 추출하는 단계; 및
    상기 적어도 하나의 유사 문장을 제1 모델과 구별되는 제2 모델에 인가함으로써 상기 처음 보는 단어를 임베딩하는 단계
    를 포함하고,
    상기 제2 모델은
    상기 입력 문장의 문맥 또는 상기 입력 문장에 포함된 단어들 간의 관계 중 적어도 하나에 기초하여 상기 처음 보는 단어의 의미를 추정하는 뉴럴 네트워크를 포함하는, 단어 임베딩 방법.
  10. 제9항에 있어서,
    상기 적어도 하나의 유사 문장을 추출하는 단계는
    상기 임계치보다 큰 유사도를 가지는 적어도 하나의 유사 문장을 유사도 순으로 추출하는 단계
    를 포함하는, 단어 임베딩 방법.
  11. ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 언레이블된 단어를 임베딩하는 단계는
    상기 입력 문장의 문맥에 기초하여 상기 언레이블된 단어를 임베딩하는 단계
    를 포함하는, 단어 임베딩 방법.
  12. ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    사용자의 음성을 인식하여 상기 입력 문장을 생성하는 단계;
    상기 특징 벡터에 기초하여, 상기 입력 문장에 대응하는 해석 정보(interpretation information)를 생성하는 단계
    를 더 포함하는, 단어 임베딩 방법.
  13. 입력 문장을 수신하는 단계;
    상기 입력 문장에 포함된 처음 보는 단어(unseen word)에 해당하는 언레이블된 단어(unlabeled word)를 검출하는 단계;
    웹 서치(web search)를 기반으로 상기 입력 문장과 유사한 문장들을 검색하는 단계;
    상기 처음 보는 단어의 레이블링을 위한 뉴럴 네트워크 모델에 상기 입력 문장과 상기 유사한 문장들을 함께 인가하여 상기 처음 보는 단어와 문맥 상 유사한 의미를 갖는 벡터 표현을 검출함으로써 상기 언레이블된 단어를 임베딩(embedding)하는 단계; 및
    상기 임베딩 결과에 따른 특징 벡터를 출력하는 단계
    를 포함하고,
    학습에 사용될 상기 처음 보는 단어가 포함된 문장이 선택되면, 상기 선택된 문장의 적어도 일부를 기반으로 상기 웹 서치를 수행하여 상기 선택된 문장에 유사한 문장들을 포함하는 문장 목록을 생성하는 단계;
    미리 설정된 임계치를 이용하여 상기 문장 목록 중 상기 선택된 문장에 가장 유사한 문장을 선택 및 추출하는 단계; 및
    상기 가장 유사한 문장을 뉴럴 네트워크 모델에 인가함으로써 상기 처음보는 단어를 벡터 표현으로 변환하는 단계
    를 더 포함하는, 단어 임베딩 방법.
  14. ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈
    하드웨어와 결합되어 제1항 내지 제13항 중에서 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터로 판독 가능한 저장 매체에 저장된 컴퓨터 프로그램.
  15. 입력 문장을 수신하는 송수신 인터페이스; 및
    상기 입력 문장에 포함된 언레이블된 단어를 검출(detect)하고, 상기 입력 문장에 포함된 레이블된 단어들에 기초하여, 복수의 언레이블된 단어들에 대응하여 기 생성된 특징 벡터들을 저장하는 룩업 테이블(lookup table)로부터 상기 언레이블된 단어에 대응하는 특징 벡터를 검출함으로써 상기 언레이블된 단어를 임베딩(embedding)하는 프로세서
    를 포함하고,
    상기 송수신 인터페이스는
    상기 임베딩 결과에 따른 특징 벡터를 출력하고,
    상기 프로세서는
    상기 입력 문장의 적어도 일부를 기반으로 인터넷에서 웹 서치를 수행하여 상기 입력 문장에서 언레이블된 단어와 구별되는 처음 보는 단어를 검색하고, 상기 처음 보는 단어를 임베딩하기 위한 특징 벡터를 미리 계산하며, 상기 미리 계산한 특징 벡터를 상기 룩업 테이블에 저장하며,
    학습에 사용될 상기 처음 보는 단어가 포함된 문장이 선택되면, 선택된 문장의 적어도 일부를 기반으로 상기 웹 서치를 수행하여 상기 선택된 문장에 유사한 문장들을 포함하는 문장 목록을 생성하고, 미리 설정된 임계치를 이용하여 상기 문장 목록 중 상기 선택된 문장에 가장 유사한 문장을 선택 및 추출하고, 상기 가장 유사한 문장을 뉴럴 네트워크 모델에 인가함으로써 상기 처음보는 단어를 벡터 표현으로 변환하는, 단어 임베딩 장치.
  16. ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈
    제15항에 있어서,
    상기 프로세서는
    상기 입력 문장에 포함된 복수의 단어들 각각에 대하여, 해당 단어에 대응하는 미리 정해진 유형의 특징 벡터를 획득하고, 상기 해당 단어에 대응하여 상기 미리 정해진 유형의 특징 벡터를 획득할 수 없는 경우, 상기 해당 단어를 상기 언레이블된 단어로 검출하는, 단어 임베딩 장치.
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    제15항에 있어서,
    상기 언레이블된 단어는
    상기 입력 문장의 레이블된 단어를 제외한 나머지 단어를 포함하는, 단어 임베딩 장치.
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    제15항에 있어서,
    상기 프로세서는
    상기 입력 문장에 포함된 복수의 단어들 각각에 대응하는 특징 벡터들을 획득하고, 해당 단어에 대응하여 특징 벡터를 획득할 수 없는 경우, 해당 단어를 상기 언레이블된 단어로 검출하는, 단어 임베딩 장치.
  19. ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈
    제15항에 있어서,
    상기 프로세서는
    상기 입력 문장에 포함된 레이블된 단어들을 포함하는 유사 문장들을 검색하고, 상기 유사 문장들 중 최대 유사도를 가지는 최유사 문장을 이용하여 상기 처음 보는 단어를 임베딩하는, 단어 임베딩 장치.
  20. ◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈
    제19항에 있어서,
    상기 프로세서는
    상기 입력 문장에 포함된 레이블된 단어들을 포함하는 유사 문장들을 검색하고, 상기 유사 문장들 중 설정된 임계치보다 큰 유사도를 가지는 적어도 하나의 유사 문장을 추출하며, 상기 적어도 하나의 유사 문장을 제1 모델과 구별되는 제2 모델에 인가함으로써상기 처음 보는 단어를 임베딩하며,
    상기 제2 모델은
    상기 입력 문장의 문맥 또는 상기 입력 문장에 포함된 단어들 간의 관계 중 적어도 하나에 기초하여 상기 처음 보는 단어의 의미를 추정하는 뉴럴 네트워크를 포함하는, 단어 임베딩 장치.
KR1020160090206A 2016-07-15 2016-07-15 단어 임베딩 방법, 단어 임베딩 장치, 음성 인식 방법 및 음성 인식 장치 KR102604552B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160090206A KR102604552B1 (ko) 2016-07-15 2016-07-15 단어 임베딩 방법, 단어 임베딩 장치, 음성 인식 방법 및 음성 인식 장치
US15/642,547 US20180018971A1 (en) 2016-07-15 2017-07-06 Word embedding method and apparatus, and voice recognizing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160090206A KR102604552B1 (ko) 2016-07-15 2016-07-15 단어 임베딩 방법, 단어 임베딩 장치, 음성 인식 방법 및 음성 인식 장치

Publications (2)

Publication Number Publication Date
KR20180008199A KR20180008199A (ko) 2018-01-24
KR102604552B1 true KR102604552B1 (ko) 2023-11-22

Family

ID=60940729

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160090206A KR102604552B1 (ko) 2016-07-15 2016-07-15 단어 임베딩 방법, 단어 임베딩 장치, 음성 인식 방법 및 음성 인식 장치

Country Status (2)

Country Link
US (1) US20180018971A1 (ko)
KR (1) KR102604552B1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10606955B2 (en) * 2018-03-15 2020-03-31 Servicenow, Inc. Incident matching with vector-based natural language processing
KR20190133492A (ko) 2018-05-23 2019-12-03 부산대학교 산학협력단 한국어 워드넷 기반 지식 주도 심층학습을 이용한 단어의 벡터 표현을 위한 장치 및 방법
KR102030551B1 (ko) * 2018-07-09 2019-10-10 주식회사 한글과컴퓨터 인스턴트 메신저 구동 장치 및 그 동작 방법
US10721190B2 (en) * 2018-07-31 2020-07-21 Microsoft Technology Licensing, Llc Sequence to sequence to classification model for generating recommended messages
US11386304B2 (en) 2018-08-20 2022-07-12 Samsung Electronics Co., Ltd. Electronic device and method of controlling the same
KR101935585B1 (ko) * 2018-10-02 2019-04-05 넷마블 주식회사 게임 커맨드 인식 방법 및 장치
KR102260646B1 (ko) * 2018-10-10 2021-06-07 고려대학교 산학협력단 자연어 처리 시스템 및 자연어 처리에서의 단어 표현 방법
KR102347505B1 (ko) 2018-11-29 2022-01-10 부산대학교 산학협력단 한국어 워드넷 기반 지식 주도 심층학습을 이용한 워드 임베딩 장치 및 방법
US10839792B2 (en) 2019-02-05 2020-11-17 International Business Machines Corporation Recognition of out-of-vocabulary in direct acoustics-to-word speech recognition using acoustic word embedding
US10956474B2 (en) 2019-03-14 2021-03-23 Microsoft Technology Licensing, Llc Determination of best set of suggested responses
US11520783B2 (en) * 2019-09-19 2022-12-06 International Business Machines Corporation Automated validity evaluation for dynamic amendment
US11567788B1 (en) 2019-10-18 2023-01-31 Meta Platforms, Inc. Generating proactive reminders for assistant systems
US11636438B1 (en) 2019-10-18 2023-04-25 Meta Platforms Technologies, Llc Generating smart reminders by assistant systems
KR102287167B1 (ko) * 2019-10-24 2021-08-06 주식회사 한글과컴퓨터 번역 엔진에 미포함된 신규 개체명에 대한 번역 기능을 제공하기 위한 번역 처리 장치 및 그 동작 방법
KR102261198B1 (ko) * 2019-11-26 2021-06-07 (주)엘컴텍 스마트 서비스 제공장치 및 그 방법
CN111144120A (zh) * 2019-12-27 2020-05-12 北京知道创宇信息技术股份有限公司 一种训练语句的获取方法、装置、存储介质及电子设备
US11886816B2 (en) * 2020-02-25 2024-01-30 Prosper Funding LLC Bot dialog manager
JP6936370B1 (ja) * 2020-09-02 2021-09-15 Scsk株式会社 情報処理システム、及び情報処理プログラム
CN112613295B (zh) * 2020-12-21 2023-12-22 竹间智能科技(上海)有限公司 语料识别方法及装置、电子设备、存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101252397B1 (ko) * 2011-06-02 2013-04-08 포항공과대학교 산학협력단 웹을 이용한 정보 검색 방법 및 이를 사용하는 음성 대화 방법
US9037464B1 (en) * 2013-01-15 2015-05-19 Google Inc. Computing numeric representations of words in a high-dimensional space
KR102380833B1 (ko) * 2014-12-02 2022-03-31 삼성전자주식회사 음성 인식 방법 및 음성 인식 장치

Also Published As

Publication number Publication date
US20180018971A1 (en) 2018-01-18
KR20180008199A (ko) 2018-01-24

Similar Documents

Publication Publication Date Title
KR102604552B1 (ko) 단어 임베딩 방법, 단어 임베딩 장치, 음성 인식 방법 및 음성 인식 장치
KR102565274B1 (ko) 자동 통역 방법 및 장치, 및 기계 번역 방법 및 장치
US11100921B2 (en) Pinyin-based method and apparatus for semantic recognition, and system for human-machine dialog
CN111563208B (zh) 一种意图识别的方法、装置及计算机可读存储介质
CN106571140B (zh) 一种基于语音语义的电器智能控制方法及系统
JP6727610B2 (ja) 文脈解析装置及びそのためのコンピュータプログラム
KR102363369B1 (ko) 문서들의 벡터 표현들 생성하기
JP6909832B2 (ja) オーディオにおける重要語句を認識するための方法、装置、機器及び媒体
WO2020108063A1 (zh) 特征词的确定方法、装置和服务器
CN105183720B (zh) 基于rnn模型的机器翻译方法和装置
AU2016277558A1 (en) Generating a semantic network based on semantic connections between subject-verb-object units
KR20190125863A (ko) 다중언어 번역 장치 및 다중언어 번역 방법
KR101719107B1 (ko) 번역을 위한 서버 및 번역 방법
WO2020244065A1 (zh) 基于人工智能的字向量定义方法、装置、设备及存储介质
KR102046486B1 (ko) 정보 입력 방법
US11328006B2 (en) Word semantic relation estimation device and word semantic relation estimation method
CN108959257A (zh) 一种自然语言解析方法、装置、服务器及存储介质
CN111161726B (zh) 一种智能语音交互方法、设备、介质及系统
US20210124976A1 (en) Apparatus and method for calculating similarity of images
CN111221961A (zh) 一种基于s-lstm模型与槽值门的说话人意图识别系统及方法
CN112668333A (zh) 命名实体的识别方法和设备、以及计算机可读存储介质
JP2022120024A (ja) オーディオ信号処理方法、モデルトレーニング方法、並びにそれらの装置、電子機器、記憶媒体及びコンピュータプログラム
CN108170661B (zh) 一种规则文本的管理方法及系统
CN114913590A (zh) 一种数据的情感识别方法、装置、设备及可读存储介质
KR102564692B1 (ko) 관계성 학습을 이용한 자연어 처리 시스템 및 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right