{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport operator\nimport spacy\nimport re\nimport string\nfrom nltk.util import ngrams\nfrom collections import Counter\nfrom nltk import word_tokenize\nfrom nltk.corpus import stopwords\nfrom nltk.stem.snowball import SnowballStemmer\nfrom itertools import chain\nfrom sklearn.feature_extraction.text import CountVectorizer\nfrom sklearn.feature_extraction.text import TfidfVectorizer\nfrom sklearn.model_selection import train_test_split, cross_val_score\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n\nimport os\nprint(os.listdir(\"../input\"))\n\n# Any results you write to the current directory are saved as output.","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"train_df=pd.read_csv('../input/train.csv')\ntrain_df.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"a5b6a8b32653b5cb17affb5e3daecd0363512a29"},"cell_type":"code","source":"vectorizer = TfidfVectorizer(min_df=5, ngram_range=(1,3),\n                        strip_accents='unicode',\n                        lowercase =True, analyzer='word',\n                        use_idf=True, smooth_idf=True, sublinear_tf=True, \n                        stop_words = 'english',tokenizer=word_tokenize)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"050f3f3f2efd6246746048679d6425694f5d10a3"},"cell_type":"code","source":"vectorizer.fit(train_df.question_text.values)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"443e5c8a440a29ee2dfb823ac241f21bb1791e51"},"cell_type":"code","source":"train_vectorized = vectorizer.transform(train_df.question_text.values)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"4c09ef91516d4bc5a411ed8ef8b667dd9edbfdab"},"cell_type":"code","source":"test_df=pd.read_csv('../input/test.csv')\ntest_df.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"20f5876436d3cc44235a60beee91fec30f81fe6d"},"cell_type":"code","source":"test_vectorized = vectorizer.transform(test_df.question_text.values)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1e9e9d8e55cd00004699072a38a801d77303811a"},"cell_type":"code","source":"X_train, X_val, y_train, y_val=train_test_split(train_vectorized,train_df.target.values,test_size=0.1,stratify =train_df.target.values)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"367982a6ecc3c896def8780207cda474821881ee"},"cell_type":"code","source":"from sklearn.svm import LinearSVC\nsvc = LinearSVC(dual=True,C=5,penalty='l2',max_iter=1000,tol=0.01)\nsvc.fit(X_train, y_train)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"734d85475e6bea60023e3d51d98e8e691816ed33"},"cell_type":"code","source":"svc_preds=svc.predict(X_train)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"58b456e7dcd992db3e9b435e402021b882b5b8c3"},"cell_type":"code","source":"from sklearn.metrics import f1_score, precision_score,recall_score\nprint(f1_score(y_train,svc_preds))\nprint(precision_score(y_train,svc_preds))\nprint(recall_score(y_train,svc_preds))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"495c3ecd9b0df498c68db05d87af829c8c7dcbdf"},"cell_type":"code","source":"svc_val_preds=svc.predict(X_val)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"c66a5867edbfac3ff27894dd5eed0ab5a95197a3"},"cell_type":"code","source":"from sklearn.metrics import f1_score, precision_score,recall_score\nprint(f1_score(y_val,svc_val_preds))\nprint(precision_score(y_val,svc_val_preds))\nprint(recall_score(y_val,svc_val_preds))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"f9a2b22947453849ebebc61aa20cee7d7ccfe350"},"cell_type":"code","source":"svc_test_preds=svc.predict(test_vectorized)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"8b79970ab8b0b90592767d4f0f96b2824918941d"},"cell_type":"code","source":"sample_sub=pd.read_csv('../input/sample_submission.csv')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"a62280b74ce2fc68c0c3b629ea829a8999da8588"},"cell_type":"code","source":"sample_sub.prediction=svc_test_preds\nsample_sub.to_csv('submission.csv',index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"98126f519c4e1f2e39a3b97a8ddbb9c8fefccdb0"},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.6","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}