TfIdf: 텍스트 변환의 또 다른 방법

Python으로 배우는 Sentiment Analysis

Violeta Misheva

Data Scientist

TfIdf의 구성 요소는?

  • TF: 단어 빈도: 코퍼스에서 한 문서 내 특정 단어가 등장하는 횟수

  • 역문서 빈도 (IDF): 전체 문서 수 대비 특정 단어를 포함한 문서 수의 로그 비율

    • 드물게 등장하는 단어에 더 높은 가중치를 부여
Python으로 배우는 Sentiment Analysis

단어의 TfIdf 점수

  • TfIdf 점수:
TfIdf = term frequency * inverse document frequency
  • BOW는 문서 길이를 반영하지 않지만, TfIdf는 반영합니다.
  • TfIdf는 문서 내에서는 흔하지만 문서 간에는 드문 단어를 잘 포착합니다.
Python으로 배우는 Sentiment Analysis

TfIdf는 어떻게 유용한가요?

트위터 항공사 감성
  • 낮은 TfIdf: United, Virgin America
  • 높은 TfIdf: check-in process (문서 전반에 드물 경우)
TfIdf 더 알아보기
  • 자주 등장하는 단어를 패널티 주므로 불용어를 별도로 처리할 필요가 줄어듭니다.
  • 검색/정보검색에서 결과 관련도 랭킹에 유용합니다.
Python으로 배우는 Sentiment Analysis

Python에서 TfIdf

# Import the TfidfVectorizer
from sklearn.feature_extraction.text import TfidfVectorizer
  • TfidfVectorizer 인자: max_features, ngram_range, stop_words, token_pattern, max_df, min_df
vect = TfidfVectorizer(max_features=100).fit(tweets.text)
X = vect.transform(tweets.text)
Python으로 배우는 Sentiment Analysis

TfidfVectorizer

X
<14640x100 sparse matrix of type '<class 'numpy.float64'>'
    with 119182 stored elements in Compressed Sparse Row format>
X_df = pd.DataFrame(X_txt.toarray(), columns=vect.get_feature_names())
X_df.head()

TfIdf로 생성된 데이터 상위 5행

Python으로 배우는 Sentiment Analysis

연습해 봅시다!

Python으로 배우는 Sentiment Analysis

Preparing Video For Download...