2008-10-04 6 views
4

나는 "어휘 인코딩"이라는 단어를 사용하여 더 나은 언어를 찾지 못했습니다.이론 : "어휘 인코딩"

Word는 틀림없이 Letter와는 달리 의사 소통의 기본 단위입니다. 유니 코드는 알려진 모든 알파벳의 각 문자에 숫자 값을 할당하려고합니다. 한 언어에 대한 편지는 무엇인가, 다른 언어에 대한 문양입니다. 유니 코드 5.1은 현재이 글리프에 100,000 개 이상의 값을 할당합니다. 근대 영어에는 약 180,000 단어가 사용되고 있으며 약 2,000 단어의 어휘로 일반 용어로 대화 할 수 있어야합니다. "어휘 인코딩"은 각 편지가 아닌 각 단어를 인코딩하고 문장 내에 캡슐화합니다.

// An simplified example of a "Lexical Encoding" 
String sentence = "How are you today?"; 
int[] sentence = { 93, 22, 14, 330, QUERY }; 

이 예에서 문자열의 각 토큰은 정수로 인코딩되었습니다. 여기서 인코딩 스키마는 단어 사용의 일반화 된 통계 순위에 따라 int 값을 할당하고 물음표에 상수를 할당했습니다.

궁극적으로 Word에는 모두 맞춤법이 있습니다. & 의미. 모든 "어휘 인코딩"은 문장의 의미와 의도를 전체적으로 보존하고 특정 언어를 사용하지 않습니다. 영어 문장은 "...language-neutral atomic elements of meaning ..."으로 인코딩되어 구조화 된 구문 형식 및 문법 구조로 모든 언어로 재구성 될 수 있습니다.

"어휘 인코딩"기술의 다른 예는 무엇입니까?


당신은 단어 사용 통계가 어디에서 왔는지에 관심이있는 경우 :이 질문은, 프로그래밍보다 더 언어학에 충돌
http://www.wordcount.org

+2

처음에는 술술적이고 논리적 인 개념처럼 보입니다.이 질문은 의문의 여지가 있지만, 어휘에서 실용에 이르기까지 여러 단계에서 잘못되었습니다. 그것은 언어 이해력이 무엇에 관한 것인가에 반하는 것입니다. – logout

+0

