사실, 다른 형태소 분석기가 어떻게 만들어지는지 자세히는 잘 모르겠다. 대략적으로 통계적인 방법으로 만든다고만 알고 있다. 소스를 보고 자세히 분석해봐야 정확히 알 수 있는데, 개인적으로 break point 를 찍어가면서 분석하지 않은 이상 소스만 보고 분석하기가 좀 어렵다.
대략적으로 알려진 방법에 따르면 어절 단위로 분석하거나 통계적인 방법으로 형태소를 추측하거나 어절내 문자를 하나씩 잘라가면서 분석하는 것으로 보인다.
아래 문장을 분석해 보자.
저기 하늘을 나는 새를 보아라.
우리나라 형태소는 어절단위를 벗어나지 못하므로 우선 어절별로 나눠어서 생각해야 한다.
저기 : 대명사이다. 대명사로 알 수 이유는 많이 들어본 단어이기 때문이다. 컴퓨터로 이 것을 처리하면 뭔가 사전이 필요할 것이라고 추출할 수 있다. 형태소 품사별 사전이 필요할 것이다.
하늘을 : 이 문장은 명사 + (목적격)조사가 결합된 형태라고 생각할 수 있다. 이 것을 이렇게 분석한 이유는 하늘을 이라는 어절을 통으로 많이 들어 봤기 때문이라. 이렇게 생각한다면 어절 단위로 사전이 있고, 분석된 데이터가 저장된 기분석 사전이 있다고 생각할 수 있다.
기분석사전은 하늘을 => 하늘/NNG+의/JKO 이런식으로 데이터를 가지고 있을 것이다.
경우에 따라서는 저런 기분석사전이 없거나 그런 구조가 없는 분석기도 있을 것이다.
이런 경우, 하/늘을 하늘으/ㄹ 하늘/을 하늘을 이런식으로 때로는 음절단위로 자소단위로 쪼개서 형태소 사전에서 검색을 해서 존재해야 하는지 확인 해야 한다.
나는 : 이 단어는 어절만으로 봤을때는 날/VV+는/ETD( 날다와 관형형 전성 어미 는)으로 분석하거나 나/NP+는/JX ( 나,너 할 때의 대명사 너는 할 떄의 는과 같은 보조사)
경우에 따라서는 2가지 case 에 대해서 분석되는 경우도 있을 것이다.
나는 이 말은 하늘을 날아가는 이라는 의미와 저는 이라는 말로 중의적으로 해석 될 수 있다. 이 경우 앞의 어절과 다음 어절을 통해 날/VV+는/ETD 로 해석 할 수 있다. 이 경우 앞/뒤 어절의 형태소를 통해 해석하려는 어절의 형태소를 통계적으로 분석 할 수 있다.
앞 어절에 명사+목적격 조사가 나온 후에 서술어 어절이 와야 한다. 물론 서술어 어절앞에 관형어가 올 수 있기 때문에 관형형 전성어미가 오는게 맞다. (이게 이해가 안된다면 문장성분에 대한 공부가 필요하다. https://ko.wikipedia.org/wiki/%ED%95%9C%EA%B5%AD%EC%96%B4%EC%9D%98_%EB%AC%B8%EC%9E%A5_%EC%84%B1%EB%B6%84 을 참고할 것)
대략적으로 어절분리->어절내에서 기분석사전을 통한 분석->기분석사전 실패시 음절 또는 자소 분리후 사전 검색->완전히 실패시 통계적으로 형태소 추정 이런 식으로 만들 수 있을 것 같다. 그리고 속도를 높이기 위해 기분석 사전도 어절단위 뿐만 아니라, 어절내 일 부분만으로도 기분석사전을 만드는 경우도 있는 것 같다.
매우 간단하게 적었지만, 한국어가 받침에 따라서 조사가 은/는, 이/가 되는 경우도 있고, 불규칙 활용이 되는 경우도 많고, 명사같은 합성어도 매우 많다. 그리고 뛰어쓰기에 자유도도 높은 편이고, 신조어도 끊임없이 추가된다. 이런 것들을 다 처리 하려면 매우 복잡할 것이다.