{"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":"code","source":"import pandas as pd\nimport glob\nimport json\nimport re\nimport plotly.express as exp\nimport os\nimport numpy as np\nfrom tqdm.autonotebook import tqdm\n\ndef jaccard(str1, str2): \n    a = set(str1.lower().split()) \n    b = set(str2.lower().split())\n    c = a.intersection(b)\n    return float(len(c)) / (len(a) + len(b) - len(c))","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","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()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train = pd.read_csv(\"../input/coleridgeinitiative-show-us-the-data/train.csv\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"base_path = \"../input/coleridgeinitiative-show-us-the-data/train\"\ntrain_files = train.Id.to_numpy()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"z = (train.dataset_title.apply(clean_text)==train.cleaned_label)\nprint(z.mean())","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train[train.dataset_title.apply(clean_text)!=train.cleaned_label]","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"exp.bar(train.cleaned_label.value_counts()[:20])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_datasets = train.cleaned_label.unique()\nprint(\"no of datasets in training set:\",len(train_datasets))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"words = []\nfor d in train.cleaned_label.unique():\n    words.extend(d.split())\nwords = set(words)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_datasets","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def find_dataset(text):\n    f = []\n    for x in train_datasets:\n        if text.find(x)!=-1:\n            f.append(x+\"|\")\n    return \"\".join(f)[:-1]     ","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# for i in tqdm(range(len(train_files))):\n#     text = json.load(open(os.path.join(base_path,train.iloc[i,0]+\".json\")))\n#     sec = []\n#     for x in text:\n#         sec.append(x['section_title'])\n#         sec.append(\" \")    \n#         sec.append(x['text'])    \n#     entire = \"\".join(sec)\n#     entire = clean_text(entire)\n#     train.loc[i,\"valid\"] = find_dataset(entire)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission = pd.read_csv(\"../input/coleridgeinitiative-show-us-the-data/sample_submission.csv\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_path = \"../input/coleridgeinitiative-show-us-the-data/test\"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for i in tqdm(range(len(submission))):\n    text = json.load(open(os.path.join(test_path,submission.iloc[i,0]+\".json\")))\n    sec = []\n    for x in text:\n        sec.append(x['section_title'])\n        sec.append(\" \")    \n        sec.append(x['text'])    \n    entire = \"\".join(sec)\n    entire = clean_text(entire)\n    submission.loc[i,\"PredictionString\"] = find_dataset(entire)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission.to_csv(\"submission.csv\",index=False)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission","metadata":{"trusted":true},"execution_count":null,"outputs":[]}]}