{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Chap03-Extra. 영화 리뷰 분류: KoNLPy를 통한 한국어 리뷰 분석\n", "이번에는 KoNLPy와 nltk, 그리고 keras를 이용해서 한국어 영화 리뷰를 분석해보겠습니다. \n", "훈련하기 알맞게 데이터를 전처리 하는 과정 이후에는 저번에 했던 이진 분류 문제와 같습니다. \n", "데이터셋은 [Naver sentiment movie corpus](http://github.com/e9t/nsmc/)를 이용하겠습니다. \n", "
\n", "이 데이터셋은 네이버 영화의 리뷰 중 영화당 100개의 리뷰를 모아 총 200,000개의 리뷰(train: 15만, test: 5만)로 이루어져있고, \n", "1~10점까지의 평점 중에서 중립적인 평점(5~8점)은 제외하고 1~4점을 긍정으로, 9~10점을 부정으로 동일한 비율로 데이터에 포함시켰습니다.\n", "![](./images/nsmc_dataset.png)\n", "\n", "
\n", "\n", "데이터는 다음과 같이 id, document, label 세 개의 열로 이루어져있습니다. \n", "id는 리뷰의 고유한 key 값이고, document는 리뷰의 내용, label은 긍정(0)인지 부정(1)인지를 나타냅니다. \n", "txt로 저장된 데이터를 처리하기 알맞게 list 형식으로 받아서 사용하겠습니다. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "id\tdocument\tlabel\n", "9976970\t아 더빙.. 진짜 짜증나네요 목소리\t0\n", "3819312\t흠...포스터보고 초딩영화줄....오버연기조차 가볍지 않구나\t1\n", "10265843\t너무재밓었다그래서보는것을추천한다\t0\n", "9045019\t교도소 이야기구먼 ..솔직히 재미는 없다..평점 조정\t0\n", "6483659\t사이몬페그의 익살스런 연기가 돋보였던 영화!스파이더맨에서 늙어보이기만 했던 커스틴 던스트가 너무나도 이뻐보였다\t1\n", "5403919\t막 걸음마 뗀 3세부터 초등학교 1학년생인 8살용영화.ㅋㅋㅋ...별반개도 아까움.\t0\n", "7797314\t원작의 긴장감을 제대로 살려내지못했다.\t0\n", "9443947\t별 반개도 아깝다 욕나온다 이응경 길용우 연기생활이몇년인지..정말 발로해도 그것보단 낫겟다 납치.감금만반복반복..이드라마는 가족도없다 연기못하는사람만모엿네\t0\n", "7156791\t액션이 없는데도 재미 있는 몇안되는 영화\t1\n", "cat: stdout: Broken pipe\n" ] } ], "source": [ "cat ../datasets/nsmc/ratings_train.txt | head -n 10" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def read_data(filename):\n", " with open(filename, 'r') as f:\n", " data = [line.split('\\t') for line in f.read().splitlines()]\n", " # txt 파일의 헤더(id document label)는 제외하기\n", " data = data[1:]\n", " return data\n", "\n", "train_data = read_data('../datasets/nsmc/ratings_train.txt')\n", "test_data = read_data('../datasets/nsmc/ratings_test.txt')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "데이터가 제대로 불러와졌는지 확인해봅시다." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "150000\n", "3\n", "50000\n", "3\n" ] } ], "source": [ "print(len(train_data))\n", "print(len(train_data[0]))\n", "print(len(test_data))\n", "print(len(test_data[0]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "이제 데이터를 학습하기에 알맞게 처리를 해볼텐데요, **KoNLPy 라이브러리**를 이용해서 형태소 분석 및 품사 태깅을 하겠습니다. \n", "이전 예제처럼 주어진 단어의 빈도만을 사용해서 처리해도 되지만 한국어는 영어와는 달리 띄어쓰기로 의미를 구분짓기에는 한계가 있고, \n", "네이버 영화 데이터에는 맞춤법이나 띄어쓰기가 제대로 되어있지 않은 경우가 있기 때문에 정확한 분류를 위해서 KoNLPy를 이용하겠습니다. \n", "
\n", "KoNLPy는 띄어쓰기 알고리즘과 정규화를 이용해서 맞춤법이 틀린 문장도 어느 정도 고쳐주면서 형태소 분석과 품사를 태깅해주는 여러 클래스를 제공합니다. [링크](https://konlpy-ko.readthedocs.io/ko/v0.4.3/morph/)참조 \n", "그 중에서 **Okt(Open Korean Text)** 클래스를 이용하겠습니다. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'0.5.1'" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import konlpy\n", "\n", "konlpy.__version__" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Okt를 이용해서 간단하게 문장을 분석해보겠습니다." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[('이', 'Noun'), ('밤', 'Noun'), ('그날', 'Noun'), ('의', 'Josa'), ('반딧불', 'Noun'), ('을', 'Josa'), ('당신', 'Noun'), ('의', 'Josa'), ('창', 'Noun'), ('가까이', 'Noun'), ('보낼게요', 'Verb')]\n" ] } ], "source": [ "from konlpy.tag import Okt\n", "\n", "okt = Okt()\n", "print(okt.pos(u'이 밤 그날의 반딧불을 당신의 창 가까이 보낼게요'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "이제 아까 불러온 데이터에 형태소 분석을 통해서 품사를 태깅해주는 작업을 하겠습니다. \n", "데이터의 양이 큰 만큼 시간이 오래 걸리기 때문에 이 작업을 반복하지 않도록 한 번 태깅을 마친 후에는 json 파일로 저장하는 것을 추천합니다. \n", "여기에서는 이미 태깅이 완료된 `train_docs.json` 파일이 존재하면 반복하지 않도록 만들었습니다." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[['아/Exclamation',\n", " '더빙/Noun',\n", " '../Punctuation',\n", " '진짜/Noun',\n", " '짜증나다/Adjective',\n", " '목소리/Noun'],\n", " '0']\n" ] } ], "source": [ "import json\n", "import os\n", "from pprint import pprint\n", "\n", "def tokenize(doc):\n", " # norm은 정규화, stem은 근어로 표시하기를 나타냄\n", " return ['/'.join(t) for t in okt.pos(doc, norm=True, stem=True)]\n", "\n", "if os.path.isfile('../datasets/nsmc/train_docs.json'):\n", " with open('../datasets/nsmc/train_docs.json') as f:\n", " train_docs = json.load(f)\n", " with open('../datasets/nsmc/test_docs.json') as f:\n", " test_docs = json.load(f)\n", "else:\n", " train_docs = [(tokenize(row[1]), row[2]) for row in train_data]\n", " test_docs = [(tokenize(row[1]), row[2]) for row in test_data]\n", " # JSON 파일로 저장\n", " with open('../datasets/nsmc/train_docs.json', 'w', encoding=\"utf-8\") as make_file:\n", " json.dump(train_docs, make_file, ensure_ascii=False, indent=\"\\t\")\n", " with open('../datasets/nsmc/test_docs.json', 'w', encoding=\"utf-8\") as make_file:\n", " json.dump(test_docs, make_file, ensure_ascii=False, indent=\"\\t\")\n", "\n", "# 예쁘게(?) 출력하기 위해서 pprint 라이브러리 사용\n", "pprint(train_docs[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "분석한 데이터의 토큰(문자열을 분석을 위한 작은 단위)의 갯수를 확인해봅시다." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2159921\n" ] } ], "source": [ "tokens = [t for d in train_docs for t in d[0]]\n", "print(len(tokens))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "이제 이 데이터를 nltk 라이브러리를 통해서 전처리를 해볼텐데요, `Text` 클래스는 문서를 편리하게 탐색할 수 있는 다양한 기능을 제공합니다. \n", "여기에서는 `vocab().most_common` 메서드를 이용해서 데이터에서 가장 자주 사용되는 단어를 가져올 때 사용하겠습니다. " ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "import nltk\n", "text = nltk.Text(tokens, name='NMSC')\n", "print(text)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2159921\n", "49895\n", "[('./Punctuation', 67778),\n", " ('영화/Noun', 50818),\n", " ('하다/Verb', 41209),\n", " ('이/Josa', 38540),\n", " ('보다/Verb', 38538),\n", " ('의/Josa', 30188),\n", " ('../Punctuation', 29055),\n", " ('가/Josa', 26627),\n", " ('에/Josa', 26468),\n", " ('을/Josa', 23118)]\n" ] } ], "source": [ "# 전체 토큰의 개수\n", "print(len(text.tokens))\n", "\n", "# 중복을 제외한 토큰의 개수\n", "print(len(set(text.tokens))) \n", "\n", "# 출현 빈도가 높은 상위 토큰 10개\n", "pprint(text.vocab().most_common(10))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "자주 나오는 단어 50개를 `matplotlib` 라이브러리를 통해서 그래프로 나타내보겠습니다. \n", "
\n", "한편 한글 폰트를 로드해야 글씨가 깨지지 않고 출력이 되는데요, \n", "윈도우에서는 `font_fname` 을 `'c:/windows/fonts/gulim.ttc'`, \n", "리눅스에서는 `/usr/share/fonts/nanumfont/NanumGothic.ttf` 등으로 설정해야 합니다." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "from matplotlib import font_manager, rc\n", "%matplotlib inline\n", "\n", "font_fname = '/Library/Fonts/AppleGothic.ttf'\n", "font_name = font_manager.FontProperties(fname=font_fname).get_name()\n", "rc('font', family=font_name)\n", "\n", "plt.figure(figsize=(20,10))\n", "text.plot(50)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "이제 자주 사용되는 토큰 10000개를 사용해서 데이터를 벡터화를 시키겠습니다. \n", "여기서는 **원 핫 인코딩** 대신에 **CountVectorization**을 사용했습니다. \n", "이는 문서 집합에서 단어 토큰을 생성하고 각 단어의 수를 세어 BOW(Bag of Words) 인코딩한 벡터를 만드는 역할을 합니다." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "selected_words = [f[0] for f in text.vocab().most_common(10000)]\n", "\n", "def term_frequency(doc):\n", " return [doc.count(word) for word in selected_words]\n", "\n", "train_x = [term_frequency(d) for d, _ in train_docs]\n", "test_x = [term_frequency(d) for d, _ in test_docs]\n", "train_y = [c for _, c in train_docs]\n", "test_y = [c for _, c in test_docs]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "이제 데이터를 float로 형 변환 시켜주면 데이터 전처리 과정은 끝납니다." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "\n", "x_train = np.asarray(train_x).astype('float32')\n", "x_test = np.asarray(test_x).astype('float32')\n", "\n", "y_train = np.asarray(train_y).astype('float32')\n", "y_test = np.asarray(test_y).astype('float32')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "저번의 영화 리뷰에서 사용했던 모델을 조금 변형했습니다. \n", "구조는 다음과 같습니다. \n", "두 개의 Dense 층은 64개의 유닛을 가지고 활성화 함수로는 relu를 사용했으며, 마지막 층은 sigmoid 활성화 함수를 사용해서 긍정의 리뷰일 확률을 출력합니다. \n", "손실 함수로는 `binary_crossentropy`를 사용했고 `RMSProp` 옵티마이저를 통해서 경사하강법을 진행했습니다. \n", "또한 배치 사이즈를 512로, 에포크를 10번으로 학습시켰습니다.\n", "\n", "![](./images/nn-4.png)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/10\n", "150000/150000 [==============================] - 17s 112us/step - loss: 0.3878 - binary_accuracy: 0.8344\n", "Epoch 2/10\n", "150000/150000 [==============================] - 14s 96us/step - loss: 0.3170 - binary_accuracy: 0.8641\n", "Epoch 3/10\n", "150000/150000 [==============================] - 14s 91us/step - loss: 0.2931 - binary_accuracy: 0.8774\n", "Epoch 4/10\n", "150000/150000 [==============================] - 15s 97us/step - loss: 0.2730 - binary_accuracy: 0.8886\n", "Epoch 5/10\n", "150000/150000 [==============================] - 15s 100us/step - loss: 0.2538 - binary_accuracy: 0.8983\n", "Epoch 6/10\n", "150000/150000 [==============================] - 16s 108us/step - loss: 0.2340 - binary_accuracy: 0.9074\n", "Epoch 7/10\n", "150000/150000 [==============================] - 18s 122us/step - loss: 0.2147 - binary_accuracy: 0.9164\n", "Epoch 8/10\n", "150000/150000 [==============================] - 16s 107us/step - loss: 0.1956 - binary_accuracy: 0.9253\n", "Epoch 9/10\n", "150000/150000 [==============================] - 19s 125us/step - loss: 0.1775 - binary_accuracy: 0.9323\n", "Epoch 10/10\n", "150000/150000 [==============================] - 18s 120us/step - loss: 0.1624 - binary_accuracy: 0.9386\n", "50000/50000 [==============================] - 6s 123us/step\n" ] } ], "source": [ "from tensorflow.keras import models\n", "from tensorflow.keras import layers\n", "from tensorflow.keras import optimizers\n", "from tensorflow.keras import losses\n", "from tensorflow.keras import metrics\n", "\n", "model = models.Sequential()\n", "model.add(layers.Dense(64, activation='relu', input_shape=(10000,)))\n", "model.add(layers.Dense(64, activation='relu'))\n", "model.add(layers.Dense(1, activation='sigmoid'))\n", "\n", "model.compile(optimizer=optimizers.RMSprop(lr=0.001),\n", " loss=losses.binary_crossentropy,\n", " metrics=[metrics.binary_accuracy])\n", "\n", "model.fit(x_train, y_train, epochs=10, batch_size=512)\n", "results = model.evaluate(x_test, y_test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "테스트 데이터로 확인해본 결과를 출력해보면 85%의 성능을 보여주는 것을 알 수 있습니다." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[0.41844128477334974, 0.8525]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "이제 문자열 형태의 새로운 데이터를 받아와서 바로 결과를 예측하는 함수를 만들어 보겠습니다. \n", "데이터의 형태를 맞춰주기 위해서 달리 `np.expand_dims` 메서드를 이용해 array의 축을 확장시켰습니다. \n", "최종 확률이 0.5 보다 크면 긍정이고, 그렇지 않으면 부정이라고 예측했습니다." ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "def predict_pos_neg(review):\n", " token = tokenize(review)\n", " tf = term_frequency(token)\n", " data = np.expand_dims(np.asarray(tf).astype('float32'), axis=0)\n", " score = float(model.predict(data))\n", " if(score > 0.5):\n", " print(\"[{}]는 {:.2f}% 확률로 긍정 리뷰이지 않을까 추측해봅니다.^^\\n\".format(review, score * 100))\n", " else:\n", " print(\"[{}]는 {:.2f}% 확률로 부정 리뷰이지 않을까 추측해봅니다.^^;\\n\".format(review, (1 - score) * 100))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "이렇게 여러 가지 한글 리뷰를 넣어서 예측하게 됩니다." ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[올해 최고의 영화! 세 번 넘게 봐도 질리지가 않네요.]는 98.49% 확률로 긍정 리뷰이지 않을까 추측해봅니다.^^\n", "\n", "[배경 음악이 영화의 분위기랑 너무 안 맞았습니다. 몰입에 방해가 됩니다.]는 91.99% 확률로 부정 리뷰이지 않을까 추측해봅니다.^^;\n", "\n", "[주연 배우가 신인인데 연기를 진짜 잘 하네요. 몰입감 ㅎㄷㄷ]는 99.25% 확률로 긍정 리뷰이지 않을까 추측해봅니다.^^\n", "\n", "[믿고 보는 감독이지만 이번에는 아니네요]는 61.15% 확률로 부정 리뷰이지 않을까 추측해봅니다.^^;\n", "\n", "[주연배우 때문에 봤어요]는 74.03% 확률로 부정 리뷰이지 않을까 추측해봅니다.^^;\n", "\n" ] } ], "source": [ "predict_pos_neg(\"올해 최고의 영화! 세 번 넘게 봐도 질리지가 않네요.\")\n", "predict_pos_neg(\"배경 음악이 영화의 분위기랑 너무 안 맞았습니다. 몰입에 방해가 됩니다.\")\n", "predict_pos_neg(\"주연 배우가 신인인데 연기를 진짜 잘 하네요. 몰입감 ㅎㄷㄷ\")\n", "predict_pos_neg(\"믿고 보는 감독이지만 이번에는 아니네요\")\n", "predict_pos_neg(\"주연배우 때문에 봤어요\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python (myenv)", "language": "python", "name": "myenv" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }