제발 한자 데이터좀 정리 해 주세요 !!!

masoris의 이미지

저는 프로그래머도 아닐 뿐더러, 한자 입력 기능을 많이 사용하는데도 불구하고 왜 리눅스로 이전했는지 저 자신을 도저히 이해 할 수 없습니다.

한자 입력기능 향상을 위해, 파이썬 배우고, 한자 데이터를 정리하고, 국립국어원 자료를 오픈소스에 사용할 수 있도록 저작권에 대해 문의해 보면 뭐합니까? 결국은 프로그래밍 경험이 전혀 없는 저로써는 데이터 정리를 위한 프로그램을 작성하는 방법을 배우는데도 무수한 시간이 걸릴 것이고, 다른 사람 도움 없이는 제가 생각하는 한자 데이터 정리가 불가능한데 말이죠.

대한민국에는 한자를 편하게 입력할 수 있는 프로그램은 어디에도 없습니다. MS IME는 한 글자씩 입력해야하는 제약이 있고, 오픈소스의 입력기는 한자 데이터 베이스 자체가 정리가 되어 있지 않고, 한/글에서 사용하는 데이터베이스는 옛날 옛적에 만든 한자 자료를 업데이트 하나 없이 그대로 계속 사용하고 있죠. 어쩔 수 없이, 그나마 가장 나은 한/글을 사용하기 위해서, Vmware에 윈도우 설치하여 사용중입니다.

하지만, 이젠 리눅스와 오픈소스가 너무 마음에 들어서, 편리한 한자 입력을 위해 윈도우로 다시 옮기려고 해도 옮길 수 가 없습니다. 개인적인 바람은 오픈소스에서 한자를 가장 편하게 입력할 수 있는 입력기가 나오고, 리눅스가 가장 한자입력이 가장 편한 환경이 되었으면 좋겠습니다.

많은 분들이 한자에 관심 없는건 알지만, 정리하는데 좀 도와주셨으면 좋겠습니다.

ps. 영문법을 정리하는 도중 動詞(동사) 라는 글자 입력하기가 너무 불편해서 써봅니다.

mumm의 이미지

님 바람에 충분할지 모르나 아래 자료를 참고해 보세요.

StarDict 한글/한자/영어/러시아 사전 (GPL)
http://stardict.sourceforge.net/index.php

오픈오피스 한자 단어 사전
http://doeun.tistory.com/42

masoris의 이미지

한자 데이터 정리가 완료되면, 오픈오피스에서도 좀 더 편하게 한자를 입력할 수 있을 것입니다.

____
The limits of my language mean the limits of my world. - Ludwig Wittgenstein


____
The limits of my language mean the limits of my world. - Ludwig Wittgenstein

onion의 이미지

그리 한자 입력이 필요하신거라면..
중국어 입력기를 찾아보는것도 좋지 않을까요?
나름 발음대로 입력하느라고
입력기에 대한 고민을 해가면서 만들지 않았을까 합니다.

-----새벽녘의 흡혈양파-----

-----새벽녘의 흡혈양파-----

codebank의 이미지

그게... 저번주인가 외국여자들 모아놓고 이야기하는 TV 프로그램있었습니다.
(매주 월요일인가에 하는...)
거기서 그 여자들이 공통적으로 한마디를 하더군요.
한글은 처음배울때 어렵지만 배우고나면 입력방식이 너무 쉽다고...
오히려 중국여자는 한자를 입력할 때 한글을 이용하는 방식이 더 쉽다고 말할 정도였죠.

중국쪽 입력기를 한번도 본적은 없지만 제가 알기로는 그 입력방식이 너무 까다롭습니다.
먼저 한자의 초성에 해당하는 영문자를 넣으면 그에 따라 리스트가 나오고 그 리스트중에
원하는 글자를 찾아서 넣는 방식이라고 합니다. 자주사용하는 한자의 경우에는 그 속도가
빨라지겠지만 자주사용하지 않는 글자의 경우 일일이 찾아야하기 때문에 느려지는 경우가
있다고 합니다.

저도 이런점에 착안해서 일본어 입력기(일본어도 50음도를 다 넣기가 까다롭다고 들었습니다.
거기다가 한자까지 들어가야해서...)를 한글을 이용하는 방법을 생각해봤는데 변환과정은
어렵지 않았지만 프로그램 실력이 형편없어서 아직 초보적인 단계에서 벗어나질 못하고
있죠. (사실은 귀찮음에 대한 변명이지만...)
일본어는 그렇다쳐도 한자의 경우에는 일대일 매칭방법이외에는 더 좋은 방법이 떠오르질
않더군요.

