문제 1: TF vs TF-IDF

Q1-1.

단어 ’data’의 TF-IDF 점수가 가장 높을 가능성이 있는 문서는 A이다. 빈도(TF)는 B 문서도 더 높지만 문서 B 에서는 data가 과도하게 반복되어 다른 단어와의 균형이 무너질 수 있어 있으므로 TF-IDF 점수에서 상대적으로 낮게 반영될 수 있다. 반면 문서 A는 data와 science 두 단어가 균형 있게 등장하므로 TF-IDF 점수가 더 높을 수 있다.

Q1-2.

문서 C에서 단어 ’model’의 TF 값은 6이다. 해당 단어의 IDF가 높다는 것은 model이라는 단어가 다른 문서들에서 거의 등장하지 않고 문서 C에서만 특이하게 등장하는 단어라는 뜻이다.

문제 2: R을 활용한 실습

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(tidytext)
# 예제 데이터
text_df <- tibble(
  document = c("A", "B", "C"),
  text = c("data science is fun", 
           "data model data", 
           "model and science"))

# 토큰화 및 불용어 제거
data("stop_words")
tidy_tokens <- text_df %>% 
  unnest_tokens(word, text) %>% 
  anti_join(stop_words, by = "word")

# TF-IDF 계산
tfidf_result <- tidy_tokens %>% 
  count(document, word, sort = TRUE) %>% 
  bind_tf_idf(word, document, n)
tfidf_result
## # A tibble: 7 × 6
##   document word        n    tf   idf tf_idf
##   <chr>    <chr>   <int> <dbl> <dbl>  <dbl>
## 1 B        data        2 0.667 0.405  0.270
## 2 A        data        1 0.333 0.405  0.135
## 3 A        fun         1 0.333 1.10   0.366
## 4 A        science     1 0.333 0.405  0.135
## 5 B        model       1 0.333 0.405  0.135
## 6 C        model       1 0.5   0.405  0.203
## 7 C        science     1 0.5   0.405  0.203

Q2-1.

가장 높은 TF-IDF 점수를 가진 단어는 0.366으로 fun이고 A 문서에만 등장하는 단어이다.

Q2-2.

TF 점수는 높지만 IDF 점수가 낮은 단어는 대부분의 문서에 등장하지만 특정 문서에서 많이 등장하는 특성을 가지고 있다.

문제 3: 개념 요약

Q3-1.

TF-IDF는 문서에서 특정 단어가 얼마나 중요한지를 판단할 때 유용하다. 예를 들어 뉴스 기사 분류, 텍스트 요약, 키워드 추출 등을 들 수 있다.

Q3-2.

TF만 사용할 때 발생할 수 있는 문제점은 단순히 자주 등장하는 단어만 강조하게 되므로 문서 간 차별성이 적은 일반적인 단어도 중요하게 판단될 수 있다. 따라서 단어의 문서 간 차별력을 고려할 수 없다.