변수 corpus의 출력 결과를 보면 네 문장이 모두 잘 담겼다. 당연하다고 생각할 수도 있지만 이렇게 당연한 것에서도 오류가 날 수 있기 때문에 확인하는 습관을 갖는 것이 좋다.
데이터가 완성됐으므로 이제 sklearn.feature_extraction.text의 CountVectorizer()를 통해 BOW 인코딩 벡터를 만든다.
from sklearn.feature_extraction.text import CountVectorizer
다음으로 문장에서 노출되는 feature(특징이 될 만한 단어) 수를 합한 문서 단어 행렬(Document Term Matrix, 이하 dtm)을 반환하고, fit()으로 문서에 있는 모든 토큰의 단어 사전을 학습시킨다. 마지막으로 transform()으로 문서를 단어 빈도수가 들어 있는 단어-문서 행렬로 변환한다.
cvect = CountVectorizer() cvect.fit(corpus) dtm = cvect.transform(corpus) dtm
실행 결과
<4x9 sparse matrix of type '<class 'numpy.int64'>' with 14 stored elements in Compressed Sparse Row format>