작년인가 krisna님이 공용적으로 많이 쓰이는 한자문장들을 정리하셔서 scim인가 nabi쪽에
적용했던 것으로 기억하는데 그것이 더 좋은 방법이 아닐런지...
이 자료를 한번 찾아봐야겠네요.
------------------------------
좋은 하루 되세요.

------------------------------
좋은 하루 되세요.

나는오리의 이미지

한중일 삼국의 한자는 같은 모양도 있지만
대부분 다른모양이라고 보시면 됩니다.

일본이야 조어라고 원래부터 약식 한자 비슷한걸 썼었고
중국도 최근들어 약식 한자를 장려하고 있습니다.

하지만 한국은 뭐때문인지 몰라도 꾸준히 한자를 쓰고
그 한자를 약식으로 절대 안씁니다.

그래서 중국어 입력기의 한자를 가져와서 쓰려고하면 오히려 더 힘들어질것 같습니다.

익명 사용자의 이미지

잘은 모르지만 현재 ubuntu 배포본에 기본으로 들어가고 있는 scim 입력기 개발 프로젝트를 알아 보시는 것은 어떨지요? scim에서 한글 입력기 구현에 참가하시는 분들이 여기 kldp에도 들르는 것으로 알고 있습니다만...

검색해 보니 링크가 바로 뜨네요. 참고하세요.

http://www.scim-im.org/news/imengines_news/scim_hangul_0_3_1_released

keedi의 이미지

답답하신 마음은 십분 이해가 가지만...
도움을 원하신다면 지금 보다 더 구체적인 부분을 짚어 주시고,
중간중간 질문들에 대한 피드백을 꾸준히 해주셔야 할 것입니다.

일전에 국립국어원... 글을 보고
프로그래밍 적으로 도움 될 일이 있을까 싶어서 이것저것 해보려고 했는데...
데이터가 많이 깨져 있더군요. 저만 그런것인지 문제를 알 수 없기도 하고
그래서 혹시 이 부분에 대해 아시는 분 계신지 글을 올렸는데,
그 질문이 쓰레드의 마지막 포스팅이 되버렸습니다.

하시려는 작업에 있어 조금은 도와드릴 수 있을 것 같은데
앞으로는 어떤식으로 작업을 진행하실 것이고 지금 가장 먼저 구현해야
할 부분은 무엇이라고 생각하시는지요? :-)

---------------------------
Smashing Watermelons~!!
Whatever Nevermind~!!

Kim Do-Hyoung Keedi

----
use perl;

Keedi Kim

masoris의 이미지

txt파일로 변환한 자료를 여기에서 다운 받으실 수 있습니다. 어떤 식으로 작업을 할 것인지에 관해서는 현재 데이터를 정리중이라 몇일 내로 알려드리도록 하겠습니다.

____
The limits of my language mean the limits of my world. - Ludwig Wittgenstein


____
The limits of my language mean the limits of my world. - Ludwig Wittgenstein

codebank의 이미지

이문제에 관련해서 이전 데이터 정리글도 보고 국립국어원에 질의하신글도 보았습니다.
한자를 많이 사용하지는 않지만 입력부분에 관심이 있어서...
일단 입력부분에 대해서 조금 편리하게 사용하시려면 http://kldp.org/node/75048 글을
참고해보세요.
만일 scim을 사용하시고 있으시다면 파일을 직접 수정하시는 것만으로도 좀더 편리하게 입력작업을
하실 수 있을 거라고 생각합니다.

이 방법이 맞는 방법이라고는 생각하지 않지만 제가 테스트해보았던 방법을 알려드리겠습니다.
선제조건은 scim-hangul 0.3.0이상의 버젼이 설치되어있어야합니다.
(제가 알기로 이 버젼부터 libhangul을 사용하고 있어서...)
이미 설치되어있거나 설치하셨다면 /usr/share/libhangul/hanja/hanja.txt 파일을 작업공간으로 복사를 하십시요.
(혹시 모르니 백업차원에서 원본을 가지고 계시는 것도 좋습니다.)
그리고 자주 사용하는 한자 또는 문자열을 추출하십시요.
그리고 해당 글자들을 text의 규칙(한글로 정렬되어있습니다.)에 맞도록 추가하시고 저장하십시요.
(저는 위에 動詞 부분을 추가해 보았습니다.)
그리고 수정된 파일을 /usr/share/libhangul/hanja/hanja.txt에 복사하세요.(root권한으로 복사하셔야
할겁니다. 권한이 -rw-r--r--이라서...)
그리고나서 scim을 다시 시작하시면 이후부터 원하는 한자 또는 문자열을 빠르게 입력하실 수가 있습니다.
중간에 링크된 글처럼 scim 상태바의 '韓'대신에 '漢'을 선택하시는 것을 잊지 마시고요...

