본문 바로가기
공부/언어학개론

<언어학개론>제13장 언어와 컴퓨터, 전산언어학-2. 자연언어처리

by springwintercoming 2020. 4. 20.

>>>앞의 글에서 이어집니다

https://winterlight.tistory.com/45

 

<언어학개론>제12장. 언어와 문학, 텍스트 장르와 문체-4. 텍스트 장르와 언어 특성 &제13장. 언어와 컴퓨터, 전산언어학-1. 전산언어학이란?

>>>앞의 글에서 이어집니다 https://winterlight.tistory.com/44 <언어학개론>제12장. 언어와 문학, 텍스트 장르와 문체-2. 은유&3. 만화의 언어 >>>앞의 글에서 이어집니다 https://winterlight.tistory.com/43 <..

winterlight.tistory.com

 

 

******다음의 포스팅의 내용 중에서, 파란색 글씨로 된 내용을 제외한 검은색 글씨로 된 텍스트는 <언어 풀어쓴 언어학개론> (강범모, 한국문화사) 에서 가져온 부분임을 밝힙니다.(그대로 가져온 부분도 있지만 대부분은 본인의 스타일로 정리함)******

 

파란색으로 된 내용은 개인적인 의견 또는 스스로 알고 있는 것을 정리한 내용임

 

 

제13장 언어와 컴퓨터, 전산언어학

 2. 자연언어처리

 

전산음성학/전산음운론

 

  언어의 음성적인 면을 처리하는 전산언어학의 하위 분야가 전산음성학(computational phonetics)과 전산음운론(computational phonology)이다. 전산음성학은 인공적으로 음성을 만들어 내는 음성합성(speech synthesis)과 음파로부터 음성을 인식하는 음성인식(speech recognition)을 연구한다. 음성을 음소(음운) 층위의 추상적인 단위로 처리하는 방법을 연구하는 것이 전산음운론이다.

  1939년 발명된 보코더(vocoder)라는, 인간의 음성을 합성하는 최초의 기계는 인간의 발음기관의 모양과 비슷한 형태의 물리적인 기구였다. 오늘날의 음성합성은 음향음성학적 지식을 바탕으로 컴퓨터를 이용하여 사람의 음성에 상당히 가까운 소리들을 만들어 낸다. 음성합성이나 음성인식은 음성의 음향적 특성의 이해에 바탕을 두고 있다. 다만, 모음을 발음할 때의 발음기관의 공명의 차이로 인하여 모음의 음향에는 에너지가 몰려 있는 여러 개의 포먼트 위치(공명 주파수)가 차이가 나고 그것들이 모음을 구별시켜준다는 것, 그리고 모음 주위의 자음들이 그 종류에 따라 모음의 포먼트에 다른 종류의 변형을 가져온다는 것 등이 중요한 사실이다.

  분절음의 기본적인 음향적 속성 이외에도 실제 자연스러운 발화체를 합성해내기 위해서는 소리 이상의 층위와 관련된 지식도 필요하다. 영어의 합성명사는 일반적으로 강세가 앞에 오는데, 여러 개의 명사가 합성될 경우 결합 방식에 따라 뜻과 소리가 달라진다. 그리고 영어에서 동일한 분절음의 연속이라도 강세의 위치가 품사에 따라 다른 것들이 많이 있다. 예를 들어 'perfect'를 발음할 때 앞에 강세를 주면 형용사이고, 뒤에 강세를 주면 동사이다. 음성합성을 이용하여 자연스러운 문장을 산출하기 위해서는 품사에 따른 발음의 차이를 반영해야만 한다.

  실제 발화에서는 말을 할 때 상투적으로 삽입되는, 예를 들어 영어의 "I mean", "you know" 같은 표현들은 약하게 발음된다. 그리고 내용적으로 새로운 정보를 주는 부분은 음성적으로 두드러지게 된다.

 

EXAMPLE

A: What did Jane eat?

B: Jane ate RICE.

 

C:Who ate rice?

D: JANE ate rice.

 

---> "Jane ate rice"라는 문장은 어떤 담화 맥락에서 발화되는가에 따라 그 음성적 실현 양상이 다르다. 대문자로 표기된 "RICE"와 "JANE"이 소리가 크고 높은 것을 표시하는데, 새로운 정보를 주는 부분에서 소리가 더 커지고 높아지게 된다. 관련되는 것으로 대조적 주제(contrastive topic)이라는 현상이 있다. "Jane ate rice"라는 문장을 평범하게 발화하는 것과 'Jane '다음을 약간 높이고 잠시 휴지를 두어서 발화하는 경우, 후자는 제인을 다른 사람과 대조시키는 의미를 나타낸다. 즉, 다른 사람은 그렇지 않은데, 제인은 어떻다는 의미인 것이다. 우리말에서는 '-는'이라는 조사가 그러한 역할을 수행한다.

 

EXAMPLE

영수가 밥은 안 먹었다.

 

---> 이 문장은 기본적으로는 영수가 밥을 먹지 않았다는 것을 의미하지만, '밥'이 다른 음식과 대조됨으로써 영수가 다른 것을 먹었다는 것을 암시하는 것이다.

 

  음성합성은 이러한 담화 맥락과 관련된 정보를 소리를 통하여 자연스럽게 전달할 수 있어야 한다. 기본적인 음향적 성질과 음성 층위 이상의 정보는 음성합성뿐 아니라 음성인식에도 필요하다. 음파를 입력으로 받아 음성으로 분해하여 인식하는 음성인식은 음성합성에는 없는 어려움이 있다. 그것은 자연스러운 발화에서 단어 경계가 음파에 명확히 나타나지 않는다는 것이다. 사람은 보통 말할 때 단어의 경계에서 명확하게 휴지(pause)를 갖지 않는다. 또한 말 속에서 소리들은 생략되고 융합되는 일이 많다. 생략되거나 변형된 음을 추정해내는 일이 사람에게는 쉽지만, 오늘날의 기술 수준에서 기계가 그 일을 하는 것이 쉽지 않다. 이 부분에 아주 동의하는데, 사람이 말을 할 때에는 뉘앙스라는 것이 있고 강조점도 있고 말투도 있고 높낮이도 있고 비언어적인 부분들도 크게 차지하는 반면에 기계는 녹음된 음성뿐이기 때문이다. 음성합성 기술이 완벽하게 실현되기 위해서는 이러한 부분들을 실현시켜야 가능할 것이라고 생각한다. 그게 가능하다면, 기계스럽지 않은 음성합성기술로 우리 생활에 더 많은 편리함을 가져다 줄 것이다.

  칵테일 파티 효과라는 것이 있다. 사람들이 많이 모인 파티에서 사람들이 이야기할 때에 주변에서 다른 사람들도 이야기를 하고 있기 때문에 매우 혼란스럽지만, 사람들의 상대방의 말을 잘 듣고 대화를 할 수 있다. 즉, 필요한 음성적 정보만을 선별적으로 처리하는 능력이 인간에게 있다. 하지만 실제 음파에서 소음을 걸러내고 필요한 음성적 정보를 골라내는 것이 쉬운 일이 아니다. 음성인식은 어려운 기술이지만, 꾸준히 연구의 성과가 축적되어 왔고 일부 실용적인 시스템에 쓰이기도 한다.

 

전산형태론/전산통사론/전산의미론

 

  컴퓨터의 입력을 음성으로 하여 기계가 음성인식을 수행하는 것을 전제조건으로 하든, 혹은 컴퓨터의 입력을 문자로 하든 간에, 어절 단위의 문자 연속체를 단어의 구조로 분석하고, 나아가 단어의 연속체를 문장의 구조로 분석하여 문장의 의미를 추출하는 일이 필요하다. 그 방법을 연구하는 것이 전산형태론(computational morphology), 전산통사론(computational syntax), 전산의미론(computational semantics)으로서, 이론언어학의 형태론, 통사론, 의미론에 대응한다.

  우선, 언어처리를 위해서는 어절 내의 언어 요소들을 형태소로 분리하는 과정이 필요하다. 어근과 접사를 정확히 파악해야 단어의 의미와 문장에서의 단어의 문법적 기능을 제대로 알 수 있기 때문이다. 이 단계가 잘 처리되어야 다음의 통사적 구문분석이 가능해진다.

  어절의 형태적 구조를 분석하기 위해 현재 전산형태론에서 사용하는 두 가지 방법은 어간분리법(stemming)과 이층위 형태론(two-level morphology)이다. 어간 분리법은 어절의 앞과 뒤에서 접사들을 차례로 분리해 내는 방법이다.

 

EXMAPLE

 

기다리었겠습니다

--->이 어절은 컴퓨터가 분석한다고 한다면, 뒤에서부터 한 음절씩 띄어서 그것이 사전에 있는지 확인하는 방법을 통하여 우선 '-습니다'가 하나의 어미임을 찾아내고, 다시 '-겠-'과 '-었-' 문법형태소들을 찾아내고, 마지막에 남는 '기다리-'이 사전에 있으므로 기다리-었-겠-습니다 와 같은 분석이 가능해진다. 경우에 따라서는 단순한 음절 단위의 처리가 불가능하다. '가뭅니다', 더우면' 같은 어절의 분석은 좀 더 복잡한 과정이 필요하다. 불규칙 활용까지 고려해야 하기 때문이다.

 

EXAMPLE

 

가뭅니다: 가물-ㅂ니다

더우면: 덥-으면

 

  전산통사론(computational syntax)은 통사 구조와 관련된다. 단어 혹은 어절의 선형적 연속체로부터 문장의 의미를 직접 얻을 수는 없다. 문장의 통사 구조를 먼저 얻어야 한다. 통사 규칙을 적용하여 문장의 구조를 만들어 내는 일을 파싱(parsing)이라고 부르면, 그러한 일을 하는 프로그램을 파서(parser)라고 한다. 파싱의 방법으로는 하향식(top-down)방식과 상향식(bottom-up)방식이 있다.