์ ๋ณด๊ฒ์ #2 TF-IDF ์์ธํ ์์๋ณด๊ธฐ
by JiwonDev์๋ง์ ๋ฌธ์์ค์ ์ด๋ค ๋ฌธ์๊ฐ ๊ฐ์ฅ ์ ํฉํ์ง ์ฌ๋ถ๋ ์ ์ฌ๋ ์ ์๋ก ๊ฒฐ์ ํ๋ค.
๊ทธ ์ค ๊ฐ์ฅ ํํ๊ฒ ์ฐ์ด๊ณ ํจ์จ๋ ๊ด์ฐฎ์ TF * IDF / Length ์ ์ฌ๋ ์ ์๊ณต์์ ์์๋ณด์.
Length(D), N
์ง์๋ฌธ, ๋ฌธ์์ ๊ธธ์ด๋ ๋ฌธ์์ ๊ฐฏ์๋ฅผ ๋ํ๋ผ ๋ ์ฌ์ฉ.
๋น์ฐํ๊ฑฐ๊ธด ํ๋ฐ ๊ฐ์ค์น๋ฅผ ๊ตฌํ ๋ ์ฌ์ฉํฉ๋๋ค. ํน์๋ ์ธ๊ธ์ํ๋ค๊ณ ๋ชจ๋ฅผ๊น๋ด ์ ์ด๋ดค์ต๋๋ค.
Term, TF
=> ๋จ์ด, ๊ตฌ, ํ์ฌ, ์๋ฏธ.. ๋ฌธ์์ ํน์ง์ ๋ํ๋ผ ์ ์๋ ๋จ์
Term frequency (TF), [ํน์ ํ ๋ฌธ์] ๋ด์ ์ถํํ Term์ ๊ฐ์.
Doucment 99 = [๋ฏธ๊ตญ, ํ๊ตญ, ์ค๊ตญ, ํ๊ตญ, ๋ฏธ๊ตญ, ํ๊ตญ]
TF ( D99, ํ๊ตญ ) = 3
TF ( D99, ๋ฏธ๊ตญ ) = 2
TF (D99, ์ค๊ตญ ) = 1
Document, DF
=> ๋ฌธ์, ๋ฌธ์์งํฉ(collection)
Doucment Frequency (DF), [์ ์ฒด ๋ฌธ์ ์งํฉ]์์ Term์ด ์ถํํ [๋ฌธ์์ ์]
- ํ ๋ฌธ์ ๋ด์ ์ฌ๋ฌ๋ฒ ๋ฑ์ฅํ ๊ฑด ์๊ด์๋ค. ํ๋๋ผ๋ ์๋ ์๋์ ๋ํ ์ฌ๋ถ๋ง ๋ฐ์ง.
IDF (Inverse DF)
๊ฒ์์ด์ ๋จ์ด์ ์ถํ ๋น๋๊ฐ ๋ง์ ์๋ก(TF) ์ ์๊ฐ ๋์์ ธ์ผํ๊ณ
ํํ ๋จ์ด๋ผ์, ์ ์ฒด ๋ฌธ์์ ์์ฃผ ์ฐ์ด๋ ๋จ์ด์ผ์๋ก(DF) ์ ์ฌ๋ ์ ์๊ฐ ๋ฎ์์ ธ์ผ ํฉ๋๋ค.
์ฆ TF์๋ ๋น๋กํ๊ณ DF๋ ๋ฐ๋น๋ก ํด์ผ ํ๊ธฐ ๋๋ฌธ์ DF์ ์ญ์์ธ IDF์ ์ฌ์ฉํฉ๋๋ค.
IDF๊ฐ์ ๋ฌธ์์ ๊ฐฏ์(n)์ ๊ณฑํ ์์น๋ฅผ ์ฌ์ฉํ๊ณ , ๋จ์ ์ญ์๊ฐ ์๋๋ผ ๋ณดํต Log(๋๋ ์์ฐ๋ก๊ทธ)๋ฅผ ๋ง์ด ์ฌ์ฉํฉ๋๋ค.
๋ถ๋ชจ๊ฐ 0์ด ๋๋ฉด ๊ฐ์ด ๋ฌดํ์ด ๋๊ธฐ ๋๋ฌธ์ 1 + df(t) ์ผ๋ก ๋ง๋ค์ด ์ค๋๋ค. ์ฐธ๊ณ ๋ก idf์ ๊ฒฐ๊ณผ๊ฐ์ด 0~1 ์ฌ์ด๋ฉด, ๊ฐ์ค์น๊ฐ ๊ณฑํด์ก์ ๋ ์ซ์๊ฐ ์์์ง๊ธฐ์ idf๊ฐ์ 1์ ๋ํ๊ธฐ๋ ํฉ๋๋ค.
* [๋๋ณด๊ธฐ] ์ ๊ทธ๋ฅ ์ญ์๊ฐ ์๋ log๋ฅผ ์์ฐ๋๊ฑฐ์ฃ ?
๋ก๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ์ค์น๊ฐ ๋๋ฌด ์ปค์ง๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ , ๊ฐ ๋ฌธ์ ๋ณ๋ก ๊ณจ๊ณ ๋ฃจ ๋ถ์ฌํ๋๋ฐ ๋์์ด ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๊ธฐ๋ณธ์ ์ธ ๋จ์ด๋ค (a, the, ~์, ~๊ฐ)์ ์์ฃผ ์ฐ์ด์ง ์๋ ๋จ์ด์ ๋นํด ์ต์ ์์ญ, ์๋ฐฑ๋ฐฐ๋ ๋ ๋ฑ์ฅํฉ๋๋ค. TF-IDF ๊ณ์ฐ์์ ๋ชจ๋ ๋ฌธ์์์ ์์ฃผ ๋ฑ์ฅํ๋ ๋จ์ด์ ์ค์๋๋ฅผ ๋ฎ๊ฒ ํ๋จํ๊ฒ ๋๋๋ฐ ๋จ์ํ ์ญ์๋ก ๊ณ์ฐํด๋ฒ๋ฆฌ๋ฉด ์ด๋ฐ ๋จ์ด๋ค ๋๋ฌธ์ ๋ณ๋ก ํฌ๊ทํ์ง๋ ์์ ๋จ์ด๋ค์๊ฒ ์๋์ ์ผ๋ก ๋์ ๊ฐ์ค์น๊ฐ ๋ถ์ฌ๋๊ฒ ๋ฉ๋๋ค.
๋ํ ๊ฐ์ค์น์ ์ฆ๊ฐ๋์ ์กฐ์ ํด ์ง๊ด์ ์ผ๋ก ๋ฐ๊ฟ์ค๋๋ค.
์๋๋ ๋ฌธ์๊ฐ 100๋ง๊ฐ์ผ ๋ ๋จ์ idf์ log(idf)์ ์ฐจ์ด์ ๋๋ค.
* [๋๋ณด๊ธฐ] CF(Collection Frequency) ๋ ๋ญ์์?
DF์ ๋น์ทํ๋, ๋ฌธ์์ ๊ฐ์, ๊ฒฝ๊ณ๋ฅผ ๋ฐ์ง์ง ์๊ณ ํน์ ์งํฉ ์ ์ฒด๋ฅผ ํ ๋ฌธ์๋ก ๋ณด๊ณ Term์ ๊ฐ์๋ฅผ ์ ๋๋ค.
์ธ์ด ๊ธฐ๋ฐ ๊ฒ์๋ชจ๋ธ ๋ฑ์์ DF ๋์ ์ CF๋ฅผ ์ฌ์ฉ ํ ๋๊ฐ ์์ต๋๋ค. ์ง๊ธ์ ๊ฐ๋จํ ๊ฐ๋ ๋ง ์๊ณ ๋์ด๊ฐ์๋ค.
ํด์ฆ
* ๋ฌธ์ ์์๋ ๊ณ์ฐ์ ํธ์์ฑ์ ์ํด idf(t)์ ๋ก๊ทธ๋ฅผ ์์ฐ๊ฑฐ๋ 1์ ๋ํ์ง ์๊ณ ์ฌ์ฉํ์ต๋๋ค.
1. ๋ค์ ์ ์ฒด๋ฌธ์์งํฉ {D1,D2,D3,D4}์ ๋ํด ์๋ ๊ฐ๋ค์ ์ฑ์ฐ์์ค.
- ๋จ, ์ฉ์ด t์ idf(t)๋ N์ ์ ์ฒด๋ฌธ์ ์งํฉํฌ๊ธฐ๋ผ๊ณ ํ ๋ idf(t)=N/df(t) ๋ก ๊ณ์ฐ
D1=[ํ๊ตญ,ํ๊ตญ,ํ๊ตญ,๋ฏธ๊ตญ] D2=[ํ๊ตญ,๋ฏธ๊ตญ,๋ฏธ๊ตญ] D3=[ํ๊ตญ,์ค๊ตญ] D4=[ํ๊ตญ,์ผ๋ณธ]
tf(D1,ํ๊ตญ)= tf(D3,๋ฏธ๊ตญ)= df(ํ๊ตญ)= df(๋ฏธ๊ตญ)= cf(๋ฏธ๊ตญ)= idf(๋ฏธ๊ตญ)= idf(ํ๊ตญ)=
ํ์ด
tf(D1,ํ๊ตญ)= 3 Document1์๋ ํ๊ตญ์ด๋ผ๋ Term์ด 3๊ฐ๊ฐ ์๋ค.
tf(D3,๋ฏธ๊ตญ) = 0 Document3์๋ ๋ฏธ๊ตญ์ด๋ผ๋ Term์ด 0๊ฐ๊ฐ ์๋ค.
df(ํ๊ตญ) = 4 ์ ์ฒด ๋ฌธ์์งํฉ(D1,2,3,4)์์ ํ๊ตญ์ด ๋์จ ๋ฌธ์๋ ์ด 4๊ฐ์ด๋ค
df(๋ฏธ๊ตญ) = 2 ์ ์ฒด ๋ฌธ์์งํฉ(D1,2,3,4)์์ ๋ฏธ๊ตญ์ด ๋์จ ๋ฌธ์๋ ์ด 2๊ฐ์ด๋ค
cf(๋ฏธ๊ตญ) = 3 ์ ์ฒด ๋ฌธ์์งํฉ Collection์์ '๋ฏธ๊ตญ'์ด ๋์จ ํ์๋ 3๋ฒ์ด๋ค.
idf(๋ฏธ๊ตญ) = 4/2 ๋ฌธ์์ ๊ฐฏ์(4) / df(๋ฏธ๊ตญ)
idf(ํ๊ตญ) = 4/4 ๋ฌธ์์ ๊ฐฏ์(4) / df(ํ๊ตญ)
2. ๋ค์์ ์ง์ Q์ ์ ์ฒด๋ฌธ์์งํฉ {D1,D2}๋ฅผ ๋ณด์ธ ๊ฒ์ด๋ค.
- tf๋ง์ ์ฌ์ฉํ์ฌ ์ง์์ ๊ฐ ๋ฌธ์์ ์ ์ฌ๋๋ฅผ ์ ์ผ์์ค.
Q=[์ฌ๊ณผ] D1=[์๋ฐ,์ฌ๊ณผ] D2=[์ฌ๊ณผ,์ฌ๊ณผ]
sim(Q,D1) = sim(Q,D2) =
ํ์ด
sim(Q,D1) = 1 tf(Q, D1)์ ๊ฐ์ 1์ด๋ค.
sim(Q,D2) = 2 tf(Q,D2)์ ๊ฐ์ 2์ด๋ค.
3. ๋ค์์ ์ง์ Q์ ์ ์ฒด๋ฌธ์์งํฉ {D1,D2}๋ฅผ ๋ณด์ธ ๊ฒ์ด๋ค.
๋ฌธ์๊ธธ์ด๋ง์ ์ฌ์ฉํ์ฌ ์ง์์ ๊ฐ ๋ฌธ์์ ์ ์ฌ๋๋ฅผ ์ ์ผ์์ค.
- ๋ฌธ์๊ธธ์ด๋ ๋ฌธ์ ๋ด ์ถํ ์ฉ์ด๋ค์ ์ด ๊ฐ์๋ก ๊ณ์ฐํ์์ค.
Q=[์ฌ๊ณผ] D1=[์ฌ๊ณผ] D2=[์ฌ๊ณผ,์ฌ๊ณผ]
sim(Q,D1) = sim(Q,D2) =
ํ์ด
sim(Q,D1) = 1/1 ๊ธธ์ด๋ง ๋น๊ตํจ. length(Q) / length(D1)
sim(Q,D2) = 1/2 ๊ธธ์ด๋ง ๋น๊ตํจ. length(Q) / length(D1), ๊ธธ์ด๋ง ์ฌ์ฉํด์๋ ์ ํํ ์ ์ฌ๋๋ฅผ ๊ตฌํ์ง ๋ชปํ๋ค.
4. ๋ค์์ ์ง์ Q์ ์ ์ฒด๋ฌธ์์งํฉ {D1,D2}๋ฅผ ๋ณด์ธ ๊ฒ์ด๋ค.
idf๋ง์ ์ฌ์ฉํ์ฌ ์ง์์ ๊ฐ ๋ฌธ์์ ์ ์ฌ๋๋ฅผ ์ ์ผ์์ค.
- ์ฉ์ด t์ idf(t)๋ N์ ์ ์ฒด๋ฌธ์ ์งํฉํฌ๊ธฐ๋ผ๊ณ ํ ๋ idf(t)=N/df(t)๋ก ๊ณ์ฐ
Q=[์ฌ๊ณผ] D1=[์๋ฐ,์ฌ๊ณผ] D2=[์ฌ๊ณผ,์ฌ๊ณผ]
sim(Q,D1) = sim(Q,D2) =
ํ์ด
sim(Q,D1) = 2/2 ์ ์ฒด๋ฌธ์๊ฐฏ์(2) / df(์ฌ๊ณผ), ํท๊ฐ๋ฆฌ์ง๋ง์ df๋ ๋จ์ด๊ฐ 1๊ฐ์ด์ ์ฌ์ฉ๋ ๋ฌธ์์ ์์ด๋ค.
sim(Q,D2) = 2/2 ์ ์ฒด๋ฌธ์๊ฐฏ์(2) / df(์ฌ๊ณผ), ์ด ๋ฌธ์ ์ฒ๋ผ idf๋ง ์ฌ์ฉํด์๋ ์ ํํ ์ ์ฌ๋๋ฅผ ๊ตฌํ์ง ๋ชปํ๋ค.
5. ๋ค์์ ์ง์ Q์ ์ ์ฒด๋ฌธ์์งํฉ {D1,D2,D3}๋ฅผ ๋ณด์ธ ๊ฒ์ด๋ค.
์๋ ์ ์ฌ๋ ์์ sim(Q,D)๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ง์ Q์ ๋ฌธ์ D1์ ์ ์ฌ๋ ์์์ ์ ์ผ์์ค.
- ์๋ ์์์์ qi๋ ์ง์ Q์ i๋ฒ์งธ ์ถํ ์ฉ์ด์ด๋ค.
- ๋ฌธ์๊ธธ์ด Length(D)๋ ๋ฌธ์ ๋ด ์ถํ ์ฉ์ด๋ค์ ์ด ๊ฐ์๋ก ๊ณ์ฐ
- ์ฉ์ด t์ idf(t)๋ N์ ์ ์ฒด๋ฌธ์ ์งํฉํฌ๊ธฐ๋ผ๊ณ ํ ๋ idf(t)=N/df(t)๋ก ๊ณ์ฐ
Q=[๋ถ์ฐ ๊ด๊ด] D1=[๋ถ์ฐ ๋ถ์ฐ ๊ด๊ด] D2=[์์ธ ๋ถ์ฐ ๊ด๊ด] D3=[ํด์ธ ๊ด๊ด]
ํ์ด
'๐ฑโ๐ป์ ๊ณต ๊ณต๋ถ > ์ ๋ณด๊ฒ์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
#6-1 ์ ๋ณด๊ฒ์ ์ฑ๋ฅ ํ๊ฐ (P, R, F1, PRC) (0) | 2021.06.01 |
---|---|
#5 ๋ฒกํฐ ๋ชจ๋ธ SMART ํ๊ธฐ๋ฒ (0) | 2021.05.31 |
์ ๋ณด๊ฒ์ #4 ๊ฒ์๋ชจ๋ธ (Retrieval Models) (0) | 2021.04.15 |
์ ๋ณด๊ฒ์ #3 ์์ธ(Indexing) (0) | 2021.04.15 |
์ ๋ณด๊ฒ์ #1 ๊ฐ์ (0) | 2021.03.16 |
๋ธ๋ก๊ทธ์ ์ ๋ณด
JiwonDev
JiwonDev