제가 직접 작업해서 파일을 올려드리는게 더 좋겠지만 한자에서 많이 사용하는게 무엇인지 잘몰라서
좀더 편하게 사용하시라고 방법을 알려드립니다.
이후에 krisna님에게 해당 파일을 보내드려서 다음버젼에 적용가능한지 문의하시는 것도 좋겠죠.

어찌보면 임시방편적인 방법만 알려드린것 같네요.
일단 저도 자료를 받아서 분류하는 방법을 생각해보겠습니다.
------------------------------
좋은 하루 되세요.

------------------------------
좋은 하루 되세요.

redneval의 이미지

1. 해야할 일

(1) '국립국어원 사전 표제어 목록' (http://kldp.org/node/80530)

을 이용하여 한글->한자 데이터를 만든다.

한자 입력을 위한 프로그램을 따로 만드는 것보다는

SCIM을 이용하는 것이 지금으로서는 가장 좋은 선택이라고 봄.

그러므로 데이터는 libhangul의 hanja.txt과 같은 포맷으로 만든다.

(2) libhangul의 hanja.txt와 (1)의 데이터를 합치고 중복되는 것들을 빼서 새로운 hanja.txt 파일을 만든다.

(3) libhangul의 개발자에 연락함.

2. 한글->한자 데이터 분류

'국립국어원 사전 표제어 목록'을 살펴본 결과 데이터를 크게 네 분류로 나눌 수 있음.

Type 0 : 한자 정보가 없거나 단어가 한 글자인 경우.

-> 필요없으므로 Pass.

Type 1 : Type 3가 아니면서, 한자의 글자수와 한글의 글자수가 똑같은 경우.

(ex: 가가호호:家家戶戶)

-> 최고의 케이스임. 약간만 바꿔서 libhangul에서 바로 사용 가능함. (단, libhangul에 버그가 없다면)

Type 2 : Type 3가 아니면서, 한글의 글자수가 더 적은 경우. 단어에 순우리말 또는 외래어가 들어갔거나 또는 그 밖의 이유로.

(ex: 가나다순:가나다順)

-> Type 1에 비해 좀 더 변환과정이 필요함.

Type 3 : 단어가 1:1 매칭이 되지 않는 경우. 하나의 한글단어에 한자가 여러 단어가 존재함.

(ex: 가미:佳味또는嘉味)

-> 가장 까다롭다. 1967개 '밖'에 안된다는 점이 위안.

< Type 1,2,3를 각각 텍스트로 만든 파일을 첨부함. >

3. scim-hangul과 libhangul

(1) 요약

간단히 설명하면 scim-hangul은 0.3.1 버전이 나온 상태이고

http://sourceforge.net/project/showfiles.php?group_id=108454&package_id=125855

scim-hangul 이 사용하는 라이브러리인 libhangul 는 0.0.4 버전임.

http://kldp.net/frs/?group_id=362

scim-hangul이 사용하는 한자데이터는 libhangul의 hanja.txt 파일임.

(2) 문제점

하지만 지금은 libhangul 0.0.4버전의

한자목록(hanja.txt)을 불러오는 함수에 버그가 있는듯 하므로

libhangul의 개발자와의 연락이 필요함.

(버그설명: hanja.txt의 크기가 3MByte쯤 보다 크면 잘 안됨.

구체적으로는, 재부팅하면 되는데 로그아웃하면 안됨.

또, hanja.txt의 첫번째 목록이 무엇이냐에 따라서 안 되기도 함.)

참고로, scim이 먹통되면 전체 시스템이 먹통이 되는 수가 있으니 주의.

댓글 첨부 파일: 
첨부파일 크기
Package icon hanja_big.zip2.1 MB
masoris의 이미지

감사합니다 :)
덕분에 한자 자료를 추출하는 것이 해결되었네요.

Type1의 경우는 그냥 쓰면 되겠고,

Type2의 경우는 말씀하신것 처럼 "가나다순:가나다順"같은 형태로 변형해야 할 것입니다.

Type3의 경우는 이체자 문제로 상당히 복잡합니다. 아래와 같은 이유가 있기 때문입니다.
1. 대한민국에서 몇몇 한자와 몇몇 한자어는 복수의 한자 표기를 인정합니다. 몇몇이 1967개 로군요...
2. 유니코드에 제대로 맵핑이 되지 않아. KS표준과, 상용한자와, 본자(本字)가 따로따로인 경우가 많습니다.
3. 여러개의 음을 가진 한자를 처리하기 위해, 한중일 호환용 한자를 사용하는 경우가 대부분인데, 잘못된 코드로 되어 있는 경우가 많습니다.

제가 생각하는 해결 방법은 이렇습니다.
1. 한자 데이터에 유니코드 정규화 알고리즘을 적용하고, 어떻게든 한자를 통일합니다.
2. 입력기에서 특정음의 한자를 한중일 호환용 한자로 변환하는 기능과, 선호하는 이체자를 선택할 수 있게 하는 기능을 제공합니다.

libhangul의 경우는 개발자와 연락하여 버그를 해결해야 하겠군요.

무엇보다도 가장 큰 문제는 한자를 어떻게 빈도순으로 정리할것인가 하는 것이겠죠.

____
The limits of my language mean the limits of my world. - Ludwig Wittgenstein


____
The limits of my language mean the limits of my world. - Ludwig Wittgenstein

hongminhee의 이미지

아… 맥 같은 경우에는 한글로 한자어를 입력하고 한번에 한자로 바꿀 수 있습니다.

masoris의 이미지

한자 입력기와 한자 데이터 정리에 관한 저의 생각을 정리해 보았습니다.
여기를 읽어주세요 : http://hanbin.new21.net/wiki/index.php/%ED%95%9C%EC%9E%90%EC%9E%85%EB%A0%A5%EA%B8%B0%EC%97%B0%EA%B5%AC

____
The limits of my language mean the limits of my world. - Ludwig Wittgenstein


____
The limits of my language mean the limits of my world. - Ludwig Wittgenstein

redneval의 이미지

국립국어원의 한자 데이터는 95% 변환이 끝났습니다.

사실, 나머지 5%는 대부분 수작업을 요하는 것들이라 스크립트로 할 수 있는건 99% 했다고 보면 됩니다.

아무튼, 결과물은 아래 첨부된 파일을 받으면 됩니다.

정규표현식, sed, perl, OpenOffice를 사용했는데,

첨부파일의 script 디렉터리에 제가 사용한 스크립트 코드까지 동봉했습니다.

complete 디렉터리에 완성된 데이터들이 있고,

incomplete 디렉터리에는 미완성된 데이터들이 있습니다.

한 가지 중요한 게, 여러 개로 나눠진 파일을 하나로 합치는 프로그램(또는 스크립트)이 필요한데,

조만간 올리겠습니다.

사족1 : 데이터의 출처를 밝히는 취지에서 파일이름에 nikl(국립국어원의 영문이니셜)을 붙였습니다.
사족2 : 한사적 위키 페이지가 안 열리네요.

댓글 첨부 파일: 
첨부파일 크기
Package icon hanja_nikl.zip2.23 MB
masoris의 이미지

감사합니다 :)

수작업이 필요한 부분을 알려주시면, 제가 손수 정리를 하도록 하겠습니다.

____
The limits of my language mean the limits of my world. - Ludwig Wittgenstein


____
The limits of my language mean the limits of my world. - Ludwig Wittgenstein

krisna의 이미지

먼저 많은 분들의 작업에 감사드립니다.

hanja_nikl.zip의

hanja_type1_complete.txt
hanja_type2_1_complete.txt
hanja_type3_1_1_complete.txt

는 libhangul의 hanja.txt에 추가하였습니다.

hanja_type1_complete.txt의 경우는 추가하는데 아무런 문제가 없습니다.

hanja_type2_1_complete.txt의 경우 제 기억이 정확하지는 않지만 아마도 scim-hangul 0.3.1 에서 처리할 수 있을 것입니다. 아무튼 현재 CVS HEAD에 있는 scim-hangul 엔진으로는 잘 작동하는 것을 확인하였습니다. 그러나 몇몇 단어들의 경우 PUA 영역의 글자로 표현한 것이었습니다. 이들은 문서를 작성하는데 사용했던 폰트를 알기전에는 어떤 글자인지 알수 없으므로 제외하였습니다.

hanja_type2_2_1_complete.txt의 경우는 띄어쓰기하여야 할 부분에 띄어쓰기가 없이 작성되어 있는 데이터가 많습니다. 따라서 libhangul에 추가하지 않았습니다.
예) 감정의오류, 거주이전의자유 등

hanja_type3_1_1_complete.txt의 경우도 별 문제가 없으므로 추가하였습니다. 동일한 단어를 다른 한자로 표현하는 것을 입력기 수준에서 막을 이유가 없습니다. 그냥 모두 입력 후보에 보여주면 충분하다고 생각하여 추가하였습니다.

* 앞으로 남은 과제
1. 한중일 호환한자로 표현하는 문제
한자로 표현할때 한중일 호환한자를 사용하는 것이 장점도 있겠지만 단점도 많다는 생각입니다. 앞으로는 단순히 한중일 통합한자 영역의 글자로만 표기하는 것이 단순하고 편리하지 않을까 생각합니다. 둘 이상의 독음을 가진 한자를 모두 호환한자로 표현할수 없을 바에야 그냥 통합한자로 표기하는 것이 간단하다고 생각합니다. 그래서 한자 사전 파일은 모두 통합한자로 보관하는 것이 좋을 것 같습니다.

2. 빈도에 따른 우선 순위 문제
많은 한자어와 한자들을 빈도에 따라서 입력기에서 우선순위를 조절하여 보여주는 순서를 자동으로 처리할 수 있다면 가장 좋겠습니다. 그러나 아직 적절한 수준의 우선순위 데이터를 찾지 못하였습니다.

* libhangul의 한자 로딩 루틴의 버그
3MB가 넘는 파일이라고 해서 오류가 발생하지 않습니다. 아마도 테스트하신 데이터 파일에 문제가 있는 것으로 보입니다. 마지막으로 머지한 결과물은 6MB이고 잘 작동하고 있습니다.
만일 libhangul의 버그를 발견하였다면, kldp의 bbs에 쓰는 것보다 KLDP.net의 hangul 프로젝트의 버그 트래커에 남기는 것이 훨씬 좋은 대응책입니다.

버그트래커: http://kldp.net/tracker/?atid=350420&group_id=362&func=browse

또한 libhangul에 대한 것들을 토론하고 싶다면 libhangul의 메일링 리스트에 가입하여 이야기하는 것도 좋겠습니다.

* 데이터를 머지하는 법
주어진 데이터를 머지하는 방법은 복잡한 툴을 필요로 하지 않습니다.

hanja.txt에 주석을 지우고 아래와 같은 방법을 따라가면 됩니다.

export LANG=C
cat hanja.txt append_hanja.txt | sort | uniq > hanja_new.txt

이렇게 한후 주석부분을 다시 붙이면 됩니다. 주의할 것은 반드시 locale을 C로 바꾸고 작업하셔야 한다는 것입니다. sort나 uniq는 locale에 따라서 작동방식이 달라지므로 조심하여야 합니다.

* 토론장
현재 입력기 관련 구현을 위해서 벌어지는 토론들이 분산되어 정보가 뭍혀버릴 가능성이 높습니다.
이를 한 곳으로 모아 방향에 대한 정리를 하면서 구현을 하였으면 좋겠습니다.

masoris의 이미지

1. 한중일 호환한자로 표현하는 문제
한중일 호환 한자는 둘 이상의 독음을 가진 한자를 모두 호환용 한자로 표현할 수 없을 뿐더러, 일부 글자가 입력기마다 코드가 다른 금/김 문제와 같은 문제가 있습니다. 따라서, 이러한 문제가 발생하지 않도록 모든 한자를 한중일 통합 한자로 표현하는 쪽이 좋을 것 같습니다.

2. 빈도에 따른 우선 순위 문제
미디어위키에 한자혼용 위키백과를 제작하기 위한 시험용 문서가 있습니다. 현재 까지 300개 가량의 문서가 작성되어 있는데, 이를 이용하여 한자 빈도를 분석하여 사용한다면 좋을 것 같습니다. 참고로 미디어위키는 모든 한자를 유니코드 정규화 알고리즘을 사용하여 한중일 통합 한자로 저장합니다.

저작권 문제가 없는, 빈도 조사를 위한 데이터를 이곳에 모아 두도록 하겠습니다.

____
The limits of my language mean the limits of my world. - Ludwig Wittgenstein


____
The limits of my language mean the limits of my world. - Ludwig Wittgenstein

김도현의 이미지

저는 이 정책에 반대합니다.

한자어를 프로그램 내부적으로 한글독음으로 변환하여 처리할 일이 있습니다. 가나다 정렬을 해야 한다거나 한자 뒤에 적절한 조사를 자동으로 붙인다거나... 이 경우 호환한자 대신 통합한자만 쓴다면 난처한 일이 발생할 수 있습니다.

http://kldp.org/node/74311
이 글타래를 한번 일독해 주시면 감사하겠습니다.

masoris의 이미지

잘 읽어 보았습니다.

제가 한사적에 적어 놓았듯이 한자 데이터 정리와 한자 입력기에 관한 제 생각은 이러합니다.

1. 한자 데이터는 금/김 문제 등의 코드 문제와 여러가지 관련 문제점을 해결하기 위해 한중일 통합 한자로 처리합니다.
2. 입력기 상에서 한중일 통합 한자를 한중일 호환용 한자로 변환하는 기능을 제공합니다. 한자 데이터가 모두 한글:한자 한쌍으로 이루어져 있고, 한중일 호환용 한자가 250여개로 제한적이기 때문에 가능합니다.

장기적으로는 한중일 통합 한자로 작성된 글을 데이터 베이스를 사용하여, 올바른 한글로 변환한다거나, 한중일 호환용 한자로 변환할 수 있는 도구를 만들어야 할 것입니다. 이를 위해 제가 한자한글프로젝트를 만든적이 있습니다. 현재 일반적인 한자혼용으로 작성된 문서는 99.9% 정확도로 변환되며, 인명과 지명은 98% 수준으로 상대적으로 낮은 편입니다. 한자 지명과 한자 이름 목록을 확보한다면 좀더 정확도를 높일 수 있으리라 생각합니다.

____
The limits of my language mean the limits of my world. - Ludwig Wittgenstein


____
The limits of my language mean the limits of my world. - Ludwig Wittgenstein

krisna의 이미지

그런데 어차피 이미 입력된 한자를 한글로 변환하려면 단순한 1:1 치환 방식으로는 제대로 변환이 안될텐데요.
따라서 단어 사전이 필요하고, 그런 상황이라면 굳이 호환한자만 따로 처리할 필요도 없겠구요.

zepinos의 이미지

꼭 리눅스 쪽에서 해결책을 찾는 것이 아니라면...

뿌리법과 같은 한자 입력기가 존재하고,

속기키보드처럼 교육을 통해 배워야 하는 단점이 있긴 하지만 속도는 빠른 편으로 알고 있습니다.

윈도우즈 전용으로만 개발되었다는게 문제긴 하군요.

이걸 개발한 곳에서 현재 정의된 새바탕체 이외의 한자에 대한 자체 폰트도 제작한다니 한 번 알아보시는 것도 좋겠죠.

뭐...그 회사에서 근무하기에 잘 몰라도 그냥 주절거려 본 겁니다.

솔트웍스라는 회사 쪽에 알아보세요. 또다른 회사인 동방미디어는 망했으니까요.

이번에 개발된 상우천고라는 사이트가 있는데, 거기서 주인이신 송선생님께서 입력기 개발을 의뢰해서 Active-X 로 아주 특이한 입력기를 개발하기도 했습니다.

문제는...입력 방식은 송선생님 밖에 모른다는거...

또다른 문제는 솔트웍스의 폰트 쪽 전문가들이 MFC 말고는 잼병이라는거죠. ^^;;;

제가 아는 건 여기까지입니다.

redneval의 이미지

krisna님의 지적에 따라 데이터를 다시 정리했습니다.

1. 띄어쓰기 문제

hanja_type2_1_complete.txt 또한 띄어쓰기 문제가 있습니다. (예를들면, 경찰의날:警察의날:)

그러나 "~의 ~"과 같이 한국어 조사 '의'가 들어간 경우가 대부분일 것이라고 생각되므로 (아닐수도 있습니다만) 따로 분류해두었습니다.

이 문제는 근본적으로, 국립국어원에서 배포된 자료에 띄어쓰기가 안되었기 때문에 생긴 것으로,

