{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"# coding: utf-8\n__author__ = 'ZFTurbo: https://kaggle.com/zfturbo'\n\nimport pandas as pd\nimport numpy as np\nimport operator\n\n\ndef sort_dict_by_values(a, reverse=True):\n    sorted_x = sorted(a.items(), key=operator.itemgetter(1), reverse=reverse)\n    return sorted_x\n\n\ndef get_avg_string():\n    max_length = 403\n    train = pd.read_csv('../input/bms-molecular-translation/train_labels.csv')\n    print('Train length: {}'.format(len(train)))\n    str1 = train['InChI'].values\n\n    distrib = dict()\n    for i in range(max_length):\n        distrib[i] = dict()\n\n    lengths = []\n    for zz, s in enumerate(str1):\n        lengths.append(len(s))\n        l1 = len(s)\n        for i in range(max_length):\n            if i < l1:\n                char = s[i]\n            else:\n                char = ' '\n            if char not in distrib[i]:\n                distrib[i][char] = 0\n            distrib[i][char] += 1\n        if zz % 100000 == 0 and zz > 0:\n            print('Proc: {}'.format(zz))\n\n    lengths = np.array(lengths)\n    print('Stat:', lengths.mean(), lengths.min(), lengths.max())\n\n    best_str = ''\n    for i in range(max_length):\n        d = sort_dict_by_values(distrib[i], reverse=True)\n        print(d[0])\n        if d[0][0] == ' ':\n            break\n        best_str += d[0][0]\n\n    print('Most porbable string: {}'.format(best_str))\n    return best_str\n\n\nif __name__ == '__main__':\n    best_str = get_avg_string()\n    subm = pd.read_csv('../input/bms-molecular-translation/sample_submission.csv')\n    subm['InChI'] = best_str\n    subm.to_csv('submission.csv', index=False)","execution_count":null,"outputs":[]}],"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":4,"nbformat_minor":4}