brunch

You can make anything
by writing

C.S.Lewis

by 코싸인 Dec 11. 2017

[코싸인의 인지과학 이야기] HCI(6)

[8주차 응용과학팀] 1. 글자 인식과 품사 태깅

    안녕하세요. 이번 시간에는 다시 HCI에 대해 이야기를 해보도록 하겠습니다. 여러 컴퓨터 공학자 및 인지과학자들은 인간과 컴퓨터가 소통하는 방법을 개선하려 노력해왔습니다. 그러는 동안 프로그래밍 언어, GUI, 터치 인터페이스 등의 발전이 있었습니다. 하지만 그들은 여기에 만족하지 않고 컴퓨터와 인간이 언어를 통해 소통하길 바랬습니다. 그러기 위해서는 먼저 컴퓨터가 언어를 이해하도록 만드는 과정이 필요했고, 그것에 대해 다루는 분야가 바로 자연어 처리입니다. 이번 주 앞 시간에는 자연어 처리의 기초적인 과정에 대해 말씀드리고자 합니다.


글자 인식: 인코딩


    언어 인식에 필요한 과정을 크게 세 가지로 나누자면 글자 인식, 문장 이해, 지식 체계가 있을 것입니다. 글자 인식은 말 그대로 글자를 컴퓨터가 처리할 수 있는 형태로 바꾸어 주는 것을 말합니다. 컴퓨터에 관심이 없는 분일지라도 컴퓨터는 모든 것을 숫자로 인식한다는 것은 알고 계실 것입니다. 따라서 단순히 한 글자 한 글자를 숫자랑 짝지어주기만 하면 컴퓨터에서 글자를 처리할 수 있으며, 우린 이것을 인코딩이라고 부릅니다.

    글자와 숫자를 짝지어 주는 것은 쉬운 일이지만, 사람마다 짝지어 주는 방법이 달라진다면 채팅처럼 서로 글자 정보를 교환하는 일은 어려울 겁니다. 내가 ‘강아지’를 숫자로 바꾸어 친구에게 보냈는데, 친구는 그걸 ‘기매귀’와 같은 말도 안 되는 말로 받아들일 수 있으니까요. 이런 일을 막기 위해 사람들은 인코딩 표준을 제정하기로 합니다. 그중 가장 유명한 것이 ASCII와 유니코드입니다.


[그림 1] ASCII 코드 표 [1]

    ASCII는 미국 정보교환 표준 부호의 약자로, 영어 알파벳들과 특수기호 또는 전산 처리에 필요한 특수문자들을 0부터 127까지의 숫자로 나타낸 인코딩 방법입니다. ASCII는 널리 사용되었지만, 128개의 글자밖에 표현하지 못하므로 외국어에 대응할 수 없다는 게 가장 큰 단점이었습니다. 그래서 다른 언어권에서는 정보 교환을 위해서 저마다의 인코딩을 만들기 시작했고, 이는 언어별로 정보교환이 어려워지는 단점을 낳았습니다. 예를 들어 ‘감사합니다’를 각 나라의 언어로 한꺼번에 표현하는 게 불가능했습니다. 언어마다 쓰는 인코딩 방식이 다르니까요.

    이러한 문제를 해결하기 위해 나타난 게 바로 유니코드입니다. 유니코드의 목적은 현존하는 모든 인코딩을 통합하는 것입니다. 이를 위해 유니코드는 ASCII의 128자와는 차원이 다른 양의 글자를 포함합니다. 한중일 통합 한자만 5만 자가 넘는 데다가, 한글도 훈민정음에 쓰인 건 스물여덟 자이지만, 조합형이라는 특징 때문에 현대 한글은 1만 자가 넘어가기 때문입니다. 덩치는 크지만 이러한 유니코드의 등장으로 한 페이지에 여러 언어를 표현하는 위키피디아와 같은 서비스의 제작이 용이하게 되었습니다.


품사 태깅: 형태소 분석


[그림 2] 품사 태깅의 예 [2]


    이제 글자들을 컴퓨터가 인식하게 하는 데에는 성공했지만, 컴퓨터는 아직 글자들이 있다는 것만 알 뿐 거기에 무슨 의미가 있는지는 모릅니다. 이를 위해 텍스트를 단어 단위로 나누는 토큰화와, 해당 단어가 어떤 품사를 갖는지 알아내는 품사 태깅 과정이 필요합니다. 이를 위해 사용하는 것이 바로 형태소분석기입니다.


[그림 3] Morphological Analysis의 예 [3]

    한국어 품사 태깅의 과정으로는 크게 어절 단위 품사 태깅과 음절단위 품사 태깅이 있습니다. 어절 단위 품사 태깅은 Text Processing, Morphological Analysis, POS Tagging 과정을 통해 이루어집니다. Text Processing 과정에서는 문장 경계 인식을 통해 텍스트를 여러 문장으로 나누고, 띄어쓰기가 잘못된 부분을 수정합니다. Morphological Analysis 과정에서는 전 과정에서 넘어온 어절을 한 단위로, 해당 어절이 형성할 수 있는 모든 형태소 결합의 쌍을 생성합니다. 마지막으로, POS Tagging 과정에서 통계적 기법을 통해 가장 옳을 확률이 높은 형태소 결합의 쌍을 선택합니다.


[그림 4] 음절단위 품사태깅 방법 [4]

    음절단위 품사 태깅은 음절 태깅, 원형 복원, 형태소 구성의 세 단계로 이루어집니다. 음절 단위 품사 태깅에서는 음절 단위로 먼저 형태소를 태깅 합니다. 그리고 다음 단계인 원형 복원 단계에서 뭉쳐진 형태소를 원형 복원합니다. 그림의 예처럼 ‘답 + 은 => 다 + 운’으로 변환된 ‘다운’이 있다면 다시  ‘답은’으로 복구합니다. 마지막으로 음절 단위로 나뉘어 있는 형태소를 형태소 구성 단계에서 병합함으로써 형태소 분석이 끝나게 됩니다. [코싸인 응용과학팀]




참고자료

[1] http://www.asciitable.com/

[2] https://www.quora.com/What-Apache-OpenNLP-POS-Tagger-does

[3] [4] 심광섭. (2011). 형태소 분석기 사용을 배제한 음절 단위의 한국어 품사 태깅. 인지과학, 22(3), 327-345.

작가의 이전글 [코싸인의 인지과학 이야기] 감각과 지각(6)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari