🤔 자연어에 대하여(+a)
자연어 처리를 위한 언어학적 요소에 대해 조금 더 공부해보고 한국어의 자연어 처리에 대해 알아보겠습니다.
언어학적 요소를 알아야 자연어 처리에 대해 잘 이해할 수 있을 것입니다.
작성하기에 앞서 [ICT COG Academy] 인공지능 고급(언어)과정을 수강하며 복습을 위해 작성한 글임을 명시합니다.
🔎 자연어처리를 위한 언어학적 요소
지난 글에서 자연어 처리를 위한 언어학적 요소에는 음성학, 음운론, 형태소 분석, 구문론, 의미 분석, 실용 분석 등이 있다고 했습니다.
하나 하나 알아보도록 하겠습니다.
음성학(Phonetics) & 음운론(Phonology)
언어의 소리가 물리적으로 어떻게 형성되는지에 대한 이산적인 소리체계에 대한 연구입니다.
"disconnect"라는 단어는 "dis-k&-'nekt"와 같이 발음됩니다.
한국어로 따라해보면 "디스 크 어 네크트"와 같다고 할 수 있습니다.
소리를 기준으로 분석하기 때문에 유사한 발음을 가진 전혀 다른 문장의 경우 인식 오류가 발생하기 쉽습니다.
"It is easy to recognize speech"
"It is easy to wreck a nice beach"
위의 두 문장은 다른 의미지만 유사한 발음을 가지고 있습니다.
음성의 파형을 기호화 하여 인식하는 음성 인식 연구 분야가 있습니다.
형태론
어절 : 양쪽에 공백을 가지는 띄어쓰기 단위의 문자열
단어 : 단일 품사를 가지는 단위
형태소 : 의미를 가지는 언어 단위 중 가장 작은 단위/의미 또는 문법적 기능의 초소 단위/사전에 등록되어 있는 색인어의 집합
위와 같은 단위로 자연어를 처리하는 방법이 형태론입니다.
형태소 분석을 통해 자연어 처리가 이뤄지는데 이때 형태소 분석이란 형태소를 비롯하여 어근, 접두(미)사, 품사 등 다양한 언어적 속성의 구조를 파악하는 것을 말합니다.
정규 문법으로 분석이 가능합니다.
언어에 따라 난이도가 다른데 영어, 프랑스어 등이 쉽고 한국어는 가장 어려운 편에 속합니다.
구문론
구문 분석을 통해 자연어 처리를 진행하는 방법입니다.
구문 분석이란 문법을 이용하여 문장의 구조를 찾아내는 과정입니다.
문장의 구문 구조는 트리 형태로 표현이 가능합니다.
몇 개의 형태소가 모여 구문 구조를 이루고 구문 요소들간의 결합구조를 트리형태로 구성합니다.
의미 분석
통사 분석 결과에 해석을 가하여 문장이 가진 의미를 분석합니다.
의미를 분석하기 위해 형태소가 가진 의미를 표현하는 지식 표현 기법이 요구됩니다.
통사적으로 옳으나 의미적으로 틀린 문장이 있을 수 있습니다.
"돌이 걸어간다"
"바람이 달린다"
위의 두 문장은 시적 표현을 통해 통용되는 경우입니다.
그래서 모호성의 어려움이 많이 있습니다.
"말이 많다"
와 같은 경우 '말'이 다양한 의미로 해석될 수 있어 자연어 처리에 있어 어려움이 있습니다.
실용 분석
문장과 실세계가 가지는 연관관계를 분석하여 자연어 처리를 진행합니다.
실세계의 지식과 상식의 표현이 요구됩니다.
🔎 자연어 처리가 어려운 이유
모호성
단어의 중의성에 따라 발생하는 특징이며 하나의 표현이 여러 의미를 가질 수 있는 성질을 말합니다.
언어가 진화하면서 최대한 짧은 문장 내에 정보를 담고자 합니다.
생략된 문맥을 인간은 여러 지식을 이용하여 효율적으로 채울 수 있지만, 기계는 이런한 작업에 매우 취약하기 때문에 모호성이 발생합니다.
아래는 업체별 한국어를 영어로 번역한 결과입니다.
일부는 표현을 빠뜨리거나 일부는 단어를 잘못 선택한 것을 알 수 있습니다.
또한 문장 내에 정보가 부족하여 모호성이 발생하기도 합니다.
문장 내에 정보가 부족하면 한 문장이 여러가지로 의미로 해석 될 수 있습니다.
"나는 철수를 안 때렸다"라는 문장은 다양하게 해석 할 수 있습니다.
이외에는 불연속적인 데이터의 문제, 차원의 저주, 노이즈와 정규화 문제 등이 있습니다.
차원의 저주라는 말이 즐겁게 다가와 따로 찾아봤는데 궁금하신 분은 찾아보셔도 좋을 것 같습니다.
특히 한국어의 자연어 처리의 난이도가 매우 높은 편인데 교착어(어간에 접사가 붙어 단어를 이루고 의미와 문법적 기능이 정해짐), 띄어쓰기, 평서문과 의문문, 주어 생략, 한자 기반의 단어 등의 이유입니다.
다음 글에서는 Pytorch를 이용한 자연어 처리 실습을 진행해보겠습니다.
'AI > 자연어 처리' 카테고리의 다른 글
[AI] 자연어 처리 - 전처리와 토큰화(2) (2) | 2022.08.05 |
---|---|
[AI] 자연어 처리 - 전처리와 토큰화(1) (2) | 2022.08.01 |
[AI] 자연어 처리 - PyTorch 실습 (0) | 2022.07.30 |
[AI] 자연어 처리 - 기본지식(2) (0) | 2022.07.28 |
[AI] 자연어 처리 - 기본지식(1) (2) | 2022.07.28 |