어쩌면 hanja_type1_complete.txt에도 있을 지도 모르는 일입니다. (수십만 단어 중에 그런 특이한 단어가 있을지도 모르는 일입니다.)

아무튼 지금 상황에서는 '의' 가 들어간 단어를 골라서 따로 처리하는 것이 최선으로 보입니다.

hanja_type2_2_1_complete.txt 에는 띄어쓰기 문제가 생각보다 경우가 다양해서, 일일히 확인해야할 것 같습니다.

2. 데이터 머지

'그냥' sort하기에는 조금 생각해봐야할 점이 있습니다.

sort명령어를 사용하여 정렬하면, 유니코드번호순서대로 정렬하는 것인데,

이보다는 표준국어대사전의 표제어순으로 정렬하는 것이 더 낫다고 생각합니다.

그래서 저는 표준국어대사전의 표제어순서를 유지하면서 합치는 스크립트를 만들었습니다.

3. 첨부파일설명

아래 첨부된 파일에 README파일을 보세요.

완성된 사전파일을 만드려면 첨부파일의 merge.sh 를 실행하면 됩니다.

/////////////////////////////////

masoris님에게,

1. 수작업이 필요한 부분

아래 첨부된 파일을 보시면, incomplete 디렉터리에 있는 건 모두 수작업을 필요로 합니다.

그중에 가장 큰 파일이 hanja_type4_1.txt인데, 이건 국립국어원에서 배포된 자료에 '@'가 들어간 단어를 모아놓은 것입니다.

이것만 해도 11069개나 되므로 혼자서 하기에는 많은 양입니다.

2. 한사적 위키페이지

한사적 위키페이지에 '한자입력기연구' 라는 글을 올려놓으셨다고 했는데, 그 페이지가 열리지 않습니다.

몇 번을 확인했는데도 안되는걸 보면 문제가 있는 것 같습니다.

댓글 첨부 파일: 
첨부파일 크기
Package icon hanja_nikl.zip3.58 MB
masoris의 이미지

저는 잘 들어가지는데 이상하군요. 임시로 한사적 위키페이지를 위키백과 사용자 페이지로 복사하였습니다.

1. 띄어쓰기 문제
국립국어원 자료는 $기호로 띄어쓰기가 표시되어 있습니다. 하지만 대부분은 한글 맞춤법상 띄어씀을 원칙으로 하되 붙여씀을 허용하는 단어에 속하므로 굳이 이러한 단어를 분리할 필요가 없다고 생각합니다. 조사 "의"가 들어간 경우도 실제로 한자혼용으로 적는 법률 등에서는 이러한 단어를 붙여쓰는 경우가 많습니다.

2. 데이터 순서
최종적으로 데이터의 순서는 가나다순으로 하되, 동음이의어는 한자의 빈도순으로 정리되어야 할 것입니다.

3. hanja_type4_1.txt
제가 생각할때 @가 들어간 글자는, 해당 한자가 KS코드 밖이라 입력하지 못한 경우를 뜻하는 것 같습니다. 대부분 실제로 사용하는 한자를 벗어나는 경우이고, 일반적으로 잘 사용되지 않는 단어이기 때문에 수동으로 채워넣 것도 어려울 것 같습니다.

4. hanja_type2_2_1.txt, hanja_type3_2.txt
이 두개의 파일은 별도로 정리 없이 사용해도 될 것 같습니다.

5. hanja_type4_2.txt, hanja_type4_3.txt
외래어, 옛한글이므로 이 두개의 파일은 버리는 것이 좋겠습니다.

____
The limits of my language mean the limits of my world. - Ludwig Wittgenstein


____
The limits of my language mean the limits of my world. - Ludwig Wittgenstein

krisna의 이미지

libhangul의 hanja.txt에 머지한 후 데이터의 오류를 검사하기 위해서 약간 스크립트를 돌려본 결과
오류가 많습니다. 이를 일일이 손으로 수정하게 되면 이후에는 국어원의 표제어 목록에서 다시 추출한
결과를 merge할 수 없게 됩니다.

1. 정렬 순서
정렬 순서를 임의로 보기 좋은 순서로 하지 않은 이유는 데이터를 검색하기 위한 것입니다.
코드값에 따른 정렬이 되어있어야 효율성 있는 검색 루틴을 만들수 있습니다. 따라서 로켈에 따른 것을
무시하고 unicode 값에 따른 정렬을 하는 것입니다.
빈도 순에 따른 정렬은 사전 데이터에서 하기보다는 프로그램에서 처리할 수 있도록 구현해야 할것 같습니다.
그래야 정적인 순서가 아니라, 사용자에 따라서 순서를 조정할수 있게 될것입니다.

