1. 네이버 영화평 크롤링 및 긍정/부정 평가 나누기 (레미제라블) - R 사용
https://truman.tistory.com/163?category=853967
2. 긍정/부정 평가 텍스트 파일로 저장하기 - R 사용
# 긍정/부정 평가 데이터프레임으로 만들기 df_po <- data.frame(po) df_ne <- data.frame(ne) |
|
# 컬럼 이름 지정
colnames(df_ne) <- c('text') df_ne$label <- c('부정') df_necolnames(df_ne) |
|
# 데이터프레임 합치기 |
|
# 텍스트 파일로 저장하기 |
3. nltk를 사용해서 새로운 영화평 긍정/부정 예측 - 파이썬 사용
# 데이터 불러오기 data = pd.read_csv("C:/data/movie_ham.txt",header=None, encoding="CP949") data.info() |
|
# 컬럼 이름 변경 data.columns = ['feature','label'] data.columns |
|
# 데이터 모양 바꾸기 train = [(feature,label) for index,(feature,label) in data.iterrows()] train |
|
# 사전 만들기 allword = set(word for sentence in train for word in word_tokenize(sentence[0])) |
|
# 사전에 문장에 있는 단어가 있으면 True, 없으면 False t = [({word : (word in word_tokenize(x[0])) for word in allword},x[1]) for x in train] |
|
# 단어별 긍정 부정 비율 확인 |
|
# 단어들만 뽑기 def tokenize(doc): return ['/'.join(i) for i in pos_tagger.pos(doc, norm=True, stem=True)]
train_doc = [(tokenize(i[0]),i[1])for i in train] train_doc |
|
# 긍정,부정을 뺀 부분만 뽑아내기 tokens = [t for i in train_doc for t in i[0]] |
|
def term_exists(doc): # 있으면 True 없으면 False train_x = [(term_exists(x),y) for x,y in train_doc]
model = nltk.NaiveBayesClassifier.train(train_x) model.show_most_informative_features() |
|
# 테스트 데이터 만들기 test = [("최고의 영화입니다")] test_doc = tokenize(test[0]) # 테스트 해보기 test_f = {word:(word in tokens) for word in test_doc} model.classify(test_f) |
'인공지능 > 머신러닝' 카테고리의 다른 글
의사결정트리를 이용한 타이타닉 데이터셋 분석 (0) | 2020.05.19 |
---|---|
의사결정트리 (0) | 2020.05.18 |
NLTK 자연어 처리 패키지 사용 (0) | 2020.05.14 |
베르누이 나이브베이즈 (0) | 2020.05.14 |
붓꽃 데이터 (iris.csv) 분석하기 / 가우시안 나이브베이즈 (0) | 2020.05.13 |