KR20120129906A - 합성어 분할 - Google Patents

합성어 분할 Download PDF

Info

Publication number
KR20120129906A
KR20120129906A KR1020127021122A KR20127021122A KR20120129906A KR 20120129906 A KR20120129906 A KR 20120129906A KR 1020127021122 A KR1020127021122 A KR 1020127021122A KR 20127021122 A KR20127021122 A KR 20127021122A KR 20120129906 A KR20120129906 A KR 20120129906A
Authority
KR
South Korea
Prior art keywords
word
words
token
compound
language
Prior art date
Application number
KR1020127021122A
Other languages
English (en)
Other versions
KR101744861B1 (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 구글 인코포레이티드
Publication of KR20120129906A publication Critical patent/KR20120129906A/ko
Application granted granted Critical
Publication of KR101744861B1 publication Critical patent/KR101744861B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/268Morphological analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/42Data-driven translation
    • G06F40/49Data-driven translation using very large corpora, e.g. the web

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Machine Translation (AREA)

Abstract

본 발명은 합성어들을 분해하기 위하여 컴퓨터 저장 매체 상에서 부호화된 컴퓨터 프로그램들을 포함하는 방법, 시스템 및 장치를 개시한다. 일 측면에서, 방법은 일련의 글자들을 포함하는 토큰을 획득하는 단계, 상기 토큰의 구성요소인 후보 서브-단어들, 상기 서브 단어들을 토큰으로 변형하도록 요구되는 하나 이상의 형태학적 동작들을 식별하는 단계로서, 적어도 하나의 상기 형태학적 동작들은 비-사전 단어의 사용을 포함하는 상기 식별하는 단계, 및 각각의 서브-단어와 관련된 코스트 및 각각의 형태학적 동작들과 관련된 코스트를 결정하는 단계를 포함한다.

Description

합성어 분할{COMPOUND SPLITTING}
본 명세서는 일반적으로 분해(decompounding)에 관한 것이다.
영어, 독일어 및 스웨덴어와 같이 다수의 언어들이 어휘량을 증가시키기 위해 합성어(compound word)들을 이용하고, 여기서 합성어는 의미의 단일 단위로서, 또는 둘 이상의 구성성분들, 부분들 또는 형태소들을 포함하는 어휘소로서 기능하는, 둘 이상의 단어들의 결합이다. 일부 언어들에 있어서, 구성성분 어휘소들(또는 "구성성분들", 또는 "서브-단어들(sub-words)"))로부터 합성어를 생성하는 것은 하나 이상의 형태학적 동작들(morphological operations)을 요구한다.
합성어 분할(또는 "분해")은 합성어를 그에 상응하는 구성성분들로 분할하는 프로세스를 말한다. 그 언어에 친숙한 사람은 대개 합성어를 인식할 수 있고, 그 합성어를 구성성분들로 분할할 수 있는 반면, 기계로 하여금 이러한 구성요소들을 변형하는 형태학적 동작들과 동일한 과제들을 수행하도록 하는 것은 훨씬 더 어려운 일이다.
기계 번역을 수행할 때, 구절-기반의 통계학적 프로세스는 구절 테이블(phrase table)을 이용하여 소스(source) 및 대상(target) 구절들을 정렬하는데 이용될 수 있다. 그 구절 테이블은 그 기계가 소스 및 대상 구절들을 정렬하는 데 사용할 수 있는 다국어 정보(multilingual information)를 저장한다. 그 언어들 중 한 언어가 단어들을 합성하는 능력을 갖고 그 외 언어들은 그렇지 않은 경우, 소스 및 대상 구절들의 정렬은 어렵거나 불가능할 수 있다.
합성어 분할은 소스 및 대상 구절들 사이에서 향상된 대응관계를 얻을 수 있고, 그로 인해 기계 번역의 품질을 향상시킬 수 있다. 본 명세서에서 설명된 주요 문제 중 하나의 혁신적 측면에 따라, 기계는 합성어를 그것의 구성성분들로 분해하고, 각각의 구성성분들을 소스 언어로부터 대상 언어로 번역한다.
일반적으로, 본 명세서에서 설명되는 주요 사안 중 또 다른 혁신적인 측면은 이하의 동작들을 포함하는 방법들에 내재될 수 있고, 그 동작들은, 일련의 글자들을 포함하는 토큰(token)을 획득하는 단계, 상기 토큰의 구성성분인 후보 서브-단어들(sub-words), 상기 서브 단어들을 토큰으로 변형시키도록 요구되는 하나 이상의 형태학적 동작들(morphological operations)을 식별하는 단계로서, 적어도 하나의 상기 형태학적 동작들은 비-사전적 단어의 사용을 포함하는 상기 식별하는 단계, 및 각각의 서브-단어와 관련된 코스트(cost) 및 각각의 형태학적 동작들과 관련된 코스트를 결정하는 단계를 포함한다. 이러한 측면의 다른 실시예들은 상응하는 시스템들, 장치들, 및 컴퓨터 저장 디바이스들 상에서 부호화되어 상기 방법의 동작들을 수행하도록 구성된 컴퓨터 프로그램들을 포함한다.
이러한 실시예들 및 다른 실시예들은 각각 선택적으로 하나 이상의 후술하는 특징들을 포함할 수 있다. 예를 들어, 그 동작들은 각각의 형태학적 동작과 연관된 코스트를 각각의 서브-단어에 연관시킨 코스트를 결합하는 단계를 포함할 수 있고, 동작들은 상기 결합 코스트들에 기초하여, 상기 토큰을 상기 후보 서브-단어들로 분해하도록 결정하는 단계를 더 포함할 수 있고, 상기 코스트를 결정하는 단계는, 다수의 점수 함수(scoring functions) 중에서 상기 서브-단어들에 코스트를 할당하는 맞춤 점수 함수를 선택하는 단계, 상기 결합 코스트들이 상기 토큰의 구성성분들인 부호 서브-단어들의 모든 식별된 결합들과 관련하여 최소의 결합 코스트를 포함할 때, 상기 토큰을 상기 후보 서브-단어들로 분해하도록 결정하는 단계를 더 포함할 수 있고, 상기 동작들은 상기 서브-단어 사이에서 분할 포인트들(split points)의 양을 결정하는 단계; 및 상기 분할 포인트들의 양과 관련된 코스트를 결정하는 단계를 더 포함할 수 있다. 상기 적어도 하나의 형태학적 동작은, 2개의 상기 후보 서브-단어들 사이에 비-사전적 단어를 삽입하는 것, 상기 토큰으로부터 상기 비-사전적 단어를 삭제하는 것, 상기 하나 이상의 후보 서브-단어들의 접두어로서 상기 비-사전적 단어를 프리펜딩(prepending)하는 것, 상기 하나 이상의 후보 서브-단어들의 접미어로서 상기 비-사전적 단어를 포스트펜딩(postpending)하는 것, 또는 상기 하나 이상의 후보 서브-단어들의 삽입어로서 상기 비-사전적 단어를 삽입하는 것을 포함할 수 있다. 상기 비-사전적 단어는 연결 형태소(linking morpheme)을 포함하고, 상기 비-사전적 단어는 상기 서브-단어들의 언어에서, 정의된 의미를 갖지 않는 글자들의 서브-시퀀스(sub-sequence)를 포함할 수 있다.
일반적으로, 본 명세서에서 설명된 주 문제의 또 다른 혁신적 측면은, 제1 단어에 나타나는 단어들 및 각각의 개별 단어가 상기 제1 단어에 나타나는 빈도를 식별하는 단계, 상기 제1 단어에서 구성성분들로서 나타나는 상기 단어들을 이용하여 제2 단어에 나타난 단어들을 분해하는 단계, 및 상기 제2 단어에 나타나는 상기 단어들을 분해하기 위해 구성성분들로서 사용되었던 상기 제1 단어에 나타난 단어들을, 범용 합성어 분할 단어(universal compound splitter vocabulary)로 출력하는 단계를 포함하는 방법에 내재될 수 있다.
이러한 실시예들 및 다른 실시예들은 각각 선택적으로 하나 이상의 후술하는 특징들을 포함할 수 있다. 예를 들어, 상기 제1 단어는 뉴스 언어 모델 단어를 포함하고, 상기 제2 단어는 웹 언어 모델 단어를 포함할 수 있다. 상기 동작들은, 상기 제2 단어에 나타난 상기 단어들을 분해하기 위해 미리 결정된 횟수를 초과하여 구성성분들로 사용되었던, 상기 제1 단어에 나타난 상기 단어들을 선택하는 단계를 더 포함하고, 상기 제2 단어에 나타나는 상기 단어들을 분해하기 위해 구성성분들로서 사용되었던 상기 제1 단어에 나타난 상기 단어들을 상기 범용 합성어 분할 단어로 출력하는 단계는, 상기 제2 단어에 나타난 상기 단어들을 분해하기 위해 미리 결정된 횟수를 초과하여 구성성분들로 사용되었던 상기 제1 단어에 나타난 상기 선택된 단어들을 출력하는 단계를 더 포함할 수 있다. 상기 동작들은, 각각의 개별 단어가 상기 제1 단어에 나타나는 횟수에 기초하여, 상기 범용 합성어 분할 단어로부터 단어들을 필터링하는 단계를 더 포함할 수 있다. 상기 범용 합성어 분할 단어는 단일 언어 또는 이중 언어로 된 단어이고, 상기 제1 단어 및 상기 제2 단어는 단일 언어로만 된 단어들을 포함할 수 있다.
일반적으로, 본 명세서에서 설명된 주 문제의 또 다른 혁신적 측면은, 제1 단어에 나타나는 단어들 및 각각의 개별 단어가 상기 제1 단어에 나타나는 빈도를 식별하는 단계; 상기 제1 단어에서 구성성분들로서 나타나는 상기 단어들을 이용하여 제2 단어에 나타난 단어들을 분해하는 단계; 및 상기 제2 단어에 나타나는 상기 단어들을 분해하기 위해 구성성분들로서 사용되었던 상기 제1 단어에 나타난 단어들을, 범용 합성어 분할 단어로 출력하는 단계; 일련의 글자들을 포함하는 토큰을 획득하는 단계; 상기 범용 합성어 분할 단어에 나타나고 상기 토큰의 구성성분인 둘 이상의 후보 단어들, 및 상기 단어들을 상기 토큰으로 변형하는데 요구되는 하나 이상의 형태학적 동작들을 식별하는 단계로서, 적어도 하나의 상기 형태학적 동작들은 비-사전적 단어의 사용을 포함하는 상기 식별하는 단계; 및 각각의 단어와 연관된 코스트 및 각각의 형태학적 동작과 연관된 코스트를 결정하는 단계로서, 상기 각각의 단어에 상응하는 코스트는 상기 개별 단어가 상기 제1 단어에 나타나는 빈도와 상응하는 상기 결정하는 단계를 포함하는 방법에 내재될 수 있다. 이러한 측면의 다른 실시예들은 상응하는 시스템들, 장치들, 및 컴퓨터 저장 디바이스들 상에서 부호화되어 상기 방법의 동작들을 수행하도록 구성된 컴퓨터 프로그램들을 포함한다.
일반적으로, 본 명세서에서 설명된 주 문제의 또 다른 혁신적 측면은, 구절-쌍(phrase-pairs)들의 다중-언어 구절 테이블을 획득하는 단계로서, 상기 구절-쌍은 비-영어 소스 언어로 된 단일-토큰 소스 단어들 및 상기 개별 단일-토큰 소스 단어들의 번역에 해당하는 다중-토큰 영어 구절들을 식별하는 상기 획득하는 단계, 소스 언어와 적어도 부분적으로 매치(match)하는 하나 이상의 구절-쌍들을 식별하는 단계, 및 상기 하나 이상의 구절 쌍들을 식별하는 단계에 기초하여, 상기 소스 언어가 합성어일 가능성을 결정하는 단계를 포함하는 방법에 내재될 수 있다. 이러한 측면의 다른 실시예들은 상응하는 시스템들, 장치들, 및 컴퓨터 저장 디바이스들 상에서 부호화되어 상기 방법의 동작들을 수행하도록 구성된 컴퓨터 프로그램들을 포함한다.
일반적으로, 본 명세서에서 설명된 주 문제의 또 다른 혁신적 측면은, 각각의 엔트리가 단어의 핑거프린트(fingerprint)를 식별하는 데이터 및 하나 이상의 언어로 된 상기 개별 단어의 발생 빈도를 식별하는 데이터를 포함하는 엔트리들을, 언어-의존적 단어 빈도 목록에 저장하는 단계, 후보 합성어를 획득하는 단계, 및 상기 핑거프린트들 중 하나와 상기 후보 합성어의 매칭에 기초하여, 상기 후보 합성어와 연관된 발생 빈도를 결정하는 단계를 포함하는 방법에 내재될 수 있다. 이러한 측면의 다른 실시예들은 상응하는 시스템들, 장치들, 및 컴퓨터 저장 디바이스들 상에서 부호화되어 상기 방법의 동작들을 수행하도록 구성된 컴퓨터 프로그램들을 포함한다. 이러한 실시예들 및 다른 실시예들은 각각 선택적으로 하나 이상의 후술하는 특징들을 포함할 수 있다. 예를 들어, 상기 엔트리는 64-비트 엔트리이고, 상기 단어의 핑거프린트를 식별하는 상기 데이터는 40-비트를 포함하고, 상기 하나 이상의 언어로 된 개별 단어의 발생 빈도를 식별하는 데이터는 24-비트를 포함할 수 있다.
본 명세서에 설명된 주요 사안들의 하나 이상의 실시예들에 대한 자세한 설명들은 첨부된 도면 및 후술하는 상세한 설명에 개시된다. 다른 잠재적인 특징들, 측면들, 및 주요 사안의 이점들은 명세서, 도면 및 청구범위로부터 명확해질 것이다.
도 1은 소스 언어로 된 합성어를 대상 언어로 번역하기 위해 그 구성성분으로 분할하는 것을 도시한 다이어그램이다.
도 2는 복수의 언어들로 된 합성어 부분들의 단일 언어 추출을 위한 예시적인 훈련 절차 프로세스의 플로우차트이다.
도 3은 범용 합성어 분할 프로세스에 의한 합성어 분할에 사용되는 형태소들의 부분 목록이다.
도 4는 합성어 분할 프로세스에 기초하여 예시적인 능동 프로그램 모델의 목록을 도시한다.
도 5는 단일 언어 모델 단어 목록으로부터 추출된 예시적인 어휘소들의 목록을 도시한다.
도 6은 합성어 일부분의 접미사에 대한 종결 형태소 스테머(stemmer) 및 생성기(generator)의 목록을 도시한다.
도 7은 범용 합성어 분할 시스템에서 지원되는 언어들의 테이블이다.
도 8은 본 명세서의 구현들에 따라 사용될 수 있는 네트워크 구조의 예시에 대한 다이어그램이다.
도 9는 예시적이 분해 프로세스의 플로우차트이다.
동일한 참조 번호는 명세서 전반에 걸쳐 동일한 부분을 나타낸다.
도 1은 범용 합성어 분할 시스템(100)에 의해 소스 언어로 된 합성어를 대상 언어로 번역하기 위해 그 구성성분들로 분할하는 것을 도시한 다이어그램이다. 시스템(100)은 단어 데이터베이스(102, 104, 106 및 128), 데이터 프로바이더 데이터베이스(116), 분해 엔진(108), 및 번역 엔진(110)을 포함한다. 도 1은 반드시 시간의 연속은 아니며, 상태 "A" 내지 상태 "O" 동안 시스템(100)의 구성성분들 사이에서의 데이터 흐름을 도시한다.
시스템(100)은 합성어 분할기(132)에 대한 입력으로서 구성성분들의 목록(예컨대, 합성어 사전에서 발견된 것)을 사용한다. 그러나 특정 요인들은 분해 프로세스의 어려움과 합성어들의 기계 번역의 복잡성을 증가시킬 수 있다. 한가지 요인은 하나의 합성어의 구성성분들에서 일어나는 형태학적 변형들과 관련된다. 다른 요인은 그 합성어 내에서 분할 포인트들(split points)의 인식과 관련된다.
일 실시예로서, 분할 포인트들의 인식은 분해 프로세스에 이용가능한 데이터(예컨대, 구성성분 목록)를 기반으로 한다. 일부 경우에 있어서, 데이터의 제한된 양의 사용은 구성성분의 제외를 초래할 수 있다. 다른 경우들에 있어서, 노이지(noisy) 데이터(예컨대, 합성어 또는 구성성분 목록 중에서 철자가 틀린 단어들)로 인해 분해 프로세스가 구성성분을 인식하지 않고, 후속의 분할 포인트도 식별하지 않는 결과를 초래할 수도 있다. 일부 경우에, 구체적인 합성어(예컨대, 고유 이름)는 그 구성성분들로 분할되면 합성어의 의미가 손실되기 때문에, 분할되지 않고 그대로 남을 수도 있다. 또 다른 경우에, 구성성분 목록이 구체적인 구성성분들을 제외하도록 필터링되거나, 또는 분해 프로세스가 합성어로서 인식하지 못할 구체적인 구절의 인식을 포함할 수도 있다.
분해 엔진(108)은 능동 프로그램을 이용하여 구현된 합성어 분할 프로세스에서 합성어 부분 확률 모델을 이용하여 복수의 상이한 언어들에 대한 합성어들의 합성어 분할을 수행한다. 각각의 언어들은 다양한 복잡성의 형태론적 구조들을 전시하고, 하나의 단어에 대한 형태론적 구조는 다른 언어의 그것보다 더 복잡하게 만들어질 수 있다. 예를 들어, 언어들은 영어, 독일어, 스웨덴어, 그리스어, 헝가리어, 및 중국어를 포함할 수 있고, 이에 한정되는 것은 아니다. 합성어 분할 프로세스는 합성어의 둘 이상의 구성성분들을 결정하기 위하여 구성성분 목록(예컨대, 그 합성어들의 구성성분들을 포함하는 합성어 사전)을 이용한다. 구성성분 목록은 큰 코퍼스들(corpora)(예컨대, 데이터 프로바이더 데이터베이스(116)와 연관된 자동 뉴스 수집기(news aggregator), 사전, 등)로부터 추출된 식별된 합성어 구성성분들의 결과이다. 합성어 분할 프로세스는, 합성어를 성공적으로 특정 언어의 구성성분들로 분할하기 위하여, 각각의 언어에 대한 구체적인 형태학적 동작들을 학습한다. 그러한 분해 프로세스에 의해 지원되는 언어들에 대한 다국어 정보는 구절 테이블(phrase table)에 저장된다. 예를 들어, 그 구절 테이블은 2,500 이상의 언어 쌍들을 제공하는 통계적 기계 번역 시스템으로부터 도출될 수 있다.
도 1에 도시된 것처럼, 시스템(100)은 합성어 "flowerpot"을 영어에서 독일어로 번역하는 프로세스를 수반한다. 제1 컨텐츠 생성기(112)는 상태 "A"에서 데이터 프로바이더 데이터베이스(116)로부터 복수의 언어들에 대한 언어 모델 단어 목록들을 수신한다. 일부 구현에 있어서, 데이터 프로바이더 데이터베이스(116)는 자동 뉴스 수집기(예컨대, 뉴스 기사들의 집합을 포함하는 데이터베이스)를 포함한다. 언어 모델 단어 목록은 뉴스 기사들로부터 도출되는 것처럼, 특정 언어로 사용되는 단어들의 집합이다. 일부 구현에 있어서, 데이터 프로바이더 데이터베이스(116)는 사전 데이터베이스에 의해 제공되는 언어 모델 단어 목록을 포함한다.
제1 컨텐츠 생성기(112)는 상태 "B"에서 복수의 언어들에 대한 언어 모델 단어 목록들로부터 단어 빈도 목록을 얻는다. 단어 빈도 목록은 합성어의 가능한 구성성분들의 목록을 포함한다. 제1 컨텐츠 생성기(112)는 상태 "C"에서 데이터베이스(102) 내에 저장하기 위한 단일 공유 테이블의 형태로 제1 단어 목록을 제공한다. 제1 부분 단어 목록(114)은 단어 빈도 목록에 있는 영어 엔트리들의 예시적인 서브셋이다. 테이블 엔트리는 언어 코드(114a; 예컨대, 영어는 "en"), 언어 코드(114a)에 의해 지정된 언어의 단어(114b; 예컨대, "flower") 및 그 언어 모델 단어 목록에 있는 단어(114b)의 발생 빈도를 나타내는 빈도 수(114c; 예컨대, 43,545,654)를 포함한다. 빈도 수(144c)는 언어 모델 단어 목록에 있는 단어(114b)의 발생 수를 나타낼 수 있다. 예를 들어, 빈도 수는 사전 검색을 수행하거나 자동 뉴스 수집기에 의해 제공되는 복수의 뉴스 기사들을 살펴봄으로써 결정된다.
도 1에 도시된 것처럼, 제2 컨텐츠 생성기(118)도 상태 "D"에서 데이터 프로바이더 데이터베이스(116)로부터 복수의 언어에 대한 언어 모델 단어 목록들을 수신한다. 제2 컨텐츠 생성기(118)는 상태 "E"에서 복수의 단어들에 대한 언어 모델 단어 목록들로부터 합성어 목록을 도출한다. 제2 컨텐츠 생성기(118)는 상태 "F"에서 데이터베이스(104)에 있는 저장용 제2 단어 목록(124)을 제공한다. 제2 부분 단어 목록(124)은 합성어 목록에 있는 영어 엔트리들의 예시적인 서브셋이다.
클라이언트 디바이스를 동작하는 사용자는, 디스플레이 디바이스상에서 사용자에게 디스플레이된 그래픽 유저 인터페이스(graphical user interface)에 포함되는 데이터 입력 박스 안에 번역을 위한 입력 스트링(예컨대, "flowerpot")을 입력할 수 있다. 사용자는 입력 스트링에 대한 소스 언어(예컨대, 영어)와 번역을 위한 대상 언어(예컨대, 독일어)를 선택할 수 있다. 이후에 사용자는 번역 버튼을 활성화할 수 있다. 상태 "G"에서, 그 번역 버튼의 활성화에 대한 응답으로, 입력 스트링 모듈(122)은 입력 스트링(126; 예컨대, "flowerpot") 및 그 입력 스트링(126)에 대한 소스 언어 선택(130; 예컨대, 영어)을 수신한다. 클라이언트 디바이스의 예시 및 그의 동작 환경은 도 3을 참조하여 설명한다.
상태 "H"에서, 입력 스트링 모듈(122)은 입력 스트링(126)을 그 소스 언어에 대한 데이터베이스(128)의 컨텐츠와 비교한다. 데이터베이스(128)는 범용 합성어 분할 시스템(100)에 의해 제공되는 각각의 언어에 대한 구절 테이블인 제3 단어장을 포함한다. 만약 데이터베이스(128) 내에 입력 스트링(126)을 위한 엔트리가 존재하지 않으면, 상태 "I"에서 입력 스트링 모듈(122)은 입력 스트링(126)을 그 소스 언어에 대한 데이터베이스(104)의 컨텐츠들과 비교한다. 데이터베이스(104)는 입력 스트링(126; 예컨대, 데이터베이스 엔트리(124a)에서 "flowerpot")을 포함하는 합성어 단어 목록을 포함한다. 상태 "J"에서, 분해 엔진(108)은 입력 스트링(126) 및 소스 언어 선택(130)을 수신한다.
도 1에 도시된 것처럼, 분해 엔진(108)은 합성어 분할기(132), 코스트 모듈(134) 및 변형 모듈(136)을 포함한다. 분할기(132)는 합성어(예컨대, 입력 스트링(126))를 구성성분들로 분할하는 일을 수행하고, 그 구성성분들은 하나 이상의 비-사전적 단어들을 포함할 수도 있다. 분할기(132)는 합성어(입력 스트링(126))에 대해 희망 분할 시퀀스(분할 포인트 및 구성성분들의 숫자와 위치)를 식별하기 위해 능동 프로그램 모델-기반의 합성어 분할 프로세스를 사용할 수 있다.
상태 "K"에서, 분할기(132)는 입력 스트링(126)에 대해 희망 분할 시퀀스를 결정하기 위하여 반복 합성어 분할 프로세스(recursive compound splitting process)를 실행한다. 합성어 분할 프로세스는 입력 스트링(126)의 분할 포인트들 및 구성성분들을 결정하기 위하여, 입력 스트링(126)의 소스 언어(예컨대, 영어)를 위한 데이터베이스(102)에 포함된 단어 빈도 목록을 사용한다. 합성어 분할 프로세스는 입력 스트링(126) 내에서 다른 분할 포인트들을 반복적으로 시도하면서, 복수의 다양한 후보 구성성분들과 분할 시퀀스들을 초래한다. 코스트 모듈(134)은 분할기(132)에 의한 각각의 분해 시도에 대해 분할 시퀀스의 총 확률 또는 코스트를 계산한다. 분할 시퀀스의 총 확률은, 무엇보다도, 분할 포인트들의 숫자 및 위치에 의해 결정된 각각의 구성성분에 대한 빈도 수들의 합을 포함한다.
코스트 모듈(134)은 그 입력 스트링(126)에 대한 희망 분할 시퀀스가 최고 총 빈도 수를 제공하는 입력 스트링(126)의 분할 시퀀스가 되도록 결정한다. 희망 분할 시퀀스는 최적의 분할 시퀀스일 수도 있고, 아닐 수도 있다. 가장 큰 숫자의 빈도 수(최고 확률)를 가진 분할 시퀀스는 이후에 희망 분할 시퀀스로 설정된다. 일부 구현에 있어서, 총 코스트는 분할 시퀀스와 연관되고, 그 분할 시퀀스에 대한 확률이 높을수록(빈도 수의 총 숫자가 클수록), 그 분할 시퀀스에 대한 총 코스트는 낮아진다.
도 1에 도시된 예에서, 분할기(132)와 코스트 모듈(134)을 이용한 분해 엔진(108)은 입력 스트링(126; 예컨대, "flowerpot")을 위한 희망 분할 시퀀스가 2개의 구성성분들, 즉 구성성분(138a, 예컨대, 'flower') 및 구성성분(138b, 예컨대, 'pot')을 야기하는 것으로 결정한다. 소스 언어용 사전은 구성성분들(138a, 138b)을 포함할 수 있고, 각각의 분리된 구성성분은 그 소스 언어에 사용되는 사전적 언어(예컨대, "flower" 및 "pot"은 영어 사전에서 찾을 수 있고, 각각의 단어가 단독으로 그 언어에서 사용될 수 있다)이다. 일부 구현에 있어서, 하나 이상의 구성성분들은 그 합성어의 소스 언어에 대한 사전에 포함되어 있지 않은 단어일 수 있다. 이러한 경우, 변형 모듈(136)이 그 비-표준 단어 구성성분을, 이후에 쉽게 번역될 수 있는 표준 단어로 변형(예컨대, 그 비-표준 단어 구성성분에 접두사 및/또는 접미사를 추가, 그 구성성분의 한 글자를 다른 글자로 변경, 등)할 수 있다.
상태 "L"에서, 번역 엔진(110)은 분해 엔진(108) 및 대상 언어 선택(140)에 의해 결정된 희망 분할 시퀀스에 대한 분해된 구성성분들(구성성분(138a; 예컨대, "flower") 및 구성성분(138b; 예컨대, "pot"))을 수신한다. 상태 "M"에서, 번역 엔진(110)은 구성성분들(138a, 138b)을 소스 언어로부터 대상 언어로 번역한다(예컨대, 구성성분들(138a, 138b)("flower" 및 "pot" 각각, 또는 "flower""pot" 구절)이 영어에서 독일어로 번역된다). 번역 엔진(110)은 소스 언어-대상 언어에 대한 번역 사전(예컨대, 영어-독일어 사전)인 제4 단어장을 포함하는 데이터베이스(106)를 사용한다. 번역 엔진(110)은 그 구성성분들(138a, 138b)에 대한 소스 언어(예컨대, 영어)에서 대상 언어(예컨대, 독일어)로 번역을 찾기 위하여, 구성성분들(138a, 138b)을 그 사전에 있는 엔트리들과 비교한다. 상태 "N"에서, 출력 스트링 모듈(142)은 그 소스 언어(예컨대, 영어)로부터 그 대상 언어(예컨대, 독일어)의 출력 스트링(144; 예컨대, "blumentoph")으로, 분해된 입력 스트링(126; 예컨대, "flowerpot")의 번역에 해당하는 번역된 출력 스트링(144; 예컨대, "blumentoph")을 수신한다.
예를 들어, 상태 "O"에서, 사용자는 번역을 위한 입력 스트링을 입력하기 위해 사용자에 의해 사용되었던 동일한 컴퓨팅 디바이스의 디스플레이 디바이스상에서, 사용자에게 디스플레이된 그래픽 유저 인터페이스에 포함된 출력 박스에 있는 출력 스트링(144)을 볼 수 있다. 컴퓨팅 디바이스의 예시 및 그의 동작 환경은 도 3을 참조하여 상세히 설명할 것이다.
도 2는 복수의 언어로 된 합성어 부분들의 단일어 추출을 위한 예시적인 훈련 절차 프로세스(200)의 플로우 차트이다. 범용 합성어 분할 시스템(100)은 프로세스(200)를 실행할 수 있다.
도 1에서 설명한 것처럼, 단어 빈도 목록(예컨대, 제1 부분 단어 목록(114)은 단어 빈도 목록에 있는 영어 엔트리들의 예시적인 서브셋임)은 분할기(132)에 의해 실행된 합성어 분할 프로세스에 의해 사용되는 합성어 부분들의 소스를 제공한다. 단어 빈도 목록은 언어 의존적이고, 단일어 데이터로부터 추출된 저장 합성어 부분 후보들의 목록을 포함한다. 제1 컨텐츠 생성기(112)는 범용 합성어 분할 시스템(10)에 의해 제공되는 언어 각각에 대한 단어 빈도 목록을 생성할 수 있다. 범용 합성어 분할 시스템(100)은 단어 빈도 목록을 생성하기 위하여 언어 모델 단어 목록들(예컨대, 데이터 프로바이더 데이터베이스(116)로부터 제공되는 언어 모델 단어 목록들)로부터 합성어 부분 후보들을 추출하도록 훈련될 수 있다.
일부 구현들에 있어서, 합성어 범용 합성어 분할 시스템(100)은 단어 빈도 목록을 생성하기 위해, 하나 이상의 필터 단계들을 그 언어 모델 단어 목록들로부터의 합성어 부분 후보들의 추출과 결합한다. 분해 엔진(108)은 단어 빈도 목록을 범용 합성어 분할 단어장으로 사용한다. 범용 합성어 분할 시스템(100)은 4개의 단계로 나뉘어진 훈련 절차를 사용하고, 그 시스템(100)은 데이터베이스(102)에 저장될 수 있는 모든 단어들을 위한 단어 빈도 목록을 생성하는 단계에 하나 이상의 필터 단계들을 자동으로 적용한다. 시스템(200)은 4 가지 훈련 절차 단계들(202, 204, 206, 208)을 도시한다. 예를 들어, 범용 합성어 분할 시스템(100)은 훈련 절차의 4 가지 단계들(202, 204, 206, 208)을 실행할 수 있다.
예를 들어, 도 1과 2를 참조하면, 뉴스 언어 모델 단어가 수신될 때(204), 프로세스(200)는 개시한다(202). 뉴스 언어 모델 단어는 데이터베이스(예컨대, 데이터베이스(106))에 포함될 수 있다. 훈련 절차의 제1 단계(phase 1)가 실행된다(206). 훈련 절차의 제1 단계에서, 제1 컨텐츠 생성기(112)는 범용 합성어 분할 시스템(100)에 의해 제공되는 복수의 언어를 위한 뉴스 언어 모델 단어로부터 도출되는 단어 빈도 목록을 생성한다. 뉴스 기사들은 일반적인 웹 텍스트 기반의 모델 단어보다 철자 틀림이 더 적은 단어들을 포함하는 뉴스 언어 모델 단어를 나타냄으로써 언어-의존적 단어들의 데이터베이스를 제공할 수 있다. 또한 뉴스 기사들은 부정확하거나 비-사전적인 단어들을 거의 포함하지 않는 뉴스 언어 모델 단어를 제공한다(예컨대, 데이터베이스가 덜 산만하다). 제1 단계에서, 제1 컨텐츠 생성기(112)는 하나 이상의 필터 단계들의 연속에 따라, 뉴스 언어 모델 단어에 포함된 언어-의존적 단어들을 필터링한다. 제1 컨텐츠 생성기(112)는 맵리듀스(mapreduce) 맵 단계(208) 동안 필터 단계들을 수행한다. 맵리듀스 맵 단계는 언어-의존적 단어들에서 각각의 단어 또는 토큰의 발생 빈도와 관련된 다양한 횟수(counts)를 수집하는 리듀스 프로세스(reduce process)를 수행한다. 맵리듀스 맵 단계는 합성어의 잠재적인 구성성분들일 수 있는 엔트리들을 포함하기 위해 새로운 언어 모델 단어에 포함된 언어-의존적 단어들의 사이즈를 더 감소시킨다. 예를 들어, 제1 필터 단계는 적절한 이름들(예컨대, Michelle, Washington, Pentagon 등)을 필터링할 수 있다.
훈련 절차의 제1 단계(202) 완성 결과물은 범용 합성어 분할 단어의 출력이다(210). 범용 합성어 분할 단어는 데이터베이스(102)에 있는 저장용 단일 조각 테이블(single shard table)로서의 출력이다. 제1 부분 단어 목록(114)은 단어들의 시퀀스로서 복수의 테이블 엔트리들 및 언어 코드에 대한 상응하는 빈도 수들을 보여준다. 테이블 엔트리는 언어 코드(114a; 예컨대, 영어는 "en"), 언어 코드(114a)에 의해 지정된 언어로 된 단어(114b; 예컨대, "flower"), 및 데이터베이스(210)에서 단어(114b)의 발생 빈도를 나타내는 빈도수(114c; 예컨대, 43,545,654)를 포함하는 포맷으로 입력된다.
일부 구현에 있어서, 단일 조각 테이블은 범용 합성어 분할 시스템(100)에 의해 제공되는 언어들 각각을 위한 복수의 엔트리들을 포함한다. 시퀀스 시작 엔트리는 한 언어에 대한 각각의 언어 코드 시퀀스의 시작에 배치된다. 시퀀스 시작 엔트리는 특정 언어 코드에 대한 후속 테이블 엔트리들의 수를 나타내는 수치(count)를 포함한다. 데이터베이스(102)에 있는 영어 엔트리들을 위한 시퀀스 시작 엔트리의 예시는 다음과 같다.
Figure pct00001
여기서, "[en]"은 언어 코드 (영어) 이고, 수치 "nnnnn"은 영어를 위한 후속 테이블 엔트리들의 수를 가리킨다. 시퀀스 시작 엔트리 맨 앞의 "0"은 그 엔트리가 그 언어 코드의 모든 다른 엔트리들 보다 선행하도록 보장한다.
도 1 및 2를 다시 참조하면, 웹 언어 모델 단어장은 데이터베이스(예컨대, 데이터베이스(116)에 포함될 수 있다. 다음으로 훈련 절차의 제2 단계가 실행된다(214). 훈련 절차의 제2 단계에서, 범용 합성어 분할 시스템(100)은 맵리듀스 맵 단계를 지속하는 제1 단계로부터 단어 빈도 목록(범용 합성어 분할 단어장) 출력을 더 줄이고 필터링한다. 웹 언어 모델 단어장은 범용 합성어 분할 시스템(100)에 의해 제공되는 각 언어들에 대한 임의의 웹 텍스트들에 기초한다. 웹 언어 모델 단어장은 각각 제공된 언어에 대한 엔트리들을 포함한다. 훈련 절차의 제2 단계에서, 맵리듀스 맵 단계에 있는 맵 단계는 범용 합성어 분할 시스템(100)을 이용하여 수신된 웹 언어 모델 단어를 분할한다.
훈련 절차의 제2 단계에서, 범용 합성어 분할 시스템(100)은 분할기(132)에 대한 입력으로서 데이터베이스(102)에 저장된 단어 빈도 목록을 사용한다. 분해 엔진(108)은 웹 언어 모델 단어장에 포함된 단어들을 분할하도록 시도한다. 훈련 절차의 제2 단계를 수행함에 있어서, 웹 언어 모델 단어로부터 입력 합성어 단어를 분할하기 위해 분할기(132)에 의해 사용된 단어 빈도 목록에 포함된 합성어 구성성분들은 리듀서(reducer)에 전달된다. 리듀서는 그 단어 빈도 목록에 있는 각각의 구성성분이 얼마나 자주 사용되는지를 결정한다(216). 미리 결정된 임계 레벨을 초과하여 사용된 구성성분들이 범용 합성어 단어로 사용되는 합성어 부분들의 출력을 나타내는 것으로 결정된다. 또한 제2 단계는 단어 빈도 목록의 사이즈를 줄일 수 있다. 일부 구현들에 있어서, 리듀서는 분해 엔진(108)에 포함된다. 일부 구현들에 있어서, 리듀서는 범용 합성어 분할 시스템(100)에 포함된 모듈이다.
예를 들어, 제1 단계의 구현 후에, 제1 컨텐츠 생성기(112)의 출력은 제1 부분 단어 목록(114)을 포함한다. 제2 단계(204)에서, 분해 엔진(108)은 입력 스트링(126)이 웹 언어 모델 단어에 포함되는 입력 스트링(126; 예컨대, "flowerpot")을 수신한다. 제1 부분 단어 목록(114)을 분할기(132)에 대한 입력으로 사용하여, 입력 스트링(126)을 분할하기 위해 제1 부분 단어 목록(114)에 포함된 구성성분들은 단어(114b; "flower")와 단어(114d; "pot")이다. 이 예에서, 만약 분할할 추가적인 단어들이 없고, 리듀서에 미리 결정된 임계 레벨이 1과 동일하다면, 리듀서의 출력은 부분 단어 목록을 포함할 것이다:
Figure pct00002
리듀서의 출력은 분해 엔진(108)이 그 웹 언어 모델 단어장에 포함된 합성어들을 분할하기 위해 사용하는 합성어 부분 후보들을 포함한다. 또한 리듀서의 사용에 대해 미리 결정된 임계 레벨을 추가하는 것은, 분해 엔진(108)이 합성어 부분 후보들로 하여금 그 단어 빈도 목록에 포함되도록 충분히 자주 이용하는 것을 보장한다.
일부 구현들에 있어서, 제1 단계의 실행 후, 범용 합성어 분할 단어장은 합성어들을 포함할 수 있다. 구성성분들의 사용이 분해 엔진(108)에 의한 합성어들의 사용보다 많다고 가정하면, 제2 단계는 단어 빈도 목록으로부터 합성어들을 걸러낼(filter out) 수 있다.
도 1 및 2를 참조하여, 훈련 절차의 제3 단계가 실행된다(220). 훈련 절차의 제3 단계에서, 범용 합성어 분할 시스템(100)은 그 빈도 수치가 미리 결정된 임계 레벨 이하인 단어 빈도 목록으로부터 단어들을 제거할 수 있다. 또한 제3 단계는 단어 빈도 목록의 사이즈를 감소시킬 수 있다. 제3 단계는 범용 합성어 분할 단어장으로 사용될 수 있는 단일 조각 테이블에 있는 최종 단어 빈도 목록을 제공한다(222).
일부 구현에 있어서, 제4 단계가 실행된다(224). 제4 단계는 최종 통계들을 출력할 수 있는 보고 단계일 수 있다(226). 예를 들어, 통계들이 복수의 언어들에 걸쳐 수많은 합성어 부분들을 비교하기 위해 사용될 수 있다. 또 다른 예에서, 통계들은 범용 합성어 분할 시스템(100)의 에러 분석에 사용될 수 있다. 프로세스는 종료한다(228).
일부 구현에 있어서, 합성어 후보들과 그들의 구성성분들은 이중 언어 환경에 포함될 수 있다. 이중 언어의 범용 합성어 분할 시스템에서, 합성어는 그의 구성성분들로 분할되고, 소스 언어에서 대상 언어로 번역된다. 예를 들어, 영어는 소스 언어가 될 수 있고, 구절 테이블은 그 소스 언어 (영어)로부터 대상 언어로의 번역들을 제공할 수 있다. 또 다른 예에서, 영어가 대상 언어가 될 수 있고, 구절 테이블은 소스 언어로부터 영어로의 번역들을 제공할 수 있다.
간단히 하면, 하나의 예시적인 프로세스는 구절-쌍들의 다중어 구절 테이블, 비-영어 소스 언어의 단일-토큰 소스 단어들을 식별하는 구절 쌍들, 및 각각의 단일-토큰 소스 단어들의 번역인 다중-토큰 영어 구절들을 얻는 단계, 소스 단어와 적어도 하나의 부분적 매치인 하나 이상의 구절-쌍들을 식별하는 단계, 및 그 소스 단어가 하나 이상의 구절 쌍들을 식별하는 단계에 기초하여 합성어일 가능성을 결정하는 단계를 포함할 수 있다.
더욱 상세하게, 이중 언어의 범용 합성어 분할 시스템은 훈련 절차의 제1 단계에서 자동으로 번역 구절 테이블을 생성할 수 있다. 이중 언어의 범용 합성어 분할 시스템에 의해 실행되는 훈련 절차의 다음 단계는 영어가 다수의 합성어를 포함하지 않는다는 가정 하에서 동작한다. 그러므로 훈련 단계의 실행은 다중-토큰 영어 구절들 e1, ..., en로 번역하는 언어 I에 있는 단일 토큰 소스 단어들 f를 위해 번역 구절 테이블을 검색하는 단계를 포함한다. 단일 토큰 소스 단어 f 및 그의 번역된 다중-토큰 영어 구절 e1, ..., en은 구절 쌍(f, e1, ..., en)을 형성할 수 있다. 각각의 구절 쌍은 언어 I로 된 단일 토큰 소스 단어 f를 그것의 영어 다중-토큰 구절 번역 e1, ..., en 로 번역하기 위한 후보가 될 수 있다.
이중 언어의 범용 합성어 분할 시스템은 다중-토큰 영어 구절들 e1, ..., en에 포함된 각각의 토큰 ei을 얻을 수 있고, 단어 데이터베이스(예컨대, 도 1의 데이터베이스(106))에서 언어 I에 대한 개별 토큰 ei에 상응하는 번역을 검색할 수 있다. 이중 언어 추출 프로세스에서, 이중 언어의 범용 합성어 분할 시스템은 오리지날 소스 단어 w가 합성어인 경우 오리지날 소스 단어 w에 적어도 부분적으로 매치하는 단어 데이터베이스에서 엔트리들을 찾을 수 있다. 단어 데이터베이스에서 추가적인 검색들을 포함하여, 식 (1)은 이중 언어 추출 프로세스로부터 만들어진 번역 쌍들의 형태를 표현할 수 있다.
Figure pct00003
식 (1)에서, PTcs(f)는 이러한 경우에 합성어일 가능성이 있는 소스 단어 f에 대한 번역 쌍이다. 다중-토큰 영어 구절들 e1, ..., en은 소스 단어 f의 영어 번역을 포함하고, g1, ..., gn은 소스 단어 f의 합성어 부분들이다. PTcs 테이블은 복수의 단일 토큰 소스 단어들 f에 대한 엔트리들을 포함할 수 있다.
일부 구현에 있어서, 훈련 절차 동안에 자동으로 번역 구절 테이블을 생성하는 단계는 번역 구절 테이블에 에러들(예컨대, 부정확한 단어들의 포함)을 도입할 수 있다. 또한 이중 언어의 추출 프로세스는 노이즈 또는 에러들의 특정 양을 분해 프로세스에 도입할 수도 있다. 그러나 이중 언어 추출 프로세스는 도 1에 도시된 단일 언어 추출 프로세스보다 그 구성성분 부분들을 포함하여 가능한 합성어들의 더 좋은 지표일 수 있다. 이중 언어의 범용 합성어 분할 시스템은 합성어 f를 형성하는 것과 더불어, 구성성분 부분들 g1, ..., gn을 결합할 때 필요할 수 있는 하나 이상의 형태학적 변형들을 자동으로 추출하기 위해 식(1)(예컨대, f; e1, ..., en; g1, ..., gn)에서 정의된 튜플(tuple)들을 사용할 수 있다. 예를 들어, 이중 언어의 범용 합성어 분할 시스템은 독일어 합성어 f의 구성성분 분분들을 결합하는 데 필요할 수 있는 일부 연결 형태소들을 자동으로 추출하기 위해 식 (1)에서 정의된 튜플들을 사용할 수 있다.
단일 언어 및 이중 언어의 범용 합성어 분할 시스템들은 합성어 번역 프로세스에 사용하기 위한 최종 단어 목록들(예컨대, 단어 빈도 목록 및 번역 구절 테이블, 각각)을 생성하기 위해 훈련 절차들을 사용할 수 있다. 훈련 절차의 구절들은 최종 단어 목록들의 품질을 보장할 뿐만 아니라 최종 단어 목록들의 사이즈를 제어하기 위해 하나 이상의 필터 단계들을 사용할 수 있다. 최종 단어 목록들의 품질에 기여하는 하나의 요인은 하나 이상의 유효하지 않은 합성어 부분들을 포함하는 것이다. 최종 단어 목록들의 품질에 기여하는 다른 요인은 하나 이상의 유효한 합성어 부분들을 제외하는 것이다.
일부 구현에 있어서, 범용 합성어 분할 시스템은 화이트 리스트와 블랙 리스트(또는 "정지 리스트(stop list)")를 포함할 수 있다. 예를 들어, 화이트 리스트는 그 시스템이 최종 단어 목록에 항상 포함하는 하나 이상의 단어들(예컨대, 구성성분들, 합성어 부분들, 합성어들)을 포함할 수 있다. 예를 들어, 블랙 리스트는 그 시스템이 최종 단어 목록에서 항상 제외하거나 통상적으로 제외하는 하나 이상의 단어들(예컨대, 구성성분들, 합성어 부분들, 합성어들)을 포함할 수 있다. 예를 들어, 블랙 리스트 및 화이트 리스트는 시스템의 전반적인 성능을 향상시키기 위해 범용 합성어 분할 시스템의 파라미터 또는 임계값을 학습 또는 훈련하는 데 사용될 수 있다.
일부 구현에 있어서, 합성어의 창작은 하나 이상의 형태학적 동작들을 포함할 수 있다. 예를 들어, 독일 합성어, Verkehrszeichen(영어 번역: traffic sign)은 2개의 명사, Verkehr(traffic) 및 Zeichen(sign)으로 구성된다. 합성어, Verkehrszeichen의 창작은 추가적인 형태소로서, 합성어 Verkehrszeichen의 두 구성성분, Verkehr과 Zeichen을 함께 연결할 때, 연결 형태소로서 언급될 수 있는 s-형태소를 포함한다. 합성어 Verkehrszeichen의 창작은 두 구성성분들, Verkehr과 Zeichen 사이에 글자 s를 수동적으로 삽입하는 추가적인 형태학적 동작을 포함한다. 글자 "s"는 독일어에서 그 자체로서 아무 의미가 없기 때문에 사전적 단어가 아니다.
독일어의 형태학적 동작들은 후보 글자들의 작은 집합에 포함된 몇개의 글자들의 추가와 삭제를 포함할 수 있다. 다른 언어들(예컨대, 그리스어, 헝가리어)에서, 형태학적 동작들은 더 복잡할 수 있다(예컨대, 후보 글자들의 큰 집합, 구성성분들에 있는 하나 이상의 글자들의 대체 등). 범용 합성어 분할 시스템은 형태학적 동작들에 사용하기 위해 선택할 글자들의 후보 집합을 포함할 수 있다. 범용 합성어 분할 시스템은, 예를 들어 훈련 절차의 단계들을 통해, 특정 언어에 대한 합성어를 창작하기 위해 사용되는 연결 형태소들 및 다른 추가적인 형태학적 동작들을 추출하는 법을 학습할 수 있다.
일부 구현에 있어서, 형태학적 동작들은 s, t 0 A* 스트링 중 (s, t)쌍을 포함하고, 여기서, 스트링 s가 스트링 t에 의해 교체되고, 스트링 s 및 t에 있는 하나 이상의 글자들은 소스 언어 알파벳 A에 포함된다. 클레이너 연산자 "*"는 소스 언어 알파벳 A에서 동작하고, 여기서, 스트링 s 및 t는 심볼 "ε"로 표시되는 엠프티 (null) 스트링(empty string)일 수 있다. 클레이네 * 연산자를 사용하여, 각각의 스트링 s, t가 글자들의 집합인 경우, 엠프티 스트링을 포함하여 A에 있는 심볼들에 대한 모든 스트링들의 집합으로서 A*을 도출한다.
독일어에 있는 형태학적 동작들에 대한 예시적인 스트링 쌍은, 엠티 스트링 ε에 독일 합성어 Bundesagentur(영어 번역: federal agency)에 있는 연결 형태소 es를 만드는 (es, ε)이다. 합성어 Bundesagentur의 구성성분들은 Bund(federal) 및 agentur(agency)이고, "es"는 연결 형태소이다.
일부 구현에 있어서, 하나 이상의 부분들(서브-단어들)로부터 합성어를 만드는데 사용되는 형태학적 동작들을 학습하기 위하여, 범용 합성어 분살 시스템은 합성어 및 그의 합성어 부분들 사이의 차이점을 결정한다. 시스템은 단일 글자를 삽입, 제거 또는 교체하는 허용가능한 편집동작들과 함께 두 시퀀스들(스트링들) 사이의 차이량을 측정하는데 사용되는 메트릭(metric)으로서, 레벤스타인 거리(Levenstein distance)를 적용할 수 있다. 범용 합성어 분할 시스템은 편집 거리 및 편집 동작을 저장한다. 레벤스타인 거리는 합성에 필요한 형태학적 동작들을 제공한다. 시스템은 합성어의 분해에 요구되는 동작들을 초래하는 인버스 동작들(inverse operations; 예컨대, 스트링 t를 스트링 s와 교체)을 적용한다. 각각의 형태학적 동작들은 관련 "코스트(cost)"를 갖는다.
레벤스타인 거리는 균일 코스트를 갖는 편집 동작들을 포함한다. 그러나 일부 구현에 있어서, 균일 코스트는 모든 언어들에 대해 코스트가 동일하게 되도록 분해하는 형태학적 동작들을 학습하도록 요구될 수 있다. 일부 구현에 있어서, 코스트는 더 복잡한 언어가 더 높은 동작 코스트를 발생시키는 언어당 집합(set per language)이 될 수 있다.
식 (1)의 번역 쌍들을 이용하여, 범용 합성어 분할 시스템은 훈련 절차의 한 단계가 될 수 있는 학습 프로세스에서 하나 이상의 형태학적 동작들을 추출하기 위해, 합성어(f) 및 그의 구성성분 부분들(g1,...,gn) 모두에게 레벤스타인 거리를 적용할 수 있다. 예를 들어, 허위 또는 단독(singleton) 동작들(예컨대, 철자 에러를 야기하는 것)을 학습하는 것을 피하기 위해, 범용 합성어 분할 시스템은 각각의 식별된 형태학적 동작들이 얼마나 자주 사용되는지를 명확하게 계산할 수 있다. 시스템은 그 동작의 수치가 주어진 미리 결정된 임계값을 초과하는 동작들을 보유할 수 있다.
도 3은 범용 합성어 분할 시스템에 의해 분할하는 합성어에 사용되는 형태소들의 부분적 목록(300)이다. 목록(300)은 범용 합성어 분할 시스템이 명확하게 특정할 수 있는 형태소들을 포함할 수 있다. 목록(300)은 예를 들어, 앞서 설명한 것처럼 훈련 절차의 단계들을 통해, 그 시스템에 의해 학습된 형태소들을 포함할 수 있다. 목록(300)은 독일어(de) 및 네덜란드어(da)에 각각 사용되는 형태소들(302, 304)을 포함한다. 일부 구현에 있어서, 추가적인 언어들에 대한 형태소들이 목록(300)에 포함될 수 있고, 이러한 형태소들은 비-사전적 단어들을 포함할 수 있다. 형태소들은 부분 목록(300)에 포함된 독일어 형태소(302)의 서브셋인 연결 형태소들(306)을 포함한다. 예를 들어, 연결 형태소(306)는 독일어 합성어의 두 가지 서브-단어들 사이에 발생할 수 있다. 만약 범용 합성어 분할 시스템이 삽입만을 포함하도록 훈련 절차의 단계에서 사용되는 레벤스타인 동작들을 제한하면(예컨대, 삭제 및 교체를 위한 코스트가 무한대로 설정됨), 훈련 절차의 단계의 출력은 연결 형태소들의 목록(306)을 포함할 수 있다.
형태학적으로 풍부한 언어들(예컨대, 그리스어, 헝가리어)에서 훈련 절차를 사용하여 형태소들을 학습하는 것은, 형태학적 동작들이 삽입뿐만 아니라 제거 및 교체도 포함할 수 있기 때문에 어려울 수 있다. 범용 합성어 분할 시스템은 훈련 절차의 단계가 될 수 있는 학습 프로세스에서 하나 이상이 형태학적 동작들을 추출하기 위해 식 (1)의 번역 쌍들을 사용할 수 있다. PTCS 테이블에서 복수의 단일 토큰 소스 단어들 f에 대해, 포함된 번역 쌍들의 품질은 전 범위(삽입, 제거 및 교체)의 형태학적 동작들의 학습에 영향을 줄 수 있다. 각각의 단일 토큰 소스 단어 f는 번역 쌍들의 선택에 어려움을 더하는 다중 번역(multiple translation)을 가질 수 있다. 또한 단일 토큰 소스 단어 f에 대한 올바른 번역이 PTCS 테이블에 포함되지 않을 수 있다.
일부 구현에 있어서, 범용 합성어 분할 시스템은 PTCS 테이블을 위한 엔트리들을 결정하는데 사용되는 추출 프로세스를 개선할 수 있다. 예를 들어, 제1 단계에서, 시스템은 합성어들을 포함하는 언어들이 어떠한 추가적인 형태학적 동작들이 사용 없이 합성어 부분들을 직접 연쇄시킴으로써 형성되는 엄청난 수의 합성어들을 갖는다고 가정할 수 있다. 이러한 가정은 범용 합성어 분할 단어장에 포함하기 위한 신뢰할 수 있는 합성어 부분들의 제1 그룹을 제공할 수 있다. 예를 들어, 제2 단계에서, 범용 합성어 분할 시스템은 제1 단계에서 결정된 범용 합성어 분할 단어장에 있는 합성어 부분들을 사용하는 유일한 형태학적 동작으로서, 삽입(연결 형태소들의 사용)을 허용할 수 있다.
일 예시적인 구현에 있어서, 시스템은 합성어의 소스 언어로부터 2개의 영어 단어들로 번역하는, 두 합성어 부분들을 포함하는 합성어만 고려한다. 또한 첫번째 합성 부분의 시작점 또는 마지막 합성어 부분의 종단점에서 발생하는 삽입은 각각의 합성어 부분들 자체의 형태학적 변형일 수 있다. 이러한 합성어 부분들의 식별된 형태학적 변형들이 범용 합성어 분할 단어장에 추가된다. 합성어에서 추가적인 삽입 동작들은 연결 형태소들을 고려한다. 시스템은 일부 추가적 학습된 연결 형태소들을, 범용 합성어 분할 시스템에 의해 분할하는 합성어에 사용된 형태소들의 목록에 추가할 수 있다. 예를 들어, 제3 단계에서, 범용 합성어 분할 시스템은 하나 이상의 형태학적 동작들을 포함할 수 있는 합성어에 분해 및 번역 동작들을 수행하기 위해, 업데이트된 범용 합성어 분할 단어장 및 제2 단계로부터 업데이트된 형태소들의 목록을 사용할 수 있다.
다른 구현에 있어서, 도 1을 참조하면, 분할기(132)는 입력 합성어에 대한 희망 분할 시퀀스(분할 포인트 및 구성성분의 숫자와 위치)를 결정하기 위해 합성어 분할 프로세스를 기반으로 능동 프로그램 모델을 사용할 수 있다. 분할기(132)는 입력 합성어, 토큰
Figure pct00004
를 수신할 수 있고,
Figure pct00005
은 글자들의 시퀀스이다. 분할기(132)는 합성어 부분들이 토큰 w의 구성성분들이 되도록 분할 포인트들
Figure pct00006
의 희망 시퀀스를 결정하기 위해 합성어 분할 프로세스 기반의 능동 프로그램 모델을 사용할 수 있고, 여기서, w는 다음과 같다.
Figure pct00007
도 1을 참조하면, 식(2)는 분할기(132)가 완전히 토큰 w을 구성성분인 어휘소들의 시퀀스로 분해하도록 요구한다. 따라서, 분할기(132)는 구성성분들을 찾을 수 있고, 토큰 w에 대한 희망 분할부분(desired segmentation)을 결정할 수 있다. 일부 구현에 있어서, 토큰 w의 소스 언어로 된 합성어의 구성성분들(예컨대, 게르만어)이 어휘소이다. 일부 구현에 있어서, 토큰 w의 소스 언어로 된 합성어의 구성성분들은 유효한 단어들이 아닐 수도 있다(즉, 비-사전적 단어). 예를 들어, 그리스어에서 식 (4)에 사용된 합성어 부분들은 그리스어 사전에 포함된 유효한 단어들이 아닐 수 있다. 이러한 경우, 분할기(132)는 토큰 w을 유효한 사전 단어들이 아닌 구성성분들로 분할할 수 있다. 분해 엔진(108)에 포함된 변형 모듈(136)은 각각의 비-사전 단어 구성성분을 어휘소로 변형할 수 있다. 변형된 어휘소들은
Figure pct00008
로 표시된다. 결정 규칙은 식 (5), (6) 및 (7)에 도시된 것처럼 개선될 수 있다.
Figure pct00009
Figure pct00010
로 표현되는 합성어 부분 확률은 제로 차수 모델(zero order model)이다. 합성어 부분 확률은 분할 수 K에 의존적이다. 분해 엔진(108)은 분할기(132)에 의해 식별된 각각의 분할에 상수 분할 패널티 ξ로 패널티를 적용한다. 그 다음, 확률은 분할 수 K 에 독립적일 수 있다. 식 (8)은 복합 부분 확률이 이전 분할에 독립적이고, 분할 수에 독립적인 합성어에서 분할 포인트들을 결정하는데 사용되는 결정 규칙을 나타낼 수 있다.
Figure pct00011
일부 구현에 있어서, 분해 엔진(108)은 합성어 소스 토큰을 위한 희망 분할 시퀀스를 찾기 위해 능동 프로그래밍을 사용할 수 있다. 코스트 함수는 각각의 합성어 분할을 위한 코스트를 결정할 수 있다. 코스트 함수는 각각의 구성 부분(구성성분)에 대한 개별 코스트로부터 분해된 단어의 합계 코스트를 산출할 수 있다. 합성 분할 프로세스를 기반으로 한 능동 프로그램 모델은 보조 함수 Q를 사용할 수 있다.
Figure pct00012
따라서,
Figure pct00013
는 최소 코스트(최대 확률)와 동일하고, 코스트 함수는 분할기(132)가 포지션
Figure pct00014
에서 K 분할 포인트들을 사용하는 접두어 스트링(prefix string)
Figure pct00015
에 할당한다. 이는 반복 식(10)을 발생시킨다.
Figure pct00016
백포인터(Backpointer)
Figure pct00017
는 식 (11)에서 정의된다.
Figure pct00018
식 (11)에서, 는 확률 또는 코스트 함수이다. 인버스 로그(inverse log)를 식 (10) 및 식(11)에 적용함으로써, 확률 양은 코스트로서 해석될 수 있다.
도 4는 합성어 분할 프로세스(400; 프로세스 1)를 기반으로 한 예시적인 능동 프로그램 모델의 목록화를 도시한다. 프로세스(400)는 입력 스트링의 길이에 대해 2차이다. 일부 구현에서, "for" 루프(402)는 다음과 같이 변경될 수 있다:
Figure pct00020
여기서 각각의 합성어 부분은 미리 결정된 길이 I를 초과하지 않는다. 이러한 변화의 결과로서, 프로세스(400)는 그 길이 I가 미리 결정된 상수이기 때문에 입력 단어
Figure pct00021
의 길이에서 선형적으로 된다.
일부 구현에 있어서, 프로세스(400)의 성능은 코스트 함수
Figure pct00022
또는 확률
Figure pct00023
에 의존한다. 다수의 정보 소스들은 확률을 모델로 만드는 데 사용될 수 있다. 도 1을 참조하여 설명한 것처럼, 단어 빈도 목록(예컨대, 제1 부분 단어 목록(114))은 빈도 수(예컨대, 빈도 수(114c))를 잠재적인 합성어 부분 후보(예컨대, 단어(114b))와 연관지어질 수 있다. 변형된 어휘소 합성어 부분들 gk에 대한 적절한 후보의 생성은 PTCS 테이블을 참조하여 이미 설명하였다.
gk에 대한 의존성이 무시된다면, 확률
Figure pct00024
에 있는 서브-단어
Figure pct00025
는 토큰 w을 형성하는데 사용될 수 있는 합성어 부분 후보들을 표현할 수 있다. 연관된 빈도 수를 함께 갖는 합성어 부분 후보들은 단일 언어적으로 언어 모델 단어 목록으로부터, 또는 이중 언어적으로 구절 테이블로부터 추출될 수 있다. 이러한 추출 프로세스들은 본 명세서에서 이미 설명되었다 합성어 부분 확률에 대한 제로 차수 모델이 사용은 언어 모델 단어 목록에 의해 제공되는 유니그램 수치(unigram counts; 빈도 수)를 갖는 합성어 부분 확률들의 직접 대체를 위해 허용한다. 이러한 경우, 정규화 상수, 상수 분할 패널티 ξ는 언어 모델 단어 목록에 각각의 엔트리에 대해 동일하게 남는다. 그러므로 정규화 상수는 합성어 부분 확률에 영향을 미치지 않고, 생략될 수 있다.
도 5는 단일 언어의 모델 단어 목록으로부터 추출된 예시적인 어휘소의 목록(500)을 도시한다. 목록(500)은 어휘소(예컨대, 어휘소(502), 그 어휘소의 연관된 빈도 수(예컨대, 빈도 수 (502a)) 및 그 어휘소의 언어를 나타내는 언어 코드(예컨대, 언어 코드(502b))를 포함한다. 도 1을 참조하면, 목록(500)은 범용 합성어 분할 시스템(예컨대, 시스템(100))에 의한 분해 엔진(예컨대, 분해 엔진(108))에 의해 사용되는 데이터베이스(예컨대, 데이터베이스(102))에 포함될 수 있다.
분할 포지션 nk-1에서의 확률의 의존성은, 합성어 분할 프로세스(예컨대, 프로세스(400))를 기반으로 한 능동 프로그램 모델이 토큰 w의 시작 지점, 중간 지점 또는 종결지점에 있는지 여부를 가리킨다. 이후에 프로세스는 시작, 연결 및 종결 형태소들 사이에서 구별할 수 있다. 도 3을 참조하여 설명한 것처럼, 범용 합성어 분할 시스템은 이중 언어 단계 테이블을 사용한 훈련 절차 동안 형태소들의 명확한 설정 또는 형태소들의 자동 추출을 허용할 수 있다.
형태소 목록(300)은 합성어를 형성하도록 합성어의 시퀀스를 연결하기 위해 각각이 접두사, 삽입사 또는 접미사 형태소로서 사용될 수 있는, 시작, 연결(예컨대, 형태소(306)), 및 종결 형태소(예컨대, 형태소(308))를 포함할 수 있다. 범용 합성어 분할 시스템은 합성어를 분해할 때, 각각 접두사, 삽입사 또는 접미사로서 시작, 연결 및 종결 형태소들을 추출할 수 있다. 일부 구현에 있어서, 범용 합성어 분할 시스템은 합성어를 분할할 때 하나 이상의 형태소들을 삭제하거나 대체할 수 있다.
도 6은 합성어 부분의 접미사에 대한 스테머(stemmer; 602) 및 생성기(604) 종결 형태소의 목록을 도시한다. 범용 합성어 분할 시스템은 스테머 및 생성기 규칙들을 사용하여 형태소 대체를 수행할 수 있다. 부분 목록(600)은 그리스어(예컨대, 언어 코드 "el")의 종결 형태소들을 포함한다. 예를 들어, 합성어 분할 프로세스를 기반으로 한 능동 프로그램 모델을 이용하는 범용 합성어 분할 시스템은 그리스어: (영어 번역: gamble)를 아래와 같이 분해한다.
Figure pct00027
이러한 예에서, 합성어 부분
Figure pct00028
의 접미사 O는 스테머 접미사(606)에 의해 저지되고, 생성기 접미사(608)에 의해 대체된다. 일부 구현에 있어서, 범용합성어 분할 시스템은 생성기 규칙의 후속 적용 없이 스테머 규칙을 적용함으로써 형태소의 삭제를 수행할 수 있다. 일부 구현에 있어서, 도 4에 도시된 프로세스(400)는 형태소 시퀀스들의 생성을 피하여 다수의 형태소들 간의 직접 변형(trnasition)을 처리하지 않는다. 이를 실현하기 위해, 직접적으로 다른 형태소를 완성한 다른 형태소들의 코스트를 무한대로 설정할 수 있다.
일부 구현에 있어서, 범용 합성어 분할 시스템에 포함된 범용 프로세서는 복수의 코스트 함수들을 지원하기 위해 맞춤화가능한 스코어러 인터페이스(customizable scorer interface)를 제공한다. 예를 들어, 특정 스코어러는 합성어의 구성성분 각각에 코스트들을 할당하는 스코어링 함수를 구현한다. 또한 스코어러 인터페이스는 임의의 형태학적 동작들을 다루기 위한 방법들을 제공할 수 있다. 일단 훈련 절차 동안 범용 합성어 분할 시스템이 형태학적 동작들을 학습하면, 형태학적 동작들은 형태소 목록들(예컨대, 목록(300), 목록(600))에 포함될 수 있다.
도 7은 범용 합성어 분할 시스템에 의해 제공되는 언어들의 테이블(700)이다. 테이블(700)은 그들의 언어 패밀리에 따라 그룹화한 언어들을 목록화한다. 범용 합성어 분할 시스템은 테이블(700)에 목록화되지 않은 추가적인 언어들을 지원할 수 있다. 일부 구현에 있어서, 범용 합성어 분할 시스템은 그 시스템에 의해 지원되는 각각의 언어에 대해 분해 프로세스에서 사용하기 위한 언어 상세 정보를 포함한다. 언어 상세 정보는 언어 의존 단어 빈도 목록 및 언어 종속적 형태소들 또는 형태학적 동작들의 집합을 포함할 수 있다.
도 1 및 4를 참조하면, 코스트 함수인 프로세스(400)에 대한 코스트
Figure pct00029
를 산출하기 위해, 분할기(132)는 데이터베이스(102)에 저장된 단어 빈도 목록으로부터 합성어 부분 후보
Figure pct00030
의 단어 빈도를 검색한다. 예를 들어, 단어 빈도 목록이 단어당 20 바이트의 평균 길이 및 단어 빈도를 저장하기 위해 4 바이트 정수값을 갖는, 대략 언어당 100,000 엔트리들을 포함한다면, 데이터베이스(102)는 50개 언어들을 지원하기 위해 분해 모듈들을 위한 정보를 저장하도록 저장소의 대략 115MBytes를 요청할 것이다.
일부 구현에 있어서, 언어 관련 정보에 필요한 저장소의 양을 감소시키기 위해서, 범용 합성어 분할 시스템은 그 단어의 핑거프린트(fingerprint)를 위한 40 비트(bits) 및 그 단어의 빈도를 위한 24비트를 마련하여 완전한 64-비트 핑거프린트를 산출한다. 그러므로 단어 빈도를 위한 검색 테이블은 완전한 단어들을 저장할 필요가 없다. 범용 합성어 분할 시스템은 특정 합성어 후보가 그 단어 빈도 목록 내에 발생하는지 여부에 관심이 있고, 그 후보 자체를 검색할 필요는 없다. 그러므로 단어 빈도 목록 내에서 단어에 대한 핑거프린트를 유지하기에 충분하다. 40-비트를 이용하여 핑거프린트는 충돌(다른 단어들과 동일한 핑거프린트) 수를 감소시킬 수 있다. 40-비트 핑거프린트의 사용은 단어 빈도 목록 내에 완전한 단어들을 저장하는 데 필요한 115MBytes보다 훨씬 적은, 50가지 언어 지원을 위한 19MBytes의 메모리 풋프린트(memory footprint)를 초래한다.
예를 들어, 도 1의 범용 합성어 분할 시스템(100)은 영어 합성어: flowerpot을 분할하려고 시도한다. 도 1을 참조하면, 분해 엔진(108)은 합성어를 검색한다. 분할기(132)는 프로세스(400)가 모든 분할 포인트를 시험해보도록 실행하고, 코스트 함수에 따라 최소 코스트를 낳는 합성어 분할을 결정한다. 이 예에서, 합성어는 2 부분으로 분할될 것이다. 분할기(132)는 2개의 분할 포인트들을 배치하고, 분할 포인트들의 수는 K(예컨대, K=2)로 표현되고, 합성어에 있는 분할 포인트들의 위치는 n1 및 n2로 표현된다. 합성어 "flowerpot"은 9개의 글자 c1,...,c8 로 구성되기 때문에, c1,...,c8 글자들에 있는 분할 포인트 위치에 대해 8개의 확률들이 있다. 예를 들어, n1=6이면, 6번째 글자에서 끝나는 구성성분 후보는 첫번째 합성어 부분"flower"이다. 분할 포인트 n2는 항상 합성어의 마지막 글자이다. 분할 포인트 n2의 포지션은 고정되고, n2=9로 미리 설정될 수 있다. 따라서, 남은 글자들 c7,...,c9은 두번째 합성어 부분 "pot"을 형성한다. 합성어 "flowerpot"에서의 모든 가능한 단일 분할들을 시도하는 것은 후술하는 구성성분 후보들을 초래한다.
Figure pct00031
Figure pct00032
구성성분 후보가 합성어 "flowerpot"의 합성어 부분인지를 결정하는 데 있어서, 프로세스(400)를 이용하여 분할기(132)는 단어 빈도 목록에 포함된 그 후보를 위한 빈도 수를 이용하여 코스트를 각각의 합성어 부분 후보와 연관시킨다. 프로세스(400)는 각각의 구성성분 후보의 코스트를 더함으로써 합성어의 분해를 위해 구성성분 후보들에 대한 합계 코스트를 결정한다. 예를 들어, 한 글자 "f"는 합성어를 분해하는 동안, 합성어를 분해하기 위한 합계 코스트에 대해 작은 코스트(높은 확률)의 기여는 자주 발생할 수 있으나, 단어 "lowerpot"은 합성어를 분해하기 위한 합계 코스트에 높은 코스트(낮을 확률)를 기여하는 것이므로 전혀 일어날 가능성이 없다. 그러므로, "flowerpot"를 "f" 및 "lowerpot"으로 분할할 가능성은 적다.
다른 예에서, 구성성분 "flower"는 그 합성어를 분해하기 위한 합계 코스트에 대 작은 코스트(높은 확률)를 기여하는 영어에서 자주 발생하고, 구성성분 "pot" 또한 합성어 분해를 위한 합계 코스트에 대해 추가적인 작은 코스트(높은 확률)을 기여하는 영어에서 자주 발생한다. 프로세스(400)는 이러한 분할을 위한 코스트가 가장 낮다고 결정할 수 있고, 따라서 그 구성성분들은 그 합성어의 합성어 부분들이 된다. 분할 포인트 n1을 위한 희망 포지션은 6과 동일하다.
예를 들어, 도 1의 범용 합성어 분할 시스템(100)은 독일어 합성어 "Verkehrszeichen"(영어 번역: traffic sign)를 분할하고자 시도한다. 영어 합성어 "flowerpot"을 2개의 합성어 부분들로 분할하는 예에서, 합성어는 2개의 연쇄된 사전적 단어들로 구성되었다. 하지만 독일어 합성어 "Verkehrszeichen"는 2개의 서브-단어들 사이에 s 형태소 또는 연결 형태소를 가진 2개의 합성어 부분 사전적 단어로 구성된다. 도 1을 참조하면, 분해 엔진(108)은 합성어를 수신한다. 분할기(132)는 모든 분할 포인트를 시험해보고, 코스트 함수에 따라 최소 코스트를 발생시키는 합성어 분할을 결정하기 위해 프로세스(400)를 실행할 수 있다. 이 예에서, 합성어는 3개 부분(K=3)으로 분할될 것이다. 합성어 "Verkehrszeichen"에서 모든 가능한 이중 분할들을 시험해 보는 것은 후술하는 구성성분 후보들을 발생시킨다.
Figure pct00033
분할기(132)는 그 빈도를 결정하기 위해 단어 빈도 목록에서 각각의 잠재적인 구성성분을 검색한다. 프로세스(400)는 최소 코스트(최고 확률)을 가진 합성어 분할을 결정함으로써 희망 분할 포인트들을 결정한다. 이는 n1=7, n2=8, 및 n3=15의 분할 포인트들에 대한 포지션에 있는 희망 합성어 분할을 발생시킨다. 이러한 예에서, 추가적인 s 형태소는 합성어 부분들 Verkehr 및 zeichen를 연결하는 것으로서 연결 형태소이다. 일부 구현에 있어서, 범용 합성어 분할 시스템(100)은 모든 가능한 연결 형태소의 목록(예컨대, 목록(300))을 포함할 수 있다. 시스템은 2개의 합성어 부분들 사이에 삽입하기 가능한 연결 형태소들을 제기할 수 있다.
예를 들어, 도 1의 범용 합성어 분할 시스템(100)은 그리스 합성어
Figure pct00034
(영어 번역: cardboard box)를 분할하도록 시도한다. 독일 합성어 "Verkehrszeichen" 분할의 예에서, 시스템(100)은 2개의 합성어 부분들 사이에 연결 형태소를 삽입했다. 그리스 합성어의 첫번째 합성어 부분
Figure pct00035
은 그리스 사전에서 찾을 수 있다. 두번째 합성어 부분
Figure pct00036
은 유효한 그리스 단어가 아니고, 그리스 사전에서 찾을 수 없다.
추가적으로 첫번째 합성어 부분
Figure pct00037
이 그리스 사전에서 발견되더라도, 합성어 부분의 더 통상적으로 발견되는 형식은
Figure pct00038
이다. 도 1을 참조하면, 범용 합성어 분할 시스템(100)의 분해 엔진(108)은 하나 이상의 형태소 대체를 수행할 수 있다. 구체적으로, 분해 엔진(108)에 있는 변형 모듈(136)은 하나 이상의 합성어 부분 후보들의 접미사를, 변형된 합성어 부분 후보를 초래하면서 형태학적 동작 gk를 수행하는 형태소로 대체할 수 있다. 분해 엔진(108)은 단어 빈도 목록에 있는 변형된 합성어 부분 후보를 검색할 수 있고, 그의 빈도 수를 결정할 수 있다. 분할기(132)는 모든 분할 포인트를 시험해보고, 코스트 함수에 따라 최소 코스트를 야기하는 합성어 분할을 결정하기 위해 프로세스(400)를 실행할 수 있다.
분할기(132)는 합성어
Figure pct00039
에서 모든 가능한 이중 분할을 시험해볼 수 있고, 후보를 비-사전적 단어로부터 사전적 단어로 변형하기 위해 하나 이상의 합성어 부분 후보들 상에서 다양한 형태학적 동작들 gk를 수행할 수 있다. 이는 후술하는 합성어 후보들 및 형태학적 동작들 gk를 야기한다.
Figure pct00040
언어에 의존하여, 형태학적 동작들 gk가 임의로 복잡하게 될 수 있다. 또한 모든 언어에 대해 모든 형태학적 동작들을 명확하게 목록화하는 것이 실현 불가능할 수도 있다. 따라서, 훈련 절차를 이용하여, 형태학적 동작들이 발견되고, 추가적인 정보 소스로서 범용 합성어 분할 시스템에 제공될 수 있다.
도 8은 본 개시의 구현에 따라 사용될 수 있는 네트워크 구조(800)의 예시에 대한 다이어그램이다. 모든 요소들은 네트워크(806)에 연결된다. 도 8의 각각의 디바이스(808, 806, 814)는 하드웨어 컴포넌트, 소프트웨어 컴포넌트, 또는 펌웨어 컴포넌트, 또는 그러한 컴포넌트들의 일부 조합으로 구현되거나 그와 연관될 수 있다. 예를 들어, 디바이스들(808, 806, 814)는 범용 서버, 소프트웨어 프로세스들 및 엔진들, 및/또는 다양한 내장 시스템들로 구현되거나 그와 연관될 수 있다.
구조(800)는 하나 이상의 사용자 액세스 디바이스들(808)(사용자 액세스 디바이스(808a), 사용자 액세스 디바이스(808b), 사용자 액세스 디바이스(808c)) 및 컴퓨터 시스템(814)을 포함한다. 컴퓨터 시스템(814)은 서버(802) 및 데이터베이스들(804a, 804b, 804c, 804d)을 포함한다. 일부 구현에 있어서, 구조(800)는 네트워크(806)를 통해 서로 통신하기 위해 접속으로 연결된 하나 이상의 클라이언트들(예컨대, 사용자 액세스 디바이스(808a)가 클라이언트 역할을 함) 및/또는 하나 이상의 서버들(예컨대, 서버(802))을 포함하는 다중 컴퓨터 시스템들을 지원하는 클라이언트/서버 시스템을 나타낸다. 일부 구현에 있어서, 클라이언트들은 (네트워크(806)를 경유하여 연결하지 않고) 하나 이상의 서버들에 직접 접속된다.
사용자 액세스 디바이스(808)는 네트워크(806)로부터 정보를 수신할 능력이 있는 디바이스들을 포함할 수 있다. 사용자 액세스 디바이스들(808)은 범용 컴퓨터, 특수 컴퓨터, 데스크탑 컴퓨터, 랩탑 컴퓨터, 소형 컴퓨터, 개인 휴대 단말기(PDA), 셀룰러 전화, 네트워크 기기, 카메라, 스마트폰, 향상된 일반 패킷 라디오 서비스(EGPRS) 모바일 전화, 미디어 플레이어, 내비게이션 디바이스, 이메일 디바이스, 게임 콘솔, 또는 이러한 데이터 프로세싱 디바이스들 또는 다른 데이터 프로세싱 디바이스들의 어느 둘 이상의 조합을 포함할 수 있고 이에 한정되는 것은 아니며 다양한 형태의 프로세싱 디바이스로 나타날 수 있다. 또한 각각의 사용자 액세스 디바이스들(808)은 서버(802)상의 어플리케이션 소프트웨어에 액세스할 수 있다.
서버(802)는 웹 서버, 어플리케이션 서버, 프록시 서버, 네트워크 서버 또는 서버 팜(server farm)을 포함할 수 있으며 이에 한정되지 않고 다양한 형태의 서버들로 나타날 수 있다. 예를 들어, 서버(802)는 사용자 액세스 디바이스들(808)에 의해 액세스되는 소프트웨어를 실행하는 어플리케이션 서버일 수 있다. 동작에 있어서, 다수의 사용자 액세스 디바이스들(808)은 네트워크(806)를 거쳐 서버(802)와 통신할 수 있다. 일부 구현에 있어서, 구조(800)는 사용자로 하여금 사용자 액세스 디바이스들(808) 중 하나에서 구동하는 웹 브라우저를 이용하여 서버(802)상에서 이용가능한 어플리케이션들을 적용하도록 할 수 있다. 각각의 어플리케이션은 하나 이상의 저장소 리소스들(repository resources; 예컨대, 데이터베이스들(804a, 804b, 804c, 804d))로부터 개별적으로 데이터에 액세스할 수 있다. 예를 들어, 서버(802)는 데이터베이스(804a, 804b, 804c, 804d)에 액세스한다.
일부 구현에 있어서, 사용자 액세스 디바이스들(808)은 필요 시 디지털 신호 프로세싱 회로를 포함할 수 있는 통신 인터페이스(도시하지 않음)를 통해 무선으로 통신한다. 통신 인터페이스는 GSM 음성 통화, SMS, EMS, 또는 MMS메시지, CDMA, TDMA, PDC, WCDMA, CDMA2000 또는 GPRS와 같은 다양한 모드들 또는 프로토콜들 하에서 통신을 대비할 수 있다. 예를 들어, 통신은 라디오 주파수 송수신기(도시하지 않음)를 통해 일어날 수 있다. 또한 단-범위 통신은 예를 들어 블루투스(예컨대, IEEE 802.15x), WiFi(예컨대, 802.11x) 또는 다른 송수신기를 이용하여 일어날 수 있다.
일부 구현에 있어서, 구조(800)는 네트워크(806)를 통해 하나 이상의 네트워크들을 스팬하는 분산형 클라이언트/서버 시스템이다. 네트워크(806)는 임의의 수의 모바일 클라이언트들, 고정 클라이언트들 및 서버들을 연결하는, 근거리 네트워크(LAN), 광대역 네트워크(WAN), 인터넷, 셀룰러 네트워크 또는 이들의 조합과 같은 대형 컴퓨터 네트워크일 수 있다. 일부 구현에 있어서, 사용자 액세스 디바이스들(808) 각각은 가상 개인 네트워크(VPN), 시큐어 셸(Secure Shell)(SSH) 터널, 또는 다른 보안 네트워크 연결을 통해 서버(802)와 통신한다. 일부 구현에 있어서, 네트워크(806)는 인터넷, 무선 서비스 네트워크를 포함하고, 공중 회선 전화망 네트워크(PSTN)을 포함할 수 있다. 다른 구현에 있어서, 네트워크(106)는 협동 네트워크(예컨대, 인터넷) 및 하나 이상의 무선 액세스 포인트들을 포함한다.
각각의 사용자 액세스 디바이스(808)는 서버(802)와 고유 세션을 구축할 수 있다. 각각의 세션은 제시간에 하나의 포인트에서 구축되고, 다른 포인트에서 해제되기 때문에 준-영속적일 수 있다. 각각의 세션은 컴퓨터 시스템(814)과 각각의 개별 사용자 액세스 디바이스 간의 양방향 정보 교환을 포함할 수 있다. 예를 들어 HTTP(Hypertext Transfer Protocol) 세션은 개인 사용자들과 정보의 연계를 허용한다. 하나 이상의 사용자 액세스 디바이스들(808)은 네트워크(806)를 통해 서버(802)와 통신할 수 있다. 어플리케이션을 구동하기 위해, 각각의 사용자 액세스 디바이스는 그 어플리케이션 서버(802)와 상응하는 세션을 구축할 수 있다.
예를 들어, 사용자 액세스 디바이스(808a)를 사용하는 사용자는 네트워크(806)을 거쳐 서버(802)에 통신 세션을 구축할 수 있다. 서버는 범용 합성어 분할 시스템(예컨대, 도 1에서 설명한 범용 합성어 분할 시스템(100))을 포함할 수 있다. 사용자는 디스플레이 디바이스(818)에 디스플레이된 그래픽 사용자 인터페이스(GUI)에서, 키보드(816)를 이용하여 번역할 합성어를 입력할 수 있다. 사용자에 의한 GUI에 포함된 번역 버튼 활성화에 대한 응답으로, 사용자 액세스 디바이스(808a)는 네트워크(806)를 거쳐 합성어를 컴퓨팅 시스템(814)에 전송한다. 도 1을 참조하면, 범용 합성어 분할 시스템(100)을 포함하는 서버(802)가 합성어를 수신하고, 그 합성어를 입력 스트링 모듈(122)에 입력한다. 그 다음, 범용 합성어 분할 시스템(100)은 본 명세서에서 이미 설명한 것처럼 입력 합성어에 대해 분해 및 번역 프로세스를 수행한다. 이러한 프로세스를 수행하는 동안, 시스템(100)은 데이터베이스(102, 104, 106 및 128)를 나타낼 수 있는 하나 이상의 데이터베이스들(804a, 804b, 804c, 804d)을 액세스할 수 있다. 컴퓨팅 디바이스(814)뿐만 아니라, 시스템(100)은 범용 합성어 분할 시스템에 필요한 추가적인 데이터베이스들을 포함할 수 있다. 번역 엔진(142)은 번역된 출력 스트링(144)을 출격한다. 서버(802)는 네트워크(806)를 거쳐 디스플레이 디바이스(818)상의 GUI에서 사용자에게 디스플레이하기 위한 번역된 출력 스트링(144)을 사용자 액세스 디바이스(808a)에 전송한다.
도 9는 예시적인 분해 프로세스(900)의 플로우차트이다. 범용 합성어 분할 시스템(100), 구체적으로 분해 엔진(108)이 프로세스(900)을 실행할 수 있다.
예를 들어, 도 1을 참조하면, 프로세스(900)는 토큰이 획득될 때(904) 시작한다(902). 예를 들어, 입력 스트링 모듈(122)은 토큰(입력 스트링(126))을 획득한다. 분해 엔진(108)은 그 토큰(입력 스트링(126))을 수신한다. 분해 엔진(108)은 토큰에 포함된 둘 이상의 후보 서브-단어들을 식별한다(906). 도 1을 참조하여 설명한 것처럼, 분할기(132)는 입력 토큰에 대한 둘 이상의 후보 서브-단어들을 결정하기 위해 프로세스(400)(도 4의 400)를 실행한다. 분해 엔진(108)은 하나 이상의 형태학적 동작들(208)을 식별한다. 변형 모듈(136)은 분해 프로세스에서 하나 이상의 형태학적 동작들을 사용할 수 있다. 분해 엔진(108), 구체적으로 코스트 모듈(134)은, 각각의 서브-단어의 코스트를 결정한다(210). 또한 합성어 엔진(108) 및 코스트 모듈(134)은 각각의 형태학적 동작들의 코스트를 결정한다(212). 프로세스는 종료한다(216).
다수의 구현들이 설명되었다. 그럼에도 본 개시의 사상 및 범위를 벗어나지 않는 범위 내에서 다양한 변형들이 만들어질 수 있음을 이해할 것이다. 예를 들어, 상기 도시된 플로우의 다양한 형태들이 단계의 재배열, 추가 또는 제거와 함께 상용될 수 있다. 따라서, 다른 구현들은 후술하는 청구범위 내에 있다.
본 명세서에 설명된 발명의 실시예 및 모든 기능적 동작들은, 본 명세서에 개시된 구조 및 그들의 구조적 등가물들을 포함하는 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 발명의 실시예들은 하나 이상의 컴퓨터 프로그램 제품, 즉 데이터 프로세싱 장치에 의해 실행되거나 그 동작을 제어하기 위한 컴퓨터 판독가능한 기록매체에 인코드된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈들로 구현될 수 있다. 컴퓨터 판독가능한 매체는 기계-판독가능한 저장 디바이스, 기계-판독가능한 저장 기판, 메모리 디바이스, 기계-판독가능한 전파된 신호를 가져오는 경우의 구성, 또는 그들 중 하나 이상의 결합일 수 있다. "데이터 프로세싱 장치"라는 용어는 예시적인 프로그래머블 프로세서, 컴퓨터, 또는 다중 프로세서들 또는 컴퓨터들을 포함하는 프로세싱 데이터를 위한 모든 장치, 디바이스들 및 기계들을 포함한다. 장치는 하드웨어에 추가하여, 문제의 컴퓨터 프로그램을 위한 실행 환경을 만드는 코드(예컨대, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 시스템, 또는 이들 중 하나 이상의 조합을 구성하는 코드)를 포함할 수 있다. 전파된 신호는 인위적으로 생성된 신호(예컨대, 적절한 수신 장치에 전송하기 위한 정보를 인코드하도록 생성되는 기계-생성된 전자적, 광학적 또는 저자기적 신호)이다.
컴퓨터 프로그램(또한 프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 또는 코드로 알려진 것들)은 컴파일되거나 해독된 언어들을 포함하는 프로그래밍 언어의 한 형태로 쓰여질 수 있고, 독립형 프로그램으로서 또는컴퓨팅 환경에서 사용하기 적절한 모듈, 컴포넌트, 서브루틴 또는 다른 유닛으로서 포함하는 한 형태로 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템에 있는 파일에 필수적으로 부합하지는 않는다. 프로그램은 다른 프로그램들 또는 데이터를 보유한 파일(예컨대, 마크업 언어 문서에 저장된 하나 이상의 스크립트들)의 일부에, 문제의 프로그램에 주어진 단일 파일에, 또는 다수의 공동작업 파일들(예컨대, 하나 이상의 모듈들, 서브 프로그램들 또는 코드 부분들을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는, 하나의 사이트에 배치되거나 다수의 사이트들에 걸쳐 분배되고, 통신 네트워크에 의해 상호 연결된 다수의 컴퓨터들 상에서 실행되도록 배치될 수 있다.
본 명세서에 설명된 프로세스들 및 로직 플로우들은 입력 데이터상에서 동작하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그래머블 프로세서들에 의해 수행될 수 있다. 또한 프로세스들 및 로직 플로우들은 특수 목적의 로직 회로, 예컨대 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있고, 또한 장치는 이들로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은 예로서, 범용 및 특수 목적의 마이크로프로세서들 모두 및 디지털 컴퓨터의 일종인 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 쓰기 전용 메모리 또는 랜덤 액세스 메모리 또는 둘다로부터 명령들 및 데이터를 수신할 것이다. 컴퓨터의 필수적인 요소들은 명령들을 수행하기 위한 프로세서 및 명령들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 데이터를 수신하거나, 데이터를 전송하거나, 또는 둘다를 위해 예컨대, 자기, 전자기 광학 디스크 또는 광학 디스크들과 같이, 데이터를 저장하기 위한 하나 이상의 대형 저장 디바이스들을 포함하거거나, 동작 시 연결될 것이다. 그러나 컴퓨터는 그러한 디바이스들을 구비할 필요는 없다. 더욱이, 컴퓨터는 예컨대, 몇가지 명명하자면, 태블릿 컴퓨터, 모바일 전화, 개인 디지털 장치(PDA), 모바일 오디오 플레이어, 글로벌 포지셔닝 시스템(GPS) 수신기와 같은 다른 디바이스에 내장될 수 있다. 컴퓨터 프로그램 명령들 및 데이터를 저장하기 적합한 컴퓨터 판독 가능한 매체는, 예로서, 반도체 메모리 디바이스들(예컨대, EPROM, EEPROM, 및 플래시 메모리 디바이스), 마그네틱 디스크(예컨대, 내부 하드 디스크 또는 제거 가능한 디스크); 광자기 디스크; 및 CD ROM 및 DVD-ROM 디스크들을 포함한, 모든 형태의 비휘발성 메모리, 미디어 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적의 로직 회로에 의해 보완되거나 그와 병합될 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에 설명된 시스템과 기술들은 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스(예컨대, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터) 및 사용자가 컴퓨터에 입력을 제공하는데 사용하는 키보드와 포인팅 디바이스(예컨대, 마우스 또는 트랙볼(trackball))를 구비한 컴퓨터에서 구현될 수 있다. 다른 종류의 디바이스들도 사용자와의 상호작용을 제공하는데 사용될 수 있다. 예를 들어, 사용자에게 제공된 피드백은 임의 형태의 감각 피드백(예컨대, 시각 피드백, 청각 피드백, 또는 촉각 피드백)일 수 있다. 그리고 사용자로부터의 입력은 음향, 구어 또는 촉각 입력을 포함하는 임의 형태로 수신될 수 있다.
본 명세서에 설명된 시스템과 기술은 백엔드(back-end) 구성요소(예컨대, 데이터 서버), 또는 미들웨어(middleware) 구성요소(예컨대, 애플리케이션 서버), 또는 프론트엔드(front-end) 구성요소(예컨대, 사용자가 본 명세서에 설명된 시스템과 기술들의 구현과 상호작용할 수 있는 그래픽 사용자 인터페이스 또는 웹브라우저를 갖는 클라이언트 컴퓨터), 또는 그러한 백엔드, 미들웨어 또는 프론트엔드 구성요소들의 임의 조합을 포함하는 컴퓨터 시스템에서 구현될 수 있다. 이 시스템의 구성요소들은 임의 형태나 매체의 디지털 데이터 통신(예, 통신 네트워크)에 의해 서로 연결될 수 있다. 통신 네트워크의 예에는 근거리통신망("LAN"), 광역 통신망("WAN") 및 인터넷이 있다.
컴퓨터 시스템은 클라이언트들과 서버들을 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 떨어져 있고, 통상은 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 각 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 비롯된다.
본 명세서가 다수의 특정한 구현의 상세 사항을 포함하고 있지만, 이는 임의 구현의 범위나 청구 범위에 대한 제한으로서 이해되어서는 안 되며, 특정 구현의 실시 형태에 고유할 수 있는 특징들의 설명으로서 이해되어야 한다. 별개의 실시형태와 관련하여 본 명세서에서 설명된 소정 특징들은 조합되어 단일 실시형태로 구현될 수 있다. 반대로, 단일 실시형태와 관련하여 설명한 다양한 특징들은 복수의 실시형태에서 별개로 구현되거나 임의의 적당한 서브조합(subcombination)으로서도 구현 가능하다. 또한, 앞에서 특징들이 소정 조합으로 동작하는 것으로서 설명되고 그와 같이 청구되었지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우에 당해 조합으로부터 삭제될 수 있으며, 청구된 조합은 서브조합이나 서브조합의 변형에 관한 것일 수 있다.
마찬가지로, 도면에서 특정한 순서로 동작을 묘사하고 있지만, 그러한 동작들이 바람직한 결과를 얻기 위해, 도시한 특정 순서나 순차적인 순서로 수행되어야 한다거나, 설명한 모든 동작들이 수행되어야 한다는 것을 요구하는 것으로 이해되어서는 안 된다. 소정 환경에서, 멀티태스킹 및 병렬 프로세싱이 바람직할 수 있다. 또한, 상술한 실시형태에 있어서 다양한 시스템 구성요소들의 분리는 모든 실시형태에서 그러한 분리를 요구하는 것으로 이해해서는 안 되며, 설명한 프로그램 구성요소들과 시스템들은 단일 소프트웨어 제품으로 통합되거나 또는 복수의 소프트웨어 제품으로 패키지될 수 있다는 점을 이해해야 한다.
따라서, 본 발명의 특정 실시예들이 설명되었다. 그 밖의 실시예들도 후술하는 청구항의 범위 내에 있다. 예를 들어, 청구항에 언급된 동작들은 다른 순서로 수행되어도 여전히 바람직한 결과들을 달성할 수 있다.

Claims (35)

  1. 하나 이상의 컴퓨터; 및
    상기 하나 이상의 컴퓨터들에 의해 실행될 때, 상기 하나 이상의 컴퓨터들로 하여금 동작들을 수행하도록 하는 저장된 명령어들을 갖는 상기 하나 이상의 컴퓨터에 연결된 컴퓨터-판독가능한 매체를 포함하는 시스템으로서,
    상기 동작들은, 일련의 글자들을 포함하는 토큰(token)을 획득하는 단계, 상기 토큰의 구성성분인 후보 서브-단어들(sub-words) 및 상기 서브 단어들을 토큰으로 변형시키기 위해 요구되는 하나 이상의 형태학적 동작들(morphological operations)을 식별하는 단계, 및 각각의 서브-단어와 관련된 코스트(cost) 및 각각의 형태학적 동작들과 관련된 코스트를 결정하는 단계를 포함하고,
    적어도 하나의 상기 형태학적 동작들은 비-사전적 단어의 사용을 포함하는 것을 특징으로 하는 시스템.
  2. 청구항 1에 있어서,
    상기 동작들은 각각의 서브-단어와 관련된 상기 코스트를 각각의 형태학적 동작과 관련된 상기 코스트와 결합하는 단계를 더 포함하는 시스템.
  3. 청구항 2에 있어서,
    상기 동작들은 상기 결합 코스트들에 기초하여, 상기 토큰을 상기 후보 서브-단어들로 분해하도록 결정하는 단계를 더 포함하는 시스템.
  4. 청구항 3에 있어서,
    상기 코스트를 결정하는 단계는, 다수의 점수 함수(scoring functions) 중에서 상기 서브-단어들에 코스트를 할당하는 맞춤 점수 함수를 선택하는 단계를 더 포함하는 시스템.
  5. 청구항 3에 있어서,
    상기 토큰을 분해하도록 결정하는 단계는, 상기 결합 코스트들이 상기 토큰의 구성성분들인 부호 서브-단어들의 모든 식별된 결합들과 관련하여 최소의 결합 코스트를 포함할 때, 상기 토큰을 상기 후보 서브-단어들로 분해하도록 결정하는 단계를 더 포함하는 시스템.
  6. 청구항 1에 있어서,
    상기 동작들은 상기 서브-단어 사이에서 분할 포인트들(split points)의 양을 결정하는 단계; 및
    상기 분할 포인트들의 양과 관련된 코스트를 결정하는 단계를 더 포함하는 시스템.
  7. 청구항 1에 있어서,
    상기 적어도 하나의 형태학적 동작은, 2개의 상기 후보 서브-단어들 사이에 비-사전적 단어를 삽입하는 단계, 상기 토큰으로부터 상기 비-사전적 단어를 삭제하는 단계, 상기 하나 이상의 후보 서브-단어들의 접두어로서 상기 비-사전적 단어를 프리펜딩(prepending)하는 단계, 상기 하나 이상의 후보 서브-단어들의 접미어로서 상기 비-사전적 단어를 포스트펜딩(postpending)하는 단계, 또는 상기 하나 이상의 후보 서브-단어들의 삽입어로서 상기 비-사전적 단어를 삽입하는 것을 포함하는 시스템.
  8. 청구항 1에 있어서,
    상기 비-사전적 단어는 연결 형태소(linking morpheme)을 포함하는 시스템.
  9. 청구항 1에 있어서,
    상기 비-사전적 단어는 상기 서브-단어들의 언어에서, 정의된 의미를 갖지 않는 글자들의 서브-시퀀스(sub-sequence)를 포함하는 시스템.
  10. 컴퓨터로 구현되는 방법으로서,
    일련의 글자들을 포함하는 토큰을 획득하는 단계;
    상기 토큰의 구성성분인 후보 서브-단어들 및 상기 서브 단어들을 토큰으로 변형시키기 위해 요구되는 하나 이상의 형태학적 동작들을 식별하는 단계로서, 적어도 하나의 상기 형태학적 동작들은 비-사전적 단어의 사용을 포함하는 상기 식별하는 단계; 및
    각각의 서브-단어와 관련된 코스트 및 각각의 형태학적 동작들과 관련된 코스트를 결정하는 단계를 포함하는 방법.
  11. 컴퓨터 프로그램으로 인코드된 컴퓨터 저장 매체로서,
    상기 프로그램은 데이터 프로세싱 장치에 의한 실행 시 상기 데이터 프로세싱 장치로 하여금 동작들을 수행하도록 하는 명령들을 포함하고,
    상기 동작들은,
    일련의 글자들을 포함하는 토큰을 획득하는 단계;
    상기 토큰의 구성성분인 후보 서브-단어들 및 상기 서브 단어들을 토큰으로 변형시키기 위해 요구되는 하나 이상의 형태학적 동작들을 식별하는 단계로서, 적어도 하나의 상기 형태학적 동작들은 비-사전적 단어의 사용을 포함하는 상기 식별하는 단계; 및
    각각의 서브-단어와 관련된 코스트 및 각각의 형태학적 동작들과 관련된 코스트를 결정하는 단계를 포함하는 컴퓨터 저장 매체.
  12. 하나 이상의 컴퓨터; 및
    상기 하나 이상의 컴퓨터들에 의해 실행될 때, 상기 하나 이상의 컴퓨터들로 하여금 동작들을 수행하도록 하는 저장된 명령어들을 갖는 상기 하나 이상의 컴퓨터에 연결된 컴퓨터-판독가능한 매체를 포함하는 시스템으로서,
    상기 동작은,
    제1 단어에 나타나는 단어들 및 각각의 개별 단어가 상기 제1 단어에 나타나는 빈도를 식별하는 단계;
    상기 제1 단어에서 구성성분들로서 나타나는 상기 단어들을 이용하여 제2 단어에 나타난 단어들을 분해하는 단계; 및
    상기 제2 단어에 나타나는 상기 단어들을 분해하기 위해 구성성분들로서 사용되었던 상기 제1 단어에 나타난 단어들을, 범용 합성어 분할 단어(universal compound splitter vocabulary)로 출력하는 단계를 포함하는 시스템.
  13. 청구항 12에 있어서,
    상기 제1 단어는 뉴스 언어 모델 단어를 포함하는 시스템
  14. 청구항 12에 있어서,
    상기 제2 단어는 웹 언어 모델 단어를 포함하는 시스템.
  15. 청구항 12에 있어서,
    상기 동작들은, 상기 제2 단어에 나타난 상기 단어들을 분해하기 위해 미리 결정된 횟수를 초과하여 구성성분들로 사용되었던, 상기 제1 단어에 나타난 상기 단어들을 선택하는 단계를 더 포함하고,
    상기 제2 단어에 나타나는 상기 단어들을 분해하기 위해 구성성분들로서 사용되었던 상기 제1 단어에 나타난 상기 단어들을 상기 범용 합성어 분할 단어로 출력하는 단계는, 상기 제2 단어에 나타난 상기 단어들을 분해하기 위해 미리 결정된 횟수를 초과하여 구성성분들로 사용되었던 상기 제1 단어에 나타난 상기 선택된 단어들을 출력하는 단계를 더 포함하는 시스템.
  16. 청구항 12에 있어서,
    상기 동작들은, 각각의 개별 단어가 상기 제1 단어에 나타나는 횟수에 기초하여, 상기 범용 합성어 분할 단어로부터 단어들을 필터링하는 단계를 더 포함하는 시스템.
  17. 청구항 12에 있어서,
    상기 범용 합성어 분할 단어는 단일 언어 또는 이중 언어로 된 단어인 시스템.
  18. 청구항 12에 있어서,
    상기 제1 단어 및 상기 제2 단어는 단일 언어로만 된 단어들을 포함하는 시스템.
  19. 컴퓨터 프로그램으로 인코드된 컴퓨터 저장 매체로서,
    상기 프로그램은 데이터 프로세싱 장치에 의한 실행 시 상기 데이터 프로세싱 장치로 하여금 동작들을 수행하도록 하는 명령들을 포함하고,
    상기 동작들은,
    제1 단어에 나타나는 단어들 및 각각의 개별 단어가 상기 제1 단어에 나타나는 빈도를 식별하는 단계;
    상기 제1 단어에서 구성성분들로서 나타나는 상기 단어들을 이용하여 제2 단어에 나타난 단어들을 분해하는 단계; 및
    상기 제2 단어에 나타나는 상기 단어들을 분해하기 위해 구성성분들로서 사용되었던 상기 제1 단어에 나타난 단어들을, 범용 합성어 분할 단어로 출력하는 단계를 포함하는 컴퓨터 저장 매체.
  20. 컴퓨터로 구현되는 방법으로서,
    제1 단어에 나타나는 단어들 및 각각의 개별 단어가 상기 제1 단어에 나타나는 빈도를 식별하는 단계;
    상기 제1 단어에서 구성성분들로서 나타나는 상기 단어들을 이용하여 제2 단어에 나타난 단어들을 분해하는 단계; 및
    상기 제2 단어에 나타나는 상기 단어들을 분해하기 위해 구성성분들로서 사용되었던 상기 제1 단어에 나타난 단어들을, 범용 합성어 분할 단어로 출력하는 단계를 포함하는 방법.
  21. 컴퓨터 프로그램으로 인코드된 컴퓨터 저장 매체로서,
    상기 프로그램은 데이터 프로세싱 장치에 의한 실행 시 상기 데이터 프로세싱 장치로 하여금 동작들을 수행하도록 하는 명령들을 포함하고,
    상기 동작들은,
    제1 단어에 나타나는 단어들 및 각각의 개별 단어가 상기 제1 단어에 나타나는 빈도를 식별하는 단계;
    상기 제1 단어에서 구성성분들로서 나타나는 상기 단어들을 이용하여 제2 단어에 나타난 단어들을 분해하는 단계; 및
    상기 제2 단어에 나타나는 상기 단어들을 분해하기 위해 구성성분들로서 사용되었던 상기 제1 단어에 나타난 단어들을, 범용 합성어 분할 단어로 출력하는 단계;
    일련의 글자들을 포함하는 토큰을 획득하는 단계;
    상기 범용 합성어 분할 단어에 나타나고 상기 토큰의 구성성분인 둘 이상의 후보 단어들, 및 상기 단어들을 상기 토큰으로 변형하는데 요구되는 하나 이상의 형태학적 동작들을 식별하는 단계로서, 적어도 하나의 상기 형태학적 동작들은 비-사전적 단어의 사용을 포함하는 상기 식별하는 단계; 및
    각각의 단어와 연관된 코스트 및 각각의 형태학적 동작과 연관된 코스트를 결정하는 단계로서, 상기 각각의 단어에 상응하는 코스트는 상기 개별 단어가 상기 제1 단어에 나타나는 빈도와 상응하는 상기 결정하는 단계를 포함하는 컴퓨터 저장 매체.
  22. 하나 이상의 컴퓨터; 및
    상기 하나 이상의 컴퓨터들에 의해 실행될 때, 상기 하나 이상의 컴퓨터들로 하여금 동작들을 수행하도록 하는 저장된 명령어들을 갖는 상기 하나 이상의 컴퓨터에 연결된 컴퓨터-판독가능한 매체를 포함하는 시스템으로서,
    상기 동작들은,
    구절-쌍(phrase-pairs)들의 다중-언어 구절 테이블을 획득하는 단계로서, 상기 구절-쌍은 비-영어 소스 언어로 된 단일-토큰 소스 단어들 및 상기 개별 단일-토큰 소스 단어들의 번역에 해당하는 다중-토큰 영어 구절들을 식별하는 상기 획득하는 단계;
    소스 언어와 적어도 부분적으로 매치(match)하는 하나 이상의 구절-쌍들을 식별하는 단계; 및
    상기 하나 이상의 구절 쌍들을 식별하는 단계에 기초하여, 상기 소스 언어가 합성어일 가능성을 결정하는 단계를 포함하는 시스템.
  23. 컴퓨터로 구현되는 방법으로서,
    구절-쌍들의 다중-언어 구절 테이블을 획득하는 단계로서, 상기 구절-쌍은 비-영어 소스 언어로 된 단일-토큰 소스 단어들 및 상기 개별 단일-토큰 소스 단어들의 번역에 해당하는 다중-토큰 영어 구절들을 식별하는 상기 획득하는 단계;
    소스 언어와 적어도 부분적으로 매치하는 하나 이상의 구절-쌍들을 식별하는 단계; 및
    상기 하나 이상의 구절-쌍들을 식별하는 단계에 기초하여, 상기 소스 언어가 합성어일 가능성을 결정하는 단계를 포함하는 방법.
  24. 컴퓨터 프로그램으로 인코드된 컴퓨터 저장 매체로서, 상기 프로그램은 데이터 프로세싱 장치에 의한 실행 시 상기 데이터 프로세싱 장치로 하여금 동작들을 수행하도록 하는 명령들을 포함하고, 상기 동작들은,
    구절-쌍들의 다중-언어 구절 테이블을 획득하는 단계로서, 상기 구절-쌍은 비-영어 소스 언어로 된 단일-토큰 소스 단어들 및 상기 개별 단일-토큰 소스 단어들의 번역에 해당하는 다중-토큰 영어 구절들을 식별하는 상기 획득하는 단계;
    소스 언어와 적어도 부분적으로 매치하는 하나 이상의 구절-쌍들을 식별하는 단계; 및
    상기 하나 이상의 구절-쌍들을 식별하는 단계에 기초하여, 상기 소스 언어가 합성어일 가능성을 결정하는 단계를 포함하는 컴퓨터 저장 매체.
  25. 하나 이상의 컴퓨터; 및
    상기 하나 이상의 컴퓨터들에 의해 실행될 때, 상기 하나 이상의 컴퓨터들로 하여금 동작들을 수행하도록 하는 저장된 명령어들을 갖는 상기 하나 이상의 컴퓨터에 연결된 컴퓨터-판독가능한 매체를 포함하는 시스템으로서,
    상기 동작들은,
    각각의 엔트리가 단어의 핑거프린트(fingerprint)를 식별하는 데이터 및 하나 이상의 언어로 된 상기 개별 단어의 발생 빈도를 식별하는 데이터를 포함하는 엔트리들을, 언어-의존적 단어 빈도 목록에 저장하는 단계;
    후보 합성어를 획득하는 단계; 및
    상기 핑거프린트들 중 하나와 상기 후보 합성어의 매칭에 기초하여, 상기 후보 합성어와 연관된 발생 빈도를 결정하는 단계를 포함하는 시스템.
  26. 청구항 25에 있어서,
    상기 엔트리는 64-비트 엔트리이고,
    상기 단어의 핑거프린트를 식별하는 상기 데이터는 40-비트를 포함하고,
    상기 하나 이상의 언어로 된 개별 단어의 발생 빈도를 식별하는 데이터는 24-비트를 포함하는 시스템.
  27. 청구항 25에 있어서,
    상기 하나 이상의 단어들에 대해, 상기 핑거프린트는 상기 단어 전체보다 적게 저장하는 시스템.
  28. 컴퓨터로 구현되는 방법으로서,
    각각의 엔트리가 단어의 핑거프린트를 식별하는 데이터 및 하나 이상의 언어로 된 상기 개별 단어의 발생 빈도를 식별하는 데이터를 포함하는 엔트리들을, 하나 이상의 컴퓨터에 의해 언어-의존적 단어 빈도 목록에 저장하는 단계;
    후보 합성어를 획득하는 단계; 및
    상기 핑거프린트들 중 하나와 상기 후보 합성어의 매칭에 기초하여, 상기 후보 합성어와 연관된 발생 빈도를 결정하는 단계를 포함하는 방법.
  29. 컴퓨터 프로그램으로 인코드된 컴퓨터 저장 매체로서,
    상기 프로그램은 데이터 프로세싱 장치에 의한 실행 시 상기 데이터 프로세싱 장치로 하여금 동작들을 수행하도록 하는 명령들을 포함하고,
    상기 동작들은,
    각각의 엔트리가 단어의 핑거프린트를 식별하는 데이터 및 하나 이상의 언어로 된 상기 개별 단어의 발생 빈도를 식별하는 데이터를 포함하는 엔트리들을, 언어-의존적 단어 빈도 목록에 저장하는 단계;
    후보 합성어를 획득하는 단계; 및
    상기 핑거프린트들 중 하나와 상기 후보 합성어의 매칭에 기초하여, 상기 후보 합성어와 연관된 발생 빈도를 결정하는 단계를 포함하는 방법.
  30. 하나 이상의 컴퓨터, 및 상기 하나 이상의 컴퓨터들에 의해 실행될 때, 상기 하나 이상의 컴퓨터들로 하여금 동작들을 수행하도록 하는 명령어들을 저장하는 하나 이상의 저장 디바이스를 포함하는 시스템으로서,
    상기 동작은,
    구절-쌍들의 다중-언어 구절 테이블을 획득하는 단계로서, 상기 구절 테이블은 비-영어 소스 언어로 된 소스 단어들 또는 구절들을 식별하는 구절 쌍들 및 상기 개별 소스 단어들 및 구절들의 번역에 해당하는 영어 단어들 또는 구절들을 포함하는 상기 획득하는 단계;
    상기 구절 테이블을 이용하여 다중-토큰 영어 구절들로 번역하는 하나 이상의 단일-토큰 소스 단어들을 식별하는 단계;
    각각의 식별된 단일-토큰 소스 단어에 대하여 상응하는 다중-토큰 영어 번역의 토큰 각각에 대한 번역물을 획득하는 단계; 및
    상기 획득된 번역물에 기초하여 상기 하나 이상의 식별된 단일-토큰 소스 언어들이 합성어가 될 가능성을 결정하는 단계를 포함하는 시스템.
  31. 청구항 30에 있어서,
    상기 하나 이상의 식별된 단일-토큰 소스 언어들이 합성어가 될 가능성을 결정하는 단계는,
    특정한 단일-토큰 소스 단어에 상응하는 상기 획득된 번역물들이 상기 특정 단일-토큰 소스 단어에 적어도 부분적으로 매치하는지 결정하는 단계를 포함하는 시스템.
  32. 청구항 30에 있어서,
    상기 동작들은, 합성어가 될 가능성이 있는 상기-단일 소스 단어들 및 상기 획득된 번역물들에 기초하여 상기 비-영어 소스 언어에 대한 형태학적 동작들을 추출하는 단계를 더 포함하는 시스템.
  33. 청구항 32에 있어서,
    상기 형태학적 동작들은, 합성어가 될 가능성이 있는 특정 단일-토큰 소스 단어 및 상기 특정-단일-토큰 소스 단어에 상응하는 상기 획득된 번역물들 간에, 적어도 부분적으로 레벤스타인 거리(Levenstein distance)에 기초하여 추출되는 시스템.
  34. 컴퓨터로 구현되는 방법으로서,
    구절-쌍들의 다중-언어 구절 테이블을 획득하는 단계로서, 상기 구절 테이블은 비-영어 소스 언어로 된 소스 단어들 또는 구절들을 식별하는 구절 쌍들 및 상기 개별 소스 단어들 및 구절들의 번역에 해당하는 영어 단어들 또는 구절들을 포함하는 상기 획득하는 단계;
    상기 구절 테이블을 이용하여 다중-토큰 영어 구절들로 번역하는 하나 이상의 단일-토큰 소스 단어들을 식별하는 단계;
    각각의 식별된 단일-토큰 소스 단어에 대하여 상응하는 다중-토큰 영어 번역물의 토큰 각각에 대한 번역물을 획득하는 단계; 및
    상기 획득된 번역물에 기초하여 상기 하나 이상의 식별된 단일-토큰 소스 언어들이 합성어가 될 가능성을 결정하는 단계를 포함하는 방법.
  35. 컴퓨터 프로그램으로 인코드된 컴퓨터 저장 매체로서,
    상기 프로그램은 데이터 프로세싱 장치에 의한 실행 시 상기 데이터 프로세싱 장치로 하여금 동작들을 수행하도록 하는 명령들을 포함하고,
    상기 동작들은,
    구절-쌍들의 다중-언어 구절 테이블을 획득하는 단계로서, 상기 구절 테이블은 비-영어 소스 언어로 된 소스 단어들 또는 구절들을 식별하는 구절 쌍들 및 상기 개별 소스 단어들 및 구절들의 번역에 해당하는 영어 단어들 또는 구절들을 포함하는 상기 획득하는 단계;
    상기 구절 테이블을 이용하여 다중-토큰 영어 구절들로 번역하는 하나 이상의 단일-토큰 소스 단어들을 식별하는 단계;
    각각의 식별된 단일-토큰 소스 단어에 대하여 상응하는 다중-토큰 영어 번역물의 토큰 각각에 대한 번역물을 획득하는 단계; 및
    상기 획득된 번역물에 기초하여 상기 하나 이상의 식별된 단일-토큰 소스 언어들이 합성어가 될 가능성을 결정하는 단계를 포함하는 컴퓨터 저장 매체.
KR1020127021122A 2010-02-12 2011-02-11 합성어 분할 KR101744861B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US30409810P 2010-02-12 2010-02-12
US61/304,098 2010-02-12
PCT/US2011/024563 WO2011100573A1 (en) 2010-02-12 2011-02-11 Compound splitting

Publications (2)

Publication Number Publication Date
KR20120129906A true KR20120129906A (ko) 2012-11-28
KR101744861B1 KR101744861B1 (ko) 2017-06-08

Family

ID=44368156

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127021122A KR101744861B1 (ko) 2010-02-12 2011-02-11 합성어 분할

Country Status (6)

Country Link
US (1) US9075792B2 (ko)
EP (1) EP2534585A4 (ko)
JP (1) JP5819860B2 (ko)
KR (1) KR101744861B1 (ko)
CN (1) CN102859515B (ko)
WO (1) WO2011100573A1 (ko)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5819860B2 (ja) * 2010-02-12 2015-11-24 グーグル・インコーポレーテッド 複合語分割
US10417646B2 (en) 2010-03-09 2019-09-17 Sdl Inc. Predicting the cost associated with translating textual content
CN102479191B (zh) * 2010-11-22 2014-03-26 阿里巴巴集团控股有限公司 提供多粒度分词结果的方法及其装置
US8308379B2 (en) 2010-12-01 2012-11-13 Digitaloptics Corporation Three-pole tilt control system for camera module
US9164988B2 (en) * 2011-01-14 2015-10-20 Lionbridge Technologies, Inc. Methods and systems for the dynamic creation of a translated website
US11003838B2 (en) 2011-04-18 2021-05-11 Sdl Inc. Systems and methods for monitoring post translation editing
JP5834772B2 (ja) * 2011-10-27 2015-12-24 カシオ計算機株式会社 情報処理装置及びプログラム
US8224836B1 (en) * 2011-11-02 2012-07-17 Google Inc. Searching in multiple languages
CN103197764B (zh) * 2012-01-10 2016-08-17 联想(北京)有限公司 拼音输入法及装置
US8990066B2 (en) * 2012-01-31 2015-03-24 Microsoft Corporation Resolving out-of-vocabulary words during machine translation
US9294667B2 (en) 2012-03-10 2016-03-22 Digitaloptics Corporation MEMS auto focus miniature camera module with fixed and movable lens groups
CN103425691B (zh) 2012-05-22 2016-12-14 阿里巴巴集团控股有限公司 一种搜索方法和系统
US10261994B2 (en) * 2012-05-25 2019-04-16 Sdl Inc. Method and system for automatic management of reputation of translators
US9070303B2 (en) * 2012-06-01 2015-06-30 Microsoft Technology Licensing, Llc Language learning opportunities and general search engines
US9081762B2 (en) 2012-07-13 2015-07-14 Enyuan Wu Phrase-based dictionary extraction and translation quality evaluation
US9001268B2 (en) 2012-08-10 2015-04-07 Nan Chang O-Film Optoelectronics Technology Ltd Auto-focus camera module with flexible printed circuit extension
US9007520B2 (en) 2012-08-10 2015-04-14 Nanchang O-Film Optoelectronics Technology Ltd Camera module with EMI shield
US9055207B2 (en) 2012-12-31 2015-06-09 Digitaloptics Corporation Auto-focus camera module with MEMS distance measurement
US9454240B2 (en) 2013-02-05 2016-09-27 Google Inc. Gesture keyboard input of non-dictionary character strings
US8756499B1 (en) 2013-04-29 2014-06-17 Google Inc. Gesture keyboard input of non-dictionary character strings using substitute scoring
US9460088B1 (en) * 2013-05-31 2016-10-04 Google Inc. Written-domain language modeling with decomposition
CN104239343B (zh) * 2013-06-20 2018-04-27 腾讯科技(深圳)有限公司 一种用户输入信息的处理方法和装置
CN104346325B (zh) * 2013-07-30 2017-05-10 富士通株式会社 信息处理方法和装置
CN104750687B (zh) * 2013-12-25 2018-03-20 株式会社东芝 改进双语语料库的方法及装置、机器翻译方法及装置
US9530404B2 (en) * 2014-10-06 2016-12-27 Intel Corporation System and method of automatic speech recognition using on-the-fly word lattice generation with word histories
CN106462579B (zh) * 2014-10-15 2019-09-27 微软技术许可有限责任公司 为选定上下文构造词典
US10552462B1 (en) * 2014-10-28 2020-02-04 Veritas Technologies Llc Systems and methods for tokenizing user-annotated names
CN105843811B (zh) * 2015-01-13 2019-12-06 华为技术有限公司 转换文本的方法和设备
US10347240B2 (en) * 2015-02-26 2019-07-09 Nantmobile, Llc Kernel-based verbal phrase splitting devices and methods
JP6524008B2 (ja) * 2016-03-23 2019-06-05 株式会社東芝 情報処理装置、情報処理方法およびプログラム
CN105912600B (zh) * 2016-04-05 2019-08-16 上海智臻智能网络科技股份有限公司 问答知识库及其建立方法、智能问答方法和系统
WO2018074895A1 (en) * 2016-10-21 2018-04-26 Samsung Electronics Co., Ltd. Device and method for providing recommended words for character input
CN107169169B (zh) * 2017-04-20 2020-05-05 上海交通大学 软式飞机机械式操纵系统的仿真实现方法
US10528407B2 (en) * 2017-07-20 2020-01-07 Vmware, Inc. Integrated statistical log data mining for mean time auto-resolution
US10572976B2 (en) 2017-10-18 2020-02-25 International Business Machines Corporation Enhancing observation resolution using continuous learning
CN107894979B (zh) * 2017-11-21 2021-09-17 北京百度网讯科技有限公司 用于语义挖掘的复合词处理方法、装置及其设备
US10572586B2 (en) * 2018-02-27 2020-02-25 International Business Machines Corporation Technique for automatically splitting words
US11010553B2 (en) * 2018-04-18 2021-05-18 International Business Machines Corporation Recommending authors to expand personal lexicon
CN109165391A (zh) * 2018-07-27 2019-01-08 纤瑟(天津)新材料科技有限公司 一种利用偏旁部首信息的神经网络机器翻译系统及方法
CN111310452B (zh) * 2018-12-12 2024-06-18 北京汇钧科技有限公司 一种分词方法和装置
CN109871425A (zh) * 2019-02-12 2019-06-11 马三和 英文单词信息处理方法、装置及计算机可读存储介质
KR20210052958A (ko) * 2019-11-01 2021-05-11 엘지전자 주식회사 인공 지능 서버
CN112434521A (zh) * 2020-11-13 2021-03-02 北京搜狗科技发展有限公司 词汇处理方法和装置
US20230196034A1 (en) * 2021-12-21 2023-06-22 International Business Machines Corporation Automatically integrating user translation feedback
US11886826B1 (en) * 2023-03-14 2024-01-30 Openai Opco Llc Systems and methods for language model-based text insertion

Family Cites Families (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4328561A (en) * 1979-12-28 1982-05-04 International Business Machines Corp. Alpha content match prescan method for automatic spelling error correction
JPS6126176A (ja) * 1984-07-17 1986-02-05 Nec Corp 言語処理用辞書
US4672571A (en) * 1984-10-24 1987-06-09 International Business Machines Corporation Compound word suitability for spelling verification
US4864503A (en) * 1987-02-05 1989-09-05 Toltran, Ltd. Method of using a created international language as an intermediate pathway in translation between two national languages
US4777617A (en) * 1987-03-12 1988-10-11 International Business Machines Corporation Method for verifying spelling of compound words
US4873634A (en) * 1987-03-27 1989-10-10 International Business Machines Corporation Spelling assistance method for compound words
US5065318A (en) * 1989-04-24 1991-11-12 Sharp Kabushiki Kaisha Method of translating a sentence including a compound word formed by hyphenation using a translating apparatus
US5708829A (en) * 1991-02-01 1998-01-13 Wang Laboratories, Inc. Text indexing system
US5477451A (en) * 1991-07-25 1995-12-19 International Business Machines Corp. Method and system for natural language translation
US5625554A (en) * 1992-07-20 1997-04-29 Xerox Corporation Finite-state transduction of related word forms for text indexing and retrieval
JP2583386B2 (ja) * 1993-03-29 1997-02-19 日本電気株式会社 キーワード自動抽出装置
US6496793B1 (en) * 1993-04-21 2002-12-17 Borland Software Corporation System and methods for national language support with embedded locale-specific language driver identifiers
US6304841B1 (en) * 1993-10-28 2001-10-16 International Business Machines Corporation Automatic construction of conditional exponential models from elementary features
US5963893A (en) * 1996-06-28 1999-10-05 Microsoft Corporation Identification of words in Japanese text by a computer system
JP3272288B2 (ja) * 1997-12-24 2002-04-08 日本アイ・ビー・エム株式会社 機械翻訳装置および機械翻訳方法
US6424983B1 (en) * 1998-05-26 2002-07-23 Global Information Research And Technologies, Llc Spelling and grammar checking system
US6092036A (en) * 1998-06-02 2000-07-18 Davox Corporation Multi-lingual data processing system and system and method for translating text used in computer software utilizing an embedded translator
US6401060B1 (en) * 1998-06-25 2002-06-04 Microsoft Corporation Method for typographical detection and replacement in Japanese text
US6882970B1 (en) * 1999-10-28 2005-04-19 Canon Kabushiki Kaisha Language recognition using sequence frequency
JP2001249922A (ja) * 1999-12-28 2001-09-14 Matsushita Electric Ind Co Ltd 単語分割方式及び装置
SE519636C2 (sv) * 2000-07-06 2003-03-25 Hapax Information Systems Ab Förfarande och anordning för analys av sammansatta ord
US7516063B1 (en) * 2001-04-17 2009-04-07 Personalized Mass Media Corporation System and method for storing data using a machine readable vocabulary
US7668718B2 (en) * 2001-07-17 2010-02-23 Custom Speech Usa, Inc. Synchronized pattern recognition source data processed by manual or automatic means for creation of shared speaker-dependent speech user profile
JP4947861B2 (ja) * 2001-09-25 2012-06-06 キヤノン株式会社 自然言語処理装置およびその制御方法ならびにプログラム
US7610189B2 (en) * 2001-10-18 2009-10-27 Nuance Communications, Inc. Method and apparatus for efficient segmentation of compound words using probabilistic breakpoint traversal
US7634397B2 (en) * 2002-06-27 2009-12-15 Siebel Systems, Inc. Single server instance, multi-lingual applications based on loosely coupled metadata and presentation layers
US20040002849A1 (en) * 2002-06-28 2004-01-01 Ming Zhou System and method for automatic retrieval of example sentences based upon weighted editing distance
JP4001283B2 (ja) * 2003-02-12 2007-10-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 形態素解析装置および自然言語処理装置
US8548794B2 (en) * 2003-07-02 2013-10-01 University Of Southern California Statistical noun phrase translation
US7711545B2 (en) 2003-07-02 2010-05-04 Language Weaver, Inc. Empirical methods for splitting compound words with application to machine translation
US7555428B1 (en) * 2003-08-21 2009-06-30 Google Inc. System and method for identifying compounds through iterative analysis
US7421386B2 (en) * 2003-10-23 2008-09-02 Microsoft Corporation Full-form lexicon with tagged data and methods of constructing and using the same
US7447627B2 (en) * 2003-10-23 2008-11-04 Microsoft Corporation Compound word breaker and spell checker
US7814101B2 (en) * 2003-10-30 2010-10-12 Microsoft Corporation Term database extension for label system
US7580827B1 (en) * 2003-12-31 2009-08-25 Google Inc. Semantic unit recognition
US8229751B2 (en) * 2004-02-26 2012-07-24 Mediaguide, Inc. Method and apparatus for automatic detection and identification of unidentified Broadcast audio or video signals
JP4754247B2 (ja) * 2004-03-31 2011-08-24 オセ−テクノロジーズ ビーブイ 複合語を構成する単語を割り出す装置及びコンピュータ化された方法
EP1794004A4 (en) * 2004-08-13 2012-05-09 Examples Inc 5 UNIQUE KEYBOARD AND APPROXIMATION TIPS
US8335789B2 (en) * 2004-10-01 2012-12-18 Ricoh Co., Ltd. Method and system for document fingerprint matching in a mixed media environment
EP2437255B1 (en) * 2005-02-08 2016-02-03 Shazam Investments Limited Automatic identification of repeated material in audio signals
US7672830B2 (en) * 2005-02-22 2010-03-02 Xerox Corporation Apparatus and methods for aligning words in bilingual sentences
JP2006243104A (ja) * 2005-03-01 2006-09-14 Canon Inc 音声合成方法
US7583205B2 (en) * 2005-07-28 2009-09-01 Research In Motion Limited Handheld electronic device with disambiguation of compound word text input
US7813918B2 (en) * 2005-08-03 2010-10-12 Language Weaver, Inc. Identifying documents which form translated pairs, within a document collection
JP5011751B2 (ja) * 2006-02-27 2012-08-29 富士通株式会社 訳語情報出力処理プログラム,処理方法および処理装置
US7991608B2 (en) * 2006-04-19 2011-08-02 Raytheon Company Multilingual data querying
WO2008043582A1 (en) * 2006-10-13 2008-04-17 International Business Machines Corporation Systems and methods for building an electronic dictionary of multi-word names and for performing fuzzy searches in said dictionary
US8086599B1 (en) * 2006-10-24 2011-12-27 Google Inc. Method and apparatus for automatically identifying compunds
US7860707B2 (en) * 2006-12-13 2010-12-28 Microsoft Corporation Compound word splitting for directory assistance services
US8468244B2 (en) * 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
US8645119B2 (en) * 2007-03-26 2014-02-04 Google Inc. Minimum error rate training with a large number of features for machine learning
US20080312902A1 (en) * 2007-06-18 2008-12-18 Russell Kenneth Dollinger Interlanguage communication with verification
US8046355B2 (en) * 2007-09-04 2011-10-25 Google Inc. Word decompounder
US7983903B2 (en) * 2007-09-07 2011-07-19 Microsoft Corporation Mining bilingual dictionaries from monolingual web pages
US20090091087A1 (en) * 2007-10-03 2009-04-09 Robert Andrew Wasmund Quiz-nested quiz game and system therefore
JP5239307B2 (ja) * 2007-11-20 2013-07-17 富士ゼロックス株式会社 翻訳装置及び翻訳プログラム
JP5224851B2 (ja) * 2008-02-27 2013-07-03 インターナショナル・ビジネス・マシーンズ・コーポレーション 検索エンジン、検索システム、検索方法およびプログラム
JP5112116B2 (ja) * 2008-03-07 2013-01-09 株式会社東芝 機械翻訳する装置、方法およびプログラム
US8615388B2 (en) * 2008-03-28 2013-12-24 Microsoft Corporation Intra-language statistical machine translation
US7827187B2 (en) * 2008-04-04 2010-11-02 International Business Machines Corporation Frequency partitioning: entropy compression with fixed size fields
US8473279B2 (en) * 2008-05-30 2013-06-25 Eiman Al-Shammari Lemmatizing, stemming, and query expansion method and system
JP2010055235A (ja) * 2008-08-27 2010-03-11 Fujitsu Ltd 翻訳支援プログラム、及び該システム
CN101576876B (zh) * 2009-03-03 2011-01-05 杜小勇 一种自动拆分英文复合词组的系统和方法
US8108391B1 (en) * 2009-03-12 2012-01-31 Google Inc. Identifying non-compositional compounds
US8392440B1 (en) * 2009-08-15 2013-03-05 Google Inc. Online de-compounding of query terms
US8781814B2 (en) * 2009-09-15 2014-07-15 Hewlett-Packard Development Company, L.P. Method for locating line breaks in text
JP5819860B2 (ja) * 2010-02-12 2015-11-24 グーグル・インコーポレーテッド 複合語分割
US8612205B2 (en) * 2010-06-14 2013-12-17 Xerox Corporation Word alignment method and system for improved vocabulary coverage in statistical machine translation
US20120035905A1 (en) * 2010-08-09 2012-02-09 Xerox Corporation System and method for handling multiple languages in text

Also Published As

Publication number Publication date
CN102859515B (zh) 2016-01-13
EP2534585A4 (en) 2018-01-24
EP2534585A1 (en) 2012-12-19
JP5819860B2 (ja) 2015-11-24
US9075792B2 (en) 2015-07-07
US20110202330A1 (en) 2011-08-18
CN102859515A (zh) 2013-01-02
WO2011100573A1 (en) 2011-08-18
KR101744861B1 (ko) 2017-06-08
JP2013519949A (ja) 2013-05-30

Similar Documents

Publication Publication Date Title
KR101744861B1 (ko) 합성어 분할
CN105917327B (zh) 用于将文本输入到电子设备中的系统和方法
CN104011712B (zh) 对跨语言查询建议的查询翻译进行评价
KR102417045B1 (ko) 명칭을 강인하게 태깅하는 방법 및 시스템
US8612206B2 (en) Transliterating semitic languages including diacritics
US9164983B2 (en) Broad-coverage normalization system for social media language
US7475063B2 (en) Augmenting queries with synonyms selected using language statistics
US8762358B2 (en) Query language determination using query terms and interface language
US7835903B2 (en) Simplifying query terms with transliteration
EP2927825A1 (en) Input string matching for domain names
US20190361976A1 (en) Construction of a lexicon for a selected context
US20140330866A1 (en) Systems and methods for parsing search queries
RU2631164C2 (ru) Способ анимации sms-сообщений
US20050273316A1 (en) Apparatus and method for translating Japanese into Chinese and computer program product
US9336317B2 (en) System and method for searching aliases associated with an entity
US10614065B2 (en) Controlling search execution time for voice input facility searching
US10572592B2 (en) Method, device, and computer program for providing a definition or a translation of a word belonging to a sentence as a function of neighbouring words and of databases
KR20180007183A (ko) 대표문자와 공백 입력을 통한 둘 이상의 단어로 구성된 문장입력방법 및 장치
WO2013130623A2 (en) Broad-coverage normalization system for social media language
JPH1145266A (ja) 文書検索装置およびその装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP5363178B2 (ja) 修正候補取得装置、修正候補取得システム、修正候補取得方法、修正候補取得プログラム
CN115796194A (zh) 一种基于机器学习的英语翻译系统
JP2013015967A (ja) 検索システム、索引作成装置、検索装置、索引作成方法、検索方法およびプログラム
KR20090121089A (ko) 언어 교차 검색 방법 및 시스템
KR20150123601A (ko) 전자사전 검색 방법 및 장치

Legal Events

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