From ac7669301295368edf824b0913981a8d173e9d7a Mon Sep 17 00:00:00 2001 From: Eunbi <121873609+eeeunbiiii@users.noreply.github.com> Date: Mon, 2 Jun 2025 12:30:14 +0900 Subject: [PATCH 1/3] Add files via upload --- ...352\263\240\354\235\200\353\271\204.ipynb" | 2921 +++++++++++++++++ 1 file changed, 2921 insertions(+) create mode 100644 "Week13_\354\230\210\354\212\265\352\263\274\354\240\234_\352\263\240\354\235\200\353\271\204.ipynb" diff --git "a/Week13_\354\230\210\354\212\265\352\263\274\354\240\234_\352\263\240\354\235\200\353\271\204.ipynb" "b/Week13_\354\230\210\354\212\265\352\263\274\354\240\234_\352\263\240\354\235\200\353\271\204.ipynb" new file mode 100644 index 0000000..d71bb5e --- /dev/null +++ "b/Week13_\354\230\210\354\212\265\352\263\274\354\240\234_\352\263\240\354\235\200\353\271\204.ipynb" @@ -0,0 +1,2921 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "dd5a9f0d-128e-40b9-ab26-13aa32d6a864", + "metadata": {}, + "source": [ + "## **8.6 토픽 모델링 - 20 뉴스그룹**" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "d77f4b29-7b2b-4b58-81b1-5fb081213c24", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CountVectorizer Shape: (7862, 1000)\n" + ] + } + ], + "source": [ + "from sklearn.datasets import fetch_20newsgroups\n", + "from sklearn.feature_extraction.text import CountVectorizer\n", + "from sklearn.decomposition import LatentDirichletAllocation\n", + "\n", + "cats = ['rec.motorcycles', 'rec.sport.baseball', 'comp.graphics', 'comp.windows.x',\n", + " 'talk.politics.mideast', 'soc.religion.christian', 'sci.electronics', 'sci.med' ]\n", + "\n", + "news_df= fetch_20newsgroups(subset='all',remove=('headers', 'footers', 'quotes'), \n", + " categories=cats, random_state=0)\n", + "\n", + "count_vect = CountVectorizer(max_df=0.95, max_features=1000, min_df=2, stop_words='english', ngram_range=(1,2))\n", + "feat_vect = count_vect.fit_transform(news_df.data)\n", + "print('CountVectorizer Shape:', feat_vect.shape)" + ] + }, + { + "cell_type": "markdown", + "id": "b1514062-dd48-4406-b3bf-0d3f5712ebfb", + "metadata": {}, + "source": [ + "➡️ CountVectorizer 객체 변수인 feat_vect 모두 7862개 문서가 10000개의 피처로 구성된 행렬 데이터" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "a17cd062-3ee1-445a-82d1-39098ca2c87a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
LatentDirichletAllocation(n_components=8, random_state=0)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "LatentDirichletAllocation(n_components=8, random_state=0)" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lda = LatentDirichletAllocation(n_components=8, random_state=0)\n", + "lda.fit(feat_vect)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "90e9b685-43bc-47c5-9b91-59ee697bfe8d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(8, 1000)\n" + ] + }, + { + "data": { + "text/plain": [ + "array([[3.60992018e+01, 1.35626798e+02, 2.15751867e+01, ...,\n", + " 3.02911688e+01, 8.66830093e+01, 6.79285199e+01],\n", + " [1.25199920e-01, 1.44401815e+01, 1.25045596e-01, ...,\n", + " 1.81506995e+02, 1.25097844e-01, 9.39593286e+01],\n", + " [3.34762663e+02, 1.25176265e-01, 1.46743299e+02, ...,\n", + " 1.25105772e-01, 3.63689741e+01, 1.25025218e-01],\n", + " ...,\n", + " [3.60204965e+01, 2.08640688e+01, 4.29606813e+00, ...,\n", + " 1.45056650e+01, 8.33854413e+00, 1.55690009e+01],\n", + " [1.25128711e-01, 1.25247756e-01, 1.25005143e-01, ...,\n", + " 9.17278769e+01, 1.25177668e-01, 3.74575887e+01],\n", + " [5.49258690e+01, 4.47009532e+00, 9.88524814e+00, ...,\n", + " 4.87048440e+01, 1.25034678e-01, 1.25074632e-01]])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "print(lda.components_.shape)\n", + "lda.components_" + ] + }, + { + "cell_type": "markdown", + "id": "7dec630d-3231-427f-9e47-9eb3bf5ded10", + "metadata": {}, + "source": [ + "➡️ 8개의 토픽별로 1000개의 word피처가 해당 토픽별로 연관도 값을 가짐 " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "0e96e994-b43d-407d-bfd7-a9d35581a23c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Topic # 0\n", + "year 10 game medical health team 12 20 disease cancer 1993 games years patients good\n", + "Topic # 1\n", + "don just like know people said think time ve didn right going say ll way\n", + "Topic # 2\n", + "image file jpeg program gif images output format files color entry 00 use bit 03\n", + "Topic # 3\n", + "like know don think use does just good time book read information people used post\n", + "Topic # 4\n", + "armenian israel armenians jews turkish people israeli jewish government war dos dos turkey arab armenia 000\n", + "Topic # 5\n", + "edu com available graphics ftp data pub motif mail widget software mit information version sun\n", + "Topic # 6\n", + "god people jesus church believe christ does christian say think christians bible faith sin life\n", + "Topic # 7\n", + "use dos thanks windows using window does display help like problem server need know run\n" + ] + } + ], + "source": [ + "def display_topics(model, feature_names, no_top_words):\n", + " for topic_index, topic in enumerate(model.components_):\n", + " print('Topic #',topic_index)\n", + "\n", + " topic_word_indexes = topic.argsort()[::-1]\n", + " top_indexes=topic_word_indexes[:no_top_words]\n", + " \n", + " feature_concat = ' '.join([feature_names[i] for i in top_indexes]) \n", + " print(feature_concat)\n", + "\n", + "feature_names = count_vect.get_feature_names_out()\n", + "\n", + "display_topics(lda, feature_names, 15)" + ] + }, + { + "cell_type": "markdown", + "id": "b2d1dcf5-446d-4558-b3a3-f13fce950028", + "metadata": {}, + "source": [ + "➡️ 각 토픽별 연관도 순으로 추출
\n", + "➡️ 모터사이클, 야구 주제의 경우 명확한 주제어가 추출되지 않음 " + ] + }, + { + "cell_type": "markdown", + "id": "ecf779d4-9b4b-457c-b088-d89a87602c4e", + "metadata": {}, + "source": [ + "## **8.7 문서 군집화 소개와 실습**" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "3d4998a9-162e-4c42-9734-6544fc169f95", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
filenameopinion_text
0accuracy_garmin_nuvi_255W_gps, and is very, very accurate .\\n0 but for the most part, we find that the Garmin software provides accurate directions, whereever we intend to go .\\n1 This functi...
1bathroom_bestwestern_hotel_sfoThe room was not overly big, but clean and very comfortable beds, a great shower and very clean bathrooms .\\n0 The second room was smaller, with a very inconvenient bathroom layout, but at least it was quieter and we were able to sleep .\\n1 ...
2battery-life_amazon_kindleAfter I plugged it in to my USB hub on my computer to charge the battery the charging cord design is very clever !\\n0 After you have paged tru a 500, page book one, page, at, a, time to get from Chapter 2 to Chapter 15, see how excited you are about a low battery and all the time it took to get there !\\n1 ...
3battery-life_ipod_nano_8gbshort battery life I moved up from an 8gb .\\n0 I love this ipod except for the battery life .\\n1 ...
4battery-life_netbook_1005ha6GHz 533FSB cpu, glossy display, 3, Cell 23Wh Li, ion Battery , and a 1 .\\n0 Not to mention that as of now...
\n", + "
" + ], + "text/plain": [ + " filename \\\n", + "0 accuracy_garmin_nuvi_255W_gps \n", + "1 bathroom_bestwestern_hotel_sfo \n", + "2 battery-life_amazon_kindle \n", + "3 battery-life_ipod_nano_8gb \n", + "4 battery-life_netbook_1005ha \n", + "\n", + " opinion_text \n", + "0 , and is very, very accurate .\\n0 but for the most part, we find that the Garmin software provides accurate directions, whereever we intend to go .\\n1 This functi... \n", + "1 The room was not overly big, but clean and very comfortable beds, a great shower and very clean bathrooms .\\n0 The second room was smaller, with a very inconvenient bathroom layout, but at least it was quieter and we were able to sleep .\\n1 ... \n", + "2 After I plugged it in to my USB hub on my computer to charge the battery the charging cord design is very clever !\\n0 After you have paged tru a 500, page book one, page, at, a, time to get from Chapter 2 to Chapter 15, see how excited you are about a low battery and all the time it took to get there !\\n1 ... \n", + "3 short battery life I moved up from an 8gb .\\n0 I love this ipod except for the battery life .\\n1 ... \n", + "4 6GHz 533FSB cpu, glossy display, 3, Cell 23Wh Li, ion Battery , and a 1 .\\n0 Not to mention that as of now... " + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "import glob, os\n", + "import warnings \n", + "warnings.filterwarnings('ignore')\n", + "pd.set_option('display.max_colwidth', 700)\n", + "\n", + "path = r'C:\\Users\\SAMSUNG\\JypyterWorkspace\\eunron-ML\\Text\\OpinosisDataset1.0\\topics'\n", + "\n", + "all_files = glob.glob(os.path.join(path, \"*.data\")) \n", + "filename_list = []\n", + "opinion_text = []\n", + "\n", + "for file_ in all_files:\n", + " df = pd.read_table(file_,index_col=None, header=0,encoding='latin1')\n", + " \n", + " filename_ = file_.split('\\\\')[-1]\n", + " filename = filename_.split('.')[0]\n", + "\n", + " filename_list.append(filename)\n", + " opinion_text.append(df.to_string())\n", + " \n", + "document_df = pd.DataFrame({'filename':filename_list, 'opinion_text':opinion_text})\n", + "document_df.head()" + ] + }, + { + "cell_type": "markdown", + "id": "5e6d565a-ec2b-412c-aebf-e5636fbaeac4", + "metadata": {}, + "source": [ + "➡️ 파일명과 내용들을 DF로 변환" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "a4ce2c58-3e66-4d51-8c8f-8af376dbdcd4", + "metadata": {}, + "outputs": [], + "source": [ + "# TfidfVectorizer의 tokenizer인자로 사용될 lemmatization 어근 변환 함수 설정\n", + "from nltk.stem import WordNetLemmatizer\n", + "import nltk\n", + "import string\n", + "\n", + "remove_punct_dict = dict((ord(punct), None) for punct in string.punctuation)\n", + "lemmar = WordNetLemmatizer()\n", + "\n", + "def LemTokens(tokens):\n", + " return [lemmar.lemmatize(token) for token in tokens]\n", + "\n", + "def LemNormalize(text):\n", + " return LemTokens(nltk.word_tokenize(text.lower().translate(remove_punct_dict)))" + ] + }, + { + "cell_type": "markdown", + "id": "6759ed10-dc83-4aa7-a4bc-2261e09709d4", + "metadata": {}, + "source": [ + "- TF-IDF 기반 Vectorization 적용 및 KMeans 군집화 수행\n", + "- Stemming과 Lemmatization 같은 어근 변환은 TfidfVectorizer에서 직접 지원하진 않으나 tokenizer 파라미터에 커스텀 어근 변환 함수를 적용하여 어근 변환 수행 가능\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "6f8ed9ae-46db-4072-a8fa-37f4a04304df", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.feature_extraction.text import TfidfVectorizer\n", + "\n", + "tfidf_vect = TfidfVectorizer(tokenizer=LemNormalize, stop_words='english' , \\\n", + " ngram_range=(1,2), min_df=0.05, max_df=0.85 )\n", + "\n", + "#opinion_text 컬럼값으로 feature vectorization 수행\n", + "feature_vect = tfidf_vect.fit_transform(document_df['opinion_text'])" + ] + }, + { + "cell_type": "markdown", + "id": "57942e41-76d8-42be-bcab-d5ae031464e4", + "metadata": {}, + "source": [ + "- 군집화 수행해 결과 도출 " + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "id": "9fc0b470-47aa-4ab4-94d0-2d742c09350c", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.cluster import KMeans\n", + "\n", + "km_cluster = KMeans(n_clusters=5, max_iter=10000, random_state=0)\n", + "km_cluster.fit(feature_vect)\n", + "cluster_label = km_cluster.labels_\n", + "cluster_centers = km_cluster.cluster_centers_" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "id": "4bf61ff9-97e1-4dde-a0fb-86d437f4c6ad", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
filenameopinion_textcluster_label
0accuracy_garmin_nuvi_255W_gps, and is very, very accurate .\\n0 but for the most part, we find that the Garmin software provides accurate directions, whereever we intend to go .\\n1 This functi...2
1bathroom_bestwestern_hotel_sfoThe room was not overly big, but clean and very comfortable beds, a great shower and very clean bathrooms .\\n0 The second room was smaller, with a very inconvenient bathroom layout, but at least it was quieter and we were able to sleep .\\n1 ...1
2battery-life_amazon_kindleAfter I plugged it in to my USB hub on my computer to charge the battery the charging cord design is very clever !\\n0 After you have paged tru a 500, page book one, page, at, a, time to get from Chapter 2 to Chapter 15, see how excited you are about a low battery and all the time it took to get there !\\n1 ...4
3battery-life_ipod_nano_8gbshort battery life I moved up from an 8gb .\\n0 I love this ipod except for the battery life .\\n1 ...4
4battery-life_netbook_1005ha6GHz 533FSB cpu, glossy display, 3, Cell 23Wh Li, ion Battery , and a 1 .\\n0 Not to mention that as of now...4
\n", + "
" + ], + "text/plain": [ + " filename \\\n", + "0 accuracy_garmin_nuvi_255W_gps \n", + "1 bathroom_bestwestern_hotel_sfo \n", + "2 battery-life_amazon_kindle \n", + "3 battery-life_ipod_nano_8gb \n", + "4 battery-life_netbook_1005ha \n", + "\n", + " opinion_text \\\n", + "0 , and is very, very accurate .\\n0 but for the most part, we find that the Garmin software provides accurate directions, whereever we intend to go .\\n1 This functi... \n", + "1 The room was not overly big, but clean and very comfortable beds, a great shower and very clean bathrooms .\\n0 The second room was smaller, with a very inconvenient bathroom layout, but at least it was quieter and we were able to sleep .\\n1 ... \n", + "2 After I plugged it in to my USB hub on my computer to charge the battery the charging cord design is very clever !\\n0 After you have paged tru a 500, page book one, page, at, a, time to get from Chapter 2 to Chapter 15, see how excited you are about a low battery and all the time it took to get there !\\n1 ... \n", + "3 short battery life I moved up from an 8gb .\\n0 I love this ipod except for the battery life .\\n1 ... \n", + "4 6GHz 533FSB cpu, glossy display, 3, Cell 23Wh Li, ion Battery , and a 1 .\\n0 Not to mention that as of now... \n", + "\n", + " cluster_label \n", + "0 2 \n", + "1 1 \n", + "2 4 \n", + "3 4 \n", + "4 4 " + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "document_df['cluster_label'] = cluster_label\n", + "document_df.head()" + ] + }, + { + "cell_type": "markdown", + "id": "6d23f035-b33a-4203-8655-9c8f2bf80f52", + "metadata": {}, + "source": [ + "- sort_values(by=..)사용하면 인자로 입력된 칼럼명으로 데이터를 정렬 가능 " + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "id": "9d2e994d-ae11-4374-83d5-dee707bca6cc", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
filenameopinion_textcluster_label
5buttons_amazon_kindleI thought it would be fitting to christen my Kindle with the Stephen King novella UR, so went to the Amazon site on my computer and clicked on the button to buy it .\\n0 As soon as I'd clicked the button to confirm my order it appeared on my Kindle almost immediately !\\n1 ...0
10eyesight-issues_amazon_kindleIt feels as easy to read as the K1 but doesn't seem any crisper to my eyes .\\n0 the white is really GREY, and to avoid considerable eye, strain I had to refresh pages every other page .\\n1 The dream has always been a portable electronic device that could hold a ton of reading material, automate subscriptions and fa...0
12fonts_amazon_kindleBeing able to change the font sizes is awesome !\\n0 For whatever reason, Amazon decided to make the Font on the Home Screen ...0
23navigation_amazon_kindleIn fact, the entire navigation structure has been completely revised , I'm still getting used to it but it's a huge step forward .\\n0 ...0
27price_amazon_kindleIf a case was included, as with the Kindle 1, that would have been reflected in a higher price .\\n0 lower overall price, with nice leather cover .\\n1 ...0
28price_holiday_inn_londonAll in all, a normal chain hotel on a nice location , I will be back if I do not find anthing closer to Picadilly for a better price .\\n0 ...0
\n", + "
" + ], + "text/plain": [ + " filename \\\n", + "5 buttons_amazon_kindle \n", + "10 eyesight-issues_amazon_kindle \n", + "12 fonts_amazon_kindle \n", + "23 navigation_amazon_kindle \n", + "27 price_amazon_kindle \n", + "28 price_holiday_inn_london \n", + "\n", + " opinion_text \\\n", + "5 I thought it would be fitting to christen my Kindle with the Stephen King novella UR, so went to the Amazon site on my computer and clicked on the button to buy it .\\n0 As soon as I'd clicked the button to confirm my order it appeared on my Kindle almost immediately !\\n1 ... \n", + "10 It feels as easy to read as the K1 but doesn't seem any crisper to my eyes .\\n0 the white is really GREY, and to avoid considerable eye, strain I had to refresh pages every other page .\\n1 The dream has always been a portable electronic device that could hold a ton of reading material, automate subscriptions and fa... \n", + "12 Being able to change the font sizes is awesome !\\n0 For whatever reason, Amazon decided to make the Font on the Home Screen ... \n", + "23 In fact, the entire navigation structure has been completely revised , I'm still getting used to it but it's a huge step forward .\\n0 ... \n", + "27 If a case was included, as with the Kindle 1, that would have been reflected in a higher price .\\n0 lower overall price, with nice leather cover .\\n1 ... \n", + "28 All in all, a normal chain hotel on a nice location , I will be back if I do not find anthing closer to Picadilly for a better price .\\n0 ... \n", + "\n", + " cluster_label \n", + "5 0 \n", + "10 0 \n", + "12 0 \n", + "23 0 \n", + "27 0 \n", + "28 0 " + ] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "document_df[document_df['cluster_label']==0].sort_values(by='filename')" + ] + }, + { + "cell_type": "markdown", + "id": "cc68eb5b-291f-4dac-b3ed-6fe7784d2c57", + "metadata": {}, + "source": [ + "➡️ 킨들 리뷰 군집" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "id": "8c91cff8-4f67-413b-b807-7e6f90804166", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
filenameopinion_textcluster_label
1bathroom_bestwestern_hotel_sfoThe room was not overly big, but clean and very comfortable beds, a great shower and very clean bathrooms .\\n0 The second room was smaller, with a very inconvenient bathroom layout, but at least it was quieter and we were able to sleep .\\n1 ...1
13food_holiday_inn_londonThe room was packed to capacity with queues at the food buffets .\\n0 The over zealous staff cleared our unfinished drinks while we were collecting cooked food and movement around the room with plates was difficult in the crowded circumstances .\\n1 ...1
14food_swissotel_chicagoThe food for our event was delicious .\\n0 ...1
15free_bestwestern_hotel_sfoThe wine reception is a great idea as it is nice to meet other travellers and great having access to the free Internet access in our room .\\n0 They also have a computer available with free internet which is a nice bonus but I didn't find that out till the day before we left but was still able to get on there to check our flight to Vegas the next day .\\n1 ...1
20location_bestwestern_hotel_sfoGood Value good location , ideal choice .\\n0 Great Location , Nice Rooms , Helpless Concierge\\n1 ...1
21location_holiday_inn_londonGreat location for tube and we crammed in a fair amount of sightseeing in a short time .\\n0 All in all, a normal chain hotel on a nice lo...1
24parking_bestwestern_hotel_sfoParking was expensive but I think this is common for San Fran .\\n0 there is a fee for parking but well worth it seeing no where to park if you do have a car .\\n1 ...1
32room_holiday_inn_londonWe arrived at 23,30 hours and they could not recommend a restaurant so we decided to go to Tesco, with very limited choices but when you are hingry you do not careNext day they rang the bell at 8,00 hours to clean the room, not being very nice being waken up so earlyEvery day they gave u...1
30rooms_bestwestern_hotel_sfoGreat Location , Nice Rooms , H...1
31rooms_swissotel_chicagoThe Swissotel is one of our favorite hotels in Chicago and the corner rooms have the most fantastic views in the city .\\n0 The rooms look like they were just remodled and upgraded, there was an HD TV and a nice iHome docking station to put my iPod so I could set the alarm to wake up with my music instead of the radio .\\n1 ...1
38service_bestwestern_hotel_sfoBoth of us having worked in tourism for over 14 years were very disappointed at the level of service provided by this gentleman .\\n0 The service was good, very friendly staff and we loved the free wine reception each night .\\n1 ...1
39service_holiday_inn_londonnot customer, oriented hotelvery low service levelboor reception\\n0 The room was quiet, clean, the bed and pillows were comfortable, and the serv...1
40service_swissotel_hotel_chicagoMediocre room and service for a very extravagant price .\\n0 ...1
45staff_bestwestern_hotel_sfoStaff are friendl...1
46staff_swissotel_chicagoThe staff at Swissotel were not particularly nice .\\n0 Each time I waited at the counter for staff for several minutes and then was waved to the desk upon my turn with no hello or anything, or apology for waiting in line .\\n1 ...1
\n", + "
" + ], + "text/plain": [ + " filename \\\n", + "1 bathroom_bestwestern_hotel_sfo \n", + "13 food_holiday_inn_london \n", + "14 food_swissotel_chicago \n", + "15 free_bestwestern_hotel_sfo \n", + "20 location_bestwestern_hotel_sfo \n", + "21 location_holiday_inn_london \n", + "24 parking_bestwestern_hotel_sfo \n", + "32 room_holiday_inn_london \n", + "30 rooms_bestwestern_hotel_sfo \n", + "31 rooms_swissotel_chicago \n", + "38 service_bestwestern_hotel_sfo \n", + "39 service_holiday_inn_london \n", + "40 service_swissotel_hotel_chicago \n", + "45 staff_bestwestern_hotel_sfo \n", + "46 staff_swissotel_chicago \n", + "\n", + " opinion_text \\\n", + "1 The room was not overly big, but clean and very comfortable beds, a great shower and very clean bathrooms .\\n0 The second room was smaller, with a very inconvenient bathroom layout, but at least it was quieter and we were able to sleep .\\n1 ... \n", + "13 The room was packed to capacity with queues at the food buffets .\\n0 The over zealous staff cleared our unfinished drinks while we were collecting cooked food and movement around the room with plates was difficult in the crowded circumstances .\\n1 ... \n", + "14 The food for our event was delicious .\\n0 ... \n", + "15 The wine reception is a great idea as it is nice to meet other travellers and great having access to the free Internet access in our room .\\n0 They also have a computer available with free internet which is a nice bonus but I didn't find that out till the day before we left but was still able to get on there to check our flight to Vegas the next day .\\n1 ... \n", + "20 Good Value good location , ideal choice .\\n0 Great Location , Nice Rooms , Helpless Concierge\\n1 ... \n", + "21 Great location for tube and we crammed in a fair amount of sightseeing in a short time .\\n0 All in all, a normal chain hotel on a nice lo... \n", + "24 Parking was expensive but I think this is common for San Fran .\\n0 there is a fee for parking but well worth it seeing no where to park if you do have a car .\\n1 ... \n", + "32 We arrived at 23,30 hours and they could not recommend a restaurant so we decided to go to Tesco, with very limited choices but when you are hingry you do not careNext day they rang the bell at 8,00 hours to clean the room, not being very nice being waken up so earlyEvery day they gave u... \n", + "30 Great Location , Nice Rooms , H... \n", + "31 The Swissotel is one of our favorite hotels in Chicago and the corner rooms have the most fantastic views in the city .\\n0 The rooms look like they were just remodled and upgraded, there was an HD TV and a nice iHome docking station to put my iPod so I could set the alarm to wake up with my music instead of the radio .\\n1 ... \n", + "38 Both of us having worked in tourism for over 14 years were very disappointed at the level of service provided by this gentleman .\\n0 The service was good, very friendly staff and we loved the free wine reception each night .\\n1 ... \n", + "39 not customer, oriented hotelvery low service levelboor reception\\n0 The room was quiet, clean, the bed and pillows were comfortable, and the serv... \n", + "40 Mediocre room and service for a very extravagant price .\\n0 ... \n", + "45 Staff are friendl... \n", + "46 The staff at Swissotel were not particularly nice .\\n0 Each time I waited at the counter for staff for several minutes and then was waved to the desk upon my turn with no hello or anything, or apology for waiting in line .\\n1 ... \n", + "\n", + " cluster_label \n", + "1 1 \n", + "13 1 \n", + "14 1 \n", + "15 1 \n", + "20 1 \n", + "21 1 \n", + "24 1 \n", + "32 1 \n", + "30 1 \n", + "31 1 \n", + "38 1 \n", + "39 1 \n", + "40 1 \n", + "45 1 \n", + "46 1 " + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "document_df[document_df['cluster_label']==1].sort_values(by='filename')" + ] + }, + { + "cell_type": "markdown", + "id": "ffde355e-0302-439c-a6ba-e2e4c4022361", + "metadata": {}, + "source": [ + "➡️ 호텔 리뷰 군집" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "id": "845e38c0-220a-4a37-8a09-20af957f0d0d", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
filenameopinion_textcluster_label
0accuracy_garmin_nuvi_255W_gps, and is very, very accurate .\\n0 but for the most part, we find that the Garmin software provides accurate directions, whereever we intend to go .\\n1 This functi...2
8directions_garmin_nuvi_255W_gpsYou also get upscale features like spoken directions including street names and programmable POIs .\\n0 I used to hesitate to go out of my directions but no...2
9display_garmin_nuvi_255W_gps3 quot widescreen display was a bonus .\\n0 This made for smoother graphics on the 255w of the vehicle moving along displayed roads, where the 750's display was more of a jerky movement .\\n1 ...2
19keyboard_netbook_1005ha, I think the new keyboard rivals the great hp mini keyboards .\\n0 Since the battery life difference is minimum, the only reason to upgrade would be to get the better keyboard .\\n1 The keyboard is now as good as t...2
33satellite_garmin_nuvi_255W_gpsIt's fast to acquire satellites .\\n0 If you've ever had a Brand X GPS take you on some strange route that adds 20 minutes to your trip, has you turn the wrong way down a one way road, tell you to turn AFTER you've passed the street, frequently loses the satellite signal, or has old maps missing streets, you know how important this stuff is .\\n1 ...2
34screen_garmin_nuvi_255W_gpsIt is easy to read and when touching the screen it works great !\\n0 and zoom out buttons on the 255w to the same side of the screen which makes it a bit easier .\\n1 ...2
35screen_ipod_nano_8gbAs always, the video screen is sharp and bright .\\n0 2, inch screen and a glossy, polished aluminum finish that one CNET editor described as looking like a Christmas tree ornament .\\n1 ...2
36screen_netbook_1005haKeep in mind that once you get in a room full of light or step outdoors screen reflections could become annoying .\\n0 I've used mine outsi...2
41size_asus_netbook_1005haA few other things I'd like to point out is that you must push the micro, sized right angle end of the ac adapter until it snaps in place or the battery may not charge .\\n0 The full size right shift k...2
43speed_garmin_nuvi_255W_gpsAnother feature on the 255w is a display of the posted speed limit on the road which you are currently on right above your current displayed speed .\\n0 I found myself not even looking at my car speedometer as I could easily see my current speed and the speed limit of my route at a glance .\\n1 ...2
48updates_garmin_nuvi_255W_gpsAnother thing to consider was that I paid $50 less for the 750 and it came with the FM transmitter cable and a USB cord to connect it to your computer for updates and downloads .\\n0 update and reroute much _more_ quickly than my other GPS .\\n1 UPDATE ON THIS , It finally turned out that to see the elevation contours at lowe...2
50voice_garmin_nuvi_255W_gpsThe voice prompts and maps are wonderful especially when driving after dark .\\n0 I also thought the the voice prompts of the 750 where more pleasant sounding than the 255w's .\\n1 ...2
\n", + "
" + ], + "text/plain": [ + " filename \\\n", + "0 accuracy_garmin_nuvi_255W_gps \n", + "8 directions_garmin_nuvi_255W_gps \n", + "9 display_garmin_nuvi_255W_gps \n", + "19 keyboard_netbook_1005ha \n", + "33 satellite_garmin_nuvi_255W_gps \n", + "34 screen_garmin_nuvi_255W_gps \n", + "35 screen_ipod_nano_8gb \n", + "36 screen_netbook_1005ha \n", + "41 size_asus_netbook_1005ha \n", + "43 speed_garmin_nuvi_255W_gps \n", + "48 updates_garmin_nuvi_255W_gps \n", + "50 voice_garmin_nuvi_255W_gps \n", + "\n", + " opinion_text \\\n", + "0 , and is very, very accurate .\\n0 but for the most part, we find that the Garmin software provides accurate directions, whereever we intend to go .\\n1 This functi... \n", + "8 You also get upscale features like spoken directions including street names and programmable POIs .\\n0 I used to hesitate to go out of my directions but no... \n", + "9 3 quot widescreen display was a bonus .\\n0 This made for smoother graphics on the 255w of the vehicle moving along displayed roads, where the 750's display was more of a jerky movement .\\n1 ... \n", + "19 , I think the new keyboard rivals the great hp mini keyboards .\\n0 Since the battery life difference is minimum, the only reason to upgrade would be to get the better keyboard .\\n1 The keyboard is now as good as t... \n", + "33 It's fast to acquire satellites .\\n0 If you've ever had a Brand X GPS take you on some strange route that adds 20 minutes to your trip, has you turn the wrong way down a one way road, tell you to turn AFTER you've passed the street, frequently loses the satellite signal, or has old maps missing streets, you know how important this stuff is .\\n1 ... \n", + "34 It is easy to read and when touching the screen it works great !\\n0 and zoom out buttons on the 255w to the same side of the screen which makes it a bit easier .\\n1 ... \n", + "35 As always, the video screen is sharp and bright .\\n0 2, inch screen and a glossy, polished aluminum finish that one CNET editor described as looking like a Christmas tree ornament .\\n1 ... \n", + "36 Keep in mind that once you get in a room full of light or step outdoors screen reflections could become annoying .\\n0 I've used mine outsi... \n", + "41 A few other things I'd like to point out is that you must push the micro, sized right angle end of the ac adapter until it snaps in place or the battery may not charge .\\n0 The full size right shift k... \n", + "43 Another feature on the 255w is a display of the posted speed limit on the road which you are currently on right above your current displayed speed .\\n0 I found myself not even looking at my car speedometer as I could easily see my current speed and the speed limit of my route at a glance .\\n1 ... \n", + "48 Another thing to consider was that I paid $50 less for the 750 and it came with the FM transmitter cable and a USB cord to connect it to your computer for updates and downloads .\\n0 update and reroute much _more_ quickly than my other GPS .\\n1 UPDATE ON THIS , It finally turned out that to see the elevation contours at lowe... \n", + "50 The voice prompts and maps are wonderful especially when driving after dark .\\n0 I also thought the the voice prompts of the 750 where more pleasant sounding than the 255w's .\\n1 ... \n", + "\n", + " cluster_label \n", + "0 2 \n", + "8 2 \n", + "9 2 \n", + "19 2 \n", + "33 2 \n", + "34 2 \n", + "35 2 \n", + "36 2 \n", + "41 2 \n", + "43 2 \n", + "48 2 \n", + "50 2 " + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "document_df[document_df['cluster_label']==2].sort_values(by='filename')" + ] + }, + { + "cell_type": "markdown", + "id": "535589de-7c05-4162-a447-ceccf67f517a", + "metadata": {}, + "source": [ + "➡️ 차량용 내비게이션 관련 군집 " + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "id": "e182ef98-afe9-4788-95e9-5a06068e684e", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
filenameopinion_textcluster_label
6comfort_honda_accord_2008Drivers seat not comfortable, the car itself compared to other models of similar class .\\n0 ...3
7comfort_toyota_camry_2007Ride seems comfortable and gas mileage fairly good averaging 26 city and 30 open road .\\n0 Seats are fine, in fact of all the smaller sedans this is the most comfortable I found for the price as I am 6', 2 and 250# .\\n1 Great gas mileage and comfortable on long trips ...3
16gas_mileage_toyota_camry_2007Ride seems comfortable and gas mileage fairly good averaging 26 city and 30 open road .\\n0 ...3
17interior_honda_accord_2008I love the new body style and the interior is a simple pleasure except for the center dash .\\n0 ...3
18interior_toyota_camry_2007First of all, the interior has way too many cheap plastic parts like the cheap plastic center piece that houses the clock .\\n0 3 blown struts at 30,000 miles, interior trim coming loose and rattling squeaking, stains on paint, and bug splats taking paint off, premature uneven brake wear, on 3rd windsh...3
22mileage_honda_accord_2008It's quiet, get good gas mileage and looks clean inside and out .\\n0 The mileage is great, and I've had to get used to stopping less for gas .\\n1 Thought gas ...3
29quality_toyota_camry_2007I previously owned a Toyota 4Runner which had incredible build quality and reliability .\\n0 I bought the Camry because of Toyota reliability and qua...3
37seats_honda_accord_2008Front seats are very uncomfortable .\\n0 No memory seats, no trip computer, can only display outside temp with trip odometer .\\n1 ...3
47transmission_toyota_camry_2007After slowing down, transmission has to be kicked to speed up .\\n0 ...3
\n", + "
" + ], + "text/plain": [ + " filename \\\n", + "6 comfort_honda_accord_2008 \n", + "7 comfort_toyota_camry_2007 \n", + "16 gas_mileage_toyota_camry_2007 \n", + "17 interior_honda_accord_2008 \n", + "18 interior_toyota_camry_2007 \n", + "22 mileage_honda_accord_2008 \n", + "29 quality_toyota_camry_2007 \n", + "37 seats_honda_accord_2008 \n", + "47 transmission_toyota_camry_2007 \n", + "\n", + " opinion_text \\\n", + "6 Drivers seat not comfortable, the car itself compared to other models of similar class .\\n0 ... \n", + "7 Ride seems comfortable and gas mileage fairly good averaging 26 city and 30 open road .\\n0 Seats are fine, in fact of all the smaller sedans this is the most comfortable I found for the price as I am 6', 2 and 250# .\\n1 Great gas mileage and comfortable on long trips ... \n", + "16 Ride seems comfortable and gas mileage fairly good averaging 26 city and 30 open road .\\n0 ... \n", + "17 I love the new body style and the interior is a simple pleasure except for the center dash .\\n0 ... \n", + "18 First of all, the interior has way too many cheap plastic parts like the cheap plastic center piece that houses the clock .\\n0 3 blown struts at 30,000 miles, interior trim coming loose and rattling squeaking, stains on paint, and bug splats taking paint off, premature uneven brake wear, on 3rd windsh... \n", + "22 It's quiet, get good gas mileage and looks clean inside and out .\\n0 The mileage is great, and I've had to get used to stopping less for gas .\\n1 Thought gas ... \n", + "29 I previously owned a Toyota 4Runner which had incredible build quality and reliability .\\n0 I bought the Camry because of Toyota reliability and qua... \n", + "37 Front seats are very uncomfortable .\\n0 No memory seats, no trip computer, can only display outside temp with trip odometer .\\n1 ... \n", + "47 After slowing down, transmission has to be kicked to speed up .\\n0 ... \n", + "\n", + " cluster_label \n", + "6 3 \n", + "7 3 \n", + "16 3 \n", + "17 3 \n", + "18 3 \n", + "22 3 \n", + "29 3 \n", + "37 3 \n", + "47 3 " + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "document_df[document_df['cluster_label']==3].sort_values(by='filename')" + ] + }, + { + "cell_type": "markdown", + "id": "121038cd-0535-4700-81c1-27f851a2a625", + "metadata": {}, + "source": [ + "➡️ 자동차 리뷰 군집" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "id": "c6fc9f36-8669-48a5-8fb3-ec1c1004325a", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
filenameopinion_textcluster_label
2battery-life_amazon_kindleAfter I plugged it in to my USB hub on my computer to charge the battery the charging cord design is very clever !\\n0 After you have paged tru a 500, page book one, page, at, a, time to get from Chapter 2 to Chapter 15, see how excited you are about a low battery and all the time it took to get there !\\n1 ...4
3battery-life_ipod_nano_8gbshort battery life I moved up from an 8gb .\\n0 I love this ipod except for the battery life .\\n1 ...4
4battery-life_netbook_1005ha6GHz 533FSB cpu, glossy display, 3, Cell 23Wh Li, ion Battery , and a 1 .\\n0 Not to mention that as of now...4
11features_windows7I had to uninstall anti, virus and selected other programs, some of which did not have listings in the Programs and Features Control Panel section .\\n0 This review briefly touches upon some of the key features and enhancements of Microsoft's latest OS .\\n1 ...4
25performance_honda_accord_2008Very happy with my 08 Accord, performance is quite adequate it has nice looks and is a great long, distance cruiser .\\n0 6, 4, 3 eco engine has poor performance and gas mileage of 22 highway .\\n1 Overall performance is good but comfort level is poor .\\n2 ...4
26performance_netbook_1005haThe Eee Super Hybrid Engine utility lets users overclock or underclock their Eee PC's to boost performance or provide better battery life depending on their immediate requirements .\\n0 In Super Performance mode CPU, Z shows the bus speed to increase up to 169 .\\n1 One...4
42sound_ipod_nano_8gbheadphone jack i got a clear case for it and it i got a clear case for it and it like prvents me from being able to put the jack all the way in so the sound can b messsed up or i can get it in there and its playing well them go to move or something and it slides out .\\n0 Picture and sound quality are excellent for this typ of devic .\\n1 ...4
44speed_windows7Windows 7 is quite simply faster, more stable, boots faster, goes to sleep faster, comes back from sleep faster, manages your files better and on top of that it's beautiful to look at and easy to use .\\n0 , faster about 20% to 30% faster at running applications than my Vista , seriously\\n1 ...4
49video_ipod_nano_8gbI bought the 8, gig Ipod Nano that has the built, in video camera .\\n0 Itunes has an on, line store, where you may purchase and download music and videos which will install onto the ipod .\\n1 ...4
\n", + "
" + ], + "text/plain": [ + " filename \\\n", + "2 battery-life_amazon_kindle \n", + "3 battery-life_ipod_nano_8gb \n", + "4 battery-life_netbook_1005ha \n", + "11 features_windows7 \n", + "25 performance_honda_accord_2008 \n", + "26 performance_netbook_1005ha \n", + "42 sound_ipod_nano_8gb \n", + "44 speed_windows7 \n", + "49 video_ipod_nano_8gb \n", + "\n", + " opinion_text \\\n", + "2 After I plugged it in to my USB hub on my computer to charge the battery the charging cord design is very clever !\\n0 After you have paged tru a 500, page book one, page, at, a, time to get from Chapter 2 to Chapter 15, see how excited you are about a low battery and all the time it took to get there !\\n1 ... \n", + "3 short battery life I moved up from an 8gb .\\n0 I love this ipod except for the battery life .\\n1 ... \n", + "4 6GHz 533FSB cpu, glossy display, 3, Cell 23Wh Li, ion Battery , and a 1 .\\n0 Not to mention that as of now... \n", + "11 I had to uninstall anti, virus and selected other programs, some of which did not have listings in the Programs and Features Control Panel section .\\n0 This review briefly touches upon some of the key features and enhancements of Microsoft's latest OS .\\n1 ... \n", + "25 Very happy with my 08 Accord, performance is quite adequate it has nice looks and is a great long, distance cruiser .\\n0 6, 4, 3 eco engine has poor performance and gas mileage of 22 highway .\\n1 Overall performance is good but comfort level is poor .\\n2 ... \n", + "26 The Eee Super Hybrid Engine utility lets users overclock or underclock their Eee PC's to boost performance or provide better battery life depending on their immediate requirements .\\n0 In Super Performance mode CPU, Z shows the bus speed to increase up to 169 .\\n1 One... \n", + "42 headphone jack i got a clear case for it and it i got a clear case for it and it like prvents me from being able to put the jack all the way in so the sound can b messsed up or i can get it in there and its playing well them go to move or something and it slides out .\\n0 Picture and sound quality are excellent for this typ of devic .\\n1 ... \n", + "44 Windows 7 is quite simply faster, more stable, boots faster, goes to sleep faster, comes back from sleep faster, manages your files better and on top of that it's beautiful to look at and easy to use .\\n0 , faster about 20% to 30% faster at running applications than my Vista , seriously\\n1 ... \n", + "49 I bought the 8, gig Ipod Nano that has the built, in video camera .\\n0 Itunes has an on, line store, where you may purchase and download music and videos which will install onto the ipod .\\n1 ... \n", + "\n", + " cluster_label \n", + "2 4 \n", + "3 4 \n", + "4 4 \n", + "11 4 \n", + "25 4 \n", + "26 4 \n", + "42 4 \n", + "44 4 \n", + "49 4 " + ] + }, + "execution_count": 80, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "document_df[document_df['cluster_label']==4].sort_values(by='filename')" + ] + }, + { + "cell_type": "markdown", + "id": "9afd339e-6dbd-4d51-9201-b967faa68152", + "metadata": {}, + "source": [ + "➡️ 전자기기관련 군집" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "id": "3a2d0802-ee90-45db-8da0-0b9b18d54b65", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
filenameopinion_textcluster_label
25performance_honda_accord_2008Very happy with my 08 Accord, performance is quite adequate it has nice looks and is a great long, distance cruiser .\\n0 6, 4, 3 eco engine has poor performance and gas mileage of 22 highway .\\n1 Overall performance is good but comfort level is poor .\\n2 ...0
16gas_mileage_toyota_camry_2007Ride seems comfortable and gas mileage fairly good averaging 26 city and 30 open road .\\n0 ...0
22mileage_honda_accord_2008It's quiet, get good gas mileage and looks clean inside and out .\\n0 The mileage is great, and I've had to get used to stopping less for gas .\\n1 Thought gas ...0
23navigation_amazon_kindleIn fact, the entire navigation structure has been completely revised , I'm still getting used to it but it's a huge step forward .\\n0 ...0
12fonts_amazon_kindleBeing able to change the font sizes is awesome !\\n0 For whatever reason, Amazon decided to make the Font on the Home Screen ...0
10eyesight-issues_amazon_kindleIt feels as easy to read as the K1 but doesn't seem any crisper to my eyes .\\n0 the white is really GREY, and to avoid considerable eye, strain I had to refresh pages every other page .\\n1 The dream has always been a portable electronic device that could hold a ton of reading material, automate subscriptions and fa...0
27price_amazon_kindleIf a case was included, as with the Kindle 1, that would have been reflected in a higher price .\\n0 lower overall price, with nice leather cover .\\n1 ...0
44speed_windows7Windows 7 is quite simply faster, more stable, boots faster, goes to sleep faster, comes back from sleep faster, manages your files better and on top of that it's beautiful to look at and easy to use .\\n0 , faster about 20% to 30% faster at running applications than my Vista , seriously\\n1 ...0
29quality_toyota_camry_2007I previously owned a Toyota 4Runner which had incredible build quality and reliability .\\n0 I bought the Camry because of Toyota reliability and qua...0
5buttons_amazon_kindleI thought it would be fitting to christen my Kindle with the Stephen King novella UR, so went to the Amazon site on my computer and clicked on the button to buy it .\\n0 As soon as I'd clicked the button to confirm my order it appeared on my Kindle almost immediately !\\n1 ...0
21location_holiday_inn_londonGreat location for tube and we crammed in a fair amount of sightseeing in a short time .\\n0 All in all, a normal chain hotel on a nice lo...1
40service_swissotel_hotel_chicagoMediocre room and service for a very extravagant price .\\n0 ...1
30rooms_bestwestern_hotel_sfoGreat Location , Nice Rooms , H...1
24parking_bestwestern_hotel_sfoParking was expensive but I think this is common for San Fran .\\n0 there is a fee for parking but well worth it seeing no where to park if you do have a car .\\n1 ...1
31rooms_swissotel_chicagoThe Swissotel is one of our favorite hotels in Chicago and the corner rooms have the most fantastic views in the city .\\n0 The rooms look like they were just remodled and upgraded, there was an HD TV and a nice iHome docking station to put my iPod so I could set the alarm to wake up with my music instead of the radio .\\n1 ...1
32room_holiday_inn_londonWe arrived at 23,30 hours and they could not recommend a restaurant so we decided to go to Tesco, with very limited choices but when you are hingry you do not careNext day they rang the bell at 8,00 hours to clean the room, not being very nice being waken up so earlyEvery day they gave u...1
39service_holiday_inn_londonnot customer, oriented hotelvery low service levelboor reception\\n0 The room was quiet, clean, the bed and pillows were comfortable, and the serv...1
28price_holiday_inn_londonAll in all, a normal chain hotel on a nice location , I will be back if I do not find anthing closer to Picadilly for a better price .\\n0 ...1
20location_bestwestern_hotel_sfoGood Value good location , ideal choice .\\n0 Great Location , Nice Rooms , Helpless Concierge\\n1 ...1
17interior_honda_accord_2008I love the new body style and the interior is a simple pleasure except for the center dash .\\n0 ...1
18interior_toyota_camry_2007First of all, the interior has way too many cheap plastic parts like the cheap plastic center piece that houses the clock .\\n0 3 blown struts at 30,000 miles, interior trim coming loose and rattling squeaking, stains on paint, and bug splats taking paint off, premature uneven brake wear, on 3rd windsh...1
38service_bestwestern_hotel_sfoBoth of us having worked in tourism for over 14 years were very disappointed at the level of service provided by this gentleman .\\n0 The service was good, very friendly staff and we loved the free wine reception each night .\\n1 ...1
15free_bestwestern_hotel_sfoThe wine reception is a great idea as it is nice to meet other travellers and great having access to the free Internet access in our room .\\n0 They also have a computer available with free internet which is a nice bonus but I didn't find that out till the day before we left but was still able to get on there to check our flight to Vegas the next day .\\n1 ...1
14food_swissotel_chicagoThe food for our event was delicious .\\n0 ...1
13food_holiday_inn_londonThe room was packed to capacity with queues at the food buffets .\\n0 The over zealous staff cleared our unfinished drinks while we were collecting cooked food and movement around the room with plates was difficult in the crowded circumstances .\\n1 ...1
45staff_bestwestern_hotel_sfoStaff are friendl...1
7comfort_toyota_camry_2007Ride seems comfortable and gas mileage fairly good averaging 26 city and 30 open road .\\n0 Seats are fine, in fact of all the smaller sedans this is the most comfortable I found for the price as I am 6', 2 and 250# .\\n1 Great gas mileage and comfortable on long trips ...1
6comfort_honda_accord_2008Drivers seat not comfortable, the car itself compared to other models of similar class .\\n0 ...1
46staff_swissotel_chicagoThe staff at Swissotel were not particularly nice .\\n0 Each time I waited at the counter for staff for several minutes and then was waved to the desk upon my turn with no hello or anything, or apology for waiting in line .\\n1 ...1
1bathroom_bestwestern_hotel_sfoThe room was not overly big, but clean and very comfortable beds, a great shower and very clean bathrooms .\\n0 The second room was smaller, with a very inconvenient bathroom layout, but at least it was quieter and we were able to sleep .\\n1 ...1
37seats_honda_accord_2008Front seats are very uncomfortable .\\n0 No memory seats, no trip computer, can only display outside temp with trip odometer .\\n1 ...1
41size_asus_netbook_1005haA few other things I'd like to point out is that you must push the micro, sized right angle end of the ac adapter until it snaps in place or the battery may not charge .\\n0 The full size right shift k...2
43speed_garmin_nuvi_255W_gpsAnother feature on the 255w is a display of the posted speed limit on the road which you are currently on right above your current displayed speed .\\n0 I found myself not even looking at my car speedometer as I could easily see my current speed and the speed limit of my route at a glance .\\n1 ...2
47transmission_toyota_camry_2007After slowing down, transmission has to be kicked to speed up .\\n0 ...2
48updates_garmin_nuvi_255W_gpsAnother thing to consider was that I paid $50 less for the 750 and it came with the FM transmitter cable and a USB cord to connect it to your computer for updates and downloads .\\n0 update and reroute much _more_ quickly than my other GPS .\\n1 UPDATE ON THIS , It finally turned out that to see the elevation contours at lowe...2
42sound_ipod_nano_8gbheadphone jack i got a clear case for it and it i got a clear case for it and it like prvents me from being able to put the jack all the way in so the sound can b messsed up or i can get it in there and its playing well them go to move or something and it slides out .\\n0 Picture and sound quality are excellent for this typ of devic .\\n1 ...2
0accuracy_garmin_nuvi_255W_gps, and is very, very accurate .\\n0 but for the most part, we find that the Garmin software provides accurate directions, whereever we intend to go .\\n1 This functi...2
35screen_ipod_nano_8gbAs always, the video screen is sharp and bright .\\n0 2, inch screen and a glossy, polished aluminum finish that one CNET editor described as looking like a Christmas tree ornament .\\n1 ...2
34screen_garmin_nuvi_255W_gpsIt is easy to read and when touching the screen it works great !\\n0 and zoom out buttons on the 255w to the same side of the screen which makes it a bit easier .\\n1 ...2
33satellite_garmin_nuvi_255W_gpsIt's fast to acquire satellites .\\n0 If you've ever had a Brand X GPS take you on some strange route that adds 20 minutes to your trip, has you turn the wrong way down a one way road, tell you to turn AFTER you've passed the street, frequently loses the satellite signal, or has old maps missing streets, you know how important this stuff is .\\n1 ...2
26performance_netbook_1005haThe Eee Super Hybrid Engine utility lets users overclock or underclock their Eee PC's to boost performance or provide better battery life depending on their immediate requirements .\\n0 In Super Performance mode CPU, Z shows the bus speed to increase up to 169 .\\n1 One...2
49video_ipod_nano_8gbI bought the 8, gig Ipod Nano that has the built, in video camera .\\n0 Itunes has an on, line store, where you may purchase and download music and videos which will install onto the ipod .\\n1 ...2
19keyboard_netbook_1005ha, I think the new keyboard rivals the great hp mini keyboards .\\n0 Since the battery life difference is minimum, the only reason to upgrade would be to get the better keyboard .\\n1 The keyboard is now as good as t...2
11features_windows7I had to uninstall anti, virus and selected other programs, some of which did not have listings in the Programs and Features Control Panel section .\\n0 This review briefly touches upon some of the key features and enhancements of Microsoft's latest OS .\\n1 ...2
9display_garmin_nuvi_255W_gps3 quot widescreen display was a bonus .\\n0 This made for smoother graphics on the 255w of the vehicle moving along displayed roads, where the 750's display was more of a jerky movement .\\n1 ...2
8directions_garmin_nuvi_255W_gpsYou also get upscale features like spoken directions including street names and programmable POIs .\\n0 I used to hesitate to go out of my directions but no...2
4battery-life_netbook_1005ha6GHz 533FSB cpu, glossy display, 3, Cell 23Wh Li, ion Battery , and a 1 .\\n0 Not to mention that as of now...2
3battery-life_ipod_nano_8gbshort battery life I moved up from an 8gb .\\n0 I love this ipod except for the battery life .\\n1 ...2
2battery-life_amazon_kindleAfter I plugged it in to my USB hub on my computer to charge the battery the charging cord design is very clever !\\n0 After you have paged tru a 500, page book one, page, at, a, time to get from Chapter 2 to Chapter 15, see how excited you are about a low battery and all the time it took to get there !\\n1 ...2
36screen_netbook_1005haKeep in mind that once you get in a room full of light or step outdoors screen reflections could become annoying .\\n0 I've used mine outsi...2
50voice_garmin_nuvi_255W_gpsThe voice prompts and maps are wonderful especially when driving after dark .\\n0 I also thought the the voice prompts of the 750 where more pleasant sounding than the 255w's .\\n1 ...2
\n", + "
" + ], + "text/plain": [ + " filename \\\n", + "25 performance_honda_accord_2008 \n", + "16 gas_mileage_toyota_camry_2007 \n", + "22 mileage_honda_accord_2008 \n", + "23 navigation_amazon_kindle \n", + "12 fonts_amazon_kindle \n", + "10 eyesight-issues_amazon_kindle \n", + "27 price_amazon_kindle \n", + "44 speed_windows7 \n", + "29 quality_toyota_camry_2007 \n", + "5 buttons_amazon_kindle \n", + "21 location_holiday_inn_london \n", + "40 service_swissotel_hotel_chicago \n", + "30 rooms_bestwestern_hotel_sfo \n", + "24 parking_bestwestern_hotel_sfo \n", + "31 rooms_swissotel_chicago \n", + "32 room_holiday_inn_london \n", + "39 service_holiday_inn_london \n", + "28 price_holiday_inn_london \n", + "20 location_bestwestern_hotel_sfo \n", + "17 interior_honda_accord_2008 \n", + "18 interior_toyota_camry_2007 \n", + "38 service_bestwestern_hotel_sfo \n", + "15 free_bestwestern_hotel_sfo \n", + "14 food_swissotel_chicago \n", + "13 food_holiday_inn_london \n", + "45 staff_bestwestern_hotel_sfo \n", + "7 comfort_toyota_camry_2007 \n", + "6 comfort_honda_accord_2008 \n", + "46 staff_swissotel_chicago \n", + "1 bathroom_bestwestern_hotel_sfo \n", + "37 seats_honda_accord_2008 \n", + "41 size_asus_netbook_1005ha \n", + "43 speed_garmin_nuvi_255W_gps \n", + "47 transmission_toyota_camry_2007 \n", + "48 updates_garmin_nuvi_255W_gps \n", + "42 sound_ipod_nano_8gb \n", + "0 accuracy_garmin_nuvi_255W_gps \n", + "35 screen_ipod_nano_8gb \n", + "34 screen_garmin_nuvi_255W_gps \n", + "33 satellite_garmin_nuvi_255W_gps \n", + "26 performance_netbook_1005ha \n", + "49 video_ipod_nano_8gb \n", + "19 keyboard_netbook_1005ha \n", + "11 features_windows7 \n", + "9 display_garmin_nuvi_255W_gps \n", + "8 directions_garmin_nuvi_255W_gps \n", + "4 battery-life_netbook_1005ha \n", + "3 battery-life_ipod_nano_8gb \n", + "2 battery-life_amazon_kindle \n", + "36 screen_netbook_1005ha \n", + "50 voice_garmin_nuvi_255W_gps \n", + "\n", + " opinion_text \\\n", + "25 Very happy with my 08 Accord, performance is quite adequate it has nice looks and is a great long, distance cruiser .\\n0 6, 4, 3 eco engine has poor performance and gas mileage of 22 highway .\\n1 Overall performance is good but comfort level is poor .\\n2 ... \n", + "16 Ride seems comfortable and gas mileage fairly good averaging 26 city and 30 open road .\\n0 ... \n", + "22 It's quiet, get good gas mileage and looks clean inside and out .\\n0 The mileage is great, and I've had to get used to stopping less for gas .\\n1 Thought gas ... \n", + "23 In fact, the entire navigation structure has been completely revised , I'm still getting used to it but it's a huge step forward .\\n0 ... \n", + "12 Being able to change the font sizes is awesome !\\n0 For whatever reason, Amazon decided to make the Font on the Home Screen ... \n", + "10 It feels as easy to read as the K1 but doesn't seem any crisper to my eyes .\\n0 the white is really GREY, and to avoid considerable eye, strain I had to refresh pages every other page .\\n1 The dream has always been a portable electronic device that could hold a ton of reading material, automate subscriptions and fa... \n", + "27 If a case was included, as with the Kindle 1, that would have been reflected in a higher price .\\n0 lower overall price, with nice leather cover .\\n1 ... \n", + "44 Windows 7 is quite simply faster, more stable, boots faster, goes to sleep faster, comes back from sleep faster, manages your files better and on top of that it's beautiful to look at and easy to use .\\n0 , faster about 20% to 30% faster at running applications than my Vista , seriously\\n1 ... \n", + "29 I previously owned a Toyota 4Runner which had incredible build quality and reliability .\\n0 I bought the Camry because of Toyota reliability and qua... \n", + "5 I thought it would be fitting to christen my Kindle with the Stephen King novella UR, so went to the Amazon site on my computer and clicked on the button to buy it .\\n0 As soon as I'd clicked the button to confirm my order it appeared on my Kindle almost immediately !\\n1 ... \n", + "21 Great location for tube and we crammed in a fair amount of sightseeing in a short time .\\n0 All in all, a normal chain hotel on a nice lo... \n", + "40 Mediocre room and service for a very extravagant price .\\n0 ... \n", + "30 Great Location , Nice Rooms , H... \n", + "24 Parking was expensive but I think this is common for San Fran .\\n0 there is a fee for parking but well worth it seeing no where to park if you do have a car .\\n1 ... \n", + "31 The Swissotel is one of our favorite hotels in Chicago and the corner rooms have the most fantastic views in the city .\\n0 The rooms look like they were just remodled and upgraded, there was an HD TV and a nice iHome docking station to put my iPod so I could set the alarm to wake up with my music instead of the radio .\\n1 ... \n", + "32 We arrived at 23,30 hours and they could not recommend a restaurant so we decided to go to Tesco, with very limited choices but when you are hingry you do not careNext day they rang the bell at 8,00 hours to clean the room, not being very nice being waken up so earlyEvery day they gave u... \n", + "39 not customer, oriented hotelvery low service levelboor reception\\n0 The room was quiet, clean, the bed and pillows were comfortable, and the serv... \n", + "28 All in all, a normal chain hotel on a nice location , I will be back if I do not find anthing closer to Picadilly for a better price .\\n0 ... \n", + "20 Good Value good location , ideal choice .\\n0 Great Location , Nice Rooms , Helpless Concierge\\n1 ... \n", + "17 I love the new body style and the interior is a simple pleasure except for the center dash .\\n0 ... \n", + "18 First of all, the interior has way too many cheap plastic parts like the cheap plastic center piece that houses the clock .\\n0 3 blown struts at 30,000 miles, interior trim coming loose and rattling squeaking, stains on paint, and bug splats taking paint off, premature uneven brake wear, on 3rd windsh... \n", + "38 Both of us having worked in tourism for over 14 years were very disappointed at the level of service provided by this gentleman .\\n0 The service was good, very friendly staff and we loved the free wine reception each night .\\n1 ... \n", + "15 The wine reception is a great idea as it is nice to meet other travellers and great having access to the free Internet access in our room .\\n0 They also have a computer available with free internet which is a nice bonus but I didn't find that out till the day before we left but was still able to get on there to check our flight to Vegas the next day .\\n1 ... \n", + "14 The food for our event was delicious .\\n0 ... \n", + "13 The room was packed to capacity with queues at the food buffets .\\n0 The over zealous staff cleared our unfinished drinks while we were collecting cooked food and movement around the room with plates was difficult in the crowded circumstances .\\n1 ... \n", + "45 Staff are friendl... \n", + "7 Ride seems comfortable and gas mileage fairly good averaging 26 city and 30 open road .\\n0 Seats are fine, in fact of all the smaller sedans this is the most comfortable I found for the price as I am 6', 2 and 250# .\\n1 Great gas mileage and comfortable on long trips ... \n", + "6 Drivers seat not comfortable, the car itself compared to other models of similar class .\\n0 ... \n", + "46 The staff at Swissotel were not particularly nice .\\n0 Each time I waited at the counter for staff for several minutes and then was waved to the desk upon my turn with no hello or anything, or apology for waiting in line .\\n1 ... \n", + "1 The room was not overly big, but clean and very comfortable beds, a great shower and very clean bathrooms .\\n0 The second room was smaller, with a very inconvenient bathroom layout, but at least it was quieter and we were able to sleep .\\n1 ... \n", + "37 Front seats are very uncomfortable .\\n0 No memory seats, no trip computer, can only display outside temp with trip odometer .\\n1 ... \n", + "41 A few other things I'd like to point out is that you must push the micro, sized right angle end of the ac adapter until it snaps in place or the battery may not charge .\\n0 The full size right shift k... \n", + "43 Another feature on the 255w is a display of the posted speed limit on the road which you are currently on right above your current displayed speed .\\n0 I found myself not even looking at my car speedometer as I could easily see my current speed and the speed limit of my route at a glance .\\n1 ... \n", + "47 After slowing down, transmission has to be kicked to speed up .\\n0 ... \n", + "48 Another thing to consider was that I paid $50 less for the 750 and it came with the FM transmitter cable and a USB cord to connect it to your computer for updates and downloads .\\n0 update and reroute much _more_ quickly than my other GPS .\\n1 UPDATE ON THIS , It finally turned out that to see the elevation contours at lowe... \n", + "42 headphone jack i got a clear case for it and it i got a clear case for it and it like prvents me from being able to put the jack all the way in so the sound can b messsed up or i can get it in there and its playing well them go to move or something and it slides out .\\n0 Picture and sound quality are excellent for this typ of devic .\\n1 ... \n", + "0 , and is very, very accurate .\\n0 but for the most part, we find that the Garmin software provides accurate directions, whereever we intend to go .\\n1 This functi... \n", + "35 As always, the video screen is sharp and bright .\\n0 2, inch screen and a glossy, polished aluminum finish that one CNET editor described as looking like a Christmas tree ornament .\\n1 ... \n", + "34 It is easy to read and when touching the screen it works great !\\n0 and zoom out buttons on the 255w to the same side of the screen which makes it a bit easier .\\n1 ... \n", + "33 It's fast to acquire satellites .\\n0 If you've ever had a Brand X GPS take you on some strange route that adds 20 minutes to your trip, has you turn the wrong way down a one way road, tell you to turn AFTER you've passed the street, frequently loses the satellite signal, or has old maps missing streets, you know how important this stuff is .\\n1 ... \n", + "26 The Eee Super Hybrid Engine utility lets users overclock or underclock their Eee PC's to boost performance or provide better battery life depending on their immediate requirements .\\n0 In Super Performance mode CPU, Z shows the bus speed to increase up to 169 .\\n1 One... \n", + "49 I bought the 8, gig Ipod Nano that has the built, in video camera .\\n0 Itunes has an on, line store, where you may purchase and download music and videos which will install onto the ipod .\\n1 ... \n", + "19 , I think the new keyboard rivals the great hp mini keyboards .\\n0 Since the battery life difference is minimum, the only reason to upgrade would be to get the better keyboard .\\n1 The keyboard is now as good as t... \n", + "11 I had to uninstall anti, virus and selected other programs, some of which did not have listings in the Programs and Features Control Panel section .\\n0 This review briefly touches upon some of the key features and enhancements of Microsoft's latest OS .\\n1 ... \n", + "9 3 quot widescreen display was a bonus .\\n0 This made for smoother graphics on the 255w of the vehicle moving along displayed roads, where the 750's display was more of a jerky movement .\\n1 ... \n", + "8 You also get upscale features like spoken directions including street names and programmable POIs .\\n0 I used to hesitate to go out of my directions but no... \n", + "4 6GHz 533FSB cpu, glossy display, 3, Cell 23Wh Li, ion Battery , and a 1 .\\n0 Not to mention that as of now... \n", + "3 short battery life I moved up from an 8gb .\\n0 I love this ipod except for the battery life .\\n1 ... \n", + "2 After I plugged it in to my USB hub on my computer to charge the battery the charging cord design is very clever !\\n0 After you have paged tru a 500, page book one, page, at, a, time to get from Chapter 2 to Chapter 15, see how excited you are about a low battery and all the time it took to get there !\\n1 ... \n", + "36 Keep in mind that once you get in a room full of light or step outdoors screen reflections could become annoying .\\n0 I've used mine outsi... \n", + "50 The voice prompts and maps are wonderful especially when driving after dark .\\n0 I also thought the the voice prompts of the 750 where more pleasant sounding than the 255w's .\\n1 ... \n", + "\n", + " cluster_label \n", + "25 0 \n", + "16 0 \n", + "22 0 \n", + "23 0 \n", + "12 0 \n", + "10 0 \n", + "27 0 \n", + "44 0 \n", + "29 0 \n", + "5 0 \n", + "21 1 \n", + "40 1 \n", + "30 1 \n", + "24 1 \n", + "31 1 \n", + "32 1 \n", + "39 1 \n", + "28 1 \n", + "20 1 \n", + "17 1 \n", + "18 1 \n", + "38 1 \n", + "15 1 \n", + "14 1 \n", + "13 1 \n", + "45 1 \n", + "7 1 \n", + "6 1 \n", + "46 1 \n", + "1 1 \n", + "37 1 \n", + "41 2 \n", + "43 2 \n", + "47 2 \n", + "48 2 \n", + "42 2 \n", + "0 2 \n", + "35 2 \n", + "34 2 \n", + "33 2 \n", + "26 2 \n", + "49 2 \n", + "19 2 \n", + "11 2 \n", + "9 2 \n", + "8 2 \n", + "4 2 \n", + "3 2 \n", + "2 2 \n", + "36 2 \n", + "50 2 " + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.cluster import KMeans\n", + "\n", + "# 3개의 집합으로 군집화 \n", + "km_cluster = KMeans(n_clusters=3, max_iter=10000, random_state=0)\n", + "km_cluster.fit(feature_vect)\n", + "cluster_label = km_cluster.labels_\n", + "\n", + "document_df['cluster_label'] = cluster_label\n", + "document_df.sort_values(by='cluster_label')" + ] + }, + { + "cell_type": "markdown", + "id": "5ced57b1-a6f8-4190-8df4-1d6a25972122", + "metadata": {}, + "source": [ + "- 0은 주로 자동차 리뷰 군집\n", + "- 1은 호텔 리뷰 군집\n", + "- 2는 전자기기 관련 리뷰 군집화 되었다!" + ] + }, + { + "cell_type": "markdown", + "id": "ecde5971-36b0-4722-b12d-2076c4e2ba4e", + "metadata": {}, + "source": [ + "- **군집별 핵심 단어 추출하기** " + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "id": "8e9c5c2c-1a6c-42d1-a245-80c2dc59d489", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "cluster_centers shape : (3, 4610)\n", + "[[0.00580396 0.00092552 0. ... 0. 0. 0. ]\n", + " [0. 0.00075846 0.00133071 ... 0. 0.00139731 0.00110157]\n", + " [0.00966614 0. 0. ... 0.0088286 0. 0. ]]\n" + ] + } + ], + "source": [ + "cluster_centers = km_cluster.cluster_centers_\n", + "print('cluster_centers shape :',cluster_centers.shape)\n", + "print(cluster_centers)" + ] + }, + { + "cell_type": "markdown", + "id": "bfdfa50d-f240-4b0f-b839-84a8883b3396", + "metadata": {}, + "source": [ + "➡️ 군집이 3개, word 피처가 4610개로 구성되었음을 의미" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "id": "9650b2a3-3ea0-4b07-9da1-a3856bcd1e99", + "metadata": {}, + "outputs": [], + "source": [ + "# 군집별 top n 핵심단어, 그 단어의 중심 위치 상대값, 대상 파일명들 반환\n", + "def get_cluster_details(cluster_model, cluster_data, feature_names, clusters_num, top_n_features=10):\n", + " cluster_details = {}\n", + " \n", + " centroid_feature_ordered_ind = cluster_model.cluster_centers_.argsort()[:,::-1]\n", + " \n", + " #개별 군집별로 핵심단어, 그 단어의 중심 위치 상대값, 대상 파일명 입력\n", + " for cluster_num in range(clusters_num):\n", + " cluster_details[cluster_num] = {}\n", + " cluster_details[cluster_num]['cluster'] = cluster_num\n", + " \n", + " top_feature_indexes = centroid_feature_ordered_ind[cluster_num, :top_n_features]\n", + " top_features = [ feature_names[ind] for ind in top_feature_indexes ]\n", + " \n", + " top_feature_values = cluster_model.cluster_centers_[cluster_num, top_feature_indexes].tolist()\n", + " \n", + " cluster_details[cluster_num]['top_features'] = top_features\n", + " cluster_details[cluster_num]['top_features_value'] = top_feature_values\n", + " filenames = cluster_data[cluster_data['cluster_label'] == cluster_num]['filename']\n", + " filenames = filenames.values.tolist()\n", + " cluster_details[cluster_num]['filenames'] = filenames\n", + " \n", + " return cluster_details" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "id": "aefb209a-e2e0-4ddf-8f09-0878c9a7ea32", + "metadata": {}, + "outputs": [], + "source": [ + "def print_cluster_details(cluster_details):\n", + " for cluster_num, cluster_detail in cluster_details.items():\n", + " print('####### Cluster {0}'.format(cluster_num))\n", + " print('Top features:', cluster_detail['top_features'])\n", + " print('Reviews 파일명 :',cluster_detail['filenames'][:7])\n", + " print('==================================================')" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "id": "69cb4367-c7b2-4e40-a7bb-bf70f3aabf83", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "####### Cluster 0\n", + "Top features: ['mileage', 'kindle', 'page', 'gas', 'button', 'gas mileage', 'font', 'performance', 'book', 'eye']\n", + "Reviews 파일명 : ['buttons_amazon_kindle', 'eyesight-issues_amazon_kindle', 'fonts_amazon_kindle', 'gas_mileage_toyota_camry_2007', 'mileage_honda_accord_2008', 'navigation_amazon_kindle', 'performance_honda_accord_2008']\n", + "==================================================\n", + "####### Cluster 1\n", + "Top features: ['room', 'hotel', 'service', 'staff', 'interior', 'food', 'location', 'seat', 'comfortable', 'bathroom']\n", + "Reviews 파일명 : ['bathroom_bestwestern_hotel_sfo', 'comfort_honda_accord_2008', 'comfort_toyota_camry_2007', 'food_holiday_inn_london', 'food_swissotel_chicago', 'free_bestwestern_hotel_sfo', 'interior_honda_accord_2008']\n", + "==================================================\n", + "####### Cluster 2\n", + "Top features: ['screen', 'battery', 'battery life', 'life', 'keyboard', 'video', 'direction', 'voice', 'map', 'feature']\n", + "Reviews 파일명 : ['accuracy_garmin_nuvi_255W_gps', 'battery-life_amazon_kindle', 'battery-life_ipod_nano_8gb', 'battery-life_netbook_1005ha', 'directions_garmin_nuvi_255W_gps', 'display_garmin_nuvi_255W_gps', 'features_windows7']\n", + "==================================================\n" + ] + } + ], + "source": [ + "feature_names = tfidf_vect.get_feature_names_out()\n", + "\n", + "cluster_details = get_cluster_details(cluster_model=km_cluster, cluster_data=document_df,\\\n", + " feature_names=feature_names, clusters_num=3, top_n_features=10 )\n", + "print_cluster_details(cluster_details)" + ] + }, + { + "cell_type": "markdown", + "id": "5fc3ed23-8bf4-42d0-a419-cc1e38caa88b", + "metadata": {}, + "source": [ + "➡️ 자동차 리뷰 관련 + 킨들 리뷰가 섞인 0번 군집에서는 'button', 'gas', 'page'등의 핵심단어가 군집화
\n", + "➡️ 호텔 리뷰 1번 군집에서는 'room', 'hotel', 'service' 등 핵심단어로 군집화
\n", + "➡️ 전자기기관련 군집에서는 'screen', 'battery', 'life' 등 핵심단어로 군집화" + ] + }, + { + "cell_type": "markdown", + "id": "f8f1af3b-508d-4a02-80d3-3a10556613ba", + "metadata": {}, + "source": [ + "## **8.8 문서 유사도**" + ] + }, + { + "cell_type": "markdown", + "id": "097945fc-ea9f-45c8-b50c-69ab5d2d73ff", + "metadata": {}, + "source": [ + "- 두개의 넘파이 배열에 대한 코사인 유사도 구하는 함수 작성" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "id": "012d98d0-1559-4423-a2d2-d34bc59af802", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", + "def cos_similarity(v1, v2):\n", + " dot_product = np.dot(v1, v2)\n", + " l2_norm = (np.sqrt(sum(np.square(v1))) * np.sqrt(sum(np.square(v2))))\n", + " similarity = dot_product / l2_norm \n", + " \n", + " return similarity" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "id": "ce4f1e1d-dc4d-4163-9c82-3c379638781c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(3, 18)\n" + ] + } + ], + "source": [ + "from sklearn.feature_extraction.text import TfidfVectorizer\n", + "\n", + "doc_list = ['if you take the blue pill, the story ends' ,\n", + " 'if you take the red pill, you stay in Wonderland',\n", + " 'if you take the red pill, I show you how deep the rabbit hole goes']\n", + "\n", + "tfidf_vect_simple = TfidfVectorizer()\n", + "feature_vect_simple = tfidf_vect_simple.fit_transform(doc_list)\n", + "print(feature_vect_simple.shape)" + ] + }, + { + "cell_type": "markdown", + "id": "ce013b83-73a2-4765-9d87-7f0c7df8ba0c", + "metadata": {}, + "source": [ + "➡️ 희소 행렬이 반환됨" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "id": "3194fa09-ba6c-4217-a5f2-c22da9aa3903", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "문장 1, 문장 2 Cosine 유사도: 0.402\n" + ] + } + ], + "source": [ + "# Dense Matrix로 변환. \n", + "feature_vect_dense = feature_vect_simple.todense()\n", + "\n", + "#첫번째 문장과 두번째 문장의 feature vector\n", + "vect1 = np.array(feature_vect_dense[0]).reshape(-1,)\n", + "vect2 = np.array(feature_vect_dense[1]).reshape(-1,)\n", + "\n", + "# 두개 문장의 Cosine 유사도 추출\n", + "similarity_simple = cos_similarity(vect1, vect2 )\n", + "print('문장 1, 문장 2 Cosine 유사도: {0:.3f}'.format(similarity_simple))" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "id": "dc9b4dcd-6c43-44d5-a57c-0a7c21665ae2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "문장 1, 문장 3 Cosine 유사도: 0.404\n", + "문장 2, 문장 3 Cosine 유사도: 0.456\n" + ] + } + ], + "source": [ + "vect1 = np.array(feature_vect_dense[0]).reshape(-1,)\n", + "vect3 = np.array(feature_vect_dense[2]).reshape(-1,)\n", + "similarity_simple = cos_similarity(vect1, vect3 )\n", + "print('문장 1, 문장 3 Cosine 유사도: {0:.3f}'.format(similarity_simple))\n", + "\n", + "vect2 = np.array(feature_vect_dense[1]).reshape(-1,)\n", + "vect3 = np.array(feature_vect_dense[2]).reshape(-1,)\n", + "similarity_simple = cos_similarity(vect2, vect3 )\n", + "print('문장 2, 문장 3 Cosine 유사도: {0:.3f}'.format(similarity_simple))" + ] + }, + { + "cell_type": "markdown", + "id": "eceb532b-2e22-4e7c-b304-c89a106d059d", + "metadata": {}, + "source": [ + "- 제공되는 API 사용해서 진행" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "id": "2f188124-3ddf-4b6c-ad0a-a94161bf7639", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[1. 0.40207758 0.40425045]]\n" + ] + } + ], + "source": [ + "from sklearn.metrics.pairwise import cosine_similarity\n", + "\n", + "similarity_simple_pair = cosine_similarity(feature_vect_simple[0] , feature_vect_simple)\n", + "print(similarity_simple_pair)" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "id": "4308afd1-9b69-4df3-9a99-4e560ca4b20c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0.40207758 0.40425045]]\n" + ] + } + ], + "source": [ + "similarity_simple_pair = cosine_similarity(feature_vect_simple[0] , feature_vect_simple[1:])\n", + "print(similarity_simple_pair)" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "id": "d3f3c470-523c-4cf0-84a7-58152c1c878b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[1. 0.40207758 0.40425045]\n", + " [0.40207758 1. 0.45647296]\n", + " [0.40425045 0.45647296 1. ]]\n", + "shape: (3, 3)\n" + ] + } + ], + "source": [ + "similarity_simple_pair = cosine_similarity(feature_vect_simple , feature_vect_simple)\n", + "print(similarity_simple_pair)\n", + "print('shape:',similarity_simple_pair.shape)" + ] + }, + { + "cell_type": "markdown", + "id": "c95cda78-f3b6-49f6-a45d-9f9a89c4a2e8", + "metadata": {}, + "source": [ + "➡️ 3,3 형태의 ndarray, 첫번째 로우는 1번 문서와 2,3번 문서의 코사인 유사도를 나타냄\n", + "\n", + "\n", + "\n", + "- Opinion Review 데이터 세트를 이용한 문서 유사도 측정" + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "id": "15489801-b6b1-4655-b4f2-ae318e1b7ccc", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import glob, os\n", + "from sklearn.feature_extraction.text import TfidfVectorizer\n", + "from sklearn.cluster import KMeans\n", + "import warnings\n", + "warnings.filterwarnings('ignore')\n", + "\n", + "path = r'C:\\Users\\SAMSUNG\\JypyterWorkspace\\eunron-ML\\Text\\OpinosisDataset1.0\\topics'\n", + "all_files = glob.glob(os.path.join(path, \"*.data\")) \n", + "filename_list = []\n", + "opinion_text = []\n", + "\n", + "for file_ in all_files:\n", + " df = pd.read_table(file_,index_col=None, header=0,encoding='latin1')\n", + " filename_ = file_.split('\\\\')[-1]\n", + " filename = filename_.split('.')[0]\n", + " filename_list.append(filename)\n", + " opinion_text.append(df.to_string())\n", + "\n", + "document_df = pd.DataFrame({'filename':filename_list, 'opinion_text':opinion_text})\n", + "\n", + "tfidf_vect = TfidfVectorizer(tokenizer=LemNormalize, stop_words='english' , \\\n", + " ngram_range=(1,2), min_df=0.05, max_df=0.85 )\n", + "feature_vect = tfidf_vect.fit_transform(document_df['opinion_text'])\n", + "\n", + "km_cluster = KMeans(n_clusters=3, max_iter=10000, random_state=0)\n", + "km_cluster.fit(feature_vect)\n", + "cluster_label = km_cluster.labels_\n", + "cluster_centers = km_cluster.cluster_centers_\n", + "document_df['cluster_label'] = cluster_label" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "id": "400c5f24-98fd-4b58-8f52-0a3ed597513f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "호텔로 클러스터링 된 문서들의 DataFrame Index: Index([1, 6, 7, 13, 14, 15, 17, 18, 20, 21, 24, 28, 30, 31, 32, 37, 38, 39, 40,\n", + " 45, 46],\n", + " dtype='int64')\n", + "##### 비교 기준 문서명 bathroom_bestwestern_hotel_sfo 와 타 문서 유사도######\n", + "[[1. 0.03787848 0.04575335 0.0430688 0.05221246 0.06189595\n", + " 0.01879149 0.014752 0.05857476 0.06193142 0.03638645 0.11742762\n", + " 0.38038807 0.32629328 0.51442565 0.0164234 0.11282857 0.13989601\n", + " 0.13867904 0.09518076 0.07049388]]\n" + ] + } + ], + "source": [ + "from sklearn.metrics.pairwise import cosine_similarity\n", + "\n", + "hotel_indexes = document_df[document_df['cluster_label']==1].index\n", + "print('호텔로 클러스터링 된 문서들의 DataFrame Index:', hotel_indexes)\n", + "\n", + "# 호텔 데이터 중 첫번째 문서를 추출하여 파일명 표시 \n", + "comparison_docname = document_df.iloc[hotel_indexes[0]]['filename']\n", + "print('##### 비교 기준 문서명 ',comparison_docname,' 와 타 문서 유사도######')\n", + "\n", + "similarity_pair = cosine_similarity(feature_vect[hotel_indexes[0]] , feature_vect[hotel_indexes])\n", + "print(similarity_pair)" + ] + }, + { + "cell_type": "markdown", + "id": "c8fc53bc-ae9d-4641-8758-c79b78015d4a", + "metadata": {}, + "source": [ + " ➡️정렬, 시각화 해보자" + ] + }, + { + "cell_type": "code", + "execution_count": 126, + "id": "74220406-5510-4f5c-ae55-fcf86ddd288f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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ogQhISG4urrSp08fWrRowcyZM5W6Dh48SOPGjWnQoAGOjo60aNGCunXrcvToUa3jFUIIIcSn67MY/L8oJCQET09PTp48Sa9evfj++++VgXLWIGnXrl0kJyezbt06AFauXMno0aOZOHEisbGxTJo0iVGjRrFs2TKNsocPH07//v2JjY1VrsY+b/369fTv35/Bgwdz5swZevToQadOnQgPD9fIFxwcTNOmTTl9+jSdO3fWql0//PADISEhHD9+HF1dXY39tK137NixtGrVilOnTlG/fn3atWvH7du3Abh69SrNmjWjUaNGREdH07VrV4YPH66x/6NHj6hcuTKbN2/mzJkzdO/enfbt22s9+Lx//z6DBg3i+PHj7N69mwIFCtC0aVMyMzMBSEtLw8fHh2vXrrFx40ZiYmIYOnSokr5582aaNm1K/fr1OXnyJLt376Zq1apK+YGBgRw/fpyNGzdy6NAh1Go19evX13jW/oMHD/jxxx9ZsmQJZ8+excbGhsDAQK5evUp4eDhr1qxh/vz53Lx5U6s25STrGby6us9uvh06dAh3d3cKFy6s5PH39yc1NZWzZ88qefz8/DTK8ff359ChQ8r36tWrs3v3bmWqWUxMDAcOHKBevXqvHasQQgghPiHqz4CPj4+6f//+arVarS5evLj6u+++U9IyMzPVNjY26gULFqjVarX68uXLakB98uRJjTJKlSqlXrVqlca28ePHq728vDT2mzVrlkae0NBQtbm5ufK9evXq6m7dumnkadmypbp+/frKd0A9YMAArdsXHh6uBtS7du1Stm3evFkNqB8+fJinekeOHKl8T0tLUwPqrVu3qtVqtXrEiBHqsmXLapQxbNgwNaC+c+dOrvE1aNBAPXjwYK3b87z//e9/akB9+vRptVqtVi9atEhtamqqvnXrVo75vby81O3atcsx7cKFC2pAHRkZqWz7999/1YaGhuo//vhDrVY/O16AOjo6WskTFxenBtRHjx5VtsXGxqoB9cyZM1+rTQ4ODur//Oc/yrZu3bqp69atq5Hv/v37akC9ZcsWtVqtVjs5OaknTZqkkSfrOD948ECtVqvVGRkZ6mHDhqlVKpVaV1dXrVKpsu3zokePHqlTUlKUz9WrV9WA2qPvQnWlIcte+yOEEEKIdyclJUUNqFNSUl6a77O88l++fHnl3yqVCltb25dexb1/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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import seaborn as sns\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n", + " \n", + "sorted_index = similarity_pair.argsort()[:,::-1]\n", + "sorted_index = sorted_index[:, 1:]\n", + "\n", + "# 유사도 큰 순으로 hotel_indexes 재정렬 \n", + "hotel_sorted_indexes = hotel_indexes[sorted_index.reshape(-1)]\n", + "\n", + "\n", + "hotel_1_sim_value = np.sort(similarity_pair.reshape(-1))[::-1]\n", + "hotel_1_sim_value = hotel_1_sim_value[1:]\n", + "\n", + "# 시각화\n", + "hotel_1_sim_df = pd.DataFrame()\n", + "hotel_1_sim_df['filename'] = document_df.iloc[hotel_sorted_indexes]['filename']\n", + "hotel_1_sim_df['similarity'] = hotel_1_sim_value\n", + "\n", + "fig1 = plt.gcf()\n", + "sns.barplot(x='similarity', y='filename',data=hotel_1_sim_df)\n", + "plt.title(comparison_docname)\n", + "fig1.savefig('p553_hotel.tif', format='tif', dpi=300, bbox_inches='tight')" + ] + }, + { + "cell_type": "markdown", + "id": "f8742107-2b4c-4021-a25d-5bd6d8c5b0d1", + "metadata": {}, + "source": [ + "➡️ 첫번째 문서와 가장 비슷한 문서는 room_holiday_inn_london" + ] + }, + { + "cell_type": "markdown", + "id": "8eb7e5b7-a0ac-4267-b4c1-a095e9e66542", + "metadata": {}, + "source": [ + "## **8.9한글 텍스트 처리 - 네이버 영화 평점 감정 분석**" + ] + }, + { + "cell_type": "code", + "execution_count": 131, + "id": "8b1b598f-dab3-4656-833c-914f16f236cf", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
iddocumentlabel
09976970아 더빙.. 진짜 짜증나네요 목소리0
13819312흠...포스터보고 초딩영화줄....오버연기조차 가볍지 않구나1
210265843너무재밓었다그래서보는것을추천한다0
\n", + "
" + ], + "text/plain": [ + " id document label\n", + "0 9976970 아 더빙.. 진짜 짜증나네요 목소리 0\n", + "1 3819312 흠...포스터보고 초딩영화줄....오버연기조차 가볍지 않구나 1\n", + "2 10265843 너무재밓었다그래서보는것을추천한다 0" + ] + }, + "execution_count": 131, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "train_df = pd.read_csv('ratings_train.txt', sep='\\t')\n", + "train_df.head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 135, + "id": "e5afe4ea-521e-4109-b2b2-a0fcd66b22f2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "label\n", + "0 75173\n", + "1 74827\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 135, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df['label'].value_counts( )" + ] + }, + { + "cell_type": "markdown", + "id": "7468eb61-0132-46f8-a50e-6c46082eeb3b", + "metadata": {}, + "source": [ + "➡️ 균등 분포" + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "id": "02a063bf-e626-4a21-9613-ff0e5e15e1d5", + "metadata": {}, + "outputs": [], + "source": [ + "import re\n", + "\n", + "train_df = train_df.fillna(' ')\n", + "# 숫자를 공백으로 변경 \n", + "train_df['document'] = train_df['document'].apply( lambda x : re.sub(r\"\\d+\", \" \", x) )\n", + "\n", + "test_df = pd.read_csv('ratings_test.txt', sep='\\t')\n", + "test_df = test_df.fillna(' ')\n", + "test_df['document'] = test_df['document'].apply( lambda x : re.sub(r\"\\d+\", \" \", x) )\n", + "\n", + "# id 칼럼 삭제 \n", + "train_df.drop('id', axis=1, inplace=True) \n", + "test_df.drop('id', axis=1, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "id": "697dbeb8-3860-4773-b7eb-b92eb8bfa8d9", + "metadata": {}, + "outputs": [], + "source": [ + "from konlpy.tag import Twitter\n", + "\n", + "twitter = Twitter()\n", + "def tw_tokenizer(text):\n", + " # text 를 형태소 단어로 토큰화 \n", + " tokens_ko = twitter.morphs(text)\n", + " return tokens_ko" + ] + }, + { + "cell_type": "code", + "execution_count": 144, + "id": "e04e4e42-542d-496a-92cc-b6b0a47214c3", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.feature_extraction.text import TfidfVectorizer\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.model_selection import GridSearchCV\n", + "\n", + "# tokenizer사용 ngram_range는 (1,2) \n", + "tfidf_vect = TfidfVectorizer(tokenizer=tw_tokenizer, ngram_range=(1,2), min_df=3, max_df=0.9)\n", + "tfidf_vect.fit(train_df['document'])\n", + "tfidf_matrix_train = tfidf_vect.transform(train_df['document'])" + ] + }, + { + "cell_type": "markdown", + "id": "f574fe93-6caf-4df0-9b62-ca07c407b072", + "metadata": {}, + "source": [ + "- 로지스틱 회귀를 이용해 감성 분석 수행" + ] + }, + { + "cell_type": "code", + "execution_count": 146, + "id": "7348a09c-d264-416c-8b4b-e000612d0137", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fitting 3 folds for each of 5 candidates, totalling 15 fits\n", + "{'C': 3.5} 0.8593\n" + ] + } + ], + "source": [ + "lg_clf = LogisticRegression(random_state=0, solver='liblinear')\n", + "\n", + "# C 최적화를 위한 GridSearchCV \n", + "params = { 'C': [1 ,3.5, 4.5, 5.5, 10 ] }\n", + "grid_cv = GridSearchCV(lg_clf , param_grid=params , cv=3 ,scoring='accuracy', verbose=1 )\n", + "grid_cv.fit(tfidf_matrix_train , train_df['label'] )\n", + "print(grid_cv.best_params_ , round(grid_cv.best_score_,4))" + ] + }, + { + "cell_type": "markdown", + "id": "c45a2718-9b96-499d-8937-8de44dc5b455", + "metadata": {}, + "source": [ + "- 최종 감석 분석 예측 수행" + ] + }, + { + "cell_type": "code", + "execution_count": 148, + "id": "8a30aea2-92d7-49e3-9408-ebea89192126", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logistic Regression 정확도: 0.86172\n" + ] + } + ], + "source": [ + "from sklearn.metrics import accuracy_score\n", + "\n", + "tfidf_matrix_test = tfidf_vect.transform(test_df['document'])\n", + "\n", + "best_estimator = grid_cv.best_estimator_\n", + "preds = best_estimator.predict(tfidf_matrix_test)\n", + "\n", + "print('Logistic Regression 정확도: ',accuracy_score(test_df['label'],preds))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python (tf)", + "language": "python", + "name": "tf" + }, + "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.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From fb4ecb7eedc6ea04927ca2537e0c08e3784aebd3 Mon Sep 17 00:00:00 2001 From: Eunbi <121873609+eeeunbiiii@users.noreply.github.com> Date: Tue, 3 Jun 2025 00:39:45 +0900 Subject: [PATCH 2/3] Add files via upload --- ...4_\352\263\240\354\235\200\353\271\204.pdf" | Bin 0 -> 345600 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "Week13_\354\230\210\354\212\265\352\263\274\354\240\234_\352\263\240\354\235\200\353\271\204.pdf" diff --git "a/Week13_\354\230\210\354\212\265\352\263\274\354\240\234_\352\263\240\354\235\200\353\271\204.pdf" "b/Week13_\354\230\210\354\212\265\352\263\274\354\240\234_\352\263\240\354\235\200\353\271\204.pdf" new file mode 100644 index 0000000000000000000000000000000000000000..23c788a23c134e5626536f306ebc6c9e7e1455d2 GIT binary patch literal 345600 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℘reIRTmzT1+&O8#PMt-3 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 literal 0 HcmV?d00001 From 92731a0499daad29d70eb6ff1beffbab2a93c516 Mon Sep 17 00:00:00 2001 From: Eunbi <121873609+eeeunbiiii@users.noreply.github.com> Date: Sun, 22 Jun 2025 12:41:49 +0900 Subject: [PATCH 3/3] Add files via upload --- ...352\263\240\354\235\200\353\271\204.ipynb" | 787 ++++++++++++++++++ 1 file changed, 787 insertions(+) create mode 100644 "Week13_\353\263\265\354\212\265\352\263\274\354\240\234_\352\263\240\354\235\200\353\271\204.ipynb" diff --git "a/Week13_\353\263\265\354\212\265\352\263\274\354\240\234_\352\263\240\354\235\200\353\271\204.ipynb" "b/Week13_\353\263\265\354\212\265\352\263\274\354\240\234_\352\263\240\354\235\200\353\271\204.ipynb" new file mode 100644 index 0000000..2cec22a --- /dev/null +++ "b/Week13_\353\263\265\354\212\265\352\263\274\354\240\234_\352\263\240\354\235\200\353\271\204.ipynb" @@ -0,0 +1,787 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e17edda0-739e-4a97-8f17-45a2586696d5", + "metadata": {}, + "source": [ + "# **텍스트 분석 실습**" + ] + }, + { + "cell_type": "markdown", + "id": "3e490f96-1174-4582-ab57-91c0d2d92a09", + "metadata": {}, + "source": [ + "### **캐글 Mercari Price Suggestion Challenge**\n", + "\n", + "\n", + "- 데이터 전처리" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "667397c6-455e-48c2-8f6f-653769162355", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(1482535, 8)\n" + ] + }, + { + "data": { + "text/html": [ + "

\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
train_idnameitem_condition_idcategory_namebrand_namepriceshippingitem_description
00MLB Cincinnati Reds T Shirt Size XL3Men/Tops/T-shirtsNaN10.01No description yet
11Razer BlackWidow Chroma Keyboard3Electronics/Computers & Tablets/Components & P...Razer52.00This keyboard is in great condition and works ...
22AVA-VIV Blouse1Women/Tops & Blouses/BlouseTarget10.01Adorable top with a hint of lace and a key hol...
\n", + "
" + ], + "text/plain": [ + " train_id name item_condition_id \\\n", + "0 0 MLB Cincinnati Reds T Shirt Size XL 3 \n", + "1 1 Razer BlackWidow Chroma Keyboard 3 \n", + "2 2 AVA-VIV Blouse 1 \n", + "\n", + " category_name brand_name price \\\n", + "0 Men/Tops/T-shirts NaN 10.0 \n", + "1 Electronics/Computers & Tablets/Components & P... Razer 52.0 \n", + "2 Women/Tops & Blouses/Blouse Target 10.0 \n", + "\n", + " shipping item_description \n", + "0 1 No description yet \n", + "1 0 This keyboard is in great condition and works ... \n", + "2 1 Adorable top with a hint of lace and a key hol... " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.linear_model import Ridge , LogisticRegression\n", + "from sklearn.model_selection import train_test_split , cross_val_score\n", + "from sklearn.feature_extraction.text import CountVectorizer , TfidfVectorizer\n", + "import pandas as pd\n", + "\n", + "mercari_df= pd.read_csv('mercari_train.tsv',sep='\\t')\n", + "print(mercari_df.shape)\n", + "mercari_df.head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "e76b7bcb-e40b-4b32-9f47-f024231ed764", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 1482535 entries, 0 to 1482534\n", + "Data columns (total 8 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 train_id 1482535 non-null int64 \n", + " 1 name 1482535 non-null object \n", + " 2 item_condition_id 1482535 non-null int64 \n", + " 3 category_name 1476208 non-null object \n", + " 4 brand_name 849853 non-null object \n", + " 5 price 1482535 non-null float64\n", + " 6 shipping 1482535 non-null int64 \n", + " 7 item_description 1482529 non-null object \n", + "dtypes: float64(1), int64(3), object(4)\n", + "memory usage: 90.5+ MB\n", + "None\n" + ] + } + ], + "source": [ + "print(mercari_df.info())" + ] + }, + { + "cell_type": "markdown", + "id": "8da6a921-e83a-46ee-b4cf-6a1cb66c4fd9", + "metadata": {}, + "source": [ + "➡️ 매우 많은 값의 null을 가지고 있는 칼럼이 존재" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "53cf3b77-66f7-4ab1-9e10-0351494d78a7", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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43Q6Td++fU1eXp7Xeo4ePWqGDh1qmjZtalwul3nwwQfNsWPHvGq2bdtmbr75ZuN0Os2VV15pZsyYUaWfd99911x77bXG4XCYrl27mlWrVnmN16SXc+FybwAA6qamr6F+xpz2Mb+4qNxut0JCQlRSUiKXy1Uv69y0aZOeWrFDLaO7SJKO7t2p5++KUVxcXL2sHwCAhqCmr6F8VxQAALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANgg0AALANnwebgwcP6q9//atatmyp4OBgxcTEaMuWLda4MUaTJ09W69atFRwcrMTERO3evdtrHUVFRRo2bJhcLpdCQ0OVkpKi48ePe9Vs375dt9xyi4KCghQVFaWZM2dW6eW9995Tp06dFBQUpJiYGK1evdprvCa9AAAA3/FpsPn555910003KTAwUB9//LF27typl156Sc2bN7dqZs6cqVdffVWLFi1SZmammjRpoqSkJJ08edKqGTZsmHJzc7V27VqtXLlSGzZs0MiRI61xt9utfv36qW3btsrKytKsWbM0depUvf7661bNxo0bNXToUKWkpGjr1q0aOHCgBg4cqJycnFr1AgAAfMj40Pjx483NN9981nGPx2MiIiLMrFmzrGXFxcXG6XSad955xxhjzM6dO40ks3nzZqvm448/Nn5+fubgwYPGGGMWLFhgmjdvbkpLS7223bFjR+v+PffcY5KTk722Hx8fbx555JEa93I+JSUlRpIpKSmpUX1NZGZmmsQJb5jBr200g1/baBInvGEyMzPrbf0AADQENX0N9ekRmw8//FC9e/fWf/7nfyosLEw9evTQP//5T2t87969ys/PV2JiorUsJCRE8fHxysjIkCRlZGQoNDRUvXv3tmoSExPl7++vzMxMq6ZPnz5yOBxWTVJSkvLy8vTzzz9bNadvp7Kmcjs16eVMpaWlcrvdXjcAAHDx+DTY/PDDD1q4cKGuueYaffLJJ3rsscf0xBNPaOnSpZKk/Px8SVJ4eLjX48LDw62x/Px8hYWFeY03atRILVq08Kqpbh2nb+NsNaePn6+XM02fPl0hISHWLSoq6ny/EgAAcAF8Gmw8Ho969uypF154QT169NDIkSM1YsQILVq0yJdt1ZuJEyeqpKTEuh04cMDXLQEAYGs+DTatW7dWly5dvJZ17txZ+/fvlyRFRERIkgoKCrxqCgoKrLGIiAgVFhZ6jZ86dUpFRUVeNdWt4/RtnK3m9PHz9XImp9Mpl8vldQMAABePT4PNTTfdpLy8PK9l3333ndq2bStJio6OVkREhNLT061xt9utzMxMJSQkSJISEhJUXFysrKwsq2bdunXyeDyKj4+3ajZs2KDy8nKrZu3aterYsaN1BVZCQoLXdiprKrdTk14AAIBv+TTYjB07Vl9//bVeeOEFff/993r77bf1+uuvKzU1VZLk5+enMWPG6LnnntOHH36oHTt26P7771dkZKQGDhwo6bcjPP3799eIESO0adMmffXVVxo1apSGDBmiyMhISdK9994rh8OhlJQU5ebmavny5XrllVeUlpZm9TJ69GitWbNGL730knbt2qWpU6dqy5YtGjVqVI17AQAAPnaJrtI6q48++sh069bNOJ1O06lTJ/P66697jXs8HjNp0iQTHh5unE6n6du3r8nLy/OqOXr0qBk6dKhp2rSpcblc5sEHHzTHjh3zqtm2bZu5+eabjdPpNFdeeaWZMWNGlV7effddc+211xqHw2G6du1qVq1aVetezoXLvQEAqJuavob6GWOMr8PV74Xb7VZISIhKSkrq7XybTZs26akVO9Qy+rdzlY7u3ann74pRXFxcvawfAICGoKavoT7/SgUAAID6QrABAAC2QbABAAC2QbABAAC2QbABAAC2QbABAAC2QbABAAC2QbABAAC2QbABAAC2QbABAAC2QbABAAC2QbABAAC2QbABAAC2QbABAAC2QbABAAC2QbABAAC2QbABAAC2QbABAAC2QbABAAC2Uadg0759ex09erTK8uLiYrVv3/6CmwIAAKiLOgWbffv2qaKiosry0tJSHTx48IKbAgAAqItGtSn+8MMPrZ8/+eQThYSEWPcrKiqUnp6udu3a1VtzAAAAtVGrYDNw4EBJkp+fn4YPH+41FhgYqHbt2umll16qt+YAAABqo1bBxuPxSJKio6O1efNmtWrV6qI0BQAAUBe1CjaV9u7dW999AAAAXLA6BRtJSk9PV3p6ugoLC60jOZXefPPNC24MAACgtuoUbKZNm6ZnnnlGvXv3VuvWreXn51fffQEAANRanYLNokWLtGTJEt1333313Q8AAECd1elzbMrKynTjjTfWdy8AAAAXpE7B5uGHH9bbb79d370AAABckDq9FXXy5Em9/vrr+vTTT3XdddcpMDDQa3z27Nn10hwAAEBt1CnYbN++XbGxsZKknJwcrzFOJAYAAL5Sp2Dz2Wef1XcfAAAAF6xO59gAAAA0RHU6YnP77bef8y2ndevW1bkhAACAuqpTsKk8v6ZSeXm5srOzlZOTU+XLMQEAAC6VOgWbOXPmVLt86tSpOn78+AU1BAAAUFf1eo7NX//6V74nCgAA+Ey9BpuMjAwFBQXV5yoBAABqrE5vRQ0aNMjrvjFGhw8f1pYtWzRp0qR6aQwAAKC26hRsQkJCvO77+/urY8eOeuaZZ9SvX796aQwAAKC26hRsFi9eXN99AAAAXLA6BZtKWVlZ+vbbbyVJXbt2VY8ePeqlKQAAgLqoU7ApLCzUkCFDtH79eoWGhkqSiouLdfvtt2vZsmW64oor6rNHAACAGqnTVVGPP/64jh07ptzcXBUVFamoqEg5OTlyu9164okn6rtHAACAGqnTEZs1a9bo008/VefOna1lXbp00fz58zl5GAAA+Eydjth4PB4FBgZWWR4YGCiPx3PBTQEAANRFnYLNH/7wB40ePVqHDh2ylh08eFBjx45V37596605AACA2qhTsJk3b57cbrfatWunq6++WldffbWio6Pldrs1d+7c+u4RAACgRup0jk1UVJS++eYbffrpp9q1a5ckqXPnzkpMTKzX5gAAAGqjVkds1q1bpy5dusjtdsvPz0//8R//occff1yPP/64rr/+enXt2lVffPHFxeoVAADgnGoVbF5++WWNGDFCLperylhISIgeeeQRzZ49u96aAwAAqI1aBZtt27apf//+Zx3v16+fsrKyLrgpAACAuqhVsCkoKKj2Mu9KjRo10pEjRy64KQAAgLqoVbC58sorlZOTc9bx7du3q3Xr1hfcFAAAQF3UKtj88Y9/1KRJk3Ty5MkqYydOnNCUKVN0xx131KmRGTNmyM/PT2PGjLGWnTx5UqmpqWrZsqWaNm2qu+++WwUFBV6P279/v5KTk9W4cWOFhYVp3LhxOnXqlFfN+vXr1bNnTzmdTnXo0EFLliypsv358+erXbt2CgoKUnx8vDZt2uQ1XpNeAACAb9Uq2Dz99NMqKirStddeq5kzZ+qDDz7QBx98oBdffFEdO3ZUUVGRnnrqqVo3sXnzZr322mu67rrrvJaPHTtWH330kd577z19/vnnOnTokAYNGmSNV1RUKDk5WWVlZdq4caOWLl2qJUuWaPLkyVbN3r17lZycrNtvv13Z2dkaM2aMHn74YX3yySdWzfLly5WWlqYpU6bom2++Uffu3ZWUlKTCwsIa9wIAABoAU0v79u0zAwYMMP7+/sbPz8/4+fkZf39/M2DAAPPDDz/UdnXm2LFj5pprrjFr1641t956qxk9erQxxpji4mITGBho3nvvPav222+/NZJMRkaGMcaY1atXG39/f5Ofn2/VLFy40LhcLlNaWmqMMebJJ580Xbt29drm4MGDTVJSknU/Li7OpKamWvcrKipMZGSkmT59eo17qYmSkhIjyZSUlNT4MeeTmZlpEie8YQa/ttEMfm2jSZzwhsnMzKy39QMA0BDU9DW01p883LZtW61evVo//fSTMjMz9fXXX+unn37S6tWrFR0dXetglZqaquTk5Cof7peVlaXy8nKv5Z06dVKbNm2UkZEhScrIyFBMTIzCw8OtmqSkJLndbuXm5lo1Z647KSnJWkdZWZmysrK8avz9/ZWYmGjV1KSX6pSWlsrtdnvdAADAxVOnTx6WpObNm+v666+/oI0vW7ZM33zzjTZv3lxlLD8/Xw6HQ6GhoV7Lw8PDlZ+fb9WcHmoqxyvHzlXjdrt14sQJ/fzzz6qoqKi2pvJTlWvSS3WmT5+uadOmnXUcAADUrzp9V1R9OHDggEaPHq233npLQUFBvmrjopo4caJKSkqs24EDB3zdEgAAtuazYJOVlaXCwkL17NlTjRo1UqNGjfT555/r1VdfVaNGjRQeHq6ysjIVFxd7Pa6goEARERGSpIiIiCpXJlXeP1+Ny+VScHCwWrVqpYCAgGprTl/H+XqpjtPplMvl8roBAICLx2fBpm/fvtqxY4eys7OtW+/evTVs2DDr58DAQKWnp1uPycvL0/79+5WQkCBJSkhI0I4dO7yuXlq7dq1cLpe6dOli1Zy+jsqaynU4HA716tXLq8bj8Sg9Pd2q6dWr13l7AQAAvlfnc2wuVLNmzdStWzevZU2aNFHLli2t5SkpKUpLS1OLFi3kcrn0+OOPKyEhQTfccIOk377CoUuXLrrvvvs0c+ZM5efn6+mnn1ZqaqqcTqck6dFHH9W8efP05JNP6qGHHtK6dev07rvvatWqVdZ209LSNHz4cPXu3VtxcXF6+eWX9csvv+jBBx+U9Nv3YJ2vFwAA4Hs+CzY1MWfOHPn7++vuu+9WaWmpkpKStGDBAms8ICBAK1eu1GOPPaaEhAQ1adJEw4cP1zPPPGPVREdHa9WqVRo7dqxeeeUVXXXVVXrjjTeUlJRk1QwePFhHjhzR5MmTlZ+fr9jYWK1Zs8brhOLz9QIAAHzPzxhjfN3E74Xb7VZISIhKSkrq7XybTZs26akVO9Qy+re33o7u3ann74pRXFxcvawfAICGoKavoQ36iA1qz1NxyvoMn0qxsbFyOBw+6ggAgEuHYGMzxwr2a86PJxX+nUeSVHLoB81LFUdwAAC/CwQbG2oW3tZ6awoAgN8Tn13uDQAAUN8INgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDYINgAAwDZ8GmymT5+u66+/Xs2aNVNYWJgGDhyovLw8r5qTJ08qNTVVLVu2VNOmTXX33XeroKDAq2b//v1KTk5W48aNFRYWpnHjxunUqVNeNevXr1fPnj3ldDrVoUMHLVmypEo/8+fPV7t27RQUFKT4+Hht2rSp1r0AAADf8Wmw+fzzz5Wamqqvv/5aa9euVXl5ufr166dffvnFqhk7dqw++ugjvffee/r888916NAhDRo0yBqvqKhQcnKyysrKtHHjRi1dulRLlizR5MmTrZq9e/cqOTlZt99+u7KzszVmzBg9/PDD+uSTT6ya5cuXKy0tTVOmTNE333yj7t27KykpSYWFhTXuBQAA+JafMcb4uolKR44cUVhYmD7//HP16dNHJSUluuKKK/T222/rL3/5iyRp165d6ty5szIyMnTDDTfo448/1h133KFDhw4pPDxckrRo0SKNHz9eR44ckcPh0Pjx47Vq1Srl5ORY2xoyZIiKi4u1Zs0aSVJ8fLyuv/56zZs3T5Lk8XgUFRWlxx9/XBMmTKhRL+fjdrsVEhKikpISuVyuevmdbdq0SU+t2KGW0V0kST98tVKBIeGK6na9JOno3p16/q4YxcXF1cv2AADwhZq+hjaoc2xKSkokSS1atJAkZWVlqby8XImJiVZNp06d1KZNG2VkZEiSMjIyFBMTY4UaSUpKSpLb7VZubq5Vc/o6Kmsq11FWVqasrCyvGn9/fyUmJlo1NenlTKWlpXK73V43AABw8TSYYOPxeDRmzBjddNNN6tatmyQpPz9fDodDoaGhXrXh4eHKz8+3ak4PNZXjlWPnqnG73Tpx4oR++uknVVRUVFtz+jrO18uZpk+frpCQEOsWFRVVw98GAACoiwYTbFJTU5WTk6Nly5b5upV6M3HiRJWUlFi3AwcO+LolAABsrZGvG5CkUaNGaeXKldqwYYOuuuoqa3lERITKyspUXFzsdaSkoKBAERERVs2ZVy9VXql0es2ZVy8VFBTI5XIpODhYAQEBCggIqLbm9HWcr5czOZ1OOZ3OWvwmAADAhfDpERtjjEaNGqUVK1Zo3bp1io6O9hrv1auXAgMDlZ6ebi3Ly8vT/v37lZCQIElKSEjQjh07vK5eWrt2rVwul7p06WLVnL6OyprKdTgcDvXq1curxuPxKD093aqpSS8AAMC3fHrEJjU1VW+//bY++OADNWvWzDpXJSQkRMHBwQoJCVFKSorS0tLUokULuVwuPf7440pISLCuQurXr5+6dOmi++67TzNnzlR+fr6efvpppaamWkdLHn30Uc2bN09PPvmkHnroIa1bt07vvvuuVq1aZfWSlpam4cOHq3fv3oqLi9PLL7+sX375RQ8++KDV0/l6AQAAvuXTYLNw4UJJ0m233ea1fPHixXrggQckSXPmzJG/v7/uvvtulZaWKikpSQsWLLBqAwICtHLlSj322GNKSEhQkyZNNHz4cD3zzDNWTXR0tFatWqWxY8fqlVde0VVXXaU33nhDSUlJVs3gwYN15MgRTZ48Wfn5+YqNjdWaNWu8Tig+Xy8AAMC3GtTn2Ngdn2MDAEDdXJafYwMAAHAhCDYAAMA2CDYAAMA2CDYAAMA2CDYAAMA2CDYAAMA2CDYAAMA2CDYAAMA2CDYAAMA2CDYAAMA2CDYAAMA2CDYAAMA2CDYAAMA2CDYAAMA2CDYAAMA2CDYAAMA2CDYAAMA2CDYAAMA2CDYAAMA2CDYAAMA2CDYAAMA2Gvm6AVxcnopTys3NrbI8NjZWDofDBx0BAHDxEGxs7ljBfs358aTCv/NYy0oO/aB5qVJcXJwPOwMAoP4RbH4HmoW3VcvoLr5uAwCAi45zbAAAgG0QbAAAgG0QbAAAgG0QbAAAgG0QbAAAgG0QbAAAgG0QbAAAgG0QbAAAgG0QbAAAgG0QbAAAgG0QbAAAgG0QbAAAgG0QbAAAgG0QbAAAgG0QbAAAgG0QbAAAgG0QbAAAgG0QbAAAgG0QbAAAgG008nUDuPQ8FaeUm5vrtSw2NlYOh8NHHQEAUD8INr9Dxwr2a86PJxX+nUeSVHLoB81LleLi4nzcGQAAF4Zg8zvVLLytWkZ38XUbAADUK86xAQAAtkGwAQAAtkGwAQAAtkGwAQAAtsHJw+DybwCAbRBswOXfAADbINhAEpd/AwDsgXNsAACAbXDEBlVwzg0A4HJFsKml+fPna9asWcrPz1f37t01d+5c252LcuY5Nz8f2K3Uvrnq2rWrVx1hBwDQ0BBsamH58uVKS0vTokWLFB8fr5dffllJSUnKy8tTWFiYr9urV6efc1Ny6AfNWZNjBR2p+rBD0AEA+BrBphZmz56tESNG6MEHH5QkLVq0SKtWrdKbb76pCRMm+Li7i+vMk4vPDDtnBp3y8nJJUmBgYLX3a1JTk3UQpgAApyPY1FBZWZmysrI0ceJEa5m/v78SExOVkZFR7WNKS0tVWlpq3S8pKZEkud3ueuvr+PHjKtr3rU6VnvhtG4f3qdGxEjka+Vd7vyY1NV5H0+bWdo8VHtC0N75VaOssSdLRfd8qwNlUoa2jqr1fk5rz3f+lqEBj/3K7OnXqVG+/TwBA/ejdu3e9rq/ytdMYc846gk0N/fTTT6qoqFB4eLjX8vDwcO3atavax0yfPl3Tpk2rsjwqKqqa6vq18zz3a1JTl3X8WMv7dXnM6fdTP/v/qlkjAMCujh07ppCQkLOOE2wuookTJyotLc267/F4VFRUpJYtW8rPz69etuF2uxUVFaUDBw7I5XLVyzp9zW5zstt8JPvNyW7zkZjT5cBu85Eu7pyMMTp27JgiIyPPWUewqaFWrVopICBABQUFXssLCgoUERFR7WOcTqecTqfXstDQ0IvSn8vlss0fRiW7zclu85HsNye7zUdiTpcDu81HunhzOteRmkp8QF8NORwO9erVS+np6dYyj8ej9PR0JSQk+LAzAABQiSM2tZCWlqbhw4erd+/eiouL08svv6xffvnFukoKAAD4FsGmFgYPHqwjR45o8uTJys/PV2xsrNasWVPlhOJLyel0asqUKVXe8rqc2W1OdpuPZL852W0+EnO6HNhtPlLDmJOfOd91UwAAAJcJzrEBAAC2QbABAAC2QbABAAC2QbABAAC2QbC5zM2fP1/t2rVTUFCQ4uPjtWnTJl+3VK3p06fr+uuvV7NmzRQWFqaBAwcqLy/Pq+a2226Tn5+f1+3RRx/1qtm/f7+Sk5PVuHFjhYWFady4cTp16tSlnIokaerUqVV6Pf07q06ePKnU1FS1bNlSTZs21d13313lwx0bylwqtWvXrsqc/Pz8lJqaKqnh758NGzboT3/6kyIjI+Xn56f333/fa9wYo8mTJ6t169YKDg5WYmKidu/e7VVTVFSkYcOGyeVyKTQ0VCkpKTp+/LhXzfbt23XLLbcoKChIUVFRmjlzpk/mVF5ervHjxysmJkZNmjRRZGSk7r//fh06dMhrHdXt1xkzZjTIOUnSAw88UKXf/v37e9U0pP10vvlU9zfl5+enWbNmWTUNaR/V5Lm6vp7f1q9fr549e8rpdKpDhw5asmRJ/UzC4LK1bNky43A4zJtvvmlyc3PNiBEjTGhoqCkoKPB1a1UkJSWZxYsXm5ycHJOdnW3++Mc/mjZt2pjjx49bNbfeeqsZMWKEOXz4sHUrKSmxxk+dOmW6detmEhMTzdatW83q1atNq1atzMSJEy/5fKZMmWK6du3q1euRI0es8UcffdRERUWZ9PR0s2XLFnPDDTeYG2+8sUHOpVJhYaHXfNauXWskmc8++8wY0/D3z+rVq81TTz1l/v3vfxtJZsWKFV7jM2bMMCEhIeb9998327ZtM3/+859NdHS0OXHihFXTv39/0717d/P111+bL774wnTo0MEMHTrUGi8pKTHh4eFm2LBhJicnx7zzzjsmODjYvPbaa5d8TsXFxSYxMdEsX77c7Nq1y2RkZJi4uDjTq1cvr3W0bdvWPPPMM1777fS/u4Y0J2OMGT58uOnfv79Xv0VFRV41DWk/nW8+p8/j8OHD5s033zR+fn5mz549Vk1D2kc1ea6uj+e3H374wTRu3NikpaWZnTt3mrlz55qAgACzZs2aC54DweYyFhcXZ1JTU637FRUVJjIy0kyfPt2HXdVMYWGhkWQ+//xza9mtt95qRo8efdbHrF692vj7+5v8/Hxr2cKFC43L5TKlpaUXs90qpkyZYrp3717tWHFxsQkMDDTvvfeetezbb781kkxGRoYxpmHN5WxGjx5trr76auPxeIwxl9f+OfMFxuPxmIiICDNr1ixrWXFxsXE6neadd94xxhizc+dOI8ls3rzZqvn444+Nn5+fOXjwoDHGmAULFpjmzZt7zWf8+PGmY8eOF3lGVedUnU2bNhlJ5scff7SWtW3b1syZM+esj2locxo+fLi58847z/qYhryfarKP7rzzTvOHP/zBa1lD3kdnPlfX1/Pbk08+abp27eq1rcGDB5ukpKQL7pm3oi5TZWVlysrKUmJiorXM399fiYmJysjI8GFnNVNSUiJJatGihdfyt956S61atVK3bt00ceJE/frrr9ZYRkaGYmJivD4QMSkpSW63W7m5uZem8dPs3r1bkZGRat++vYYNG6b9+/dLkrKyslReXu61bzp16qQ2bdpY+6ahzeVMZWVl+te//qWHHnrI6wtbL6f9c7q9e/cqPz/fa5+EhIQoPj7ea5+Ehoaqd+/eVk1iYqL8/f2VmZlp1fTp00cOh8OqSUpKUl5enn7++edLNJuzKykpkZ+fX5XvpJsxY4ZatmypHj16aNasWV5vCTTEOa1fv15hYWHq2LGjHnvsMR09etQau5z3U0FBgVatWqWUlJQqYw11H535XF1fz28ZGRle66isqY/XLz55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1KiRr9sBcIEINgB+t8rKyuRwOHzdBoB6xFtRAGzjtttu06hRozRq1CiFhISoVatWmjRpkir//9auXTs9++yzuv/+++VyuTRy5Mhq34rKzc3VHXfcIZfLpWbNmumWW27Rnj17rPE33nhDnTt3VlBQkDp16qQFCxZc6qkCOAuOuwKwlaVLlyolJUWbNm3Sli1bNHLkSLVp00YjRoyQJP3jH//Q5MmTNWXKlGoff/DgQfXp00e33Xab1q1bJ5fLpa+++kqnTp2SJL311luaPHmy5s2bpx49emjr1q0aMWKEmjRpouHDh1+yeQKoHm9FAbCN2267TYWFhcrNzZWfn58kacKECfrwww+1c+dOtWvXTj169NCKFSusx+zbt0/R0dHaunWrYmNj9fe//13Lli1TXl6eAgMDq2yjQ4cOevbZZzV06FBr2XPPPafVq1dr48aNF3+SAM6Jt6IA2MoNN9xghRpJSkhI0O7du1VRUSFJ6t279zkfn52drVtuuaXaUPPLL79oz549SklJUdOmTa3bc8895/VWFQDf4a0oAL8rTZo0Oed4cHDwWceOHz8uSfrnP/+p+Ph4r7GAgIALbw7ABSPYALCVzMxMr/tff/21rrnmmhoHj+uuu05Lly5VeXl5laM24eHhioyM1A8//KBhw4bVW88A6g9vRQGwlf379ystLU15eXl65513NHfuXI0ePbrGjx81apTcbreGDBmiLVu2aPfu3frf//1f5eXlSZKmTZum6dOn69VXX9V3332nHTt2aPHixZo9e/bFmhKAWuCIDQBbuf/++3XixAnFxcUpICBAo0eP1siRI2v8+JYtW2rdunUaN26cbr31VgUEBCg2NlY33XSTJOnhhx9W48aNNWvWLI0bN05NmjRRTEyMxowZc5FmBKA2uCoKgG3cdtttio2N1csvv+zrVgD4CG9FAQAA2yDYAAAA2+CtKAAAYBscsQEAALZBsAEAALZBsAEAALZBsAEAALZBsAEAALZBsAEAALZBsAEAALZBsAEAALZBsAEAALbx/wP4ZZESSPJaxwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "\n", + "y_train_df = mercari_df['price']\n", + "plt.figure(figsize=(6,4))\n", + "sns.histplot(y_train_df, bins=100)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "5f1c30d8-e7e1-41cd-8895-3b9527d276fb", + "metadata": {}, + "source": [ + "➡️ 왜곡되어있음" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "841b6fc4-586a-4c21-a2b0-e10ce121d08e", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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LEz79u0z/ZgBAEDz1OSD1c6dOxUfH689e/YoKytLVVVVioyMVHl5uVEzZcoUffTRR1q/fr127typ06dP67HHHjPGq6urNXLkSFVWVmr37t1avXq1Vq1apeTkZKPmxIkTGjlypIYOHar8/HwlJibq2Wef1datW42adevWKSkpSbNmzdKBAwfUp08fRUVFqbi4uHF+DAAA0KQ1+XusMjMzHeZXrVolX19f5eXlafDgwSotLdXvf/97paen68EHH5QkrVy5Ut26ddOePXt03333adu2bfriiy/0ySefyM/PTyEhIZo7d65eeOEFzZ49W25ubkpLS1NwcLDmz58vSerWrZv++te/6p133lFUVJQkacGCBRo/fryefvppSVJaWpo2b96sFStW6MUXX2zEXwUAADRFTf6M1b8rLS2VJPn4+EiS8vLyVFVVpYiICKOma9eu6tChg3JyciRJOTk56tWrl/z8/v8naKKiomSz2VRQUGDUXLqN2prabVRWViovL8+hxsXFRREREUbNv6uoqJDNZnOYAADAzatZBauamholJibq/vvvV8+ePSVJVqtVbm5u8vb2dqj18/OT1Wo1ai4NVbXjtWP11dhsNv3www/6xz/+oerq6jprarfx71JSUuTl5WVMQUFB13fgAACgWWhWwSo+Pl5HjhzR2rVrnd3KVZk+fbpKS0uN6dSpU85uCQAANKAmf49VrYSEBG3atEm7du3SnXfeaSz39/dXZWWlSkpKHM5aFRUVyd/f36j596f3ap8avLTm358kLCoqkqenp1q1aqUWLVqoRYsWddbUbuPfubu7y93d/foOGE7Ro3eIzpw5U28NL10EAPyYJh+s7Ha7Jk2apA0bNmjHjh0KDg52GO/bt69atmyp7OxsjRo1SpJUWFiokydPKjw8XJIUHh6u1157TcXFxfL19ZUkZWVlydPTU927dzdqtmzZ4rDtrKwsYxtubm7q27evsrOzFR0dLelflyazs7OVkJDQYMePxnXmzBleuggAuG5NPljFx8crPT1df/nLX9SmTRvjfiYvLy+1atVKXl5eiouLU1JSknx8fOTp6alJkyYpPDxc9913nyQpMjJS3bt315NPPql58+bJarVqxowZio+PN84oPffcc1q6dKmmTZumZ555Rtu3b9eHH36ozZs3G70kJSUpNjZWoaGh6t+/vxYuXKjy8nLj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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "\n", + "y_train_df = np.log1p(y_train_df)\n", + "sns.histplot(y_train_df, bins=50)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "363f9362-ca42-4678-85f0-3b7bb3c5e675", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 2.397895\n", + "1 3.970292\n", + "2 2.397895\n", + "Name: price, dtype: float64" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mercari_df['price'] = np.log1p(mercari_df['price'])\n", + "mercari_df['price'].head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "2585dd9a-3602-4770-847c-4c3252cb4cb3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Shipping 값 유형:\n", + " shipping\n", + "0 819435\n", + "1 663100\n", + "Name: count, dtype: int64\n", + "item_condition_id 값 유형:\n", + " item_condition_id\n", + "1 640549\n", + "3 432161\n", + "2 375479\n", + "4 31962\n", + "5 2384\n", + "Name: count, dtype: int64\n" + ] + } + ], + "source": [ + "print('Shipping 값 유형:\\n',mercari_df['shipping'].value_counts())\n", + "print('item_condition_id 값 유형:\\n',mercari_df['item_condition_id'].value_counts())" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "63d04d3b-624f-49f8-b6e4-987e9e1e0642", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "82489" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "boolean_cond= mercari_df['item_description']=='No description yet'\n", + "mercari_df[boolean_cond]['item_description'].count()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "19ce99c8-df00-4ae3-9f65-4caf5a3c2bd9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "대분류 유형 :\n", + " cat_dae\n", + "Women 664385\n", + "Beauty 207828\n", + "Kids 171689\n", + "Electronics 122690\n", + "Men 93680\n", + "Home 67871\n", + "Vintage & Collectibles 46530\n", + "Other 45351\n", + "Handmade 30842\n", + "Sports & Outdoors 25342\n", + "Other_Null 6327\n", + "Name: count, dtype: int64\n", + "중분류 갯수 : 114\n", + "소분류 갯수 : 871\n" + ] + } + ], + "source": [ + "def split_cat(category_name):\n", + " try:\n", + " return category_name.split('/')\n", + " except:\n", + " return ['Other_Null' , 'Other_Null' , 'Other_Null']\n", + "\n", + "\n", + "mercari_df['cat_dae'], mercari_df['cat_jung'], mercari_df['cat_so'] = \\\n", + " zip(*mercari_df['category_name'].apply(lambda x : split_cat(x)))\n", + "\n", + "print('대분류 유형 :\\n', mercari_df['cat_dae'].value_counts())\n", + "print('중분류 갯수 :', mercari_df['cat_jung'].nunique())\n", + "print('소분류 갯수 :', mercari_df['cat_so'].nunique())" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "7f8b6422-a88d-47d8-bd80-f4a6b1df187f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "train_id 0\n", + "name 0\n", + "item_condition_id 0\n", + "category_name 0\n", + "brand_name 0\n", + "price 0\n", + "shipping 0\n", + "item_description 0\n", + "cat_dae 0\n", + "cat_jung 0\n", + "cat_so 0\n", + "dtype: int64" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "mercari_df['brand_name'] = mercari_df['brand_name'].fillna(value='Other_Null')\n", + "mercari_df['category_name'] = mercari_df['category_name'].fillna(value='Other_Null')\n", + "mercari_df['item_description'] = mercari_df['item_description'].fillna(value='Other_Null')\n", + "\n", + "mercari_df.isnull().sum()" + ] + }, + { + "cell_type": "markdown", + "id": "84d51846-7622-453d-940b-6ea987d540f8", + "metadata": {}, + "source": [ + "- 피처 인코딩과 피처 벡터화\n", + "\n", + " \n", + "짧은 텍스트의 경우는 Count기반, 긴 텍스트는 TD-IDF 기반의 벡터화 적용" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "9b1322e1-6478-4d51-9e07-c69948c38ec7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "brand name 의 유형 건수 : 4810\n", + "brand name sample 5건 : \n", + " brand_name\n", + "Other_Null 632682\n", + "PINK 54088\n", + "Nike 54043\n", + "Victoria's Secret 48036\n", + "LuLaRoe 31024\n", + "Name: count, dtype: int64\n" + ] + } + ], + "source": [ + "print('brand name 의 유형 건수 :', mercari_df['brand_name'].nunique())\n", + "print('brand name sample 5건 : \\n', mercari_df['brand_name'].value_counts()[:5])" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "2a2b73d9-5908-486f-901d-c47979ad3505", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "name 의 종류 갯수 : 1225273\n", + "name sample 7건 : \n", + " 0 MLB Cincinnati Reds T Shirt Size XL\n", + "1 Razer BlackWidow Chroma Keyboard\n", + "2 AVA-VIV Blouse\n", + "3 Leather Horse Statues\n", + "4 24K GOLD plated rose\n", + "5 Bundled items requested for Ruie\n", + "6 Acacia pacific tides santorini top\n", + "Name: name, dtype: object\n" + ] + } + ], + "source": [ + "print('name 의 종류 갯수 :', mercari_df['name'].nunique())\n", + "print('name sample 7건 : \\n', mercari_df['name'][:7])" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "70548e85-85d0-47fd-b784-61857103e3f5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "item_description 평균 문자열 개수: 145.71139703278507\n" + ] + }, + { + "data": { + "text/plain": [ + "0 No description yet\n", + "1 This keyboard is in great condition and works like it came out of the box. All of the ports are tested and work perfectly. The lights are customizable via the Razer Synapse app on your PC.\n", + "Name: item_description, dtype: object" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.set_option('max_colwidth', 200)\n", + "\n", + "print('item_description 평균 문자열 개수:',mercari_df['item_description'].str.len().mean())\n", + "\n", + "mercari_df['item_description'][:2]" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "db762b14-2dd6-4f43-a514-d9aac1814331", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "name vectorization shape: (1482535, 105757)\n", + "item_description vectorization shape: (1482535, 50000)\n" + ] + } + ], + "source": [ + "cnt_vec = CountVectorizer()\n", + "X_name = cnt_vec.fit_transform(mercari_df.name)\n", + "\n", + "tfidf_descp = TfidfVectorizer(max_features = 50000, ngram_range= (1,3) , stop_words='english')\n", + "X_descp = tfidf_descp.fit_transform(mercari_df['item_description'])\n", + "\n", + "print('name vectorization shape:',X_name.shape)\n", + "print('item_description vectorization shape:',X_descp.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "df4c71ec-ddd6-42b6-b61e-071127029997", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.preprocessing import LabelBinarizer\n", + "\n", + "# 각 피처 희소 행렬 원핫 인코딩 변환\n", + "lb_brand_name= LabelBinarizer(sparse_output=True)\n", + "X_brand = lb_brand_name.fit_transform(mercari_df['brand_name'])\n", + "\n", + "lb_item_cond_id = LabelBinarizer(sparse_output=True)\n", + "X_item_cond_id = lb_item_cond_id.fit_transform(mercari_df['item_condition_id'])\n", + "\n", + "lb_shipping= LabelBinarizer(sparse_output=True)\n", + "X_shipping = lb_shipping.fit_transform(mercari_df['shipping'])\n", + "\n", + "lb_cat_dae = LabelBinarizer(sparse_output=True)\n", + "X_cat_dae= lb_cat_dae.fit_transform(mercari_df['cat_dae'])\n", + "\n", + "lb_cat_jung = LabelBinarizer(sparse_output=True)\n", + "X_cat_jung = lb_cat_jung.fit_transform(mercari_df['cat_jung'])\n", + "\n", + "lb_cat_so = LabelBinarizer(sparse_output=True)\n", + "X_cat_so = lb_cat_so.fit_transform(mercari_df['cat_so'])" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "0c63a3d2-1e1f-4bde-81a4-51be645acaa3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " \n", + "X_brand_shape:(1482535, 4810), X_item_cond_id shape:(1482535, 5)\n", + "X_shipping shape:(1482535, 1), X_cat_dae shape:(1482535, 11)\n", + "X_cat_jung shape:(1482535, 114), X_cat_so shape:(1482535, 871)\n" + ] + } + ], + "source": [ + "print(type(X_brand), type(X_item_cond_id), type(X_shipping))\n", + "print('X_brand_shape:{0}, X_item_cond_id shape:{1}'.format(X_brand.shape, X_item_cond_id.shape))\n", + "print('X_shipping shape:{0}, X_cat_dae shape:{1}'.format(X_shipping.shape, X_cat_dae.shape))\n", + "print('X_cat_jung shape:{0}, X_cat_so shape:{1}'.format(X_cat_jung.shape, X_cat_so.shape))" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "46c5b655-aecd-4443-9aa5-e6a3881c2de8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " (1482535, 161569)\n" + ] + }, + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from scipy.sparse import hstack\n", + "import gc\n", + "\n", + "sparse_matrix_list = (X_name, X_descp, X_brand, X_item_cond_id,\n", + " X_shipping, X_cat_dae, X_cat_jung, X_cat_so)\n", + "\n", + "X_features_sparse= hstack(sparse_matrix_list).tocsr()\n", + "print(type(X_features_sparse), X_features_sparse.shape)\n", + "\n", + "del X_features_sparse\n", + "gc.collect()" + ] + }, + { + "cell_type": "markdown", + "id": "90eb6009-54dc-4ff6-b186-86d3d8093e18", + "metadata": {}, + "source": [ + "- 릿지 회귀 모델 구축 및 평가" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "70d230a5-761c-4b90-8153-1a5dec0f10ce", + "metadata": {}, + "outputs": [], + "source": [ + "def rmsle(y , y_pred):\n", + " # underflow, overflow를 방지, log1p로 rmsle 계산 \n", + " return np.sqrt(np.mean(np.power(np.log1p(y) - np.log1p(y_pred), 2)))\n", + "\n", + "def evaluate_org_price(y_test , preds): \n", + " preds_exmpm = np.expm1(preds)\n", + " y_test_exmpm = np.expm1(y_test)\n", + " \n", + " rmsle_result = rmsle(y_test_exmpm, preds_exmpm)\n", + " return rmsle_result" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "6772bfa2-824c-4cb8-977c-c3b4b9bffca4", + "metadata": {}, + "outputs": [], + "source": [ + "import gc \n", + "from scipy.sparse import hstack\n", + "\n", + "def model_train_predict(model,matrix_list):\n", + " X= hstack(matrix_list).tocsr() \n", + " \n", + " X_train, X_test, y_train, y_test=train_test_split(X, mercari_df['price'], test_size=0.2, random_state=156)\n", + " \n", + " model.fit(X_train , y_train)\n", + " preds = model.predict(X_test)\n", + " \n", + " del X , X_train , X_test , y_train \n", + " gc.collect()\n", + " \n", + " return preds , y_test" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "de0ce50d-a398-48b9-9b39-e4ba63b21b2b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Item Description을 제외했을 때 rmsle 값: 0.4984207984133985\n", + "Item Description을 포함한 rmsle 값: 0.46803794452141156\n" + ] + } + ], + "source": [ + "linear_model = Ridge(solver = \"lsqr\", fit_intercept=False)\n", + "\n", + "sparse_matrix_list = (X_name, X_brand, X_item_cond_id, X_shipping, X_cat_dae, X_cat_jung, X_cat_so)\n", + "linear_preds , y_test = model_train_predict(model=linear_model ,matrix_list=sparse_matrix_list)\n", + "print('Item Description을 제외했을 때 rmsle 값:', evaluate_org_price(y_test , linear_preds))\n", + "\n", + "sparse_matrix_list = (X_descp, X_name, X_brand, X_item_cond_id, X_shipping, X_cat_dae, X_cat_jung, X_cat_so)\n", + "linear_preds , y_test = model_train_predict(model=linear_model , matrix_list=sparse_matrix_list)\n", + "print('Item Description을 포함한 rmsle 값:', evaluate_org_price(y_test ,linear_preds))" + ] + }, + { + "cell_type": "markdown", + "id": "65bffcd1-2220-449d-82ec-51bef2e2438b", + "metadata": {}, + "source": [ + "- LightGBM 회귀 모델 구축과 앙상블을 이용한 최종 예측 평가" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "c2c21e2e-e584-4632-868e-581d4c3ee139", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 305.746781 seconds.\n", + "You can set `force_col_wise=true` to remove the overhead.\n", + "[LightGBM] [Info] Total Bins 1068421\n", + "[LightGBM] [Info] Number of data points in the train set: 1186028, number of used features: 65338\n", + "[LightGBM] [Info] Start training from score 2.979514\n", + "LightGBM rmsle 값: 0.4562664499998407\n" + ] + } + ], + "source": [ + "from lightgbm import LGBMRegressor\n", + "\n", + "sparse_matrix_list = (X_descp, X_name, X_brand, X_item_cond_id, X_shipping, X_cat_dae, X_cat_jung, X_cat_so)\n", + "\n", + "lgbm_model = LGBMRegressor(n_estimators=200, learning_rate=0.5, num_leaves=125, random_state=156)\n", + "lgbm_preds , y_test = model_train_predict(model = lgbm_model , matrix_list=sparse_matrix_list)\n", + "print('LightGBM rmsle 값:', evaluate_org_price(y_test , lgbm_preds))" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "43f709c7-e865-493f-84f7-3fb252250c15", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "LightGBM과 Ridge를 ensemble한 최종 rmsle 값: 0.4465247184575303\n" + ] + } + ], + "source": [ + "preds = lgbm_preds * 0.45 + linear_preds * 0.55\n", + "print('LightGBM과 Ridge를 ensemble한 최종 rmsle 값:', evaluate_org_price(y_test , preds))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "736bada5-d93a-4ed6-a3b1-3c38f426b704", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "906511af-4b3c-418c-b7f2-a4a2496e648f", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python (tf)", + "language": "python", + "name": "tf" + }, + "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.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}