상세 컨텐츠

본문 제목

한국어 말뭉치를 통한 사이시옷 사용 실태 조사

프로그래밍/NLP

by ∫2tdt=t²+c 2024. 11. 4. 02:20

본문

헷갈리는 사이시옷

사이시옷은 참으로 묘한 녀석입니다. 이름은 분명 사이"시옷"인데 ㅅ소리가 전혀 나지 않거든요. 사이시옷의 역할은 두 개의 명사가 합쳐져서 복합 명사가 되는 과정에서 뒤의 명사가 된소리화(ㄲ/ㄸ/ㅃ/ㅆ/ㅉ)되거나 ㄴ소리가 첨가되는 현상을 반영하기 위해서 명사 사이에 ㅅ을 적기로 약속한 것이기 때문입니다. 그래서 적기는 ㅅ으로 적더라도 실제로는 ㅅ 소리가 절대 나지 않습니다. ('숫자'는 [숫자]로 소리나는 것이 아니라 [수짜]로 소리나고, '깻잎'은 [깨십]으로 소리나는 것이 아니라 [깬닙]으로 소리납니다.)

사실 발음보다 더 골이 아픈 문제는 사이시옷을 언제 써야하는지, 언제 쓰지 말아야하는지를 구분하는게 참 어렵다는 겁니다. 잘 모르는 복합명사를 받아적을 일이 생겨서, 그 명사에 사이시옷이 들어가는지 아닌지를 추정해야하는 상황이라고 생각해봅시다. 원칙상 다음과 같이 맞춤법 규정을 따라 차근차근 접근하면 문제를 풀수는 있습니다.

일단 맞춤법 규정에는 한자어와 한자어가 결합하는 경우, 외래어와 순우리말이 결합하는 경우에는 사이시옷을 적지 않도록 했습니다. 즉, 한자어 + 순우리말, 순우리말 + 한자어, 순우리말 + 순우리말이 결합하는 경우 중 뒤의 명사가 된소리화되거나 ㄴ소리가 붙는 경우에 사이시옷을 쓰면 된다는 겁니다. (즉 뒷 명사가 이미 된소리이거나 거센소리인 경우에는 된소리화가 된것도 아니고 ㄴ 소리가 붙는 것도 아니므로 사이시옷을 안 적습니다. 또 당연히 이미 앞 명사에 받침이 있는 경우에도 ㅅ을 적을 수 없으므로 적지 않구요.)  물론 예외가 있습니다. 한자어끼리 결합한 것 중 다음 6개는 예외적으로 사이시옷을 적어요. 

곳간, 셋방, 숫자, 찻간, 툇간, 횟수

저 예외는 왜 사이시옷을 적는지 이해가 안되지만, 일단 개수가 적으니 무작정 암기하는 걸로 합시다. 나머지 경우는 복합명사를 이루는 명사가 한자어인지, 순우리말인지, 외래어인지를 구분하면 규칙에 기반해서 처리할 수 있겠군요. 근데 어떤 명사가 순우리말인지 한자어인지 외래어인지 어떻게 구분할 수 있나요? 한국어를 모어로 쓰는 사람들은 언어적 직관이 있으니 생각보다 쉽게 구분할 수 있을까요? 재미난 퀴즈 시간이 돌아왔습니다. 다음 명사가 순우리말인지, 한자어인지 외래어인지 한번 구분해보세요.

  • 생각
  • 사이비
  • 지금(말하고 있는 바로 이때)
  • 저녁
  • 물론
  • 고무
  • 어차피
  • 비닐
  • 서랍
  • 녹초(기가 빠지거나 맥이 풀어져 힘을 쓰지 못할 상태)
  • 포도
더보기
  • 생각: 순우리말
  • 사이비(似而非): 한자어
  • 댐(dam): 외래어
  • 지금(只今): 한자어
  • 저녁: 순우리말
  • 물론(勿論): 한자어
  • 고무(gomme): 외래어
  • 어차피(於此彼): 한자어
  • 비닐(vinyl): 외래어
  • 서랍: 순우리말
  • 녹초: 순우리말
  • 빵(pão): 외래어
  • 포도(葡萄): 한자어

