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 |