Python 튜토리얼

Lv1 전처리 13/14 python 파이썬 TF-IDF (1)

2021.10.05 14:39 6,190 조회

안녕하세요 여러분! 👨‍🏫👩‍🏫

이번시간에는 BOW의 TF-IDF(Term Frequency - Inverse Document Frequency)에 대해 알아 보겠습니다.


이전에 설명한 카운트 기반 벡터화는 숫자가 높을 수록 중요한 단어로 인식합니다. 하지만 단순히 단어의 빈도만 고려한다면 모든 문서에서 자주 쓰일 수 밖에 없는 단어들이 중요하다고 인식 될 수 있습니다. 이런 문제를 보완하기 위해 TF-IDF(Term Frequency - Inverse Document Frequency) 벡터화를 사용합니다.


TF-IDF는 개별 문서에서 자주 등장하는 단어에는 높은 가중치를, 모든 문서에서 자주 등장하는 단어에 대해서는 패널티를 주는 방식으로 값을 부여 합니다.

예를 들어 총 5개의 문서가 있다고 가정하면, 딥러닝이라는 단어는 5개 문서에서 모두 등장하고, 머신러닝이라는 단어는 1번문서에서만 빈번히 등장한다고 했을때, TF-IDF의 값은 딥러닝이란 단어는 낮게 부여 되고 머신러닝이라는 단어는 높게 부여 됩니다.


문서의 양이 많을경우 보통 TF-IDF 방식의 벡터화를 사용합니다.  


TF-IDF의 사용 방법은 CountVectorizer와 크게 다르지 않습니다

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

# 라이브러리 로딩

from sklearn.feature_extraction.text import TfidfVectorizer


corpus = [

    'This is the first document.',

    'This is the second second document.',

    'And the third one.'

]


tfidf = TfidfVectorizer()

print(tfidf.fit_transform(corpus).toarray()) # corpus 리스트 내부 텍스트로 부터 각 TF-idf 를 계산합니다.

print(tfidf.vocabulary_)# 각 단어의 인덱스가 어떻게 부여되었는지를 보여줍니다.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

output :

[[0.         0.43306685 0.56943086 0.43306685 0.         0.

  0.33631504 0.         0.43306685]

[0.         0.30833187 0.         0.30833187 0.         0.81083871

  0.2394472  0.         0.30833187]

[0.54645401 0.         0.         0.         0.54645401 0.

  0.32274454 0.54645401 0.        ]]

{'this': 8, 'is': 3, 'the': 6, 'first': 2, 'document': 1, 'second': 5, 'and': 0, 'third': 7, 'one': 4}

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

다음 시간에는 TfidfVectorizer()와 청와대 청원 데이터를 이용하여 실습을 진행해 보도록 하겠습니다.💫💫


↩️ 오늘의 파이썬 리스트


#데이콘_101 #AI #머신러닝 #딥러닝 #파이썬 #파이선 #데이터분석 #데이터사이언티스트 #코랩 #Python #colab #kaggle #pandas #numpy #sckit-learn  #TfidfVectorizer


로그인이 필요합니다
0 / 1000
moran
2022.01.04 15:45

dbnoid
2022.01.20 13:18

acebed
2022.03.11 14:51

done

비회원
2022.04.07 11:13

krooner
2022.05.20 01:05

highllight
2023.02.12 16:54