JiwonDev

์ •๋ณด๊ฒ€์ƒ‰ #3 ์ƒ‰์ธ(Indexing)

by JiwonDev

์ •๋ณด๊ฒ€์ƒ‰ ์‹œ์Šคํ…œ์˜ ๋Œ€๋žต์ ์ธ ๊ทธ๋ฆผ

 

์ƒ‰์ธ(Indexing) ์ด๋ž€?

ํšจ์œจ์ ์ธ ๊ฒ€์ƒ‰์„ ์œ„ํ•ด [๋ฌธ์„œ ์ง‘ํ•ฉ]์„ ๋ฏธ๋ฆฌ ๊ฐ€๊ณตํ•ด๋‘๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

 

์ƒ‰์ธ์˜ ๊ณผ์ •

1. ํ…์ŠคํŠธ ์ถ”์ถœ - ๋‹ค์–‘ํ•œ ํ˜•์‹์„ ๊ฐ€์ง„ ๋ฌธ์„œ์—์„œ ์ˆœ์ˆ˜ํ•œ ํ…์ŠคํŠธ๋ฅผ ์ถ”์ถœํ•ด๋ƒ…๋‹ˆ๋‹ค.

2. ํ† ํฐ ์ถ”์ถœ - text๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์ข‹๊ฒŒ ํ† ํฐํ™” ์‹œํ‚ต๋‹ˆ๋‹ค.

3. ๋ถˆ์šฉ์–ด(Stop-word) ์ œ๊ฑฐ - ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€์ง€์•Š์•„ ํ•„์š”์—†๋Š” ๊ด€์šฉ์–ด, ๋ถˆ์šฉ์–ด๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

- ๋ถˆ์šฉ์–ด๋ž€ ๊ด€์‚ฌ(a, the)์ฒ˜๋Ÿผ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€์ง€์•Š๋Š” ์šฉ์–ด๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

 

4. ์ •๊ทœํ™” - ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„ ์šฉ์–ด๋ฅผ ๊ธฐ๋ณธํ˜•์œผ๋กœ ๋ฐ”๊พธ๊ณ , ์–ด๊ฐ„์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์˜์–ด์—์„œ๋Š” Stemming(์Šคํƒœ๋ฐ)์ด๋ผ๊ณ  ํ•ด์„œ ๋‹จ์–ด์—์„œ ํ•ญ์ƒ ๊ณ ์ •๋˜๋Š” ์–ด๊ฐ„์„ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.

Stemming(์Šคํƒœ๋ฐ), Stemmer

 

5. ์—ญํŒŒ์ผ์ƒ‰์ธ(Inverted Index)

๋ฌธ์„œ์—์„œ ๋‹จ์–ด๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒ‰์ธ์„ ํ†ตํ•ด ๋‹จ์–ด์—์„œ ํŠน์ • ๋ฌธ์„œ๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

์–ด๋ ค์šด ์šฉ์–ด๊ฐ€ ์•„๋‹ˆ๋ผ, ์šฐ๋ฆฌ๊ฐ€ ํ‰์†Œ์— ์ฑ…์ฝ์„๋•Œ๋„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

(๋Œ€๋Ÿ‰์˜ ๋ฌธ์„œ ์ง‘ํ•ฉ์—์„œ 'ํŠน์ • ํ‚ค์›Œ๋“œ'๊ฐ€ ํฌํ•จ๋œ ๋ฌธ์„œ๋ฅผ ์ƒ‰์ธํ•˜๋Š” ๋ฐฉ๋ฒ•)

 

๋ฌธ์„œ์˜ ํ‘œํ˜„(Representation)

์šฐ๋ฆฌ๋Š” ์•ž์˜ ์˜ˆ์ œ์—์„œ D1 { ์‚ฌ๊ณผ, ๋ฐ”๋‚˜๋‚˜, ๋ฐ”๋‚˜๋‚˜ } ์™€ ๊ฐ™์ด ์ด๋ฏธ ์ „์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋œ ๋ฌธ์„œ๋งŒ ๋ดค์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์‹ค์ œ ์ •๋ณด๊ฒ€์ƒ‰์—์„œ ๋ฌธ์„œ๋Š” ์–ด๋–ค ์‹์œผ๋กœ ์ €์žฅ, ์ƒ‰์ธํ•ด์•ผ ํ• ๊นŒ์š”?

 

1. a bag of word (๋‹จ์–ด ๋ณด์ž๊ธฐ)

๊ทธ๋ƒฅ ํ…์ŠคํŠธ์—์„œ ๋‹จ์–ด๋งŒ ์ถ”์ถœํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ค‘๋ณต์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

2. a set of word (๋‹จ์–ด์˜ ์ง‘ํ•ฉ)

๋‹จ์–ด๋ฅผ set์— ๋„ฃ์€ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. ์ค‘๋ณต์„ ๊ณ ๋ คํ•ด์„œ ๊ฐ™์€ ๋‹จ์–ด๋Š” 1๊ฐœ๋งŒ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

 

์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ, ๋‹จ์ˆœํžˆ ์ƒ๊ฐํ•ด๋„ ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๊ณ  ๋ฌธ์„œ์˜ ํ˜•ํƒœ์— ๋”ฐ๋ผ ๊ตฌ์ฒด์ ์ธ ๋ฐฉ๋ฒ•์€ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

๋งŒ์•ฝ ์˜์–ด๋ผ๋ฉด ์Šคํƒœ๋ฐ์„ ๊ฑฐ์ณ ๋‹จ์–ด์˜ ์›ํ˜•(์–ด๊ฐ„)์„ ์ถ”์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด

ํ•œ๊ตญ์–ด์˜ ๊ฒฝ์šฐ ๋ช…์‚ฌํ˜•ํƒœ๋ฅผ ์ถ”์ถœํ•˜์—ฌ ํ˜•ํƒœ์†Œ๋ถ„์„, ํ’ˆ์‚ฌ์ข…๋ฅ˜ ํƒœ๊น…, ๋ณตํ•ฉ๋ช…์‚ฌ ๋ถ„ํ•ด๋“ฑ์˜ ๊ณผ์ •์ด ํ•„์š”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ƒ‰์ธ ๋‹จ์œ„

์˜๋ฏธ๋ฅผ ์ƒ‰์ธ ๋‹จ์œ„๋กœ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ
์–ด์ ˆ์„ ์ƒ‰์ธ ๋‹จ์œ„๋กœ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ, ์Œ์ ˆ-gram์€ ๋ง ๊ทธ๋Œ€๋กœ ์†Œ๋ฆฌ๋‚˜๋Š” ๊ธ€์ž ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ชผ๊ฐœ ์ถ”์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์—ฌ๋‹ด์œผ๋กœ, ํ•œ๊ตญ์–ด๋Š” ์˜์™ธ๋กœ ๋ช…์‚ฌ์ถ”์ถœ์ด ์•„๋‹Œ ์Œ์ ˆ-2gram์„ ๋งŽ์ด ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ช…์‚ฌ์ถ”์ถœ์„ ์‚ฌ์šฉํ• ๋ ค๋ฉด ์‹ ์กฐ์–ด๋ฅผ ๊ณ„์†ํ•ด์„œ ์ถ”๊ฐ€ํ•˜๋ฉฐ ์ตœ์‹ ํ™” ๋˜์–ด์žˆ๋Š” ๋Œ€ํ˜• ์‚ฌ์ „๋ฐ์ดํ„ฐ(ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ, ํ’ˆ์‚ฌ ํƒœ๊น…) ํ•„์š”ํ•˜๊ณ , ์Œ์ ˆ-gram์ด ์ƒ๊ฐ๋ณด๋‹ค ์„ฑ๋Šฅ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

 

์š”์•ฝ

1. ์ƒ‰์ธ(Indexing) ๋ชจ๋“ˆ
2. ์—ญํŒŒ์ผ์ƒ‰์ธ(Invert Indexing) ๋ชจ๋“ˆ
3. ๋ฌธ์„œ ๊ฒ€์ƒ‰(Retrieval) ๋ชจ๋“ˆ

์œ„ ๊ณผ์ •์€ ์•„๋ž˜ ๊ทธ๋ฆผ์˜ ํŒŒ๋ž€๋ถ€๋ถ„์— ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค.

 

์ •๋ณด๊ฒ€์ƒ‰ ์‹œ์Šคํ…œ์˜ ๋Œ€๋žต์ ์ธ ๊ทธ๋ฆผ

 

ํ€ด์ฆˆ

1. ๋‹ค์Œ ์–ด์ ˆ๋กœ๋ถ€ํ„ฐ ์ถ”์ถœ๋  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์Œ์ ˆ 2-gram์„ ์ ์œผ์‹œ์˜ค.
ํ•œ๊ตญ์—์„œ๋Š”
๋”๋ณด๊ธฐ
ํ•œ๊ตญ, ๊ตญ์—, ์—์„œ, ์„œ๋Š”

2. ๋‹ค์Œ ์–ด์ ˆ๋กœ๋ถ€ํ„ฐ ์ถ”์ถœ๋  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์Œ์ ˆ 3-gram์„ ์ ์œผ์‹œ์˜ค.
์ฝ”๋กœ๋‚˜๋กœ๋ถ€ํ„ฐ
๋”๋ณด๊ธฐ
์ฝ”๋กœ๋‚˜, ๋กœ๋‚˜๋กœ, ๋‚˜๋กœ๋ถ€, ๋กœ๋ถ€ํ„ฐ

๋‹ค์Œ์€ ์งˆ์˜ Q์™€ ๋ฌธ์„œ D๋ฅผ ๋ณด์ธ ๊ฒƒ์ด๋‹ค.
์Œ์ ˆ 2-gram ์ƒ‰์ธ๋‹จ์œ„๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ์•„๋ž˜ ๋ฌผ์Œ์— ๋‹ตํ•˜์‹œ์˜ค.
- ์œ ์‚ฌ๋„ sim(Q,D)๋Š” "์งˆ์˜์šฉ์–ด q์˜ ๋ฌธ์„œ D์—์„œ์˜ ๊ฐ€์ค‘์น˜ w(q,D)”(๋“ค)์˜ ํ•ฉ์œผ๋กœ ๊ณ„์‚ฐํ•˜์‹œ์˜ค.
- ์˜ˆ๋ฅผ ๋“ค์–ด, Q=[q1,q2]์ธ ๊ฒฝ์šฐ sim(Q,D)=w(q1,D)+w(q2,D)๋กœ ๊ณ„์‚ฐ๋จ.
Q="๋ถ€์‚ฐ๊ด€๊ด‘"
D="๋ถ€์‚ฐ์‹œ๋Š” ์™ธ๊ตญ์ธ ๊ด€๊ด‘๊ฐ์„ ์œ„ํ•ด ๋ถ€์‚ฐ ํ™๋ณด์— ๋‚˜์„ฐ๋‹ค"
3- A. ์งˆ์˜ ์šฉ์–ด์˜ ๋ฌธ์„œ ๋‚ด ๊ฐ€์ค‘์น˜ ๊ณ„์‚ฐ ์‹œ TF๋งŒ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ์งˆ์˜๋ฌธ์„œ์œ ์‚ฌ๋„ sim(Q,D)์˜ ์ˆ˜์‹์„ ์ ์œผ์‹œ์˜ค.
๋”๋ณด๊ธฐ
Q์˜ 2-gram์ƒ‰์ธ = ( ๋ถ€์‚ฐ, ์‚ฐ๊ด€, ๊ด€๊ด‘ )
sim(Q,D) = w(๋ถ€์‚ฐ,D) + w(์‚ฐ๊ด€,D) + w(๊ด€๊ด‘,D)
์—ฌ๊ธฐ์—์„œ ๊ฐ€์ค‘์น˜(Weight) ๊ณ„์‚ฐ ์‹œ tf๋งŒ ์‚ฌ์šฉํ•˜๋ผ๊ณ  ์กฐ๊ฑด์„ ์ฃผ์—ˆ์œผ๋ฏ€๋กœ
sim(Q,D) = tf(๋ถ€์‚ฐ,D) + w(์‚ฐ๊ด€,D) + w(๊ด€๊ด‘,D) = 2 + 0 + 1 = 3

