티스토리 뷰

0. 특징 추출 모듈

자연어 처리에서 특징 추출이란? 텍스트 데이터에서 단어나 문장들을 어떤 특징 값으로 바꿔주는 것을 의미

기존에 문자로 구성되어 있던 데이터를 모델에 적용할 수 있도록 특징을 뽑아 어떤값으로 바꿔서 수치화

  • CountVectorizer - 단순히 각 테스트에서 횟수를 기준으로 특징 추출
  • TfidVectorizer - TF-IDF라는 값을 사용해 텍스트에서 특징 추출
  • HashingVectorizer - CounterVectorizer와 동일하지만 해시 함수를 사용, 텍스트의 크기가 클수록 HashingVectorizer 사용하는게 효율적 

 

 

1. CountVectorizer 

  • 텍스트 데이터에서 횟수를 기준으로 특징을 추출하는 방법
  • 어떤 단위의 횟수를 선택하는지는 선택사항
  • 횟수를 사용해서 벡터를 만들기 때문에 직관적이고 간단해서 여러 상황에서 사용할 수 있음
  • 하지만 횟수만을 특징으로 잡기 때문에 큰 의미가 없지만 자주 사용되는 단어들, 조사 또는 지시 대명사가 높은 값을 가지기 때문에 유의미하게 사용하기 어려울 수 있음 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from sklearn.feature_extraction.text import CountVectorizer
text_data = ['나는 배가 고프다''내일 저녁 뭐먹지''내일 학교 와야하나''저녁 먹고 뭐먹지']
count_vectorizer = CountVectorizer()
count_vectorizer.fit(text_data)
print(count_vectorizer.vocabulary_)
 
"""
{'나는': 1, '배가': 5, '고프다': 0, '내일': 2, '저녁': 7, 
'뭐먹지': 4, '학교': 8, '와야하나': 6, '먹고': 3}
"""
 
sentence = [text_data[0]]
print(count_vectorizer.transform(sentence).toarray())
"""
[[1 1 0 0 0 1 0 0 0]]
"""
cs

 

 

 

2. TfidVectorizer 

  • TF-IDF라는 특정한 값을 사용해서 텍스트 데이터의 특징을 추출하는 방법
  • TF(Term Frequency)? 특정 단어가 하나의 데이터 안에서 등장하는 횟수
  • DF(Document Frequency)? 문서 빈도 값으로, 특정 단어가 여러 데이터에 자주 등장하는지를 알려주는 지표
  • IDF(Inverse Document Frequency)? DF값에 역수를 취해서 구할 수 있으며, 특정 단어가 다른 데이터에 등장하지 않을수록 값이 커진다. 
  • 단순 횟수를 이용하는 것보다 각 단어의 특성을 좀 더 반영할 수 있다 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from sklearn.feature_extraction.text import TfidfVectorizer 
text_data = ['나는 배가 고프다''내일 저녁 뭐먹지''내일 학교 와야하나''저녁 먹고 뭐먹지']
tfidf_vectorizer = TfidfVectorizer()
tfidf_vectorizer.fit(text_data)
print(tfidf_vectorizer.vocabulary_)
 
"""
{'나는': 1, '배가': 5, '고프다': 0, '내일': 2, '저녁': 7, '뭐먹지': 4, '학교': 8, '와야하나': 6, '먹고': 3}
 
"""
 
sentence = [text_data[0]]
print(tfidf_vectorizer.transform(sentence).toarray())
"""
[[0.57735027 0.57735027 0.         0.         0.         0.57735027
  0.         0.         0.        ]]
 
"""
cs

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<출처>

1. 텐서플로와 머신러닝으로 시작하는 자연어 처리

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함