From e5a81d25fd67ea597b41630d8aac762a8e39b0e1 Mon Sep 17 00:00:00 2001 From: YashSachan2 Date: Thu, 28 Dec 2023 13:40:34 +0530 Subject: [PATCH] Wine Reviews Classification --- Wine Reviews Classification/Dataset/README.md | 101 + .../Images/Accuracy_Model1.png | Bin 0 -> 69982 bytes .../Images/Accuracy_Model2.png | Bin 0 -> 71833 bytes Wine Reviews Classification/Images/EDA1.png | Bin 0 -> 16491 bytes Wine Reviews Classification/Images/EDA2.png | Bin 0 -> 19212 bytes Wine Reviews Classification/Images/EDA3.png | Bin 0 -> 16035 bytes .../Images/Input_Dataset.png | Bin 0 -> 82405 bytes Wine Reviews Classification/Images/Model1.png | Bin 0 -> 30435 bytes Wine Reviews Classification/Images/Model2.png | Bin 0 -> 22579 bytes .../Model/PridictionModel.ipynb | 6190 +++++++++++++++++ Wine Reviews Classification/README.md | 101 + 11 files changed, 6392 insertions(+) create mode 100644 Wine Reviews Classification/Dataset/README.md create mode 100644 Wine Reviews Classification/Images/Accuracy_Model1.png create mode 100644 Wine Reviews Classification/Images/Accuracy_Model2.png create mode 100644 Wine Reviews Classification/Images/EDA1.png create mode 100644 Wine Reviews Classification/Images/EDA2.png create mode 100644 Wine Reviews Classification/Images/EDA3.png create mode 100644 Wine Reviews Classification/Images/Input_Dataset.png create mode 100644 Wine Reviews Classification/Images/Model1.png create mode 100644 Wine Reviews Classification/Images/Model2.png create mode 100644 Wine Reviews Classification/Model/PridictionModel.ipynb create mode 100644 Wine Reviews Classification/README.md diff --git a/Wine Reviews Classification/Dataset/README.md b/Wine Reviews Classification/Dataset/README.md new file mode 100644 index 000000000..887514148 --- /dev/null +++ b/Wine Reviews Classification/Dataset/README.md @@ -0,0 +1,101 @@ +# Wine Reviews Classification using DL + +## PROJECT TITLE + +Wine Reviews Classification using Deep Learning + +## GOAL + +To classify the quality of wine based on reviews. + +## DATASET + +The link for the dataset used in this project: https://www.kaggle.com/datasets/zynicide/wine-reviews + +## EDA +Shape of Dataset:(129971, 14) +![Dataset](../Images/Input_Dataset.png) +![EDA](../Images/EDA3.png) + +## DESCRIPTION + +This project aims to identify the quality points of wine based upon its reviews. + +## WHAT I HAD DONE + +1. Data collection: From the link of the dataset given above. +2. Data preprocessing: Preprocessed the news by combining title and text to create a new feature and did some augementation like tokeinizing and vectorising before passing them to model training +3. Model selection: Self Designed model having a Embedding Layer followed by Global Pooling Layer and then 2 Dense layers and then output layer.Second model had a Embedding layer followed by a RNN layer and a Dense output layer. +4. Comparative analysis: Compared the accuracy score of all the models. + +## MODELS SUMMARY + +Model: "sequential" +_________________________________________________________________ + Layer (type) Output Shape Param # +================================================================= + embedding (Embedding) (None, 89, 200) 12794200 + + global_average_pooling1d ( (None, 200) 0 + GlobalAveragePooling1D) + + dense (Dense) (None, 100) 20100 + + dense_1 (Dense) (None, 50) 5050 + + dense_2 (Dense) (None, 21) 1071 + +================================================================= +Total params: 12820421 (48.91 MB) +Trainable params: 12820421 (48.91 MB) +Non-trainable params: 0 (0.00 Byte) + +Model-2: "sequential_1" +_________________________________________________________________ + Layer (type) Output Shape Param # +================================================================= + embedding_1 (Embedding) (None, 89, 100) 6397100 + + simple_rnn (SimpleRNN) (None, 30) 3930 + + dense_3 (Dense) (None, 21) 651 + +================================================================= +Total params: 6401681 (24.42 MB) +Trainable params: 6401681 (24.42 MB) +Non-trainable params: 0 (0.00 Byte) + +## LIBRARIES NEEDED + +The following libraries are required to run this project: + +- nltk +- pandas +- matplotlib +- tensorflow +- keras +- sklearn + +## EVALUATION METRICS + +The evaluation metrics I used to assess the models: + +- Loss +- Accuracy + +It is shown using Confusion Matrix in the Images folder + +## RESULTS +Results on Val dataset: +For Model-1: +Accuracy:31% +loss: 3.1 + +For Model-2: +Accuracy:9% +loss:8.05 + +## CONCLUSION +Based on results we can draw following conclusions: + +1.The model-1 performed better than model 2. \ No newline at end of file diff --git a/Wine Reviews Classification/Images/Accuracy_Model1.png b/Wine Reviews Classification/Images/Accuracy_Model1.png new file mode 100644 index 0000000000000000000000000000000000000000..2fa79a13aea4df71c1150c45b9df2705400e35cd GIT binary patch literal 69982 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 BMPD`J0~!xgeWc_hvB3Ys+gpc4wf=qE3P?x` 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 literal 0 HcmV?d00001 diff --git a/Wine Reviews Classification/Images/Accuracy_Model2.png b/Wine Reviews Classification/Images/Accuracy_Model2.png new file mode 100644 index 0000000000000000000000000000000000000000..50496e6e1cb4f1c29d0a78acc8f825ba23b5ef42 GIT binary patch literal 71833 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 literal 0 HcmV?d00001 diff --git a/Wine Reviews Classification/Images/EDA1.png b/Wine Reviews Classification/Images/EDA1.png new file mode 100644 index 0000000000000000000000000000000000000000..753254cdc09c5c483bcca1dd25d813dc7324802d GIT binary patch literal 16491 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 J)rvNe{|_DT)Y$+4 literal 0 HcmV?d00001 diff --git a/Wine Reviews Classification/Images/EDA2.png b/Wine Reviews Classification/Images/EDA2.png new file mode 100644 index 0000000000000000000000000000000000000000..e4888cd019ab104dbdacc75670411bc97c79b98d GIT binary patch literal 19212 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 E050}uRR910 literal 0 HcmV?d00001 diff --git a/Wine Reviews Classification/Images/EDA3.png b/Wine Reviews Classification/Images/EDA3.png new file mode 100644 index 0000000000000000000000000000000000000000..422ee5db7b66c1ec7f8b75f5c81700f129112100 GIT binary patch literal 16035 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 literal 0 HcmV?d00001 diff --git a/Wine Reviews Classification/Images/Input_Dataset.png b/Wine Reviews Classification/Images/Input_Dataset.png new file mode 100644 index 0000000000000000000000000000000000000000..ddf45a08b405ac2f093f03cf9f63dcf28ce2d31f GIT binary patch literal 82405 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