한국어 원어민들은 다들 전부 맞히셨겠...으면 아주 좋겠으나 불행히도 전부 맞히신 분은 거의 없을 겁니다. 국어학자가 아닌 이상 각 단어의 어원을 훤히 꿰고 있을리가 없고, 사람들은 그저 단어의 발음을 보고 한자어 같은 발음이면 한자어로, 뭔가 외국어 같은 발음이면 외래어로, 그것도 아니면 순우리말로 추정하기 때문에 정확도가 매우 낮을 수 밖에 없습니다. 그래서 어떤 복합명사를 받아적을 때 사이시옷을 써야하는지 아닌지를 알려면 결국 각 명사의 어원이 뭔지를 사전을 열어봐서 확인하는 수 밖에 없겠구요. 일이 점점 어려워집니다.

어원을 확인해서 순우리말 혹은 순우리말과 한자어의 조합이라는게 확인되었다고 칩시다. 된소리화나 ㄴ첨가가 일어나는지만 확인해보면 사이시옷을 이제 바르게 적을 수 있습니다. 그러면 그 단어의 표준 발음을 정확하게 알아야겠네요. 표준어를 사용하는 교양 있는 한국인들은 다들 표준발음을 정확하게 알고 있겠죠? 그래서 또 퀴즈 시간이 돌아왔습니다. 표준 발음에 맞는 것을 골라보시면 됩니다. (표준 발음이 뭔지 알면 사이시옷 표기도 자동적으로 결정됩니다.)

  • 깨잎[깨입] / 깻잎[깬닙]
  • 배추잎[배추입] / 배춧잎[배춘닙]
  • 머리말[머리말] / 머릿말[머린말]
  • 바다장어[바다장어] / 바닷장어[바다짱어]
  • 처가집[처가집] / 처갓집[처가찝]
  • 시계줄[시계줄] / 시곗줄[시계쭐]
  • 머리고기[머리고기] / 머릿고기[머리꼬기]
  • 꼬리살[꼬리살] / 꼬릿살[꼬리쌀]
  • (사이시옷 문제는 아니지만 표준 발음 문제) 김밥[김밥] / 김밥[김빱]
더보기
  • 깻잎[깬닙]
  • 배춧잎[배춘닙]
  • 머리말[머리말]
  • 바다장어[바다장어]
  • 처갓집[처가찝]
  • 시곗줄[시계쭐]
  • 머릿고기[머리꼬기]
  • 꼬리살[꼬리살] / 꼬릿살[꼬리쌀] ??? (꼬리살/꼬릿살은 사전에 등재되어있지 않은 단어라서 표준 발음을 알 수가 없어요.)
  • 김밥[김밥] / 김밥[김빱] (둘다 표준 발음입니다.)

솔직히 다 맞힐 자신이 없습니다. 잘 모르겠으면 사전을 찾아보면 어찌저찌 풀 수 있겠지만, 더 큰 문제는 사람들이 이미 사용하고 있지만 아직 사전에 등재되지 않은 단어도 종종 있고, 단어에 따라 된소리화된것과 그렇지 않은게 복수 표준인 경우도 있다는 겁니다. 이쯤되면 사이시옷을 적을지 말지를 그냥 찍는게 더 편할 것 같습니다.

Kiwi 0.20.0의 신기능

그래서 맞춤법을 잘 지켜쓰려는 사람들도 자주 쓰이지 않는 복합명사나 새로 만들어진 복합명사에 대해서는 "사이시옷 찍기"를 행하는 듯합니다. 실제로 인터넷 검색을 해보면 동일한 단어에 대해 사이시옷을 쓴 경우와 그렇지 않은 경우가 모두 비등비등하게 등장하는 사례도 제법 있어요. 사실 글을 읽는 게 사람이라면 사이시옷을 좀 잘못 써도 탈이 나는게 아니라서 이게 문제가 되지 않습니다. 그러나 글을 읽는 게 컴퓨터라면 이야기가 달라집니다. "머리말"은 컴퓨터의 사전에 등록되어 있겠지만 "머릿말"은 모르는 단어일거고, "처갓집"은 처리할 수 있겠지만 "처가집"은 처리불가능할지도 모르거든요. 그래서 웹상의 텍스트를 자동분석할때 사이시옷 오류는 치명적으로 다가옵니다.

이에 대응하는 가장 간단한 방법은 사이시옷이 들어간 형태와 들어가지 않은 형태 모두를 분석기 사전에 등재시켜 놓는 것이지만, 문제는 복합명사는 열린 집합이기에 얼마든지 새로운 단어가 추가될 수가 있고 이 때문에 모든 복합명사를 사전에 미리 등재하는 것은 불가능하다는 것입니다. 그래서 한국어 형태소 분석기 Kiwi 0.20.0 버전에서는 이를 해결하기 위해 다음과 같이 사이시옷을 위한 품사태그 Z_SIOT을 추가하고 이 태그가 필수적이 아닌 선택적으로 등장할 수 있게 하여서 문제를 해결했습니다.

사실 사이시옷은 그 자체로 형태소는 아니기 때문에 이를 별도로 처리하는 한국어 형태소 분석기는 없었습니다. 이번에 Kiwi에서 새로 시도한 것이지요. 과연 새로 개발한 기능이 제대로 작동하는지 확인하기 위해 간단한 실험을 해보기로 했습니다. 다양한 한국어 말뭉치를 대상으로 사이시옷이 포함된 것으로 추정되는 명사들의 통계를 내보았습니다.

사이시옷 사용 실태 조사

먼저 국립국어원 모두의 말뭉치 중 웹 텍스트를 대상으로 형태소 분석을 수행하여 사이시옷이 포함된 복합명사와 그에 대응하는 사이시옷이 없는 명사의 빈도를 추출해보았습니다. 맞춤법 상 올바른 표기법은 굵게 나타냈습니다.

모두의 말뭉치 웹 텍스트에서 추출된 사이시옷이 포함된 명사들 통계
사이시옷 있는 형태 사이시옷 없는 형태
고깃집 1794 고기집 1382
깻잎 2746    
숫자 2074 수자* 10
오랫동안 1764    
아랫쪽 7 아래쪽 1540
공깃밥 376 공기밥 1152
촛점 122 초점 1143
머릿결 997 머리결 172
머릿속 933 머리속 198
횟수 644 회수* 350
바닷가 865    
홋수 8 호수* 806
고춧가루 537 고추가루 271
갈빗살 18 갈비살 773
뱃살 771    
피붓결 5 피부결 732
갯수 415 개수 286
순댓국 59 순대국 611
뱃속 457 배속* 86
땟깔 8 때깔 447
부챗살 29 부채살 357
가짓수 317 가지수 39
둘쨋날 58 둘째날 253
갯벌 302    
나뭇잎 252 나무잎 5
바닷물 205 바다물 9
텃밭 205    
수돗물 195 수도물 6
바닷속 140 바다속 56
어젯밤 174 어제밤 19
만둣국 66 만두국 114
미숫가루 167    
찻잔 164    
콧끝 5 코끝 158
다릿살 60 다리살 100
찻집 156    
갈빗대 120 갈비대 34
피잣집 7 피자집 146
귓속 60 귀속* 90
보랏빛 89 보라빛 45
바닷바람 119 바다바람 14
국숫집 16 국수집 115
부잣집 110 부자집 20
갈빗집 10 갈비집 117
비눗방울 94 비누방울 30
방앗간 121    
첫쨋날 5 첫째날 112
조갯살 49 조개살 62
인삿말 22 인사말 89
맥줏집 5 맥주집 99
뼛속 80 뼈속 22
시래깃국 6 시래기국 93
치맛살 36 치마살 60
죗값 73 죄값 17
처갓집 39 처가집 44
낚싯대 32 낚시대 51
바닷장어 9 바다장어 74
뭇국 6 무국 75
이야깃거리 65 이야기거리 15
바닷마을 69 바다마을 10
기왓집 5 기와집 73
안줏거리 7 안주거리 65
마룻바닥 49 마루바닥 22
김칫국 38 김치국 33
자릿세 59 자리세 9
놀잇감 56 놀이감 10
선짓국 5 선지국 61
곳간 64    
우스갯소리 53 우스개소리 10
장밋빛 36 장미빛 27
반딧불 62    
뱃사공 60    
혼잣말 59    
사잇길 22 사이길 35
콧등 56    
콧속 47 코속 9
노랫소리 31 노래소리 23
머릿고기 27 머리고기 25
탯줄 51    
고깃국 34 고기국 17
시곗줄 10 시계줄 40
김칫국물 8 김치국물 41
노랫말 48    
찻잎 42 차잎 6
먹잇감 40 먹이감 8
호숫가 46    
샛별 46    
만둣집 10 만두집 35
북엇국 12 북어국 32
아랫칸 9 아래칸 35
귓밥 42    
우윳빛 21 우유빛 21
빨랫감 18 빨래감 24
자릿수 34 자리수 7
날갯짓 27 날개짓 13
골칫거리 33 골치거리 6
세숫대야 28 세수대야 11
외갓집 23 외가집 16
머릿말 8 머리말 31
종잣돈 26 종자돈 12
주윗사람 5 주위사람 33
저잣거리 37    
이삿짐 29 이사짐 8
후춧가루 17 후추가루 17
고깃값 13 고기값 21
진돗개 33    
샛길 32    
존댓말 32    
콧바람 31    
배춧잎 18 배추잎 13
등굣길 12 등교길 19
종갓집 7 종가집 24
전봇대 29    
머릿살 14 머리살 15
고깃살 6 고기살 22
꼭짓점 6 꼭지점 22
* 동철이의어가 포함되어 있어 빈도수가 부정확할 수 있음

웹 상의 텍스트라 그런지 사이시옷을 잘못 사용하는 경우가 제법 되는 것 같네요. 그럼 출판된 서적에서 가져온 문어 말뭉치에서는 좀 더 정확한 결과가 나왔을까요? 모두의 말뭉치 문어 말뭉치에 대해서도 동일한 분석을 수행해보았습니다.

모두의 말뭉치 문어 말뭉치에서 추출된 사이시옷이 포함된 명사들 통계
사이시옷 있는 형태 사이시옷 없는 형태
오랫동안 68447    
숫자 66953 수자* 934
머릿속 51100 머리속 746
촛점 340 초점 51206
문젯점 5 문제점 50666
홋수 5 호수* 31111
솟장 12 소장* 30021
횟수 12947 회수* 15507
잿물 407 재물* 17870
바닷가 16861    
뱃속 13437 배속* 2028
어젯밤 14577 어제밤 138
귓속 2263 귀속* 11792
아랫쪽 11 아래쪽 12867
윗쪽 6 위쪽 12172
댓수 6 대수 11751
숫양(X) 356 수양 11143
나뭇잎 11316 나무잎 59
숫법 6 수법 10821
귓결 107 귀결* 10676
바닷물 9834 바다물 100
혼잣말 8771 혼자말 809
머릿칼 7 머리칼 9241
찻장 7 차장* 9117
숫난(X) 9 수난 6898
찻잔 6786 차잔 10
갯벌 6435 개벌 25
부잣집 5879 부자집 224
머릿말 46 머리말 5964
제삿장 8 제사장 5381
인삿말 94 인사말 5245
노랫소리 4748 노래소리 217
훗세인(X) 10 후세인 4844
갯수 305 개수 4498
종잣돈 353 종자돈 4378
찻집 4690 차집 11
윗층 10 위층 4472
머릿통 7 머리통 4469
콧웃음 9 코웃음 4322
텃밭 4097 터밭 50
머릿맡 5 머리맡 4123
농삿일 132 농사일 3900
호숫가 3822 호수가 100
귓전 3748 귀전 63
날갯짓 3138 날개짓 451
보랏빛 3351 보라빛 189
장밋빛 3052 장미빛 421
마룻바닥 3025 마루바닥 411
홧술 12 화술* 3281
고춧가루 3155 고추가루 95
수돗물 3062 수도물 105
이야깃거리 2886 이야기거리 191
잿간 32 재간* 2896
뱃전 2371 배전* 555
우스갯소리 2826 우스개소리 36
낚싯대 2667 낚시대 136
골칫거리 2627 골치거리 86
지렛대 2678    
뼛속 2589 뼈속 58
잿더미 2616 재더미 9
바닷속 2497 바다속 75
아랫입술 2528 아래입술 10
방앗간 2498 방아간 13
노랫말 2176 노래말 292
뱃머리 2461 배머리 6
댓자 5 대자 2432
뱃사람 2363    
툇마루 2350 퇴마루 12
뱃길 2330 배길 18
기왓집 5 기와집 2337
콧등 2307 코등 32
자줏빛 2070 자주빛 224
곳간 1919 고간* 246
담뱃갑 1907 담배갑 249
콧방귀 1678 코방귀 474
치맛자락 2073 치마자락 77
샛길 2065 새길 15
이삿짐 2000 이사짐 47
바닷바람 1990 바다바람 24
먹잇감 1646 먹이감 357
담뱃불 1852 담배불 94
장삿꾼 17 장사꾼 1923
나룻배 1934 나루배 5
전봇대 1918    
저잣거리 1528 저자거리 341
샛별 1810 새별 9
커핏잔 7 커피잔 1811
탯줄 1680    
존댓말 1434 존대말 243
나룻터 7 나루터 1661
소줏잔 83 소주잔 1582
낚싯줄 1548 낚시줄 115
바닷길 1650 바다길 6
소줏병 51 소주병 1604
고갯길 1627 고개길 26
판잣집 1419 판자집 180
찻잎 1373 차잎 195
뱃사공 1559 배사공 6
뱃살 1560    
머릿결 1344 머리결 164
찻길 1438 차길 56
자릿수 1239 자리수 214
화젯거리 1247 화제거리 191
담뱃대 1411 담배대 17
앗시리아(X) 20 아시리아 1405
허드렛일 1358 허드레일 5
귓청 7 귀청 1354
진돗개 1278 진도개 52
번갯불 1275 번개불 47
* 동철이의어가 포함되어 있어 빈도수가 부정확할 수 있음
(X): 사이시옷이 아니지만 Kiwi가 오분석한 사례

