영어사전에서 영어단어 검색 속도 (5)

rgbi3307의 이미지

안녕하세요? 좀 오랜만에 글을 올립니다.
혹시 저의 글을 기다리고 있었던 분이 계시다면 저에게 많은 보람이 되겠습니다.
저는 앞선 글들에서 문장 표현들을 아래와 같이 크게 두가지로 분류했습니다.

(1) 오감(시각, 청각, 후각, 미각, 촉각)에 의한 문장표현 --> 빠른 검색
(2) 논리적인 문장표현 --> 단어 조합(약 30만 팩토리얼에 해당하는 종류)

컴퓨터로 자연어 번역을 위해서 (1)은 맞춤형 검색 알고리즘을 빠르게 실행하도록 구현했습니다.
문제는 (2) 입니다만, 여러가지로 고민한 결과 다음과 같은 방식을 도입했습니다.

사람이 아닌 기계(컴퓨터)가 사람이 사용하는 언어의 모든 상황,
즉, 화자의 감정, 화자가 처한 상태, 화자의 어투, 줄임말, 존대말, 뛰어쓰기 등을
여러가지 논리로 판단하여 번역하는 데는 문제가 있다.
그러므로 문장에 여러가지 논리성을 적용하여 번역하기 보다 화자가 자신의 언어를
컴퓨터에게 학습(입력) 시키고 이것을 검색해 내는 방식을 도입합니다.

예를들면,

일반적 표현
Can you speak English?
>> 영어를 말할 수 있니?

정중한(존대) 표현
Could you speak English?
>> Could를 Can의 과거라는 논리를 적용하여,
>> 영어를 말할 수 있었니? 라는 번역보다
>> 영어를 말할 수 있으신가요? 라는 번역이 더 좋습니다.

또한, 일반적으로 진행형을 다음과 같이 번역합니다.
she is learning English.
>> 그녀는 영어를 배우고 있습니다.

그러나, 그녀가 미국에 가기를 원하는 상황이라면,
She wants to work in USA, so she is learning English.
>> 그녀는 미국에서 일하는 것을 원하므로, 영어를 공부하려 합니다.

한가지 더 보충하면,
What are you doing?
>> 너 뭐하는 중이니?

What are you doing tomorrow?
>> 너 내일 뭐 할 거니?

제가 이러한 예를 제시하는 이유는,
문장을 단순한 논리로 번역하게 되면 오역이 많아질 수 있으므로
화자가 말하고자 하는 것을 번역하여 컴퓨터에게 학습(입력) 시키고
이것을 맞춤형 검색 알고리즘으로 검색하는 방식이 오히려 더 정확한 번역이 될 수 있다는 것입니다.

제가 개발하고 있는 언어 번역 방식을 다시 정리하면,

(1) 오감(시각, 청각, 후각, 미각, 촉각)에 의한 문장표현 --> 이미 저장된 것을 빠르게 검색
(2) 논리적인 문장표현 --> 학습(입력) 시킨 후 빠른 검색

(1)은 문장이 어느정도 정해져 있으므로 번역한 것을 이미 컴퓨터 메모리에 저장해 두고
맞춤형 알고리즘을 사용하여 빠르게 검색합니다.
(2)는 다양한 문장들이 있으므로 사용자가 학습한 내용을 컴퓨터에 입력 시킨후 맞춤형으로 검색합니다.