d(8!SHR~=XDGMpI3;0W_ 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 F{{SD6AUOa4 literal 0 HcmV?d00001 diff --git a/Wine Reviews Classification/Images/Model1.png b/Wine Reviews Classification/Images/Model1.png new file mode 100644 index 0000000000000000000000000000000000000000..5cfbd5ad74613fafb8743922338f259565ec9eb9 GIT binary patch literal 30435 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

\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
countrydescriptiondesignationpointspriceprovincetitlevarietywinery
0ItalyAromas include tropical fruit, broom, brimston...Vulkà Bianco870.0Sicily & SardiniaNicosia 2013 Vulkà Bianco (Etna)White BlendNicosia
1PortugalThis is ripe and fruity, a wine that is smooth...Avidagos8715.0DouroQuinta dos Avidagos 2011 Avidagos Red (Douro)Portuguese RedQuinta dos Avidagos
2USTart and snappy, the flavors of lime flesh and...No Designation8714.0OregonRainstorm 2013 Pinot Gris (Willamette Valley)Pinot GrisRainstorm
3USPineapple rind, lemon pith and orange blossom ...Reserve Late Harvest8713.0MichiganSt. Julian 2013 Reserve Late Harvest Riesling ...RieslingSt. Julian
4USMuch like the regular bottling from 2012, this...Vintner's Reserve Wild Child Block8765.0OregonSweet Cheeks 2012 Vintner's Reserve Wild Child...Pinot NoirSweet Cheeks
5SpainBlackberry and raspberry aromas show a typical...Ars In Vitro8715.0Northern SpainTandem 2011 Ars In Vitro Tempranillo-Merlot (N...Tempranillo-MerlotTandem
6ItalyHere's a bright, informal red that opens with ...Belsito8716.0Sicily & SardiniaTerre di Giurfo 2013 Belsito Frappato (Vittoria)FrappatoTerre di Giurfo
7FranceThis dry and restrained wine offers spice in p...No Designation8724.0AlsaceTrimbach 2012 Gewurztraminer (Alsace)GewürztraminerTrimbach
8GermanySavory dried thyme notes accent sunnier flavor...Shine8712.0RheinhessenHeinz Eifel 2013 Shine Gewürztraminer (Rheinhe...GewürztraminerHeinz Eifel
9FranceThis has great depth of flavor with its fresh ...Les Natures8727.0AlsaceJean-Baptiste Adam 2012 Les Natures Pinot Gris...Pinot GrisJean-Baptiste Adam
10USSoft, supple plum envelopes an oaky structure ...Mountain Cuvée8719.0CaliforniaKirkland Signature 2011 Mountain Cuvée Caberne...Cabernet SauvignonKirkland Signature
11FranceThis is a dry wine, very spicy, with a tight, ...No Designation8730.0AlsaceLeon Beyer 2012 Gewurztraminer (Alsace)GewürztraminerLeon Beyer
12USSlightly reduced, this wine offers a chalky, t...No Designation8734.0CaliforniaLouis M. Martini 2012 Cabernet Sauvignon (Alex...Cabernet SauvignonLouis M. Martini
13ItalyThis is dominated by oak and oak-driven aromas...Rosso870.0Sicily & SardiniaMasseria Setteporte 2012 Rosso (Etna)Nerello MascaleseMasseria Setteporte
14USBuilding on 150 years and six generations of w...No Designation8712.0CaliforniaMirassou 2012 Chardonnay (Central Coast)ChardonnayMirassou
15GermanyZesty orange peels and apple notes abound in t...Devon8724.0MoselRichard Böcking 2013 Devon Riesling (Mosel)RieslingRichard Böcking
16ArgentinaBaked plum, molasses, balsamic vinegar and che...Felix8730.0OtherFelix Lavaque 2010 Felix Malbec (Cafayate)MalbecFelix Lavaque
17ArgentinaRaw black-cherry aromas are direct and simple ...Winemaker Selection8713.0Mendoza ProvinceGaucho Andino 2011 Winemaker Selection Malbec ...MalbecGaucho Andino
18SpainDesiccated blackberry, leather, charred wood a...Vendimia Seleccionada Finca Valdelayegua Singl...8728.0Northern SpainPradorey 2010 Vendimia Seleccionada Finca Vald...Tempranillo BlendPradorey
19USRed fruit aromas pervade on the nose, with cig...No Designation8732.0VirginiaQuiévremont 2012 Meritage (Virginia)MeritageQuiévremont
\n", + "
" + ], + "text/plain": [ + " country description \\\n", + "0 Italy Aromas include tropical fruit, broom, brimston... \n", + "1 Portugal This is ripe and fruity, a wine that is smooth... \n", + "2 US Tart and snappy, the flavors of lime flesh and... \n", + "3 US Pineapple rind, lemon pith and orange blossom ... \n", + "4 US Much like the regular bottling from 2012, this... \n", + "5 Spain Blackberry and raspberry aromas show a typical... \n", + "6 Italy Here's a bright, informal red that opens with ... \n", + "7 France This dry and restrained wine offers spice in p... \n", + "8 Germany Savory dried thyme notes accent sunnier flavor... \n", + "9 France This has great depth of flavor with its fresh ... \n", + "10 US Soft, supple plum envelopes an oaky structure ... \n", + "11 France This is a dry wine, very spicy, with a tight, ... \n", + "12 US Slightly reduced, this wine offers a chalky, t... \n", + "13 Italy This is dominated by oak and oak-driven aromas... \n", + "14 US Building on 150 years and six generations of w... \n", + "15 Germany Zesty orange peels and apple notes abound in t... \n", + "16 Argentina Baked plum, molasses, balsamic vinegar and che... \n", + "17 Argentina Raw black-cherry aromas are direct and simple ... \n", + "18 Spain Desiccated blackberry, leather, charred wood a... \n", + "19 US Red fruit aromas pervade on the nose, with cig... \n", + "\n", + " designation points price \\\n", + "0 Vulkà Bianco 87 0.0 \n", + "1 Avidagos 87 15.0 \n", + "2 No Designation 87 14.0 \n", + "3 Reserve Late Harvest 87 13.0 \n", + "4 Vintner's Reserve Wild Child Block 87 65.0 \n", + "5 Ars In Vitro 87 15.0 \n", + "6 Belsito 87 16.0 \n", + "7 No Designation 87 24.0 \n", + "8 Shine 87 12.0 \n", + "9 Les Natures 87 27.0 \n", + "10 Mountain Cuvée 87 19.0 \n", + "11 No Designation 87 30.0 \n", + "12 No Designation 87 34.0 \n", + "13 Rosso 87 0.0 \n", + "14 No Designation 87 12.0 \n", + "15 Devon 87 24.0 \n", + "16 Felix 87 30.0 \n", + "17 Winemaker Selection 87 13.0 \n", + "18 Vendimia Seleccionada Finca Valdelayegua Singl... 87 28.0 \n", + "19 No Designation 87 32.0 \n", + "\n", + " province title \\\n", + "0 Sicily & Sardinia Nicosia 2013 Vulkà Bianco (Etna) \n", + "1 Douro Quinta dos Avidagos 2011 Avidagos Red (Douro) \n", + "2 Oregon Rainstorm 2013 Pinot Gris (Willamette Valley) \n", + "3 Michigan St. Julian 2013 Reserve Late Harvest Riesling ... \n", + "4 Oregon Sweet Cheeks 2012 Vintner's Reserve Wild Child... \n", + "5 Northern Spain Tandem 2011 Ars In Vitro Tempranillo-Merlot (N... \n", + "6 Sicily & Sardinia Terre di Giurfo 2013 Belsito Frappato (Vittoria) \n", + "7 Alsace Trimbach 2012 Gewurztraminer (Alsace) \n", + "8 Rheinhessen Heinz Eifel 2013 Shine Gewürztraminer (Rheinhe... \n", + "9 Alsace Jean-Baptiste Adam 2012 Les Natures Pinot Gris... \n", + "10 California Kirkland Signature 2011 Mountain Cuvée Caberne... \n", + "11 Alsace Leon Beyer 2012 Gewurztraminer (Alsace) \n", + "12 California Louis M. Martini 2012 Cabernet Sauvignon (Alex... \n", + "13 Sicily & Sardinia Masseria Setteporte 2012 Rosso (Etna) \n", + "14 California Mirassou 2012 Chardonnay (Central Coast) \n", + "15 Mosel Richard Böcking 2013 Devon Riesling (Mosel) \n", + "16 Other Felix Lavaque 2010 Felix Malbec (Cafayate) \n", + "17 Mendoza Province Gaucho Andino 2011 Winemaker Selection Malbec ... \n", + "18 Northern Spain Pradorey 2010 Vendimia Seleccionada Finca Vald... \n", + "19 Virginia Quiévremont 2012 Meritage (Virginia) \n", + "\n", + " variety winery \n", + "0 White Blend Nicosia \n", + "1 Portuguese Red Quinta dos Avidagos \n", + "2 Pinot Gris Rainstorm \n", + "3 Riesling St. Julian \n", + "4 Pinot Noir Sweet Cheeks \n", + "5 Tempranillo-Merlot Tandem \n", + "6 Frappato Terre di Giurfo \n", + "7 Gewürztraminer Trimbach \n", + "8 Gewürztraminer Heinz Eifel \n", + "9 Pinot Gris Jean-Baptiste Adam \n", + "10 Cabernet Sauvignon Kirkland Signature \n", + "11 Gewürztraminer Leon Beyer \n", + "12 Cabernet Sauvignon Louis M. Martini \n", + "13 Nerello Mascalese Masseria Setteporte \n", + "14 Chardonnay Mirassou \n", + "15 Riesling Richard Böcking \n", + "16 Malbec Felix Lavaque \n", + "17 Malbec Gaucho Andino \n", + "18 Tempranillo Blend Pradorey \n", + "19 Meritage Quiévremont " + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df.head(20)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
pointsprice
count129971.000000129971.000000
mean88.44713832.915697
std3.03973040.582167
min80.0000000.000000
25%86.00000015.000000
50%88.00000025.000000
75%91.00000040.000000
max100.0000003300.000000
\n", + "
" + ], + "text/plain": [ + " points price\n", + "count 129971.000000 129971.000000\n", + "mean 88.447138 32.915697\n", + "std 3.039730 40.582167\n", + "min 80.000000 0.000000\n", + "25% 86.000000 15.000000\n", + "50% 88.000000 25.000000\n", + "75% 91.000000 40.000000\n", + "max 100.000000 3300.000000" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "execution": { + "iopub.execute_input": "2021-05-25T06:50:32.457112Z", + "iopub.status.busy": "2021-05-25T06:50:32.45653Z", + "iopub.status.idle": "2021-05-25T06:50:32.46346Z", + "shell.execute_reply": "2021-05-25T06:50:32.461467Z", + "shell.execute_reply.started": "2021-05-25T06:50:32.457067Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 87\n", + "1 87\n", + "2 87\n", + "3 87\n", + "4 87\n", + " ..\n", + "129966 90\n", + "129967 90\n", + "129968 90\n", + "129969 90\n", + "129970 90\n", + "Name: points, Length: 129971, dtype: int64" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "label_train = train_df['points']\n", + "label_train" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "execution": { + "iopub.execute_input": "2021-05-25T06:50:32.46513Z", + "iopub.status.busy": "2021-05-25T06:50:32.46484Z", + "iopub.status.idle": "2021-05-25T06:50:32.479833Z", + "shell.execute_reply": "2021-05-25T06:50:32.478601Z", + "shell.execute_reply.started": "2021-05-25T06:50:32.465102Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 87\n", + "1 87\n", + "2 87\n", + "3 87\n", + "4 87\n", + "5 87\n", + "6 87\n", + "7 87\n", + "8 87\n", + "9 87\n", + "Name: points, dtype: int64" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "label_train.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "execution": { + "iopub.execute_input": "2021-05-25T06:50:32.481757Z", + "iopub.status.busy": "2021-05-25T06:50:32.481439Z", + "iopub.status.idle": "2021-05-25T06:50:32.493571Z", + "shell.execute_reply": "2021-05-25T06:50:32.492736Z", + "shell.execute_reply.started": "2021-05-25T06:50:32.481728Z" + } + }, + "outputs": [], + "source": [ + "train_df = train_df.drop(\"points\", axis = 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "execution": { + "iopub.execute_input": "2021-05-25T06:50:32.495566Z", + "iopub.status.busy": "2021-05-25T06:50:32.495116Z", + "iopub.status.idle": "2021-05-25T06:50:32.513957Z", + "shell.execute_reply": "2021-05-25T06:50:32.51265Z", + "shell.execute_reply.started": "2021-05-25T06:50:32.495526Z" + } + }, + "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", + "
countrydescriptiondesignationpriceprovincetitlevarietywinery
0ItalyAromas include tropical fruit, broom, brimston...Vulkà Bianco0.0Sicily & SardiniaNicosia 2013 Vulkà Bianco (Etna)White BlendNicosia
1PortugalThis is ripe and fruity, a wine that is smooth...Avidagos15.0DouroQuinta dos Avidagos 2011 Avidagos Red (Douro)Portuguese RedQuinta dos Avidagos
2USTart and snappy, the flavors of lime flesh and...No Designation14.0OregonRainstorm 2013 Pinot Gris (Willamette Valley)Pinot GrisRainstorm
3USPineapple rind, lemon pith and orange blossom ...Reserve Late Harvest13.0MichiganSt. Julian 2013 Reserve Late Harvest Riesling ...RieslingSt. Julian
4USMuch like the regular bottling from 2012, this...Vintner's Reserve Wild Child Block65.0OregonSweet Cheeks 2012 Vintner's Reserve Wild Child...Pinot NoirSweet Cheeks
5SpainBlackberry and raspberry aromas show a typical...Ars In Vitro15.0Northern SpainTandem 2011 Ars In Vitro Tempranillo-Merlot (N...Tempranillo-MerlotTandem
6ItalyHere's a bright, informal red that opens with ...Belsito16.0Sicily & SardiniaTerre di Giurfo 2013 Belsito Frappato (Vittoria)FrappatoTerre di Giurfo
7FranceThis dry and restrained wine offers spice in p...No Designation24.0AlsaceTrimbach 2012 Gewurztraminer (Alsace)GewürztraminerTrimbach
8GermanySavory dried thyme notes accent sunnier flavor...Shine12.0RheinhessenHeinz Eifel 2013 Shine Gewürztraminer (Rheinhe...GewürztraminerHeinz Eifel
9FranceThis has great depth of flavor with its fresh ...Les Natures27.0AlsaceJean-Baptiste Adam 2012 Les Natures Pinot Gris...Pinot GrisJean-Baptiste Adam
\n", + "
" + ], + "text/plain": [ + " country description \\\n", + "0 Italy Aromas include tropical fruit, broom, brimston... \n", + "1 Portugal This is ripe and fruity, a wine that is smooth... \n", + "2 US Tart and snappy, the flavors of lime flesh and... \n", + "3 US Pineapple rind, lemon pith and orange blossom ... \n", + "4 US Much like the regular bottling from 2012, this... \n", + "5 Spain Blackberry and raspberry aromas show a typical... \n", + "6 Italy Here's a bright, informal red that opens with ... \n", + "7 France This dry and restrained wine offers spice in p... \n", + "8 Germany Savory dried thyme notes accent sunnier flavor... \n", + "9 France This has great depth of flavor with its fresh ... \n", + "\n", + " designation price province \\\n", + "0 Vulkà Bianco 0.0 Sicily & Sardinia \n", + "1 Avidagos 15.0 Douro \n", + "2 No Designation 14.0 Oregon \n", + "3 Reserve Late Harvest 13.0 Michigan \n", + "4 Vintner's Reserve Wild Child Block 65.0 Oregon \n", + "5 Ars In Vitro 15.0 Northern Spain \n", + "6 Belsito 16.0 Sicily & Sardinia \n", + "7 No Designation 24.0 Alsace \n", + "8 Shine 12.0 Rheinhessen \n", + "9 Les Natures 27.0 Alsace \n", + "\n", + " title variety \\\n", + "0 Nicosia 2013 Vulkà Bianco (Etna) White Blend \n", + "1 Quinta dos Avidagos 2011 Avidagos Red (Douro) Portuguese Red \n", + "2 Rainstorm 2013 Pinot Gris (Willamette Valley) Pinot Gris \n", + "3 St. Julian 2013 Reserve Late Harvest Riesling ... Riesling \n", + "4 Sweet Cheeks 2012 Vintner's Reserve Wild Child... Pinot Noir \n", + "5 Tandem 2011 Ars In Vitro Tempranillo-Merlot (N... Tempranillo-Merlot \n", + "6 Terre di Giurfo 2013 Belsito Frappato (Vittoria) Frappato \n", + "7 Trimbach 2012 Gewurztraminer (Alsace) Gewürztraminer \n", + "8 Heinz Eifel 2013 Shine Gewürztraminer (Rheinhe... Gewürztraminer \n", + "9 Jean-Baptiste Adam 2012 Les Natures Pinot Gris... Pinot Gris \n", + "\n", + " winery \n", + "0 Nicosia \n", + "1 Quinta dos Avidagos \n", + "2 Rainstorm \n", + "3 St. Julian \n", + "4 Sweet Cheeks \n", + "5 Tandem \n", + "6 Terre di Giurfo \n", + "7 Trimbach \n", + "8 Heinz Eifel \n", + "9 Jean-Baptiste Adam " + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1mCOLUMN\u001b[0m \u001b[1mNULL VALUES COUNT\u001b[0m\n", + "country 0\n", + "description 0\n", + "designation 0\n", + "price 0\n", + "province 0\n", + "title 0\n", + "variety 0\n", + "winery 0\n" + ] + } + ], + "source": [ + "data_qualityCheck()" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "train_df[\"text\"]=train_df[\"country\"]+\" \"+train_df[\"description\"]+\" \"+train_df[\"designation\"]+\" \"+train_df[\"province\"]+\" \"+train_df[\"title\"]+\" \"+train_df[\"variety\"]+\" \"+train_df[\"winery\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "train_df=train_df.drop([\"designation\",\"country\",\"province\",\"description\",\"title\",\"variety\",\"winery\"],axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
pricetext
00.0Italy Aromas include tropical fruit, broom, br...
115.0Portugal This is ripe and fruity, a wine that ...
214.0US Tart and snappy, the flavors of lime flesh ...
313.0US Pineapple rind, lemon pith and orange bloss...
465.0US Much like the regular bottling from 2012, t...
515.0Spain Blackberry and raspberry aromas show a t...
616.0Italy Here's a bright, informal red that opens...
724.0France This dry and restrained wine offers spi...
812.0Germany Savory dried thyme notes accent sunnie...
927.0France This has great depth of flavor with its...
1019.0US Soft, supple plum envelopes an oaky structu...
1130.0France This is a dry wine, very spicy, with a ...
1234.0US Slightly reduced, this wine offers a chalky...
130.0Italy This is dominated by oak and oak-driven ...
1412.0US Building on 150 years and six generations o...
1524.0Germany Zesty orange peels and apple notes abo...
1630.0Argentina Baked plum, molasses, balsamic vineg...
1713.0Argentina Raw black-cherry aromas are direct a...
1828.0Spain Desiccated blackberry, leather, charred ...
1932.0US Red fruit aromas pervade on the nose, with ...
\n", + "
" + ], + "text/plain": [ + " price text\n", + "0 0.0 Italy Aromas include tropical fruit, broom, br...\n", + "1 15.0 Portugal This is ripe and fruity, a wine that ...\n", + "2 14.0 US Tart and snappy, the flavors of lime flesh ...\n", + "3 13.0 US Pineapple rind, lemon pith and orange bloss...\n", + "4 65.0 US Much like the regular bottling from 2012, t...\n", + "5 15.0 Spain Blackberry and raspberry aromas show a t...\n", + "6 16.0 Italy Here's a bright, informal red that opens...\n", + "7 24.0 France This dry and restrained wine offers spi...\n", + "8 12.0 Germany Savory dried thyme notes accent sunnie...\n", + "9 27.0 France This has great depth of flavor with its...\n", + "10 19.0 US Soft, supple plum envelopes an oaky structu...\n", + "11 30.0 France This is a dry wine, very spicy, with a ...\n", + "12 34.0 US Slightly reduced, this wine offers a chalky...\n", + "13 0.0 Italy This is dominated by oak and oak-driven ...\n", + "14 12.0 US Building on 150 years and six generations o...\n", + "15 24.0 Germany Zesty orange peels and apple notes abo...\n", + "16 30.0 Argentina Baked plum, molasses, balsamic vineg...\n", + "17 13.0 Argentina Raw black-cherry aromas are direct a...\n", + "18 28.0 Spain Desiccated blackberry, leather, charred ...\n", + "19 32.0 US Red fruit aromas pervade on the nose, with ..." + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df.head(20)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "price=train_df[\"price\"]\n", + "train_df=train_df.drop(\"price\",axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "custom_download_dir = \"C:\\\\Users\\\\ysach/nltk\"\n", + "nltk.data.path.append(custom_download_dir)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[nltk_data] Downloading package stopwords to C:\\Users\\ysach/nltk...\n", + "[nltk_data] Package stopwords is already up-to-date!\n" + ] + }, + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nltk.download('stopwords',download_dir=custom_download_dir)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "execution": { + "iopub.execute_input": "2021-05-25T06:50:32.51602Z", + "iopub.status.busy": "2021-05-25T06:50:32.515411Z", + "iopub.status.idle": "2021-05-25T06:50:32.531829Z", + "shell.execute_reply": "2021-05-25T06:50:32.530895Z", + "shell.execute_reply.started": "2021-05-25T06:50:32.515972Z" + } + }, + "outputs": [], + "source": [ + "lemmatizer = WordNetLemmatizer()\n", + "stpwrds = list(stopwords.words('english'))" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['i',\n", + " 'me',\n", + " 'my',\n", + " 'myself',\n", + " 'we',\n", + " 'our',\n", + " 'ours',\n", + " 'ourselves',\n", + " 'you',\n", + " \"you're\",\n", + " \"you've\",\n", + " \"you'll\",\n", + " \"you'd\",\n", + " 'your',\n", + " 'yours',\n", + " 'yourself',\n", + " 'yourselves',\n", + " 'he',\n", + " 'him',\n", + " 'his',\n", + " 'himself',\n", + " 'she',\n", + " \"she's\",\n", + " 'her',\n", + " 'hers',\n", + " 'herself',\n", + " 'it',\n", + " \"it's\",\n", + " 'its',\n", + " 'itself',\n", + " 'they',\n", + " 'them',\n", + " 'their',\n", + " 'theirs',\n", + " 'themselves',\n", + " 'what',\n", + " 'which',\n", + " 'who',\n", + " 'whom',\n", + " 'this',\n", + " 'that',\n", + " \"that'll\",\n", + " 'these',\n", + " 'those',\n", + " 'am',\n", + " 'is',\n", + " 'are',\n", + " 'was',\n", + " 'were',\n", + " 'be',\n", + " 'been',\n", + " 'being',\n", + " 'have',\n", + " 'has',\n", + " 'had',\n", + " 'having',\n", + " 'do',\n", + " 'does',\n", + " 'did',\n", + " 'doing',\n", + " 'a',\n", + " 'an',\n", + " 'the',\n", + " 'and',\n", + " 'but',\n", + " 'if',\n", + " 'or',\n", + " 'because',\n", + " 'as',\n", + " 'until',\n", + " 'while',\n", + " 'of',\n", + " 'at',\n", + " 'by',\n", + " 'for',\n", + " 'with',\n", + " 'about',\n", + " 'against',\n", + " 'between',\n", + " 'into',\n", + " 'through',\n", + " 'during',\n", + " 'before',\n", + " 'after',\n", + " 'above',\n", + " 'below',\n", + " 'to',\n", + " 'from',\n", + " 'up',\n", + " 'down',\n", + " 'in',\n", + " 'out',\n", + " 'on',\n", + " 'off',\n", + " 'over',\n", + " 'under',\n", + " 'again',\n", + " 'further',\n", + " 'then',\n", + " 'once',\n", + " 'here',\n", + " 'there',\n", + " 'when',\n", + " 'where',\n", + " 'why',\n", + " 'how',\n", + " 'all',\n", + " 'any',\n", + " 'both',\n", + " 'each',\n", + " 'few',\n", + " 'more',\n", + " 'most',\n", + " 'other',\n", + " 'some',\n", + " 'such',\n", + " 'no',\n", + " 'nor',\n", + " 'not',\n", + " 'only',\n", + " 'own',\n", + " 'same',\n", + " 'so',\n", + " 'than',\n", + " 'too',\n", + " 'very',\n", + " 's',\n", + " 't',\n", + " 'can',\n", + " 'will',\n", + " 'just',\n", + " 'don',\n", + " \"don't\",\n", + " 'should',\n", + " \"should've\",\n", + " 'now',\n", + " 'd',\n", + " 'll',\n", + " 'm',\n", + " 'o',\n", + " 're',\n", + " 've',\n", + " 'y',\n", + " 'ain',\n", + " 'aren',\n", + " \"aren't\",\n", + " 'couldn',\n", + " \"couldn't\",\n", + " 'didn',\n", + " \"didn't\",\n", + " 'doesn',\n", + " \"doesn't\",\n", + " 'hadn',\n", + " \"hadn't\",\n", + " 'hasn',\n", + " \"hasn't\",\n", + " 'haven',\n", + " \"haven't\",\n", + " 'isn',\n", + " \"isn't\",\n", + " 'ma',\n", + " 'mightn',\n", + " \"mightn't\",\n", + " 'mustn',\n", + " \"mustn't\",\n", + " 'needn',\n", + " \"needn't\",\n", + " 'shan',\n", + " \"shan't\",\n", + " 'shouldn',\n", + " \"shouldn't\",\n", + " 'wasn',\n", + " \"wasn't\",\n", + " 'weren',\n", + " \"weren't\",\n", + " 'won',\n", + " \"won't\",\n", + " 'wouldn',\n", + " \"wouldn't\"]" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "stpwrds" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[nltk_data] Downloading package punkt to C:\\Users\\ysach/nltk...\n", + "[nltk_data] Package punkt is already up-to-date!\n", + "[nltk_data] Downloading package wordnet to C:\\Users\\ysach/nltk...\n", + "[nltk_data] Package wordnet is already up-to-date!\n" + ] + }, + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nltk.download('punkt',download_dir=custom_download_dir)\n", + "nltk.download('wordnet',download_dir=custom_download_dir)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[nltk_data] Downloading package omw-1.4 to C:\\Users\\ysach/nltk...\n", + "[nltk_data] Package omw-1.4 is already up-to-date!\n" + ] + }, + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nltk.download('omw-1.4',download_dir=custom_download_dir)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "execution": { + "iopub.execute_input": "2021-05-25T06:50:32.54905Z", + "iopub.status.busy": "2021-05-25T06:50:32.548517Z", + "iopub.status.idle": "2021-05-25T06:53:51.648153Z", + "shell.execute_reply": "2021-05-25T06:53:51.647283Z", + "shell.execute_reply.started": "2021-05-25T06:50:32.549015Z" + } + }, + "outputs": [], + "source": [ + "for x in range(len(train_df)) :\n", + " corpus = []\n", + " review = train_df['text'][x]\n", + " review = re.sub(r'[^a-zA-Z\\s]', '', review)\n", + " review = review.lower()\n", + " review = nltk.word_tokenize(review)\n", + " for y in review :\n", + " if y not in stpwrds :\n", + " corpus.append(lemmatizer.lemmatize(y))\n", + " review = ' '.join(corpus)\n", + " train_df['text'][x] = review" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "execution": { + "iopub.execute_input": "2021-05-25T07:14:51.798724Z", + "iopub.status.busy": "2021-05-25T07:14:51.798361Z", + "iopub.status.idle": "2021-05-25T07:14:51.805617Z", + "shell.execute_reply": "2021-05-25T07:14:51.804946Z", + "shell.execute_reply.started": "2021-05-25T07:14:51.798694Z" + }, + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'u touch riesling accentuates fresh citrusy backbone cabernet sauvignon ro dry style sprightly lightfooted tone offer load concentrated cherry berry flavor finish brisk clean dry new york osprey dominion dry ro north fork long island ro osprey dominion'" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df['text'][2188]" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "89" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "label_train[2188]" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "execution": { + "iopub.execute_input": "2021-05-25T07:16:37.152728Z", + "iopub.status.busy": "2021-05-25T07:16:37.152216Z", + "iopub.status.idle": "2021-05-25T07:16:37.163059Z", + "shell.execute_reply": "2021-05-25T07:16:37.161884Z", + "shell.execute_reply.started": "2021-05-25T07:16:37.152696Z" + } + }, + "outputs": [], + "source": [ + "X_train= train_df['text']" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 italy aroma include tropical fruit broom brims...\n", + "1 portugal ripe fruity wine smooth still structu...\n", + "2 u tart snappy flavor lime flesh rind dominate ...\n", + "3 u pineapple rind lemon pith orange blossom sta...\n", + "4 u much like regular bottling come across rathe...\n", + " ... \n", + "129966 germany note honeysuckle cantaloupe sweeten de...\n", + "129967 u citation given much decade bottle age prior ...\n", + "129968 france welldrained gravel soil give wine crisp...\n", + "129969 france dry style pinot gris crisp acidity also...\n", + "129970 france big rich offdry powered intense spicine...\n", + "Name: text, Length: 129971, dtype: object" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_train" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "execution": { + "iopub.execute_input": "2021-05-25T07:17:50.592597Z", + "iopub.status.busy": "2021-05-25T07:17:50.592095Z", + "iopub.status.idle": "2021-05-25T07:17:50.598862Z", + "shell.execute_reply": "2021-05-25T07:17:50.597641Z", + "shell.execute_reply.started": "2021-05-25T07:17:50.592566Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(129971,)" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_train.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "execution": { + "iopub.execute_input": "2021-05-25T07:18:05.89317Z", + "iopub.status.busy": "2021-05-25T07:18:05.892651Z", + "iopub.status.idle": "2021-05-25T07:18:05.902743Z", + "shell.execute_reply": "2021-05-25T07:18:05.901523Z", + "shell.execute_reply.started": "2021-05-25T07:18:05.893127Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(129971,)" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "label_train.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [], + "source": [ + "from keras.preprocessing.text import Tokenizer\n", + "from keras.preprocessing.sequence import pad_sequences" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The Padding Sequance Shape is --> (129971, 89)\n" + ] + } + ], + "source": [ + "tokenize = Tokenizer(oov_token=\"\")\n", + "tokenize.fit_on_texts(X_train)\n", + "word_idx = tokenize.word_index\n", + "\n", + "text2seq = tokenize.texts_to_sequences(X_train)\n", + "\n", + "# pad_seq = pad_sequences(text2seq, maxlen=150, padding=\"pre\", truncating=\"pre\")\n", + "\n", + "pad_seq = pad_sequences(text2seq, padding=\"pre\", truncating=\"pre\")\n", + "\n", + "\n", + "print(\"The Padding Sequance Shape is --> \", pad_seq.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "input_length = max(len(seq) for seq in text2seq)\n", + "\n", + "vocabulary_size = len(word_idx) + 1" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The maximum Sequance Length is --> 89\n", + "The vocabulary size of dataset is --> 63971\n" + ] + } + ], + "source": [ + "print(\"The maximum Sequance Length is --> \", input_length)\n", + "print(\"The vocabulary size of dataset is --> \", vocabulary_size)" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [], + "source": [ + "df=pd.DataFrame(pad_seq)" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
0123456789...79808182838485868788
00000000000...8244294491138628260824166430811386
10000000000...1377113871138752772155249137711387
20000000000...151049316112253739112259316
30000000000...594888264829326084718485236353
40000000000...7384393112337391123505969
50000000000...36628186587385672936628145842103145847385
60000000000...5717411791235853139385331395717411791
70000000000...5229044015172603110641724466031
80000000000...855113576307922855446113544676307922
90000000000...214177724112251721122531242141
\n", + "

10 rows × 89 columns

\n", + "
" + ], + "text/plain": [ + " 0 1 2 3 4 5 6 7 8 9 ... 79 80 81 82 \\\n", + "0 0 0 0 0 0 0 0 0 0 0 ... 824 429 449 11386 \n", + "1 0 0 0 0 0 0 0 0 0 0 ... 1377 11387 11387 5 \n", + "2 0 0 0 0 0 0 0 0 0 0 ... 15 104 9316 11 \n", + "3 0 0 0 0 0 0 0 0 0 0 ... 59 488 826 48 \n", + "4 0 0 0 0 0 0 0 0 0 0 ... 7384 393 11 23 \n", + "5 0 0 0 0 0 0 0 0 0 0 ... 36628 186 58 7385 \n", + "6 0 0 0 0 0 0 0 0 0 0 ... 571 74 11791 23585 \n", + "7 0 0 0 0 0 0 0 0 0 0 ... 52 290 440 15 \n", + "8 0 0 0 0 0 0 0 0 0 0 ... 855 1135 7630 7922 \n", + "9 0 0 0 0 0 0 0 0 0 0 ... 2141 77 724 11 \n", + "\n", + " 83 84 85 86 87 88 \n", + "0 28260 824 1664 30 8 11386 \n", + "1 277 215 5 249 1377 11387 \n", + "2 225 373 9 11 225 9316 \n", + "3 293 2608 4718 48 523 6353 \n", + "4 373 9 11 23 50 5969 \n", + "5 6729 36628 14584 2103 14584 7385 \n", + "6 3139 3853 3139 571 74 11791 \n", + "7 172 6031 1064 172 446 6031 \n", + "8 855 446 1135 446 7630 7922 \n", + "9 225 172 11 225 3124 2141 \n", + "\n", + "[10 rows x 89 columns]" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [], + "source": [ + "df['89']=price" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
0123456789...80818283848586878889
00000000000...42944911386282608241664308113860.0
10000000000...11387113875277215524913771138715.0
20000000000...104931611225373911225931614.0
30000000000...488826482932608471848523635313.0
40000000000...39311233739112350596965.0
50000000000...18658738567293662814584210314584738515.0
60000000000...741179123585313938533139571741179116.0
70000000000...2904401517260311064172446603124.0
80000000000...11357630792285544611354467630792212.0
90000000000...7772411225172112253124214127.0
100000000000...158181613291816252385719.0
110000000000...151725006385410641724465006385430.0
120000000000...3434181669291816580343434.0
130000000000...4493784235865411664173419253784235860.0
140000000000...1233151051052620926026510512.0
150000000000...40032441204211388484004832441204224.0
160000000000...561656162041456169237349256162041430.0
170000000000...603220415354360921359260322041513.0
180000000000...423136037901688862128692628.0
190000000000...16516711554023587107054010702358732.0
\n", + "

20 rows × 90 columns

\n", + "
" + ], + "text/plain": [ + " 0 1 2 3 4 5 6 7 8 9 ... 80 81 82 83 84 \\\n", + "0 0 0 0 0 0 0 0 0 0 0 ... 429 449 11386 28260 824 \n", + "1 0 0 0 0 0 0 0 0 0 0 ... 11387 11387 5 277 215 \n", + "2 0 0 0 0 0 0 0 0 0 0 ... 104 9316 11 225 373 \n", + "3 0 0 0 0 0 0 0 0 0 0 ... 488 826 48 293 2608 \n", + "4 0 0 0 0 0 0 0 0 0 0 ... 393 11 23 373 9 \n", + "5 0 0 0 0 0 0 0 0 0 0 ... 186 58 7385 6729 36628 \n", + "6 0 0 0 0 0 0 0 0 0 0 ... 74 11791 23585 3139 3853 \n", + "7 0 0 0 0 0 0 0 0 0 0 ... 290 440 15 172 6031 \n", + "8 0 0 0 0 0 0 0 0 0 0 ... 1135 7630 7922 855 446 \n", + "9 0 0 0 0 0 0 0 0 0 0 ... 77 724 11 225 172 \n", + "10 0 0 0 0 0 0 0 0 0 0 ... 158 18 16 132 9 \n", + "11 0 0 0 0 0 0 0 0 0 0 ... 15 172 5006 3854 1064 \n", + "12 0 0 0 0 0 0 0 0 0 0 ... 3434 18 16 692 9 \n", + "13 0 0 0 0 0 0 0 0 0 0 ... 449 3784 23586 541 1664 \n", + "14 0 0 0 0 0 0 0 0 0 0 ... 1233 15 10 5105 26 \n", + "15 0 0 0 0 0 0 0 0 0 0 ... 400 3244 12042 11388 48 \n", + "16 0 0 0 0 0 0 0 0 0 0 ... 5616 5616 20414 5616 92 \n", + "17 0 0 0 0 0 0 0 0 0 0 ... 6032 20415 354 360 92 \n", + "18 0 0 0 0 0 0 0 0 0 0 ... 423 13 603 790 168 \n", + "19 0 0 0 0 0 0 0 0 0 0 ... 165 1671 15 540 23587 \n", + "\n", + " 85 86 87 88 89 \n", + "0 1664 30 8 11386 0.0 \n", + "1 5 249 1377 11387 15.0 \n", + "2 9 11 225 9316 14.0 \n", + "3 4718 48 523 6353 13.0 \n", + "4 11 23 50 5969 65.0 \n", + "5 14584 2103 14584 7385 15.0 \n", + "6 3139 571 74 11791 16.0 \n", + "7 1064 172 446 6031 24.0 \n", + "8 1135 446 7630 7922 12.0 \n", + "9 11 225 3124 2141 27.0 \n", + "10 18 16 2523 857 19.0 \n", + "11 172 446 5006 3854 30.0 \n", + "12 18 16 580 3434 34.0 \n", + "13 1734 1925 3784 23586 0.0 \n", + "14 209 260 26 5105 12.0 \n", + "15 400 48 3244 12042 24.0 \n", + "16 3734 92 5616 20414 30.0 \n", + "17 135 92 6032 20415 13.0 \n", + "18 886 212 8 6926 28.0 \n", + "19 1070 540 1070 23587 32.0 \n", + "\n", + "[20 rows x 90 columns]" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head(20)" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Index([], dtype='object')\n" + ] + } + ], + "source": [ + "zero_columns = df.columns[df.eq(0).all()]\n", + "print(zero_columns)" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(129971, 90)" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.feature_extraction.text import TfidfVectorizer\n", + "from sklearn.feature_extraction.text import CountVectorizer\n", + "vectorizer = CountVectorizer(\n", + " ngram_range=(1,1),\n", + " max_features=25\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [], + "source": [ + "df3=pd.get_dummies(label_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
80818283848586878889...919293949596979899100
00000000100...0000000000
10000000100...0000000000
20000000100...0000000000
30000000100...0000000000
40000000100...0000000000
50000000100...0000000000
60000000100...0000000000
70000000100...0000000000
80000000100...0000000000
90000000100...0000000000
\n", + "

10 rows × 21 columns

\n", + "
" + ], + "text/plain": [ + " 80 81 82 83 84 85 86 87 88 89 ... 91 92 93 94 \\\n", + "0 0 0 0 0 0 0 0 1 0 0 ... 0 0 0 0 \n", + "1 0 0 0 0 0 0 0 1 0 0 ... 0 0 0 0 \n", + "2 0 0 0 0 0 0 0 1 0 0 ... 0 0 0 0 \n", + "3 0 0 0 0 0 0 0 1 0 0 ... 0 0 0 0 \n", + "4 0 0 0 0 0 0 0 1 0 0 ... 0 0 0 0 \n", + "5 0 0 0 0 0 0 0 1 0 0 ... 0 0 0 0 \n", + "6 0 0 0 0 0 0 0 1 0 0 ... 0 0 0 0 \n", + "7 0 0 0 0 0 0 0 1 0 0 ... 0 0 0 0 \n", + "8 0 0 0 0 0 0 0 1 0 0 ... 0 0 0 0 \n", + "9 0 0 0 0 0 0 0 1 0 0 ... 0 0 0 0 \n", + "\n", + " 95 96 97 98 99 100 \n", + "0 0 0 0 0 0 0 \n", + "1 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 0 \n", + "5 0 0 0 0 0 0 \n", + "6 0 0 0 0 0 0 \n", + "7 0 0 0 0 0 0 \n", + "8 0 0 0 0 0 0 \n", + "9 0 0 0 0 0 0 \n", + "\n", + "[10 rows x 21 columns]" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df3.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: tensorflow in c:\\users\\ysach\\anaconda3\\lib\\site-packages (2.15.0)\n", + "Requirement already satisfied: tensorflow-intel==2.15.0 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow) (2.15.0)\n", + "Requirement already satisfied: tensorboard<2.16,>=2.15 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (2.15.1)\n", + "Requirement already satisfied: tensorflow-estimator<2.16,>=2.15.0 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (2.15.0)\n", + "Requirement already satisfied: numpy<2.0.0,>=1.23.5 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (1.23.5)\n", + "Requirement already satisfied: six>=1.12.0 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (1.16.0)\n", + "Requirement already satisfied: google-pasta>=0.1.1 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (0.2.0)\n", + "Requirement already satisfied: absl-py>=1.0.0 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (1.4.0)\n", + "Requirement already satisfied: setuptools in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (65.6.3)\n", + "Requirement already satisfied: h5py>=2.9.0 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (3.7.0)\n", + "Requirement already satisfied: libclang>=13.0.0 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (16.0.6)\n", + "Requirement already satisfied: wrapt<1.15,>=1.11.0 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (1.14.1)\n", + "Requirement already satisfied: typing-extensions>=3.6.6 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (4.4.0)\n", + "Requirement already satisfied: keras<2.16,>=2.15.0 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (2.15.0)\n", + "Requirement already satisfied: termcolor>=1.1.0 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (2.4.0)\n", + "Requirement already satisfied: gast!=0.5.0,!=0.5.1,!=0.5.2,>=0.2.1 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (0.5.4)\n", + "Requirement already satisfied: flatbuffers>=23.5.26 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (23.5.26)\n", + "Requirement already satisfied: grpcio<2.0,>=1.24.3 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (1.60.0)\n", + "Requirement already satisfied: opt-einsum>=2.3.2 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (3.3.0)\n", + "Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (0.31.0)\n", + "Requirement already satisfied: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.20.3 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (3.20.3)\n", + "Requirement already satisfied: ml-dtypes~=0.2.0 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (0.2.0)\n", + "Requirement already satisfied: astunparse>=1.6.0 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (1.6.3)\n", + "Requirement already satisfied: packaging in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-intel==2.15.0->tensorflow) (22.0)\n", + "Requirement already satisfied: wheel<1.0,>=0.23.0 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from astunparse>=1.6.0->tensorflow-intel==2.15.0->tensorflow) (0.38.4)\n", + "Requirement already satisfied: google-auth-oauthlib<2,>=0.5 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorboard<2.16,>=2.15->tensorflow-intel==2.15.0->tensorflow) (1.2.0)\n", + "Requirement already satisfied: requests<3,>=2.21.0 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorboard<2.16,>=2.15->tensorflow-intel==2.15.0->tensorflow) (2.28.1)\n", + "Requirement already satisfied: werkzeug>=1.0.1 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorboard<2.16,>=2.15->tensorflow-intel==2.15.0->tensorflow) (2.2.2)\n", + "Requirement already satisfied: markdown>=2.6.8 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorboard<2.16,>=2.15->tensorflow-intel==2.15.0->tensorflow) (3.4.1)\n", + "Requirement already satisfied: tensorboard-data-server<0.8.0,>=0.7.0 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorboard<2.16,>=2.15->tensorflow-intel==2.15.0->tensorflow) (0.7.2)\n", + "Requirement already satisfied: google-auth<3,>=1.6.3 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorboard<2.16,>=2.15->tensorflow-intel==2.15.0->tensorflow) (2.25.2)\n", + "Requirement already satisfied: pyasn1-modules>=0.2.1 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow-intel==2.15.0->tensorflow) (0.2.8)\n", + "Requirement already satisfied: rsa<5,>=3.1.4 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow-intel==2.15.0->tensorflow) (4.9)\n", + "Requirement already satisfied: cachetools<6.0,>=2.0.0 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow-intel==2.15.0->tensorflow) (5.3.2)\n", + "Requirement already satisfied: requests-oauthlib>=0.7.0 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from google-auth-oauthlib<2,>=0.5->tensorboard<2.16,>=2.15->tensorflow-intel==2.15.0->tensorflow) (1.3.1)\n", + "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow-intel==2.15.0->tensorflow) (2023.11.17)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow-intel==2.15.0->tensorflow) (1.26.14)\n", + "Requirement already satisfied: charset-normalizer<3,>=2 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow-intel==2.15.0->tensorflow) (2.0.4)\n", + "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow-intel==2.15.0->tensorflow) (3.4)\n", + "Requirement already satisfied: MarkupSafe>=2.1.1 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from werkzeug>=1.0.1->tensorboard<2.16,>=2.15->tensorflow-intel==2.15.0->tensorflow) (2.1.1)\n", + "Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow-intel==2.15.0->tensorflow) (0.4.8)\n", + "Requirement already satisfied: oauthlib>=3.0.0 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<2,>=0.5->tensorboard<2.16,>=2.15->tensorflow-intel==2.15.0->tensorflow) (3.2.2)\n" + ] + } + ], + "source": [ + "!pip install tensorflow" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "import tensorflow as tf" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [], + "source": [ + "df1=df['89']" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [], + "source": [ + "import keras\n", + "from keras.models import Sequential\n", + "from keras.utils import to_categorical\n", + "from keras import metrics as metrics1\n", + "from keras.layers import LeakyReLU\n", + "from keras.layers import Dense, Embedding, GlobalAveragePooling1D, LSTM, Bidirectional,InputLayer" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [], + "source": [ + "x_train1, x_test, y_train1, y_test = train_test_split(pad_seq, df3, train_size=0.7)" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING:tensorflow:From c:\\Users\\ysach\\anaconda3\\lib\\site-packages\\keras\\src\\backend.py:873: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "WARNING:tensorflow:From c:\\Users\\ysach\\anaconda3\\lib\\site-packages\\keras\\src\\optimizers\\__init__.py:309: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "classifier = Sequential()\n", + "classifier.add(Embedding(vocabulary_size, 200, input_length=89))\n", + "classifier.add(GlobalAveragePooling1D())\n", + "classifier.add(Dense(100, activation='relu'))\n", + "classifier.add(Dense(50, activation='relu'))\n", + "classifier.add(Dense(21, activation='sigmoid'))\n", + "\n", + "# Compile the model\n", + "classifier.compile(optimizer='adam',\n", + " loss='categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: \"sequential\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " embedding (Embedding) (None, 89, 200) 12794200 \n", + " \n", + " global_average_pooling1d ( (None, 200) 0 \n", + " GlobalAveragePooling1D) \n", + " \n", + " dense (Dense) (None, 100) 20100 \n", + " \n", + " dense_1 (Dense) (None, 50) 5050 \n", + " \n", + " dense_2 (Dense) (None, 21) 1071 \n", + " \n", + "=================================================================\n", + "Total params: 12820421 (48.91 MB)\n", + "Trainable params: 12820421 (48.91 MB)\n", + "Non-trainable params: 0 (0.00 Byte)\n", + "_________________________________________________________________\n" + ] + } + ], + "source": [ + "classifier.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/10\n", + "WARNING:tensorflow:From c:\\Users\\ysach\\anaconda3\\lib\\site-packages\\keras\\src\\utils\\tf_utils.py:492: The name tf.ragged.RaggedTensorValue is deprecated. Please use tf.compat.v1.ragged.RaggedTensorValue instead.\n", + "\n", + "WARNING:tensorflow:From c:\\Users\\ysach\\anaconda3\\lib\\site-packages\\keras\\src\\engine\\base_layer_utils.py:384: The name tf.executing_eagerly_outside_functions is deprecated. Please use tf.compat.v1.executing_eagerly_outside_functions instead.\n", + "\n", + "2844/2844 [==============================] - 700s 246ms/step - loss: 1.9759 - accuracy: 0.2405 - val_loss: 1.8103 - val_accuracy: 0.2790\n", + "Epoch 2/10\n", + "2844/2844 [==============================] - 680s 239ms/step - loss: 1.6719 - accuracy: 0.3298 - val_loss: 1.7734 - val_accuracy: 0.2931\n", + "Epoch 3/10\n", + "2844/2844 [==============================] - 716s 252ms/step - loss: 1.5275 - accuracy: 0.3928 - val_loss: 1.7976 - val_accuracy: 0.3054\n", + "Epoch 4/10\n", + "2844/2844 [==============================] - 744s 262ms/step - loss: 1.3634 - accuracy: 0.4765 - val_loss: 1.8590 - val_accuracy: 0.3115\n", + "Epoch 5/10\n", + "2844/2844 [==============================] - 702s 247ms/step - loss: 1.1777 - accuracy: 0.5636 - val_loss: 2.0084 - val_accuracy: 0.3067\n", + "Epoch 6/10\n", + "2844/2844 [==============================] - 651s 229ms/step - loss: 1.0069 - accuracy: 0.6370 - val_loss: 2.1700 - val_accuracy: 0.3127\n", + "Epoch 7/10\n", + "2844/2844 [==============================] - 636s 224ms/step - loss: 0.8697 - accuracy: 0.6905 - val_loss: 2.3802 - val_accuracy: 0.3126\n", + "Epoch 8/10\n", + "2844/2844 [==============================] - 779s 274ms/step - loss: 0.7557 - accuracy: 0.7336 - val_loss: 2.5939 - val_accuracy: 0.3108\n", + "Epoch 9/10\n", + "2844/2844 [==============================] - 635s 223ms/step - loss: 0.6597 - accuracy: 0.7682 - val_loss: 2.8150 - val_accuracy: 0.3061\n", + "Epoch 10/10\n", + "2844/2844 [==============================] - 677s 238ms/step - loss: 0.5769 - accuracy: 0.7990 - val_loss: 3.1260 - val_accuracy: 0.3100\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "classifier.fit(x_train1,y_train1,epochs=10,validation_data=(x_test, y_test))" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1219/1219 [==============================] - 1s 917us/step\n" + ] + } + ], + "source": [ + "Y_pred = classifier.predict(x_test)\n", + "a=[]\n", + "for x in Y_pred:\n", + " a.append(80 +np.argmax(x))" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[85,\n", + " 85,\n", + " 90,\n", + " 88,\n", + " 87,\n", + " 86,\n", + " 84,\n", + " 91,\n", + " 91,\n", + " 89,\n", + " 92,\n", + " 92,\n", + " 90,\n", + " 87,\n", + " 86,\n", + " 89,\n", + " 87,\n", + " 99,\n", + " 95,\n", + " 86,\n", + " 90,\n", + " 85,\n", + " 94,\n", + " 93,\n", + " 88,\n", + " 85,\n", + " 88,\n", + " 89,\n", + " 87,\n", + " 90,\n", + " 86,\n", + " 89,\n", + " 85,\n", + " 84,\n", + " 90,\n", + " 85,\n", + " 90,\n", + " 89,\n", + " 85,\n", + " 89,\n", + " 87,\n", + " 86,\n", + " 86,\n", + " 89,\n", + " 84,\n", + " 92,\n", + " 90,\n", + " 92,\n", + " 92,\n", + " 87,\n", + " 85,\n", + " 89,\n", + " 84,\n", + " 90,\n", + " 90,\n", + " 88,\n", + " 86,\n", + " 91,\n", + " 88,\n", + " 93,\n", + " 89,\n", + " 88,\n", + " 85,\n", + " 88,\n", + " 87,\n", + " 90,\n", + " 83,\n", + " 88,\n", + " 91,\n", + " 84,\n", + " 94,\n", + " 87,\n", + " 91,\n", + " 89,\n", + " 88,\n", + " 92,\n", + " 86,\n", + " 92,\n", + " 84,\n", + " 93,\n", + " 89,\n", + " 87,\n", + " 84,\n", + " 89,\n", + " 93,\n", + " 89,\n", + " 88,\n", + " 88,\n", + " 93,\n", + " 94,\n", + " 91,\n", + " 92,\n", + " 93,\n", + " 87,\n", + " 87,\n", + " 82,\n", + " 92,\n", + " 84,\n", + " 92,\n", + " 90,\n", + " 90,\n", + " 93,\n", + " 91,\n", + " 94,\n", + " 93,\n", + " 93,\n", + " 90,\n", + " 90,\n", + " 88,\n", + " 87,\n", + " 83,\n", + " 85,\n", + " 85,\n", + " 92,\n", + " 90,\n", + " 85,\n", + " 93,\n", + " 87,\n", + " 86,\n", + " 89,\n", + " 88,\n", + " 85,\n", + " 92,\n", + " 90,\n", + " 85,\n", + " 94,\n", + " 90,\n", + " 86,\n", + " 91,\n", + " 89,\n", + " 88,\n", + " 88,\n", + " 84,\n", + " 82,\n", + " 85,\n", + " 91,\n", + " 87,\n", + " 88,\n", + " 89,\n", + " 92,\n", + " 89,\n", + " 85,\n", + " 91,\n", + " 88,\n", + " 87,\n", + " 89,\n", + " 88,\n", + " 88,\n", + " 87,\n", + " 95,\n", + " 86,\n", + " 96,\n", + " 88,\n", + " 86,\n", + " 90,\n", + " 90,\n", + " 84,\n", + " 85,\n", + " 89,\n", + " 88,\n", + " 81,\n", + " 88,\n", + " 89,\n", + " 88,\n", + " 88,\n", + " 96,\n", + " 88,\n", + " 91,\n", + " 86,\n", + " 87,\n", + " 92,\n", + " 91,\n", + " 82,\n", + " 90,\n", + " 94,\n", + " 92,\n", + " 90,\n", + " 84,\n", + " 87,\n", + " 89,\n", + " 90,\n", + " 88,\n", + " 87,\n", + " 86,\n", + " 90,\n", + " 92,\n", + " 88,\n", + " 93,\n", + " 89,\n", + " 84,\n", + " 87,\n", + " 87,\n", + " 91,\n", + " 88,\n", + " 84,\n", + " 89,\n", + " 93,\n", + " 88,\n", + " 92,\n", + " 88,\n", + " 86,\n", + " 92,\n", + " 95,\n", + " 92,\n", + " 86,\n", + " 92,\n", + " 87,\n", + " 85,\n", + " 86,\n", + " 84,\n", + " 92,\n", + " 88,\n", + " 90,\n", + " 89,\n", + " 86,\n", + " 93,\n", + " 86,\n", + " 89,\n", + " 90,\n", + " 88,\n", + " 90,\n", + " 90,\n", + " 90,\n", + " 87,\n", + " 87,\n", + " 87,\n", + " 89,\n", + " 87,\n", + " 87,\n", + " 90,\n", + " 84,\n", + " 92,\n", + " 92,\n", + " 85,\n", + " 85,\n", + " 89,\n", + " 90,\n", + " 87,\n", + " 84,\n", + " 93,\n", + " 90,\n", + " 89,\n", + " 86,\n", + " 87,\n", + " 90,\n", + " 86,\n", + " 88,\n", + " 90,\n", + " 89,\n", + " 94,\n", + " 86,\n", + " 84,\n", + " 90,\n", + " 85,\n", + " 90,\n", + " 88,\n", + " 92,\n", + " 90,\n", + " 87,\n", + " 94,\n", + " 88,\n", + " 89,\n", + " 90,\n", + " 91,\n", + " 88,\n", + " 85,\n", + " 88,\n", + " 89,\n", + " 85,\n", + " 95,\n", + " 90,\n", + " 91,\n", + " 88,\n", + " 92,\n", + " 90,\n", + " 92,\n", + " 91,\n", + " 88,\n", + " 90,\n", + " 86,\n", + " 88,\n", + " 90,\n", + " 87,\n", + " 86,\n", + " 84,\n", + " 85,\n", + " 85,\n", + " 85,\n", + " 87,\n", + " 86,\n", + " 87,\n", + " 85,\n", + " 94,\n", + " 90,\n", + " 84,\n", + " 93,\n", + " 88,\n", + " 85,\n", + " 88,\n", + " 84,\n", + " 85,\n", + " 88,\n", + " 89,\n", + " 88,\n", + " 89,\n", + " 94,\n", + " 90,\n", + " 94,\n", + " 86,\n", + " 90,\n", + " 87,\n", + " 86,\n", + " 91,\n", + " 92,\n", + " 85,\n", + " 90,\n", + " 85,\n", + " 93,\n", + " 91,\n", + " 94,\n", + " 89,\n", + " 85,\n", + " 88,\n", + " 95,\n", + " 88,\n", + " 92,\n", + " 90,\n", + " 90,\n", + " 90,\n", + " 93,\n", + " 90,\n", + " 93,\n", + " 90,\n", + " 91,\n", + " 86,\n", + " 84,\n", + " 86,\n", + " 91,\n", + " 84,\n", + " 86,\n", + " 88,\n", + " 89,\n", + " 88,\n", + " 87,\n", + " 85,\n", + " 94,\n", + " 90,\n", + " 88,\n", + " 85,\n", + " 90,\n", + " 86,\n", + " 88,\n", + " 84,\n", + " 89,\n", + " 87,\n", + " 91,\n", + " 83,\n", + " 90,\n", + " 89,\n", + " 88,\n", + " 85,\n", + " 87,\n", + " 84,\n", + " 89,\n", + " 86,\n", + " 88,\n", + " 91,\n", + " 85,\n", + " 88,\n", + " 90,\n", + " 92,\n", + " 85,\n", + " 89,\n", + " 85,\n", + " 95,\n", + " 90,\n", + " 86,\n", + " 95,\n", + " 90,\n", + " 88,\n", + " 90,\n", + " 95,\n", + " 87,\n", + " 88,\n", + " 84,\n", + " 85,\n", + " 87,\n", + " 84,\n", + " 85,\n", + " 91,\n", + " 90,\n", + " 85,\n", + " 87,\n", + " 88,\n", + " 89,\n", + " 87,\n", + " 94,\n", + " 90,\n", + " 86,\n", + " 86,\n", + " 91,\n", + " 90,\n", + " 89,\n", + " 90,\n", + " 88,\n", + " 88,\n", + " 85,\n", + " 90,\n", + " 93,\n", + " 91,\n", + " 84,\n", + " 85,\n", + " 92,\n", + " 95,\n", + " 89,\n", + " 86,\n", + " 85,\n", + " 90,\n", + " 87,\n", + " 93,\n", + " 86,\n", + " 84,\n", + " 88,\n", + " 85,\n", + " 92,\n", + " 89,\n", + " 95,\n", + " 88,\n", + " 89,\n", + " 91,\n", + " 89,\n", + " 89,\n", + " 86,\n", + " 85,\n", + " 86,\n", + " 87,\n", + " 91,\n", + " 88,\n", + " 91,\n", + " 96,\n", + " 85,\n", + " 93,\n", + " 87,\n", + " 90,\n", + " 91,\n", + " 85,\n", + " 89,\n", + " 90,\n", + " 90,\n", + " 89,\n", + " 86,\n", + " 86,\n", + " 91,\n", + " 84,\n", + " 82,\n", + " 90,\n", + " 88,\n", + " 88,\n", + " 95,\n", + " 92,\n", + " 88,\n", + " 90,\n", + " 94,\n", + " 88,\n", + " 93,\n", + " 84,\n", + " 90,\n", + " 90,\n", + " 91,\n", + " 88,\n", + " 91,\n", + " 93,\n", + " 90,\n", + " 88,\n", + " 85,\n", + " 84,\n", + " 92,\n", + " 87,\n", + " 87,\n", + " 85,\n", + " 90,\n", + " 86,\n", + " 91,\n", + " 88,\n", + " 83,\n", + " 85,\n", + " 92,\n", + " 88,\n", + " 85,\n", + " 88,\n", + " 92,\n", + " 87,\n", + " 95,\n", + " 90,\n", + " 90,\n", + " 84,\n", + " 89,\n", + " 86,\n", + " 85,\n", + " 97,\n", + " 92,\n", + " 89,\n", + " 92,\n", + " 89,\n", + " 89,\n", + " 90,\n", + " 89,\n", + " 91,\n", + " 92,\n", + " 90,\n", + " 86,\n", + " 88,\n", + " 88,\n", + " 88,\n", + " 87,\n", + " 89,\n", + " 89,\n", + " 88,\n", + " 89,\n", + " 90,\n", + " 86,\n", + " 90,\n", + " 91,\n", + " 92,\n", + " 94,\n", + " 87,\n", + " 90,\n", + " 88,\n", + " 88,\n", + " 90,\n", + " 90,\n", + " 82,\n", + " 90,\n", + " 84,\n", + " 93,\n", + " 92,\n", + " 91,\n", + " 87,\n", + " 88,\n", + " 90,\n", + " 90,\n", + " 86,\n", + " 91,\n", + " 89,\n", + " 84,\n", + " 83,\n", + " 89,\n", + " 85,\n", + " 90,\n", + " 90,\n", + " 90,\n", + " 90,\n", + " 84,\n", + " 90,\n", + " 90,\n", + " 84,\n", + " 87,\n", + " 92,\n", + " 87,\n", + " 83,\n", + " 89,\n", + " 87,\n", + " 85,\n", + " 85,\n", + " 90,\n", + " 91,\n", + " 94,\n", + " 91,\n", + " 87,\n", + " 85,\n", + " 85,\n", + " 93,\n", + " 88,\n", + " 85,\n", + " 85,\n", + " 88,\n", + " 88,\n", + " 87,\n", + " 92,\n", + " 90,\n", + " 90,\n", + " 89,\n", + " 88,\n", + " 90,\n", + " 90,\n", + " 84,\n", + " 89,\n", + " 85,\n", + " 90,\n", + " 89,\n", + " 94,\n", + " 85,\n", + " 88,\n", + " 88,\n", + " 90,\n", + " 93,\n", + " 94,\n", + " 88,\n", + " 88,\n", + " 92,\n", + " 91,\n", + " 92,\n", + " 91,\n", + " 87,\n", + " 91,\n", + " 95,\n", + " 88,\n", + " 83,\n", + " 84,\n", + " 91,\n", + " 84,\n", + " 90,\n", + " 87,\n", + " 91,\n", + " 88,\n", + " 85,\n", + " 86,\n", + " 92,\n", + " 87,\n", + " 88,\n", + " 90,\n", + " 86,\n", + " 87,\n", + " 87,\n", + " 88,\n", + " 91,\n", + " 88,\n", + " 89,\n", + " 88,\n", + " 87,\n", + " 91,\n", + " 84,\n", + " 92,\n", + " 86,\n", + " 91,\n", + " 92,\n", + " 93,\n", + " 87,\n", + " 85,\n", + " 86,\n", + " 87,\n", + " 90,\n", + " 86,\n", + " 94,\n", + " 92,\n", + " 84,\n", + " 85,\n", + " 91,\n", + " 89,\n", + " 89,\n", + " 84,\n", + " 90,\n", + " 90,\n", + " 85,\n", + " 90,\n", + " 88,\n", + " 89,\n", + " 94,\n", + " 87,\n", + " 89,\n", + " 90,\n", + " 87,\n", + " 88,\n", + " 89,\n", + " 92,\n", + " 89,\n", + " 91,\n", + " 91,\n", + " 85,\n", + " 85,\n", + " 94,\n", + " 89,\n", + " 86,\n", + " 87,\n", + " 82,\n", + " 89,\n", + " 85,\n", + " 90,\n", + " 88,\n", + " 90,\n", + " 93,\n", + " 87,\n", + " 90,\n", + " 93,\n", + " 87,\n", + " 86,\n", + " 84,\n", + " 91,\n", + " 88,\n", + " 89,\n", + " 87,\n", + " 86,\n", + " 86,\n", + " 85,\n", + " 85,\n", + " 87,\n", + " 88,\n", + " 90,\n", + " 92,\n", + " 88,\n", + " 92,\n", + " 92,\n", + " 84,\n", + " 93,\n", + " 90,\n", + " 85,\n", + " 87,\n", + " 85,\n", + " 84,\n", + " 92,\n", + " 87,\n", + " 87,\n", + " 89,\n", + " 84,\n", + " 88,\n", + " 84,\n", + " 87,\n", + " 87,\n", + " 87,\n", + " 90,\n", + " 87,\n", + " 88,\n", + " 85,\n", + " 86,\n", + " 90,\n", + " 92,\n", + " 87,\n", + " 90,\n", + " 88,\n", + " 90,\n", + " 89,\n", + " 92,\n", + " 85,\n", + " 88,\n", + " 87,\n", + " 88,\n", + " 88,\n", + " 89,\n", + " 94,\n", + " 89,\n", + " 92,\n", + " 85,\n", + " 87,\n", + " 94,\n", + " 92,\n", + " 85,\n", + " 90,\n", + " 89,\n", + " 90,\n", + " 90,\n", + " 87,\n", + " 92,\n", + " 89,\n", + " 90,\n", + " 88,\n", + " 88,\n", + " 87,\n", + " 93,\n", + " 90,\n", + " 87,\n", + " 86,\n", + " 90,\n", + " 93,\n", + " 90,\n", + " 94,\n", + " 84,\n", + " 90,\n", + " 92,\n", + " 88,\n", + " 84,\n", + " 90,\n", + " 85,\n", + " 85,\n", + " 92,\n", + " 91,\n", + " 90,\n", + " 91,\n", + " 91,\n", + " 90,\n", + " 93,\n", + " 86,\n", + " 88,\n", + " 94,\n", + " 90,\n", + " 84,\n", + " 86,\n", + " 88,\n", + " 88,\n", + " 92,\n", + " 93,\n", + " 84,\n", + " 86,\n", + " 89,\n", + " 87,\n", + " 92,\n", + " 90,\n", + " 95,\n", + " 92,\n", + " 92,\n", + " 90,\n", + " 87,\n", + " 93,\n", + " 90,\n", + " 84,\n", + " 86,\n", + " 85,\n", + " 85,\n", + " 87,\n", + " 87,\n", + " 89,\n", + " 93,\n", + " 90,\n", + " 92,\n", + " 92,\n", + " 90,\n", + " 85,\n", + " 87,\n", + " 88,\n", + " 85,\n", + " 89,\n", + " 96,\n", + " 91,\n", + " 88,\n", + " 85,\n", + " 87,\n", + " 86,\n", + " 90,\n", + " 89,\n", + " 99,\n", + " 93,\n", + " 93,\n", + " 87,\n", + " 86,\n", + " 94,\n", + " 91,\n", + " 90,\n", + " 85,\n", + " 90,\n", + " 92,\n", + " 88,\n", + " 90,\n", + " 85,\n", + " 88,\n", + " 91,\n", + " 85,\n", + " 91,\n", + " 90,\n", + " 91,\n", + " 90,\n", + " 89,\n", + " 85,\n", + " 83,\n", + " 91,\n", + " 90,\n", + " 90,\n", + " 93,\n", + " 86,\n", + " 84,\n", + " 87,\n", + " 93,\n", + " 90,\n", + " 92,\n", + " 84,\n", + " 90,\n", + " 88,\n", + " 90,\n", + " 94,\n", + " 94,\n", + " 90,\n", + " 88,\n", + " 87,\n", + " 87,\n", + " 85,\n", + " 86,\n", + " 86,\n", + " 92,\n", + " 85,\n", + " 89,\n", + " 86,\n", + " 87,\n", + " 88,\n", + " 85,\n", + " 89,\n", + " 91,\n", + " 90,\n", + " 84,\n", + " 92,\n", + " 88,\n", + " 92,\n", + " 85,\n", + " 91,\n", + " 84,\n", + " 90,\n", + " 93,\n", + " 92,\n", + " 85,\n", + " 85,\n", + " 88,\n", + " 85,\n", + " 90,\n", + " 91,\n", + " 83,\n", + " 95,\n", + " 87,\n", + " 85,\n", + " 94,\n", + " 91,\n", + " 94,\n", + " 86,\n", + " 85,\n", + " 94,\n", + " 90,\n", + " 89,\n", + " 84,\n", + " 88,\n", + " 89,\n", + " 89,\n", + " 88,\n", + " 90,\n", + " 87,\n", + " 88,\n", + " 87,\n", + " 95,\n", + " 92,\n", + " 87,\n", + " 90,\n", + " 90,\n", + " 92,\n", + " 84,\n", + " 84,\n", + " 83,\n", + " 91,\n", + " 87,\n", + " 92,\n", + " 90,\n", + " 89,\n", + " 88,\n", + " 90,\n", + " 90,\n", + " 86,\n", + " 86,\n", + " 88,\n", + " 85,\n", + " 85,\n", + " 87,\n", + " 85,\n", + " 87,\n", + " 98,\n", + " 90,\n", + " 87,\n", + " 88,\n", + " 82,\n", + " 90,\n", + " 85,\n", + " 90,\n", + " 84,\n", + " 88,\n", + " 88,\n", + " 87,\n", + " 88,\n", + " 88,\n", + " 90,\n", + " 90,\n", + " 89,\n", + " 88,\n", + " 87,\n", + " 84,\n", + " 87,\n", + " 85,\n", + " 92,\n", + " 88,\n", + " 95,\n", + " 88,\n", + " 85,\n", + " 89,\n", + " 87,\n", + " 91,\n", + " 90,\n", + " 88,\n", + " 89,\n", + " 87,\n", + " 90,\n", + " 93,\n", + " 90,\n", + " 89,\n", + " 94,\n", + " 86,\n", + " 87,\n", + " 89,\n", + " 92,\n", + " 90,\n", + " 87,\n", + " 89,\n", + " 84,\n", + " 92,\n", + " 95,\n", + " 93,\n", + " 85,\n", + " 90,\n", + " 83,\n", + " ...]" + ] + }, + "execution_count": 72, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [], + "source": [ + "from keras.layers import SimpleRNN,LSTM" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [], + "source": [ + "model = Sequential()\n", + "model.add(Embedding(vocabulary_size, 100, input_length=input_length))\n", + "model.add(SimpleRNN(units=30, return_sequences=False))\n", + "model.add(Dense(units=21))" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [], + "source": [ + "model.compile(optimizer='adam',\n", + " loss='categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: \"sequential_1\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " embedding_1 (Embedding) (None, 89, 100) 6397100 \n", + " \n", + " simple_rnn (SimpleRNN) (None, 30) 3930 \n", + " \n", + " dense_3 (Dense) (None, 21) 651 \n", + " \n", + "=================================================================\n", + "Total params: 6401681 (24.42 MB)\n", + "Trainable params: 6401681 (24.42 MB)\n", + "Non-trainable params: 0 (0.00 Byte)\n", + "_________________________________________________________________\n" + ] + } + ], + "source": [ + "model.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/10\n", + "2844/2844 [==============================] - 352s 124ms/step - loss: 8.0596 - accuracy: 0.0731 - val_loss: 8.0594 - val_accuracy: 0.0759\n", + "Epoch 2/10\n", + "2844/2844 [==============================] - 413s 145ms/step - loss: 8.0596 - accuracy: 0.0731 - val_loss: 8.0594 - val_accuracy: 0.0759\n", + "Epoch 3/10\n", + "2844/2844 [==============================] - 342s 120ms/step - loss: 8.0596 - accuracy: 0.0731 - val_loss: 8.0594 - val_accuracy: 0.0759\n", + "Epoch 4/10\n", + "2844/2844 [==============================] - 344s 121ms/step - loss: 8.0596 - accuracy: 0.0731 - val_loss: 8.0594 - val_accuracy: 0.0759\n", + "Epoch 5/10\n", + "2844/2844 [==============================] - 342s 120ms/step - loss: 8.0596 - accuracy: 0.0731 - val_loss: 8.0594 - val_accuracy: 0.0759\n", + "Epoch 6/10\n", + "2844/2844 [==============================] - 353s 124ms/step - loss: 8.0596 - accuracy: 0.0731 - val_loss: 8.0594 - val_accuracy: 0.0759\n", + "Epoch 7/10\n", + "2844/2844 [==============================] - 378s 133ms/step - loss: 8.0596 - accuracy: 0.0731 - val_loss: 8.0594 - val_accuracy: 0.0759\n", + "Epoch 8/10\n", + "2844/2844 [==============================] - 397s 140ms/step - loss: 8.0596 - accuracy: 0.0731 - val_loss: 8.0594 - val_accuracy: 0.0759\n", + "Epoch 9/10\n", + "2844/2844 [==============================] - 347s 122ms/step - loss: 8.0596 - accuracy: 0.0731 - val_loss: 8.0594 - val_accuracy: 0.0759\n", + "Epoch 10/10\n", + "2844/2844 [==============================] - 357s 126ms/step - loss: 8.0596 - accuracy: 0.0731 - val_loss: 8.0594 - val_accuracy: 0.0759\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.fit(x_train1,y_train1,epochs=10,validation_data=(x_test, y_test))" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1219/1219 [==============================] - 1s 889us/step\n" + ] + } + ], + "source": [ + "Y_pred1 = classifier.predict(x_test)\n", + "a1=[]\n", + "for x in Y_pred1:\n", + " a1.append(80 +np.argmax(x))" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[85,\n", + " 85,\n", + " 90,\n", + " 88,\n", + " 87,\n", + " 86,\n", + " 84,\n", + " 91,\n", + " 91,\n", + " 89,\n", + " 92,\n", + " 92,\n", + " 90,\n", + " 87,\n", + " 86,\n", + " 89,\n", + " 87,\n", + " 99,\n", + " 95,\n", + " 86,\n", + " 90,\n", + " 85,\n", + " 94,\n", + " 93,\n", + " 88,\n", + " 85,\n", + " 88,\n", + " 89,\n", + " 87,\n", + " 90,\n", + " 86,\n", + " 89,\n", + " 85,\n", + " 84,\n", + " 90,\n", + " 85,\n", + " 90,\n", + " 89,\n", + " 85,\n", + " 89,\n", + " 87,\n", + " 86,\n", + " 86,\n", + " 89,\n", + " 84,\n", + " 92,\n", + " 90,\n", + " 92,\n", + " 92,\n", + " 87,\n", + " 85,\n", + " 89,\n", + " 84,\n", + " 90,\n", + " 90,\n", + " 88,\n", + " 86,\n", + " 91,\n", + " 88,\n", + " 93,\n", + " 89,\n", + " 88,\n", + " 85,\n", + " 88,\n", + " 87,\n", + " 90,\n", + " 83,\n", + " 88,\n", + " 91,\n", + " 84,\n", + " 94,\n", + " 87,\n", + " 91,\n", + " 89,\n", + " 88,\n", + " 92,\n", + " 86,\n", + " 92,\n", + " 84,\n", + " 93,\n", + " 89,\n", + " 87,\n", + " 84,\n", + " 89,\n", + " 93,\n", + " 89,\n", + " 88,\n", + " 88,\n", + " 93,\n", + " 94,\n", + " 91,\n", + " 92,\n", + " 93,\n", + " 87,\n", + " 87,\n", + " 82,\n", + " 92,\n", + " 84,\n", + " 92,\n", + " 90,\n", + " 90,\n", + " 93,\n", + " 91,\n", + " 94,\n", + " 93,\n", + " 93,\n", + " 90,\n", + " 90,\n", + " 88,\n", + " 87,\n", + " 83,\n", + " 85,\n", + " 85,\n", + " 92,\n", + " 90,\n", + " 85,\n", + " 93,\n", + " 87,\n", + " 86,\n", + " 89,\n", + " 88,\n", + " 85,\n", + " 92,\n", + " 90,\n", + " 85,\n", + " 94,\n", + " 90,\n", + " 86,\n", + " 91,\n", + " 89,\n", + " 88,\n", + " 88,\n", + " 84,\n", + " 82,\n", + " 85,\n", + " 91,\n", + " 87,\n", + " 88,\n", + " 89,\n", + " 92,\n", + " 89,\n", + " 85,\n", + " 91,\n", + " 88,\n", + " 87,\n", + " 89,\n", + " 88,\n", + " 88,\n", + " 87,\n", + " 95,\n", + " 86,\n", + " 96,\n", + " 88,\n", + " 86,\n", + " 90,\n", + " 90,\n", + " 84,\n", + " 85,\n", + " 89,\n", + " 88,\n", + " 81,\n", + " 88,\n", + " 89,\n", + " 88,\n", + " 88,\n", + " 96,\n", + " 88,\n", + " 91,\n", + " 86,\n", + " 87,\n", + " 92,\n", + " 91,\n", + " 82,\n", + " 90,\n", + " 94,\n", + " 92,\n", + " 90,\n", + " 84,\n", + " 87,\n", + " 89,\n", + " 90,\n", + " 88,\n", + " 87,\n", + " 86,\n", + " 90,\n", + " 92,\n", + " 88,\n", + " 93,\n", + " 89,\n", + " 84,\n", + " 87,\n", + " 87,\n", + " 91,\n", + " 88,\n", + " 84,\n", + " 89,\n", + " 93,\n", + " 88,\n", + " 92,\n", + " 88,\n", + " 86,\n", + " 92,\n", + " 95,\n", + " 92,\n", + " 86,\n", + " 92,\n", + " 87,\n", + " 85,\n", + " 86,\n", + " 84,\n", + " 92,\n", + " 88,\n", + " 90,\n", + " 89,\n", + " 86,\n", + " 93,\n", + " 86,\n", + " 89,\n", + " 90,\n", + " 88,\n", + " 90,\n", + " 90,\n", + " 90,\n", + " 87,\n", + " 87,\n", + " 87,\n", + " 89,\n", + " 87,\n", + " 87,\n", + " 90,\n", + " 84,\n", + " 92,\n", + " 92,\n", + " 85,\n", + " 85,\n", + " 89,\n", + " 90,\n", + " 87,\n", + " 84,\n", + " 93,\n", + " 90,\n", + " 89,\n", + " 86,\n", + " 87,\n", + " 90,\n", + " 86,\n", + " 88,\n", + " 90,\n", + " 89,\n", + " 94,\n", + " 86,\n", + " 84,\n", + " 90,\n", + " 85,\n", + " 90,\n", + " 88,\n", + " 92,\n", + " 90,\n", + " 87,\n", + " 94,\n", + " 88,\n", + " 89,\n", + " 90,\n", + " 91,\n", + " 88,\n", + " 85,\n", + " 88,\n", + " 89,\n", + " 85,\n", + " 95,\n", + " 90,\n", + " 91,\n", + " 88,\n", + " 92,\n", + " 90,\n", + " 92,\n", + " 91,\n", + " 88,\n", + " 90,\n", + " 86,\n", + " 88,\n", + " 90,\n", + " 87,\n", + " 86,\n", + " 84,\n", + " 85,\n", + " 85,\n", + " 85,\n", + " 87,\n", + " 86,\n", + " 87,\n", + " 85,\n", + " 94,\n", + " 90,\n", + " 84,\n", + " 93,\n", + " 88,\n", + " 85,\n", + " 88,\n", + " 84,\n", + " 85,\n", + " 88,\n", + " 89,\n", + " 88,\n", + " 89,\n", + " 94,\n", + " 90,\n", + " 94,\n", + " 86,\n", + " 90,\n", + " 87,\n", + " 86,\n", + " 91,\n", + " 92,\n", + " 85,\n", + " 90,\n", + " 85,\n", + " 93,\n", + " 91,\n", + " 94,\n", + " 89,\n", + " 85,\n", + " 88,\n", + " 95,\n", + " 88,\n", + " 92,\n", + " 90,\n", + " 90,\n", + " 90,\n", + " 93,\n", + " 90,\n", + " 93,\n", + " 90,\n", + " 91,\n", + " 86,\n", + " 84,\n", + " 86,\n", + " 91,\n", + " 84,\n", + " 86,\n", + " 88,\n", + " 89,\n", + " 88,\n", + " 87,\n", + " 85,\n", + " 94,\n", + " 90,\n", + " 88,\n", + " 85,\n", + " 90,\n", + " 86,\n", + " 88,\n", + " 84,\n", + " 89,\n", + " 87,\n", + " 91,\n", + " 83,\n", + " 90,\n", + " 89,\n", + " 88,\n", + " 85,\n", + " 87,\n", + " 84,\n", + " 89,\n", + " 86,\n", + " 88,\n", + " 91,\n", + " 85,\n", + " 88,\n", + " 90,\n", + " 92,\n", + " 85,\n", + " 89,\n", + " 85,\n", + " 95,\n", + " 90,\n", + " 86,\n", + " 95,\n", + " 90,\n", + " 88,\n", + " 90,\n", + " 95,\n", + " 87,\n", + " 88,\n", + " 84,\n", + " 85,\n", + " 87,\n", + " 84,\n", + " 85,\n", + " 91,\n", + " 90,\n", + " 85,\n", + " 87,\n", + " 88,\n", + " 89,\n", + " 87,\n", + " 94,\n", + " 90,\n", + " 86,\n", + " 86,\n", + " 91,\n", + " 90,\n", + " 89,\n", + " 90,\n", + " 88,\n", + " 88,\n", + " 85,\n", + " 90,\n", + " 93,\n", + " 91,\n", + " 84,\n", + " 85,\n", + " 92,\n", + " 95,\n", + " 89,\n", + " 86,\n", + " 85,\n", + " 90,\n", + " 87,\n", + " 93,\n", + " 86,\n", + " 84,\n", + " 88,\n", + " 85,\n", + " 92,\n", + " 89,\n", + " 95,\n", + " 88,\n", + " 89,\n", + " 91,\n", + " 89,\n", + " 89,\n", + " 86,\n", + " 85,\n", + " 86,\n", + " 87,\n", + " 91,\n", + " 88,\n", + " 91,\n", + " 96,\n", + " 85,\n", + " 93,\n", + " 87,\n", + " 90,\n", + " 91,\n", + " 85,\n", + " 89,\n", + " 90,\n", + " 90,\n", + " 89,\n", + " 86,\n", + " 86,\n", + " 91,\n", + " 84,\n", + " 82,\n", + " 90,\n", + " 88,\n", + " 88,\n", + " 95,\n", + " 92,\n", + " 88,\n", + " 90,\n", + " 94,\n", + " 88,\n", + " 93,\n", + " 84,\n", + " 90,\n", + " 90,\n", + " 91,\n", + " 88,\n", + " 91,\n", + " 93,\n", + " 90,\n", + " 88,\n", + " 85,\n", + " 84,\n", + " 92,\n", + " 87,\n", + " 87,\n", + " 85,\n", + " 90,\n", + " 86,\n", + " 91,\n", + " 88,\n", + " 83,\n", + " 85,\n", + " 92,\n", + " 88,\n", + " 85,\n", + " 88,\n", + " 92,\n", + " 87,\n", + " 95,\n", + " 90,\n", + " 90,\n", + " 84,\n", + " 89,\n", + " 86,\n", + " 85,\n", + " 97,\n", + " 92,\n", + " 89,\n", + " 92,\n", + " 89,\n", + " 89,\n", + " 90,\n", + " 89,\n", + " 91,\n", + " 92,\n", + " 90,\n", + " 86,\n", + " 88,\n", + " 88,\n", + " 88,\n", + " 87,\n", + " 89,\n", + " 89,\n", + " 88,\n", + " 89,\n", + " 90,\n", + " 86,\n", + " 90,\n", + " 91,\n", + " 92,\n", + " 94,\n", + " 87,\n", + " 90,\n", + " 88,\n", + " 88,\n", + " 90,\n", + " 90,\n", + " 82,\n", + " 90,\n", + " 84,\n", + " 93,\n", + " 92,\n", + " 91,\n", + " 87,\n", + " 88,\n", + " 90,\n", + " 90,\n", + " 86,\n", + " 91,\n", + " 89,\n", + " 84,\n", + " 83,\n", + " 89,\n", + " 85,\n", + " 90,\n", + " 90,\n", + " 90,\n", + " 90,\n", + " 84,\n", + " 90,\n", + " 90,\n", + " 84,\n", + " 87,\n", + " 92,\n", + " 87,\n", + " 83,\n", + " 89,\n", + " 87,\n", + " 85,\n", + " 85,\n", + " 90,\n", + " 91,\n", + " 94,\n", + " 91,\n", + " 87,\n", + " 85,\n", + " 85,\n", + " 93,\n", + " 88,\n", + " 85,\n", + " 85,\n", + " 88,\n", + " 88,\n", + " 87,\n", + " 92,\n", + " 90,\n", + " 90,\n", + " 89,\n", + " 88,\n", + " 90,\n", + " 90,\n", + " 84,\n", + " 89,\n", + " 85,\n", + " 90,\n", + " 89,\n", + " 94,\n", + " 85,\n", + " 88,\n", + " 88,\n", + " 90,\n", + " 93,\n", + " 94,\n", + " 88,\n", + " 88,\n", + " 92,\n", + " 91,\n", + " 92,\n", + " 91,\n", + " 87,\n", + " 91,\n", + " 95,\n", + " 88,\n", + " 83,\n", + " 84,\n", + " 91,\n", + " 84,\n", + " 90,\n", + " 87,\n", + " 91,\n", + " 88,\n", + " 85,\n", + " 86,\n", + " 92,\n", + " 87,\n", + " 88,\n", + " 90,\n", + " 86,\n", + " 87,\n", + " 87,\n", + " 88,\n", + " 91,\n", + " 88,\n", + " 89,\n", + " 88,\n", + " 87,\n", + " 91,\n", + " 84,\n", + " 92,\n", + " 86,\n", + " 91,\n", + " 92,\n", + " 93,\n", + " 87,\n", + " 85,\n", + " 86,\n", + " 87,\n", + " 90,\n", + " 86,\n", + " 94,\n", + " 92,\n", + " 84,\n", + " 85,\n", + " 91,\n", + " 89,\n", + " 89,\n", + " 84,\n", + " 90,\n", + " 90,\n", + " 85,\n", + " 90,\n", + " 88,\n", + " 89,\n", + " 94,\n", + " 87,\n", + " 89,\n", + " 90,\n", + " 87,\n", + " 88,\n", + " 89,\n", + " 92,\n", + " 89,\n", + " 91,\n", + " 91,\n", + " 85,\n", + " 85,\n", + " 94,\n", + " 89,\n", + " 86,\n", + " 87,\n", + " 82,\n", + " 89,\n", + " 85,\n", + " 90,\n", + " 88,\n", + " 90,\n", + " 93,\n", + " 87,\n", + " 90,\n", + " 93,\n", + " 87,\n", + " 86,\n", + " 84,\n", + " 91,\n", + " 88,\n", + " 89,\n", + " 87,\n", + " 86,\n", + " 86,\n", + " 85,\n", + " 85,\n", + " 87,\n", + " 88,\n", + " 90,\n", + " 92,\n", + " 88,\n", + " 92,\n", + " 92,\n", + " 84,\n", + " 93,\n", + " 90,\n", + " 85,\n", + " 87,\n", + " 85,\n", + " 84,\n", + " 92,\n", + " 87,\n", + " 87,\n", + " 89,\n", + " 84,\n", + " 88,\n", + " 84,\n", + " 87,\n", + " 87,\n", + " 87,\n", + " 90,\n", + " 87,\n", + " 88,\n", + " 85,\n", + " 86,\n", + " 90,\n", + " 92,\n", + " 87,\n", + " 90,\n", + " 88,\n", + " 90,\n", + " 89,\n", + " 92,\n", + " 85,\n", + " 88,\n", + " 87,\n", + " 88,\n", + " 88,\n", + " 89,\n", + " 94,\n", + " 89,\n", + " 92,\n", + " 85,\n", + " 87,\n", + " 94,\n", + " 92,\n", + " 85,\n", + " 90,\n", + " 89,\n", + " 90,\n", + " 90,\n", + " 87,\n", + " 92,\n", + " 89,\n", + " 90,\n", + " 88,\n", + " 88,\n", + " 87,\n", + " 93,\n", + " 90,\n", + " 87,\n", + " 86,\n", + " 90,\n", + " 93,\n", + " 90,\n", + " 94,\n", + " 84,\n", + " 90,\n", + " 92,\n", + " 88,\n", + " 84,\n", + " 90,\n", + " 85,\n", + " 85,\n", + " 92,\n", + " 91,\n", + " 90,\n", + " 91,\n", + " 91,\n", + " 90,\n", + " 93,\n", + " 86,\n", + " 88,\n", + " 94,\n", + " 90,\n", + " 84,\n", + " 86,\n", + " 88,\n", + " 88,\n", + " 92,\n", + " 93,\n", + " 84,\n", + " 86,\n", + " 89,\n", + " 87,\n", + " 92,\n", + " 90,\n", + " 95,\n", + " 92,\n", + " 92,\n", + " 90,\n", + " 87,\n", + " 93,\n", + " 90,\n", + " 84,\n", + " 86,\n", + " 85,\n", + " 85,\n", + " 87,\n", + " 87,\n", + " 89,\n", + " 93,\n", + " 90,\n", + " 92,\n", + " 92,\n", + " 90,\n", + " 85,\n", + " 87,\n", + " 88,\n", + " 85,\n", + " 89,\n", + " 96,\n", + " 91,\n", + " 88,\n", + " 85,\n", + " 87,\n", + " 86,\n", + " 90,\n", + " 89,\n", + " 99,\n", + " 93,\n", + " 93,\n", + " 87,\n", + " 86,\n", + " 94,\n", + " 91,\n", + " 90,\n", + " 85,\n", + " 90,\n", + " 92,\n", + " 88,\n", + " 90,\n", + " 85,\n", + " 88,\n", + " 91,\n", + " 85,\n", + " 91,\n", + " 90,\n", + " 91,\n", + " 90,\n", + " 89,\n", + " 85,\n", + " 83,\n", + " 91,\n", + " 90,\n", + " 90,\n", + " 93,\n", + " 86,\n", + " 84,\n", + " 87,\n", + " 93,\n", + " 90,\n", + " 92,\n", + " 84,\n", + " 90,\n", + " 88,\n", + " 90,\n", + " 94,\n", + " 94,\n", + " 90,\n", + " 88,\n", + " 87,\n", + " 87,\n", + " 85,\n", + " 86,\n", + " 86,\n", + " 92,\n", + " 85,\n", + " 89,\n", + " 86,\n", + " 87,\n", + " 88,\n", + " 85,\n", + " 89,\n", + " 91,\n", + " 90,\n", + " 84,\n", + " 92,\n", + " 88,\n", + " 92,\n", + " 85,\n", + " 91,\n", + " 84,\n", + " 90,\n", + " 93,\n", + " 92,\n", + " 85,\n", + " 85,\n", + " 88,\n", + " 85,\n", + " 90,\n", + " 91,\n", + " 83,\n", + " 95,\n", + " 87,\n", + " 85,\n", + " 94,\n", + " 91,\n", + " 94,\n", + " 86,\n", + " 85,\n", + " 94,\n", + " 90,\n", + " 89,\n", + " 84,\n", + " 88,\n", + " 89,\n", + " 89,\n", + " 88,\n", + " 90,\n", + " 87,\n", + " 88,\n", + " 87,\n", + " 95,\n", + " 92,\n", + " 87,\n", + " 90,\n", + " 90,\n", + " 92,\n", + " 84,\n", + " 84,\n", + " 83,\n", + " 91,\n", + " 87,\n", + " 92,\n", + " 90,\n", + " 89,\n", + " 88,\n", + " 90,\n", + " 90,\n", + " 86,\n", + " 86,\n", + " 88,\n", + " 85,\n", + " 85,\n", + " 87,\n", + " 85,\n", + " 87,\n", + " 98,\n", + " 90,\n", + " 87,\n", + " 88,\n", + " 82,\n", + " 90,\n", + " 85,\n", + " 90,\n", + " 84,\n", + " 88,\n", + " 88,\n", + " 87,\n", + " 88,\n", + " 88,\n", + " 90,\n", + " 90,\n", + " 89,\n", + " 88,\n", + " 87,\n", + " 84,\n", + " 87,\n", + " 85,\n", + " 92,\n", + " 88,\n", + " 95,\n", + " 88,\n", + " 85,\n", + " 89,\n", + " 87,\n", + " 91,\n", + " 90,\n", + " 88,\n", + " 89,\n", + " 87,\n", + " 90,\n", + " 93,\n", + " 90,\n", + " 89,\n", + " 94,\n", + " 86,\n", + " 87,\n", + " 89,\n", + " 92,\n", + " 90,\n", + " 87,\n", + " 89,\n", + " 84,\n", + " 92,\n", + " 95,\n", + " 93,\n", + " 85,\n", + " 90,\n", + " 83,\n", + " ...]" + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#The first model performed better." + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: tensorflow-hub in c:\\users\\ysach\\anaconda3\\lib\\site-packages (0.15.0)\n", + "Requirement already satisfied: numpy>=1.12.0 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-hub) (1.23.5)\n", + "Requirement already satisfied: protobuf>=3.19.6 in c:\\users\\ysach\\anaconda3\\lib\\site-packages (from tensorflow-hub) (3.20.3)\n" + ] + } + ], + "source": [ + "!pip install tensorflow-hub" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": {}, + "outputs": [], + "source": [ + "def wine_quality_det(news):\n", + " review = news\n", + " review = re.sub(r'[^a-zA-Z\\s]', '', review)\n", + " review = review.lower()\n", + " review = nltk.word_tokenize(review)\n", + " for y in review :\n", + " if y not in stpwrds :\n", + " corpus.append(lemmatizer.lemmatize(y)) \n", + " input_data = [' '.join(corpus)]\n", + " vectorized_input_data_pre = tokenize.texts_to_sequences(input_data)\n", + " vectorized_input_data=pad_sequences(vectorized_input_data_pre, padding=\"pre\", truncating=\"pre\")\n", + " prediction = classifier.predict(vectorized_input_data)\n", + " print(80 +np.argmax(prediction))" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 23ms/step\n", + "89\n" + ] + } + ], + "source": [ + "wine_quality_det(\"u touch riesling accentuates fresh citrusy backbone cabernet sauvignon ro dry style sprightly lightfooted tone offer load concentrated cherry berry flavor finish brisk clean dry new york osprey dominion dry ro north fork long island ro osprey dominion\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "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.10.9" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Wine Reviews Classification/README.md b/Wine Reviews Classification/README.md new file mode 100644 index 000000000..27be8d30b --- /dev/null +++ b/Wine Reviews Classification/README.md @@ -0,0 +1,101 @@ +# Wine Reviews Classification using DL + +## PROJECT TITLE + +Wine Reviews Classification using Deep Learning + +## GOAL + +To classify the quality of wine based on reviews. + +## DATASET + +The link for the dataset used in this project: https://www.kaggle.com/datasets/zynicide/wine-reviews + +## EDA +Shape of Dataset:(129971, 14) +![Dataset](Images/Input_Dataset.png) +![EDA](Images/EDA3.png) + +## DESCRIPTION + +This project aims to identify the quality points of wine based upon its reviews. + +## WHAT I HAD DONE + +1. Data collection: From the link of the dataset given above. +2. Data preprocessing: Preprocessed the news by combining title and text to create a new feature and did some augementation like tokeinizing and vectorising before passing them to model training +3. Model selection: Self Designed model having a Embedding Layer followed by Global Pooling Layer and then 2 Dense layers and then output layer.Second model had a Embedding layer followed by a RNN layer and a Dense output layer. +4. Comparative analysis: Compared the accuracy score of all the models. + +## MODELS SUMMARY + +Model: "sequential" +_________________________________________________________________ + Layer (type) Output Shape Param # +================================================================= + embedding (Embedding) (None, 89, 200) 12794200 + + global_average_pooling1d ( (None, 200) 0 + GlobalAveragePooling1D) + + dense (Dense) (None, 100) 20100 + + dense_1 (Dense) (None, 50) 5050 + + dense_2 (Dense) (None, 21) 1071 + +================================================================= +Total params: 12820421 (48.91 MB) +Trainable params: 12820421 (48.91 MB) +Non-trainable params: 0 (0.00 Byte) + +Model-2: "sequential_1" +_________________________________________________________________ + Layer (type) Output Shape Param # +================================================================= + embedding_1 (Embedding) (None, 89, 100) 6397100 + + simple_rnn (SimpleRNN) (None, 30) 3930 + + dense_3 (Dense) (None, 21) 651 + +================================================================= +Total params: 6401681 (24.42 MB) +Trainable params: 6401681 (24.42 MB) +Non-trainable params: 0 (0.00 Byte) + +## LIBRARIES NEEDED + +The following libraries are required to run this project: + +- nltk +- pandas +- matplotlib +- tensorflow +- keras +- sklearn + +## EVALUATION METRICS + +The evaluation metrics I used to assess the models: + +- Loss +- Accuracy + +It is shown using Confusion Matrix in the Images folder + +## RESULTS +Results on Val dataset: +For Model-1: +Accuracy:31% +loss: 3.1 + +For Model-2: +Accuracy:9% +loss:8.05 + +## CONCLUSION +Based on results we can draw following conclusions: + +1.The model-1 performed better than model 2. \ No newline at end of file

EKE4unx3d;f9fY~@B)!luyYwGaAh!Z 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 Osw>}7D!gs(|K9+$RWk4Z literal 0 HcmV?d00001 diff --git a/Wine Reviews Classification/Images/Model2.png b/Wine Reviews Classification/Images/Model2.png new file mode 100644 index 0000000000000000000000000000000000000000..b5ec5c4ad1ea75f309eb45bce4586f7d6e93fb62 GIT binary patch literal 22579 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%0DiHdE$;a!-L^!L(TuY4- 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\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0countrydescriptiondesignationpointspriceprovinceregion_1region_2taster_nametaster_twitter_handletitlevarietywinery
00ItalyAromas include tropical fruit, broom, brimston...Vulkà Bianco87NaNSicily & SardiniaEtnaNaNKerin O’Keefe@kerinokeefeNicosia 2013 Vulkà Bianco (Etna)White BlendNicosia
11PortugalThis is ripe and fruity, a wine that is smooth...Avidagos8715.0DouroNaNNaNRoger Voss@vossrogerQuinta dos Avidagos 2011 Avidagos Red (Douro)Portuguese RedQuinta dos Avidagos
22USTart and snappy, the flavors of lime flesh and...NaN8714.0OregonWillamette ValleyWillamette ValleyPaul Gregutt@paulgwineRainstorm 2013 Pinot Gris (Willamette Valley)Pinot GrisRainstorm
33USPineapple rind, lemon pith and orange blossom ...Reserve Late Harvest8713.0MichiganLake Michigan ShoreNaNAlexander PeartreeNaNSt. Julian 2013 Reserve Late Harvest Riesling ...RieslingSt. Julian
44USMuch like the regular bottling from 2012, this...Vintner's Reserve Wild Child Block8765.0OregonWillamette ValleyWillamette ValleyPaul Gregutt@paulgwineSweet Cheeks 2012 Vintner's Reserve Wild Child...Pinot NoirSweet Cheeks
55SpainBlackberry and raspberry aromas show a typical...Ars In Vitro8715.0Northern SpainNavarraNaNMichael Schachner@wineschachTandem 2011 Ars In Vitro Tempranillo-Merlot (N...Tempranillo-MerlotTandem
66ItalyHere's a bright, informal red that opens with ...Belsito8716.0Sicily & SardiniaVittoriaNaNKerin O’Keefe@kerinokeefeTerre di Giurfo 2013 Belsito Frappato (Vittoria)FrappatoTerre di Giurfo
77FranceThis dry and restrained wine offers spice in p...NaN8724.0AlsaceAlsaceNaNRoger Voss@vossrogerTrimbach 2012 Gewurztraminer (Alsace)GewürztraminerTrimbach
88GermanySavory dried thyme notes accent sunnier flavor...Shine8712.0RheinhessenNaNNaNAnna Lee C. IijimaNaNHeinz Eifel 2013 Shine Gewürztraminer (Rheinhe...GewürztraminerHeinz Eifel
99FranceThis has great depth of flavor with its fresh ...Les Natures8727.0AlsaceAlsaceNaNRoger Voss@vossrogerJean-Baptiste Adam 2012 Les Natures Pinot Gris...Pinot GrisJean-Baptiste Adam
1010USSoft, supple plum envelopes an oaky structure ...Mountain Cuvée8719.0CaliforniaNapa ValleyNapaVirginie Boone@vbooneKirkland Signature 2011 Mountain Cuvée Caberne...Cabernet SauvignonKirkland Signature
1111FranceThis is a dry wine, very spicy, with a tight, ...NaN8730.0AlsaceAlsaceNaNRoger Voss@vossrogerLeon Beyer 2012 Gewurztraminer (Alsace)GewürztraminerLeon Beyer
1212USSlightly reduced, this wine offers a chalky, t...NaN8734.0CaliforniaAlexander ValleySonomaVirginie Boone@vbooneLouis M. Martini 2012 Cabernet Sauvignon (Alex...Cabernet SauvignonLouis M. Martini
1313ItalyThis is dominated by oak and oak-driven aromas...Rosso87NaNSicily & SardiniaEtnaNaNKerin O’Keefe@kerinokeefeMasseria Setteporte 2012 Rosso (Etna)Nerello MascaleseMasseria Setteporte
1414USBuilding on 150 years and six generations of w...NaN8712.0CaliforniaCentral CoastCentral CoastMatt Kettmann@mattkettmannMirassou 2012 Chardonnay (Central Coast)ChardonnayMirassou
\n", + "" + ], + "text/plain": [ + " Unnamed: 0 country description \\\n", + "0 0 Italy Aromas include tropical fruit, broom, brimston... \n", + "1 1 Portugal This is ripe and fruity, a wine that is smooth... \n", + "2 2 US Tart and snappy, the flavors of lime flesh and... \n", + "3 3 US Pineapple rind, lemon pith and orange blossom ... \n", + "4 4 US Much like the regular bottling from 2012, this... \n", + "5 5 Spain Blackberry and raspberry aromas show a typical... \n", + "6 6 Italy Here's a bright, informal red that opens with ... \n", + "7 7 France This dry and restrained wine offers spice in p... \n", + "8 8 Germany Savory dried thyme notes accent sunnier flavor... \n", + "9 9 France This has great depth of flavor with its fresh ... \n", + "10 10 US Soft, supple plum envelopes an oaky structure ... \n", + "11 11 France This is a dry wine, very spicy, with a tight, ... \n", + "12 12 US Slightly reduced, this wine offers a chalky, t... \n", + "13 13 Italy This is dominated by oak and oak-driven aromas... \n", + "14 14 US Building on 150 years and six generations of w... \n", + "\n", + " designation points price province \\\n", + "0 Vulkà Bianco 87 NaN Sicily & Sardinia \n", + "1 Avidagos 87 15.0 Douro \n", + "2 NaN 87 14.0 Oregon \n", + "3 Reserve Late Harvest 87 13.0 Michigan \n", + "4 Vintner's Reserve Wild Child Block 87 65.0 Oregon \n", + "5 Ars In Vitro 87 15.0 Northern Spain \n", + "6 Belsito 87 16.0 Sicily & Sardinia \n", + "7 NaN 87 24.0 Alsace \n", + "8 Shine 87 12.0 Rheinhessen \n", + "9 Les Natures 87 27.0 Alsace \n", + "10 Mountain Cuvée 87 19.0 California \n", + "11 NaN 87 30.0 Alsace \n", + "12 NaN 87 34.0 California \n", + "13 Rosso 87 NaN Sicily & Sardinia \n", + "14 NaN 87 12.0 California \n", + "\n", + " region_1 region_2 taster_name \\\n", + "0 Etna NaN Kerin O’Keefe \n", + "1 NaN NaN Roger Voss \n", + "2 Willamette Valley Willamette Valley Paul Gregutt \n", + "3 Lake Michigan Shore NaN Alexander Peartree \n", + "4 Willamette Valley Willamette Valley Paul Gregutt \n", + "5 Navarra NaN Michael Schachner \n", + "6 Vittoria NaN Kerin O’Keefe \n", + "7 Alsace NaN Roger Voss \n", + "8 NaN NaN Anna Lee C. Iijima \n", + "9 Alsace NaN Roger Voss \n", + "10 Napa Valley Napa Virginie Boone \n", + "11 Alsace NaN Roger Voss \n", + "12 Alexander Valley Sonoma Virginie Boone \n", + "13 Etna NaN Kerin O’Keefe \n", + "14 Central Coast Central Coast Matt Kettmann \n", + "\n", + " taster_twitter_handle title \\\n", + "0 @kerinokeefe Nicosia 2013 Vulkà Bianco (Etna) \n", + "1 @vossroger Quinta dos Avidagos 2011 Avidagos Red (Douro) \n", + "2 @paulgwine  Rainstorm 2013 Pinot Gris (Willamette Valley) \n", + "3 NaN St. Julian 2013 Reserve Late Harvest Riesling ... \n", + "4 @paulgwine  Sweet Cheeks 2012 Vintner's Reserve Wild Child... \n", + "5 @wineschach Tandem 2011 Ars In Vitro Tempranillo-Merlot (N... \n", + "6 @kerinokeefe Terre di Giurfo 2013 Belsito Frappato (Vittoria) \n", + "7 @vossroger Trimbach 2012 Gewurztraminer (Alsace) \n", + "8 NaN Heinz Eifel 2013 Shine Gewürztraminer (Rheinhe... \n", + "9 @vossroger Jean-Baptiste Adam 2012 Les Natures Pinot Gris... \n", + "10 @vboone Kirkland Signature 2011 Mountain Cuvée Caberne... \n", + "11 @vossroger Leon Beyer 2012 Gewurztraminer (Alsace) \n", + "12 @vboone Louis M. Martini 2012 Cabernet Sauvignon (Alex... \n", + "13 @kerinokeefe Masseria Setteporte 2012 Rosso (Etna) \n", + "14 @mattkettmann Mirassou 2012 Chardonnay (Central Coast) \n", + "\n", + " variety winery \n", + "0 White Blend Nicosia \n", + "1 Portuguese Red Quinta dos Avidagos \n", + "2 Pinot Gris Rainstorm \n", + "3 Riesling St. Julian \n", + "4 Pinot Noir Sweet Cheeks \n", + "5 Tempranillo-Merlot Tandem \n", + "6 Frappato Terre di Giurfo \n", + "7 Gewürztraminer Trimbach \n", + "8 Gewürztraminer Heinz Eifel \n", + "9 Pinot Gris Jean-Baptiste Adam \n", + "10 Cabernet Sauvignon Kirkland Signature \n", + "11 Gewürztraminer Leon Beyer \n", + "12 Cabernet Sauvignon Louis M. Martini \n", + "13 Nerello Mascalese Masseria Setteporte \n", + "14 Chardonnay Mirassou " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df.head(15)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "execution": { + "iopub.execute_input": "2021-05-25T06:50:32.10674Z", + "iopub.status.busy": "2021-05-25T06:50:32.106434Z", + "iopub.status.idle": "2021-05-25T06:50:32.120541Z", + "shell.execute_reply": "2021-05-25T06:50:32.119386Z", + "shell.execute_reply.started": "2021-05-25T06:50:32.106712Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(129971, 14)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "execution": { + "iopub.execute_input": "2021-05-25T06:50:32.124489Z", + "iopub.status.busy": "2021-05-25T06:50:32.12414Z", + "iopub.status.idle": "2021-05-25T06:50:32.140229Z", + "shell.execute_reply": "2021-05-25T06:50:32.139288Z", + "shell.execute_reply.started": "2021-05-25T06:50:32.124461Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 129971 entries, 0 to 129970\n", + "Data columns (total 14 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Unnamed: 0 129971 non-null int64 \n", + " 1 country 129908 non-null object \n", + " 2 description 129971 non-null object \n", + " 3 designation 92506 non-null object \n", + " 4 points 129971 non-null int64 \n", + " 5 price 120975 non-null float64\n", + " 6 province 129908 non-null object \n", + " 7 region_1 108724 non-null object \n", + " 8 region_2 50511 non-null object \n", + " 9 taster_name 103727 non-null object \n", + " 10 taster_twitter_handle 98758 non-null object \n", + " 11 title 129971 non-null object \n", + " 12 variety 129970 non-null object \n", + " 13 winery 129971 non-null object \n", + "dtypes: float64(1), int64(2), object(11)\n", + "memory usage: 13.9+ MB\n" + ] + } + ], + "source": [ + "train_df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Quality No of sample\n" + ] + }, + { + "data": { + "text/plain": [ + "88 17207\n", + "87 16933\n", + "90 15410\n", + "86 12600\n", + "89 12226\n", + "91 11359\n", + "92 9613\n", + "85 9530\n", + "93 6489\n", + "84 6480\n", + "94 3758\n", + "83 3025\n", + "82 1836\n", + "95 1535\n", + "81 692\n", + "96 523\n", + "80 397\n", + "97 229\n", + "98 77\n", + "99 33\n", + "100 19\n", + "Name: points, dtype: int64" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# def create_distribution(dataFile):\n", + "# return sb.countplot(x='label', data=dataFile, palette='hls')\n", + "\n", + "# #by calling below we can see that training, test and valid data seems to be failry evenly distributed between the classes\n", + "# create_distribution(train_df)\n", + "print(\"Quality\",end=' ')\n", + "print(\"No of sample\")\n", + "train_df['points'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "train_df=train_df.drop(['region_2'],axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "execution": { + "iopub.execute_input": "2021-05-25T06:50:32.306146Z", + "iopub.status.busy": "2021-05-25T06:50:32.305826Z", + "iopub.status.idle": "2021-05-25T06:50:32.335357Z", + "shell.execute_reply": "2021-05-25T06:50:32.33417Z", + "shell.execute_reply.started": "2021-05-25T06:50:32.306118Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1mCOLUMN\u001b[0m \u001b[1mNULL VALUES COUNT\u001b[0m\n", + "Unnamed: 0 0\n", + "country 63\n", + "description 0\n", + "designation 37465\n", + "points 0\n", + "price 8996\n", + "province 63\n", + "region_1 21247\n", + "taster_name 26244\n", + "taster_twitter_handle 31213\n", + "title 0\n", + "variety 1\n", + "winery 0\n" + ] + } + ], + "source": [ + "def data_qualityCheck():\n", + " print(\"{:{}}\".format(\"\\033[1mCOLUMN\\033[0m\",38),end='')\n", + " print(\"{:{}}\".format(\"\\033[1mNULL VALUES COUNT\\033[0m\",18))\n", + " for x in train_df.columns:\n", + " print(\"{:{}}\".format(x,34),end='')\n", + " print(train_df[x].isnull().sum())\n", + "\n", + " \n", + "data_qualityCheck()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1mCOLUMN\u001b[0m \u001b[1mUNIQUE VALUES COUNT\u001b[0m\n", + "Unnamed: 0 129971\n", + "country 44\n", + "description 119955\n", + "designation 37980\n", + "points 21\n", + "price 391\n", + "province 426\n", + "region_1 1230\n", + "taster_name 20\n", + "taster_twitter_handle 16\n", + "title 118840\n", + "variety 708\n", + "winery 16757\n" + ] + } + ], + "source": [ + "print(\"{:{}}\".format(\"\\033[1mCOLUMN\\033[0m\",38),end='')\n", + "print(\"{:{}}\".format(\"\\033[1mUNIQUE VALUES COUNT\\033[0m\",18))\n", + "for x in train_df.columns:\n", + " print(\"{:{}}\".format(x,34),end='')\n", + " print(len(train_df[x].unique()))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "execution": { + "iopub.execute_input": "2021-05-25T06:50:32.337061Z", + "iopub.status.busy": "2021-05-25T06:50:32.336735Z", + "iopub.status.idle": "2021-05-25T06:50:32.367948Z", + "shell.execute_reply": "2021-05-25T06:50:32.366933Z", + "shell.execute_reply.started": "2021-05-25T06:50:32.33703Z" + } + }, + "outputs": [], + "source": [ + "train_df=train_df.drop([\"region_1\", \"taster_twitter_handle\",\"taster_name\"], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1mCOLUMN\u001b[0m \u001b[1mNULL VALUES COUNT\u001b[0m\n", + "Unnamed: 0 0\n", + "country 63\n", + "description 0\n", + "designation 37465\n", + "points 0\n", + "price 8996\n", + "province 63\n", + "title 0\n", + "variety 1\n", + "winery 0\n" + ] + } + ], + "source": [ + "data_qualityCheck()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "def fill_data(data):\n", + " data[\"country\"] = data[\"country\"].fillna(\"No Country\")\n", + " data[\"designation\"] = data[\"designation\"].fillna(\"No Designation\")\n", + " data[\"price\"]=data[\"price\"].fillna(0)\n", + " data[\"province\"]=data[\"province\"].fillna(\"No Province\")\n", + " data[\"variety\"]=data[\"variety\"].fillna(\"No variety\")\n", + " return data" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "train_df=fill_data(train_df)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "execution": { + "iopub.execute_input": "2021-05-25T06:50:32.401314Z", + "iopub.status.busy": "2021-05-25T06:50:32.400868Z", + "iopub.status.idle": "2021-05-25T06:50:32.407806Z", + "shell.execute_reply": "2021-05-25T06:50:32.406589Z", + "shell.execute_reply.started": "2021-05-25T06:50:32.401272Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(129971, 10)" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "train_df=train_df.drop([\"Unnamed: 0\"],axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "execution": { + "iopub.execute_input": "2021-05-25T06:50:32.409912Z", + "iopub.status.busy": "2021-05-25T06:50:32.409162Z", + "iopub.status.idle": "2021-05-25T06:50:32.426843Z", + "shell.execute_reply": "2021-05-25T06:50:32.425727Z", + "shell.execute_reply.started": "2021-05-25T06:50:32.409868Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "