43
제3제. 제제제 제제제 제제 제제제제 제제 제제제제 INFORMATION RETRIEVAL 제제 : 제제제 ([email protected] ) http://www.facebook.com/hhuIR Korea Maritime University Navis Control Inc.

제3장 색인어 추출을 위한 언어학적 처리

Embed Size (px)

Citation preview

Page 1: 제3장 색인어 추출을 위한 언어학적 처리

제 3 장 .색인어 추출을 위한 언어학적 처리

정보검색INFORMATION RETRIEVAL

강의 : 정창용 ([email protected])http://www.facebook.com/hhuIR

Korea Maritime UniversityNavis Control Inc.

Page 2: 제3장 색인어 추출을 위한 언어학적 처리

구 (Phrase) 단위 색인단어 (Word) 단위 색인토큰 (Token) 생성

토큰의 정규화 토큰 내 구두점 처리 복합명사 처리 대소문자 변형

불용어 (Stop words) 리스트어미통제 (Stemming)

OVERVIEW

Page 3: 제3장 색인어 추출을 위한 언어학적 처리

구 (Phrase) 단위 색인단어 (Word) 단위 색인토큰 (Token) 생성

토큰의 정규화 토큰 내 구두점 처리 복합명사 처리 대소문자 변형

불용어 (Stop words) 리스트어미통제 (Stemming)

OUTLINE

Page 4: 제3장 색인어 추출을 위한 언어학적 처리

필드값을 그대로 색인어로 사용복수의 필드값을 갖는 필드는 분리하여 색인

Ex) Dialog ERIC 시스템 : AU, DE, ID 필드를 세미콜론 (;) 으로 구분

불용어 (stop words) 제거하지 않음 ‘et al’ 이나 ‘ and others’ 로 검색 가능

구두점이나 스페이스를 색인어로 사용Boolean 검색에서 사용되는 연산자를 위한 특별 처리 필요

Ex) 스페이스 , AND, OR, NOT

구 (PHRASE) 단위 색인

Page 5: 제3장 색인어 추출을 위한 언어학적 처리

DIALOG 검색시스템의 명령어

Page 6: 제3장 색인어 추출을 위한 언어학적 처리

탐색 1) S QAULITY OF LIFE “quality of life” 를 검색 공백문자 (space) 와 불용어 ‘ of’ 를 그대로 사용 공백문자를 포함하면 ‘구 (phrase) 단위’ 검색임

탐색 2) S QAULITY OF LIFE/DE,ID 구단위 검색이 가능한 필드는 DE (Descriptor), ID (Identifier) 임 탐색 1 과 같은 결과

탐색 3) S QUALITY AND OF AND LIFE “quality and of and life” 를 검색 and 는 연산자가 아님 탐색 1, 2 와는 완전히 다른 결과

DIALOG 에서의 검색 예

Page 7: 제3장 색인어 추출을 위한 언어학적 처리

디스크립터 스페이스를 문자로 사용 스페이스를 연산자로 사용

quality of life quality of life quality-of-life

Bradford’s law Bradford’s law Bradford’s-law

management by objective management by objective management-by-objective

back to work movement(LBR)

back to work movement(LBR)

back-to-work-movement(LBR)

bolts and nuts bolts and nuts bolts-and-nuts

공백문자의 용도에 따른 구단위 색인

한글 검색에서는 복합명사를 띄워 쓰지 않고 색인 하기도 함 밥 짓는 시인 퍼 주는 사랑 ▶ 밥짓는시인퍼주는사랑 정보 검색 ▶ 정보검색

Page 8: 제3장 색인어 추출을 위한 언어학적 처리

S “BOLTS AND NUTS” 검색할 색인어에 따옴표를 사용 ‘AND’ 는 연산자 아님 구단위 검색으로 ‘ bolts and nuts’ 를 검색함

S BOLTS AND NUTS TI, AB, DE 필드에서 ‘ bolts’ 와 ‘ nuts’ 가 포함된 항목을 검색함 ‘AND’ 는 연산자로 사용됨

‘AND’ 의 용도에 따른 색인

Page 9: 제3장 색인어 추출을 위한 언어학적 처리

구 (Phrase) 단위 색인단어 (Word) 단위 색인토큰 (Token) 생성

토큰의 정규화 토큰 내 구두점 처리 복합명사 처리 대소문자 변형

불용어 (Stop words) 리스트어미통제 (Stemming)

OUTLINE

Page 10: 제3장 색인어 추출을 위한 언어학적 처리

① 토큰 (token) 생성② 불용어 (stop words) 처리③ 어미 통제 (stemming)④ 용어의 출현위치 부여⑤ 가중치 부여

* 한글 검색시스템에서는 ② , ③ 단계의 순서를 달리할 수 있음

색인을 위한 언어학적 처리

Page 11: 제3장 색인어 추출을 위한 언어학적 처리

색인 시스템

문헌

토큰분할

불용어 제외 *

스테밍 *

용어출현위치부여*

용어가중치부여 *

ID 부여

도치색인파일시스템

텍스트

토큰

비불용어 토큰

어미 통제된 용어

위치 부여된 색인어

가중치 , 출현위치번호를 가진 색인어

문헌번호필드번호

Page 12: 제3장 색인어 추출을 위한 언어학적 처리

탐색 시스템

적합성 판정 *

도치색인파일시스템

질의 분할

불용어 제외 *

스테밍 *

질의용어 가중치 *

순위화 *

불리언 연산 *

질의

질의피드백

질의 토큰

질의 용어

통제된 용어

가중치 용어

적합문헌

검색된 문헌

순위화된 문헌

Page 13: 제3장 색인어 추출을 위한 언어학적 처리

구 (Phrase) 단위 색인단어 (Word) 단위 색인토큰 (Token) 생성

토큰의 정규화 토큰 내 구두점 처리 복합명사 처리 대소문자 변형

불용어 (Stop words) 리스트어미통제 (Stemming)

OUTLINE

Page 14: 제3장 색인어 추출을 위한 언어학적 처리

토큰 생성 정책 필요 단어의 시작과 끝을 결정하는 규칙 (space, 구두점 ) 토큰 내 구두점 처리 토큰 내 특수문자 처리 색인 제외 문자열 : 한 (one) 문자 단어 , 숫자

토큰 생성 (TOKENIZATION)

Page 15: 제3장 색인어 추출을 위한 언어학적 처리

토큰 생성 예

Are all citations equal? or, did we op. cit. your item?

are all citations equal or did we op cit your item

Tokenize

‘ad hoc’ 검색은 비교적 정적인 (static) 정보원 / 문헌집단을 대상으로

ad hoc 검색은 비교적 정적인 (static) 정보원 / 문헌집단을 대상으로

Tokenize

Ex1)

Ex2)

Page 16: 제3장 색인어 추출을 위한 언어학적 처리

토큰 생성 예 – CONT.

knn 분류기 , svm 분류기 , 신경망 분류기 등을 사용하여 ,

knn 분류기 svm 분류기 신경망 분류기 등을 사용하여

Tokenize

knn 분류기 svm 신경망 등을 사용하여

knn 분류기 svm 신경망 사용

Stemming

Ex3) Remove stop words

Page 17: 제3장 색인어 추출을 위한 언어학적 처리

구 (Phrase) 단위 색인단어 (Word) 단위 색인토큰 (Token) 생성

토큰의 정규화 토큰 내 구두점 처리 복합명사 처리 대소문자 변형

불용어 (Stop words) 리스트어미통제 (Stemming)

OUTLINE

Page 18: 제3장 색인어 추출을 위한 언어학적 처리

토큰의 정규화 약간의 차이가 있는 토큰들을 동일한 토큰으로 만드는 과정 동일 어간을 가진 변형된 단어를 동일한 단어로 만드는 과정 Ex) car, cars, Cars, automobile ▶ “car“

정규화 방법 동등수준의 토큰 중 하나의 동치류 (equivalence calss) 로 매핑

full-text, fulltext, full-texts ▶ “fulltext “ 로 매핑 효율적이지만 매핑 조건 선택이 어려움

U.S.A.=usa, C.A.T.≠cat

비정규화된 토큰 간의 관례를 유지 ( 시소러스 * 용어관계사전 이용 ) automobile ▶ “car“ 검색 시 정규화 vs. 색인 시 정규화

토큰의 정규화 (normalization)

Page 19: 제3장 색인어 추출을 위한 언어학적 처리

참고 ) 시소러스 (thesaurus)

Page 20: 제3장 색인어 추출을 위한 언어학적 처리

구 (Phrase) 단위 색인단어 (Word) 단위 색인토큰 (Token) 생성

토큰의 정규화 토큰 내 구두점 처리 복합명사 처리 대소문자 변형

