KR20180114781A - 방언을 표준어로 변환하는 방법 및 장치 - Google Patents
방언을 표준어로 변환하는 방법 및 장치 Download PDFInfo
- Publication number
- KR20180114781A KR20180114781A KR1020170046930A KR20170046930A KR20180114781A KR 20180114781 A KR20180114781 A KR 20180114781A KR 1020170046930 A KR1020170046930 A KR 1020170046930A KR 20170046930 A KR20170046930 A KR 20170046930A KR 20180114781 A KR20180114781 A KR 20180114781A
- Authority
- KR
- South Korea
- Prior art keywords
- word
- words
- sentence
- dialect
- standard
- Prior art date
Links
Images
Classifications
-
- G06F17/28—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/58—Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
-
- G06F17/27—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
- G06F40/157—Transformation using dictionaries or tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/263—Language identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/42—Data-driven translation
- G06F40/44—Statistical methods, e.g. probability models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Machine Translation (AREA)
Abstract
방언 단어가 포함된 문장을 획득하고, 방언 단어가 포함된 문장에서 방언 및 표준어에서 동일하게 사용되는 적어도 하나의 공통 단어를 식별하며, 식별된 적어도 하나의 공통 단어를 소정의 키워드로 대체하고, 소정의 키워드 및 문장에 포함되는 나머지 단어들 각각과 대응되는 하나 이상의 벡터 값들을 획득하며, 획득된 하나 이상의 벡터 값들의 배열에 기초하여 표준어 문장을 획득함으로써, 소정의 언어에 대한 방언을 표준어로 변환하는 방법 및 장치를 제공한다.
Description
본 발명은 방언을 표준어로 변환하는 방법 및 장치에 관한 것이다.
딥러닝(deep machine learning)은 사람의 뇌를 모사해서 만든 인공신경망을 이용하여 다수의 데이터에서 주요 특징들을 자동 추출하고, 추출된 특징들을 기초로 인식, 생성, 추론 등 다양한 작업을 수행하는 기술이다.
특히, 최근에는 번역을 수행할 때에도 딥러닝이 이용되며, 구체적으로 인공 신경망 기계 번역(NMT, Neural Machine Translation)이 개발 및 발전 중에 있다. NMT는 종래의 통계 기반 번역(SMT, Statistical Machine Translation)이 주로 구(phrase) 단위를 번역했던 것과 다르게 문장(sentence) 전체를 고려하여 번역하는 방식이다. 번역하고자 하는 문장의 번역 결과 중 최적의 결과를 컴퓨터가 반복적으로 학습하여 자연스러운 번역을 수행할 수 있도록 한다.
또한, 최근에는 서로 다른 두 개의 언어 간의 번역뿐만 아니라 방언과 표준어 간의 번역 또한 요구되고 있다. 다만, 종래의 번역기들은 번역의 대상이 되는 언어들을 다른 어휘, 다른 단어 모델, 다른 문법 규칙, 다른 단어 순서 등을 갖는, 완전히 다른 두 개의 언어들로 취급하지만 방언과 표준어의 번역의 경우 효율적인 번역을 위해 방언 및 표준어 간의 유사성을 이용함으로써 번역 과정을 개선하는 방법이 요구된다.
다양한 실시예들은 방언을 표준어로 변환하는 방법 및 장치를 제공하는데 있다. 본 개시가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
상술한 기술적 과제를 해결하기 위한 수단으로서, 일 측면에 따른 소정의 언어에 대한 방언을 표준어로 변환하는 방법은, 방언 단어가 포함된 문장을 획득하는 단계; 상기 방언 단어가 포함된 문장에서 상기 방언 및 상기 표준어에서 동일하게 사용되는 적어도 하나의 공통 단어를 식별하는 단계; 상기 식별된 적어도 하나의 공통 단어를 소정의 키워드로 대체하는 단계; 상기 소정의 키워드 및 상기 문장에 포함되는 나머지 단어들 각각과 대응되는 하나 이상의 벡터 값들을 획득하는 단계; 및 상기 획득된 하나 이상의 벡터 값들의 배열에 기초하여 표준어 문장을 획득하는 단계를 포함할 수 있다.
또한, 다른 측면에 따른 컴퓨터로 읽을 수 있는 기록매체는 상술한 방법을 실행하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 기록매체를 포함할 수 있다.
또한, 또 다른 측면에 따른 디바이스는, 적어도 하나의 프로그램이 저장된 메모리; 및 상기 적어도 하나의 프로그램을 실행함으로써 소정의 언어에 대한 방언을 표준어로 변환하는 프로세서를 포함하고, 상기 적어도 하나의 프로그램은, 방언 단어가 포함된 문장을 획득하는 단계; 상기 방언 단어가 포함된 문장에서 상기 방언 및 상기 표준어에서 동일하게 사용되는 적어도 하나의 공통 단어를 식별하는 단계; 상기 식별된 적어도 하나의 공통 단어를 소정의 키워드로 대체하는 단계; 상기 소정의 키워드 및 상기 문장에 포함되는 나머지 단어들 각각과 대응되는 하나 이상의 벡터 값들을 획득하는 단계; 및 상기 획득된 하나 이상의 벡터 값들의 배열에 기초하여 표준어 문장을 획득하는 단계를 포함할 수 있다.
도 1은 일부 실시예에 따른 소정의 언어에 대한 방언을 표준어로 변환하는 시스템에 관한 도면이다.
도 2는 일부 실시예에 따른 소정의 언어에 대한 방언을 표준어로 변환하는 방법의 흐름도이다.
도 3은 일부 실시예에 따른 소정의 언어에 대한 방언을 표준어로 변환하는 과정의 세부 흐름도이다.
도 4는 일부 실시예에 따른 소스 문장(source sentence)을 전 처리하는 방법의 흐름도이다.
도 5는 일부 실시예에 따른 표준어-방언 매핑 테이블(렉시콘)을 생성하는 방법의 세부 흐름도이다.
도 6은 일부 실시예에 따른 시퀀스 투 시퀀스 컨버터(Sequence to sequence converter)를 학습시키는 방법의 흐름도이다.
도 7은 일부 실시예에 따른 번역을 수행하는 기기의 구성을 나타내는 블록도이다.
도 2는 일부 실시예에 따른 소정의 언어에 대한 방언을 표준어로 변환하는 방법의 흐름도이다.
도 3은 일부 실시예에 따른 소정의 언어에 대한 방언을 표준어로 변환하는 과정의 세부 흐름도이다.
도 4는 일부 실시예에 따른 소스 문장(source sentence)을 전 처리하는 방법의 흐름도이다.
도 5는 일부 실시예에 따른 표준어-방언 매핑 테이블(렉시콘)을 생성하는 방법의 세부 흐름도이다.
도 6은 일부 실시예에 따른 시퀀스 투 시퀀스 컨버터(Sequence to sequence converter)를 학습시키는 방법의 흐름도이다.
도 7은 일부 실시예에 따른 번역을 수행하는 기기의 구성을 나타내는 블록도이다.
이하 첨부된 도면을 참조하면서 오로지 예시를 위한 실시예들을 상세히 설명하기로 한다. 하기 설명은 실시예들을 구체화하기 위한 것일 뿐 발명의 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 상세한 설명 및 실시예로부터 당해 기술분야의 전문가가 용이하게 유추할 수 있는 것은 권리범위에 속하는 것으로 해석된다.
본 명세서에서 사용되는 '구성된다' 또는 '포함한다' 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
본 실시예들은 방언을 표준어로 변환하는 방법 및 장치에 관한 것으로서 이하의 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서는 자세한 설명을 생략한다.
본 개시에 기재된 실시예에서 "표준어"라는 용어는 한 나라가 법으로 정하여 놓은 언어규범을 의미하고, "방언"이라는 용어는 원래는 균질적이던 한 언어가 지리적으로 사회적으로 분화되어 생겨난 분화체로서, 특정 지역 또는 사회 계층에서만 사용하는 음성, 음운, 문법, 어휘의 체계를 의미할 수 있다. 예를 들어, "방언"은 특정 언어 집단에서 쓰이면서 다른 언어 집단의 언어 체계와는 구별되는 특징을 가지는, 한 언어의 변종(variety)일 수 있다.
본 개시에 기재된 실시예에서 "방언 문장"은 적어도 하나의 방언 단어를 포함하는 문장을 의미하고, "표준어 문장"은 표준어 단어만을 포함하는 문장을 의미할 수 있다.
또한, 본 개시에 개시된 실시예에서 "공통 단어"는 방언 및 표준어에서 동일하게 사용되는 단어를 의미할 수 있다. 예를 들어, 인명, 지명 및 기관명을 포함하는 고유 명사는 공통 단어일 수 있다. 또한, 기관(organization), 날짜, 시간, 숫자 등도 공통 단어일 수 있다.
본 개시에서 개시된 실시예에서 "벡터 값" 문장에 포함되는 복수의 단어들 각각의 정보를 n차원(n은 임의의 자연수) 실수 벡터로 표현한 것을 의미할 수 있다. 예를 들면, "벡터 값"은 단어의 길이, 단어의 품사, 단어의 카테고리, 문맥, 어순 등에 기초하여 분류되는 값을 의미할 수 있다. 또한, 복수의 단어들 각각의 정보에는 해당 단어에 대한 정보뿐만 아니라 해당 단어의 동의어, 유사어, 반의어, 대응되는 표준어 단어 및/또는 대응되는 방언 단어에 대한 정보가 포함될 수 있으며, 이에 기초하여 "벡터 값"이 결정 또는 획득될 수 있다.
본 개시에서 개시된 실시예에서 "번역 매핑 테이블"은 방언 단어 및 표준어 단어의 발음, 의미, 다른 단어와의 관계 등 단어에 대한 다양한 정보를 저장하는 데이터일 수 있다. 예를 들어, "번역 매핑 테이블"은 표준어 문장 및 방언 문장에 포함되는 단어, 구문, 어순 등의 정보 및 문맥 정보를 포함할 수 있다. 또한, "번역 매핑 테이블"은 해당 단어에 대한 정보뿐만 아니라 해당 단어의 동의어, 유사어, 반의어, 대응되는 표준어 단어 및/또는 대응되는 방언 단어에 대한 정보를 포함할 수 있다.
한편, 본 개시에 개시된 실시예에서 "방언 감지기(Dialect detector)"는 방언 단어가 포함된 문장의 방언을 감지하는 기능적인 블록 구성일 수 있다. 예를 들어, "방언 감지기"는 방언 단어가 포함된 문장에 포함된 단어들 중 적어도 하나의 방언 단어를 식별하고, 식별된 적어도 하나의 방언 단어에 기초하여 방언의 종류를 판단할 수 있다.
본 개시에 개시된 실시예에서 "시퀀스 투 시퀀스(sequence-to-sequence) 변환"이란 인공 신경망을 이용하는 번역 시스템에서 문장 전체를 고려하여 번역하는 방식으로, 단어 간의 1 대 1 검색(one-to-one lookups)을 이용하는 대신 다양한 길이의 문장들간의 매핑을 이용함으로써 번역을 수행하는 방법을 의미할 수 있다. 또한 "시퀀스 투 시퀀스 컨버터"는 "시퀀스 투 시퀀스 변환"을 수행하는 기능적인 블록 구성을 의미할 수 있다.
본 개시에 개시된 실시예에서 "개체명 인식기(Named Entity Recognition: NER)"는 문장에서 방언 및 표준어에서 동일하게 사용되는 적어도 하나의 공통 단어를 식별하고, 식별된 공통 단어를 소정의 키워드로 대체하는 기능적인 블록 구성일 수 있다. 예를 들어, "개체명 인식기"는 "John is going to Samsung at 8:00 AM."이라는 문장이 입력되었을 때, "John", "Samsung" 및 "8:00 AM"을 공통 단어로 식별하고, 각각을 "PER", "ORG" 및 "TIME"으로 대체할 수 있다. 한편, 본 개시에 개시된 실시예에서 "NER 대체(NER Replacement)"는 변환된 문장에 포함되는 소정의 키워드를 공통 단어로 다시 변환하는 과정을 의미할 수 있다.
도 1은 일부 실시예에 따른 소정의 언어에 대한 방언을 표준어로 변환하는 시스템에 관한 도면이다.
도 1을 참조하면, 일부 실시예에 따른 소정의 언어에 대한 방언을 표준어로 변환하는 시스템(100)이 도시되어 있다. 방언을 표준어로 변환한다는 것은 방언을 표준어로 번역하는 것을 의미할 수 있다. 소정의 언어는 하나의 표준어와 복수 개의 방언들을 포함할 수 있다.
방언 문장은 표준어 문장과 비교하여 단어, 단어들의 순서, 문장의 길이, 접두사 및 접미사 중 적어도 하나가 변경된 것일 수 있다. 따라서, 방언을 쓸 줄 모르는 사용자가 방언 단어가 포함된 문장을 이해하기 위해서는 방언을 표준어로 변환하는 시스템(100)이 요구될 수 있다.
시스템(100)은 방언 문장을 입력 받고, 입력 받은 방언 문장을 표준어 문장으로 변환할 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 시스템(100)은 영국 방언(British dialect) 문장(10)인 "What's goin' on?" 또는 아일랜드 방언(Irish dialect) 문장(15)인 "What's the craic?"을 입력 받고, 입력 받은 방언 문장들을 표준어 문장(20)인 "How are things"로 변환할 수 있다.
또한, 시스템(100)은 표준어 문장(20)을 입력 받고, 입력 받은 표준어 문장(20)을 방언 문장들(10 또는 15)로 변환할 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 시스템(100)은 표준어 문장(20)인 "How are things?"를 입력 받고, 입력 받은 표준어 문장(20)을 영국 방언 문장(10)인 "What's goin' on?" 또는 아일랜드 방언 문장(15)인 "What's the craic?"로 변환할 수 있다.
방언 및 표준어 간에는 차이점이 있지만, 유사성도 있을 수 있다. 방언 및 표준어는 동일한 자모(alphabet)를 사용하므로, 방언 및 표준어에서 동일하게 사용되는 공통 단어들이 존재할 수 있다. 예를 들어, 인명, 지명 및 기관명을 포함하는 고유명사는 방언 및 표준어에서 동일하게 사용될 수 있다.
일부 실시예에 따른 시스템(100)은 서로 다른 두 언어를 번역할 때와는 달리, 소정의 언어에 대한 방언 및 표준어를 번역할 때 방언 및 표준어의 유사성을 이용함으로써 번역 과정을 개선시킬 수 있다. 예를 들어, 시스템(100)은 방언 및 표준어에서 동일하게 사용되는 공통 단어들에 대한 불필요한 번역을 생략할 수 있다. 또한, 시스템(100)은 공통 단어들을 다른 단어들을 번역할 때 활용함으로써 번역의 정확도를 높일 수 있다.
한편, 일부 실시예에 따른 시스템(100)은 디바이스일 수 있다. 디바이스는 스마트폰, 태블릿 PC, 노트북 컴퓨터(laptop computer), 웨어러블 디바이스(wearable device), 데스크탑, 전자책 단말기, 디지털 방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어 등의 다양한 기기 또는 서버로 구현될 수 있으며, 이에 한정되지 않는다.
또한, 시스템(100)은 디바이스와 서버의 결합으로 구현될 수도 있다. 사용자의 입력을 수신하는 디바이스와 번역 서버가 별도로 존재하여, 디바이스와 번역 서버 간의 통신을 통해 번역이 수행될 수 있다. 물론 단일의 디바이스에서 번역이 수행될 수도 있으며, 상기 예시에 제한되지 않는다.
이하에서는, 설명의 편의를 위해 "디바이스"에서 수행되는 방언을 표준어로 변환하는 방법에 대해 서술하도록 하겠다. 다만, 이하에서 기술되는 디바이스의 동작의 일부 또는 전부는 서버에서도 수행될 수 있으며, 복수의 디바이스들에 의해 부분적으로 수행될 수 있다.
도 2는 일부 실시예에 따른 소정의 언어에 대한 방언을 표준어로 변환하는 방법의 흐름도이다.
도 2를 참조하면, 단계 210에서, 디바이스는 방언 단어가 포함된 문장을 획득할 수 있다. 디바이스는 방언 단어가 포함된 문장을 표준어 문장으로 변환하기 위해, 방언 단어가 포함된 문장을 획득할 수 있다.
일부 실시예에서, 방언 단어가 포함된 문장은 표준어 문장과 비교하여 단어, 단어들의 순서, 문장의 길이, 접두사 및 접미사 중 적어도 하나가 변경된 것일 수 있다. 예를 들어, "Are you excited"가 영어 표준어 문장일 때, 대응되는 영국 방언 문장은 "Are you knees up?"이고, 대응되는 아일랜드 방언 문장은 "Are you delira and excira about it?"일 수 있다.
디바이스는 방언 단어가 포함된 문장을 외부로부터 입력받을 수 있다. 또한, 디바이스는 디바이스에 저장되어 있거나 디바이스에 의해 생성된 데이터에 포함되는 텍스트로부터 방언 단어가 포함된 문장을 추출할 수도 있다.
디바이스는 방언 단어가 포함된 문장의 방언을 감지할 수 있다. 예를 들어, 디바이스는 문장을 입력 받고, 입력 받은 문장에 포함된 단어들 중 적어도 하나의 방언 단어를 식별할 수 있다. 또한, 디바이스는 식별된 적어도 하나의 방언 단어에 기초하여 방언의 종류를 판단할 수 있다. 또한, 디바이스는 방언 단어의 배열에 기초하여 방언의 종류를 판단할 수도 있다.
디바이스는 방언 단어를 구성하는 문자들의 배열에 기초하여 소정의 언어에 대한 복수 개의 방언들 중 가장 가능성 있는 방언의 종류를 결정할 수 있다. 디바이스는 방언 단어가 복수 개의 방언들에 해당될 확률을 각각 계산하고, 가장 높은 확률을 갖는 방언을 방언 단어에 대응되는 방언의 종류로 결정할 수 있다.
디바이스는 가장 가능성 있는 방언을 결정하기 위해, 기계 학습에서 잘 알려진 기술인 문서 분류(document classification)를 이용할 수 있다. 복수 개의 방언들 각각에 대한 언어 모델들이 구축되어 있을 수 있다. 디바이스는 식별된 적어도 하나의 방언 단어에 기초하여 방언의 종류를 판단하고, 해당 방언의 종류에 대응되는 언어 모델을 이용할 수 있다.
또한, 디바이스는 방언 단어가 포함된 문장을 하나 이상의 단어들로 분할할 수 있다. 디바이스는 분할된 하나 이상의 단어들에 기초하여 이후의 단계들을 수행할 수 있다. 한편, 디바이스는 방언 단어가 포함된 문장을 형태소 단위로 분할할 수도 있다. 문장 분할 단계는 디바이스가 단계 240을 수행하기 전이라면 언제든지 수행될 수 있다. 예를 들어, 문장 분할 단계는 단계 220 또는 단계 230에서 수행될 수 있다.
단계 220에서, 디바이스는 방언 단어가 포함된 문장에서 방언 및 표준어에서 동일하게 사용되는 적어도 하나의 공통 단어를 식별할 수 있다. 일부 실시예에서, 공통 단어들은 인명, 지명 및 기관명을 포함하는 고유명사를 포함할 수 있다. 예를 들어, "John"이라는 고유명사는 표준어 및 방언에서 동일하게 사용되므로, 디바이스는 문장에 "John"이 포함되어 있을 때, "John"을 공통 단어로 식별할 수 있다. 또한, 공통 단어들은 방언 및 표준어에서 동일하게 사용되는 다른 단어들, 예를 들어, 기관(organization), 날짜, 시간, 숫자 등을 포함할 수 있다.
디바이스는 방언 단어가 포함된 문장에서 적어도 하나의 공통 단어를 식별하고, 식별된 적어도 하나의 공통 단어의 종류를 결정할 수 있다. 예를 들어, 디바이스가 "John"을 공통 단어로 식별한 경우, 디바이스는 공통 단어 "John"이 고유명사에 해당됨을 결정할 수 있다. 디바이스는 식별된 공통 단어가 고유명사, 기관, 날짜, 시간 및 숫자 중 무엇에 해당하는지를 판단할 수 있다.
단계 230에서, 디바이스는 식별된 적어도 하나의 공통 단어를 소정의 키워드로 대체할 수 있다. 예를 들어, 디바이스는 모든 고유명사들을 "PER"이란 키워드로 대체할 수 있다. PER은 사람(PERSON)을 나타낸다는 키워드로써, 고유 명사를 "PER"로 대체할 수 있다.
보다 구체적인 예를 들면, "John is walking with David."라는 문장이 입력되었을 때, 디바이스는 "John" 및 "David"를 공통 단어(고유명사)로 식별하고, 식별된 "John" 및 "David"를 소정의 키워드인 "PER"로 대체할 수 있다. 그 결과, 문장은 "PER is working with PER."로 대체될 수 있다.
또한, 디바이스는 모든 기관들은 "ORG"로 대체하고, 모든 숫자들은 "NUM"으로 대체하며, 모든 날짜들을 "DATE"로 대체할 수 있다. 예를 들어, "John is going to Samsung at 8:00 AM."이라는 문장이 입력되었을 때, 디바이스는 "John", "Samsung" 및 "8:00 AM"을 각각 "PER", "ORG" 및 "TIME"으로 대체할 수 있다. 그 결과, 문장은 "PER is going to ORG at TIME."으로 대체될 수 있다. "PER", "TIME", "DATE" 및 "ORG"와 같은 소정의 키워드들은 예시에 불과하며, 이에 제한되지 않는다.
한편, 디바이스는 소정의 키워드, 적어도 하나의 공통 단어 및 방언 단어가 포함된 문장에서 적어도 하나의 공통 단어의 위치를 매핑하는 정보를 저장할 수 있다. 예를 들어, 디바이스는 "John is walking now."을 "PER is working now."로 대체할 때, "PER", "John" 및 "position 1"을 매핑하는 정보를 저장할 수 있다. "PER"은 공통 단어의 종류에 대응되는 소정의 키워드를 의미하고, "John"은 공통 단어를 의미하며, "position 1"은 공통 단어가 문장에서 첫 번째에 위치하는 것을 의미할 수 있다. 물론 공통 단어의 위치 정보는 어절 단위로 식별되어 저장될 수도 있으며, 상기 예시에 제한되지 않는다.
단계 240에서, 디바이스는 소정의 키워드 및 문장에 포함되는 나머지 단어들 각각과 대응되는 하나 이상의 벡터 값들을 획득할 수 있다.
일부 실시예에서, 디바이스는 인공 신경망을 이용한 기계 번역을 이용하여 방언을 표준어로 번역할 수 있다. 예컨대, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network)과 같은 다양한 인공 신경망 모델이 번역 모델로서 사용될 수 있으나, 이에 한정되지 않는다.
인공 신경망은 벡터 값을 입력으로 받아 벡터 값을 출력하는 알고리즘이므로, 디바이스는 인공 신경망을 이용하여 표준어를 방언으로 변환하기 위해, 소정의 키워드 및 문장에 포함되는 나머지 단어들 각각에 대응되는 하나 이상의 벡터 값들을 획득할 수 있다.
특정 단어와 대응되는 벡터는 워드 임베딩 벡터(word embedding vector)일 수 있다. 워드 임베딩 벡터는 단어에 관한 다양한 정보를 포함하기 위해, 초고차원 공간(hyper dimensional space) 상의 특정 위치에 대응되는 벡터일 수 있다. 예를 들어, 문장에 포함되는 단어들 각각은 대응되는 200차원 실수 벡터 값으로 표현될 수 있다. 200이라는 숫자는 예시에 불과하며, 벡터 값은 문장에 포함되는 단어에 대한 다양한 정보를 포함하기에 충분한 임의의 수의 차원을 가질 수 있으며, 단어가 가지는 각 차원의 값은 단어가 가지는 각각의 정보에 따라 결정될 수 있다.
디바이스는 소정의 키워드에 대해 기 설정된 벡터 값을 획득할 수 있고, 기 설정된 벡터 값에 기초하여 나머지 단어들에 대응되는 벡터 값들을 획득할 수 있다. 예를 들어, 디바이스는 "PER", "TIME", "DATE" 및 "ORG"와 같은 소정의 키워드들에 대해 기 설정된 벡터 값을 획득할 수 있다. 소정의 키워드는 같은 문장에 포함되는 나머지 단어들에 대응되는 벡터 값에 영향을 미치는 문맥(context)의 일부일 수 있다. 따라서, 디바이스는 소정의 키워드에 대응되는 벡터 값을 먼저 획득한 뒤, 소정의 키워드에 대응되는 벡터 값들에 기초하여 나머지 단어들에 대응되는 벡터 값들을 획득할 수 있다. 기 설정된 벡터 값은 디바이스에 의해 결정될 수 있고, 사용자 입력에 의해 결정될 수도 있다.
또한, 디바이스는 소정의 키워드 및 문장에 포함되는 나머지 단어들이 번역 매핑 테이블에 포함되는지 여부를 판단하고, 소정의 키워드 및 문장에 포함되는 나머지 단어들 중 제 1 단어가 번역 매핑 테이블에 포함되는 경우, 번역 매핑 테이블로부터 제 1 단어에 대응되는 벡터 값을 획득할 수 있다.
일부 실시예에서, 번역 매핑 테이블은 양방향 렉시콘(lexicon)일 수 있다. 렉시콘은 단어의 발음, 의미 등 단어에 관한 정보가 저장된 것으로써 당업자에게 자명하므로 자세한 설명은 생략한다.
방언 단어 및 표준어 단어에 대한 다양한 정보는 디바이스에 의해 처리되기 용이하도록 벡터 값의 형태로 저장될 수 있다. 이에 따라, 번역 매핑 테이블은 표준어 단어 및 방언 단어 각각에 대응되는 벡터 값에 대한 정보를 포함할 수 있다. 또한, 번역 매핑 테이블은 방언 단어 및 표준어 단어에 대한 다양한 정보에 기초하여 방언 단어와 해당 방언 단어에 대응되는 표준어 단어를 매핑하는 정보를 저장할 수 있다.
한편, 번역 매핑 테이블은 디바이스에 의해 생성될 수 있다. 일부 실시예에서, 디바이스는 표준어 단어들의 집합 및 방언 단어들의 집합을 획득할 수 있다. 디바이스는 표준어 단어들의 집합 및 방언 단어들의 집합에서 표준어 및 방언에서 동일하게 사용되는 공통 단어들을 추출하고, 추출된 공통 단어들에 대해 제 1 벡터 값을 할당할 수 있다.
디바이스는 할당된 제 1 벡터 값 및 표준어 단어들의 집합에 포함되는 단어들 각각을 구성하는 문자들의 배열에 기초하여 표준어 단어들의 집합에 포함되는 단어들 각각에 대응되는 제 2 벡터 값들을 할당할 수 있다. 또한, 디바이스는 할당된 제 1 벡터 값 및 방언 단어들의 집합에 포함되는 단어들 각각을 구성하는 문자들의 배열에 기초하여 방언 단어들의 집합에 포함되는 단어들 각각에 대응되는 제 3 벡터 값들을 할당할 수 있다.
예를 들어, 표준어 영어 문장인 "Do you want go to PER?"에 포함되는 단어들에 대응되는 벡터 값들이 이미 번역 매핑 테이블에 저장되어 있고, 디바이스가 방언 문장인 "Wanna go PER?"에 포함되는 단어들의 벡터 값을 할당하려고 하는 경우를 가정해보자. "go" 및 "PER"에 대해서는 이미 벡터 값이 할당되어 있으므로, 공통 단어들인 "go" 및 "PER"에 할당된 벡터 값에 기초하여 "Wanna"에 대응되는 벡터 값들이 유도될 수 있다. 공통 단어들 및 공통 단어들에 대응되는 키워드는 방언 어휘를 학습하기 위한 기준(baseline)으로 활용될 수 있다. 표준어 단어들 및 방언 단어들은 공통 단어들에 대응되는 벡터 값들에 기초하여 동일한 초고차원 공간에 투영될 수 있다.
한편, 디바이스는 제 2 벡터 값들 및 제 3 벡터 값들을 매칭함으로써 번역 매핑 테이블을 생성할 수 있다. 디바이스는 생성된 번역 매핑 테이블을 계속해서 학습시키고, 업데이트시킬 수 있다. 예를 들어, 디바이스는 새로운 표준어 단어들의 집합 및 방언 단어들의 집합을 획득하고, 앞서 설명한 과정을 반복할 수 있다. 번역 매핑 테이블은 기존에 저장되어 있던 정보에 기초하여 새로운 정보들을 학습할 수 있다. 공통 단어들은 번역 매핑 테이블에 별개로 학습될 필요가 없으므로, 불필요한 학습 과정이 감소될 수 있다.
앞선 설명에서는 편의를 위해 디바이스가 번역 매핑 테이블을 생성하는 경우에 대해 설명하였으나, 서버 또는 다른 디바이스가 번역 매핑 테이블을 생성하고, 디바이스가 서버 또는 다른 디바이스에 의해 생성된 번역 매핑 테이블을 수신하거나 이용할 수 있음은 당업자에게 자명할 것이다.
한편, 디바이스는 소정의 키워드 및 문장에 포함되는 나머지 단어들 중 제 2 단어가 번역 매핑 테이블에 포함되지 않는 경우, 제 2 단어를 구성하는 문자들의 배열에 기초하여 제 2 단어에 대응되는 벡터 값을 예측할 수 있다. 디바이스가 단어에 대응되는 벡터 값을 번역 매핑 테이블로부터 획득할 수 없는 경우, 디바이스는 해당 단어에 대응되는 벡터 값을 예측할 수 있다.
예를 들어, 디바이스는 대표적인 확률적 언어 모델 중 하나인 n-gram 방식을 이용하여 단어에 대응되는 벡터 값을 획득할 수 있다. n-gram은 주어진 문장에서 n개의 항목들(items)의 연속적인 배열을 의미할 수 있다. 항목들은 음소, 음절, 글자, 단어 등일 수 있다. n-gram 방식은 n-1개의 항목들의 배열에 기초하여 n번째 항목을 예측하기 위한 확률적 언어 모델일 수 있다. 디바이스는 번역 매핑 테이블에 포함되지 않는 단어를 구성하는 문자들의 배열 및 해당 단어와 유사한 문자들의 배열을 갖는 단어들에 대응되는 벡터 값들에 기초하여 해당 단어에 대응되는 벡터 값을 예측할 수 있다.
디바이스는 n개 단어의 연쇄를 확률적으로 표현함으로써, 번역 매핑 테이블에 저장되어 있지 않은 단어에 대한 정보를 추측할 수 있다. 또한, 디바이스는 HMM-LM(Hidden Markov Model for Language Modeling)을 이용할 수도 있다.
단계 250에서, 디바이스는 획득된 하나 이상의 벡터 값들의 배열에 기초하여 표준어 문장을 획득할 수 있다. 디바이스는 방언 문장을 나타내는 벡터 값들의 배열을 대응되는 표준어 문장을 나타내는 벡터 값들의 배열로 변환하기 위해, 시퀀스 투 시퀀스 변환을 이용할 수 있다. 예를 들어, 디바이스는 LSTM(Long short-term memory) 알고리즘을 이용하여 시퀀스 투 시퀀스 변환을 수행할 수 있다.
디바이스는 시퀀스 투 시퀀스 변환에 의해 획득된, 표준어 문장을 나타내는 벡터 값들의 배열에 기초하여 표준어 문장을 획득할 수 있다. 공통 단어들에 대응되는 소정의 키워드는 표준어 및 방언에서 동일하게 사용되므로, 획득된 표준어 문장에 소정의 키워드가 포함될 수 있다. 따라서, 디바이스가 완전한 표준어 문장을 획득하기 위해서는, 소정의 키워드를 다시 공통 단어들로 변환하는 과정이 필요하다.
디바이스는 소정의 키워드 및 문장에 포함되는 나머지 단어들 각각과 대응되는 하나 이상의 벡터 값들을 획득하고, 획득된 하나 이상의 벡터 값들의 배열에 기초하여, 나머지 단어들에 대응되는 표준어 단어들 및 소정의 키워드를 포함하는 변환된 문장을 획득할 수 있다. 또한, 디바이스는 변환된 문장에 포함되는 소정의 키워드를 적어도 하나의 공통 단어로 다시 변환함으로써, 표준어 문장을 획득할 수 있다.
디바이스가 변환된 문장에 포함되는 소정의 키워드를 적어도 하나의 공통 단어로 다시 변환하는 과정에서, 단계 230에서 저장된, 소정의 키워드, 적어도 하나의 공통 단어 및 방언 단어가 포함된 문장에서 적어도 하나의 공통 단어의 위치를 매핑하는 정보가 이용될 수 있다. 예를 들어, 방언 문장인 "Gonna go to school with John and Jackie."에서 공통 단어들인 "John" 및 "Jackie"가 소정의 키워드 "PER"로 대체될 때, "PER, John, position 6" 및 "PER, Jackie, position 8"과 같은 매핑 정보가 단계 230에서 저장될 수 있다.
"Gonna go to school with PER and PER."라는 문장이 시퀀스 투 시퀀스 변환(방언에서 표준어로의 변환)에 의해 "I am going to school with PER and PER."로 변환된 경우, 변환된 문장에 포함된 "PER"들 중 어떤 "PER"이 "John" 또는 "Jackie"인지 결정될 필요가 있다. 이 때, 디바이스는 "PER, John, position 6" 및 "PER, Jackie, position 8"와 같은 매핑 정보를 이용하여 공통 단어들인 "John" 및 "Jackie"의 가장 가능성 있는 위치들을 결정할 수 있다.
예를 들어, 디바이스는 비용 함수(cost function)를 이용하여 가능한 여러 위치들의 조합 중에서 가장 적은 비용을 갖는 위치들의 조합을 공통 단어들의 위치들의 조합으로 결정할 수 있다. 앞선 예에서, 최종적인 표준어 문장은 "I am going to school with John and Jackie." 또는 "I am going to school with Jackie and John."이 될 수 있다.
최종적인 표준어 문장이 "I am going to school with John and Jackie."라면, John의 위치는 position 7이고, Jackie의 위치는 position 9이므로, 비용 함수에 의해 비용이 로 계산될 수 있다. 한편, 최종적인 표준어 문장이 "I am going to school with Jackie and John."인 경우 John의 위치는 position 9이고, Jackie의 위치는 position 7이므로, 비용 함수에 의해 비용이 로 계산될 수 있다. 따라서, 디바이스는 비용 함수를 최소화시키는 단어들의 위치들을 가지는 문장인 "I am going to school with John and Jackie."를 최종적인 표준어 문장으로 결정할 수 있다.
지금까지 도 2를 참조하여 소정의 언어에 대한 방언을 표준어로 변환하는 방법에 대해 설명했다. 그러나, 도 2의 소정의 언어에 대한 방언을 표준어로 변환하는 방법이 소정의 언어에 대한 표준어를 방언으로 변환하는 방법에도 동일하게 적용될 수 있음은 당업자에게 자명할 것이다.
도 3은 일부 실시예에 따른 소정의 언어에 대한 방언을 표준어로 변환하는 과정의 세부 흐름도이다.
도 3을 참조하면, 디바이스는 방언 단어가 포함된 문장(310)인 "Aye John, it's pure dreich today."를 획득할 수 있다. 디바이스는 방언 단어가 포함된 문장(310)을 표준어 문장(370)으로 변환하기 위해, 방언 단어가 포함된 문장(310)을 획득할 수 있다.
디바이스는 방언 감지기(320)를 이용하여 방언 단어가 포함된 문장(310)의 방언을 감지할 수 있다. 디바이스는 방언 단어가 포함된 문장(310)에 포함된 단어들 중 적어도 하나의 방언 단어를 식별하고, 식별된 적어도 하나의 방언 단어에 기초하여 방언의 종류를 판단할 수 있다.
디바이스는 방언 단어를 구성하는 문자들의 배열에 기초하여 소정의 언어에 대한 복수 개의 방언들 중 가장 가능성 있는 방언의 종류를 결정할 수 있다. 디바이스는 방언 단어가 복수 개의 방언들에 해당될 확률을 각각 계산하고, 가장 높은 확률을 갖는 방언을 방언 단어에 대응되는 방언의 종류로 결정할 수 있다.
예를 들어, 도 3에 도시된 것과 같이, 디바이스는 방언 단어가 포함된 문장(310)이 아일랜드 방언일 확률이 21.6%, 스코틀랜드 방언일 확률이 61.5%, 영국 방언일 확률이 13.1% 및 미국 방언일 확률이 4.2%라는 결과(325)를 획득할 수 있다. 디바이스는 결과(325)에 기초하여 방언의 종류를 가장 높은 확률을 갖는 방언인 스코틀랜드 방언으로 결정할 수 있다.
방언의 종류가 결정되면, 디바이스는 개체명 인식기(330)를 이용하여 방언 단어가 포함된 문장(310)에서 방언 및 표준어에서 동일하게 사용되는 적어도 하나의 공통 단어를 식별할 수 있다. 일부 실시예에서, 공통 단어들은 인명, 지명 및 기관명을 포함하는 고유명사를 포함할 수 있다. 디바이스는 "John"이라는 고유명사는 표준어 및 방언에서 동일하게 사용되므로, "John"을 공통 단어로 식별할 수 있다.
디바이스는 식별된 공통 단어인 "John"을 소정의 키워드인 "PER"로 대체할 수 있다. 그 결과, 디바이스는 "Aye PER, it's pure dreich today."라는 문장(335)을 획득할 수 있다. 디바이스는 방언 및 표준어에서 동일하게 사용되는 공통 단어들을 소정의 키워드로 대체함으로써, 공통 단어들에 대한 불필요한 번역을 생략할 수 있다.
한편, 디바이스가 식별된 공통 단어인 "John"을 소정의 키워드인 "PER"로 대체할 때, 디바이스는 소정의 키워드인 "PER", 공통 단어인 "John" 및 방언 단어가 포함된 문장(310)에서 공통 단어의 위치인 "position 2"를 매핑하는 정보(340)를 저장할 수 있다. "PER"은 공통 단어의 종류에 대응되는 소정의 키워드를 의미하고, "John"은 공통 단어를 의미하며, "position 2"는 공통 단어가 문장에서 두 번째에 위치하는 것을 의미할 수 있다.
디바이스는 문장(335)을 시퀀스 투 시퀀스 컨버터(350)를 이용하여 "Yes PER, it is cloudy today."라는 문장(355)으로 변환할 수 있다. 변환된 문장(355)는 방언 단어가 포함된 문장(310)에 포함되는 방언 단어들에 대응되는 표준어 단어들 및 소정의 키워드인 "PER"을 포함하는 문장일 수 있다.
디바이스는 NER 대체(360)를 통해 변환된 문장(355)에 포함되는 소정의 키워드 "PER"을 공통 단어 "John"으로 다시 변환함으로써, 표준어 문장(370)인 "Yes John, it is cloudy toady."를 획득할 수 있다. 디바이스가 변환된 문장(355)에 포함되는 소정의 키워드 "PER"을 공통 단어 "John"으로 다시 변환하는 과정에서, 이전 단계에서 저장된 매핑 정보(340)가 이용될 수 있다.
앞서 언급한 방언 감지기, 개체명 인식기 및 시퀀스 투 시퀀스 컨버터는 디바이스에 포함되는 기능적인 블록 구성들일 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.
도 4는 일부 실시예에 따른 소스 문장을 전 처리하는 방법의 흐름도이다.
도 4를 참조하면, 단계 410에서, 디바이스는 소스 문장(source sentence)을 획득할 수 있다. 소스 문장이란 번역될 문장으로서, 번역 과정에서 입력되는 문장을 의미할 수 있다. 예를 들어, 소정의 언어에 대한 방언을 표준어로 변환하는 과정에서 소스 문장은 방언 문장일 수 있다. 소스 문장은 번역의 목적이 되는 문장인 타겟 문장(target sentence)과 구별된다. 앞선 예에서, 타겟 문장은 표준어 문장일 수 있다.
단계 420에서, 디바이스는 획득된 소스 문장을 정규화(text normalization)할 수 있다. 정규화는 소스 문장에 포함되는 텍스트를 단일 원형(single canonical form)으로 변환하는 것을 의미할 수 있다. 예를 들어, 디바이스는 소스 문장에 포함되는 "don't"를 정규화하여 "do not"으로 변환할 수 있다. 디바이스는 소스 문장을 정규화함으로써, 번역 매핑 테이블에 소스 문장을 학습시키기 위한 준비 또는 시퀀스 투 시퀀스 변환을 하기 위한 준비를 할 수 있다.
단계 430에서, 디바이스는 개체명 인식기(NER)를 이용하여 공통 단어들을 소정의 키워드로 대체할 수 있다. 개체명 인식기는 앞서 설명한 바와 같이, 문장에서 방언 및 표준어에서 동일하게 사용되는 공통 단어를 식별하고, 식별된 공통 단어를 소정의 키워드로 대체하는 기능적인 블록 구성일 수 있다.
디바이스는 소스 문장에서 방언 및 표준어에서 동일하게 사용되는 적어도 하나의 공통 단어를 식별하고, 식별된 적어도 하나의 공통 단어를 소정의 키워드로 대체할 수 있다. 도 4의 단계 430은 도 2의 220 단계 및 230 단계와 동일할 수 있으므로, 중복되는 설명은 생략한다.
단계 440에서, 디바이스는 방언의 종류를 판단할 수 있다. 디바이스는 소스 문장에 포함된 단어들 중 적어도 하나의 방언 단어를 식별하고, 식별된 적어도 하나의 방언 단어에 기초하여 방언의 종류를 판단할 수 있다.
디바이스는 방언 단어를 구성하는 문자들의 배열에 기초하여 소정의 언어에 대한 복수 개의 방언들 중 가장 가능성 있는 방언의 종류를 결정할 수 있다. 디바이스는 방언 단어가 복수 개의 방언들에 해당될 확률을 각각 계산하고, 가장 높은 확률을 갖는 방언을 방언 단어에 대응되는 방언의 종류로 결정할 수 있다.
단계 450에서, 디바이스는 문장을 대응되는 방언 모델로 포워딩할 수 있다. 복수 개의 방언들 각각에 대한 언어 모델들이 구축되어 있을 수 있다. 디바이스는 단계 440에서 결정된 방언의 종류에 대응되는 방언 모델로 문장을 포워딩할 수 있다.
디바이스는 앞선 단계들을 수행함으로써, 소스 문장에 대한 전 처리(preprocessing)를 수행할 수 있다. 디바이스는 소스 문장에 대한 전 처리를 통해 번역 매핑 테이블에 소스 문장을 학습시키기 위한 준비 또는 시퀀스 투 시퀀스 변환(표준어-방언 변환)을 하기 위한 준비를 할 수 있다.
도 5는 일부 실시예에 따른 표준어-방언 매핑 테이블(렉시콘)을 생성하는 방법의 세부 흐름도이다.
도 5를 참조하면, 단계 505에서, 디바이스는 표준어 단어들의 집합(표준어 코퍼스)를 획득할 수 있다. 또한, 단계 510에서, 디바이스는 방언 단어들의 집합(방언 코퍼스)를 획득할 수 있다. 코퍼스는 기계 번역의 대상이 되는 언어의 표본을 추출한 집합을 의미할 수 있다.
단계 520에서, 디바이스는 표준어 단어들의 집합 및 방언 단어들의 집합을 결합할 수 있다. 표준어 및 방언은 서로 다른 언어들과는 달리, 동일한 자모를 사용하는 등 서로 간에 상당한 유사성을 가진다. 예를 들어, 디바이스는 표준어 단어들의 집합 및 방언 단어들의 집합에서 표준어 및 방언에서 동일하게 사용되는 공통 단어들을 추출할 수 있다.
디바이스는 추출된 공통 단어들과 표준어 단어들의 집합 및 방언 단어들의 집합에 포함되는 단어들 간의 관계에 기초하여 단일 코퍼스를 생성할 수 있다. 디바이스는 표준어 및 방언에서 동일하게 사용되는 공통 단어들을 중심으로 표준어 단어들의 집합 및 방언 단어들의 집합을 결합하여 하나의 공통된 집합을 획득할 수 있다.
단계 530에서, 디바이스는 표준어 단어들의 집합 및 방언 단어들의 집합에 포함되는 단어들에 대해 대응되는 벡터 값들을 할당할 수 있다. 표준어 단어들의 집합 및 방언 단어들의 집합은 하나의 공통된 집합으로 결합되므로, 표준어 단어들의 집합 및 방언 단어들의 집합에 포함되는 단어들에 대응되는 벡터 값들은 동일한 초고차원 공간 상에 투영될 수 있다. 벡터 값은 표준어 단어들의 집합 및 방언 단어들의 집합에 포함되는 단어들 각각의 정보를 n차원(n은 임의의 자연수) 실수 벡터로 표현한 것을 의미할 수 있다.
단어들 각각의 정보에는 단어, 구문, 어순 등의 정보 및 문맥 정보가 포함될 수 있다. 또한, 단어들 각각의 정보에는 해당 단어에 대한 정보뿐만 아니라 해당 단어의 동의어, 유사어, 반의어, 대응되는 표준어 단어 및/또는 대응되는 방언 단어에 대한 정보가 포함될 수 있다.
단어들에 대해 대응되는 벡터 값들을 할당하는 과정은 인공 신경망을 이용한 비교사 학습(unsupervised learning)을 통해 수행될 수 있다. 비교사 학습이란 교사 신호(정답)의 입력을 필요로 하지 않는 기계 학습을 의미할 수 있다.
또한, 디바이스는 n-gram 방식을 이용하여 표준어 단어들의 집합 및 방언 단어들의 집합에 포함되는 단어들에 대해 대응되는 벡터 값들을 할당할 수 있다. 예를 들어, 디바이스는 n개 단어의 연쇄를 확률적으로 표현함으로써, 표준어 단어들의 집합 및 방언 단어들의 집합에 포함되는 단어들에 대해 대응되는 벡터 값들을 할당할 수 있다.
단계 540에서, 디바이스는 표준어 단어들에 대응되는 벡터 값들 및 방언 단어들에 대응되는 벡터 값들을 매칭할 수 있다. 디바이스는 단계 530에서 표준어 단어들의 집합 및 방언 단어들의 집합에 포함되는 단어들에 대해 할당된 벡터 값들을 단어들간의 관계에 기초하여 매칭할 수 있다. 예를 들어, 특정 방언 단어는 대응되는 표준어 단어와 매칭될 수 있으며, 특정 방언 단어의 동의어, 유사어, 반의어 등과도 매칭될 수 있다.
단계 550에서, 디바이스는 표준어-방언 매핑 테이블을 생성할 수 있다. 표준어-방언 매핑 테이블은 도 2를 참조하여 설명한 번역 매핑 테이블일 수 있다. 도 5를 참조하여 설명된 단계들에 의해 생성된 표준어-방언 매핑 테이블은 방언을 표준어로 변환하는 과정에서 방언 문장에 포함되는 단어들에 대응되는 하나 이상의 벡터 값들을 획득하기 위해 이용될 수 있다.
앞선 설명에서는 편의를 위해 디바이스가 표준어-방언 매핑 테이블을 생성하는 경우에 대해 설명하였으나, 서버 또는 다른 디바이스가 표준어-방언 매핑 테이블을 생성하고, 디바이스가 서버 또는 다른 디바이스에 의해 생성된 번역 매핑 테이블을 수신하거나 이용할 수 있음은 당업자에게 자명할 것이다.
도 6은 일부 실시예에 따른 시퀀스 투 시퀀스 컨버터를 학습시키는 방법의 흐름도이다.
도 6을 참조하면, 단계 605에서, 디바이스는 표준어 참조 문장(standard ref. sentence)을 획득할 수 있다. 또한, 단계 610에서, 디바이스는 방언 참조 문장(dialect ref. sentence)를 획득할 수 있다. 참조 문장이란 인공 신경망을 이용한 기계 번역 과정에서 시퀀스 투 시퀀스 컨버터를 학습시키기 위해 입력되는 문장을 의미할 수 있다.
단계 615에서, 디바이스는 번역 매핑 테이블로부터 표준어 참조 문장에 포함되는 단어들에 대응되는 벡터 값들을 검색할 수 있다. 단계 620에서, 디바이스는 번역 매핑 테이블로부터 방언 참조 문장에 포함되는 단어들에 대응되는 벡터 값들을 검색할 수 있다. 단계 615 및 단계 620의 번역 매핑 테이블은 도 2를 참조하여 설명한 번역 매핑 테이블과 동일하므로, 중복되는 설명은 생략한다.
단계 625에서, 디바이스는 표준어 참조 문장에 포함되는 어휘 밖 단어(OOV, Out Of Vocabulary)에 대한 벡터 값들을 획득할 수 있다. 또한, 단계 630에서, 디바이스는 방언 참조 문장에 포함되는 어휘 밖 단어에 대한 벡터 값들을 획득할 수 있다. 어휘 밖 단어란 기 생성된 번역 매핑 테이블에 포함되지 않는 단어를 의미할 수 있다.
디바이스는 n-gram 방식을 이용하여 어휘 밖 단어들에 대해 대응되는 벡터 값들을 할당할 수 있다. 디바이스는 번역 매핑 테이블에 포함되지 않는 단어를 구성하는 문자들의 배열 및 해당 단어와 유사한 문자들의 배열을 갖는 단어들에 대응되는 벡터 값들에 기초하여 해당 단어에 대응되는 벡터 값을 예측할 수 있다. 예를 들어, 디바이스는 n개 단어의 연쇄를 확률적으로 표현함으로써, 어휘 밖 단어들에 대해 대응되는 벡터 값들을 할당할 수 있다.
디바이스는 단계 615 및 단계 625를 통해 표준어 참조 문장 및 방언 참조 문장에 포함되는 모든 단어들에 대해 대응되는 벡터 값들을 획득할 수 있다.
단계 640에서, 디바이스는 LSTM 알고리즘을 이용하여 시퀀스 투 시퀀스 컨버터를 학습시킬 수 있다. 디바이스는 표준어 참조 문장에 대응되는 벡터 값들의 배열 및 방언 참조 문장에 대응되는 벡터 값들의 배열 간의 관계를 인공 신경망을 통해 학습시킬 수 있다. 디바이스는 수많은 입력 문장과 출력 문장의 쌍을 인공 신경망에 입력함으로써, 소스 문장이 입력되었을 때 타겟 문장이 출력되기 위한 최적의 가중치를 도출할 수 있다. 앞서 설명한 과정을 통해 학습된 시퀀스 투 시퀀스는 도 2 및 도 3을 참조하여 설명한 번역 과정에서 이용될 수 있다.
앞선 설명에서는 편의를 위해 디바이스가 시퀀스 투 시퀀스 컨버터를 학습시키는 경우에 대해 설명하였으나, 서버 또는 다른 디바이스가 시퀀스 투 시퀀스 컨버터를 학습시키고, 디바이스가 서버 또는 다른 디바이스에 의해 학습된 시퀀스 투 시퀀스 컨버터를 이용할 수 있음은 당업자에게 자명할 것이다.
도 7은 일부 실시예에 따른 번역을 수행하는 기기의 구성을 나타내는 블록도이다.
도 7에 도시된 디바이스(700)는 도 2 내지 도 6에 도시된 방법들을 시계열적으로 처리할 수 있다. 따라서, 이하에서 생략된 내용이라고 하더라도 도 2 내지 도 6의 방법들에 관하여 이상에서 기술된 내용은 도 7의 디바이스(700)에 의해 수행될 수 있음을 알 수 있다.
도 7에 도시된 바와 같이, 일부 실시예에 따른 디바이스(700)는 프로세서(710) 및 메모리(720)를 포함할 수 있다. 그러나, 도 7에 도시된 구성 요소 모두가 디바이스(700)의 필수 구성 요소인 것은 아니다. 도 7에 도시된 구성 요소보다 많은 구성 요소에 의해 디바이스(700)가 구현될 수도 있고, 도 7에 도시된 구성 요소보다 적은 구성 요소에 의해 디바이스(700)가 구현될 수도 있다.
예를 들어, 디바이스(700)는 프로세서(710) 및 메모리(720) 이외에 사용자 입력부(미도시) 및 디스플레이부(미도시)를 더 포함할 수 있다. 디바이스(700)는 사용자 입력부(미도시)를 통해 방언 단어가 포함된 문장을 사용자로부터 입력 받을 수 있고, 입력 받은 문장을 표준어 문장으로 변환할 수 있다. 또한, 디바이스(700)는 변환된 표준어 문장을 디스플레이부(미도시)를 통해 화면에 디스플레이할 수 있다.
또한, 디바이스(700)는 가전 제품, 모바일 컴퓨팅 디바이스 및 서버 중 적어도 하나에 포함되거나, 가전 제품, 모바일 컴퓨팅 디바이스 및 서버 중 적어도 하나에 유, 무선으로 연결되도록 구현될 수 있다.
프로세서(710)는 하나 또는 복수 개의 프로세서에 의하여 구현될 수 있다. 예를 들어, 프로세서(710)는 다수의 논리 게이트들의 어레이로 구현될 수 있고, 범용적인 마이크로 프로세서와 마이크로 프로세서에서 실행될 수 있는 프로그램이 저장된 메모리의 조합으로 구현될 수도 있다.
프로세서(710)는 디바이스(700)를 제어하기 위한 전반적인 역할을 수행할 수 있다. 예를 들어, 프로세서(710)는 디바이스(700) 내의 메모리(720)에 저장된 프로그램들을 실행함으로써, 디바이스(700)를 전반적으로 제어할 수 있다. 또한, 프로세서(710)는 메모리(720)에 저장된 프로그램들을 실행함으로써, 도 2 내지 도 6에 기재된 디바이스(700)의 기능을 수행할 수 있다.
구체적으로, 프로세서(710)는 방언 단어가 포함된 문장을 획득할 수 있다. 프로세서(710)는 방언 단어가 포함된 문장을 외부로부터 입력받을 수 있다. 또한, 프로세서(710)는 디바이스(700)에 저장되어 있거나 디바이스(700)에 의해 생성된 데이터에 포함되는 텍스트로부터 방언 단어가 포함된 문장을 추출할 수도 있다.
프로세서(710)는 방언 단어가 포함된 문장의 방언을 감지할 수 있다. 예를 들어, 프로세서(710)는 문장을 입력 받고, 입력 받은 문장에 포함된 단어들 중 적어도 하나의 방언 단어를 식별할 수 있다. 또한, 프로세서(710)는 식별된 적어도 하나의 방언 단어에 기초하여 방언의 종류를 판단할 수 있다.
프로세서(710)는 방언 단어를 구성하는 문자들의 배열에 기초하여 소정의 언어에 대한 복수 개의 방언들 중 가장 가능성 있는 방언의 종류를 결정할 수 있다. 프로세서(710)는 방언 단어가 복수 개의 방언들에 해당될 확률을 각각 계산하고, 가장 높은 확률을 갖는 방언을 방언 단어에 대응되는 방언의 종류로 결정할 수 있다.
프로세서(710)는 방언 단어가 포함된 문장에서 방언 및 표준어에서 동일하게 사용되는 적어도 하나의 공통 단어를 식별할 수 있다. 프로세서(710)는 방언 단어가 포함된 문장에서 적어도 하나의 공통 단어를 식별하고, 식별된 적어도 하나의 공통 단어의 종류를 결정할 수 있다.
프로세서(710)는 식별된 적어도 하나의 공통 단어를 소정의 키워드로 대체할 수 있다. 예를 들어, 프로세서(710)는 모든 고유명사들을 "PER"로 대체할 수 있다. 또한, 프로세서(710)는 모든 기관들은 "ORG"로 대체하고, 모든 숫자들은 "NUM"으로 대체하며, 모든 날짜들을 "DATE"로 대체할 수 있다. "PER", "TIME", "DATE" 및 "ORG"와 같은 소정의 키워드들은 예시에 불과하며, 이에 제한되지 않는다.
한편, 프로세서(710)는 소정의 키워드, 적어도 하나의 공통 단어 및 방언 단어가 포함된 문장에서 적어도 하나의 공통 단어의 위치를 매핑하는 정보를 메모리(720)에 저장할 수 있다.
프로세서(710)는 소정의 키워드 및 문장에 포함되는 나머지 단어들 각각과 대응되는 하나 이상의 벡터 값들을 획득할 수 있다. 프로세서(710)는 소정의 키워드에 대해 기 설정된 벡터 값을 획득할 수 있고, 기 설정된 벡터 값에 기초하여 나머지 단어들에 대응되는 벡터 값들을 획득할 수 있다.
또한, 프로세서(710)는 소정의 키워드 및 문장에 포함되는 나머지 단어들이 번역 매핑 테이블에 포함되는지 여부를 판단하고, 소정의 키워드 및 문장에 포함되는 나머지 단어들 중 제 1 단어가 번역 매핑 테이블에 포함되는 경우, 번역 매핑 테이블로부터 제 1 단어에 대응되는 벡터 값을 획득할 수 있다.
한편, 프로세서(710)는 소정의 키워드 및 문장에 포함되는 나머지 단어들 중 제 2 단어가 번역 매핑 테이블에 포함되지 않는 경우, 제 2 단어를 구성하는 문자들의 배열에 기초하여 제 2 단어에 대응되는 벡터 값을 예측할 수 있다.
프로세서(710)는 대표적인 확률적 언어 모델 중 하나인 n-gram 방식을 이용하여 단어에 대응되는 벡터 값을 획득할 수 있다. 프로세서(710)는 n개 단어의 연쇄를 확률적으로 표현함으로써, 번역 매핑 테이블에 저장되어 있지 않은 단어에 대한 정보를 추측할 수 있다.
프로세서(710)는 획득된 하나 이상의 벡터 값들의 배열에 기초하여 표준어 문장을 획득할 수 있다. 프로세서(710)는 방언 문장을 나타내는 벡터 값들의 배열을 대응되는 표준어 문장을 나타내는 벡터 값들의 배열로 변환하기 위해, 시퀀스 투 시퀀스 변환을 이용할 수 있다.
프로세서(710)는 소정의 키워드 및 문장에 포함되는 나머지 단어들 각각과 대응되는 하나 이상의 벡터 값들을 획득하고, 획득된 하나 이상의 벡터 값들의 배열에 기초하여, 나머지 단어들에 대응되는 표준어 단어들 및 소정의 키워드를 포함하는 변환된 문장을 획득할 수 있다. 또한, 프로세서(710)는 변환된 문장에 포함되는 소정의 키워드를 적어도 하나의 공통 단어로 다시 변환함으로써, 완전한 표준어 문장을 획득할 수 있다.
프로세서(710)가 변환된 문장에 포함되는 소정의 키워드를 적어도 하나의 공통 단어로 다시 변환하는 과정에서, 메모리(720)에 저장된, 소정의 키워드, 적어도 하나의 공통 단어 및 방언 단어가 포함된 문장에서 적어도 하나의 공통 단어의 위치를 매핑하는 정보가 이용될 수 있다.
한편, 프로세서(710)는 표준어 단어들의 집합 및 방언 단어들의 집합을 획득할 수 있다. 프로세서(710)는 표준어 단어들의 집합 및 방언 단어들의 집합에서 표준어 및 방언에서 동일하게 사용되는 공통 단어들을 추출하고, 추출된 공통 단어들에 대해 제 1 벡터 값을 할당할 수 있다.
프로세서(710)는 할당된 제 1 벡터 값 및 표준어 단어들의 집합에 포함되는 단어들 각각을 구성하는 문자들의 배열에 기초하여 표준어 단어들의 집합에 포함되는 단어들 각각에 대응되는 제 2 벡터 값들을 할당할 수 있다. 또한, 프로세서(710)는 할당된 제 1 벡터 값 및 방언 단어들의 집합에 포함되는 단어들 각각을 구성하는 문자들의 배열에 기초하여 방언 단어들의 집합에 포함되는 단어들 각각에 대응되는 제 3 벡터 값들을 할당할 수 있다.
프로세서(710)는 제 2 벡터 값들 및 제 3 벡터 값들을 매칭함으로써 번역 매핑 테이블을 생성할 수 있다. 프로세서(710)는 생성된 번역 매핑 테이블을 계속해서 학습시키고, 업데이트시킬 수 있다. 예를 들어, 프로세서(710)는 새로운 표준어 단어들의 집합 및 방언 단어들의 집합을 획득하고, 앞서 설명한 과정을 반복할 수 있다.
메모리(720)는 디바이스(700) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어이다. 예를 들어, 메모리(720)는 프로세서(710)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 디바이스(700)로 입력되거나 디바이스(700)로부터 출력되는 데이터를 저장할 수도 있다. 또한, 메모리(720)는 사용자 데이터를 저장할 수 있다. 예를 들어, 메모리 (720)는 도 5를 참조하여 설명한 방법에 따라 생성된 번역 매핑 테이블을 저장할 수 있고, 도 6을 참조하여 설명한 방법에 따라 학습된 시퀀스 투 시퀀스 컨버터의 학습 결과를 저장할 수 있다.
메모리(720)는 플래시 메모리 타입(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), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
메모리(720)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, 방언 감지기, 개체명 인식기 및 시퀀스 투 시퀀스 컨버터 등으로 분류될 수 있다.
한편, 디바이스(700)의 동작 방법은 그 방법을 실행하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체에 기록될 수 있다. 컴퓨터로 읽을 수 있는 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상에서 실시예들에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.
Claims (20)
- 소정의 언어에 대한 방언을 표준어로 변환하는 방법에 있어서,
방언 단어가 포함된 문장을 획득하는 단계;
상기 방언 단어가 포함된 문장에서 상기 방언 및 상기 표준어에서 동일하게 사용되는 적어도 하나의 공통 단어를 식별하는 단계;
상기 식별된 적어도 하나의 공통 단어를 소정의 키워드로 대체하는 단계;
상기 소정의 키워드 및 상기 문장에 포함되는 나머지 단어들 각각과 대응되는 하나 이상의 벡터 값들을 획득하는 단계; 및
상기 획득된 하나 이상의 벡터 값들의 배열에 기초하여 표준어 문장을 획득하는 단계를 포함하는 방법. - 제 1항에 있어서,
상기 하나 이상의 벡터 값들을 획득하는 단계는,
상기 소정의 키워드에 대해 기 설정된 벡터 값을 획득하는 단계; 및
상기 기 설정된 벡터 값에 기초하여 상기 나머지 단어들에 대응되는 벡터 값들을 획득하는 단계를 포함하는 방법. - 제 1항에 있어서,
상기 소정의 키워드, 상기 적어도 하나의 공통 단어 및 상기 방언 단어가 포함된 문장에서 상기 적어도 하나의 공통 단어의 위치를 매핑하는 정보를 저장하는 단계를 더 포함하는 것인, 방법. - 제 1항에 있어서,
상기 표준어 문장을 획득하는 단계는,
상기 획득된 하나 이상의 벡터 값들의 배열에 기초하여, 상기 나머지 단어들에 대응되는 표준어 단어들 및 상기 소정의 키워드를 포함하는 변환된 문장을 획득하는 단계; 및
상기 변환된 문장에 포함되는 상기 소정의 키워드를 상기 적어도 하나의 공통 단어로 다시 변환함으로써, 상기 표준어 문장을 획득하는 단계를 포함하는 것인, 방법. - 제 1항에 있어서,
상기 공통 단어들은 인명, 지명 및 기관명을 포함하는 고유명사를 포함하는 것인, 방법. - 제 1항에 있어서,
상기 방언 단어가 포함된 문장을 획득하는 단계는,
문장을 입력 받는 단계;
상기 입력 받은 문장에 포함된 단어들 중 적어도 하나의 방언 단어를 식별하는 단계; 및
상기 식별된 적어도 하나의 방언 단어에 기초하여 상기 방언의 종류를 판단하는 단계를 포함하는 방법. - 제 1항에 있어서,
상기 하나 이상의 벡터 값들을 획득하는 단계는,
상기 소정의 키워드 및 상기 문장에 포함되는 나머지 단어들이 번역 매핑 테이블에 포함되는지 여부를 판단하는 단계; 및
상기 소정의 키워드 및 상기 문장에 포함되는 나머지 단어들 중 제 1 단어가 상기 번역 매핑 테이블에 포함되는 경우, 상기 번역 매핑 테이블로부터 상기 제 1 단어에 대응되는 벡터 값을 획득하는 단계를 포함하는 방법. - 제 7항에 있어서,
상기 하나 이상의 벡터 값을 획득하는 단계는,
상기 소정의 키워드 및 상기 문장에 포함되는 나머지 단어들 중 제 2 단어가 상기 번역 매핑 테이블에 포함되지 않는 경우, 상기 제 2 단어를 구성하는 문자들의 배열에 기초하여 상기 제 2 단어에 대응되는 벡터 값을 예측하는 단계를 더 포함하는 방법. - 제 7항에 있어서,
상기 방법은,
표준어 단어들의 집합 및 방언 단어들의 집합을 획득하는 단계;
상기 표준어 단어들의 집합 및 상기 방언 단어들의 집합에서 상기 표준어 및 상기 방언에서 동일하게 사용되는 공통 단어들을 추출하는 단계;
상기 추출된 공통 단어들에 대해 제 1 벡터 값을 할당하는 단계;
상기 할당된 제 1 벡터 값 및 상기 표준어 단어들의 집합에 포함되는 단어들 각각을 구성하는 문자들의 배열에 기초하여 상기 표준어 단어들의 집합에 포함되는 단어들 각각에 대응되는 제 2 벡터 값들을 할당하는 단계;
상기 할당된 제 1 벡터 값 및 상기 방언 단어들의 집합에 포함되는 단어들 각각을 구성하는 문자들의 배열에 기초하여 상기 방언 단어들의 집합에 포함되는 단어들 각각에 대응되는 제 3 벡터 값들을 할당하는 단계; 및
상기 제 2 벡터 값들 및 상기 제 3 벡터 값들을 매칭함으로써 상기 번역 매핑 테이블을 생성하는 단계를 더 포함하는 방법. - 제 1항에 있어서,
상기 방언 단어가 포함된 문장은 상기 표준어 문장과 비교하여 단어, 단어들의 순서, 문장의 길이, 접두사 및 접미사 중 적어도 하나가 변경된 것인, 방법. - 제 1항 내지 제 10항 중 어느 한 항의 방법을 실행하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
- 적어도 하나의 프로그램이 저장된 메모리; 및
상기 적어도 하나의 프로그램을 실행함으로써 소정의 언어에 대한 방언을 표준어로 변환하는 프로세서를 포함하고,
상기 적어도 하나의 프로그램은,
방언 단어가 포함된 문장을 획득하는 단계;
상기 방언 단어가 포함된 문장에서 상기 방언 및 상기 표준어에서 동일하게 사용되는 적어도 하나의 공통 단어를 식별하는 단계;
상기 식별된 적어도 하나의 공통 단어를 소정의 키워드로 대체하는 단계;
상기 소정의 키워드 및 상기 문장에 포함되는 나머지 단어들 각각과 대응되는 하나 이상의 벡터 값들을 획득하는 단계; 및
상기 획득된 하나 이상의 벡터 값들의 배열에 기초하여 표준어 문장을 획득하는 단계를 포함하는 것인, 디바이스. - 제 12항에 있어서,
상기 하나 이상의 벡터 값들을 획득하는 단계는,
상기 소정의 키워드에 대해 기 설정된 벡터 값을 획득하는 단계; 및
상기 기 설정된 벡터 값에 기초하여 상기 나머지 단어들에 대응되는 벡터 값들을 획득하는 단계를 포함하는 것인, 디바이스. - 제 12항에 있어서,
상기 적어도 하나의 프로그램은,
상기 소정의 키워드, 상기 적어도 하나의 공통 단어 및 상기 방언 단어가 포함된 문장에서 상기 적어도 하나의 공통 단어의 위치를 매핑하는 정보를 저장하는 단계를 더 포함하는 것인, 디바이스. - 제 12항에 있어서,
상기 표준어 문장을 획득하는 단계는,
상기 획득된 하나 이상의 벡터 값들의 배열에 기초하여, 상기 나머지 단어들에 대응되는 표준어 단어들 및 상기 소정의 키워드를 포함하는 변환된 문장을 획득하는 단계; 및
상기 변환된 문장에 포함되는 상기 소정의 키워드를 상기 적어도 하나의 공통 단어로 다시 변환함으로써, 상기 표준어 문장을 획득하는 단계를 포함하는 것인, 디바이스. - 제 12항에 있어서,
상기 공통 단어들은 인명, 지명 및 기관명을 포함하는 고유명사를 포함하는 것인, 디바이스. - 제 12항에 있어서,
상기 방언 단어가 포함된 문장을 획득하는 단계는,
문장을 입력 받는 단계;
상기 입력 받은 문장에 포함된 단어들 중 적어도 하나의 방언 단어를 식별하는 단계; 및
상기 식별된 적어도 하나의 방언 단어에 기초하여 상기 방언의 종류를 판단하는 단계를 포함하는 것인, 디바이스. - 제 12항에 있어서,
상기 하나 이상의 벡터 값들을 획득하는 단계는,
상기 소정의 키워드 및 상기 문장에 포함되는 나머지 단어들이 번역 매핑 테이블에 포함되는지 여부를 판단하는 단계; 및
상기 소정의 키워드 및 상기 문장에 포함되는 나머지 단어들 중 제 1 단어가 상기 번역 매핑 테이블에 포함되는 경우, 상기 번역 매핑 테이블로부터 상기 제 1 단어에 대응되는 벡터 값을 획득하는 단계를 포함하는 것인, 디바이스. - 제 18항에 있어서,
상기 하나 이상의 벡터 값을 획득하는 단계는,
상기 소정의 키워드 및 상기 문장에 포함되는 나머지 단어들 중 제 2 단어가 상기 번역 매핑 테이블에 포함되지 않는 경우, 상기 제 2 단어를 구성하는 문자들의 배열에 기초하여 상기 제 2 단어에 대응되는 벡터 값을 예측하는 단계를 더 포함하는 것인, 디바이스. - 제 18항에 있어서,
상기 적어도 하나의 프로그램은,
표준어 단어들의 집합 및 방언 단어들의 집합을 획득하는 단계;
상기 표준어 단어들의 집합 및 상기 방언 단어들의 집합에서 상기 표준어 및 상기 방언에서 동일하게 사용되는 공통 단어들을 추출하는 단계;
상기 추출된 공통 단어들에 대해 제 1 벡터 값을 할당하는 단계;
상기 할당된 제 1 벡터 값 및 상기 표준어 단어들의 집합에 포함되는 단어들 각각을 구성하는 문자들의 배열에 기초하여 상기 표준어 단어들의 집합에 포함되는 단어들 각각에 대응되는 제 2 벡터 값들을 할당하는 단계;
상기 할당된 제 1 벡터 값 및 상기 방언 단어들의 집합에 포함되는 단어들 각각을 구성하는 문자들의 배열에 기초하여 상기 방언 단어들의 집합에 포함되는 단어들 각각에 대응되는 제 3 벡터 값들을 할당하는 단계; 및
상기 제 2 벡터 값들 및 상기 제 3 벡터 값들을 매칭함으로써 상기 번역 매핑 테이블을 생성하는 단계를 더 포함하는 것인, 디바이스.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170046930A KR102329127B1 (ko) | 2017-04-11 | 2017-04-11 | 방언을 표준어로 변환하는 방법 및 장치 |
US15/940,361 US10796105B2 (en) | 2017-04-11 | 2018-03-29 | Device and method for converting dialect into standard language |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170046930A KR102329127B1 (ko) | 2017-04-11 | 2017-04-11 | 방언을 표준어로 변환하는 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180114781A true KR20180114781A (ko) | 2018-10-19 |
KR102329127B1 KR102329127B1 (ko) | 2021-11-22 |
Family
ID=63711716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170046930A KR102329127B1 (ko) | 2017-04-11 | 2017-04-11 | 방언을 표준어로 변환하는 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10796105B2 (ko) |
KR (1) | KR102329127B1 (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190101330A (ko) * | 2019-08-12 | 2019-08-30 | 엘지전자 주식회사 | 음성 처리 장치 및 음성 처리 방법 |
KR20200007983A (ko) | 2020-01-03 | 2020-01-22 | 엘지전자 주식회사 | 지역적 특징 기반의 음성인식 방법 및 시스템 |
WO2019172734A3 (ko) * | 2019-05-30 | 2020-04-16 | 엘지전자 주식회사 | 데이터 마이닝 장치, 이를 이용하는 음성인식 방법 및 시스템 |
KR102647510B1 (ko) * | 2023-08-03 | 2024-03-15 | 주식회사 액션파워 | 초차원 컴퓨팅을 이용하여 텍스트를 분할하는 방법 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6897168B2 (ja) * | 2017-03-06 | 2021-06-30 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置及び情報処理プログラム |
CN107368476B (zh) * | 2017-07-25 | 2020-11-03 | 深圳市腾讯计算机系统有限公司 | 一种翻译的方法、目标信息确定的方法及相关装置 |
US11195513B2 (en) * | 2017-09-27 | 2021-12-07 | International Business Machines Corporation | Generating phonemes of loan words using two converters |
US10810382B2 (en) * | 2018-10-09 | 2020-10-20 | Disney Enterprises, Inc. | Automated conversion of vocabulary and narrative tone |
US11200378B2 (en) * | 2018-10-11 | 2021-12-14 | International Business Machines Corporation | Methods and systems for processing language with standardization of source data |
CN109088995B (zh) * | 2018-10-17 | 2020-11-13 | 永德利硅橡胶科技(深圳)有限公司 | 支持全球语言翻译的方法及手机 |
CN109582971B (zh) * | 2018-12-20 | 2022-11-25 | 广东小天才科技有限公司 | 一种基于句法分析的批改方法及批改系统 |
US11727245B2 (en) * | 2019-01-15 | 2023-08-15 | Fmr Llc | Automated masking of confidential information in unstructured computer text using artificial intelligence |
AU2020272235A1 (en) * | 2019-04-12 | 2021-11-04 | Incyzr Pty. Ltd. | Methods, systems and computer program products for implementing neural network based optimization of database search functionality |
CN112926334A (zh) * | 2019-12-06 | 2021-06-08 | 北京三星通信技术研究有限公司 | 确定词表示向量的方法、装置及电子设备 |
CN113302683B (zh) * | 2019-12-24 | 2023-08-04 | 深圳市优必选科技股份有限公司 | 多音字预测方法及消歧方法、装置、设备及计算机可读存储介质 |
JP2021111255A (ja) * | 2020-01-15 | 2021-08-02 | 株式会社リテラ | 情報処理システム |
CN111738024B (zh) * | 2020-07-29 | 2023-10-27 | 腾讯科技(深圳)有限公司 | 实体名词标注方法和装置、计算设备和可读存储介质 |
CN112183072B (zh) * | 2020-10-16 | 2023-07-21 | 北京奇艺世纪科技有限公司 | 一种文本纠错方法、装置、电子设备及可读存储介质 |
US20220293098A1 (en) * | 2021-03-15 | 2022-09-15 | Lenovo (Singapore) Pte. Ltd. | Dialect correction and training |
WO2022256026A1 (en) * | 2021-06-04 | 2022-12-08 | Google Llc | Systems and methods for generating phonetic spelling variations |
CN113591497A (zh) * | 2021-07-29 | 2021-11-02 | 内蒙古工业大学 | 一种基于词素媒介的蒙汉机器翻译方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010107982A (ja) * | 2008-10-31 | 2010-05-13 | Qinghua Univ | コンピュータによる複数の方言を背景とする共通語音声認識のモデリング方法及びシステム |
WO2010125736A1 (ja) * | 2009-04-30 | 2010-11-04 | 日本電気株式会社 | 言語モデル作成装置、言語モデル作成方法、およびコンピュータ読み取り可能な記録媒体 |
JP2015072630A (ja) * | 2013-10-03 | 2015-04-16 | 富士通株式会社 | 文字列検索プログラム、文字列検索方法及び文字列検索装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6848080B1 (en) * | 1999-11-05 | 2005-01-25 | Microsoft Corporation | Language input architecture for converting one text form to another text form with tolerance to spelling, typographical, and conversion errors |
US8204182B2 (en) | 2006-12-19 | 2012-06-19 | Nuance Communications, Inc. | Dialect translator for a speech application environment extended for interactive text exchanges |
US20080177528A1 (en) | 2007-01-18 | 2008-07-24 | William Drewes | Method of enabling any-directional translation of selected languages |
WO2010046782A2 (en) | 2008-10-24 | 2010-04-29 | App Tek | Hybrid machine translation |
US8478581B2 (en) * | 2010-01-25 | 2013-07-02 | Chung-ching Chen | Interlingua, interlingua engine, and interlingua machine translation system |
WO2013102052A1 (en) * | 2011-12-28 | 2013-07-04 | Bloomberg Finance L.P. | System and method for interactive automatic translation |
US10229674B2 (en) * | 2015-05-15 | 2019-03-12 | Microsoft Technology Licensing, Llc | Cross-language speech recognition and translation |
US9697824B1 (en) * | 2015-12-30 | 2017-07-04 | Thunder Power New Energy Vehicle Development Company Limited | Voice control system with dialect recognition |
WO2017130434A1 (ja) * | 2016-01-28 | 2017-08-03 | 楽天株式会社 | 多言語の固有表現認識モデルの転移を行うコンピュータシステム、方法、およびプログラム |
US9990916B2 (en) * | 2016-04-26 | 2018-06-05 | Adobe Systems Incorporated | Method to synthesize personalized phonetic transcription |
-
2017
- 2017-04-11 KR KR1020170046930A patent/KR102329127B1/ko active IP Right Grant
-
2018
- 2018-03-29 US US15/940,361 patent/US10796105B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010107982A (ja) * | 2008-10-31 | 2010-05-13 | Qinghua Univ | コンピュータによる複数の方言を背景とする共通語音声認識のモデリング方法及びシステム |
US8712773B2 (en) * | 2008-10-31 | 2014-04-29 | Sony Computer Entertainment Inc. | Method and system for modeling a common-language speech recognition, by a computer, under the influence of a plurality of dialects |
WO2010125736A1 (ja) * | 2009-04-30 | 2010-11-04 | 日本電気株式会社 | 言語モデル作成装置、言語モデル作成方法、およびコンピュータ読み取り可能な記録媒体 |
JP2015072630A (ja) * | 2013-10-03 | 2015-04-16 | 富士通株式会社 | 文字列検索プログラム、文字列検索方法及び文字列検索装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019172734A3 (ko) * | 2019-05-30 | 2020-04-16 | 엘지전자 주식회사 | 데이터 마이닝 장치, 이를 이용하는 음성인식 방법 및 시스템 |
US11495234B2 (en) | 2019-05-30 | 2022-11-08 | Lg Electronics Inc. | Data mining apparatus, method and system for speech recognition using the same |
KR20190101330A (ko) * | 2019-08-12 | 2019-08-30 | 엘지전자 주식회사 | 음성 처리 장치 및 음성 처리 방법 |
KR20200007983A (ko) | 2020-01-03 | 2020-01-22 | 엘지전자 주식회사 | 지역적 특징 기반의 음성인식 방법 및 시스템 |
US11488587B2 (en) | 2020-01-03 | 2022-11-01 | Lg Electronics Inc. | Regional features based speech recognition method and system |
KR102647510B1 (ko) * | 2023-08-03 | 2024-03-15 | 주식회사 액션파워 | 초차원 컴퓨팅을 이용하여 텍스트를 분할하는 방법 |
Also Published As
Publication number | Publication date |
---|---|
US10796105B2 (en) | 2020-10-06 |
KR102329127B1 (ko) | 2021-11-22 |
US20180293228A1 (en) | 2018-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10796105B2 (en) | Device and method for converting dialect into standard language | |
KR102542914B1 (ko) | 다중언어 번역 장치 및 다중언어 번역 방법 | |
Obeid et al. | CAMeL tools: An open source python toolkit for Arabic natural language processing | |
Kim et al. | Two-stage multi-intent detection for spoken language understanding | |
CN107729313B (zh) | 基于深度神经网络的多音字读音的判别方法和装置 | |
CN108124477B (zh) | 基于伪数据改进分词器以处理自然语言 | |
Sitaram et al. | Speech synthesis of code-mixed text | |
Adel et al. | Features for factored language models for code-Switching speech. | |
Antony et al. | Machine transliteration for indian languages: A literature survey | |
Alam et al. | A review of bangla natural language processing tasks and the utility of transformer models | |
US11893344B2 (en) | Morpheme analysis learning device, morpheme analysis device, method, and program | |
Rajendran et al. | A robust syllable centric pronunciation model for Tamil text to speech synthesizer | |
Muhamad et al. | Proposal: A hybrid dictionary modelling approach for malay tweet normalization | |
CN114444492B (zh) | 一种非标准词类判别方法及计算机可读存储介质 | |
Papadopoulos et al. | Team ELISA System for DARPA LORELEI Speech Evaluation 2016. | |
CN115114924A (zh) | 命名实体识别方法、装置、计算设备和存储介质 | |
Sreeram et al. | A Novel Approach for Effective Recognition of the Code-Switched Data on Monolingual Language Model. | |
Núñez et al. | Phonetic normalization for machine translation of user generated content | |
Behera | Odia parts of speech tagging corpora: suitability of statistical models | |
CN114067783A (zh) | 语音识别方法、语音识别装置、存储介质及电子设备 | |
Wegari et al. | Parts of speech tagging for Afaan Oromo | |
CN113362809A (zh) | 语音识别方法、装置和电子设备 | |
Babhulgaonkar et al. | Experimenting with factored language model and generalized back-off for Hindi | |
Antony et al. | Statistical method for English to Kannada transliteration | |
Lyes et al. | Building a pronunciation dictionary for the Kabyle language |
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 |