close_btn
조회 수 4333 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

이번 세미나 주제는 tf-idf 알고리즘입니다.



#### 설명 ####

tf-idf는 어떤 문서 집단 내 한 문서에서 단어들의 중요도를 나타내주는 알고리즘입니다.


tf : term frequency ( 한 문서에서 단어의 빈도 수 )

idf : inverse document frequency 입니다. ( 전체 문서 집단 내에서 어떤 단어가 포함 된 문서 비율의 역수 )


tf-idf 값은 tf 값과 idf값의 곱으로 나타낸 값입니다. 

어떤 단어가 A라는 문서에서 중요도가 높으려면 A라는 문서에서 단어의 빈도수가 높아야 합니다.

또한 전체 문서 집단 내에서 그 단어가 A에만 집중돼서 나타난다면 그 단어는 A에게 중요한 단어일 가능성이 큽니다.


#### 코드 #### (출처 : http://tidytextmining.com/tfidf.html)


library(dplyr)

library(janeaustenr)

library(tidytext)


book_words <- austen_books() %>%

  unnest_tokens(word, text) %>%

  count(book, word, sort = TRUE) %>%

  ungroup()


total_words <- book_words %>% 

  group_by(book) %>% 

  summarize(total = sum(n))


book_words <- left_join(book_words, total_words)


book_words


## # A tibble: 40,379 × 4

##                 book  word     n  total

##               <fctr> <chr> <int>  <int>

## 1     Mansfield Park   the  6206 160460

## 2     Mansfield Park    to  5475 160460

## 3     Mansfield Park   and  5438 160460

## 4               Emma    to  5239 160996

## 5               Emma   the  5201 160996

## 6               Emma   and  4896 160996

## 7     Mansfield Park    of  4778 160460

## 8  Pride & Prejudice   the  4331 122204

## 9               Emma    of  4291 160996

## 10 Pride & Prejudice    to  4162 122204

## # ... with 40,369 more rows



###bind_tf_idf라는 함수를 통해 쉽게 tf-idf값을 구할 수 있습니다.###

book_words <- book_words %>%

  bind_tf_idf(word, book, n)

book_words


## # A tibble: 40,379 × 7

##                 book  word     n  total         tf   idf tf_idf

##               <fctr> <chr> <int>  <int>      <dbl> <dbl>  <dbl>

## 1     Mansfield Park   the  6206 160460 0.03867631     0      0

## 2     Mansfield Park    to  5475 160460 0.03412065     0      0

## 3     Mansfield Park   and  5438 160460 0.03389007     0      0

## 4               Emma    to  5239 160996 0.03254118     0      0

## 5               Emma   the  5201 160996 0.03230515     0      0

## 6               Emma   and  4896 160996 0.03041069     0      0

## 7     Mansfield Park    of  4778 160460 0.02977689     0      0

## 8  Pride & Prejudice   the  4331 122204 0.03544074     0      0

## 9               Emma    of  4291 160996 0.02665284     0      0

## 10 Pride & Prejudice    to  4162 122204 0.03405780     0      0

## # ... with 40,369 more rows


book_words %>%

  select(-total) %>%

  arrange(desc(tf_idf))


## # A tibble: 40,379 × 6

##                   book      word     n          tf      idf      tf_idf

##                 <fctr>     <chr> <int>       <dbl>    <dbl>       <dbl>

## 1  Sense & Sensibility    elinor   623 0.005193528 1.791759 0.009305552

## 2  Sense & Sensibility  marianne   492 0.004101470 1.791759 0.007348847

## 3       Mansfield Park  crawford   493 0.003072417 1.791759 0.005505032

## 4    Pride & Prejudice     darcy   373 0.003052273 1.791759 0.005468939

## 5           Persuasion    elliot   254 0.003036207 1.791759 0.005440153

## 6                 Emma      emma   786 0.004882109 1.098612 0.005363545

## 7     Northanger Abbey    tilney   196 0.002519928 1.791759 0.004515105

## 8                 Emma    weston   389 0.002416209 1.791759 0.004329266

## 9    Pride & Prejudice    bennet   294 0.002405813 1.791759 0.004310639

## 10          Persuasion wentworth   191 0.002283132 1.791759 0.004090824

## # ... with 40,369 more rows


library(ggplot2)


plot_austen <- book_words %>%

  arrange(desc(tf_idf)) %>%

  mutate(word = factor(word, levels = rev(unique(word))))


plot_austen %>% 
  group_by(book) %>% 
  top_n(15) %>% 
  ungroup %>%
  ggplot(aes(word, tf_idf, fill = book)) +
  geom_col(show.legend = FALSE) +
  labs(x = NULL, y = "tf-idf") +
  facet_wrap(~book, ncol = 2, scales = "free") +
  coord_flip()

##문서 별로 단어의 중요도를 tf-idf로 나타내 본 결과입니다.##

Highest tf-idf words in each of Jane Austen's Novels


List of Articles
번호 제목 글쓴이 날짜 조회 수
» 텍스트 마이닝 3장 - Analyzing word and document frequency: tf-idf 곽대훈 2017.05.20 4333
6 텍스트 마이닝 4장 - Relationships between words file 연다인 2017.05.17 4640
5 텍스트 마이닝 5장 - tidying and casting dtm and corpus objects file 유누리 2017.05.14 5469
4 텍스트 마이닝 2장 감성분석 1 file 호잇짜 2017.04.11 14075
3 3/29 텍스트마이닝 - 파이썬 기초1 1 file 2017.04.05 5720
2 3/29 텍스트마이닝 1장 tidy text format 1 file cys109 2017.04.05 4738
1 3/29 텍스트 마이닝 - 파이썬 기초 2 2 file 허능호 2017.04.03 4701
Board Pagination ‹ Prev 1 Next ›
/ 1

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5