KR102589638B1 - 문장 생성 장치 및 방법 - Google Patents

문장 생성 장치 및 방법 Download PDF

Info

Publication number
KR102589638B1
KR102589638B1 KR1020160143432A KR20160143432A KR102589638B1 KR 102589638 B1 KR102589638 B1 KR 102589638B1 KR 1020160143432 A KR1020160143432 A KR 1020160143432A KR 20160143432 A KR20160143432 A KR 20160143432A KR 102589638 B1 KR102589638 B1 KR 102589638B1
Authority
KR
South Korea
Prior art keywords
sentence
modified
embedding vector
input
sentences
Prior art date
Application number
KR1020160143432A
Other languages
English (en)
Other versions
KR20180047409A (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 KR1020160143432A priority Critical patent/KR102589638B1/ko
Priority to US15/471,573 priority patent/US10713439B2/en
Publication of KR20180047409A publication Critical patent/KR20180047409A/ko
Application granted granted Critical
Publication of KR102589638B1 publication Critical patent/KR102589638B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/247Thesauruses; Synonyms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/55Rule-based translation
    • G06F40/56Natural language generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Audiology, Speech & Language Pathology (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)

Abstract

문장 생성 장치는 입력 문장에 관한 제1 변형 문장에 학습된 결과 데이터를 적용하여 제1 문장 임베딩 벡터(sentence embedding vector)를 생성하는 인코더, 상기 제1 문장 임베딩 벡터로부터 미리 지정된 범위 내에 존재하는 복수의 검증 문장을 추출하는 추출부 및 상기 복수의 검증 문장과 상기 입력 문장의 비교 결과에 따라, 상기 입력 문장에 대한 상기 제1 변형 문장의 유사성을 판단하는 판단부를 포함할 수 있다.

Description

문장 생성 장치 및 방법{APPARATUS AND METHOD FOR GENERATING A SENTENCE}
아래의 설명은 문장 생성 기술에 관한 것이다.
기계 학습(machine learning) 기반의 기계 번역(machine translation)이 널리 이용됨에 따라 지구촌 사람들은 다양한 언어로 제작된 컨텐츠를 제공받게 되었다. 구체적으로, 다양한 언어를 사용하는 사용자들 간의 의사 소통을 지원하고 컨텐츠를 번역하는 통역 및 번역 기술이 관련 기술로서 발전하고 있다.
사람에 의한 번역의 경우, 번역자에 따라 동일한 의미를 갖는 문장이라도 각각 다르게 표현될 수 있다. 기계 번역의 경우, 학습 데이터로서 제공되는 문장쌍(sentence pair)으로부터 유사한 의미를 갖는 단어, 문구 별로 다른 표현으로 대체하는 시도가 존재한다.
일실시예에 따른 문장 생성 장치는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서에 의해 적어도 일시적으로 구현될 수 있다. 상기 문장 생성 장치는 입력 문장에 관한 제1 변형 문장에 학습된 결과 데이터를 적용하여 제1 문장 임베딩 벡터(sentence embedding vector)를 생성하는 인코더, 상기 제1 문장 임베딩 벡터로부터 미리 지정된 범위 내에 존재하는 복수의 검증 문장을 추출하는 추출부 및 상기 복수의 검증 문장과 상기 입력 문장의 비교 결과에 따라, 상기 입력 문장에 대한 상기 제1 변형 문장의 유사성을 판단하는 판단부를 포함할 수 있다.
상기 입력 문장이 상기 복수의 검증 문장 내에 존재하는 것으로 판단된 경우에, 상기 판단부는 상기 제1 변형 문장을 상기 입력 문장의 유사 문장으로서 출력할 수 있다.
상기 제1 문장 임베딩 벡터로부터 제1 범위 내에 존재하는 복수의 검증 문장의 개수가 임계치 이하로 추출된 경우, 상기 추출부는 상기 제1 범위로부터 확장된 제2 범위 내에 존재하는 복수의 검증 문장을 추출할 수 있다.
상기 인코더는 상기 입력 문장에 학습된 결과 데이터를 적용하여 제2 문장 임베딩 벡터를 생성할 수 있다. 또한, 상기 입력 문장이 상기 복수의 검증 문장 내에 존재하지 않는 것으로 판단된 경우에, 상기 추출부는 상기 제2 문장 임베딩 벡터에 기초하여 제2 변형 문장을 추출할 수 있다. 보다 구체적으로, 상기 추출부는 상기 제2 변형 문장에 대응하는 복수의 검증 문장을 새롭게 추출하고, 상기 판단부는 상기 새롭게 추출된 복수의 검증 문장과 상기 입력 문장의 비교 결과에 따라, 상기 입력 문장에 대한 상기 제2 변형 문장의 유사성을 판단할 수 있다.
다른 일실시예에 따른 문장 생성 장치는 입력 문장에 학습된 결과 데이터를 적용하여 제1 문장 임베딩 벡터를 생성하는 인코더 및 상기 제1 문장 임베딩 벡터에 따라 결정된 차원(dimension)의 제1 노이즈 벡터를 이용하여 변형된 제1 문장 임베딩 벡터를 계산하는 계산부를 포함할 수 있다.
상기 계산부는 미리 지정된 범위 내의 벡터 공간에서 상기 제1 노이즈 벡터를 임의적으로 추출할 수 있다.
상기 문장 생성 장치는 상기 변형된 제1 문장 임베딩 벡터에 학습된 결과 데이터를 적용하여 입력 문장에 관한 변형 문장을 추출하는 추출부를 더 포함할 수 있다. 이 경우에, 상기 인코더는 상기 변형 문장에 관한 제2 문장 임베딩 벡터를 생성할 수 있다. 또한, 상기 추출부는 상기 입력 문장과 상기 변형 문장의 유사성을 판단하기 위한 복수의 검증 문장을 상기 제2 문장 임베딩 벡터로부터 추출할 수 있다.
상기 계산부는 상기 제1 문장 임베딩 벡터와 상기 제1 노이즈 벡터를 결합하여 상기 변형된 제1 문장 임베딩 벡터를 계산할 수 있다.
일실시예에 따른 문장 생성 방법은 입력 문장에 관한 제1 변형 문장에 학습된 결과 데이터를 적용하여 제1 문장 임베딩 벡터를 생성하는 단계, 상기 제1 문장 임베딩 벡터로부터 미리 지정된 범위 내에 존재하는 복수의 검증 문장을 추출하는 단계 및 상기 복수의 검증 문장과 상기 입력 문장의 비교 결과에 따라, 상기 입력 문장에 대한 상기 제1 변형 문장의 유사성을 판단하는 단계를 포함할 수 있다.
상기 제1 변형 문장의 유사성을 판단하는 단계는, 상기 입력 문장이 상기 복수의 검증 문장 내에 존재하는 것으로 판단된 경우에, 상기 제1 변형 문장을 상기 입력 문장의 유사 문장으로서 출력하는 단계를 포함할 수 있다.
상기 복수의 검증 문장을 추출하는 단계는, 상기 제1 문장 임베딩 벡터로부터 제1 범위 내에 존재하는 복수의 검증 문장의 개수가 임계치 이하로 추출된 경우, 상기 제1 범위로부터 확장된 제2 범위 내에 존재하는 복수의 검증 문장을 추출하는 단계를 포함할 수 있다.
상기 문장 생성 방법은 상기 입력 문장에 학습된 결과 데이터를 적용하여 제2 문장 임베딩 벡터를 생성하는 단계를 더 포함할 수 있다. 이 경우에, 상기 제1 변형 문장의 유사성을 판단하는 단계는, 상기 입력 문장이 상기 복수의 검증 문장 내에 존재하지 않는 것으로 판단된 경우에, 상기 제2 문장 임베딩 벡터에 기초하여 제2 변형 문장을 추출하는 단계를 포함할 수 있다.
상기 제1 변형 문장의 유사성을 판단하는 단계는, 상기 제2 변형 문장에 대응하는 복수의 검증 문장을 새롭게 추출하는 단계 및 상기 새롭게 추출된 복수의 검증 문장과 상기 입력 문장의 비교 결과에 따라, 상기 입력 문장에 대한 상기 제2 변형 문장의 유사성을 판단하는 단계를 포함할 수 있다.
도 1은 일실시예에 따른 문장 생성 장치의 동작을 설명하기 위한 흐름도이다.
도 2는 일실시예에 따른 문장 생성 장치가 문장 임베딩 벡터를 생성하는 과정을 설명하기 위한 예시도이다.
도 3은 일실시예에 따른 문장 생성 장치가 변형된 문장 임베딩 벡터를 생성하는 과정을 설명하기 위한 예시도이다.
도 4는 일실시예에 따른 문장 생성 장치의 구성을 설명하기 위한 블록도이다.
도 5는 다른 일실시예에 따른 문장 생성 장치의 동작을 설명하기 위한 흐름도이다.
도 6은 일실시예에 따른 문장 생성 장치가 변형 문장을 생성하는 과정을 설명하기 위한 예시도이다.
도 7a는 다른 일실시예에 따른 문장 생성 장치의 구성을 설명하기 위한 블록도이다.
도 7b는 문장 생성 장치가 생성된 변형 문장과 원문장의 유사성을 판단하는 과정을 설명하기 위한 예시도이다.
도 8은 문장 생성 장치가 새로운 문장 임베딩 벡터를 생성하는 과정을 설명하기 위한 예시도이다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
아래에서 설명될 실시예들은 입력 문장에 기초하여 패러프레이징(paraphrasing)된 유사 문장을 생성하는 문장 생성 장치 및 방법으로서 사용될 수 있다. 실시예들은 퍼스널 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트 폰, 웨어러블 장치, 스마트 가전 기기, 지능형 자동차 등 다양한 형태의 제품으로 구현될 수 있다. 또한, 실시예들은 클라우드 네트워크(cloud network)기반의 서버에서 클라이언트 컴퓨터로 기계 번역을 제공하는데 적용될 수 있다.
이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 일실시예에 따른 문장 생성 장치의 동작을 설명하기 위한 흐름도이다. 도 1을 참조하면, 단계(110)에서 문장 생성 장치는 입력 문장에 학습된 결과 데이터를 적용하여 제1 문장 임베딩 벡터(sentence embedding vector)를 생성할 수 있다. 아래의 설명에서 문장 임베딩 벡터는 입력 문장의 의미 정보를 나타내는 압축된 정보일 수 있다. 문장 생성 장치는 사전에 입력되거나 또는 미리 저장된 학습 데이터에 기초하여 기계 학습(machine learning)을 수행하고, 상기 결과 데이터를 생성할 수 있다. 예시적으로, 상기 학습 데이터는 원문장과 번역 문장을 포함하는 문장 쌍을 나타낼 수 있다. 다만, 상기 학습 데이터에 관한 설명은 이해를 돕기 위한 예시적 기재일 뿐, 다른 실시예들의 범위를 제한하거나 한정하는 것으로 해석되어서는 안될 것이다. 일실시예로서, 상기 학습된 결과 데이터는 입력 문장과 상기 입력 문장이 갖는 의미 정보(semantic information)를 매칭하는 벡터 공간을 나타낼 수 있다. 벡터 공간은 입력 문장에 포함되는 어느 하나의 단어(word)와 의미 정보를 매칭하는 적어도 하나의 파라미터 또는 가중치(weight)로서 정의되는 공간을 나타낼 수 있다. 다른 일실시예로서, 상기 학습된 결과 데이터는, 뉴럴 네트워크 내에서 입력 문장이 입력되는 노드와 문장 임베딩 벡터를 출력하는 노드 사이의 은닉 노드의 개수 및 각각의 노드를 연결하는 가중치 값을 나타낼 수 있다. 본 실시예에서 제1 문장 임베딩 벡터는 상기 입력 문장이 갖는 의미 정보를 정의하는 벡터 공간 상의 하나의 위치에 대응될 수 있다. 문장 생성 장치에 의해 이용되는 결과 데이터를 생성하는 과정에 관한 설명은 아래에서 추가될 도면과 함께 설명될 것이다.
단계(120)에서 문장 생성 장치는 단계(110)를 통해 생성된 제1 문장 임베딩 벡터에 따라 결정된 차원(dimension)의 제1 노이즈 벡터(noise vector)를 생성할 수 있다. 예시적으로, 제1 노이즈 벡터는 상기 제1 문장 임베딩 벡터와 동일한 차원을 갖는 벡터를 나타낼 수 있다. 또한, 문장 생성 장치는 상기 제1 문장 임베딩 벡터와 상기 제1 노이즈 벡터를 이용하여 변형된 제1 문장 임베딩 벡터를 계산할 수 있다.
단계(130)에서 문장 생성 장치는 상기 변형된 제1 문장 임베딩 벡터에 상기 학습된 결과 데이터를 적용하여 입력 문장에 관한 변형 문장을 추출할 수 있다. 문장 생성 장치는 변형된 제1 문장 임베딩 벡터에 대응하는 변형 문장을 복원할 수 있다. 보다 구체적으로, 문장 생성 장치는 상기 제1 문장 임베딩 벡터를 생성하는 과정에 이용된 결과 데이터를 변형된 상기 제1 문장 임베딩 벡터에 적용하여 변형 문장을 디코딩(decoding)할 수 있다.
문장 생성 장치가 입력 문장을 전달 받아 상기 입력 문장에 관한 의미 정보를 나타내는 벡터 공간으로 인코딩(encoding)하여 문장 임베딩 벡터를 생성하는 과정에 대한 보다 자세한 설명은 아래에 추가되는 도면과 함께 기재된다.
도 2는 일실시예에 따른 문장 생성 장치가 문장 임베딩 벡터를 생성하는 과정을 설명하기 위한 예시도이다. 도 2를 참조하면, 문장 생성 장치를 통해 구현되는 입력 노드 계층(input node layer)(210)과 은닉 노드 계층(hidden node layer)(220)의 연결 관계가 도시된다. 일실시예로서, 문장 생성 장치는 뉴럴 네트워크(neural network)를 이용한 기계 학습으로부터 입력 노드 계층(210) 및 은닉 노드 계층(220)을 생성할 수 있다. 본 실시예에서 도시된 입력 노드 계층(210)과 은닉 노드 계층(220)의 연결 관계와 가중치는 이해를 돕기 위한 예시적 기재일 뿐, 다른 실시예의 범위를 제한하거나 한정하는 것으로 해석되어서는 안될 것이다.
또한, 문장 생성 장치는 입력 노드들과 은닉 노드들의 매핑에 기초하여 입력 정보의 임베딩 벡터를 생성하는 인코더(encoder) 및 은닉 노드들과 출력 노드들의 매핑에 기초하여 상기 생성된 임베딩 벡터로부터 출력 정보를 복원해내는 디코더(decoder)를 포함하는 오토인코더(auto-encoder)를 이용하여 상기 기계 학습을 수행할 수 있다.
일실시예로서, 문장 생성 장치는 상기 입력 정보로서 제1 문장을 입력하고, 상기 출력 정보로서 상기 제1 문장 자체와 상기 제1 문장의 이전 문장 및 다음 문장을 출력하는 방식에 기초하여 상기 기계 학습을 수행할 수 있다. 본 실시예에 따른 문장 생성 장치는 상기 제1 문장을 입력하고, 상기 출력 정보로서 제1 문장의 이전 문장 및 다음 문장을 출력하도록 하는 skip thought 방식과 함께 상기 제1 문장 자체를 출력하는 오토인코더 방식을 결합하여 상기 기계 학습을 수행할 수 있다. 다른 일실시예로서, 문장 생성 장치는 상기 입력 정보로서 제1 문장을 입력하고, 상기 출력 정보로서 제1 문장 자체와 상기 제1 문장에 대응하는 번역 문장을 출력하는 멀티 태스크 훈련(multi-task training)에 기초하여 상기 기계 학습을 수행할 수 있다.
입력 문장에 포함되는 각각의 샘플링 데이터 X1, X2, … , Xn가 입력 노드 계층(210)으로 입력될 수 있다. 일실시예로서, 상기 각각의 샘플링 데이터는 입력 문장에 포함되는 하나의 단어(wording)를 나타낼 수 있다. 다른 일실시예로서, 상기 각각의 샘플링 데이터는 입력 문장에 포함되는 띄어쓰기로 구문되는 어구를 나타낼 수 있다.
문장 생성 장치로부터 구현된 제1 입력 노드 I1는 제1 샘플링 데이터 X1를 제1 은닉 노드 H1로 전달할 수 있다. 상기 제1 은닉 노드 H1는 제1 샘플링 데이터 X1로부터 계산된 제1 가중치 W1를 제2 은닉 노드 H2로 전달할 수 있다. 상기 제2 은닉 노드 H2는 제2 입력 노드 I2로 입력된 제2 샘플링 데이터 X2와 제1 샘플링 데이터 X1에 연관되는 제1 가중치 W1를 이용하여 제2 가중치 W2를 계산하고, 상기 제3 은닉 노드 H3로 전달할 수 있다. 위와 같은 방식으로, 입력 문장에 대응하는 복수의 샘플링 데이터에 관한 가중치들이 계산될 수 있다. 문장의 종료(EOS: End Of Statement)를 나타내는 제n 샘플링 데이터 Xn가 입력되는 경우에, 제n 은닉 노드 Hn은 이전 샘플링 데이터들의 정보를 포함하는 제n-1 가중치 Wn -1과 제n 샘플링 데이터 Xn를 이용하여 입력 문장 전체에 대한 의미 정보를 나타내는 문장 임베딩 벡터 V1를 생성할 수 있다. 생성된 문장 임베딩 벡터 V1은 문장 생성 장치를 통해 입력 문장과 유사한 의미를 갖는 변형 문장(paraphrasing sentence)를 생성하는 과정에 이용될 수 있다.
도 3은 일실시예에 따른 문장 생성 장치가 변형된 문장 임베딩 벡터를 생성하는 과정을 설명하기 위한 예시도이다. 도 3을 참조하면, 문장 임베딩 벡터에 대응하는 3차원 벡터 공간이 도시된다. 예시적으로, 3차원 벡터 공간에는 어의적(semantic)으로 동일한 의미를 나타내는 문장 임베딩 벡터들을 포함하는 세 개의 공간(310, 320, 330)이 존재할 수 있다. 일실시예로서, 제1 공간(310)은 "나는 회사에 가고 있습니다."라는 의미에 대응되는 문장 임베딩 벡터들을 포함할 수 있다. 또한, 제2 공간(320)은 "나는 학교에 가고 있습니다."라는 의미에 대응되는 문장 임베딩 벡터들을 포함할 수 있다. 같은 원리로서, 제3 공간(330)은 "사과를 먹고 싶습니다"라는 의미에 대응되는 문장 임베딩 벡터들을 포함할 수 있다. 본 실시예에서 3차원 벡터 공간은 입력 문장의 의미 정보를 나타내는 3 개의 파라미터로서 정의되는 공간을 나타낼 수 있다. 본 실시예에서는 설명의 편의를 돕기 위해 3 개의 파라미터로 정의되는 3차원 공간이 도시되지만, 이는 다른 실시예의 범위를 제한하거나 한정하는 것으로 해석되어서는 안될 것이다. 이를테면, 0 이상의 정수로 정의되는 n차원의 벡터 공간에 대응하는 문장 임베딩 벡터가 문장 생성 장치에 의해 생성될 수 있다.
문장 생성 장치는 입력 문장에 학습된 결과 데이터를 적용하여 제1 문장 임베딩 벡터 V1을 생성할 수 있다. 앞서 기재한 설명과 같이, 상기 결과 데이터는 오토인코더 구조에 따라 미리 저장된 학습 데이터를 이용한 기계 학습의 결과로서 입력 문장과 의미 정보들을 연결하는 입력 노드, 은닉 노드, 각각의 노드들의 연결 관계와 그에 상응하는 가중치를 포함할 수 있다.
또한, 문장 생성 장치는 제1 문장 임베딩 벡터 V1를 중심으로 미리 지정된 범위(340) 내에 존재하는 제1 노이즈 벡터 N1을 추출할 수 있다. 일실시예로서, 미리 지정된 범위(340)는 제1 문장 임베딩 벡터 V1를 중심으로 기설정된 크기 ε 이내에 존재하는 3차원 구 형태로서 정의될 수 있다. 문장 생성 장치는 추출된 제1 노이즈 벡터 N1와 제1 문장 임베딩 벡터 V1를 이용하여 변형된 제1 문장 임베딩 벡터 V1 '를 계산할 수 있다.
본 실시예에 따를 때, 변형된 제1 문장 임베딩 벡터 V1 '는 제1 문장 임베딩 벡터 V1에 대응하는 입력 문장과는 다른 문장을 나타내면서, 어의적으로는 동일한 의미 정보를 갖는 변형 문장에 대응되는 임베딩 벡터를 나타낼 수 있다. 그에 따라, 문장 생성 장치는 기계 번역에 이용될 수 있는 다양한 유사 문장을 번역 장치에 제공할 수 있다. 본 실시예에 경우, 제1 문장 임베딩 벡터 V1에 대응하는 입력 문장이 "나는 회사에 가고 있습니다."인 경우를 가정하면, 변형된 제1 문장 임베딩 벡터 V1 '는 "나는 지금 출근 하고 있어요."라는 동일한 의미를 갖는 변형 문장을 나타낼 수 있다. 변형된 문장 임베딩 벡터로부터 변형 문장을 복원하고, 그 변형 문장의 입력 문장과의 유사성을 판단하는 과정에 관한 추가적인 설명은 이하에서 추가될 도면에서 함께 설명될 것이다.
도 4는 일실시예에 따른 문장 생성 장치의 구성을 설명하기 위한 블록도이다. 문장 생성 장치(400)는 입력 문장에 관한 의미 정보를 나타내는 문장 임베딩 벡터를 생성하고, 상기 문장 임베딩 벡터를 임의로 변경하여 생성된 변형된 문장 임베딩 벡터를 통해 상기 입력 문장이 패러프레이징된 유사 문장을 출력한다.
도 4를 참조하면, 문장 생성 장치(400)는 인코더(410), 계산부(420) 및 추출부(430)를 포함할 수 있다. 문장 생성 장치(400)는 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서에 의해 적어도 일시적으로 구현될 수 있다.
인코더(410)는 입력 문장에 학습된 결과 데이터를 적용하여 제1 문장 임베딩 벡터를 생성할 수 있다. 일실시예로서, 인코더(410)는 뉴럴 네트워크 기반의 오토인코더 내에 포함되는 인코더 형태로서 구현될 수 있다. 인코더(410)는 입력 계층 노드 및 은닉 계층 노드를 상기 학습된 결과 데이터로서 이용하여 상기 제1 문장 임베딩 벡터를 생성할 수 있다. 상기 오토인코더 구조는 시퀀스 투 시퀀스(sequence to sequence) 형태의 오토인코더를 포함할 수 있다. 보다 구체적으로, 시퀀스 투 시퀀스 형태의 오토인코더는 상기 오토인코더 내의 인코더로 제1 시퀀스가 입력되는 경우에 상기 오토인코더 내의 디코더로부터 제2 시퀀스가 출력되는 형태의 인코더를 나타낼 수 있다.
보다 구체적으로, 인코더(410)는 상기 입력 문장에 포함되는 복수의 샘플링 데이터 각각을 상기 입력 계층 노드의 입력 노드에 입력할 수 있다. 인코더(410)는 미리 학습된 상기 입력 계층 노드와 상기 은닉 계층 노드의 연결 관계와 가중치에 기초하여 상기 입력 문장에 대응하는 제1 문장 임베딩 벡터를 생성할 수 있다.
계산부(420)는 인코더(410)에 의해 생성된 제1 문장 임베딩 벡터에 대응하는 제1 노이즈 벡터를 추출할 수 있다. 일실시예로서, 제1 노이즈 벡터는 상기 제1 문장 임베딩 벡터에 따라 결정된 차원의 벡터일 수 있다. 또한, 계산부(420)는 미리 지정된 범위 내의 벡터 공간에서 제1 노이즈 벡터를 임의적으로 추출할 수 있다. 상기 제1 노이즈 벡터를 추출하기 위한 벡터 공간의 미리 지정된 범위는 후술되는 복수의 검증 문장이 추출되는 범위와 연관(correlated)되는 계수로서 정의될 수 있다.
또한, 계산부(420)는 입력 문장에 대응하는 제1 문장 임베딩 벡터와 제1 노이즈 벡터를 이용하여 변형된 제1 문장 임베딩 벡터를 생성할 수 있다. 보다 구체적으로, 계산부(420)는 상기 제1 문장 임베딩 벡터와 상기 제1 노이즈 벡터를 결합하여 상기 변형된 제1 문장 임베딩 벡터를 계산할 수 있다.
추출부(430)는 계산부(420)에 의해 변형된 제1 문장 임베딩 벡터에 학습된 결과 데이터를 적용하여 입력 문장에 관한 변형 문장을 추출할 수 있다. 예시적으로, 추출부(430)는 뉴럴 네트워크 기반의 오토 인코더 내에 포함되는 디코더 형태로서 구현될 수 있다. 추출부(430)는 은닉 노드 계층 및 출력 노드 계층 사이의 가중치와 연결 관계를 상기 미리 저장된 학습 데이터로서 이용하여 변형된 제1 문장 임베딩 벡터로부터 변형 문장을 디코딩할 수 있다. 이 경우에, 인코더(410)는 추출부(430)에 의해 새롭게 생성된 변형 문장을 입력 노드에 입력하고, 상기 변형 문장에 관한 제2 문장 임베딩 벡터를 생성할 수 있다. 추출부(430)는 상기 제2 문장 임베딩 벡터로부터 복수의 검증 문장을 추출하고, 생성된 변형 문장이 입력 문장과 어의적으로 동일한 문장인지 여부가 판단되도록 할 수 있다. 생성된 변형 문장이 입력 문장의 의미와 유사한지 여부를 판단하는 과정에 관한 자세한 설명은 아래에서 추가될 도면과 함께 설명될 것이다.
도 5는 다른 일실시예에 따른 문장 생성 장치의 동작을 설명하기 위한 흐름도이다. 도 5를 참조하면, 단계(510)에서 문장 생성 장치는 입력 문장에 관한 제1 변형 문장에 미리 저장된 학습 데이터를 적용하여 제1 문장 임베딩 벡터를 생성할 수 있다. 단계(510)에서 문장 생성 장치의 동작에 대해서는 도 4와 함께 설명된 인코더(410)에 관한 설명이 그대로 적용될 수 있기 때문에 중복되는 설명은 생략하기로 한다.
단계(520)에서 문장 생성 장치는 상기 제1 문장 임베딩 벡터로부터 미리 지정된 범위 내에 존재하는 복수의 검증 문장을 추출할 수 있다. 일실시예로서, 문장 생성 장치는 뉴럴 네트워크 기반의 오토인코더에 포함되는 디코더를 이용하여 상기 복수의 검증 문장을 추출할 수 있다. 예시적으로, 문장 생성 장치는 상기 제1 문장 임베딩 벡터를 중심으로 가까운 거리에 존재하는 문장을 n 개 출력하는 방식으로 상기 복수의 검증 문장을 추출할 수 있다. 문장 생성 장치는 문장 생성 방법에 관한 N-best 알고리즘을 적용하여 상기 복수의 검증 문장을 추출할 수 있다.
단계(530)에서 문장 생성 장치는 추출된 복수의 검증 문장과 상기 입력 문장을 비교할 수 있다. 또한, 문장 생성 장치는 상기 복수의 검증 문장과 상기 입력 문장의 비교 결과에 따라, 상기 제1 변형 문장의 유사성을 판단할 수 있다. 상기 복수의 검증 문장은 상기 제1 변형 문장에 대응하는 제1 문장 임베딩 벡터로부터 복원된 문장을 나타낼 수 있다. 보다 구체적으로, 문장 생성 장치는 상기 입력 문장이 상기 복수의 검증 문장 내에 존재하는 경우에, 상기 제1 변형 문장을 상기 입력 문장의 유사 문장으로서 판단하고 출력할 수 있다.
본 실시예에 따른 문장 생성 장치는 변형 문장의 유사 범위에 대응하는 복수의 검증 문장 내에 입력 문장이 존재하는 경우에, 상기 변형 문장을 상기 입력 문장의 유사 문장으로서 출력할 수 있어 패러프레이징된 문장이 상기 입력 문장과 어의적으로 유사한 범위 내에 있도록 하는 신뢰도를 높일 수 있다.
도 6은 일실시예에 따른 문장 생성 장치가 변형 문장을 생성하는 과정을 설명하기 위한 예시도이다. 도 6을 참조하면, 문장 생성 장치를 통해 구현되는 출력 노드 계층(output node layer)(610)와 은닉 노드 계층(hidden node layer)(620)의 연결 관계가 도시된다. 도 2에서 설명된 인코더의 구성과 마찬가지로 문장 생성 장치는 뉴럴 네트워크를 이용하여 기계 학습으로부터 출력 노드 계층(610)과 은닉 노드 계층(620)을 생성할 수 있다.
문장 생성 장치는 은닉 노드들과 출력 노드들의 매핑에 기초하여 전달된 문장 임베딩 벡터로부터 변형 문장을 상기 출력 정보로서 복원해내는 추출부를 포함할 수 있다. 보다 구체적으로, 상기 추출부는 시퀀스 투 시퀀스 형태의 오토인코더의 포함되는 디코더로서 구현될 수 있다. 문장 생성 장치는 뉴럴 네트워크에 기반한 기계 학습에 따라 상기 디코더를 생성할 수 있다. 구체적인 학습 데이터에 관한 설명은 도 2와 함께 기재된 실시예가 그대로 적용될 수 있어 중복되는 설명은 생략하기로 한다.
문장 생성 장치의 오토인코더 내의 인코더에 포함되는 제n 은닉 노드 Hn는 상기 추출부에 포함되는 제1 은닉 노드 H1 '로 변형된 제1 문장 임베딩 벡터 V1 '을 전달할 수 있다. 상기 변형된 제1 문장 임베딩 벡터를 전달 받은 제1 은닉 노드 H1 '는 미리 저장된 학습 데이터에 기초하여 제1 출력 노드 O1에 상응하는 제1 샘플링 데이터 Y1을 출력할 수 있다. 상기 제1 출력 노드 O1는 자신의 출력 데이터인 제1 샘플링 데이터 Y1를 제2 은닉 노드 H2 '로 전달할 수 있다. 상기 제2 은닉 노드 H2 '는 제1 은닉 노드 H1 '로부터 전달받은 제1 가중치 W1과 상기 제1 출력 노드 O1로부터 전달 받은 제1 샘플링 데이터 Y1를 이용하여 제2 샘플링 데이터 Y2를 출력할 수 있다. 마찬가지로, 제n 출력 노드 On이 출력하는 제n 샘플링 데이터 Yn이 출력 되는 경우, 문장 생성 장치는 입력 문장의 전체 시퀀스에 대응하는 변형 문장의 전체 시퀀스 Y1 + Y2 + Y3 + … + Yn를 획득할 수 있다.
본 실시예에 따른 문장 생성 장치는 저장되거나 또는 입력된 학습 데이터로부터 기계 학습된 결과 데이터에 기초하여 생성된 오토인코더 내의 인코더 및 디코더를 이용하여 변형된 문장 임베딩 벡터로부터 입력 문장과 어의적으로 유사한 문장으로서 이용 가능한 변형 문장을 생성하는 것이 가능할 것이다.
도 7a는 다른 일실시예에 따른 문장 생성 장치의 구성을 설명하기 위한 블록도이다. 본 실시예에 따른 문장 생성 장치(700)는 변형 문장에 대응하는 문장 임베딩 벡터를 생성하고, 상기 생성된 문장 임베딩 벡터로부터 상기 변형 문장이 입력 문장과 어의적으로 유사한지 여부를 판단하기 위한 복수의 검증 문장을 추출할 수 있다. 문장 생성 장치(700)는 상기 복수의 검증 문장과 상기 입력 문장의 유사성 판단 결과에 기초하여, 상기 변형 문장을 상기 입력 문장의 유사 문장으로 출력하여 신뢰성 있는 패러프레이징 문장을 사용자에게 제공할 수 있다.
도 7a를 참조하면, 문장 생성 장치(700)는 인코더(710), 추출부(720) 및 판단부(730)를 포함할 수 있다. 문장 생성 장치(700)는 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서에 의해 적어도 일시적으로 구현될 수 있다.
인코더(710)는 입력 문장에 관한 제1 변형 문장에 학습된 결과 데이터를 적용하여 제1 문장 임베딩 벡터를 생성할 수 있다. 예시적으로, 인코더(710)는 뉴럴 네트워크에 기반하여 기계 학습된 오토인코더 내의 인코더로서 구현될 수 있다. 인코더(710)는 상기 제1 변형 문장의 각각의 샘플링 데이터를 입력 노드 계층에 입력하고, 은닉 노드 계층으로부터 출력되는 제1 문장 임베딩 벡터를 생성할 수 있다.
추출부(720)는 상기 제1 문장 임베딩 벡터로부터 미리 지정된 범위 내에 존재하는 복수의 검증 문장을 추출할 수 있다. 예시적으로, 추출부(720)는 뉴럴 네트워크에 기반하여 기계 학습된 오토인코더 내의 디코더로서 구현될 수 있다. 추출부(720)는 기계 학습에 따라 상기 제1 문장 임베딩 벡터로부터 미리 지정된 거리 내에 존재하는 복수의 검증 문장을 추출할 수 있다. 일실시예로서, 추출부(720)는 상기 제1 문장 임베딩 벡터로부터 가장 가까운 거리에 존재하는 제1 검증 문장에서부터 n 번째 가까운 거리에 존재하는 제n 검증 문장까지의 복수의 검증 문장을 추출할 수 있다. 또한, 추출부(720)는 N-best 알고리즘에 기초하여 상기 복수의 검증 문장을 추출할 수 있다. N-best 알고리즘에 관한 설명은 해당 분야에서 통상의 지식을 가진 자에게는 straight forward한 내용이므로 자세한 설명은 생략하기로 한다.
일실시예로서, 상기 제1 문장 임베딩 벡터로부터 제1 범위 내에 존재하는 복수의 검증 문장의 개수가 임계치 이하로 추출된 경우, 추출부(720)는 상기 제1 범위로부터 확장된 제2 범위 내에 존재하는 복수의 검증 문장을 추출할 수 있다. 예시적으로, 상기 제1 범위 및 상기 제2 범위는 문장 임베딩 벡터 내의 파라미터 각각에 대응하는 단어의 확률 범위를 나타내는 빔 너비(beam width)를 나타낼 수 있다.
판단부(730)는 추출부(720)에 의해 추출된 복수의 검증 문장과 상기 입력 문장의 비교 결과에 따라, 상기 입력 문장에 대한 상기 제1 변형 문장의 유사성을 판단할 수 있다. 판단부(730)가 복수의 검증 문장과 상기 입력 문장을 비교하는 과정에 대해서는 도 7b와 함께 설명될 수 있다.
도 7b는 문장 생성 장치가 생성된 변형 문장과 원문장의 유사성을 판단하는 과정을 설명하기 위한 예시도이다. 도 7b를 참조하면, 원문장(original sentence)(741)으로서 "나는 회사에 간다."라는 문장이 문장 생성 장치(700)에 입력된 실시예가 도시된다. 추출부(720)는 "나는 회사에 간다."라는 입력 문장의 문장 임베딩 벡터를 이용하여 "나는 출근 한다."라는 변형 문장을 생성할 수 있다. 또한, 추출부(720)는 "나는 출근 한다."라는 변형 문장의 문장 임베딩 벡터를 이용하여 복수의 검증 문장을 추출할 수 있다. 예시적으로, 복수의 검증 문장은 "나는 회사에 가고 있습니다."라는 제1 검증 문장(751), "나는 회사에 간다."라는 제2 검증 문장(752) 및 "지금 출근하고 있습니다."라는 제3 검증 문장(753)을 포함할 수 있다. 판단부(730)는 입력 문장으로서 입력된 원문장(741)과 복수의 검증 문장(751, 752, 753) 각각에 대해 동일성을 판단함으로써, 원문장(741)과 변형 문장의 유사성을 판단할 수 있다. 그에 따라, 문장 생성 장치(700)에 의해 원문장(741)과 제2 검증 문장(752)은 동일한 문장으로 판단될 것이고, 판단부(730)는 "나는 출근 한다."라는 변형 문장을 "나는 회사에 간다."라는 원문장(741)의 유사 문장으로서 출력할 수 있다.
앞서 도 7b와 함께 설명된 실시예와는 상이하게, 원문장(741)과 동일성이 인정되는 복수의 검증 문장이 존재하지 않는 경우를 가정하자. 이 경우에, 인코더(710)는 원문장(741)에 학습된 결과 데이터를 적용하여 제2 문장 임베딩 벡터를 생성할 수 있다. 문장 생성 장치(700)는 상기 제2 문장 임베딩 벡터에 임의적으로 추출된 노이즈 벡터를 새롭게 결합하여 변형된 상기 제2 문장 임베딩 벡터를 생성할 수 있다. 추출부(720)는 변형된 상기 제2 문장 임베딩 벡터에 기초하여 제2 변형 문장을 새롭게 추출할 수 있다. 새롭게 추출된 제2 변형 문장에 대해 원문장(741)과의 유사성이 판단되는 과정은 앞서 기재한 설명이 그대로 적용될 수 있기 때문에, 중복되는 설명은 생략하기로 한다.
도 8은 문장 생성 장치가 새로운 문장 임베딩 벡터를 생성하는 과정을 설명하기 위한 예시도이다. 도 8을 참조하면, 학습된 결과 데이터에 따라 문장과 의미 정보의 매칭을 나타내는 벡터 공간이 도시된다. 본 실시예에서는, 예시적으로 3 개의 파라미터로서 정의되는 3차원 벡터 공간이 도시되나, 이는 다른 실시예의 범위를 제한하거나 한정하는 것으로 해석되어서는 안될 것이다.
문장 생성 장치는 입력 문장에 대응하는 제1 문장 임베딩 벡터 V1을 중심으로 미리 지정된 범위(810)를 설정할 수 있다. 문장 생성 장치는 미리 지정된 범위(810) 내에서 임의적으로 노이즈 벡터를 추출할 수 있다.
앞서 기재한 도 7b의 실시예와는 상이하게 입력 문장과 복수의 검증 문장의 동일성이 인정되지 않아, 상기 입력 문장에 대한 제1 변형 문장의 유사성이 부정된 경우가 있을 수 있다. 이러한 경우에, 문장 생성 장치는 제1 변형 문장을 생성하는데 이용된 제1 노이즈 벡터 N1을 제외하고, 미리 지정된 범위(810) 내의 제2 노이즈 벡터 N2 또는 제3 노이즈 벡터 N3를 이용하여 새롭게 변형된 제1 문장 임베딩 벡터를 생성할 수 있다. 문장 생성 장치는 새롭게 변형된 제1 문장 임베딩 벡터에 기초하여 새로운 변형 문장을 다시 추출하는 것이 가능할 것이다. 본 실시예에서는 미리 지정된 범위(810)가 제1 문장 임베딩 벡터 V1을 중심으로 일정한 거리를 갖는 3차원 구 형태로 도시되지만, 이는 다른 실시예의 범위를 한정하거나 제한하는 것이 아니다. 이를테면, 제1 문장 임베딩 벡터 V1을 중심으로 정육면체 공간이나 직육면체 공간과 같은 다양한 형태의 공간 내에서 노이즈 벡터가 추출되는 실시예 또한 구현 가능할 것이다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.

Claims (16)

  1. 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서에 의해 구현되는:
    입력 문장에 관한 제1 변형 문장에 학습된 결과 데이터를 적용하여 제1 문장 임베딩 벡터(sentence embedding vector)를 생성하는 인코더;
    상기 제1 문장 임베딩 벡터로부터 미리 지정된 범위 내에 존재하는 복수의 검증 문장을 추출하는 추출부; 및
    상기 복수의 검증 문장과 상기 입력 문장의 비교 결과에 따라, 상기 입력 문장에 대한 상기 제1 변형 문장의 유사성을 판단하는 판단부
    를 포함하고,
    상기 입력 문장이 상기 복수의 검증 문장 내에 존재하는 것으로 판단된 경우에, 상기 판단부는 상기 제1 변형 문장을 상기 입력 문장의 유사 문장으로서 출력하는 문장 생성 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 제1 문장 임베딩 벡터로부터 제1 범위 내에 존재하는 복수의 검증 문장의 개수가 임계치 이하로 추출된 경우, 상기 추출부는 상기 제1 범위로부터 확장된 제2 범위 내에 존재하는 복수의 검증 문장을 추출하는 문장 생성 장치.
  4. 제1항에 있어서,
    상기 인코더는 상기 입력 문장에 학습된 결과 데이터를 적용하여 제2 문장 임베딩 벡터를 생성하는 문장 생성 장치.
  5. 제4항에 있어서,
    상기 입력 문장이 상기 복수의 검증 문장 내에 존재하지 않는 것으로 판단된 경우에, 상기 추출부는 상기 제2 문장 임베딩 벡터에 기초하여 제2 변형 문장을 추출하는 문장 생성 장치.
  6. 제5항에 있어서,
    상기 추출부는 상기 제2 변형 문장에 대응하는 복수의 검증 문장을 새롭게 추출하고, 상기 판단부는 상기 새롭게 추출된 복수의 검증 문장과 상기 입력 문장의 비교 결과에 따라, 상기 입력 문장에 대한 상기 제2 변형 문장의 유사성을 판단하는 문장 생성 장치.
  7. 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서에 의해 구현되는,
    입력 문장에 학습된 결과 데이터를 적용하여 제1 문장 임베딩 벡터(sentence embedding vector)를 생성하는 인코더; 및
    상기 제1 문장 임베딩 벡터를 중심으로 미리 지정된 범위 내의 벡터 공간에서 제1 노이즈 벡터를 추출하고, 상기 제1 문장 임베딩 벡터와 상기 제1 노이즈 벡터를 결합하여 상기 변형된 제1 문장 임베딩 벡터를 계산하는 계산부
    를 포함하는 문장 생성 장치.
  8. 삭제
  9. 제7항에 있어서,
    상기 변형된 제1 문장 임베딩 벡터에 학습된 결과 데이터를 적용하여 입력 문장에 관한 변형 문장을 추출하는 추출부
    를 더 포함하고,
    상기 인코더는 상기 변형 문장에 관한 제2 문장 임베딩 벡터를 생성하는 문장 생성 장치.
  10. 제9항에 있어서,
    상기 추출부는 상기 입력 문장과 상기 변형 문장의 유사성을 판단하기 위한 복수의 검증 문장을 상기 제2 문장 임베딩 벡터로부터 추출하는 문장 생성 장치.
  11. 삭제
  12. 입력 문장에 관한 제1 변형 문장에 학습된 결과 데이터를 적용하여 제1 문장 임베딩 벡터를 생성하는 단계;
    상기 제1 문장 임베딩 벡터로부터 미리 지정된 범위 내에 존재하는 복수의 검증 문장을 추출하는 단계; 및
    상기 복수의 검증 문장과 상기 입력 문장의 비교 결과에 따라, 상기 입력 문장에 대한 상기 제1 변형 문장의 유사성을 판단하는 단계
    를 포함하고,
    상기 제1 변형 문장의 유사성을 판단하는 단계는,
    상기 입력 문장이 상기 복수의 검증 문장 내에 존재하는 것으로 판단된 경우에, 상기 제1 변형 문장을 상기 입력 문장의 유사 문장으로서 출력하는 단계
    를 포함하는 문장 생성 방법.
  13. 삭제
  14. 제12항에 있어서,
    상기 복수의 검증 문장을 추출하는 단계는,
    상기 제1 문장 임베딩 벡터로부터 제1 범위 내에 존재하는 복수의 검증 문장의 개수가 임계치 이하로 추출된 경우, 상기 제1 범위로부터 확장된 제2 범위 내에 존재하는 복수의 검증 문장을 추출하는 단계
    를 포함하는 문장 생성 방법.
  15. 제12항에 있어서,
    상기 입력 문장에 학습된 결과 데이터를 적용하여 제2 문장 임베딩 벡터를 생성하는 단계
    를 더 포함하고,
    상기 제1 변형 문장의 유사성을 판단하는 단계는,
    상기 입력 문장이 상기 복수의 검증 문장 내에 존재하지 않는 것으로 판단된 경우에, 상기 제2 문장 임베딩 벡터에 기초하여 제2 변형 문장을 추출하는 단계
    를 포함하는 문장 생성 방법.
  16. 제15항에 있어서,
    상기 제1 변형 문장의 유사성을 판단하는 단계는,
    상기 제2 변형 문장에 대응하는 복수의 검증 문장을 새롭게 추출하는 단계; 및
    상기 새롭게 추출된 복수의 검증 문장과 상기 입력 문장의 비교 결과에 따라, 상기 입력 문장에 대한 상기 제2 변형 문장의 유사성을 판단하는 단계
    를 포함하는 문장 생성 방법.
KR1020160143432A 2016-10-31 2016-10-31 문장 생성 장치 및 방법 KR102589638B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160143432A KR102589638B1 (ko) 2016-10-31 2016-10-31 문장 생성 장치 및 방법
US15/471,573 US10713439B2 (en) 2016-10-31 2017-03-28 Apparatus and method for generating sentence

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160143432A KR102589638B1 (ko) 2016-10-31 2016-10-31 문장 생성 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180047409A KR20180047409A (ko) 2018-05-10
KR102589638B1 true KR102589638B1 (ko) 2023-10-16

Family

ID=62021532

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160143432A KR102589638B1 (ko) 2016-10-31 2016-10-31 문장 생성 장치 및 방법

Country Status (2)

Country Link
US (1) US10713439B2 (ko)
KR (1) KR102589638B1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10417341B2 (en) 2017-02-15 2019-09-17 Specifio, Inc. Systems and methods for using machine learning and rules-based algorithms to create a patent specification based on human-provided patent claims such that the patent specification is created without human intervention
US10747953B1 (en) 2017-07-05 2020-08-18 Specifio, Inc. Systems and methods for automatically creating a patent application based on a claim set such that the patent application follows a document plan inferred from an example document
US11593564B2 (en) 2017-02-15 2023-02-28 Specifio, Inc. Systems and methods for extracting patent document templates from a patent corpus
US10621371B1 (en) 2017-03-30 2020-04-14 Specifio, Inc. Systems and methods for facilitating editing of a confidential document by a non-privileged person by stripping away content and meaning from the document without human intervention such that only structural and/or grammatical information of the document are conveyed to the non-privileged person
US10713443B1 (en) * 2017-06-05 2020-07-14 Specifio, Inc. Machine learning model for computer-generated patent applications to provide support for individual claim features in a specification
US11023662B2 (en) 2017-02-15 2021-06-01 Specifio, Inc. Systems and methods for providing adaptive surface texture in auto-drafted patent documents
KR102342066B1 (ko) * 2017-06-21 2021-12-22 삼성전자주식회사 뉴럴 네트워크 모델을 이용한 기계 번역 방법, 장치 및 그 장치를 학습시키기 위한 방법
KR102483643B1 (ko) 2017-08-14 2023-01-02 삼성전자주식회사 모델을 학습하는 방법 및 장치 및 상기 뉴럴 네트워크를 이용한 인식 방법 및 장치
KR102186326B1 (ko) * 2017-09-28 2020-12-04 한국과학기술원 구조 정보 선행 학습을 통한 딥러닝 관계 추출 시스템 및 이를 이용한 딥러닝 관계 추출 성능 향상 방법
CN109710915B (zh) * 2017-10-26 2021-02-23 华为技术有限公司 复述语句生成方法及装置
KR102608469B1 (ko) * 2017-12-22 2023-12-01 삼성전자주식회사 자연어 생성 방법 및 장치
CN110472251B (zh) * 2018-05-10 2023-05-30 腾讯科技(深圳)有限公司 翻译模型训练的方法、语句翻译的方法、设备及存储介质
WO2019238623A1 (en) * 2018-06-11 2019-12-19 Koninklijke Philips N.V. Haptic input text generation
WO2020060718A1 (en) * 2018-08-22 2020-03-26 Three10 Solutions, Inc. Intelligent search platforms
KR102081512B1 (ko) * 2018-09-14 2020-02-25 울산대학교 산학협력단 비유법 문장 생성 장치 및 방법
KR102540774B1 (ko) * 2018-12-04 2023-06-08 한국전자통신연구원 서브워드 임베딩 및 스킵서트 기반 문장 임베딩 방법 및 장치
WO2020154538A1 (en) * 2019-01-23 2020-07-30 Google Llc Generating neural network outputs using insertion operations
CN112580369B (zh) * 2019-09-27 2023-02-03 华为技术有限公司 语句复述方法、训练语句复述模型的方法及其装置
KR20210037307A (ko) 2019-09-27 2021-04-06 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
CN112784003A (zh) * 2019-11-01 2021-05-11 华为技术有限公司 训练语句复述模型的方法、语句复述方法及其装置
KR102483927B1 (ko) * 2019-11-28 2023-01-04 한국과학기술원 계층적 단어 정보를 이용한 문장 인코딩 방법 및 장치
CN111723550A (zh) * 2020-06-17 2020-09-29 腾讯科技(深圳)有限公司 语句改写方法、装置、电子设备以及计算机存储介质
GB2596092A (en) * 2020-06-17 2021-12-22 Daimler Ag A method for generating at least one alternative utterance to an initial utterance, as well as a semantic analyzer module
CN112507081B (zh) * 2020-12-16 2023-05-23 平安科技(深圳)有限公司 相似句匹配方法、装置、计算机设备及存储介质
KR102462758B1 (ko) * 2020-12-16 2022-11-02 숭실대학교 산학협력단 노이즈 추가 기반 커버리지와 단어 연관을 이용한 문서 요약 방법, 이를 수행하기 위한 기록 매체 및 장치
US20220319497A1 (en) * 2021-04-02 2022-10-06 Samsung Electronics Co., Ltd. Electronic device and operation method thereof
KR102550753B1 (ko) * 2021-11-12 2023-07-04 주식회사 솔트룩스 개체명 교정 시스템 및 이를 훈련시키는 방법

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6076051A (en) * 1997-03-07 2000-06-13 Microsoft Corporation Information retrieval utilizing semantic representation of text
US7584092B2 (en) * 2004-11-15 2009-09-01 Microsoft Corporation Unsupervised learning of paraphrase/translation alternations and selective application thereof
US7412385B2 (en) 2003-11-12 2008-08-12 Microsoft Corporation System for identifying paraphrases using machine translation
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8145473B2 (en) 2006-10-10 2012-03-27 Abbyy Software Ltd. Deep model statistics method for machine translation
US8447589B2 (en) * 2006-12-22 2013-05-21 Nec Corporation Text paraphrasing method and program, conversion rule computing method and program, and text paraphrasing system
KR101194635B1 (ko) 2007-07-24 2012-10-29 에스케이텔레콤 주식회사 패러프레이즈를 이용하여 언어 학습 서비스를 제공하는방법과 그를 위한 시스템, 서버 및 컴퓨터로 읽을 수 있는기록매체
US20090119090A1 (en) * 2007-11-01 2009-05-07 Microsoft Corporation Principled Approach to Paraphrasing
KR101449551B1 (ko) * 2011-10-19 2014-10-14 한국전자통신연구원 유사문장 검색 장치 및 방법, 유사문장 검색 방법을 실행시키기 위한 프로그램이 기록된 기록매체
KR20130047471A (ko) 2011-10-31 2013-05-08 한국전자통신연구원 자동번역 시스템의 패러프레이징 데이터 구축방법
US20140006012A1 (en) 2012-07-02 2014-01-02 Microsoft Corporation Learning-Based Processing of Natural Language Questions
US8484022B1 (en) 2012-07-27 2013-07-09 Google Inc. Adaptive auto-encoders
US9336192B1 (en) * 2012-11-28 2016-05-10 Lexalytics, Inc. Methods for analyzing text
KR102191425B1 (ko) 2013-07-29 2020-12-15 한국전자통신연구원 인터랙티브 캐릭터 기반 외국어 학습 장치 및 방법
US10181098B2 (en) 2014-06-06 2019-01-15 Google Llc Generating representations of input sequences using neural networks
JP2016071439A (ja) 2014-09-26 2016-05-09 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 翻訳方法及び翻訳システム
KR102033435B1 (ko) 2014-11-19 2019-11-11 한국전자통신연구원 자연어 질의응답 시스템과 방법 및 패러프라이즈 모듈
US9672814B2 (en) * 2015-05-08 2017-06-06 International Business Machines Corporation Semi-supervised learning of word embeddings
JP6655788B2 (ja) * 2016-02-01 2020-02-26 パナソニックIpマネジメント株式会社 対訳コーパス作成方法、該装置および該プログラムならびに機械翻訳システム
CN107870900B (zh) * 2016-09-27 2023-04-18 松下知识产权经营株式会社 提供翻译文的方法、装置以及记录介质

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Bowman, Samuel R., et al. "Generating sentences from a continuous space." arXiv preprint arXiv:1511.06349 (2015).
He, Hua, Kevin Gimpel, and Jimmy Lin. "Multi-perspective sentence similarity modeling with convolutional neural networks." Proceedings of the 2015 conference on empirical methods in natural language p
Jiwei Li, Dan Jurafsky, Neural Net Models for Open-Domain Discourse Coherence, arXiv:1606.01545v1, 2016*
Liu, Xunying, et al, Paraphrastic recurrent neural network language models, 2015 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2015*
Zhang, Yu, et al. "Phrasal paraphrase based question reformulation for archived question retrieval." PloS one 8.6 (2013): e64601.

Also Published As

Publication number Publication date
KR20180047409A (ko) 2018-05-10
US10713439B2 (en) 2020-07-14
US20180121419A1 (en) 2018-05-03

Similar Documents

Publication Publication Date Title
KR102589638B1 (ko) 문장 생성 장치 및 방법
KR102589637B1 (ko) 기계 번역 방법 및 장치
KR102608469B1 (ko) 자연어 생성 방법 및 장치
KR102565275B1 (ko) 병렬 처리에 기초한 번역 방법 및 장치
KR102458244B1 (ko) 기계 번역 방법 및 장치
KR102342066B1 (ko) 뉴럴 네트워크 모델을 이용한 기계 번역 방법, 장치 및 그 장치를 학습시키기 위한 방법
US11972365B2 (en) Question responding apparatus, question responding method and program
KR20200075615A (ko) 기계 번역 방법 및 장치
EP3002686A1 (en) Language identification
US11263223B2 (en) Using machine learning to determine electronic document similarity
US20180189272A1 (en) Apparatus and method for sentence abstraction
KR20210061141A (ko) 자연어 처리 방법 및 장치
KR102410825B1 (ko) 문장의 도메인 판단 방법 및 장치
JP7181019B2 (ja) 文章生成方法、装置及びコンピュータプログラム
US20230029759A1 (en) Method of classifying utterance emotion in dialogue using word-level emotion embedding based on semi-supervised learning and long short-term memory model
KR102249818B1 (ko) 학습 데이터의 분포 특성에 기초하여 학습 데이터를 생성하는 방법 및 장치
KR20210044056A (ko) 중복 토큰 임베딩을 이용한 자연어 처리 방법 및 장치
KR102637340B1 (ko) 문장 매핑 방법 및 장치
KR102564692B1 (ko) 관계성 학습을 이용한 자연어 처리 시스템 및 방법
KR102183284B1 (ko) 교차언어 환경에서의 대화 상태 추적 방법 및 시스템
KR102413050B1 (ko) 문서 요약 방법 및 장치
KR102439165B1 (ko) 상식 지식과 언어학적 패턴을 이용한 서술문 신뢰도 평가 시스템 및 그 방법
KR20210044003A (ko) 단어 임베딩 방법 및 장치와 단어 검색 방법
JP7397114B2 (ja) テキスト生成方法、装置、電子機器及び記憶媒体
KR102559687B1 (ko) 딥러닝 모델을 이용한 맞춤법 교정 방법, 장치 및 이를 위한 딥러닝 모델의 학습 방법

Legal Events

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