์ ๋ณด๊ฒ์ #1 ๊ฐ์
by JiwonDev์ด ๊ธ์ '์ ๋ณด๊ฒ์' ์ด ๋ฌด์์ ๋ฐฐ์ฐ๋์ง์ ๋ํ ๊ฐ์์ ๋๋ค.
์์์ด ๋์จ๋ค๊ณ ์ด๋ ต๊ฒ ๋ณด์ผ ์ ์๋๋ฐ, ์ด๋ ๋ค์๊ธ์ ์ฐจ๊ทผ์ฐจ๊ทผ ์ค๋ช ํ๋ ๊ฒ๋จน์ง ๋ง๊ณ ๊ฐ๋ ๋ง ์ ํํ๊ฒ ์๊ณ ๋์ด๊ฐ์๋ค.
IR , Information Retreival, ์ ๋ณด๊ฒ์
1. ์ ๋ณด๊ฒ์์ด ๋ญ์ฃ ? (DB ๊ฒ์๊ณผ์ ์ฐจ์ด์ )
๋๋์ ์ ๋ณด ๋ชจ์์ผ๋ก๋ถํฐ ์ฌ์ฉ์์ ์ ๋ณด์๊ตฌ(need)์ ์ ํฉํ(relevant) ์๋ฃ๋ฅผ ์ฐพ๋(Retrieval) ๊ณผ์
= ๋๋์ ์๋ฃ ์งํฉ์ผ๋ก ๋ถํฐ ์๊ตฌ์ฌํญ์ ๋ง์กฑํ๋(satisfying) ๋น์ ํ ๋ฐ์ดํฐ(์ฃผ๋ก ์์ฐ์ด ํ ์คํธ ๋ฌธ์)๋ฅผ ์ฐพ๋ ๊ฒ.
์ฆ ์ ๋ณด ๊ฒ์์์ ์ ๋ณด๋ค์ ๋น๊ตฌ์กฐ์ ์ธ ๋ฌธ์(ํ ์ด๋ธ ํํ๊ฐ ์๋)๋ก ๋์ด์์ผ๋ฉฐ ์ฐ๊ด ์คํค๋ง๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค.
๊ทธ๋์ SQL ๊ฐ์ ์ง์ ํ์์ ๊ฐ์ง์ง ์๊ณ , ์์ฐ์ด๋ก ๊ฒ์ํ๊ฒ ๋ฉ๋๋ค.
๋ํ ๊ฒ์ํ๋ ๊ฒฐ๊ณผ๋ ๋ค๋ฆ ๋๋ค. ์ ๋ณด ๊ฒ์์ ๊ด๋ จ์ฑ์ด ๋์ ๋ฌธ์๋ฅผ ์ฐพ์์ฃผ๋ ๊ฒ์ด์ง, ์ ๋ต์ ์ฐพ๋ ๊ณผ์ ์ด ์๋๋๋ค.
์๋ฅผ ๋ค์ด, "Seoul"์ด๋ผ๋ ํค์๋๋ก ๊ฒ์ํ๋ค๋ฉด ๋จ์ ํ ์คํธ๋ฟ๋ง ์๋๋ผ ์ฐ๊ด ๊ฒ์์ด, ์ด๋ฏธ์ง, ์ง๋๋ฅผ ํฌํจํ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์์ฃผ๋ ๊ฒ ์ฒ๋ผ์. (* ์ ๋ต์ ์ฐพ๋ ์์คํ ์ QA(Question Answering), ์คํค๋ง์ SQL์ ์ด์ฉํด ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ ์์คํ ์ DBMS๋ผ๊ณ ํฉ๋๋ค.)
* [๋๋ณด๊ธฐ] ์คํค๋ง(schema)
์์ด๋ก '๊ฐ์'๋ผ๋ ์๋ฏธ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ์ฝ์กฐ๊ฑด, ๋ฐ์ดํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ์๋ฏธํฉ๋๋ค.
๋ํ์ ์ธ ์คํค๋ง๋ ์์ฑ(Attribute), ์์ฑ์ด ๋ชจ์ธ ๊ฐ์ฒด(Entity) ๊ทธ ๊ฐ์ฒด ์ฌ์ด์ ๊ด๊ณ(Relation)๋ฑ์ด ์์ต๋๋ค.
2. Unstructured Data(๋น์ ํ ๋ฐ์ดํฐ)
๋น์ ํ ๋ฐ์ดํฐ๋ ๋ช ํํ์ง ์๊ณ , ๊ตฌ์กฐํ ๋์ง ์์(=ํ ์ด๋ธ ํํ๊ฐ ์๋) ๋ฐ์ดํฐ๋ฅผ ์๋ฏธํฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ํ์์ ๋ณด๋ ํ ์คํธ, ์ค๋์ค, ๋น๋์ค, ์ด๋ฏธ์ง๋ฑ ๋ชจ๋ ๊ฒ์ด ๋น์ ํ ๋ฐ์ดํฐ์ ๋๋ค.
์ฌ๋ด์ผ๋ก ๊ณผ๊ฑฐ์๋ ๋๋ถ๋ถ์ด ๋น์ ํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ์ฐ์ง ์๊ณ ๊ฐ๊ณตํ์ฌ (ex Oracle)ํ๋งคํ๋ ํ์ฌ๋ค์ด ํฐ ์์ต์ ์ป์์ผ๋ ํ๋์ ์ฐ์
์์ฅ์์๋ ๋น์ ํ ๋ฐ์ดํฐ ์์ฒด๋ฅผ ๋ง์ด ์๊ตฌํ๊ธฐ์ ๋น์ ํ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์ฐพ์ ์ ์๋ ๊ฒ์์์ง(Google, Yahoo)์ ์์๊ฐ ๋ง์์ก์ต๋๋ค.
3. Retrieval(๊ฒ์) ์ฉ์ด
์ฉ์ด๋ฅผ ์ธ์ธํ์๋ ์๊ณ , ํน์๋ ํน์ ๋จ์ด๊ฐ ๋์์ ๋ ๋ชจ๋ฅผ๊น๋ด ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.
IR(Information Retrieval)์ ๊ธฐ๋ณธ ์๋ฆฌ
๋ฌธ์์งํฉ -> [ Indexer(์์ธ) -> Inverted index -> Retriever(๊ฒ์) ] <-> ์ง์, ์๋ต ๋ฌธ์
์์ธ(Indexing) : ํจ์จ์ ์ธ ๊ฒ์์ ์ํด ๋ฌธ์์งํฉ์ ๋ฏธ๋ฆฌ ๋ถ๋ฅ๋ณ๋ก ๊ฐ๊ณตํด๋ .
๊ฒ์(Retriever) : ์ ์ฌ๋(์ง์ - ๋ฌธ์)์ ๋ฐ๋ผ ์์๋ฅผ ๋งค๊น, ๊ฐ ์ ์ฌ๋๋ฅผ ๊ณ ์ ๊ณ์ฐ ์ํํ์
์ ๋ณด์๊ตฌ(need)๋ฅผ ์ง์(Query)๋ก ๋ฐ๊พธ๋ ๊ณผ์ ์์ ์์ค ๋ฐ์(loss)
์ ์ฌ๋ ์ ์ ํ์๋ฐฉ๋ฒ
Similarity (Query, Document_1)
Sim(Q, D1) = 0.3
๊ฒ์๋ชจ๋ธ
1. Corpus(๋ง๋ญ์น): ์๋ฃ๋ฅผ ๊ฒ์ํ Corpus๊ฐ ์กด์ฌํด์ผ ํฉ๋๋ค.
2. Topic(์ฃผ์ ): ๊ทธ Corpus์์ ์๋ฃ๋ฅผ ๊ฒ์ํ๊ธฐ ์ํ Topic์ด ์กด์ฌํด์ผ ํฉ๋๋ค.
3. Relevance(๊ด๋ จ์ฑ) : ์ด๋ ํ ๋ฌธ์๊ฐ Topic์ ํฌํจํ๊ณ ์์ผ๋ฉด Relevance ํ๋ค๊ณ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด ์์ธ์ ๋ ํฌ๊ธฐ(์ฃผ์ )๋ฅผ ๋ฌผ์๋๋ฐ, ์์ธ์ ์ง๋ฆฌ์ ๋ฉด์ ์ ๊ด๋ จ๋ ๋ฌธ์๊ฐ ๋์ค๋ฉด ๊ด๋ จ์ฑ์ด ์๋ ๊ฒ์ด๊ณ ์์ธ ์ธ๊ตฌ ์, ์ทจ์ ๋ฅ ๊ฐ์ ๋ฌธ์๊ฐ ๋์ค๋ฉด Non-Relevance ํ๋ค๊ณ ํฉ๋๋ค.
4. Query(์ง์): ์ ๋ณด๊ฒ์(IR)์์๋ ์์ฐ์ด๋ฅผ ์ฌ์ฉํด ์ง์ํฉ๋๋ค.
5. Model(๊ฒ์๋ชจ๋ธ): Boolean, Vector, Probability ๋ฑ ๋ค์ํ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉฐ ๊ฐ๊ฐ์ ํน์ง์ด ์์ต๋๋ค.
์์ฉ์๋น์ค
- Information Filtering (Recommender, ์ถ์ฒ์์คํ )
- Question-answering (์ง์ ์๋ต์์คํ )
- Cross-language Information retreiveal (๊ต์ฐจ ์ธ์ด์ ๋ณด๊ฒ์)
- Documnet classification (๋ฌธ์ ๋ถ๋ฅ)
- Document clustering (๋ฌธ์ ๊ตฐ์งํ)
4. ์ ํฉํ(Relevance) ๋ฌธ์๋ ๋ฌด์์ธ๊ฐ?
์ด๋ค ๋ฌธ์๊ฐ ์ง์(Query)์ ๊ฐ์ฅ ์ ํฉ(Relevance)ํ ๊น์?
์ ๋ณด๊ฒ์์์ ์๋ฒฝํ๊ฒ ์ผ์นํ๋ ๋ฌธ์๋ ์์ต๋๋ค. ๋ง ๊ทธ๋๋ก ๊ฒ์(Retreival)์ด๋๊น์.
์ ๋ณด๊ฒ์์ ์ง์์ ์ ์ฒด๋ฌธ์๋ฅผ ์ด์ฉํด์ ๊ฐ๊ฐ์ ๋ฌธ์์ ๊ฐ์ค์น์ ์๋ฅผ ๋งค๊ฒจ ์ ํฉํ ๋ฌธ์๋ฅผ ์ฐพ์ต๋๋ค.
๊ทธ์ค ๊ฐ์ฅ ๋ํ์ ์ธ ๊ฒ์ด TF(์ง๋ฌธ์์ Term์ ๋น๋์) ์ DF(ํน์ ๋จ์ด๊ฐ ๋ค์ด๊ฐ ๋ฌธ์์ ์)๋ฅผ ์ด์ฉํ ๋ฐฉ๋ฒ์ ๋๋ค.
5. TF-IDF๋ฅผ ์ด์ฉํ Ranking
ํด๋น ๋ด์ฉ์ ๋ค์ ๊ธ์์ ์ถ๊ฐ์ ์ผ๋ก ์ค๋ช ํ๋, ๊ฐ๋จํ๊ฒ๋ง ๋ณด๊ณ ๊ฐ์๋ค.
์ ์ฒด ๋ฌธ์๋ฅผ ๋จ์ํ ํค์๋๋ฅผ ์ด์ฉํด์ ๋ถ๋ฅํ๊ฒ ๋๋ฉด ์๊ฐ๋ ์ค๋ ๊ฑธ๋ฆฌ๊ณ ๋ถํ์ํ ๋ฐ์ดํฐ๊ฐ ๋ง์ด ํฌํจ๋๊ฒ ๋ฉ๋๋ค.
๊ทธ๋์ ๋ฌธ์์ ๊ด๋ จ์ฑ์ ์ ์(=๊ฐ์ค์น, Weight)๋ฅผ ๋งค๊ฒจ Rankingํด์ผ ํฉ๋๋ค.
๊ทธ ์ค TF-IDF(Term Frequency-Inverse Document Frequency) ๋ ๋จ์ด์ ๋น๋์ ๋ฌธ์์ ๋น๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ๋จ์ด๋ค๋ง๋ค ์ค์ํ ์ ๋๋ฅผ ๊ฐ์ค์น๋ก ์ฃผ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ฃผ๋ก ๋ฌธ์์ ์ ์ฌ๋๋ฅผ ๊ตฌํ๊ฑฐ๋ ๊ฒ์ ์์คํ ์์ ๊ฒฐ๊ณผ, ํน์ ๋จ์ด์ ์ค์๋๋ฅผ ๊ตฌํ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ์์ํ ๊ธ์ ๋๋ฌธ์ ์ด๋ ค์ ๋ณด์ผ ์ ์์ง๋ง, ์๋ฏธ๋ฅผ ๋ณด๋ฉด ๊ฐ๋จํฉ๋๋ค.
5-1 TF (Term Frquency)
ํน์ ๋ฌธ์ ๋ด์์ ํน์ ๋จ์ด์ ๋น๋ ์๋ฅผ ์๋ฏธํฉ๋๋ค.
TF ( d , t ) : ํน์ ๋ฌธ์(d)์์ ํน์ ๋จ์ด(t)์ ๋ฑ์ฅ ํ์
5-2 DF (Document Frequency)
๋ฌธ์ ์งํฉ ์ ์ฒด์์ ํน์ ๋จ์ด๊ฐ ๋์จ ๋ฌธ์์ ๊ฐ์๋ฅผ ์๋ฏธํฉ๋๋ค.
DF( t ) : ๋ฌธ์ ์งํฉ ์ ์ฒด์์ t๊ฐ ๋ฑ์ฅํ ๋ฌธ์์ ์
5-3 IDF(Inverse DF)
df๋ฅผ ๋ฐ๋น๋ก ํ๋ ์์ ๋๋ค. ์ ์ฒด ๋ฌธ์์์ ๋จ์ด๊ฐ ์ ๊ฒ ๋ฑ์ฅํ ์๋ก ๊ฐ์ค์น๊ฐ ๋์์ผ ํ๊ธฐ์
๊ณ์ฐํ ๋๋ DF ๋ณด๋ค๋ ๊ทธ ์ญ์์ธ IDF๋ฅผ ๋ง์ด ์๋๋ค. ๋ค๋ง ๋จ์ ์ญ์๊ฐ ์๋๋ผ Log ( ๋ณดํต ์์ฐ๋ก๊ทธ ln)๋ฅผ ์์ฐ๋๋ฐ ๊ทธ ์ด์ ๋ ๋ฌธ์์ ๊ฐฏ์(n)๊ฐ ์ปค์ง ์๋ก ์์น๊ฐ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ปค์ง๋๊ฑธ ๋ฐฉ์งํ๊ธฐ ์ํจ์ ๋๋ค.
๋ํ ๋ก๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋จ์ํ ํฌ๊ธฐ๊ฐ ์ปค์ง๋ ๊ฒ ๋ฟ๋ง ์๋๋ผ ๊ฐ์ค์น๋ฅผ ๊ณจ๊ณ ๋ฃจ ๋ถ์ฌ๋๋๋ฐ๋ ๋์์ด ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด ๊ธฐ๋ณธ์ ์ธ ๋จ์ด๋ค์ ํน์ํ, ์์ฃผ ์ฐ์ด์ง ์๋ ๋จ์ด์ ๋นํด ์ต์ ์์ญ, ์๋ฐฑ ๋ฐฐ๋ ๋ ๋ฑ์ฅํฉ๋๋ค.
TF-IDF๋ ๋ชจ๋ ๋ฌธ์์์ ์์ฃผ ๋ฑ์ฅํ๋ ๋จ์ด์ ์ค์๋๋ฅผ ๋ฎ๊ฒ ํ๋จํ๋๋ฐ, ๋จ์ํ ์ญ์๋ก ๊ณ์ฐํด๋ฒ๋ฆฌ๋ฉด ์ด๋ฐ ๋จ์ด๋ค ๋๋ฌธ์ ๋ณ๋ก ํฌ๊ทํ์ง๋ ์์ ๋จ์ด๋ค์๊ฒ ์๋์ ์ผ๋ก ์๋นํ ๋์ ๊ฐ์ค์น๊ฐ ๋ถ์ฌ๋๊ฒ ๋ฉ๋๋ค.
๋ก๊ทธ๋ฅผ ์์ฐ๋ฉด ์ด๋ฐ ๊ฒฉ์ฐจ๋ฅผ ํฌ๊ฒ ์ค์ฌ์ฃผ๋ ํจ๊ณผ๋ ์์ต๋๋ค.
* [๋๋ณด๊ธฐ] ๋ก๊ทธ๋ฅผ ์์ฐ๋ฉด ์ด๋ป๊ฒ ๋ฌ๋ผ์ง๋์?
* [๋๋ณด๊ธฐ] 6. ํ์ด์ฌ์ผ๋ก ์ค์ ๊ตฌํํด๋ณด๊ธฐ
5-4 ์ค์ ๋ก ๊ตฌํด๋ณด์
๋ค์๊ณผ ๊ฐ์ 4๊ฐ์ ํ ์คํธ ๋ฌธ์๊ฐ ์๋ค๊ณ ๊ฐ์ ํฉ์๋ค.
๋ฌธ์1 : ๋จน๊ณ ์ถ์ ์ฌ๊ณผ
๋ฌธ์2 : ๋จน๊ณ ์ถ์ ๋ฐ๋๋
๋ฌธ์3 : ๊ธธ๊ณ ๋ ธ๋ ๋ฐ๋๋ ๋ฐ๋๋
๋ฌธ์4 : ์ ๋ ๊ณผ์ผ์ด ์ข์์
๋จ์ด๋ฅผ ๋ถ๋ฅํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์์ง๋ง, ์ฌ๊ธฐ์์๋ ๋จ์ด์ ์์์ ๋น๋์๋ฅผ ๊ณ ๋ คํด ๊ฐ๋จํ๊ฒ ํ๋ ฌ๋ก ํํ ํด๋ณด๊ฒ ์ต๋๋ค. ์ 4๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ฌธ์-๋จ์ด ํ๋ ฌ(DTM, Document-Term Matrix)๋ก ๋ง๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- | ๊ณผ์ผ์ด | ๊ธธ๊ณ | ๋ ธ๋ | ๋จน๊ณ | ๋ฐ๋๋ | ์ฌ๊ณผ | ์ถ์ | ์ ๋ | ์ข์์ |
๋ฌธ์1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
๋ฌธ์2 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
๋ฌธ์3 | 0 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 0 |
๋ฌธ์4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
์ด DTM์ ์์์ ๋ฐฐ์ด IDF (๋จ์ด์ ์ ์ฒด ๋ฌธ์ ์ถํ ๋น๋)๋ฅผ ๊ณ์ฐํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์ด ๋์๋ค๊ณ ์ด๋ ต๊ฒ ๋ณด์ผ ์ ์๋๋ฐ, ๋จ์ํ ๋น๋์๋ฅผ ๋์ ํด์ ๊ณ์ฐํ ๊ฐ์ ๋๋ค.
๋จ์ด | IDF | ๋จ์ด | IDF |
๊ณผ์ผ์ด | ln(4/(1+1)) = 0.693147 | ์ฌ๊ณผ | ln(4/(1+1)) = 0.693147 |
๊ธธ๊ณ | ln(4/(1+1)) = 0.693147 | ์ถ์ | ln(4/(2+1)) = 0.287682 |
๋ ธ๋ | ln(4/(1+1)) = 0.693147 | ์ ๋ | ln(4/(1+1)) = 0.693147 |
๋จน๊ณ | ln(4/(2+1)) = 0.287682 | ์ข์์ | ln(4/(1+1)) = 0.693147 |
๋ฐ๋๋ | ln(4/(2+1)) = 0.287682 |
์ด์ ์ด ๊ฐ์ TF(ํน์ ๋ฌธ์์์ ๋์ค๋ ๋จ์ด์ ๊ฐฏ์)์ ๊ณฑํด์ฃผ๋ฉด ๋ฌธ์๋ณ ๋จ์ด์ ๊ฐ์ค์น(TF-IDF)๊ฐ ๋์ค๊ฒ ๋ฉ๋๋ค.
์์ ํ๋ ฌ(DTM)์ ๋ณ๋ค๋ฅธ ๊ณต์์ ์ ์ฉํ์ง ์๊ณ ๊ทธ๋๋ก ์ ์๊ธฐ์ ์์ ํ๋ ฌ์ ๊ทธ๋๋ก ๊ฐ์ ธ์ค๋ฉด ๋จ์ด๋ณ TF(t) ๊ฐ ๋๊ฒ ๋ฉ๋๋ค. ๊ฐ๊ฐ์ ๊ฐ์ TF * IDF๋ฅผ ๊ณ์ฐํด์ฃผ๋ฉด ์๋์ ๊ฐ์ด ๊ฐ์ค์น๊ฐ ๋ถ์ฌ๋ฉ๋๋ค.
- | ๊ณผ์ผ์ด | ๊ธธ๊ณ | ๋ ธ๋ | ๋จน๊ณ | ๋ฐ๋๋ | ์ฌ๊ณผ | ์ถ์ | ์ ๋ | ์ข์์ |
๋ฌธ์1 | 0 | 0 | 0 | 0.287682 | 0 | 0.693147 | 0.287682 | 0 | 0 |
๋ฌธ์2 | 0 | 0 | 0 | 0.287682 | 0.287682 | 0 | 0.287682 | 0 | 0 |
๋ฌธ์3 | 0 | 0.693147 | 0.693147 | 0 | 0.575364 | 0 | 0 | 0 | 0 |
๋ฌธ์4 | 0.693147 | 0 | 0 | 0 | 0 | 0 | 0 | 0.693147 | 0.693147 |
๋ฐ๋๋์ ๊ฒฝ์ฐ [๋ฌธ์ 3๋ฒ]์์ ๋ ๋ฒ ๋ฑ์ฅํ์๊ธฐ์ ๊ฐ์ค์น๊ฐ ๋๊ฒ ์กํ์ต๋๋ค.
์ด๋ TF-IDF ๊ฐ์ค์น๋ฅผ ์ด์ฉํ๋ฉด ํน์ ๋ฌธ์์์ ์์ฃผ ๋ฑ์ฅํ๋ ๋จ์ด๋ ๊ทธ ๋ฌธ์๋ด์์ ์ค์ํ ๋จ์ด๋ก ๋ณด๊ธฐ ๋๋ฌธ์ ๋๋ค.
6. ํ์ด์ฌ์ผ๋ก ์ง์ ๊ตฌํํด๋ณด๊ธฐ
๋ฌผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด์ ๊ฐ๋จํ๊ฒ ๊ตฌํ๋ ๋ฐฉ๋ฒ๋ ์์ง๋ง, ๋ฐฐ์ฐ๋ ๊ณผ์ ์ด๋ ์ง์ ๋ ธ๊ฐ๋ค๋ก ๊ตฌํด๋ด ์๋ค.
import pandas as pd # ๋ฐ์ดํฐํ๋ ์ ์ฌ์ฉ์ ์ํด
from math import log # IDF ๊ณ์ฐ์ ์ํด
## 1. ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ต๋๋ค. docs๋ฅผ ๋ณดํต corpos(๋ง๋ญ์น)๋ผ๊ณ ๋ถ๋ฆ
๋๋ค
docs = [
'๋จน๊ณ ์ถ์ ์ฌ๊ณผ',
'๋จน๊ณ ์ถ์ ๋ฐ๋๋',
'๊ธธ๊ณ ๋
ธ๋ ๋ฐ๋๋ ๋ฐ๋๋',
'์ ๋ ๊ณผ์ผ์ด ์ข์์'
]
vocab = list(set(w for doc in docs for w in doc.split()))
vocab.sort()
N = len(docs) # ์ด ๋ฌธ์์ ์
## 2. TF์ IDF๋ฅผ ๊ตฌํ๋ ํจ์๋ฅผ ์ ์ํฉ๋๋ค.
def tf(t, d):
return d.count(t)
def idf(t):
df = 0
for doc in docs:
df += t in doc
return log(N/(df + 1))
def tfidf(t, d):
return tf(t,d)* idf(t)
## 3. TF๋ฅผ ๊ตฌํฉ๋๋ค. ์ฌ๊ธฐ์๋ DTM(ํ๋ ฌ)์ ๋ง๋๋ ๊ณผ์ ๊ณผ ๋์ผํฉ๋๋ค.
result = []
for i in range(N): # ๊ฐ ๋ฌธ์์ ๋ํด์ ์๋ ๋ช
๋ น์ ์ํ
result.append([])
d = docs[i]
for j in range(len(vocab)):
t = vocab[j]
result[-1].append(tf(t, d))
tf_ = pd.DataFrame(result, columns = vocab)
## 4. ๊ฐ ๋จ์ด์ ๋ํ IDF ๊ฐ์ ๊ตฌํฉ๋๋ค.
result = []
for j in range(len(vocab)):
t = vocab[j]
result.append(idf(t))
idf_ = pd.DataFrame(result, index = vocab, columns = ["IDF"])
## 5. TF-IDF ๊ฐ์ค์น ํ๋ ฌ์ ๋ง๋ญ๋๋ค.
result = []
for i in range(N):
result.append([])
d = docs[i]
for j in range(len(vocab)):
t = vocab[j]
result[-1].append(tfidf(t,d))
tfidf_ = pd.DataFrame(result, columns = vocab)
7. ๋์์ด์ ์ ์์ด์ ์์ธ๋ฐฉ๋ฒ
ํด์ฆ
1. ์์ฐ์ด์ ์๋ฏธ์ ๊ด๋ จํ์ฌ ์ ๋ณด๊ฒ์์์ ๊ณ ๋ คํด์ผ ํ ๋ ๊ฐ์ง ๋ฌธ์ ๋ฅผ ๋์ดํด ๋ณด์์ค.
๋์์ด ๋ฌธ์ , ๋ค์์ด ๋ฌธ์
2. ์ ํฉ์ฑ์ ์ ๋๋ฅผ 2๊ฐ์ง ๋ฐ 4๊ฐ์ง ์ฉ์ด๋ค๋ก ๊ฐ๊ฐ ์ธ๋ถํ์ฌ ํํํด ๋ณด์์ค.
์ ํฉ, ๋ถ์ ํฉ
๋งค์ฐ์ ํฉ, ์ ํฉ, ๋ถ๋ถ์ ํฉ, ๋ถ์ ํฉ
3. ์ ๋ณด๊ฒ์์์คํ ์ ๊ตฌ์ฑํ๋ ๋ ๊ฐ์ง ๋ํ์ ๋ชจ๋์ ๋ฌด์์ธ๊ฐ?
์์ธ(indexing)๋ชจ๋, ๊ฒ์(retriever)๋ชจ๋
4. ์ ๋ณด๊ฒ์์์คํ ์ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๊ฒ์ผ๋ก, ์ฌ์ฉ์์ ์ ๋ณด์๊ตฌ๊ฐ ํํ๋ ๊ฒ์
์ง์นญํ๋ ์ฉ์ด ํ๊ตญ์ด์ ์์ด๋ก ๊ฐ๊ฐ ์ ์ผ์์ค.
Query, ์ง์
5. ์ ๋ณด๊ฒ์์์ '์ ํฉํ' ์ ์์ด ๋จ์ด๋ฅผ ์ ์ผ์์ค.
relevant
์ฐธ๊ณ - ์์ธ(Indexing), ์ ๋ณด(Information), ๊ฒ์(Retreiver), ์๊ตฌ(Need)
6. ์ ๋ณด๊ฒ์์ ํด๋นํ๋ ์์ด ์์ ๋ช ๋ฐ ์ฝ์ด๋ฅผ ์ ์ผ์์ค.
IR, Information Retreival
'๐ฑโ๐ป์ ๊ณต ๊ณต๋ถ > ์ ๋ณด๊ฒ์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
#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 |
์ ๋ณด๊ฒ์ #2 TF-IDF ์์ธํ ์์๋ณด๊ธฐ (0) | 2021.04.13 |
๋ธ๋ก๊ทธ์ ์ ๋ณด
JiwonDev
JiwonDev