단어 순서가 언어마다 다르다는 것을 잊지 마십시오. 일부 언어에는 영어의 다양한 기능이 없습니다 (예 : '기사'- a, an -, 예 : AFAIK, 일본어). 20 세기 초반에, 사람들은 코드화 서를 사용하여 인코딩을 사용하여보다 복잡한 구문을 전신했습니다 (전보가 단어에 의해 요금을 부과 되었기 때문에). 한 단어는 전체 구 또는 심지어 문장을 의미 할 수 있습니다. 토론에 대한 Kahn의 "The CodeBreakers"(http://www.amazon.com/Codebreakers-Comprehensive-History-Communication-Internet/dp/0684831309)를 참조하십시오. –

답변

2

이 아이디어에는 몇 가지 주요 문제점이 있습니다. 대부분의 언어에서 단어의 의미와 의미와 관련된 단어는 매우 신속하게 바뀝니다.

단어의 의미가 바뀌기 전에는 단어에 할당 된 번호를 지정하는 것이 더 쉬울 것입니다. 예를 들어, "동성애자"라는 단어는 단지 "행복한"또는 "즐거운"을 의미하는 데 사용되었지만 이제는 동성애를 의미하는 데 주로 사용됩니다. 또 다른 예는 "danke"라는 단어가 원래 한 단어 인 "고맙습니다"라는 형태소입니다. 또 다른 예는 "안녕히 주무세요."는 "신의 축복"을 줄이는 것입니다.

또 다른 문제점은 언제든지 한 단어의 스냅 샷을 찍을지라도 동일한 지역 내 에서조차도 단어의 의미와 사용법이 충돌 할 수 있다는 것입니다. 사전이 쓰여질 때 학자들이 한 단어에 대해 논쟁하는 것은 드문 일이 아닙니다.

요약하면 기존 언어로는 할 수 없습니다. 인터링구아 (Interlingua) 나 에스페란토 (Esperanto)와 같이, 이미 발명 된 언어를 사용하거나 목적을 위해 자신의 언어를 발명하는 것을 고려해야합니다. 그러나 이것들조차도 항상 표준 어휘집에서 정적 인 형태소를 정의하기위한 목적으로는 적합하지 않을 것이다.

문자가 의미와 대략적인 매핑이있는 중국어로조차도 여전히 작동하지 않습니다. 많은 문자들이 문맥과 앞뒤 문자에 따라 의미를 바꿉니다.

문제는 언어를 시도하고 번역 할 때 최악입니다. 여러 가지 경우에 사용할 수 있지만 다른 언어로 직접 사용할 수없는 영어 단어가 하나있을 수 있습니다. 예를 들면 "무료"입니다. 스페인어에서는 "자유"를 말로 표현하거나 "무료"를 맥주처럼 "자유"로 사용할 수 있습니다 ("자유"대신 잘못된 단어를 사용하면 매우 재미있을 것입니다).

한국어로 아름다운 단어와 같이 의미를 부여하기가 훨씬 어려운 다른 단어가 있습니다. 아름다운 소녀를 부를 때, 대체 할 후보자가 여러 명있을 것입니다. 그러나 음식을 아름답게 부를 때, 음식이 잘 보이는 것이 아니라면 완전히 다른 몇 가지 다른 후보가 있습니다.

우리가 영어로 약 200k 단어 만 사용하지만, 우리가 동일한 단어에 많은 다른 의미를 할당하기 때문에 우리의 어휘는 실제로 어떤면에서 더 큽니다. 에스페란토와 인터 링구아, 그리고 대화에 의미있는 다른 모든 언어에도 똑같은 문제가 적용됩니다. 인간의 말은 잘 정의 된 잘 기름칠 기계가 아닙니다. 따라서 각 "단어"에 고유 한 의미가있는 어휘집을 만들 수는 있지만 현재의 기술을 사용하는 기계에서는 인간의 언어에서 특수 표준 어휘로 변환하는 것이 불가능할 수 있습니다.

이 이유 때문에 기계 번역이 여전히 싫어서 오랫동안 올 것입니다. 당신이 더 잘할 수 있다면 (그리고 내가 할 수 있기를 바란다면) 아마도 PHD를 위해 일하는 어떤 종류의 장학금 및/또는 대학/정부 기금으로 그것을 고려해야 할 것입니다. 또는 당신의 배가 김을내는 것을 유지하는 무엇 이건을 간단하게 돈의 더미를 만드십시오.

6

하지만 고도의 합성입니다 언어 (구성되어 가진 단어 여러 가지 결합 된 형태소)의 경우, 적어도 다소 고립되어있는 영어와 같은 언어 나, 고도로 분석적인 중국어와 같은 언어와 달리 모든 가능한 단어에 "번호를 매기"시도하는 것은 매우 복잡한 문제 일 수 있습니다.

즉 단어는 일부 언어의 구성 글리프를 기반으로 쉽게 분류 및 계산되지 않을 수 있습니다.

이 위키 피 디아 문서의 Isolating languages은이 문제를 설명하는 데 도움이 될 수 있습니다.

3

직접 만들면됩니다. 각 단어를 표준 바이트 스트림 (예 : 소문자 UCS32로 분해)으로 변환 한 다음 정수로 해싱합니다. 아마도 32 비트이면 충분할 것이지만, 그렇지 않다면 64 비트가 확실 할 것입니다.

당신이 곤란한 대답을하기 전에, 유니 코드의 목적은 각 문자 모양에 고유 한 식별자를 할당하는 것입니다. 순위를 매기거나 정렬하거나 그룹화하지 말고 각각을 모두 동의하는 고유 한 식별자에 매핑하십시오.

2

시스템이 명사의 복수화 또는 동사 사용을 어떻게 처리합니까? 이 각각은 "유니 코드"값을 가질 수 있습니까?

2

번역 체계로서 이것은 많은 작업을하지 않아도 작동하지 않을 수 있습니다. 각 단어에 숫자를 할당 한 다음 기계적으로 다른 단어로 번역 할 수 있다고 생각하고 싶습니다. 사실, 언어는 "바람이 당신의 시계를 감기다"대 "머리를 뒤로 불다"와 똑같은 여러 단어의 문제를 가지고 있습니다.

ZIP 사용과 같이 가변 길이 사전을 사용하는 것과는 대조적으로 텍스트를 전송할 때 언어 당 알파벳이있는 경우 제대로 작동합니다.

0

사실 실제로 절반 정도 괜찮은 어휘에 대해서만 약 600 단어가 필요합니다.

2

이것은 흥미로운 질문이지만 잘못된 이유를 묻는 것 같습니다.이 '어휘'유니 코드 '를 의미의 언어 중립적 인 원자 요소로 문장을 분해하고 다른 구체적인 언어로 다시 구성 할 수있는 것으로 생각하고 있습니까? 유니버설 번역가를 성취하기위한 수단으로 아마도?

'어휘 유니 코드'를 사용하여 영어 문장을 인코딩하고 저장할 수 있다고해도, 의미를 그대로 유지하면서 중국어를 읽고 마술처럼 렌더링 할 수는 없습니다.

그러나 유니 코드와 비슷하지만 매우 유용합니다.

유니 코드는 '보편적 인'코드이지만 해당 문자의 발음, 의미 또는 사용법을 구현하지 않습니다. 각 코드 포인트는 특정 언어 (또는 언어 그룹에서 사용되는 스크립트)의 특정 글리프를 나타냅니다. 글리프의 시각적 표현 수준 (스타일, 서식 및 글꼴 범위 내)의 기본 요소입니다. 라틴 문자 'A'에 대한 유니 코드 코드 포인트는 바로 그것입니다. 라틴 문자 'A'입니다. 자동적으로 아랍 문자 Alif (Ç) 또는 인도어 (Devnagari) 문자 'A'(ä)와 같이 표현 될 수 없습니다.

어휘 유니 코드는 각 언어의 각 단어 (단어 형식)에 대한 코드 포인트를 유니 코드 유추로 유지합니다. 유니 코드에는 특정 스크립트에 대한 코드 포인트 범위가 있습니다. 어휘 유니 코드는 각 언어에 대한 코드 범위를 가져야합니다. 다른 언어로 된 다른 단어는 동일한 의미 (동의어)를 갖고 있더라도 다른 코드 포인트를 가져야합니다. 서로 다른 의미를 지닌 동일한 단어 또는 다른 발음 (동음 이의어)은 다른 코드 포인트를 가져야합니다.

유니 코드에서 단어의 위치에 따라 같은 문자의 모양이 다른 일부 언어 (전부는 아님)의 경우 (예 :. 히브리어와 아랍어에서는 글립의 모양이 단어 끝에 변경됩니다. 그런 다음 다른 코드 포인트를 갖습니다. 마찬가지로 어휘 유니 코드에서 문장의 위치에 따라 단어의 형식이 다르면 자체 코드 포인트가 필요할 수 있습니다.

아마도 영어 언어에 대한 코드 포인트를 제시하는 가장 쉬운 방법은 특정 언어 버전의 옥스포드 영어 사전을 기반으로하고 각 단어에 순차적으로 고유 한 코드를 할당하는 것입니다. 동일한 단어의 각기 다른 의미에 대해 다른 코드를 사용해야하며, 다른 양식에 다른 코드를 사용해야합니다 (예 : 같은 단어를 명사와 동사로 사용할 수있는 경우 두 코드가 필요합니다

그런 다음 해당 언어에 대해 가장 신뢰할 수있는 사전을 사용하여 포함하려는 다른 언어에 대해 동일한 작업을 수행해야합니다 .

이 운동은 가치가있는 것보다 많은 노력입니다. 유닉스가 그러 하듯이 모든 세계의 살아있는 언어와 역사적인 죽은 것들과 약간의 허구적인 것들을 포함하기로 결정했다면 코드 공간이 너무 커서 코드를 수용 할 수있을만큼 매우 넓어야한다. 압축면에서는 아무 것도 얻지 못할 것입니다. 원어로 된 String으로 표현 된 문장은 코드로 표현 된 동일한 문장보다 공간을 덜 차지할 것입니다.

P. 단어 의미가 바뀌기 때문에 이것이 불가능한 일이라고 말하는 사람들에게는 그것이 문제로 보지 않습니다. 유니 코드 유추를 사용하기 위해 문자의 사용은 바뀌었지만 (분명히 단어의 의미만큼 빠르지는 않음) 유니 코드에는 중세 시대에 'y'와 같이 발음되는 단어는 전혀 없습니다. 유니 코드는 't', 'h'및 'y'에 대한 코드 포인트를 가지며 각각 목적을 달성합니다.

P.P.S.사실, 'oe'도 'œ'이거나 독일어 'ß'로 쓰여질 수있는 유니 코드에는 약간의 우려가 있습니다.

1

이것은 흥미로운 약간의 연습이지만, 고려해 볼 것을 촉구합니다 유형과 토큰 사이의 자연 언어의 차이에 대한 개념을 소개하는 것 이상은 아닙니다.

유형은 모든 인스턴스를 나타내는 단어의 단일 인스턴스입니다. 토큰은 단어의 각 인스턴스에 대한 단일 카운트입니다. 다음 예를 들어 설명해 드리겠습니다.

"요한은 빵 가게에 갔다. 그는 빵을 사 갔다."

여기 토큰의 수를 의미 카운트로,이 예를 들어 어떤 주파수 카운트입니다 "는"이 두 번 계산됩니다

John: 1 
went: 1 
to: 1 
the: 2 
store: 1 
he: 1 
bought: 1 
bread: 2 

주 - "는"두 개의 토큰이 있습니다. 그러나 10 개의 단어가 있지만 8 개의 단어 - 주파수 쌍만 있습니다. 단어는 유형으로 분류되고 토큰 수와 쌍을 이룹니다.

유형 및 토큰은 통계 NLP에서 유용합니다. "어휘 인코딩"반면, 나는 조심했다. 이것은 사전 프로그래밍과 합리주의가 풍부하면서도 NLP에 대한 훨씬 더 오래된 접근 방식의 단서입니다. 나는 실제로 특정 "주소"를 단어에 할당하는 통계적인 MT에 대해서조차 모릅니다. 단어 사이에 관계가 너무 많아서 숫자 론적 온톨로지를 생각해 낼 수 없으며 단어를 분류하여 단어를 분류하면 기억 관리와 속도 배분과 같은 것에 관해 생각해야합니다 .

NLP 및 NLP에 대한보다 광범위한 소개를 위해 Python으로 작성된 NLTK (Natural Language Toolkit)를 확인해 보시기 바랍니다.