0. 요약
Graff and Jaeger (2009)를 읽다가 한국어에 적용해보면 무척 재밌을 거 같았다. 그래서 R로 구현해봤다. 1
1. 왜 했나?
재밌을 거 같아서? 그리고 사실 나는 lexical phonology랑 phonotactics 그리고 양적방법론 전공이라서 당연히 이 주제에 대해 흥미가 갈 수밖에 없겠다. Ito (2014)에 보고된 것과 같이 한국어에도 후두자질(laryngeal feature)에 따른 공기제한(co-occurrance restriction)이 있다. 2그리고 Frisch et al. (2004)의 아랍어 사례와 같이, OCP 효과는 자음 간 유사성 정도에 따라 그 크기가 다르다. 따라서 어떤 한 자질을 정해놓고 그 자질이 공기(형태소 내에서 함께 출현)할 수 있느냐를 보려면 해당 자질뿐만 아니라 다른 자질들 역시 모두 고려해야 한다. 3
따라서 자질총으로서의 음소쌍 (이 경우엔 자음쌍)의 실제출현빈도를 기대출현빈도와 비교하여 통계를 내야 한다. (O/E ratio를 구하든 카이제곱검정을 하든...)
Frisch et al. 2004의 시사점에 대해 좀더 자세히 표현하자면...
이 논문에서 논증한 것과 같이, 아랍어의 OCP-Place 제약 (같은 조음위치의 자음 두개가 하나의 형태소에서 동시출현할 수 없다는 제약)은 효과의 크기가 딱 정해진 게 아니라 같은 조음위치더라도 서로 유사한 자음들끼리 더 회피된다. p-b 의 쌍과 p-v의 쌍은 모두 labial place로만 구성되기 때문에 OCP-Place 제약을 위반한다. 그러나 p-b쌍의 O/E ratio가 유의미하게 낮다. 그 이유는 p-b 간 유사도가 p-v 간 유사도보다 높기 때문이다. 이때 유사도의 척도(metric)이 자질공유 정도다. 다시 말해서 p-b는 place feature 외에도 manner feature도 공유하고 있는 반면 p-v는 manner feature가 다르기 때문에 더 이질적이다.
어쨌든! 그래서 Graff and Jaeger (2009)의 방법론을 적용하여 한국어에 실제 존재하는 단어들을 대상으로 자음 tier만 추려내고 그 tier를 구성하는 자음들의 공기(co-occurreance)를 살펴보았다.
2. 어떻게 했나?
2.1 기본 Dataset 구성
우선, https://namsling.shinyapps.io/kpnn/ 에서 한국어 렉시콘, 그 중에서도 고유어 층위에 속하는 단어만을 받았다. 한자어는 다루기가 복잡하다. 많은 경우 엄밀히 말해서 각 음절이 어근이다. '부동산' 같은 단어를 단일어로 볼 수 있을까? 아니면 '동산'의 파생어로 보아야 하나? 이런 복잡한 문제를 피하기 위해 고유어만을 분석 대상으로 삼았다.
그것을 Phonological CorpusTools를 이용해서 CV-skeleton만 남기고, 엑셀에서 자음(이하, C)이 3개만 있는 경우의 skeleton만 남겼다. 이것은 Graff and Jaeger (2009)의 방법을 그대로 사용한 것이다. 한국어 고유어에서 3개의 C로 구성된 단어는 1094개, CV-skeleton의 permutation은 70가지가 나온다. 그 중 가장 어휘빈도가 높은 경우는 CVCVC이다. (이자체로만 해도 뭔가 새로운 발견이려나?)
한국어 인벤토리에서 자음은 총 19개이다: ㅂㅃㅍ, ㄷㄸㅌ, ㄱㄲㅋ, ㅁㄴŋ, ㅅㅆㅎ, ㅈㅉㅊ, ㄹ. (자세한건 여기)
자음이 19개이기 때문에 총 19³ = 6,859 개의 triplet permutation이 논리적으로 가능하다.
R package gtools에 포함되어 있는 permutations함수를 이용하면, 모든 가능한 조합을 list로 만들었다.
# load library
library(gtools)
# Consonant phonemes are from KlatteseKOR (PCT feature matrix tailor-made for KPNN)
C_phonemes <- c("b","B","p","d","D","t","g","Q",
"k","m","n","G","s","S","h","z","c","Z","l")
# function 'permutation' takes four arguments
# n: size of source vector / r: size of target vector / v: source vector /
# repeats.allowed: self-evident
possible_triplet <- permutations(n=19, r=3, v=C_phonemes, repeats.allowed=T)
그런데 논리적으로 가능한 6,859개의 permutation 중에서 실제로 존재하는 triplet은 322개이다. 물론, 6,859라는 숫자는 아주 기계적인 triplet이고 한국어의 음소배열제약을 전혀 고려하지 않은 것이다. 예를 들어서 어두에 [ŋ] 소리가 나오는 것이 불가능하지만 논리적인 permutation에는 극단적으로 ŋ-ŋ-ŋ 도 존재하는 것이다.
어쨌든 논리적으로 가능한 triplet 대비 실제로 존재하는 triplet의 비율은 약 4.69%로 계산되었는데, sanity check를 하자면, Graff and Jaeger (2009)에 보고된 Aymara가 3%, Dutch가 11%, Javanese가 20%였다. 아마도 "한국어의 음소배열제약의 강도" 따위를 비교언어학적으로 접근할 수 있다면, Aymara와 Dutch 사이에 있을 것 같다.
여기까지 일단 기본 데이터셋이 완성되었다.
버스타고 장보러 가는 길에 아이디어가 번뜩 생각이 나서 위의 섹션1에서의 논리와 바로 위에 나오는 R코드까지 단숨에 코딩해버렸다. 살다보면 그런 순간이 간혹 있는 것 같다. 갑자기 머리 위에 전구가 켜지고 스팀팩을 맞은 듯 생산성이 엄청 뛰어버리는 순간.
Graff and Jaeger (2009)의 방법론에서는 이쯤에서 abstract out한다. 즉, 실제 코퍼스 자료는 이제 그만보고 CVCVC template이 해당 언어 렉시콘을 대표한다고 가정하고, 심지어 이 template 상에서 C1, C2, C3 triplet만을 가지고 분석을 한다.
어쨌든 이것을 한국어에 적용해서 따라가보도록 하자.
2.2 Predictors in the regression model
로스스틱 회귀(logistic regression)를 사용할 것인데, 여기에 들어가게 될 다양한 predictor (설명변수 / 종속변수) 들을 구성한다. 앞서 Ito (2014)를 인용했는데, 한국어에는 후두자질 제약이 존재하므로 OCP-laryngeal effects 역시 predictor 중 하나로 집어넣자. 만약 이 OCP 제약이 설명력을 가진다면 상당히 흥미로울 것이다.
Graff and Jaeger (2009)에서 사용한 predictor중에서 흥미로운 것은 "Freq Cn in Cn"이라는 predictor다. 예컨대 Freq C1 in C1 이라고 한다면, C1을 첫번째 자음으로 하는 triplet 중 attested되는 것이 몇개이냐? 를 수치화한 것이다. 아마도 이것은 해당 언어의 음소배열제약(phonotactics)를 factor in하려는 것으로 보인다. 예컨대 한국어에서는 음소배열적인 이유로 어두에 ŋ가 오지 못하는데, 그렇다면 한국어에서 Freq ŋ in C1 (첫번째 자음이 ŋ인 triplet 중 실제 존재하는 것의 개수)는 0이 된다.
"Freq Cn in Cn" predictor를 구하기 위한 R코드는 아래와 같다. 지금은 한밤중이라 머리가 잘 돌아가지를 않아서 일단 여기까지 하고, 앞으로 이어서 완성할 것이다.
freq.C1inC1 <- vector()
freq.C2inC2 <- vector()
freq.C3inC3 <- vector()
for (i in 1:nrow(template)) {
C1_row <- which(template$C1==template$C1[i])
C2_row <- which(template$C2==template$C2[i])
C3_row <- which(template$C3==template$C3[i])
freq.C1inC1[i] <- sum(template$Attested[C1_row])
freq.C2inC2[i] <- sum(template$Attested[C2_row])
freq.C3inC3[i] <- sum(template$Attested[C3_row])
}
- Graff, Peter and Jaeger, T. Florian. (2009). Locality and feature specificity in OCP effects: Evidence from Aymara, Dutch, and Javanese. In Proceedings from the Annual Meeting of the Chicago Linguistic Society, 127-141. [본문으로]
- Ito, Chiyuki. (2014). Compound tensification and laryngeal co-occurrence restrictions in Yanbian Korean. Phonology, 31(3), 349–398. [본문으로]
- Frisch, S.A., Pierrehumbert, J.B., and Broe, M.B. (2004). Similarity Avoidance and the OCP. Natural Language & Linguistic Theory 22, 179–228. [본문으로]
'Bouncing ideas 생각 작업실 > 선행연구 보다가 갑자기' 카테고리의 다른 글
언어 간 유사성 계량화하기 (0) | 2022.08.09 |
---|---|
ㄴ-삽입 발음에 대한 메타인지 (3) | 2022.07.05 |
한국어 반모음은 음소인가? (4) | 2022.07.02 |
n-insertion and intrusive r (0) | 2022.02.25 |
한국어 IPA 전사하기 (14) | 2021.02.05 |