단어문서행렬과 형태소 분석

Python을 통한 단어문서행렬과 형태소 분석


수강중

2. 다운로드

파일 다운로드

requests를 불러온다.

import requests

UCI 머신러닝 리포지토리에서에 Sentiment Labelled Sentences 데이터를 요청한다.

res = requests.get('https://archive.ics.uci.edu/ml/machine-learning-databases/00331/sentiment%20labelled%20sentences.zip')

sentiment.zip이라는 파일을 만들고, 응답의 내용(res.content)를 파일에 쓴다.

with open('sentiment.zip', 'wb') as f:
    f.write(res.content)

압축 파일 열기

파이썬의 내장 모듈인 zipfile을 이용하면 압축 파일을 열 수 있다.

from zipfile import ZipFile

sentiment.zip을 연다.

z = ZipFile('sentiment.zip')

sentiment.zip 안에 sentiment labelled sentences라는 폴더가 있고, 그 안에 imdb_labelled.txt라는 파일이 있다. 이 파일을 연다.

data = z.open('sentiment labelled sentences/imdb_labelled.txt')

데이터 불러오기

데이터는 CSV 포맷이므로 pandas 라이브러리를 이용해 연다.

import pandas as pd

이 자료는 탭(TAB, \t)으로 구분이 이뤄져있으므로 sep="\t" 옵션을 사용한다. 또, 파일 상단에 열 이름이 없으므로 header=None 옵션을 설정해야 한다.

df = pd.read_csv(data, sep="\t", header=None)

df.head로 불러온 데이터의 첫 다섯 행을 확인한다.

df.head()
0 1
0 A very, very, very slow-moving, aimless movie ... 0
1 Not sure who was more lost - the flat characte... 0
2 Attempting artiness with black & white and cle... 0
3 Very little music or anything to speak of. 0
4 The best scene in the movie was when Gerardo i... 1

0번 컬럼은 영화에 대한 한줄 평이고, 1번 컬럼은 영화에 대해 긍정(1)/부정(0)의 태도이다.

컬럼 이름을 review, sentiment라고 붙여준다.

df.columns = ['review', 'sentiment']

저장하기

나중에 분석에 사용하기 위해 엑셀 파일로 저장한다.

df.to_excel('imdb.xlsx')