자연어 처리 과정

컴퓨터가 사람의 언어를 이해하기 위해 일반적으로 다음과 같은 언어 처리 과정을 거칩니다.

텍스트 입력 → 형태소 분석 → 구문 분석 → 의미 분석 → 화용 분석 → 분석 결과 출력

형태소 분석(morphological analysis)은 자연어의 최소 의미인 형태소를 식별하는 언어 처리 과정입니다. 구문 분석(syntax analysis)은 주어, 동사, 목적어등의 문장성분을 판별해 문장성분에 따른 문장 구조를 분석하는 과정입니다. 문장성분을 분석하기 위해 구문 분석기(parser)를 이용해 구문(構文) 분석을 수행하여 구문 트리(syntax tree)또는 파스 트리(parse tree)를 만듭니다. 구문 분석 후 나타난 구조 애매성등의 해결이 필요하며, 구문 분석을 마치면 의미 분석(semantic analysis)단계를 진행합니다. 의미 분석은 형태소의 실재 의미가 무엇인지를 판별하는 과정입니다. 의미 분석과 관련한 작업의 예로 개체명 분석(named entity recognition)이 있습니다. 개체명 분석은 명, 지명, 기관명, 숫자 등과 같이 사전 정의된 카테고리로 태깅해 의미를 분석하는 작업을 가르킵니다. 의미 분석을 마치면 분석의 포커스에 따라 처리를 수행할 수 있습니다. 화용 분석 단계로 대명사가 지시하는 대용어(anaphora)가 무엇인지 찾아내고, 화자가 원하는 행위(speech act)가 무엇인지를 분석 하는 과정입니다. 이러한 과정을 거쳐 최종적으로 분석된 결과를 출력합니다.

형태소 분석

자연어 처리 과정은 자연어인 텍스트를 입력으로 받는데서 시작합니다. 형태소 분석(morphological analysis)은 자연어의 최소 의미인 형태소를 식별하는 언어 처리 과정입니다. 형태소 분석이 나온 배경을 알기 위해 형태론(morphorlogy)에 대해 살펴볼 필요가 있습니다. 형태론은 자연어에 나타난 문자의 형태를 세가지 관점으로 보고 있습니다.

  • Lexeme 형태론
  • word 기반 형태론
  • Morpheme 형태론

이 중 Morpheme 형태론의 관점에 대한 처리가 형태소 분석(morphological analysis)입니다. 형태소 분석의 예시를 보겠습니다. 입력으로 자연어 텍스트가 주어지고 가장 작은 의미 단위인 형태소를 식별하는 예시입니다. 형태소 분석 결과를 얻기 위해 NLTK 결과를 이용했습니다.

단어 POS 태깅 결과
1 the manufacture of cars the/DT manufacture/NN of/IN cars/NNS
2 We manufacture memory products We/PRP manufacture/VBP memory/NN products/NNS
3 manufacture steel products manufacture/NN steel/NN products/NNS

형태소 분석은 형태소 애매성(morphological ambiguity)을 해결하는 것이 중요합니다. 형태소 애매성의 예로 형태는 동일하지만 사용하는 품사가 다른 경우가 있습니다. manufacture는 명사로 생산이라는 의미지만, 동사로 제조하다, 생산하다라는 의미를 포함합니다. 위 예시에서 1, 2는 의미에 적절하게 태깅이 처리 되었습니다. 1의 예에서 manufacture는 생산(NN)이라고 분석하였습니다. 2의 예에서 manufacture는 동사로 사용되었습니다. 따라서 manufacture/VBP로 분석 되었습니다. 3번째의 케이스는 형태소 분석 오류를 일으켰습니다. manufacture가 생산하다라는 의미지만 명사로 분석 된 것 입니다. 형태소 분석 분야에서는 형태소 분석 오류를 줄이는 것이 필요합니다.

구문 분석

구문 분석(syntax analysis)은 주어, 동사, 목적어등의 문장 성분을 판별해 문장 성분에 따른 문장 구조를 분석하는 과정입니다. 구문 분석은 언어학적인 의미에서 통사 분석 이라고도 불리는데, 통사(syntax, 統辭)는 생각이나 말의 완결을 나타내는 최소 단위인 문장을 분석한다는 의미입니다. 구문 분석을 수행시 구문 분석기(parser)를 이용합니다. 구문 분석 후에는 구문 트리(syntax tree)또는 파스 트리(parse tree)를 만듭니다. 구문 트리에 나타난 구조 애매성등의 해결이 필요하지만, 구문 트리를 통해 문장 구성이 올바른지, 문법적으로 타당하고 어법이 올바른지를 판단할 수 있습니다. 요약해 보면, 형태소 분석을 마치면 구문 분석을 진행하게 되고, 구문 분석의 결과로 구문(sentence structure, 構文)을 알 수 있게 되고, 구문의 구체적인 내용이 바로 5언(체언, 관계언, 용언, 수식언, 독립언)입니다.

구문에서 품사의 역할

순서 품사명 역할 기준
1 명사 체언
2 대명사 체언
3 수사 체언
4 조사 관계언
5 동사 용언
6 형용사 용언
7 관형사 수식언
8 부사 수식언
9 감탄사 독립언

한국에 사는 홍길동 알아?를 입력에 대한 형태소 분석 결과를 구문 트리로 전환해 보도록 하겠습니다.

한국/NNP(고유명사)
에/JKB(부사격 조사)
사/VV(동사)
는/ETM(관형형 전성 어미)
홍길동/NNP(고유명사)
알/VV(동사)
아/EC(연결 어미)

위 결과는 한국에 사는 홍길동 알아에 에 대한 분석 결과로 어떤 형태소를 가르키는지를 좀더 간략히 하기 위해 품사 태그(POS Tag : Part Of Speech Tag)를 부착한 결과입니다.

의미 분석

의미 분석(semantic analysis)단계를 진행합니다. 의미 분석은 형태소의 실재 의미가 무엇인지를 판별하는 과정입니다. 단어가 여러 뜻이 있어 중의성 있거나 하는 경우 정확하게 어떤 의미가 있는지를 밝히고, 의미를 부여하는 처리가 필요합니다. 의미를 부여하는 작업의 예로 개체명 분석(named entity recognition)이 있습니다. 개체명 분석은 명, 지명, 기관명, 숫자 등과 같이 사전 정의된 카테고리로 태깅해 의미를 분석하는 작업을 가르킵니다. 한국에사는 홍길동 알아?에 대한 입력에 대한 개체명 분석 결과는 다음과 같습니다.

Nation=한국
Person=홍길동

화용 분석

대명사가 지시하는 대용어(anaphora)가 무엇인지 찾아내고, 화자가 원하는 행위(speech act)가 무엇인지를 분석 하는 과정입니다.

발화 = 한국에사는 홍길동 알아?
감정 = Neutral(감정 없음)
의도 = KnownPerson(아는 사람인지에 대한 질의 의도)