불용어 (Stop words) 리스트어미통제 (Stemming)

OUTLINE

Page 21: 제3장 색인어 추출을 위한 언어학적 처리

구두점을 처리하는 방법 분리자 (seperator) 로 사용 무시 ( 제거 ) 그대로 남겨 둠

토큰 내 구두점 처리

Page 22: 제3장 색인어 추출을 위한 언어학적 처리

구두점 처리 – CONT.

boy’s → boys’, boys, boy sO’Neill → O’Neill, ONeill, O Neillaren’t → aren’t, arent, aren t, are n’t‘ad hoc’ → ad hoc

어퍼스트로피 (‘)

하이픈 (-)

슬래쉬 (/)

on-line → online [ 무시 ( 제거 )]state-of-the-art → state of the art [ 분리자로 사용 ]Knuth-Morris-Pratt Algorithm → Knuth-Morris-Pratt Algorithm

TCP/IP → TCP/IP, TCP IP정보원 / 문헌집단 → 정보원 / 문헌집단 , 정보원 문헌집단

Page 23: 제3장 색인어 추출을 위한 언어학적 처리

온점 ( 마침표 , dot) ‘Z39.50’, ‘wordlist.txt’, ‘3.15’, ‘6.25 동란’

남겨 두는 것이 좋음반점 ( 쉼표 , comma)

천 단위 구분자 사용 무시하는 것이 효과적

기타 특수 부호 (special character) C++, C# : 특정 의미를 가짐 Google : ! ? , . ; [ ] @ / # < > 제외시킴

숫자 (digits) 일반적으로 색인어에서 제외 ( 수치 검색시스템 예외 ) 고유명사에 포함된 숫자는 색인 포함 : i5 CPU, 386 세대

구두점 처리 – CONT.

Page 24: 제3장 색인어 추출을 위한 언어학적 처리

토큰 처리 LC Dialog Google

어퍼스트로피 제거 분리자 그대로

온점 ( 마침표 ) 분리자 분리자 제거

하이픈 분리자 분리자 그대로

슬래쉬 분리자 분리자 제거

#,+,$ 등 특수기호 그대로#: 제거 , 나머지 :

그대로

시스템별 구두점 처리

Page 25: 제3장 색인어 추출을 위한 언어학적 처리

구 (Phrase) 단위 색인단어 (Word) 단위 색인토큰 (Token) 생성

토큰의 정규화 토큰 내 구두점 처리 복합명사 처리 대소문자 변형

불용어 (Stop words) 리스트어미통제 (Stemming)

OUTLINE

Page 26: 제3장 색인어 추출을 위한 언어학적 처리

인접한 명사를 하나로 합치거나 둘 이상으로 분리하는 것고유명사

둘 이상의 인접 토큰이 대문자로 시작되면 하나로 합침 Ex) Los Angeles, New York, San Francisco

▶ LosAngeles, NewYork, SanFrancisco 단어 n- 그램 (word n-gram)

인접한 토큰을 n 개씩 묶는 방법 Ex) “Quality of life in Korea”

▶quality, quality of, quality of life, of life in, life in Korea, in Korea, Korea

한국어 : 복합명사를 분리하는 경향 있음 중국어 , 일본어 : 문자 N- 그램 방식이 효과적

복합명사 처리

Page 27: 제3장 색인어 추출을 위한 언어학적 처리

구 (Phrase) 단위 색인단어 (Word) 단위 색인토큰 (Token) 생성

토큰의 정규화 토큰 내 구두점 처리 복합명사 처리 대소문자 변형

불용어 (Stop words) 리스트어미통제 (Stemming)

OUTLINE

Page 28: 제3장 색인어 추출을 위한 언어학적 처리

대문자 혹은 소문자로 일괄 변환 Dialog, Google 약어가 일반 단어와 구분되지 않는 문제 발생

U.S. ▷ US ▷ us C.A.T ▷ CAT ▷ cat

고유명사가 일반명사와 구분되지 않는 문제 발생 General Motors ▷ general motors Windows ▷ windows

일본어 히라가나 + 가타가나 + 한자 ▷ 히라가나

대소문자 변형

Page 29: 제3장 색인어 추출을 위한 언어학적 처리

구 (Phrase) 단위 색인단어 (Word) 단위 색인토큰 (Token) 생성

토큰의 정규화 토큰 내 구두점 처리 복합명사 처리 대소문자 변형

