Gurugail NLP/NLP
NLP

NLP

I. 개요

자연어처리 (NLP, Natural Language Processing)란 인간의 언어와 컴퓨터간의 상호 인터렉션에 대한 총칭이다.
크게는 컴퓨터 자료를 인간이 이해할 수 있는 자연어를 생성하는 자연어 문 생성(generation)과 인간의 이해를
컴퓨터가 처리할 수 있도록 하는 이해(understanding)의 과정으로 크게 나뉠 수 있다.
컴퓨터가 처리할 수 있는 형태란 트리나 논리의 구조 또는 기타 컴퓨터가 분석할 수 있는 형태를 말한다.

II. 자연어 처리의 과정

(참고 : 대화형 자연어처리의 개발/연구의 순서)

  1. 형태소 분석(품사 태깅)
  2. 구문 분석
  3. 문 생성 (generation)

III. 지식 구축

자연어 처리는 궁극적으로 관련 지식을 활용하기 위한 것이기에 자연어 처리에 따른 결과로 관련 지식을 구축하는 연동까지가 고려 되어야 한다.

 1. 가령 개념을 표현하는 단어들의 상호관계를 엮어 지식체계 구축을 위해서는 아래와 같은 예를 들 수 있다.
  아버지와 할아버지의 관계는 ? 할아버지 = 아버지의 아버지
  아버지와 자녀의 관계는 ? A의 아버지가 B이면, B는 A의 자녀이다.

 2. 논리식의 표준형으로 변환 : 이는 지식 저장, 추론 및 발견 등의 고차원적인 사고를 하기 위한 준비과정입니다
  clause normal form이라고 하지요.. 

  술어논리를 이용하여 시멘틱정보를 표현해보면,
  갑돌이는 갑순이를 사랑한다 ==> 갑순이 = 사랑한다(갑돌이)


 3. 관계형 데이타베이스의 온톨로지화
  보기)
  아들을 구하는 SQL문입니다.
  일반추론을 해석하다보니 SQL과 비슷하다는 생각이나 번역해 보았습니다.
  select A.부모, B.이름 as 아들
  from 부자 A, 성별 B
  where A.부모 = 홍길동 and A.자녀 = B.이름 and B.성별 = 남

 4.관련개념 : 메타데이타 
시맨틱 네트워크(Semantic network)
술어논리 5. 수사의 표현 0 ~ 10000 = 재고수량(사과) 0 ~ 10000을 단어사전에 추가할 수는 없다. 수사의 경우 단어 사전에 추가하지 않고 의미를 알 수 있어야 한다. 수사 = 표현방식(재고수량) : 재고수량은 수사로 표현된다.(메타데이타) 1 = 재고수량(사과) : 재고수량의 표현방식이 수사이기 때문에 1은 수사로 판단할 수 있다. 6. 동의어 구축 동의어 중에 대표단어를 정해 대표단어만 온톨로지 구축에 사용하고 나머지 단어는 입출력시 대표단어로 변환한다. 보기) 서울 = 서울시 = 서울특별시 일때 서울시 = 동의어(서울) 서울시 = 동의어(서울특별시)

IV. 지식의 표현

 질의와 응답을 통해 온톨로지로 구축된 지식을 표현할 수 있다.

 갑순이 = 사랑한다(갑돌이) 일때 사랑한다는 함수에 표준출력을 매핑하면,
평서문1. (갑돌이)는 (갑순이)를 사랑한다.
평서문2. (갑순이)는 (갑돌이)가 사랑한다.
의문문1. (갑돌이)는 (갑순이)를 사랑하는가?
의문문2. (갑순이)는 (갑돌이)가 사랑하는가?
의문문3. (갑돌이)는 누구를 사랑하는가?
단순검색에서 추론을 거치면 보다 세련된 표현이 가능해진다. 홍길동의 아버지의 아버지는 누구인가? => 홍판서의 아버지는 누구인가?

V . 추론 (reasoning)

   추론 (reasoning, inference, argument)이란, 이미 알고 있는 명제를 기초로 하여 
