{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"![imasge](data:image/jpeg;base64,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)","metadata":{}},{"cell_type":"markdown","source":"# import data","metadata":{}},{"cell_type":"code","source":"import pandas as pd\nimport os\nfrom wordcloud import WordCloud, ImageColorGenerator\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nimport nltk\nimport pickle\nimport pyLDAvis.sklearn\nfrom collections import Counter\nfrom textblob import TextBlob\nfrom nltk.tokenize import word_tokenize\nfrom nltk.probability import FreqDist\nfrom sklearn.feature_extraction.text import CountVectorizer\nfrom sklearn.feature_extraction.text import TfidfVectorizer\nfrom sklearn.decomposition import LatentDirichletAllocation, NMF\nfrom wordcloud import WordCloud, ImageColorGenerator\nimport matplotlib.pyplot as plt\nimport seaborn as sns","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\ndf_train=pd.read_csv('/kaggle/input/coleridgeinitiative-show-us-the-data/train.csv')\ndf_train.head()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"np.random.seed(0) ","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"missing_values_count = df_train.isnull().sum()\nmissing_values_count","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"total_cells = np.product(df_train.shape)\ntotal_missing = missing_values_count.sum()\ntotal_missing","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"percent_missing = (total_missing/total_cells) * 100\nprint(percent_missing)\n\n","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"columns_with_na_dropped = df_train.dropna(axis=1)\ncolumns_with_na_dropped.head()\n\n","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(\"Columns in original dataset: %d \\n\" % df_train.shape[1])\nprint(\"Columns with na's dropped: %d\" % columns_with_na_dropped.shape[1])\n","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_train.shape","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print('Total rows in the train data set are :'+str(len(df_train)))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"show id, pub_title &data set title","metadata":{}},{"cell_type":"code","source":"for col in df_train.columns:\n    print(f\"{col}: {len(df_train[col].unique())}\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_train['dataset_title'].value_counts()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_test=pd.read_csv('/kaggle/input/coleridgeinitiative-show-us-the-data/sample_submission.csv')\ndf_test","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# get a small subset of the df_train dataset\n\nsubset_nfl_data = df_train.loc[:, 'Id':'pub_title'].head()\nsubset_nfl_data\n","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"words =list( df_train['pub_title'].values)\nwords=[word.split() for word in words]\n#words","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"allwords = []\nfor wordlist in words:\n    allwords += wordlist","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"mostcommon = FreqDist(allwords).most_common(100)\nwordcloud = WordCloud(width=1600, height=800, background_color='white').generate(str(mostcommon))\nfig = plt.figure(figsize=(30,10), facecolor='white')\nplt.imshow(wordcloud, interpolation=\"bilinear\")\nplt.axis('off')\nplt.title('Top 100 Most Common Words in Data Label', fontsize=50)\nplt.tight_layout(pad=0)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"mostcommon_small = FreqDist(allwords).most_common(25)\nx, y = zip(*mostcommon_small)\nplt.figure(figsize=(50,30))\nplt.margins(0.02)\nplt.bar(x, y)\nplt.xlabel('Words', fontsize=50)\nplt.ylabel('Frequency of Words', fontsize=50)\nplt.yticks(fontsize=40)\nplt.xticks(rotation=60, fontsize=40)\nplt.title('Freq of 25 Most Common Words in Data-Label', fontsize=60)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_test_input = pd.DataFrame(columns=['id','section_title','text'])\nids=df_test['Id'].values\nimport warnings\nwarnings.filterwarnings(\"ignore\", 'This pattern has match groups')\n#len(ids)\nfor id in ids:\n    df=pd.read_json ('../input/coleridgeinitiative-show-us-the-data/test/{}.json'.format(id))\n    df.loc[:,['id']] = id\n    df.reset_index(inplace=True,drop=True)\n    df_test_input=pd.concat([df_test_input, df], ignore_index=True)\n    df_test_input.reset_index(inplace=True,drop=True) ","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def clean_text(txt):\n    return re.sub('[^A-Za-z0-9]+', ' ', str(txt).lower()).strip()\nsubmission_df = pd.read_csv('../input/coleridgeinitiative-show-us-the-data/sample_submission.csv', index_col=0)\nsubmission_df","metadata":{"trusted":true},"execution_count":null,"outputs":[]}]}