자연어처리

텍스트 길들이기 기초

25G 2024. 5. 6. 10:02

텍스트 길들이기 사전 준비

이는 수학을 배우기전에 마치 사칙연산을 공부하는 것과 같다.

  • 토큰 분리
  • 어간 추출
  • 품사
  • 구 와 절

컴퓨터가 언어를 이해하게 하려면 원시 문자열을 개별 단어로 나누는 기능, 각 단어가 문자에서 수행하는 역할(품사)과 같은 질문을 이해하고 질문을 분석해서 답이 고유명사라는 것과 단어가 출현한 문장에서 답을 찾아야 함을 알아내야 한다.
"민수의 삼촌은은 누구인가" 라는 질문을 이해하고 "민수"와 삼촌이 출현한 문장에서 답을 찾아야 함을 알아내야 한다.

단어와 범주

단어는 소수의 어휘 범주 또는 품사로 나뉜다. 이 범주는 명사, 동사, 형용사, 한정사, 전치사, 접속사 등을 포함한다.

형용사 명사를 수식하거나 서술하기 위해 명사에 추가되거나 문법적으로 연결돼 속성을 지정하는 어휘나 구
부사 다른 어휘범주를 수식하거나 한정하거나 장소,시간, 상황,양태, 원인, 정도 등을 나타내는 단어 그룹
접속사 두개의 단어나 구, 절을 연결하는 단어
한정사 명사나 명사 그룹의 참조 대상 종류를 한정하는 수식어
명사 인물, 장소, 사물의 종류를 알아보기 위해 또는 이름을 붙이는데 사용하는 단어
전치사 보통 명사나 대명사 앞에 출현해서 다른 단어나 절의 다른 요소와의 관계를 표현하는 단어
동사 동작, 상태, 빈도를 설명하는데 사용하며 문장의 주요 부분을 형성하는 단어

 

구와 절

구는 문장을 구성하기 위한 최소 단위인 절을 만들기 위해 같이 결합될 수 있다. 절은 최소한 명사구와 동사구로 구성된는데 이 구는 대부분 동사와 다른 명사구로 이뤄진다. "민수는 학교를 향해 달린다" "민수는" 이라는 주어와 동사구 "학교를 향해 달린다"라는 동사구로 이루어진 절이고 동사구는 명사구"학교를 향해"라는 목적어와 "달린다"라는 동사로 구성돼 있다.

이러한 요소들을 활용하여 어떤 문장이든 절의 집합으로 분해될 수 있고, 그 절들은 다시 구의 집합으로 분해되거나 특정 품사를 갖는 단어들로 분해될 수 있다. 이러한 분석작업을 "구문 분석(parsing)"이라고 부른다.

 

형태론

형태론은 단어 내부 구조에 대한 연구다. 단어의 어휘소 또는 원형과 단어의 특징을 정하는 접사로 구성된다. 영어에서 단어는 접미사에 의해 특징지어지고, 규칙은 단어의 어휘 범주에 기초한다. 영어에서 일반명사와 고유명사는 숫자에 따라 변형되고 단수형과 복수형이라는 두가지 형태를 갖는다.

동사는 8가지 가능한 굴절 형태로 구성되어 더 복잡한 형태체계를 갖는다. 규칙동사는 네 가지의 별개 형태, 다수의 불규칙동사는 과거 분사로 사용될 때 등등.. 

단어와 단어 자체에 대한 구조와 관계에 대해 기초적인 지식을 이해하여 이런 구분을 이용하는 소프트웨어를 사용해서 바로 텍스트를 길들이는 작업을 할 수 있다.

 

텍스트 프로세싱을 위한 도구

  • 문자열 조작 도구
    • 흔히 프로그래밍 언어에서 사용하는 replace, split, regex 도구들을 뜻함
  • 토큰과 토큰 분리
    • split("\\s+") 과 비슷한 기능이라고 생각하면 쉽다. 문자열을 쓸모있는 작은 단위로 청크를 구성하는것이다. 
      • "나는 밥을 먹는다" => "나는", "밥을", 먹는다"
    • 토큰 수준에서 적용가능한 다른 일반적인 기술에는 다음과 같은 것들이 있다.
      • 대소문자 변경 : 모든 토큰을 소문자화하면 검색에 유용할 수 있다.
      • 불용어 제거 : ~에, ~는 같은 영어에선 them and, a 같은 일반적인 단어를 걸러낸다. 애플리케이션 입장에서 이러한 단어는 가치가 없지는 않지만 거의 없다.
      • 확장 : 토큰 스트림에 동의어를 더하거나 두문자어나 축양형을 확장하면 애플리케이션 사용자가 입력하는 여러가지 대안 형태를 처리할 수 있다.
      • 품사 태그 부착 (품사배정) : 토큰에 품사를 배정한다. 
        • 품사를 사용하면 문서에서 중요한 키워드가 무엇인지 알아보거나 특정한 쓰임 검색을 보조하는 데 도움이 된다. 찾아낸 품사를 특정 태그이름과 매핑하여 태깅한다. 예를 들어 명사=NN으로 규칙을 만든후 문장에서 명사가 나오면 ("민수", "NN") 로 매핑하는것이다.
      • 어간추출: 단어를 원형이나 기본형으로 줄인다.
        • 여러가지 동의어중 하나의 형태만 검색했을때 모든 변형형태의 문서를 찾아줄때 필요한것이 어간추출이다.

문장탐지

사람에게 쉬운것이지만 컴퓨터에게는 문장 탐지는 어렵다. 어디가 시작점이고 끝점인지에대해 모호하기 때문이다. 새로 만들어야한다기보단 이미 잘 만들어진 . OpenNLP같은 도구를 통해 시도하자.

 

전처리의 중요성

좋은 음식을 먹어야 좋은 똥을 쌀 수 있듯이?.... 인풋이 좋으면 아웃풋이 좋아질 확률이 올라갈 수 밖에 없다. 그렇기 때문에 텍스트 프로세싱에 있어 전처리는 빠질 수 없는 프로세스이다. 

이미 전처리를 위한 툴은 MIME타입별, 컨텐츠별로 다 잘 만들어진 오픈소스 들이 있으니 용도에 맞게 잘 찾아서 사용하는 것이 중요한 덕목이다.

 

출처: 자연어 텍스트 처리를 통한 검색시스템 구축

 

 

'자연어처리' 카테고리의 다른 글

자연어 처리 : 검색  (0) 2024.05.13
텍스트 길들이기  (1) 2024.04.28