새로운 명제를 유도하는 과정으로 전제 (premise)와 결론 (conclusion) 간의 논리적 관계를 다룬다.
전제조건을 만족하면 결론도 만족할때, P1 이고 P2 이면 Q이다.
적용범위에 따라 일반추론과 특수추론으로 구분한다.
1. 일반추론 : 보기) 홍판서 = 아버지(홍길동) => P1 홍증조 = 아버지(홍판서) => P2 홍증조 = 할아버지(홍길동) => Q 일반추론식 : if 홍판서 = 아버지(홍길동) and 홍증조 = 아버지(홍판서) then 홍증조 = 할아버지(홍길동); 술어논리식 : ex) A = F(B) => (홍증조 = 할아버지(홍길동)) = 일반추론((홍판서 = 아버지(홍길동)) = and (홍증조 = 아버지(홍판서))) 2. 특수추론 : 보기) 홍길동은 산양초등학교에 다닌다. => P1 산양초등학교는 서울에 있다. => P2 따라서 홍길동은 서울에 산다. => Q 3. 이행관계, 상대관계 정의 이행관계 보기 : 갤로퍼 -> 자동차 -> 탈것 (종속변수를 독립변수에 연결함) 상대관계 보기 : 친구, 배우자, 부모:자녀, 아버지:자녀(종속변수와 독립변수의 자리 바꿈) 상대관계중 필요충분조건,필요조건,충분조건을 분리할 필요가 있네요 A의 친구는 B이다 이면 B의 친구는 A이다 => 필요충분조건 만족 A의 아버지는 B이다. 이면 B의 자녀는 A이다 => 충분조건 만족 A의 자녀는 B이다 이면 B의 아버지는 A이다 => ??? 참고) 국어사전에는 아버지 : 어머니 도 상대관계로 예시함 => 추론 규칙에 어긋남 참고) 충분조건 : 어떤 명제가 성립하는 데 충분한 조건. ‘갑이면 을이다’에서 ‘갑’은 ‘을’이 성립하는 데에 충분조건이다. 이행관계를 가지고 있는 함수에는 조상 또는 후손이 있다. B = 조상(A) => P1 C = 조상(B) => P2 C = 조상(A) => P3 P1과 P2에 의해 P3가 성립되는 관계를 이행관계로 본다. 이행관계에서는 P1의 종속변수가 P2 독립변수로 사용되고, P1의 독립변수가 P3의 독립변수로 사용되고 P2의 종속변수가 P3의 종속변수로 사용된다. 4. 기타 관련 개념 보통명사 (普通名詞 . A common noun) 고유명사 (固有名詞 . A proper noun)
연역추론,귀납추론, 2dit

VI. 대화를 위한 준비

1. input : 입력값 ex) 안녕
2. 상황판단 : ex)인사(첫만남, 이별)
3. 목적수립 : ex) 첫인사 응대, 작별인사 응대
4. 출력 : 상황과 목적에 맞는 답변 ex) 안녕, 잘가
5. 온톨로지 구축
- 입력 가능한 단어 정의
- 입력된 단어와 관련된 상황 매핑
- 메인 상황과 서브 상황 관계 매핑
- 상황과 관련된 목적 매핑
- 목적과 관련된 출력 매핑
6. 상황판단을 위한 알고리즘

  > 여러가지 정보가 모여 상황을 구성한다.
    (A and B) or (C and D) => 상황 E
  > 상황 판단에 사용되는 기초 정보와 결과정보는 분리하여 관리한다.
    상황이 바뀌면 결과정보는 모두 폐기되어져야한다.
    A에서 B로 대화 상대가 변경되면 A의 상황 정보는 의미가 없어진다.
  > 상황은 유기적으로 연결되어 진다.
    인사는 만남과 이별이 있으며, 연하와 연상이 경우 경어법이 따로 적용된다.
  > 상황정보가 아닌 일반정보는 보관되어져야한다.
    A와 대화를 통해 얻어낸 정보는 재사용이 가능해야 한다.

7. 목적은 답변자의 의도를 선택하기 위한 메타자료이다

  > 상황에 따른 목적은 일대다의 관계로 선택 가능해야 한다.
    if A then a or b or c;
  > 목적이 정해지면 그에 따른 동작을 행한다.

8. 실험환경 준비

   메신저 <-> 궁금이(메신저 클라이언트) <-> 데이타베이스 <-> AI 엔진

 - MS 메신저를 통해 AI엔진의 답을 구한다.
 - 궁금이는 사용자와 AI엔진의 중계역활을 수행한다.
 - 궁금이는 인터넷에 접속되어 있는 서버에서 동작한다.
 - 메신저의 요청을 DB에 등록하면 AI엔진이 해석하여 답을 DB에 등록한다.
 - DB에는 대화 기록이 저장되며, 상황정보을 관리한다

9. 데이타 베이스 조회를 위한 대화
우편번호부를 온톨로지로 전환하여 조회하는 대화입니다.
칼럼과 데이타를 관형어와 체언으로 전환하여
문장으로 만드는 과정이 필요합니다

 1. 와부읍의 우편번호는 ?
2. 도곡리의 우편번호와 주소는 무엇인가?
3. 서울시의 시군구는 ?
4. 남양주시의 쌍용아파트의 주소는 ?

테스트 방법
1. MS 메신저에 로그인한다.
2. 대화상대를 선택한다 :
승열(i4mate@hotmail.co.kr)
3. 질문을 입력한다
와부읍의 우편번호는 무엇인가?

참조