2. 띄어쓰기 문제
libhangul의 hanja.txt 파일은 한글로 쓴 후 한자 입력을 위해서 사용하는 데이터파일입니다. 따라서
"경찰의날"이라는 단어를 입력한후에도(띄어쓰기를 잘못한 후) 한자로 변환이 가능하게 하고 싶다면
그런 데이터도 추가하면 됩니다.

3. 사이시옷
오래된 사전의 데이터여서 그런지 많은 단어에 사이시옷이 들어간 상태입니다.
현재 맞춤법에는 한자어에 사이시옷을 사용하지 않는 것으로 알고 있습니다.

4. 잘못된 단어
사전의 표제어 목록이다보니, 잘못쓴 단어의 한자어조차 수록되어 있습니다. 이런 경우를 hanja.txt에 추가할 것인지 지울 것인지 결정을 해야 합니다. 잘못된 단어를 추가해두면 사용자들은 자신의 표현이 잘못된 것인지
모르고 계속 사용하게 되는 문제가 있습니다. 대신 잘못된 단어를 제거하면 잘못된 단어로 한자어 입력을 시도할때 변환할 수 없게 됩니다. 결론적으로 편의성을 위해서 잘못된 데이터를 추가할 것인가 하는 것입니다.

예) 계시:揭示: ‘게시(揭示)’의 잘못.

또한 사투리에 따른 같은 한자의 다른 발음도 포함하고 있는 것도 고려해야 할 것 같습니다.

masoris의 이미지

hanja_type2_1_1.txt 파일은 한글과 한자가 섞은 한자어가 들어 있는 파일인데, 파일 내용을 보면 이런 문제가 있습니다.

A-000183;가격표;가격表 // 價格表가 맞습니다.
A-000183A;가격표;가격票 // 價格票가 맞습니다.
A-000638;가납세;假납세 // 假納稅가 맞습니다.

전체 데이터의 10%가량이 이런식으로 잘못되어 있어 수동으로 수정할 수도 없습니다.

제 생각에는 아래 Type중에서 Type2는 문제가 많으니, Type2는 포기하고, Type1과 Type3만 한자 정리에 사용하였으면 합니다.
Type 1 : Type 3가 아니면서, 한자의 글자수와 한글의 글자수가 똑같은 경우.
Type 2 : Type 3가 아니면서, 한글의 글자수가 더 적은 경우. 단어에 순우리말 또는 외래어가 들어갔거나 또는 그 밖의 이유로.
Type 3 : 단어가 1:1 매칭이 되지 않는 경우. 하나의 한글단어에 한자가 여러 단어가 존재함.

____
The limits of my language mean the limits of my world. - Ludwig Wittgenstein


____
The limits of my language mean the limits of my world. - Ludwig Wittgenstein

aggazc의 이미지

조금 어렵겠지만, 언어를 하나 더 배울수 있다는 장점도 있을뿐더러..
중국어 입력기는 전부다 발음기호(성조)로 입력하는게 아니라,
익숙해지면 700~800타는 나온다는, 오필(五笔)로 획의 모양 몇개만 입력해서 찾는방식도 있고, 창핀, 창지에, 등등 많은 입력방식이 존재합니다. scim이나 ibus의 중국어 입력기 플러그인만 봐도 보이지않나요?

성조입력이 아니면, 한자의 모양만 알 경우에, 키보드의 자판만 외운것으로하여 입력이 가능합니다.

제가 생각할때, 한국어에서 자주쓰지않는 한자는 일부일뿐이지만, 중국어에서 한자는 그 자체니까요. 입력방식같은 부분에서는 어쨋거나 낫지 않을까하는생각이네요.

아래 중국어 입력방식에 대한 링크입니다..
http://kin.naver.com/qna/detail.nhn?d1id=11&dirId=110805&docId=117595238&answerNo=1

아참.. 세계화교들 싱가폴 대만 홍콩 중국 광동지역에서는 아직도 번체자를 쓰고 있는데,
그래서 간체로 입력하고 번체로 변환할수도있고요, 입력기를 번체로 설정해놓고 입력해도 되고, 변환이 자유로운편입니다.

-----------