지금까지 구현한 저의 프로그램은 사전속의 단어를 최대 42억개(단어개수)까지 저장할 수 있도록 했고,
번역문장은 컴퓨터 메모리가 허용되는 범위까지 무한히 저장되도록 했습니다.
여기서 중요한 것은,
번역문장을 문자열 그대로 메모리에 저장하면 메모리 낭비가 심하고 검색속도 또한 많이 떨어질 수 있습니다.
이것을 방지하기 위해서 번역문장 속의 단어들을 단어 사전속의 단어와 인덱스로 조합한 형태로 저장합니다.
이렇게 하면 메모리 낭비가 줄어들고 검색속도가 현저히 빨라집니다.
또한,
상용 라이브러리들을 사용하지 않고 오직 표준 C언어만 사용하여 위의 내용들을 맞춤형 알고리즘으로 코딩했습니다.
따라서 아키텍쳐(컴퓨터 종류)에 상관없이 프로그램을 실행할 수 있습니다.
현재는 리눅스와 윈도우즈에서 실행할 수 있습니다.
향후, 다양한 휴대용 스마트 기기에도 실행 되도록 알고리즘을 꾸러미로 묶어서 이식성이 편리하도록 할 예정입니다.

조만간 프로그램을 발표할 예정입니다.
앞으로 많은 관심과 격려 부탁드립니다.

from 알지비(rgbi3307@nate.com) at the www.kernel.bz

익명 사용자의 이미지

다음과 같이 번역하는군요.

what are you doing tomorrow?
>> 뭐 내일은 뭐해?

could you speak english?
>> 영어 할 줄 수 있을까?

she is learning English.
>> 그녀는 영어 학습입니다.

착한아이의 이미지

제가 추진하는 개인 프로젝트와 궁극적인 목표는 유사해보이는데 구현방법은 많이 다른 듯 싶은데요.

간단히 예를들면,

어떤 사람이 제가 만드는 프로그램을 써서 블로그에 문장을 남기면, 전세계 모든 사람들이 자신의 언어로 그 포스팅을 볼수 있게 하는 거예요. 전세계 뉴스나 웹페이지를 제 프로그램을 써서 글을 작성하면 전세계 사람들이 각자 언어로 글을 볼수 있기 때문에, 구글 번역기 같은게 불필요해지겠지요.

제가 만드는 프로그램은 컴터언어로도 활용이 가능해요. 예를들면, 어떤 사람이 제가 만드는 프로그램을 서서 FFT 알고리즘을 작성하였다면, 그것을 C 나 fortran 같은 원하는 아무 언어표현으로 볼수가 있어요.

사실 이 프로그램은 별건 아니고요. 제가 해낸 업적이라고 한다면 spoken language를 조금 정형화 시켰다고나 할까요. RGB님도 spoken language에 대한 이해를 먼저 잘 정리해두고 진행하시는게 좋을듯 싶어서요. 추가로 제 프로그램은 최첨단(?) 학습기능까지 들어 있답니다. 헤헤.

제가 논지를 올릴 때는 논지에 관련된 의견을 듣고자 함이지, 논지의 여부를 논쟁하기 위함이 아니예요.
논지의 취지를 이해하지 못한 의견에는 가급적 답글 달지 않겠어요. :P

rgbi3307의 이미지

오래전에 영어학습기에 대해서 올리신 글을 봤는데, 많은 열정을 가지고 계신듯했습니다.
무엇보다 저와 비슷한 주제로 개발하고 계시는 분을 알게 되어 정말 영광입니다.
제가 개발한 프로그램은 웹환경이 아니고 리눅스나 윈도에서 단독으로 실행되는 것입니다.
향후, 스마트 기기에도 포팅할 예정이구요.
3월중으로 지인들 및 많은 사람들에게 알려서 발표회를 개최할 생각입니다.
다양한 의견들(독창성, 효용성, 상업성..)을 들어보려 합니다.
착한아이님도 한번 참여하여 님께서 만드신 것도 소개해 주시고 서로의 발전방향에 대해서 공유하면 좋을듯 합니다. 즐거운 통신 시간 되시길(^^)...

From:
*알지비 (메일: rgbi3307(at)nate.com)
*커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))

익명 사용자의 이미지

vaporware가 아니라면 엄청난 내용이겠네요.

꽤 오래 전부터 작업한 것 같은데, 결과물은 있나요?

최남희의 이미지

컴퓨터에서 영어번역을 빨리 하고 싶어서