문어 말뭉치의 규모가 크다보니 다양한 사례가 등장하는 걸 확인할 수 있습니다. 특히 Kiwi가 사이시옷이 아닌 단어를 사이시옷으로 분석하는 오류를 범하는 것도 확인할 수 있네요(숫양, 숫난, 훗세인, 앗시리아 등). 그 외에도 회수나 고간처럼 중의성이 있어서 맥락에 따라 사이시옷을 쓰는 경우가 맞을 수도(반복하는 수를 나타내는 경우에는 횟수, 창고를 나타내는 경우에는 곳간), 사이시옷을 쓰지 않는 경우가 맞을 수도(돌려받는 것을 나타내는 경우에는 회수, 다리 사이를 나타내는 경우에는 고간) 있는 사례가 제법 있어서 단순히 빈도만 보고서는 정확한 분석이 어려운 경우도 제법 있습니다. 좀더 정확한 통계를 위해서는 WSD(Word Sense Disambiguation)도 필요할듯하네요. 문어 말뭉치의 결과는 보면 확실히 웹 텍스트보다는 좀더 바른 표기법을 쓰고 있는 것이 보이나 여전히 틀리는 비율이 높은 단어들도 꽤 있습니다. 교열하는 사람들도 많이 헷갈리나봐요.

왜 이렇게 헷갈리게 됐을까?

학자들은 사실 사이시옷이 중세 한국어에서 문법적 역할을 수행하는 속격조사(=소유격)였다고 추정하고 있습니다. 영어에서 소유격을 나타낼 때 's를 붙이는 것(Mother's day = 어미니 날)과 비슷한 역할을 했다는 것이죠. 그래서 사이시옷이 들어간 단어들을 분리해서 사이시옷을 소유의 의미로 해석하면 뜻이 통한다는 걸 확인할 수 있습니다(ex: 깻잎 -> 깨의 잎, 진돗개 -> 진도의 개). 그러나 언어 변천 과정에서 조사 역할을 하던 사이시옷은 차츰 잊혀지고 그 발음만이 잔재로 남은 것이죠. 문제는 한국어 화자들이 예나 지금이나 조사를 자주 생략하는 성향이 있었다는 것이고 당연히 조사였던 사이시옷도 반드시 쓰는게 아니라 상황에 따라 생략하는 경우가 많았겠지요. 때문에 명사와 명사가 결합할 때 ㅅ이 들어간 경우뿐만 아니라 그렇지 않은 경우도 동시에 흔적으로 이어져 내려오게 됩니다.

그래서 현대에 들어 맞춤법을 정비하려고 보니, 어떤 복합명사는 중세 사이시옷의 잔재가 남아 된소리화나 ㄴ소리가 첨가되는 게 있고 또 어떤 것은 그렇지 않은데, 이걸 무시하자니 동일하게 적자니 발음과 표기법이 따로 놀 것이라 어쩔수 없이 중세에 쓰이던 사이시옷 표기를 되살리게 된 거라고 하네요. 애초에 불규칙하게 발음에 남은 잔재를 표기하려다보니 표기법 역시 불규칙할 수 밖에 없는 안타까운 상황이라고 볼 수 있습니다. 다만 이 혼란을 더 크게 한것은 한자어나 외래에는 사이시옷을 쓰지 않고 순우리말 혹은 순우리말 + 한자어에서만 쓰게 한 1988년의 맞춤법 규정입니다. 어원과는 관계 없이 발생하는 불규칙한 발음 현상인데 표기시에는 어원을 고려하게 만들었기 때문입니다. 

그렇다고 이미 엎질러진 물을 주워담을 수도 없고 주워담는다고 규정을 뜯어고치면 오히려 혼란만 더 가중될테니, 한국어 처리를 하는 입장에서는 최대한 실제 언중들이 사용하는 패턴들을 인식할 수 있도록 데이터 기반의 접근법을 사용하는 게 최선이겠습니다. 

관련글 더보기

댓글 영역