3- B. ์งˆ์˜ ์šฉ์–ด์˜ ๋ฌธ์„œ ๋‚ด ๊ฐ€์ค‘์น˜ ๊ณ„์‚ฐ ์‹œ TF์™€ ๋ฌธ์„œ๊ธธ์ด๋งŒ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ์งˆ์˜๋ฌธ์„œ์œ ์‚ฌ๋„ sim(Q,D)์˜ ์ˆ˜์‹์„ ์ ์œผ์‹œ์˜ค. ๋ฌธ์„œ๊ธธ์ด๋Š” ๋ฌธ์„œ ๋‚ด ์ƒ‰์ธ์šฉ์–ด(๋“ค)์˜ ์ด ๊ฐœ์ˆ˜๋กœ ๊ณ„์‚ฐํ•˜์‹œ์˜ค.
๋”๋ณด๊ธฐ
3-A ์™€ ๋™์ผํ•œ๋ฐ, ๊ฐ€์ค‘์น˜ ๊ณ„์‚ฐ ์‹œ TF + ๋ฌธ์„œ๊ธธ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ผ๊ณ  ํ–ˆ์œผ๋ฏ€๋กœ

4. ์Œ์ ˆ 3-gram ์ƒ‰์ธ๋‹จ์œ„๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์•ž 3๋ฒˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์‹œ์˜ค.
A.
B.
๋”๋ณด๊ธฐ
A.
sim(Q,D) = w(๋ถ€์‚ฐ๊ด€,D)+w(์‚ฐ๊ด€๊ด‘,D)
sim(Q,D) = tf(๋ถ€์‚ฐ๊ด€,D)+tf(์‚ฐ๊ด€๊ด‘,D)
= 0+0=0


B.
sim(Q,D) = 0/len(D) + 0/len(D)
sim(Q,D) = 0/9 + 0/9
= 0

๊ทธ๋ ‡๋‹ค, ์ด ์˜ˆ์ œ์—์„œ๋„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ํ•œ๊ธ€์—์„œ 3-gram ์ƒ‰์ธ์€ ๋งค์šฐ ์„ฑ๋Šฅ์ด ์ข‹์ง€์•Š๋‹ค.

 

5. ๋‹ค์Œ์€ ์งˆ์˜ Q์™€ ์ „์ฒด๋ฌธ์„œ์ง‘ํ•ฉ C={D0,D1,D2,D3}์„ ๋ณด์ธ ๊ฒƒ์ด๋ฉฐ ๊ฐ ๋ฌธ์„œ๋Š” ์ƒ‰์ธ์šฉ์–ด๋“ค์˜ ๋‚˜์—ด์ด ๋ผ๊ณ  ๊ฐ€์ •ํ•  ๋•Œ ์•„๋ž˜ ๋ฌผ์Œ์— ๋‹ตํ•˜์‹œ์˜ค.
Q=[๋ถ€์‚ฐ,์†ก์ •,์„œํ•‘,์˜ˆ์•ฝ]
D0=[๋ถ€์‚ฐ],   D1=[๋ถ€์‚ฐ,์†ก์ •,์„œํ•‘],   D2=[๋ถ€์‚ฐ,์„œํ•‘,์„œํ•‘],   D3=[๋Œ€๊ตฌ]
5-A. ์œ„ ์ „์ฒด๋ฌธ์„œ์ง‘ํ•ฉ์˜ ์ƒ‰์ธ์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•  ๋•Œ, ๊ฐ ์šฉ์–ด์˜ ๋ฌธ์„œ ํฌ์ŠคํŒ…์„ ํ‘œ์‹œํ•˜์‹œ์˜ค.
๋”๋ณด๊ธฐ
์ด ๋ฌธ์ œ์˜ ์ •๋‹ต์„ ๊ตฌํ•˜๋Š” ๊ณผ์ • == ์—ญํŒŒ์ผ์ƒ‰์ธ์„ ๊ตฌํ•˜๋Š” ๊ณผ์ •
๋ถ€์‚ฐ: [D0, D1, D2]
์†ก์ •: [D1]
์„œํ•‘: [D1, D2]
๋Œ€๊ตฌ: [D3]

5-B. ์งˆ์˜๋ฌธ์„œ์œ ์‚ฌ๋„ sim(Q,D)๋Š” "์งˆ์˜์šฉ์–ด q์˜ ๋ฌธ์„œ D์—์„œ์˜ ๊ฐ€์ค‘์น˜ w(q,D)"(๋“ค)์˜ ํ•ฉ์œผ๋กœ ๊ณ„์‚ฐ๋˜๋ฉฐ w(q,D) ๊ณ„์‚ฐ ์‹œ TF๋งŒ ์‚ฌ์šฉํ•œ๋‹ค ์งˆ์˜ Q์™€ ๊ฐ ๋ฌธ์„œ์˜ ์œ ์‚ฌ๋„ ์ˆ˜์‹์„ ์ ์œผ์‹œ์˜ค.
- ์˜ˆ๋ฅผ ๋“ค์–ด, Q=[q1,q2]์ธ ๊ฒฝ์šฐ sim(Q,D)=w(q1,D)+w(q2,D)๋กœ ๊ณ„์‚ฐ๋จ.
๋”๋ณด๊ธฐ
๊ฐ ๋ฌธ์„œ์˜ ๊ฐ€์ค‘์น˜ ์ ์ˆ˜(์œ ์‚ฌ๋„)๋ฅผ ๋งค๊ฒจ๋ณด์ž.
๋‹จ, ๊ฐ€์ค‘์น˜ ์ ์ˆ˜๋Š” TF๋งŒ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์กฐ๊ฑด์ด ์žˆ๋‹ค.
w(๋ถ€์‚ฐ,D0) => TF(๋ถ€์‚ฐ,D0) => 'D0'์—์„œ '๋ถ€์‚ฐ'์ด๋ผ๋Š” Term์ด ๋‚˜์˜จ ํšŸ์ˆ˜

sim(Q, D0)= w(๋ถ€์‚ฐ,D0)+w(์†ก์ •,D0)+w(์„œํ•‘,D0)+w(์˜ˆ์•ฝ,D0)
sim(Q, D0)= 1+0+0+0 = 1
์ด๋Ÿฐ์‹์œผ๋กœ Q์— ๋Œ€ํ•œ ๊ฐ๊ฐ ๋ฌธ์„œ์˜ ๊ฐ€์ค‘์น˜ ์ ์ˆ˜๋ฅผ ๋‹ค ๊ตฌํ•˜๋ฉด ๋œ๋‹ค.
sim(Q, D1)=1+1+1+0 = 3
sim(Q, D2)=1+0+2+0 = 3
sim(Q, D3)=0+0+0+0 = 0

์ฆ‰, ์—ฌ๊ธฐ์„œ๋Š” Q[๋ถ€์‚ฐ,์†ก์ •,์„œํ•‘,์˜ˆ์•ฝ]์„ ๊ฒ€์ƒ‰ํ•˜๋ฉด D1๊ณผ D2๊ฐ€ ์ œ์ผ ์ ํ•ฉํ•œ ๋ฌธ์„œ๋ผ๊ณ  ํŒ๋‹จ๋œ๋‹ค.

 

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

JiwonDev

JiwonDev

ํ™œ๋™ํ•˜๊ธฐ