본문 바로가기
Intern(AllBigDat)

[NLP] Count Vectorizer 사용법

by jinwooahn 2021. 7. 13.
728x90

CountVectorizer

sklearn에서 제공하는 텍스트 마이닝 툴이다.

 

해당 툴을 통해 할 수 있는 것은 다음과 같다.

 

1. 주어진 단어들을 빈도수 기반으로 하여 (희소)행렬로 만들어준다. 

2. Vocabulary 또한 추출해준다.

 

예시는 아래와 같다

 

from sklearn.feature_extraction.text import CountVectorizer


corpus = [
    "철수는 통계학과에 다닌다. 아 아이구",
    "빅데이터 분석에 필요한 것은 통계학적 지식과 프로그래밍 능력이다.",
    "4차산업의 핵심기술로 인공지능과 빅데이터가 있다.",
    "텍스트자료는 빅데이터에서 중요한 재료이다."
    ]

#단어들의 빈도수 기반으로 행렬을 만들어줌, vocab구축도 가능, 영어의 경우 소문자로 다 변환하여 인식
vector = CountVectorizer() # default: 길이가 2이상인 단어만 추출, 띄어쓰기만을 기준


#희소 행렬로 만들어준다
print(vector.fit_transform(corpus)) #희소 행렬은 대부분 0이기 때문에 크기를 줄이기 위해, 1이 존재하는 곳을 튜플로 나타냄
print(vector.fit_transform(corpus).toarray()) #직접 볼 수 있다.

#아래는 에러가 난다. vector.fit_transform() 은 list를 인자로 받아야 함을 알 수 있다.
# print(vector.fit_transform(corpus[0]))

print(vector.vocabulary_)

print(vector.vocabulary_.keys())

 

결과는 아래와 같다. 

 

1. print(vector.fit_transform(corpus))

 

희소 행렬은 0이 대부분인 행렬이기 때문에 1이 들어있는 위치를 좌표로 저장하여 기본적으로 저장하게 된다.

 

2. print(vector.fit_transform(corpus).toarray())

 

위에서 기본적으로 1이 들어있는 좌표를 저장하였지만, 행렬을 보고 싶으면 .toarray()를 통해 볼 수 있다.

 

 

3. print(vector.vocablualry_)

 

문서가 가지고 있는 단어들을 dictionary 형태로 볼 수 있다.  이를 리스트 형태로 보려면 .keys()을 해주면 된다.

 

728x90

'Intern(AllBigDat)' 카테고리의 다른 글

[NLP]빠르게 불용어 제거하기  (0) 2021.07.13
VS code 글자 수 맞추기  (0) 2021.06.25
Chrome Webdriver Manager  (0) 2021.06.23
Formatter 'black' 사용기  (0) 2021.06.22
Flake 8 사용기  (0) 2021.06.22