1 / 20

인공지능 Term Project 2 차 숙제

인공지능 Term Project 2 차 숙제. WordNet 과 의존구문분석기 사용법 숙지 및 개체명 (Named Entity) 인식기 구현 2009.03.19. 목표. WordNet 과 의존구문분석기 사용법 숙지 사용자 입력 질문 분석을 위한 도구의 사용법을 숙지한다 . 단어간의 관계를 표현하는 어휘 데이터베이스 , WordNet 의 사용법을 익힌다 . 품사 부착 및 문장 내의 단어간의 문법적 구조 를 분석할 수 있는 의존구문분석기 사용법을 익힌다 . 개체명 인식기 구현

alika
Télécharger la présentation

인공지능 Term Project 2 차 숙제

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 인공지능 Term Project 2차 숙제 WordNet과 의존구문분석기 사용법 숙지 및 개체명(Named Entity) 인식기 구현 2009.03.19

  2. 목표 • WordNet과 의존구문분석기 사용법 숙지 • 사용자 입력질문 분석을 위한 도구의 사용법을 숙지한다. • 단어간의 관계를 표현하는 어휘 데이터베이스, WordNet의 사용법을 익힌다. • 품사 부착 및 문장 내의 단어간의 문법적 구조를 분석할 수 있는 의존구문분석기 사용법을 익힌다. • 개체명 인식기 구현 • 사용자의 질문에서 인명, 지명, 기관, 날짜등 고유 명사를 인식할 수 있는 개체명 인식기를 구현한다. • 사전으로 WordNet을 이용하고, WordNet을 이용하여 알아낼 수 없는 단어의 의미는 별도의 사전 및 패턴 규칙 등을 이용하여 알아낸다. • 개체명 인식 결과는 향후 DB 검색의 조회 조건으로 사용된다. 2

  3. 개체명 인식 • 개체명 인식(Named Entity Recognition) • - 주어진 문장에서 모든 고유 명사를 찾아내고 그것을 미리 정해진 타입으로 분류한다. • e.g. 인명, 지명, 기관명, 시간, 날짜, 금전 표현 등 • [개체명의 타입 및 예 ]

  4. 개체명 인식 • 개체명 인식(cont’d) • - 일반적으로 실제로 존재하는 형태를 갖는 개체뿐 아니라 시간, 돈, 사건 등 발생 자체가 중요한 의미를 갖는 것들에 대한 인식까지 포함된다. • e.g. 날짜, 시간, 행사등의 시간적 표현(temporal expressions) 이나 개수, 측량, 가격 등의 숫자 표현(numerical expressions.) • [일반적으로 사용되는 개체명의 타입과 하위 부류 및 태그]

  5. 개체명 인식 • 개체명 인식에서의 모호성(Ambiguities) • 서로 다른 타입의 개체들이 동일한 이름을 갖는 경우 • e.g. • [PERSWashington] was born into slavery on the farm of James Burroughs. • [ORGWashington] went up 2 games to 1 in the four-game series. • Blair arrived in [LOC Washington] for what may well be his last state visit. • 같은 타입, 같은 이름이지만 실제로는 다른 개체인 경우 • e.g. JFK- 미국의 전 대통령을 가리키는 지 그의 아들을 가리키는 지 알 수 없다.

  6. 개체명 인식기의 역할 • 질문을 의미 틀(Semantic Frame)로 표현하기 위한 전처리 단계 natural language question question processing intermediate logical query parser database query generator response generator named entity analyzer response semantic interpreter SQL retrieved results database management system Domain DB

  7. 개체명 인식기의 역할 • Semantic Frame의 슬롯 값이 되며, 향후 SQL query에서 검색 조건으로 사용된다. natural language question Can you tell me what’s the weather like in Bostontoday? parsing and named entity analyzer Can you tell me what’s the weather like in[LOC Boston] [TIME today]? Q_TYPE: QF_ALL Q_DOMAIN: WEATHER LOCATION: Boston DATE: 2009/03/19 semantic interpretation SELECT feels_like, barometer, humidity, visibility, dewpoint, wind FROM weather_table, location_table WHERE location_table.lid = weather_table.lid AND weather_table.date = to_date(‘20090319’,’yyyymmdd’) AND location_table.lname = ‘Boston’ SQL generation

  8. 개체명 인식기 구현 • 개체명 인식기 구현 방법 • 도메인에 적합하게 개체명 Type 및 Tag를 정의 • WordNet, 품사 정보와 문장 성분간 의존관계(파서 이용), 수작업으로 구축한 사전과 규칙, 패턴 등을 이용하여 개체명 인식 작업을 수행 • 품사 정보 • 추출하려는 개체명의 품사 또는 품사열 패턴은 어떠한가? - N(명사), V(동사)… • 구문 구조 정보 • 추출하려는 개체명이 문장내에서 어떤 패턴으로 수식 관계가 나타나는가? • WordNet 정보 • 단어의 상위, 하위,유사 개념은 무엇인가? • Ex) “서울”(Seoul) 의 상위 개념 -> 도시(City) • 그 외 도메인 별 사전을 구축하거나 개체명이 나타나는 패턴 등을 분석

  9. 개체명 인식기 구현 [질문] Who goes on as Hamlet at this time? 의존 파서 WordNet 사전 및 패턴 규칙 적용 1 Who/N/subj 2 2 goes/V E 3 on/V 2 4 as/Prep 2 5 Hamlet/N 4 /CHARACTER 6 at/Prep 5 7 this/Det 8 8 time/N 6 /EVENT <PERS>Who</PERS> <EXE>goes on as</EXE> <CHAR>Hamlet</CHAR> at<TIME> this time</TIME> 1 Who/N/subj 2 2 goes/V E 3 on/U 2 4 as/Prep 2 5 Hamlet/N 4 6 at/Prep 5 7 this/Det 8 8 time/N 6 개체명 인식기 구현의 예(공연 정보 도메인) 9

  10. 2차 숙제 • 제공 • WordNet 2.1 (http://wordnet.princeton.edu) • MiniPar (의존 구문 분석기 및 품사 부착기) (EKU에서 Download) • 제출기한 및 방법 • 2009년 4월 2일 목요일 • EKU에 조별로 제출 (보고서는 수업시간에 제출) • 제출물 • 1)프로그램 실행 파일, 2)소스코드, 3)보고서, 4)출력 결과 파일(양식 자유) • 보고서 내용 • 설계 및 구현 방법 기술 (개체명 Type and Taglist, 사용된 사전및 알고리즘) 프로그램 설명서, 출력 결과 캡쳐 화면 • 주의 사항 • 제공된 도구를 사용하기 위해서는 C/C++의 사용을 권장 • Visual studio .net 2003 이상 버전의 개발툴 사용 권장 (ftp.korea.ac.kr다운가능) • 바이러스 검출 시 0점 처리 • 컴파일 안 되는 소스코드 제출시 0점 처리 • 제출 기한 어길 시 감점 처리

  11. WordNet • WordNet 소개 • 단어간의 관계를 표현하는 어휘 데이터베이스 • 사전에는 단어 중심으로 표현되어 있지만, WordNet은 의미 중심으로 표현되어 있다. • WordNet은 네트워크 형태로 되어 있다 • 노드는 synset이며, 링크는 synset들 간의 의미적인 관계를 표현한다. • synset은 비슷한 의미를 가지는 단어들의 집합이다. (비슷한 의미를 가진다는 것은 문맥에서 단어들이 서로 대체되었을 때, 의미적으로 큰 차이가 없다는 것을 의미한다. 예> 부모, 부모님, 어버이) • WordNet 으로 알 수 있는 단어 간의 의미 관계 • Synonyms (동의어 관계) • Antonym (반의어 관계) • Hyper/Hypo-nyms (상·하위 관계) 등 • 단어 간의 동의어 관계와 상 · 하위 관계가 네트워크 형태를 이루는 기본 관계이다

  12. WordNet • WordNet 라이브러리 사용 방법 • 라이브러리 사용 목적 • 주어진 단어가 어떤 의미를 가지고 있는지 검색 • 주어진 단어의 의미와 의미적 관계(상-하위/유사/…)를 가지는 단어들을 검색 • 라이브러리 설치 방법 • http://wordnet.princeton.edu에서WordNet 2.1을 다운받아 설치 • 라이브러리 사용 방법 • WordNet이 설치된 폴더 내에 있는 wn.h를include한다 예) #include "C:\\Program Files\\Wordnet\\2.1\\Src\\Include\\wn.h" • Link시, WordNet이 설치된 폴더 내에 있는wn.lib를 추가해야 한다

  13. WordNet • /* Structure for data file synset */ • typedef struct ss { • long hereiam; /* synset의 uniq-id */ • char *pos; /* 품사 */ • int wcount; /* synset에 포함된 동의어 개수*/ • char **words; /* synset에 포함된 동의어들 */ • int *wnsns; /* 각 단어의 의미 번호 */ • struct ss *nextss; /* 해당 단어의 다음 의미에 대한 synset 포인터 */ • struct ss *ptrlist; /* 현재 synset과 ptr_type관계를 가지는 synset포인터*/ • } Synset, *SynsetPtr; • WordNet 라이브러리 사용 방법 • 자료구조

  14. WordNet • WordNet 라이브러리 사용 방법 • 함수 1. int wninit() • WordNet을 사용하기 위한 초기화 함수 2. SynsetPtr findtheinfo_ds( char *searchstr, int pos, int ptr_type, int sense_num) • char *searchstr • 검색하고 싶은 단어 • (주의: 대문자가 섞일 경우 에러 발생하므로 모두 소문자로 해야 함) • int pos • searchstr에 대해서 검색하고 싶은 품사 • NOUN(1), VERB(2), ADJECTIVE(3), ADVERB(4)중한가지 값 • int ptr_type • searchstr의synset에 대해서 검색하고 싶은 “의미적 관계” 명시 • ANTPTR(Antonyms, 반의어), HYPERPTR(Hypernyms, 상위관계), HYPOPTR(Hyponyms, 하위관계) 등 • int sense_num • searchstr의 여러가지 의미 중, ptr_type을 검색하고 싶은 의미 번호. ALLSENESE는 모든 의미 • return type • SynsetPtr 하나의synset을 표현하는 자료구조

  15. WordNet • WordNet 라이브러리 사용 방법 • 함수 (cont’d) 3. void free_syns(SynsetPtr synptr); • synptr의 메모리 해제 예) findtheinfo_ds(“seoul”, NOUN, _HYPERPTR, ALLSENSES); ※ 자세한 설명은WordNet과 함께 설치된pdf 중wnsearch 문서를 참조하기 바람

  16. 의존 구문 분석기 • 의존 구문 분석 • 단어(어절) 간의 문법적 의존(수식) 관계만을 고려하여 문장의 구조를 분석함 • 주어, 목적어는 동사에 의존함 • 관사는 명사에 의존함 • 부사는 동사에 의존함

  17. 의존 구문 분석기 • 의존 구문 분석기 - MiniPar • Lindek이 개발한 영어 의존 구문 분석기로서 정확률 88%, 재현율 80%의 성능을 보임 • MiniPar를 통해 각 단어의 품사 정보도 얻을 수 있다. [구문 분석 예 –”I will fly to Florida tomorrow”] [MiniPar의 품사 정보]

  18. 의존 구문 분석기 • Minipar 사용 방법 • 사용 목적 • Minipar는 의존 구문 분석기의 역할과 품사 부착기의 역할을 수행한다. • Minipar를 통해, 문장 내의 단어 간의 의존 관계를 분석하여 문장의 구조를 분석할 수 있다. 또한 각 단어의 품사를 알아낼 수도 있다. • 사용 방법 • 제공된Minipar.exe와data폴더를 같은 폴더에 넣는다. • 제공된SimpleMinipar.cpp와SimpleMinipar.h를 자신의 소스코드에 삽입한 후 헤더파일을 include하여 사용한다. • CSimpleMinipar 클래스를 사용한다.

  19. 의존 구문 분석기 • class CSimpleMinipar { • public: • /* 사용하게 될 함수들 */ • // 문장을 parameter로 하여 구문 분석을 수행하는 함수 • bool Parse(char *pSentence); • // 구문 분석된 결과에 단어의 개수가 몇 개인지 반환하는 함수 • int GetWordCount(void); • // 구문 분석된 결과에서 주어진 인덱스의 단어의 품사, 의존관계를 반환하는 함수 • CSimpleMiniparWord* GetAt(int nIdx); • }; • CSimpleMinipar 클래스 • 클래스 정의

  20. 의존 구문 분석기 CSimpleMinipar MyPar; MyPar.Parse(“I am a boy.”); int nWord = MyPar.GetWordCount(); // 4가 리턴된다. // “I”에 대한 구문분석 결과 CSimpleMiniparWord* MyResult = MyPar.GetAt(0); MyResult->szWord; // 단어: “I” MyResult->szPOS; // 품사: “N” MyResult->szDependence; // 의존관계: 2 • CSimpleMinipar 클래스 (2/2) • 사용 예제

More Related