불용어 (Stop words) 리스트어미통제 (Stemming)

OUTLINE

Page 30: 제3장 색인어 추출을 위한 언어학적 처리

불용어 (stop words) : 어휘분석 시 제거되는 의미 없는 기능어 영어 : 관사 , 전치사 , 접속사 한글 : 조사 , 접속사

출현 빈도가 높은 단어를 불용어로 선택 Ex) an, and, by, for, from, of, the, to, with

출현 빈도가 높지만 특정 의미를 지니는 단어는 불용어 제외 a ◀ “Vitamin A”, in ◀ “in-vitro”, on ◀ “on-line”

색인 저장장소를 절약다량의 불용어는 검색 성능을 낮춤

“To be or not to be” “gone with the wind” “as we may think”

불용어 (STOP WORDS) 리스트

Page 31: 제3장 색인어 추출을 위한 언어학적 처리

단어 포스팅포스팅에 위치정보까지

포함할 경우

개수감소율

누적%

개수감소율

누적%

개수감소율

누적%

토큰 수 484,494 109,971,179197,879,29

0

숫자 제외 473,723 -2 -2 100,680,242 -8 -8179,158,20

4-9 -9

대소문자통일 391,523 -17 -19 96,969,056 -3 -12179,158,20

4-0 -9

30 개 불용어 391,493 -0 -19 83.390,443 -14 -24121,857,82

5-31 -38

150 개 불용어 391,373 -0 -19 67,001,847 -30 -39 94,516,599 -47 -52

스테밍 322,383 -17 -33 63,812,300 -4 -42 94,516,599 -0 -52

언어처리에 의한 파일 크기 감소율

Page 32: 제3장 색인어 추출을 위한 언어학적 처리

구 (Phrase) 단위 색인단어 (Word) 단위 색인토큰 (Token) 생성

토큰의 정규화 토큰 내 구두점 처리 복합명사 처리 대소문자 변형

불용어 (Stop words) 리스트어미통제 (Stemming)

OUTLINE

Page 33: 제3장 색인어 추출을 위한 언어학적 처리

같은 어간 (stem) 을 가진 용어들을 하나의 색인어로 매핑 접미사 ( 접두사 ) 를 제거하고 남은 형태소를 하나로 정리하는 처리

cf. 원형복원 (lemmatization)

스테밍 (STEMMING)

engineer, engineered, engineering ▶ engineeruse, user, users, used, using ▶ useread, reads, reading, readable ▶ readconnect, connected, connecting, connection, connections ▶ connect

saw, seen▶ see

am, are, is ▶ be

Page 34: 제3장 색인어 추출을 위한 언어학적 처리

Notation V - 모음 : a, e, i, o, u 와 자음 다음에 오는 y C - 자음 단어의 형태

[C](VC){m}[V] (VC){m} ⇒ (VC) 형태가 m 번 반복 CCC… ⇒ C, VVV… ⇒ V

접미사 제거 (by Porter)

m=0 TR, EE, TREE, Y, BY.m=1 TROUBLE, OATS, TREES, IVY.m=2 TROUBLES, PRIVATE, OATEN, OR-RERY.

Page 35: 제3장 색인어 추출을 위한 언어학적 처리

Notation *S : S 로 끝나는 어간 (stem) *v* : 모음을 담고 있는 stem *d : 쌍자음으로 끝나는 stem

Ex) -TT, -SS) *o : CVC 로 끝나지만 두 번째 C 가 w, x, y 가 아닌 stem

Ex) -WIL, -HOP

PORTER STEMMER

Page 36: 제3장 색인어 추출을 위한 언어학적 처리

Step 1a

Step 1b

PORTER STEMMER – 1ST STEP

조건 접미사 → 치환 예SSES → SSIES → I

SS → SSS → {null}

caresses → caressponies → ponities → ticaress → ca-resscats → cat

조건 접미사 → 치환 예(m>0)

(*v*)

(*v*)

EED → EE

ED → {null}

ING → {null}

feed → feedagreed → agreeplastered→ plasterbled → bledmotoring → motorsing → sing

Page 37: 제3장 색인어 추출을 위한 언어학적 처리

Step 1b 에서 규칙 2 혹은 3 으로 스테밍된 단어에 한하여

Step 1C

PORTER STEMMER – 1ST STEP

조건 접미사 → 치환 예

*d and not (*L or *S or *Z)

(m=1 and *o)

