자연 언어 처리

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

자연 언어 처리(自然言語處理) 또는 자연어 처리(自然語處理)는 인간이 발화하는 언어 현상을 기계적으로 분석해서 컴퓨터가 이해할 수 있는 형태로 만드는 자연 언어 이해 혹은 그러한 형태를 다시 인간이 이해할 수 있는 언어로 표현하는 제반 기술을 의미한다.

컴퓨터가 이해할 수 있는 형태로 표현하고자 한다는 점에서 인공지능과 대단히 밀접한 관련이 있으며, 전산언어학과 거의 구별없이 비슷한 의미로 사용된다.

형태소 분석[편집]

자연 언어 처리에서 말하는 형태소 분석이란 어떤 대상 어절의 모든 가능한 분석 결과를 출력하는 것을 의미한다. 정보 검색 엔진에서 한국어색인어 추출에 많이 사용한다. 형태소 분석 단계에서 문제가 되는 부분은 미 등록어, 오탈자, 띄어쓰기 오류 등을 들 수 있는데, 이들은 형태소 분석에 치명적인 원인이라 할 수 있다. 또 다른 문제로는 복합 명사 분해가 있을 수 있다. '복합 명사'는 '복합+명사', '복+합명사', '복합명+사' 등등의 다양한 방식으로 쪼개질 수 있는 데 이들 중에서 가장 적합한 분해 결과를 선택하는 문제이다. 일반적으로, 다양하게 쪼개지는 분석 결과들 중에서 적합한 결과를 선택하기 위해, 테이블 파싱이라는 동적 프로그래밍 방법을 사용한다. 설명하자면, '복합+명사'로 쪼개질 확률이 그 외로 분석될 확률보다 더 크면 그걸로 선택하도록 하는 알고리즘이다.

  • 나는 → 나(대명사) + 는(조사)
  • 나는 → 날(동사) + 는(관형형어미)

품사 부착[편집]

보통 태거라고 하는 모듈이 이 기능을 수행한다. 이는 형태소 분석기가 출력한 다양한 분석 결과 중에서 문맥에 적합한 하나의 분석 결과를 선택하는 모듈이라 할 수 있다. 분석 시 문맥 좌우에 위치한 중의성 해소의 힌트가 되는 정보를 이용해서 적합한 분석 결과를 선택한다. 보통 태거는 대규모의 품사부착 말뭉치를 이용해서 구현하는데 은닉 마르코프 모델(HMM)이 널리 사용되고 있다.

  • 나는 오늘 학교에 갔다' → '나+는 오늘 학교+에 가다+았+다'
  • 하늘을 나는 새를 보았다' → '하늘+을 날다+ㄴ 새+를 보다+았+다'

구절 단위 분석[편집]

  • 단위 분석은 명사구, 동사구, 부사구 등의 덩어리를 의미한다.
    • 서울시 서초구 서초동에 있는 가장 유명한 회사는 어디인가요? → 서울시 서초구 서초동에 있는 가장 유명한 회사는 어디인가요?
    • 이 해결책은 정말이지 여기에는 적합하지 않아 → 이 해결책정말이지 여기에는 적합하지 않아
  • 단위 분석은 중문, 복문 등의 문장을 단문 단위로 분해하는 역할을 수행한다.
    • 이 영화는 재미있었는데, 저 영화는 흥미 없었다 → 이 영화는 재미있었는데 , 저 영화는 흥미 없었다
    • 어제 내가 본 그 영화는 아주 재미있었다 → 어제 내가 본 그 영화는 아주 재미있었다.
    • 나는 오늘 하늘을 나는 새를 보았다 → 나는 오늘 하늘을 나는 새를 보았다

이와 같이, 구 단위 분석을 먼저 수행하고 절 단위 분석을 해서 보다 큰 단위로 만든다. 이러한 분석은 다음 단계인 구문 분석에서의 중의성을 해소하는 데 아주 중요한 역할을 수행한다고 할 수 있다.

구문 분석[편집]