TF-IDF๋ ๋ฌธ์ ๋ด ๋จ์ด์ ์ค์๋๋ฅผ ํ๊ฐํ๋ ๋ํ์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค. ํน์ ๋จ์ด๊ฐ ๋ฌธ์์์ ์ผ๋ง๋ ์ค์ํ์ง๋ฅผ ์์นํํ์ฌ, ๋ฌธ์ ๊ฐ ์ ์ฌ๋๋ฅผ ์ธก์ ํ๊ฑฐ๋ ๊ฒ์ ์์ง์์ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ๋ญํนํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
๋ฌธ์ ๋ด์์ ํน์ ๋จ์ด๊ฐ ๋ฑ์ฅํ๋ ๋น๋๋ฅผ ๋ํ๋ ๋๋ค.TF(t,d)=f(t,d)NTF(t, d) = \frac{f(t, d)}{N}TF(t,d)=Nf(t,d)โ
โ TF์ ์๋ฏธ: ์์ฃผ ๋ฑ์ฅํ๋ ๋จ์ด์ผ์๋ก ํด๋น ๋ฌธ์์์ ์ค์ํ๊ฒ ์ฌ์ฉ๋ ๊ฐ๋ฅ์ฑ์ด ๋์.
ํด๋น ๋จ์ด๊ฐ ์ฌ๋ฌ ๋ฌธ์์์ ๋ฑ์ฅํ๋ ์ ๋๋ฅผ ์กฐ์ ํ๋ ๊ณ์์ ๋๋ค. ๋๋ฌด ๋ง์ ๋ฌธ์์์ ๋ฑ์ฅํ๋ ๋จ์ด(์: โtheโ, โisโ, โandโ ๊ฐ์ ๋ถ์ฉ์ด)๋ ์ ๋ณด ๊ฐ์น๊ฐ ๋ฎ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ๋ฐ์ํ์ฌ ๊ฐ์ค์น๋ฅผ ๋ฎ์ถฅ๋๋ค.IDF(t)=logโก(D1+df(t))IDF(t) = \log \left(\frac{D}{1 + df(t)}\right)IDF(t)=log(1+df(t)Dโ)
โ IDF์ ์๋ฏธ: ํน์ ๋ฌธ์์์๋ง ๋ฑ์ฅํ๋ ๋จ์ด์ผ์๋ก(ํฌ๊ทํ ์๋ก) ๋ ๋์ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌ.
TF์ IDF๋ฅผ ๊ณฑํ ๊ฐ์ด ํด๋น ๋จ์ด์ ์ต์ข ์ค์๋ ์ ์๊ฐ ๋ฉ๋๋ค.TFโIDF(t,d)=TF(t,d)รIDF(t)TF-IDF(t, d) = TF(t, d) \times IDF(t)TFโIDF(t,d)=TF(t,d)รIDF(t)
โ TF-IDF์ ์๋ฏธ:
from sklearn.feature_extraction.text import TfidfVectorizer
# ์ํ ๋ฌธ์
documents = [
"I love machine learning. Machine learning is amazing.",
"Natural language processing is a part of AI.",
"Deep learning advances AI and machine learning."
]
# TF-IDF ๋ณํ๊ธฐ ์์ฑ
vectorizer = TfidfVectorizer()
tfidf_matrix = vectorizer.fit_transform(documents)
# ๋จ์ด ๋ชฉ๋ก ์ถ๋ ฅ
print("TF-IDF ๋จ์ด ๋ชฉ๋ก:", vectorizer.get_feature_names_out())
# ๊ฐ ๋ฌธ์์ TF-IDF ๊ฐ ์ถ๋ ฅ
print("TF-IDF ํ๋ ฌ:\n", tfidf_matrix.toarray())
โ ์ค๋ช :
TfidfVectorizer()
๋ฅผ ์ฌ์ฉํด ๋ฌธ์๋ฅผ ๋ฒกํฐ๋ก ๋ณํ.fit_transform()
์ ํตํด TF-IDF ๊ฐ์ ๊ณ์ฐ.toarray()
๋ฅผ ์ด์ฉํด ๋ณํ๋ ํ๋ ฌ์ ์ถ๋ ฅ.import pandas as pd
# TF-IDF ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ดํฐํ๋ ์์ผ๋ก ๋ณํ
df = pd.DataFrame(tfidf_matrix.toarray(), columns=vectorizer.get_feature_names_out())
print(df)
๐ ์ถ๋ ฅ ์์
ai | advances | amazing | deep | is | learning | love | machine | natural | part | processing | |
---|---|---|---|---|---|---|---|---|---|---|---|
๋ฌธ์ 1 | 0 | 0 | 0.52 | 0 | 0 | 0.37 | 0.52 | 0.37 | 0 | 0 | 0 |
๋ฌธ์ 2 | 0.42 | 0 | 0 | 0 | 0.42 | 0 | 0 | 0 | 0.42 | 0.42 | 0.42 |
๋ฌธ์ 3 | 0.33 | 0.46 | 0 | 0.46 | 0 | 0.33 | 0 | 0.33 | 0 | 0 | 0 |
โ ์ค๋ช :
TF-IDF ๋ฒกํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌธ์ ๊ฐ ์ ์ฌ๋๋ฅผ ์ธก์ ํ ์๋ ์์ต๋๋ค.
from sklearn.metrics.pairwise import cosine_similarity
# ๋ฌธ์ ๊ฐ ์ฝ์ฌ์ธ ์ ์ฌ๋ ๊ณ์ฐ
cos_sim = cosine_similarity(tfidf_matrix)
print("๋ฌธ์ ๊ฐ ์ฝ์ฌ์ธ ์ ์ฌ๋:\n", cos_sim)
โ ์ถ๋ ฅ ์์
๋ฌธ์ ๊ฐ ์ฝ์ฌ์ธ ์ ์ฌ๋:
[[1. 0.118 0.529]
[0.118 1. 0.206]
[0.529 0.206 1. ]]
โ ์ค๋ช :
cosine_similarity()
๋ฅผ ์ด์ฉํด ๋ฌธ์ ๊ฐ ์ ์ฌ๋๋ฅผ ์ธก์ .๊ธฐ๋ฒ | ์ค๋ช | ์ฅ์ | ๋จ์ |
---|---|---|---|
TF-IDF | ๋จ์ด ๋น๋ ๊ธฐ๋ฐ ๊ฐ์ค์น ๋ถ์ฌ | ๋น ๋ฅด๊ณ ๊ฐ๋จํจ | ๋ฌธ๋งฅ ๊ณ ๋ ค X |
Word2Vec | ๋จ์ด์ ์๋ฏธ๋ฅผ ๋ฒกํฐ๋ก ๋ณํ | ์๋ฏธ์ ๊ด๊ณ ๋ฐ์ ๊ฐ๋ฅ | ๋ฌธ์ฅ ์ ์ฒด ๋ถ์ ์ด๋ ค์ |
BERT | ๋ฌธ์ฅ ๋จ์์ ์๋ฏธ ํ์ต | ๋ฌธ๋งฅ์ ๊ณ ๋ คํ ์๋ฏธ ๋ถ์ ๊ฐ๋ฅ | ๋ชจ๋ธ์ด ํฌ๊ณ ๋๋ฆผ |
โ TF-IDF๋ ๋น ๋ฅด๊ณ ํจ์จ์ ์ด์ง๋ง, ๋จ์ด ๊ฐ ์๋ฏธ๋ฅผ ๋ฐ์ํ์ง ๋ชปํ๋ฏ๋ก Word2Vec, BERT ๊ฐ์ ๋ฐฉ๋ฒ๊ณผ ํจ๊ป ์ฌ์ฉํ๋ฉด ๋์ฑ ์ ๊ตํ NLP ๋ถ์์ด ๊ฐ๋ฅ!
โ ๊ฒ์ ์์ง: ๊ฒ์์ด์ ๋ฌธ์ ๊ฐ ์ ์ฌ๋๋ฅผ ๊ณ์ฐํ์ฌ ๊ฒฐ๊ณผ ์ ๋ ฌ
โ ๋ฌธ์ ๋ถ๋ฅ: ๋ด์ค, ์ด๋ฉ์ผ, ๋ฆฌ๋ทฐ ๋ฑ์ ์๋ ๋ถ๋ฅ
โ ์คํธ ํํฐ๋ง: ์คํธ ๋ฉ์ผ๊ณผ ์ ์ ๋ฉ์ผ์ TF-IDF ํจํด์ ๋น๊ตํ์ฌ ๋ถ๋ฅ
โ ๊ฐ์ ๋ถ์: ํ
์คํธ์์ ๊ธ์ /๋ถ์ ํค์๋์ ์ค์๋ ๋ถ์
์๋์ฐ ์ด์์ฒด์ ์ ๋ ธํธ๋ถ์์๋ iPhone ์ ์ ํ ๋๋ง์ด ์ ์๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋ณดํต iPhone์ ๋๋ผ์ด๋ฒ๊ฐ ์ค์น๊ฐ ์๋์์ด์์ธ…
์ค๋ผํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฑ๋ฅ์ ๋ ผํ ๋, ๋ด๋ถ์ ์ผ๋ก ๋ฐ์ํ๋ ๊ฒฝํฉ(Contention)์ ํผํ ์ ์๋ ์ฃผ์ ๋ค. ํนํ ๋ค์์ ํ๋ก์ธ์ค๊ฐ…
์๋ ํ์ธ์, ํน์ ์ด๋ฐ ์๊ฐํด ๋ณธ ์ ์์ผ์ ๊ฐ์? "๋ด๊ฐ ํฌ์ํ ํ์ฌ๋ ๋๊ฐ ๊ฐ์ํ๊ณ , ์ด๋ป๊ฒ ์ด์๋ ๊น?" ์ค๋์…
'๋ฒกํฐ ์คํ ์ด' ์๋ฒฝ ๊ฐ์ด๋: AI ์๋, ๋ฐ์ดํฐ์ ์๋ก์ด ์ฌ์ฅ์ ๋ง๋๋ค IT ์ ๊ณ๋ ์ธ๊ณต์ง๋ฅ(AI)์ด๋ผ๋ ๊ฑฐ๋ํ ํจ๋ฌ๋ค์์…
1. Gemini CLI๋ ๋ฌด์์ธ๊ฐ์? Gemini CLI๋ ํฐ๋ฏธ๋ ํ๊ฒฝ์์ ์ง์ Gemini ๋ชจ๋ธ๊ณผ ์ํธ์์ฉํ ์ ์๋๋ก ๋ง๋ค์ด์ง…
๊ณผ์ ํฉ์ ๋จธ์ ๋ฌ๋์์ ํ์ต์ฉ๋ฐ์ดํฐ๋ฅผ ๊ณผํ๊ฒ ํ์ตํ์ฌ, ์ค์ ๋ฐ์ดํฐ๋ฅผ ์์ธกํ์ง ๋ชปํ๋ ํ์์ ๋งํฉ๋๋ค. ์ธ๊ณต์ง๋ฅ(AI)์ ํ์ต ๋ฐฉ๋ฒ์ ์ฐ๋ฆฌ๊ฐ ์ํ๊ณต๋ถ๋ฅผ…