AT → ATEBL → BLEIZ → IZE

→ single letter

→ E

conflat(ed) → con-flatetroubl(ed) →troublesiz(ed) → sizehopp(ing) → hoptann(ed) → tanfall(ing) → fallhiss(ing) → hissfizz(ed) → fizzfail(ing) → failfil(ing) → file

조건 접미사 → 치환 예(*v*) Y → I happy →

happisky → sky

Page 38: 제3장 색인어 추출을 위한 언어학적 처리

PORTER STEMMER – 2ND STEP

조건 접미사 → 치환 예(m>0)(m>0) (m>0)(m>0)(m>0)(m>0)(m>0)(m>0)(m>0)(m>0)(m>0)(m>0)(m>0)(m>0)(m>0)(m>0)(m>0)(m>0)(m>0)(m>0)

ATIONAL → ATETIONAL → TION ENCI →

ENCEANCI →

ANCEIZER →

IZEABLI →

ABLEALLI →

ALENTLI →

ENTELI →

EOUSLI →

OUSIZATION → IZEATION →

ATEATOR →

ATEALISM →

ALIVENESS → IVEFULNESS → FULOUSNESS → OUSALITI →

ALIVITI →

IVEBILITI →

BLE

relational → relateconditional → conditionrational → ratio-nalvalenci → va-lencehesitanci → hesitancedigitizer → digitizeconformabli→ conformableradicalli → radi-caldifferentli → differentvileli → vileanalogousli → analogousvietnamization → viet-namizepredication → predicateoperator → operatefeudalism → feudaldecisiveness → deci-sivehopefulness → hope-fulcallousness → callousformaliti → formalsensitiviti → sensitivesensibiliti → sensible

Page 39: 제3장 색인어 추출을 위한 언어학적 처리

PORTER STEMMER – 3RD STEP

조건 접미사 → 치환 예(m>0)(m>0)(m>0)(m>0)(m>0)(m>0)(m>0)

ICATE → IC

ATIVE →{null}

ALIZE →AL

ICITI →IC

ICAL →IC

FUL →{null}

NESS →{null}

triplicate → triplicformative → formformalize → formalelectriciti → electricelectrical → electrichopeful → hopegoodness → good

Page 40: 제3장 색인어 추출을 위한 언어학적 처리

PORTER STEMMER – 4TH STEP

조건 접미사 → 치환 예(m>1)(m>1)(m>1)(m>1)(m>1)(m>1)(m>1)(m>1)(m>1)(m>1)(m>1)(m>1) and (*S or *T)(m>1)(m>1)(m>1)(m>1)(m>1)(m>1)(m>1)

AL →{null}

ANCE →{null}

ENCE →{null}

ER →{null}

IC →{null}

ABLE →{null}

IBLE →{null}

ANT →{null}

EMENT → {null}MENT →

{null}ENT →

{null}ION →

{null}OU →

{null}ISM →

{null}ATE →

{null}ITI →

{null}OUS →

{null}IVE →

{null}IZE →

{null}

revival → revivallowance → allowinference → inferairliner → airlingyroscopic → gyroscopadjustable → adjustdefensible → defensirritant → irritreplacement → re-placadjustment → adjustdependent → dependadoption → adopthomologou → homologcommunism →communactivate → activangulariti → angularhomologous → ho-mologeffective → effectbowdlerize → bowdler

Page 41: 제3장 색인어 추출을 위한 언어학적 처리

Step 5a

Step 5b

PORTER STEMMER – 5TH STEP

조건 접미사 → 치환 예(m>1)

(m=1 and not *o

E →{null}

E →{null}

probate → probatrate → ratecease → ceas

조건 접미사 → 치환 예(m>1 and *d and *L

→single letter

controll → controlroll → roll

Page 42: 제3장 색인어 추출을 위한 언어학적 처리

GENERALIZATIONS Step1 ▶ GENERALIZATION Step2 ▶ GENERALIZE Step3 ▶ GENERAL Step4 ▶ GENER

CONNECTIONS Step1 ▶ Step2 ▶ Step3 ▶ Step4 ▶

PORTER STEMMER - Example

Page 43: 제3장 색인어 추출을 위한 언어학적 처리

10,000 개의 단어사전을 스테밍한 결과 (by Porter)

사전크기 변화

줄어든 단어 수

1 단계 3597

2 단계 766

3 단계 327

4 단계 2424

5 단계 1373

남은 최종 단어 수 3650