[
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2017 THUNLP\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
  },
  {
    "path": "README.md",
    "content": "# JointNRE\n\nThis repository is a subproject of THU-OpenSK, and all subprojects of THU-OpenSK are as follows.\n\n- [OpenNE](https://www.github.com/thunlp/OpenNE)\n- [OpenKE](https://www.github.com/thunlp/OpenKE)\n  - [KB2E](https://www.github.com/thunlp/KB2E)\n  - [TensorFlow-Transx](https://www.github.com/thunlp/TensorFlow-Transx)\n  - [Fast-TransX](https://www.github.com/thunlp/Fast-TransX)\n- [OpenNRE](https://www.github.com/thunlp/OpenNRE)\n  - [JointNRE](https://www.github.com/thunlp/JointNRE)\n\nCodes and datasets for our paper \"Neural Knowledge Acquisition via Mutual Attention between Knowledge Graph and Text\"\n\n\nSome Introduction\n===\n\nThis implementation is a fast and stable version. \n\nWe have made some simplifications for the original model so that to train a joint model just needs around 15min.\n\nWe also encapsulate more neural architectures into our framework to encode sentences.\n\nThe code and datasets mainly for the task relation extraction.\n\nData\n==========\n\nWe provide the datasets used for the task relation extraction.\n\nNew York Times Corpus: The data used in relation extraction from text is published by \"Modeling relations and their mentions without labeled text\". The data should be obtained from [[LDC]](https://catalog.ldc.upenn.edu/LDC2008T19) first.\n\nDatasets are required in the folder data/ in the following format, containing at least 4 files:\n\n+ kg/train.txt: the knowledge graph for training, format (e1, e2, rel).\n\n+ text/relation2id.txt: the relation needed to be predicted for RE, format (rel, id).\n\n+ text/train.txt: the text for training, format (e1, e2, name1, name2, rel, sentence).\n\n+ text/vec.txt: the initial word embeddings.\n\n+ [[Download (Baidu Cloud)]](https://pan.baidu.com/s/1q7rctsoJ_YdlLa55yckwbQ)\n+ [[Download (Tsinghua Cloud)]](https://cloud.tsinghua.edu.cn/f/28ba8ac5262349dd9622/?dl=1)\n\nFor FB15K-NYT, we directly give the data for our code [[Download (Tsinghua Cloud)]](https://cloud.tsinghua.edu.cn/f/384836aacb1f4aee9fa3/?dl=1), as we cannot release the original data limited by the license of LDC.\n\nRun the experiments\n==========\n\n### To run the experiments, unpack the datasets first:\n\n```\nunzip origin_data.zip -d origin_data/\nmkdir data/\npython initial.py\n```\n\n### Run the corresponding python scripts to train models:\n\n```\ncd jointE\nbash make.sh\npython train.py\n```\n\n### Change the corresponding python code to set hyperparameters:\n\n```\ntf.app.flags.DEFINE_float('nbatch_kg',100,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('margin',1.0,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('learning_rate_kg',0.001,'learning rate for kg')\ntf.app.flags.DEFINE_float('ent_total',lib.getEntityTotal(),'total of entities')\ntf.app.flags.DEFINE_float('rel_total',lib.getRelationTotal(),'total of relations')\ntf.app.flags.DEFINE_float('tri_total',lib.getTripleTotal(),'total of triples')\ntf.app.flags.DEFINE_float('katt_flag', 1, '1 for katt, 0 for att')\n\ntf.app.flags.DEFINE_string('model', 'cnn', 'neural models to encode sentences')\ntf.app.flags.DEFINE_float('max_length',config['fixlen'],'maximum of number of words in one sentence')\ntf.app.flags.DEFINE_float('pos_num', config['maxlen'] * 2 + 1,'number of position embedding vectors')\ntf.app.flags.DEFINE_float('num_classes', config['textual_rel_total'],'maximum of relations')\n\ntf.app.flags.DEFINE_float('hidden_size',230,'hidden feature size')\ntf.app.flags.DEFINE_float('pos_size',5,'position embedding size')\n\ntf.app.flags.DEFINE_float('max_epoch',20,'maximum of training epochs')\ntf.app.flags.DEFINE_float('batch_size',160,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('learning_rate',0.5,'learning rate for nn')\ntf.app.flags.DEFINE_float('weight_decay',0.00001,'weight_decay')\ntf.app.flags.DEFINE_float('keep_prob',0.5,'dropout rate')\n\ntf.app.flags.DEFINE_string('model_dir','./model/','path to store model')\ntf.app.flags.DEFINE_string('summary_dir','./summary','path to store summary_dir')\n```\n\n### Run the corresponding python scripts to test models:\n\n```\ncd jointE\nbash make.sh\npython test.py\n```\n\nNote that the hyperparameters in the train.py and the test.py must be the same.\n\n### Run the corresponding python script to get PR-curve results:\n\n```\ncd jointE\npython pr_plot.py\n```\n\nCitation\n===\n\n```\n @inproceedings{han2018neural,\n   title={Neural Knowledge Acquisition via Mutual Attention between Knowledge Graph and Text},\n   author={Han, Xu and Liu, Zhiyuan and Sun, Maosong},\n   booktitle={Proceedings of AAAI},\n   year={2018}\n }\n```\n\n\n\n \n\n\n\n"
  },
  {
    "path": "initial.py",
    "content": "import numpy as np\nimport os\nimport json\n\n# folder of training datasets\ndata_path = \"./origin_data/\"\n# files to export data\nexport_path = \"./data/\"\n#length of sentence\nfixlen = 120\n#max length of position embedding is 100 (-100~+100)\nmaxlen = 100\n\nword2id = {}\nrelation2id = {}\nword_size = 0\nword_vec = None\n\ndef pos_embed(x):\n\treturn max(0, min(x + maxlen, maxlen + maxlen + 1))\n\ndef find_index(x,y):\n\tfor index, item in enumerate(y):\n\t\tif x == item:\n\t\t\treturn index\n\treturn -1\n\ndef init_word():\n\t# reading word embedding data...\n\tglobal word2id, word_size\n\tres = []\n\tff = open(export_path + \"/entity2id.txt\", \"w\")\n\tf = open(data_path + \"kg/train.txt\", \"r\")\n\twhile True:\n\t\tcontent = f.readline()\n\t\tif content == \"\":\n\t\t\tbreak\n\t\th, t, r = content.strip().split(\"\\t\")\n\t\tif not h in word2id:\n\t\t\tword2id[h] = len(word2id)\n\t\t\tff.write(\"%s\\t%d\\n\"%(h, word2id[h]))\n\t\tif not t in word2id:\n\t\t\tword2id[t] = len(word2id)\n\t\t\tff.write(\"%s\\t%d\\n\"%(t, word2id[t]))\n\tf.close()\n\tf = open(data_path + \"text/train.txt\", \"r\")\n\twhile True:\n\t\tcontent = f.readline()\n\t\tif content == \"\":\n\t\t\tbreak\n\t\th,t = content.strip().split(\"\\t\")[:2]\n\t\tif not h in word2id:\n\t\t\tword2id[h] = len(word2id)\n\t\t\tff.write(\"%s\\t%d\\n\"%(h, word2id[h]))\n\t\tif not t in word2id:\n\t\t\tword2id[t] = len(word2id)\n\t\t\tff.write(\"%s\\t%d\\n\"%(t, word2id[t]))\n\tf.close()\n\tf = open(data_path + \"text/test.txt\", \"r\")\n\twhile True:\n\t\tcontent = f.readline()\n\t\tif content == \"\":\n\t\t\tbreak\n\t\th,t = content.strip().split(\"\\t\")[:2]\n\t\tif not h in word2id:\n\t\t\tword2id[h] = len(word2id)\n\t\t\tff.write(\"%s\\t%d\\n\"%(h, word2id[h]))\n\t\tif not t in word2id:\n\t\t\tword2id[t] = len(word2id)\n\t\t\tff.write(\"%s\\t%d\\n\"%(t, word2id[t]))\n\tf.close()\n\tres.append(len(word2id))\n\tff.close()\n\n\tprint 'reading word embedding data...'\n\tf = open(data_path + 'text/vec.txt', \"r\")\n\ttotal, size = f.readline().strip().split()[:2]\n\ttotal = (int)(total)\n\tword_size = (int)(size)\n\tvec = np.ones((total + res[0], word_size), dtype = np.float32)\n\tfor i in range(total):\n\t\tcontent = f.readline().strip().split()\n\t\tword2id[content[0]] = len(word2id)\n\t\tfor j in range(word_size):\n\t\t\tvec[i + res[0]][j] = (float)(content[j+1])\n\tf.close()\n\tword2id['UNK'] = len(word2id)\n\tword2id['BLANK'] = len(word2id)\n\tglobal word_vec\n\tword_vec = vec\n\tres.append(len(word2id))\n\treturn res\n\ndef init_relation():\n\t# reading relation ids...\n\tglobal relation2id\n\tprint 'reading relation ids...'\t\n\tres = []\n\tff = open(export_path + \"/relation2id.txt\", \"w\")\n\tf = open(data_path + \"text/relation2id.txt\",\"r\")\n\ttotal = (int)(f.readline().strip())\n\tfor i in range(total):\n\t\tcontent = f.readline().strip().split()\n\t\tif not content[0] in relation2id:\n\t\t\trelation2id[content[0]] = len(relation2id)\n\t\t\tff.write(\"%s\\t%d\\n\"%(content[0], relation2id[content[0]]))\n\tf.close()\n\tres.append(len(relation2id))\n\tf = open(data_path + \"kg/train.txt\", \"r\")\n\tfor i in f.readlines():\n\t\th, t, r = i.strip().split(\"\\t\")\n\t\tif not r in relation2id:\n\t\t\trelation2id[r] = len(relation2id)\n\t\t\tff.write(\"%s\\t%d\\n\"%(r, relation2id[r]))\n\tf.close()\n\tff.close()\n\tres.append(len(relation2id))\n\treturn res\n\ndef sort_files(name, limit):\n\thash = {}\n\tf = open(data_path + \"text/\" + name + '.txt','r')\n\ts = 0\n\twhile True:\n\t\tcontent = f.readline()\n\t\tif content == '':\n\t\t\tbreak\n\t\ts = s + 1\n\t\torigin_data = content\n\t\tcontent = content.strip().split()\n\t\ten1_id = content[0]\n\t\ten2_id = content[1]\n\t\trel_name = content[4]\n\t\tif (rel_name in relation2id) and ((int)(relation2id[rel_name]) < limit[0]):\n\t\t\trelation = relation2id[rel_name]\n\t\telse:\n\t\t\trelation = relation2id['NA']\n\t\tid1 = str(en1_id)+\"#\"+str(en2_id)\n\t\tid2 = str(relation)\n\t\tif not id1 in hash:\n\t\t\thash[id1] = {}\n\t\tif not id2 in hash[id1]:\n\t\t\thash[id1][id2] = []\n\t\thash[id1][id2].append(origin_data)\n\tf.close()\n\tf = open(data_path + name + \"_sort.txt\", \"w\")\n\tf.write(\"%d\\n\"%(s))\n\tfor i in hash:\n\t\tfor j in hash[i]:\n\t\t\tfor k in hash[i][j]:\n\t\t\t\tf.write(k)\n\tf.close()\n\ndef init_train_files(name, limit):\n\tprint 'reading ' + name +' data...'\n\tf = open(data_path + name + '.txt','r')\n\ttotal = (int)(f.readline().strip())\n\tsen_word = np.zeros((total, fixlen), dtype = np.int32)\n\tsen_pos1 = np.zeros((total, fixlen), dtype = np.int32)\n\tsen_pos2 = np.zeros((total, fixlen), dtype = np.int32)\n\tsen_mask = np.zeros((total, fixlen), dtype = np.int32)\n\tsen_len = np.zeros((total), dtype = np.int32)\n\tsen_label = np.zeros((total), dtype = np.int32)\n\tsen_head = np.zeros((total), dtype = np.int32)\n\tsen_tail = np.zeros((total), dtype = np.int32)\n\tinstance_scope = []\n\tinstance_triple = []\n\tfor s in range(total):\n\t\tcontent = f.readline().strip().split()\n\t\tsentence = content[5:-1]\n\t\ten1_id = content[0]\n\t\ten2_id = content[1]\n\t\ten1_name = content[2]\n\t\ten2_name = content[3]\n\t\trel_name = content[4]\n\t\tif rel_name in relation2id and ((int)(relation2id[rel_name]) < limit[0]):\n\t\t\trelation = relation2id[rel_name]\n\t\telse:\n\t\t\trelation = relation2id['NA']\n\t\ten1pos = 0\n\t\ten2pos = 0\n\t\tfor i in range(len(sentence)):\n\t\t\tif sentence[i] == en1_name:\n\t\t\t\tsentence[i] = en1_id\n\t\t\t\ten1pos = i\n\t\t\t\tsen_head[s] = word2id[en1_id]\n\t\t\tif sentence[i] == en2_name:\n\t\t\t\tsentence[i] = en2_id\n\t\t\t\ten2pos = i\n\t\t\t\tsen_tail[s] = word2id[en2_id]\n\t\ten_first = min(en1pos,en2pos)\n\t\ten_second = en1pos + en2pos - en_first\n\t\tfor i in range(fixlen):\n\t\t\tsen_word[s][i] = word2id['BLANK']\n\t\t\tsen_pos1[s][i] = pos_embed(i - en1pos)\n\t\t\tsen_pos2[s][i] = pos_embed(i - en2pos)\n\t\t\tif i >= len(sentence):\n\t\t\t\tsen_mask[s][i] = 0\n\t\t\telif i - en_first<=0:\n\t\t\t\tsen_mask[s][i] = 1\n\t\t\telif i - en_second<=0:\n\t\t\t\tsen_mask[s][i] = 2\n\t\t\telse:\n\t\t\t\tsen_mask[s][i] = 3\n\t\tfor i, word in enumerate(sentence):\n\t\t\tif i >= fixlen:\n\t\t\t\tbreak\n\t\t\telif not word in word2id:\n\t\t\t\tsen_word[s][i] = word2id['UNK']\n\t\t\telse:\n\t\t\t\tsen_word[s][i] = word2id[word]\n\t\tsen_len[s] = min(fixlen, len(sentence))\n\t\tsen_label[s] = relation\n\t\t#put the same entity pair sentences into a dict\n\t\ttup = (en1_id,en2_id,relation)\n\t\tif instance_triple == [] or instance_triple[len(instance_triple) - 1] != tup:\n\t\t\tinstance_triple.append(tup)\n\t\t\tinstance_scope.append([s,s])\n\t\tinstance_scope[len(instance_triple) - 1][1] = s\n\t\tif (s+1) % 100 == 0:\n\t\t\tprint s\n\treturn np.array(instance_triple), np.array(instance_scope), sen_len, sen_label, sen_word, sen_pos1, sen_pos2, sen_mask, sen_head, sen_tail\n\ndef init_kg():\n\tff = open(export_path + \"/triple2id.txt\", \"w\")\n\tf = open(data_path + \"kg/train.txt\", \"r\")\n\tcontent = f.readlines()\n\tff.write(\"%d\\n\"%(len(content)))\n\tfor i in content:\n\t\th,t,r = i.strip().split(\"\\t\")\n\t\tff.write(\"%d\\t%d\\t%d\\n\"%(word2id[h], word2id[t], relation2id[r]))\n\tf.close()\n\tff.close()\n\n\tf = open(export_path + \"/entity2id.txt\", \"r\")\n\tcontent = f.readlines()\n\tf.close()\n\tf = open(export_path + \"/entity2id.txt\", \"w\")\n\tf.write(\"%d\\n\"%(len(content)))\n\tfor i in content:\n\t\tf.write(i.strip()+\"\\n\")\n\tf.close()\n\n\tf = open(export_path + \"/relation2id.txt\", \"r\")\n\tcontent = f.readlines()\n\tf.close()\n\tf = open(export_path + \"/relation2id.txt\", \"w\")\n\tf.write(\"%d\\n\"%(len(content)))\n\tfor i in content:\n\t\tf.write(i.strip()+\"\\n\")\n\tf.close()\n\ntextual_rel_total, rel_total = init_relation()\nentity_total, word_total = init_word()\n\nprint textual_rel_total\nprint rel_total\nprint entity_total\nprint word_total\nprint word_vec.shape\nf = open(data_path + \"word2id.txt\", \"w\")\nfor i in word2id:\n\tf.write(\"%s\\t%d\\n\"%(i, word2id[i]))\nf.close()\n\ninit_kg()\nnp.save(export_path+'vec', word_vec)\nf = open(export_path+'config', \"w\")\nf.write(json.dumps({\"word2id\":word2id,\"relation2id\":relation2id,\"word_size\":word_size, \"fixlen\":fixlen, \"maxlen\":maxlen, \"entity_total\":entity_total, \"word_total\":word_total, \"rel_total\":rel_total, \"textual_rel_total\":textual_rel_total}))\nf.close()\nsort_files(\"train\", [textual_rel_total, rel_total])\nsort_files(\"test\", [textual_rel_total, rel_total])\n\n# word_vec = np.load(export_path + 'vec.npy')\n# f = open(export_path + \"config\", 'r')\n# config = json.loads(f.read())\n# f.close()\n# relation2id = config[\"relation2id\"]\n# word2id = config[\"word2id\"]\n\ninstance_triple, instance_scope, train_len, train_label, train_word, train_pos1, train_pos2, train_mask, train_head, train_tail = init_train_files(\"train_sort\",  [textual_rel_total, rel_total])\nnp.save(export_path+'train_instance_triple', instance_triple)\nnp.save(export_path+'train_instance_scope', instance_scope)\nnp.save(export_path+'train_len', train_len)\nnp.save(export_path+'train_label', train_label)\nnp.save(export_path+'train_word', train_word)\nnp.save(export_path+'train_pos1', train_pos1)\nnp.save(export_path+'train_pos2', train_pos2)\nnp.save(export_path+'train_mask', train_mask)\nnp.save(export_path+'train_head', train_head)\nnp.save(export_path+'train_tail', train_tail)\n\ninstance_triple, instance_scope, test_len, test_label, test_word, test_pos1, test_pos2, test_mask, test_head, test_tail = init_train_files(\"test_sort\",  [textual_rel_total, rel_total])\nnp.save(export_path+'test_instance_triple', instance_triple)\nnp.save(export_path+'test_instance_scope', instance_scope)\nnp.save(export_path+'test_len', test_len)\nnp.save(export_path+'test_label', test_label)\nnp.save(export_path+'test_word', test_word)\nnp.save(export_path+'test_pos1', test_pos1)\nnp.save(export_path+'test_pos2', test_pos2)\nnp.save(export_path+'test_mask', test_mask)\nnp.save(export_path+'test_head', test_head)\nnp.save(export_path+'test_tail', test_tail)\n"
  },
  {
    "path": "jointD/cnn.txt",
    "content": "0.000000\t0.000000\t0.995880\tmaryland\tkensington\t/location/location/contains\n0.500000\t0.000513\t0.994287\tvinod_khosla\tsun_microsystems\t/business/person/company\n0.666667\t0.001026\t0.993049\tcalifornia\tmill_valley\t/location/location/contains\n0.750000\t0.001538\t0.992666\tlaure_manaudou\tfrance\t/people/person/nationality\n0.800000\t0.002051\t0.991946\teric_e._schmidt\tgoogle\t/business/person/company\n0.833333\t0.002564\t0.991272\tpier_paolo_pasolini\titaly\t/people/person/nationality\n0.857143\t0.003077\t0.991046\tflorida\tjacksonville_beach\t/location/location/contains\n0.875000\t0.003590\t0.990915\tmaryland\tannapolis\t/location/location/contains\n0.888889\t0.004103\t0.989325\talaska\tchena_hot_springs\t/location/location/contains\n0.800000\t0.004103\t0.988933\tanna_chakvetadze\trussia\t/people/person/nationality\n0.818182\t0.004615\t0.988582\tfilippo_magnini\titaly\t/people/person/nationality\n0.750000\t0.004615\t0.988186\tjonathan_rosenberg\tgoogle\t/business/person/company\n0.692308\t0.004615\t0.988147\trajeev_motwani\tgoogle\t/business/person/company\n0.714286\t0.005128\t0.987757\tmarkus_zusak\taustralia\t/people/person/nationality\n0.733333\t0.005641\t0.987335\toklahoma\tmcalester\t/location/location/contains\n0.750000\t0.006154\t0.986457\twestchester_county\tpocantico_hills\t/location/location/contains\n0.764706\t0.006667\t0.986183\tjeffrey_r._immelt\tgeneral_electric\t/business/person/company\n0.777778\t0.007179\t0.986032\tflorida\tbal_harbour\t/location/location/contains\n0.789474\t0.007692\t0.985603\twestchester_county\tgreenburgh\t/location/location/contains\n0.800000\t0.008205\t0.985258\tdavid_eun\tgoogle\t/business/person/company\n0.809524\t0.008718\t0.984771\tcalifornia\tsonoma_county\t/location/location/contains\n0.818182\t0.009231\t0.984614\tlibby_lenton\taustralia\t/people/person/nationality\n0.826087\t0.009744\t0.984579\tmarius_trésor\tfrance\t/people/person/nationality\n0.791667\t0.009744\t0.983953\ttathiana_garbin\titaly\t/people/person/nationality\n0.800000\t0.010256\t0.983902\tcalifornia\tnapa\t/location/location/contains\n0.807692\t0.010769\t0.983871\tflorida\tgulf_stream\t/location/location/contains\n0.814815\t0.011282\t0.983634\tflorent_serra\tfrance\t/people/person/nationality\n0.821429\t0.011795\t0.983324\tjohn_l._hennessy\tstanford_university\t/business/person/company\n0.827586\t0.012308\t0.983282\tstephen_harper\tcanada\t/people/person/nationality\n0.833333\t0.012821\t0.983228\tmarissa_mayer\tgoogle\t/business/person/company\n0.838710\t0.013333\t0.983181\tconnecticut\tguilford\t/location/location/contains\n0.843750\t0.013846\t0.982989\titaly\tmaranello\t/location/location/contains\n0.818182\t0.013846\t0.982911\tontario\tfort_erie\t/location/location/contains\n0.794118\t0.013846\t0.982526\tflorida\trotonda\t/location/location/contains\n0.800000\t0.014359\t0.982010\tdenise_karbon\titaly\t/people/person/nationality\n0.777778\t0.014359\t0.981817\tontario\tnanticoke\t/location/location/contains\n0.783784\t0.014872\t0.981697\tstein_eriksen\tnorway\t/people/person/nationality\n0.763158\t0.014872\t0.981560\tsouth_carolina\tdarlington_raceway\t/location/location/contains\n0.769231\t0.015385\t0.981317\tpeter_luczak\taustralia\t/people/person/nationality\n0.750000\t0.015385\t0.981105\tnolan_bushnell\tatari\t/business/person/company\n0.756098\t0.015897\t0.980632\tchase_carey\tdirectv\t/business/person/company\n0.738095\t0.015897\t0.980458\tdinara_safina\trussia\t/people/person/nationality\n0.744186\t0.016410\t0.980418\tfairfield_county\twestport\t/location/location/contains\n0.750000\t0.016923\t0.980406\tchad_hurley\tyoutube\t/business/person/company\n0.755556\t0.017436\t0.980174\tsami_jo_small\tcanada\t/people/person/nationality\n0.760870\t0.017949\t0.980101\tvirginia\tharrisonburg\t/location/location/contains\n0.765957\t0.018462\t0.979768\tjonathan_littell\tfrance\t/people/person/nationality\n0.770833\t0.018974\t0.979625\tcalifornia\thumboldt_redwoods_state_park\t/location/location/contains\n0.775510\t0.019487\t0.979323\tflorida\tnorth_port\t/location/location/contains\n0.760000\t0.019487\t0.978916\tphillip_aspinall\taustralia\t/people/person/nationality\n0.764706\t0.020000\t0.978291\tchad_hurley\tgoogle\t/business/person/company\n0.769231\t0.020513\t0.977949\ttanzania\tmoshi\t/location/location/contains\n0.773585\t0.021026\t0.977405\tdouglas_merrill\tgoogle\t/business/person/company\n0.777778\t0.021538\t0.977193\tconnecticut\tfairfield_county\t/location/location/contains\n0.781818\t0.022051\t0.977117\trussell_smith\tcanada\t/people/person/nationality\n0.785714\t0.022564\t0.977091\tperdita_felicien\tcanada\t/people/person/nationality\n0.789474\t0.023077\t0.977077\tgermany\tkronach\t/location/location/contains\n0.793103\t0.023590\t0.976818\txavier_florencio\tspain\t/people/person/nationality\n0.796610\t0.024103\t0.976818\tanne_m._mulcahy\txerox\t/business/person/company\n0.800000\t0.024615\t0.976730\tstefano_baldini\titaly\t/people/person/nationality\n0.803279\t0.025128\t0.976672\tmaryland\ttakoma_park\t/location/location/contains\n0.806452\t0.025641\t0.976611\tiowa\tle_mars\t/location/location/contains\n0.809524\t0.026154\t0.976504\tfrançois_bayrou\tfrance\t/people/person/nationality\n0.796875\t0.026154\t0.976321\ttatiana_kosintseva\trussia\t/people/person/nationality\n0.800000\t0.026667\t0.976294\tboston\tdorchester\t/location/location/contains\n0.787879\t0.026667\t0.975527\tbjorn_phau\tgermany\t/people/person/nationality\n0.791045\t0.027179\t0.975518\tcuba\tbayamo\t/location/location/contains\n0.794118\t0.027692\t0.975472\tvermont\tbrattleboro\t/location/location/contains\n0.797101\t0.028205\t0.975466\tjorge_garbajosa\tspain\t/people/person/nationality\n0.785714\t0.028205\t0.975436\tdon_harrison\tgoogle\t/business/person/company\n0.774648\t0.028205\t0.975419\tvirginia\tmount_vernon\t/location/location/contains\n0.777778\t0.028718\t0.975294\tgermany\tlandstuhl\t/location/location/contains\n0.780822\t0.029231\t0.974849\titaly\tpositano\t/location/location/contains\n0.770270\t0.029231\t0.974492\tnew_york_city\tcollege_of_insurance\t/location/location/contains\n0.773333\t0.029744\t0.974405\tsouth_carolina\tlittle_pee_dee_river\t/location/location/contains\n0.776316\t0.030256\t0.974199\tcalifornia\tmonterey\t/location/location/contains\n0.779221\t0.030769\t0.974047\twest_virginia\telk_garden\t/location/location/contains\n0.782051\t0.031282\t0.973229\tfrancesco_maria_piave\titaly\t/people/person/nationality\n0.772152\t0.031282\t0.973215\tbaltasar_garzón\tspain\t/people/person/nationality\n0.775000\t0.031795\t0.973188\tcalifornia\tsan_juan_capistrano\t/location/location/contains\n0.777778\t0.032308\t0.973173\tflorida\tboca_raton\t/location/location/contains\n0.768293\t0.032308\t0.972939\tontario\twawa\t/location/location/contains\n0.771084\t0.032821\t0.972635\tségolène_royal\tfrance\t/people/person/nationality\n0.773810\t0.033333\t0.972544\tmississippi\tmccomb\t/location/location/contains\n0.764706\t0.033333\t0.972514\telena_dementieva\trussia\t/people/person/nationality\n0.767442\t0.033846\t0.971313\tflorida\tponte_vedra_beach\t/location/location/contains\n0.770115\t0.034359\t0.971186\tflorida\tlake_worth\t/location/location/contains\n0.772727\t0.034872\t0.970938\tgermany\tbaden-baden\t/location/location/contains\n0.775281\t0.035385\t0.970156\tsuffolk_county\tsmithtown\t/location/location/contains\n0.777778\t0.035897\t0.969907\trhode_island\twest_warwick\t/location/location/contains\n0.769231\t0.035897\t0.969728\tphilippe_douste-blazy\tfrance\t/people/person/nationality\n0.771739\t0.036410\t0.969597\tcalifornia\tbeverly_hills\t/location/location/contains\n0.763441\t0.036410\t0.969277\tashis_nandy\tindia\t/people/person/nationality\n0.755319\t0.036410\t0.969072\tspringstein\tgermany\t/people/person/nationality\n0.757895\t0.036923\t0.968775\taustralia\tjindabyne\t/location/location/contains\n0.750000\t0.036923\t0.968310\tmaryland\tfort_meade\t/location/location/contains\n0.752577\t0.037436\t0.968180\travi_chopra\tindia\t/people/person/nationality\n0.755102\t0.037949\t0.967655\tcorrado_augias\titaly\t/people/person/nationality\n0.757576\t0.038462\t0.967118\tontario\tniagara-on-the-lake\t/location/location/contains\n0.760000\t0.038974\t0.967032\tshilpa_shetty\tindia\t/people/person/nationality\n0.762376\t0.039487\t0.966855\tantonio_stradivari\titaly\t/people/person/nationality\n0.754902\t0.039487\t0.966782\tcolorado\thinsdale\t/location/location/contains\n0.757282\t0.040000\t0.966779\tbruno_kernen\tswitzerland\t/people/person/nationality\n0.759615\t0.040513\t0.966745\tcolorado\taspen\t/location/location/contains\n0.752381\t0.040513\t0.966705\tidaho\ttamarack_resort\t/location/location/contains\n0.754717\t0.041026\t0.966588\tgermany\tbad_arolsen\t/location/location/contains\n0.747664\t0.041026\t0.966460\tandy_murray\tscotland\t/people/person/nationality\n0.750000\t0.041538\t0.966229\tarthur_d._collins_jr.\tmedtronic\t/business/person/company\n0.752294\t0.042051\t0.966202\tmario_soldati\titaly\t/people/person/nationality\n0.745455\t0.042051\t0.965811\tyle\tfinland\t/people/person/nationality\n0.747748\t0.042564\t0.965271\tcalifornia\tlos_alamitos\t/location/location/contains\n0.741071\t0.042564\t0.965190\tcalifornia\towens_valley\t/location/location/contains\n0.734513\t0.042564\t0.964723\tnew_hampshire\tattitash\t/location/location/contains\n0.736842\t0.043077\t0.964520\ttorah_bright\taustralia\t/people/person/nationality\n0.739130\t0.043590\t0.964175\tgermany\tnordenham\t/location/location/contains\n0.732759\t0.043590\t0.963294\tvermont\tbennington\t/location/location/contains\n0.735043\t0.044103\t0.963292\tgermany\tkönigsdorf\t/location/location/contains\n0.737288\t0.044615\t0.963275\tsri_lanka\tpolonnaruwa\t/location/location/contains\n0.731092\t0.044615\t0.963223\tboston\tfirst_church\t/location/location/contains\n0.725000\t0.044615\t0.963017\tcuba\tpuerto_padre\t/location/location/contains\n0.727273\t0.045128\t0.962931\thoward_hochhauser\tmartha_stewart_living_omnimedia\t/business/person/company\n0.729508\t0.045641\t0.962851\twisconsin\tuss_cobia\t/location/location/contains\n0.723577\t0.045641\t0.962537\tflorida\tsarasota_film_festival\t/location/location/contains\n0.725806\t0.046154\t0.962358\tsan_francisco\tnorth_beach\t/location/location/contains\n0.728000\t0.046667\t0.962206\tper_petterson\tnorway\t/people/person/nationality\n0.730159\t0.047179\t0.961897\tlars_berger\tnorway\t/people/person/nationality\n0.732283\t0.047692\t0.961732\tdavid_ferrer\tspain\t/people/person/nationality\n0.734375\t0.048205\t0.961326\tflorida\tcoconut_creek\t/location/location/contains\n0.728682\t0.048205\t0.961289\twisconsin\tfishtrap_lake\t/location/location/contains\n0.730769\t0.048718\t0.961181\trobert_druskin\tcitigroup\t/business/person/company\n0.725191\t0.048718\t0.961020\tmaryland\tmontgomery_county\t/location/location/contains\n0.727273\t0.049231\t0.961004\tjean-louis_bruguière\tfrance\t/people/person/nationality\n0.729323\t0.049744\t0.960851\tgermany\tmeiningen\t/location/location/contains\n0.731343\t0.050256\t0.960149\tmichelle_peluso\ttravelocity\t/business/person/company\n0.725926\t0.050256\t0.958890\ttim_clark\tsouth_africa\t/people/person/nationality\n0.720588\t0.050256\t0.958454\toklahoma\tcherokee_county\t/location/location/contains\n0.722628\t0.050769\t0.958083\tfrançois_mitterrand\tfrance\t/people/person/nationality\n0.724638\t0.051282\t0.957728\tmark_v._hurd\thewlett-packard\t/business/person/company\n0.719424\t0.051282\t0.957067\tolivier_roy\tfrance\t/people/person/nationality\n0.721429\t0.051795\t0.956988\tjalisco\tmazamitla\t/location/location/contains\n0.716312\t0.051795\t0.956932\tmaryland\tcomcast_center\t/location/location/contains\n0.718310\t0.052308\t0.956872\tpedro_almodóvar\tspain\t/people/person/nationality\n0.720280\t0.052821\t0.956852\tsarah_jamieson\taustralia\t/people/person/nationality\n0.722222\t0.053333\t0.956464\tflorida\tpalm_beach\t/location/location/contains\n0.724138\t0.053846\t0.956148\tshane_doan\tcanada\t/people/person/nationality\n0.726027\t0.054359\t0.956037\tatiku_abubakar\tnigeria\t/people/person/nationality\n0.727891\t0.054872\t0.955890\tgermany\tdessau\t/location/location/contains\n0.729730\t0.055385\t0.955835\tsão_paulo\tpacaembu\t/location/location/contains\n0.731544\t0.055897\t0.955751\trockland_county\tairmont\t/location/location/contains\n0.733333\t0.056410\t0.954876\tgermany\tsiegen\t/location/location/contains\n0.735099\t0.056923\t0.954274\tpeter_akinola\tnigeria\t/people/person/nationality\n0.730263\t0.056923\t0.954118\tabdou_diouf\tsenegal\t/people/person/nationality\n0.732026\t0.057436\t0.953871\tmaryland\tdeep_creek_lake\t/location/location/contains\n0.733766\t0.057949\t0.953760\tisrael\tashkelon\t/location/location/contains\n0.735484\t0.058462\t0.953628\tcambridge\tlesley_university\t/location/location/contains\n0.737179\t0.058974\t0.952835\tjo-wilfried_tsonga\tfrance\t/people/person/nationality\n0.738854\t0.059487\t0.952825\tamália_rodrigues\tportugal\t/people/person/nationality\n0.734177\t0.059487\t0.952404\tbihar\tjahanabad\t/location/location/contains\n0.735849\t0.060000\t0.951826\tturkey\ttrabzon\t/location/location/contains\n0.731250\t0.060000\t0.951575\tandrea_frazzini\tuniversity_of_chicago\t/business/person/company\n0.732919\t0.060513\t0.951397\tgaël_monfils\tfrance\t/people/person/nationality\n0.728395\t0.060513\t0.951389\tbuffalo\tdelaware_park\t/location/location/contains\n0.730061\t0.061026\t0.951155\trockland_county\tnew_city\t/location/location/contains\n0.731707\t0.061538\t0.950967\tlaurent_merlin\tfrance\t/people/person/nationality\n0.733333\t0.062051\t0.950891\tiowa\tbode\t/location/location/contains\n0.734940\t0.062564\t0.950856\tsanta_clara_county\tsan_jose\t/location/location/contains\n0.736527\t0.063077\t0.950850\tsouth_dakota\trosebud_indian_reservation\t/location/location/contains\n0.738095\t0.063590\t0.950538\tpeer_steinbrück\tgermany\t/people/person/nationality\n0.739645\t0.064103\t0.950037\tcamille_pin\tfrance\t/people/person/nationality\n0.741176\t0.064615\t0.950000\tlos_angeles_county\tlong_beach\t/location/location/contains\n0.742690\t0.065128\t0.949893\tjohn_macdonald\tcanada\t/people/person/nationality\n0.738372\t0.065128\t0.949711\tireland\tcounty_monaghan\t/location/location/contains\n0.739884\t0.065641\t0.949668\tlos_angeles_county\tbell_gardens\t/location/location/contains\n0.735632\t0.065641\t0.949614\trussia\tcaucasus_mountains\t/location/location/contains\n0.737143\t0.066154\t0.949597\tindia\tgangtok\t/location/location/contains\n0.738636\t0.066667\t0.949449\tcalifornia\tberkeley\t/location/location/contains\n0.734463\t0.066667\t0.949148\talex_neve\tcanada\t/people/person/nationality\n0.735955\t0.067179\t0.949132\tseyyed_hossein_nasr\tgeorge_washington_university\t/business/person/company\n0.731844\t0.067179\t0.949106\trockland_county\tramapo\t/location/location/contains\n0.733333\t0.067692\t0.948681\tthailand\tkrabi\t/location/location/contains\n0.729282\t0.067692\t0.948643\tireland\tcounty_longford\t/location/location/contains\n0.725275\t0.067692\t0.948520\tcolorado\tridgway_state_park\t/location/location/contains\n0.726776\t0.068205\t0.948424\tkim_jong-il\tnorth_korea\t/people/person/nationality\n0.728261\t0.068718\t0.948321\tconnecticut\twestport\t/location/location/contains\n0.729730\t0.069231\t0.948108\tali_khamenei\tiran\t/people/person/nationality\n0.725806\t0.069231\t0.948021\tgermany\tuniversity_of_lübeck\t/location/location/contains\n0.721925\t0.069231\t0.947805\tsteve_newcomb\tgoogle\t/business/person/company\n0.723404\t0.069744\t0.947530\tstephen_g._post\tcase_western_reserve_university\t/business/person/company\n0.724868\t0.070256\t0.947518\tidaho\tlapwai\t/location/location/contains\n0.726316\t0.070769\t0.947223\titaly\torvieto\t/location/location/contains\n0.727749\t0.071282\t0.947085\tbenita_johnson\taustralia\t/people/person/nationality\n0.729167\t0.071795\t0.946970\tfaraz_hoodbhoy\tpixsense\t/business/person/company\n0.730570\t0.072308\t0.946963\titaly\travenna\t/location/location/contains\n0.726804\t0.072308\t0.946805\tvirginia\tringgold\t/location/location/contains\n0.723077\t0.072308\t0.946686\tspain\talhambra\t/location/location/contains\n0.719388\t0.072308\t0.946157\tindiana\tbedford\t/location/location/contains\n0.715736\t0.072308\t0.945670\tpaolo_gentiloni\titaly\t/people/person/nationality\n0.712121\t0.072308\t0.945421\tennio_morricone\tportugal\t/people/person/nationality\n0.708543\t0.072308\t0.945250\tnikolay_davydenko\trussia\t/people/person/nationality\n0.705000\t0.072308\t0.945206\tiberdrola\tspain\t/people/person/nationality\n0.706468\t0.072821\t0.945195\titaly\tmontappone\t/location/location/contains\n0.707921\t0.073333\t0.945179\tsumner_redstone\tviacom\t/business/person/company\n0.704433\t0.073333\t0.944991\teric_von_hippel\tmassachusetts_institute_of_technology\t/business/person/company\n0.705882\t0.073846\t0.944633\tturkey\tvan\t/location/location/contains\n0.702439\t0.073846\t0.944331\tbjarne_riis\tfrance\t/people/person/nationality\n0.703883\t0.074359\t0.943904\tstaten_island\ttodt_hill\t/location/location/contains\n0.700483\t0.074359\t0.943814\tstefano_bollani\titaly\t/people/person/nationality\n0.701923\t0.074872\t0.943663\tiowa\tfort_madison\t/location/location/contains\n0.698565\t0.074872\t0.943349\tlloyd_taylor\tgoogle\t/business/person/company\n0.695238\t0.074872\t0.942840\tcalifornia\ttim_rooney\t/location/location/contains\n0.691943\t0.074872\t0.942762\tnew_york_city\tcroton_dam\t/location/location/contains\n0.693396\t0.075385\t0.942626\tiran\tisfahan\t/location/location/contains\n0.694836\t0.075897\t0.942505\tsherry_turkle\tmassachusetts_institute_of_technology\t/business/person/company\n0.696262\t0.076410\t0.942444\tportland\treed_college\t/location/location/contains\n0.697674\t0.076923\t0.942358\tmariano_rajoy\tspain\t/people/person/nationality\n0.699074\t0.077436\t0.942169\tcalifornia\tsan_onofre\t/location/location/contains\n0.695853\t0.077436\t0.942069\tontario\ttobermory\t/location/location/contains\n0.697248\t0.077949\t0.941898\tturkey\tsamsun\t/location/location/contains\n0.694064\t0.077949\t0.941252\tkatharine_hepburn\tscotland\t/people/person/nationality\n0.695455\t0.078462\t0.941231\tconnecticut\tdarien\t/location/location/contains\n0.692308\t0.078462\t0.941151\tvoltaire\tportugal\t/people/person/nationality\n0.693694\t0.078974\t0.940939\tmexico\tbaja_california_peninsula\t/location/location/contains\n0.690583\t0.078974\t0.940489\trolf_de_heer\taustralia\t/people/person/nationality\n0.687500\t0.078974\t0.939817\tmargherita_of_savoy\titaly\t/people/person/nationality\n0.688889\t0.079487\t0.939789\tdan_gilbert\tquicken_loans\t/business/person/company\n0.690265\t0.080000\t0.939631\tidaho\trexburg\t/location/location/contains\n0.687225\t0.080000\t0.939558\tmark_feldstein\tgeorge_washington_university\t/business/person/company\n0.688596\t0.080513\t0.939392\tturkey\tkonya\t/location/location/contains\n0.685590\t0.080513\t0.939389\tr._c._buford\tfrance\t/people/person/nationality\n0.686957\t0.081026\t0.939348\tsara_seager\tmassachusetts_institute_of_technology\t/business/person/company\n0.688312\t0.081538\t0.939344\tflorida\taventura\t/location/location/contains\n0.689655\t0.082051\t0.939325\tstephen_ames\tcanada\t/people/person/nationality\n0.686695\t0.082051\t0.939312\tmountain_zebra_national_park\tsouth_africa\t/people/person/nationality\n0.683761\t0.082051\t0.939121\talexander_stille\titaly\t/people/person/nationality\n0.685106\t0.082564\t0.938532\tdominique_gisin\tswitzerland\t/people/person/nationality\n0.682203\t0.082564\t0.938017\tsonoma_county\trussian_river\t/location/location/contains\n0.683544\t0.083077\t0.937965\tmaryland\tglenarden\t/location/location/contains\n0.684874\t0.083590\t0.937930\tlevi_eshkol\tisrael\t/people/person/nationality\n0.686192\t0.084103\t0.937828\thenri_troyat\tfrance\t/people/person/nationality\n0.687500\t0.084615\t0.937527\talain_duhamel\tfrance\t/people/person/nationality\n0.688797\t0.085128\t0.937519\talfred_moisiu\talbania\t/people/person/nationality\n0.690083\t0.085641\t0.937387\tdavid_altmejd\tcanada\t/people/person/nationality\n0.691358\t0.086154\t0.937372\tpierre_bourdieu\tfrance\t/people/person/nationality\n0.688525\t0.086154\t0.937212\tboston\tmassachusetts_college_of_art\t/location/location/contains\n0.689796\t0.086667\t0.936803\tsouth_australia\tport_lincoln\t/location/location/contains\n0.691057\t0.087179\t0.936777\tminnesota\teveleth\t/location/location/contains\n0.688259\t0.087179\t0.936494\tdavid_berson\tespn\t/business/person/company\n0.689516\t0.087692\t0.936452\tjosé_sócrates\tportugal\t/people/person/nationality\n0.686747\t0.087692\t0.936435\tmarilee_jones\tmassachusetts_institute_of_technology\t/business/person/company\n0.688000\t0.088205\t0.936339\tjürgen_klinsmann\tgermany\t/people/person/nationality\n0.689243\t0.088718\t0.935953\tindia\thalol\t/location/location/contains\n0.686508\t0.088718\t0.935750\tela_bhatt\tindia\t/people/person/nationality\n0.683794\t0.088718\t0.935417\tkeith_murdoch\taustralia\t/people/person/nationality\n0.681102\t0.088718\t0.935371\twest_texas\tmarfa\t/location/location/contains\n0.682353\t0.089231\t0.935055\tjosé_maría_aznar\tspain\t/people/person/nationality\n0.679688\t0.089231\t0.934673\tcalifornia\tlawrence_livermore_national_laboratory\t/location/location/contains\n0.677043\t0.089231\t0.934502\tconnecticut\tglass_house\t/location/location/contains\n0.674419\t0.089231\t0.934226\titaly\tuniversity_of_florence\t/location/location/contains\n0.671815\t0.089231\t0.933992\tbaja_california\tla_paz\t/location/location/contains\n0.669231\t0.089231\t0.933980\tmafioso\titaly\t/people/person/nationality\n0.670498\t0.089744\t0.933795\tarkansas\thendrix_college\t/location/location/contains\n0.671756\t0.090256\t0.933668\tandrew_whiteman\tcanada\t/people/person/nationality\n0.669202\t0.090256\t0.933496\tport_washington\tharborside\t/location/location/contains\n0.670455\t0.090769\t0.933354\tcalifornia\toakland\t/location/location/contains\n0.667925\t0.090769\t0.932307\tpaktia_province\tpatan\t/location/location/contains\n0.665414\t0.090769\t0.932061\tpeter_gelb\tfrance\t/people/person/nationality\n0.666667\t0.091282\t0.932001\tmuhammadu_buhari\tnigeria\t/people/person/nationality\n0.667910\t0.091795\t0.931935\tesa-pekka_salonen\tfinland\t/people/person/nationality\n0.669145\t0.092308\t0.931596\tgermany\thildesheim\t/location/location/contains\n0.666667\t0.092308\t0.931410\tvermont\tokemo_mountain_resort\t/location/location/contains\n0.664207\t0.092308\t0.931354\ttulbagh\tsouth_africa\t/people/person/nationality\n0.661765\t0.092308\t0.930946\tnadia_petrova\trussia\t/people/person/nationality\n0.663004\t0.092821\t0.930666\tguanajuato\tacámbaro\t/location/location/contains\n0.664234\t0.093333\t0.930552\tjonathan_gruber\tmassachusetts_institute_of_technology\t/business/person/company\n0.665455\t0.093846\t0.930363\tiowa\tfort_des_moines\t/location/location/contains\n0.666667\t0.094359\t0.930152\tshanghai\tjade_buddha_temple\t/location/location/contains\n0.667870\t0.094872\t0.929813\talaska\tkenai\t/location/location/contains\n0.665468\t0.094872\t0.929333\tmilton_wolff\tspain\t/people/person/nationality\n0.666667\t0.095385\t0.928934\tchris_dewolfe\tmyspace\t/business/person/company\n0.667857\t0.095897\t0.928495\tiran\tmashhad\t/location/location/contains\n0.669039\t0.096410\t0.928331\tseattle\tsouth_lake_union\t/location/location/contains\n0.670213\t0.096923\t0.927680\tserbia\tleskovac\t/location/location/contains\n0.671378\t0.097436\t0.927453\tmichael_grossi\thelio\t/business/person/company\n0.669014\t0.097436\t0.927444\tconnecticut\tmadison\t/location/location/contains\n0.670175\t0.097949\t0.927055\theinrich_von_pierer\tgermany\t/people/person/nationality\n0.671329\t0.098462\t0.926509\tkwame_anthony_appiah\tprinceton_university\t/business/person/company\n0.672474\t0.098974\t0.926131\tcalifornia\triverside\t/location/location/contains\n0.673611\t0.099487\t0.926088\tbrian_mulroney\tcanada\t/people/person/nationality\n0.674740\t0.100000\t0.925667\ttim_rogers\taustralia\t/people/person/nationality\n0.675862\t0.100513\t0.925204\twestchester_county\tmamaroneck\t/location/location/contains\n0.673540\t0.100513\t0.925190\tcalifornia\ttejon_ranch\t/location/location/contains\n0.674658\t0.101026\t0.925047\tontario\tst._catharines\t/location/location/contains\n0.675768\t0.101538\t0.924211\tangelo_morbelli\titaly\t/people/person/nationality\n0.673469\t0.101538\t0.923590\taziz_pahad\tzimbabwe\t/people/person/nationality\n0.671186\t0.101538\t0.922936\tlaurent_merlin\tportugal\t/people/person/nationality\n0.672297\t0.102051\t0.922899\tgermany\twolfsburg\t/location/location/contains\n0.670034\t0.102051\t0.922686\tpope_benedict_xvi\tiran\t/people/person/nationality\n0.667785\t0.102051\t0.922344\tcanada\twood_buffalo_national_park\t/location/location/contains\n0.668896\t0.102564\t0.921539\tjohn_howard\taustralia\t/people/person/nationality\n0.666667\t0.102564\t0.921435\twilliam_knox\tisrael\t/people/person/nationality\n0.664452\t0.102564\t0.920513\tcalifornia\tsacramento_river\t/location/location/contains\n0.662252\t0.102564\t0.920216\tdavid_m._kennedy\tstanford_university\t/business/person/company\n0.663366\t0.103077\t0.919945\tcalifornia\tmalibu\t/location/location/contains\n0.664474\t0.103590\t0.919059\tnew_york_city\tsalmagundi_club\t/location/location/contains\n0.665574\t0.104103\t0.918715\tgreece\tmount_athos\t/location/location/contains\n0.666667\t0.104615\t0.918633\tgeorges_pompidou\tfrance\t/people/person/nationality\n0.664495\t0.104615\t0.918607\tnew_york_city\tmount_sinai_school_of_medicine\t/location/location/contains\n0.665584\t0.105128\t0.918318\tmolise\tvenafro\t/location/location/contains\n0.666667\t0.105641\t0.917563\thebei\tbaoding\t/location/location/contains\n0.664516\t0.105641\t0.917160\tsan_francisco\tvideoegg\t/location/location/contains\n0.662379\t0.105641\t0.916986\tmaryland\tmontgomery_college\t/location/location/contains\n0.663462\t0.106154\t0.916313\tmaria_de_belém_roseira\tportugal\t/people/person/nationality\n0.664537\t0.106667\t0.915366\tyossi_vardi\tisrael\t/people/person/nationality\n0.662420\t0.106667\t0.915280\tmartin_sorrell\tgoogle\t/business/person/company\n0.660317\t0.106667\t0.914784\tdavid_cheriton\tgoogle\t/business/person/company\n0.658228\t0.106667\t0.914121\tronald_radosh\tspain\t/people/person/nationality\n0.656151\t0.106667\t0.914073\tberlin\teastern_high_school\t/location/location/contains\n0.657233\t0.107179\t0.913532\twestchester_county\tnew_rochelle\t/location/location/contains\n0.655172\t0.107179\t0.912928\tnew_york_city\trondout_reservoir\t/location/location/contains\n0.656250\t0.107692\t0.912906\tgermany\tfriedrichshafen\t/location/location/contains\n0.657321\t0.108205\t0.912778\tflorida\ttamarac\t/location/location/contains\n0.655280\t0.108205\t0.912466\tg._wayne_clough\tgeorgia_institute_of_technology\t/business/person/company\n0.653251\t0.108205\t0.912406\tswitzerland\tarosa\t/location/location/contains\n0.651235\t0.108205\t0.912103\tedmund_daukoru\tnigeria\t/people/person/nationality\n0.652308\t0.108718\t0.911903\tcalifornia\tsan_mateo\t/location/location/contains\n0.653374\t0.109231\t0.911347\tenrique_morente\tspain\t/people/person/nationality\n0.654434\t0.109744\t0.911146\tconnecticut\tnew_haven\t/location/location/contains\n0.652439\t0.109744\t0.910960\tdenis_macshane\tfrance\t/people/person/nationality\n0.650456\t0.109744\t0.910712\tkhosla_ventures\tsun_microsystems\t/business/person/company\n0.648485\t0.109744\t0.910390\tsherwin_rosen\tuniversity_of_chicago\t/business/person/company\n0.646526\t0.109744\t0.910235\taustralia\tmelbourne_aquarium\t/location/location/contains\n0.647590\t0.110256\t0.909981\tindia\taldona\t/location/location/contains\n0.645646\t0.110256\t0.909832\tunion_county\tspringfield\t/location/location/contains\n0.643713\t0.110256\t0.909715\tcalifornia\tmuseum_of_latin_american_art\t/location/location/contains\n0.641791\t0.110256\t0.909558\tnew_hampshire\tmarlborough\t/location/location/contains\n0.642857\t0.110769\t0.909508\toregon\trogue_river\t/location/location/contains\n0.640950\t0.110769\t0.909369\tfred_krupp\tgeneral_electric\t/business/person/company\n0.639053\t0.110769\t0.909242\tflorida\tvenice\t/location/location/contains\n0.637168\t0.110769\t0.909192\tecuador\tcuenca\t/location/location/contains\n0.638235\t0.111282\t0.907942\ttanzania\tmount_kilimanjaro\t/location/location/contains\n0.636364\t0.111282\t0.907613\tthomas_w._lasorda\tchrysler\t/business/person/company\n0.634503\t0.111282\t0.907485\twestchester_county\teastview\t/location/location/contains\n0.632653\t0.111282\t0.907314\tstuart_appleby\taustralia\t/people/person/nationality\n0.633721\t0.111795\t0.906548\tindia\tbenaulim\t/location/location/contains\n0.631884\t0.111795\t0.905579\twisconsin\toswego\t/location/location/contains\n0.630058\t0.111795\t0.905464\talain_j._p._belda\tcitigroup\t/business/person/company\n0.628242\t0.111795\t0.905275\ttoronto\tkensington_gardens\t/location/location/contains\n0.629310\t0.112308\t0.905107\tmaryland\ttowson\t/location/location/contains\n0.630372\t0.112821\t0.904916\tjosé_saramago\tportugal\t/people/person/nationality\n0.628571\t0.112821\t0.904145\tnapoleon\trussia\t/people/person/nationality\n0.626781\t0.112821\t0.904031\twestchester_county\tstaten_island\t/location/location/contains\n0.625000\t0.112821\t0.903694\tcalifornia\tchapman_university\t/location/location/contains\n0.623229\t0.112821\t0.903613\tcolorado\tbreckenridge\t/location/location/contains\n0.624294\t0.113333\t0.903511\taravind_adiga\tindia\t/people/person/nationality\n0.625352\t0.113846\t0.903457\tcaroline_fourest\tfrance\t/people/person/nationality\n0.626404\t0.114359\t0.903072\tmartin_mosebach\tgermany\t/people/person/nationality\n0.627451\t0.114872\t0.902634\tgujarat\tvadodara\t/location/location/contains\n0.625698\t0.114872\t0.902533\tnelson_chamisa\tzimbabwe\t/people/person/nationality\n0.626741\t0.115385\t0.902192\tvermont\tstowe\t/location/location/contains\n0.627778\t0.115897\t0.902184\tgordon_brown\tunited_kingdom\t/people/person/nationality\n0.626039\t0.115897\t0.901592\tjohn_stratton\taustralia\t/people/person/nationality\n0.624309\t0.115897\t0.901139\taustralia\tuniversity_of_sydney\t/location/location/contains\n0.625344\t0.116410\t0.900902\tmonmouth_county\toceanport\t/location/location/contains\n0.623626\t0.116410\t0.900701\tjohn_smedley\tsony\t/business/person/company\n0.624658\t0.116923\t0.898962\tmatt_cutts\tgoogle\t/business/person/company\n0.625683\t0.117436\t0.898682\thaleh_esfandiari\tiran\t/people/person/nationality\n0.623978\t0.117436\t0.898593\tnew_hampshire\tmount_washington\t/location/location/contains\n0.625000\t0.117949\t0.898535\tpaul_kocher\tcryptography_research\t/business/person/company\n0.626016\t0.118462\t0.898508\tgreenwich_village\tnew_york_city\t/location/neighborhood/neighborhood_of\n0.627027\t0.118974\t0.898202\tjohn_logsdon\tgeorge_washington_university\t/business/person/company\n0.628032\t0.119487\t0.897145\talaska\tmount_mckinley\t/location/location/contains\n0.629032\t0.120000\t0.896192\tnew_york_city\tkew_gardens\t/location/location/contains\n0.630027\t0.120513\t0.896167\tviswanathan_anand\tindia\t/people/person/nationality\n0.631016\t0.121026\t0.896036\thanns_eisler\tgermany\t/people/person/nationality\n0.632000\t0.121538\t0.896023\tlorena_ochoa\tmexico\t/people/person/nationality\n0.632979\t0.122051\t0.895875\titaly\tnarni\t/location/location/contains\n0.631300\t0.122051\t0.895806\tflorida\thillsborough\t/location/location/contains\n0.632275\t0.122564\t0.895663\tnew_york_city\tmanhattanville\t/location/location/contains\n0.633245\t0.123077\t0.895501\tconnecticut\tfarmington\t/location/location/contains\n0.634211\t0.123590\t0.895011\tflorida\tjensen_beach\t/location/location/contains\n0.635171\t0.124103\t0.894662\tsouth_africa\tkwazulu-natal\t/location/location/contains\n0.633508\t0.124103\t0.894343\tmike_huckabee\tarkansas\t/people/person/place_lived\n0.631854\t0.124103\t0.894023\twichita\twoodlawn\t/location/location/contains\n0.632812\t0.124615\t0.893443\tcalifornia\tsan_clemente\t/location/location/contains\n0.631169\t0.124615\t0.892974\tkirk_kerkorian\tfrance\t/people/person/nationality\n0.629534\t0.124615\t0.892924\tsaipan\ttinian\t/location/location/contains\n0.630491\t0.125128\t0.892728\taustan_goolsbee\tuniversity_of_chicago\t/business/person/company\n0.628866\t0.125128\t0.892589\trutka_laskier\tpoland\t/people/person/nationality\n0.629820\t0.125641\t0.892294\tjerusalem\tsecond_temple\t/location/location/contains\n0.628205\t0.125641\t0.892178\talireza_jafarzadeh\tiran\t/people/person/nationality\n0.626598\t0.125641\t0.892173\tsriti_jha\tindia\t/people/person/nationality\n0.627551\t0.126154\t0.892043\tconnecticut\tstorrs\t/location/location/contains\n0.628499\t0.126667\t0.891953\tbashar_al-assad\tsyria\t/people/person/nationality\n0.629442\t0.127179\t0.891926\tmaryland\tbethesda\t/location/location/contains\n0.627848\t0.127179\t0.891871\tgwyneth_paltrow\tscotland\t/people/person/nationality\n0.628788\t0.127692\t0.891824\titaly\tsiena\t/location/location/contains\n0.627204\t0.127692\t0.891777\tvirginia\teastern_shore\t/location/location/contains\n0.628141\t0.128205\t0.891408\tjulius_streicher\tgermany\t/people/person/nationality\n0.629073\t0.128718\t0.891096\tkansas\thays\t/location/location/contains\n0.627500\t0.128718\t0.890906\tjames_bond\tindia\t/people/person/nationality\n0.628429\t0.129231\t0.890795\tconnecticut\tgreenwich\t/location/location/contains\n0.629353\t0.129744\t0.890111\tbertie_ahern\tireland\t/people/person/nationality\n0.627792\t0.129744\t0.890074\tgermany\tuniversity_of_bonn\t/location/location/contains\n0.626238\t0.129744\t0.889969\tturkey\tlemnos\t/location/location/contains\n0.627160\t0.130256\t0.889894\tdenmark\tfrederiksberg\t/location/location/contains\n0.628079\t0.130769\t0.889858\tguam\tagana_heights\t/location/location/contains\n0.628993\t0.131282\t0.889551\talex_salmond\tscotland\t/people/person/nationality\n0.629902\t0.131795\t0.889507\tindiana\tfort_wayne\t/location/location/contains\n0.630807\t0.132308\t0.889216\tphilippe_val\tfrance\t/people/person/nationality\n0.629268\t0.132308\t0.889000\tlawrence_lessig\tstanford_university\t/business/person/company\n0.630170\t0.132821\t0.888690\tvirginia\tfairfax_county\t/location/location/contains\n0.628641\t0.132821\t0.888482\thenry_j._leir\tisrael\t/people/person/nationality\n0.629540\t0.133333\t0.888445\tberkeley\tchez_panisse\t/location/location/contains\n0.630435\t0.133846\t0.888163\tarmenia\tgyumri\t/location/location/contains\n0.628916\t0.133846\t0.888041\tseth_goldman\thonest_tea\t/business/person/company\n0.629808\t0.134359\t0.887699\tspain\tmálaga\t/location/location/contains\n0.628297\t0.134359\t0.887376\tsan_francisco\tembarcadero\t/location/location/contains\n0.629187\t0.134872\t0.886913\tjoe_giordano\tpayscale\t/business/person/company\n0.627685\t0.134872\t0.886845\tbuffalo\tnew_york_city\t/location/location/contains\n0.628571\t0.135385\t0.886776\tnorway\thorten\t/location/location/contains\n0.627078\t0.135385\t0.886557\tcalifornia\tsanta_barbara_city_college\t/location/location/contains\n0.627962\t0.135897\t0.886539\tlos_angeles_county\thuntington_park\t/location/location/contains\n0.626478\t0.135897\t0.886365\thunterdon_county\tdelaware_valley_school_district\t/location/location/contains\n0.625000\t0.135897\t0.885598\tamanda_weir\taustralia\t/people/person/nationality\n0.625882\t0.136410\t0.885410\tiowa\tmuscatine\t/location/location/contains\n0.624413\t0.136410\t0.885300\temma_goldman\tcanada\t/people/person/nationality\n0.622951\t0.136410\t0.885189\tcalifornia\thumboldt_state_university\t/location/location/contains\n0.623832\t0.136923\t0.885169\tminnesota\tnorthfield\t/location/location/contains\n0.622378\t0.136923\t0.885111\tconnecticut\twesleyan_university\t/location/location/contains\n0.623256\t0.137436\t0.884562\tcambridge\tharvard_square\t/location/location/contains\n0.624130\t0.137949\t0.884092\tiowa\tottumwa\t/location/location/contains\n0.622685\t0.137949\t0.883776\tcutchogue\told_house\t/location/location/contains\n0.621247\t0.137949\t0.883725\tsvetlana_kuznetsova\trussia\t/people/person/nationality\n0.619816\t0.137949\t0.882647\twisconsin\tberkeley\t/location/location/contains\n0.618391\t0.137949\t0.882610\tsusanne_bier\tindia\t/people/person/nationality\n0.616972\t0.137949\t0.882174\tsam_querrey\tspain\t/people/person/nationality\n0.615561\t0.137949\t0.881718\tkevin_walsh\tgeneral_electric\t/business/person/company\n0.614155\t0.137949\t0.881561\tvenus_williams\tfrance\t/people/person/nationality\n0.612756\t0.137949\t0.881343\tontario\tuniversity_of_windsor\t/location/location/contains\n0.613636\t0.138462\t0.881231\tzahra_eshraghi\tiran\t/people/person/nationality\n0.614512\t0.138974\t0.881160\titaly\tamalfi_coast\t/location/location/contains\n0.613122\t0.138974\t0.880853\tdavid_drummond\tgoogle\t/business/person/company\n0.611738\t0.138974\t0.880425\tsouth_carolina\tgraceland\t/location/location/contains\n0.612613\t0.139487\t0.879943\titaly\tlucca\t/location/location/contains\n0.613483\t0.140000\t0.879783\tcalisto_tanzi\tparmalat\t/business/person/company\n0.612108\t0.140000\t0.879745\tbrian_schweitzer\tmontana\t/people/person/place_lived\n0.610738\t0.140000\t0.879611\tgordon_brown\trussia\t/people/person/nationality\n0.609375\t0.140000\t0.878932\tgoogle\teric_e._schmidt\t/business/person/company\n0.610245\t0.140513\t0.878734\tsuffolk_county\teast_patchogue\t/location/location/contains\n0.611111\t0.141026\t0.878627\tmcalester\toklahoma_state_penitentiary\t/location/location/contains\n0.611973\t0.141538\t0.877977\thermann_göring\tgermany\t/people/person/nationality\n0.612832\t0.142051\t0.877805\tireland\tballintubber\t/location/location/contains\n0.613687\t0.142564\t0.877796\tgermany\twiesbaden\t/location/location/contains\n0.612335\t0.142564\t0.876945\twestchester_county\tpelham\t/location/location/contains\n0.613187\t0.143077\t0.876649\tron_dembo\tzerofootprint\t/business/person/company\n0.614035\t0.143590\t0.876607\tkris_gopalakrishnan\tindia\t/people/person/nationality\n0.614880\t0.144103\t0.876299\tbernadette_chirac\tfrance\t/people/person/nationality\n0.613537\t0.144103\t0.875839\tiowa\tsimpson_college\t/location/location/contains\n0.614379\t0.144615\t0.875557\tvermont\tsouth_burlington\t/location/location/contains\n0.613043\t0.144615\t0.875320\ttelevision\tgoogle\t/business/person/company\n0.613883\t0.145128\t0.875220\tjohn_farnham\taustralia\t/people/person/nationality\n0.614719\t0.145641\t0.875126\tboston\tisabella_stewart_gardner_museum\t/location/location/contains\n0.613391\t0.145641\t0.874748\trussia\tural_mountains\t/location/location/contains\n0.614224\t0.146154\t0.874464\tidaho\tsalmon_river\t/location/location/contains\n0.612903\t0.146154\t0.874391\tcalifornia\tst._thomas\t/location/location/contains\n0.611588\t0.146154\t0.874316\tbaltimore\tt._rowe_price\t/location/location/contains\n0.610278\t0.146154\t0.873912\tcalifornia\tsanta_monica_college\t/location/location/contains\n0.608974\t0.146154\t0.873208\tpaul_kagame\trwanda\t/people/person/nationality\n0.607676\t0.146154\t0.872797\tvirginia\tchatham\t/location/location/contains\n0.608511\t0.146667\t0.872610\tezra_pound\titaly\t/people/person/nationality\n0.609342\t0.147179\t0.872514\tjoyce_wieland\tcanada\t/people/person/nationality\n0.608051\t0.147179\t0.871928\toquossoc\trangeley_lake\t/location/location/contains\n0.608879\t0.147692\t0.871885\tspain\tcádiz\t/location/location/contains\n0.609705\t0.148205\t0.871262\tgermany\thanover\t/location/location/contains\n0.608421\t0.148205\t0.871216\tcarol_baum\tcreative_artists_agency\t/business/person/company\n0.607143\t0.148205\t0.870946\tcarlos_ruiz\tspain\t/people/person/nationality\n0.605870\t0.148205\t0.870833\tmaj-britt_nilsson\tfrance\t/people/person/nationality\n0.606695\t0.148718\t0.870772\tflorida\tdaytona_beach\t/location/location/contains\n0.605428\t0.148718\t0.869869\tvincent_paronnaud\tfrance\t/people/person/nationality\n0.604167\t0.148718\t0.869331\tflorida\tsouth_beach\t/location/location/contains\n0.604990\t0.149231\t0.868992\tcalifornia\tgardena\t/location/location/contains\n0.605809\t0.149744\t0.868840\trussia\tnovokuznetsk\t/location/location/contains\n0.606625\t0.150256\t0.867946\tcalabria\tcrotone\t/location/location/contains\n0.605372\t0.150256\t0.867472\tvermont\tgreen_mountain_college\t/location/location/contains\n0.604124\t0.150256\t0.867075\tgeorge_orwell\tspain\t/people/person/nationality\n0.602881\t0.150256\t0.866926\tasia\tdongguan\t/location/location/contains\n0.601643\t0.150256\t0.866635\tspringfield\tbaptist_bible_college\t/location/location/contains\n0.600410\t0.150256\t0.866474\tkentucky\tjamaica_estates\t/location/location/contains\n0.599182\t0.150256\t0.866306\tprince_edward_island\tpictou\t/location/location/contains\n0.600000\t0.150769\t0.865921\tjawaharlal_nehru\tindia\t/people/person/nationality\n0.598778\t0.150769\t0.865497\tchicago\tlake_michigan\t/location/location/contains\n0.597561\t0.150769\t0.865167\tsanford_i._weill\tcitigroup\t/business/person/company\n0.596349\t0.150769\t0.864896\tray_takeyh\tiran\t/people/person/nationality\n0.595142\t0.150769\t0.864667\ttom_stoppard\trussia\t/people/person/nationality\n0.595960\t0.151282\t0.864352\teugene_melnyk\tcanada\t/people/person/nationality\n0.594758\t0.151282\t0.864327\tcalifornia\tfort_bragg\t/location/location/contains\n0.593561\t0.151282\t0.864325\tlane_merrifield\tclub_penguin\t/business/person/company\n0.592369\t0.151282\t0.864219\tcalifornia\tharlingen\t/location/location/contains\n0.593186\t0.151795\t0.863906\tyelena_isinbayeva\trussia\t/people/person/nationality\n0.594000\t0.152308\t0.863866\tkristian_pless\tdenmark\t/people/person/nationality\n0.592814\t0.152308\t0.863720\tjason_mccartney\tgermany\t/people/person/nationality\n0.593625\t0.152821\t0.863604\tasia\tbishkek\t/location/location/contains\n0.594433\t0.153333\t0.863503\tdonald_e._graham\twashington_post_company\t/business/person/company\n0.595238\t0.153846\t0.863452\tmonmouth_county\tfreehold_township\t/location/location/contains\n0.594059\t0.153846\t0.862990\tmontreal_canadiens\tcanada\t/people/person/nationality\n0.594862\t0.154359\t0.862738\tjean-baptiste_colbert\tfrance\t/people/person/nationality\n0.595661\t0.154872\t0.861836\tandrea_bargnani\titaly\t/people/person/nationality\n0.594488\t0.154872\t0.861763\tisaac_goldberg\tpoland\t/people/person/nationality\n0.595285\t0.155385\t0.861071\tgermany\tvarel\t/location/location/contains\n0.596078\t0.155897\t0.859425\tratan_tata\tindia\t/people/person/nationality\n0.596869\t0.156410\t0.859367\talaska\twasilla\t/location/location/contains\n0.595703\t0.156410\t0.859346\tségolène_royal\tiran\t/people/person/nationality\n0.596491\t0.156923\t0.859310\tsani_abacha\tnigeria\t/people/person/nationality\n0.597276\t0.157436\t0.859264\tfranco_donatoni\titaly\t/people/person/nationality\n0.596117\t0.157436\t0.858968\teurajoki\tfinland\t/people/person/nationality\n0.594961\t0.157436\t0.858714\tnorway\tkvitfjell\t/location/location/contains\n0.595745\t0.157949\t0.858673\tmichael_j._critelli\tpitney_bowes\t/business/person/company\n0.594595\t0.157949\t0.858175\tcalifornia\twilshire_boulevard\t/location/location/contains\n0.593449\t0.157949\t0.857892\tmonmouth_county\twawa\t/location/location/contains\n0.594231\t0.158462\t0.857734\tzimbabwe\tmarondera\t/location/location/contains\n0.593090\t0.158462\t0.857615\talexander_grischuk\trussia\t/people/person/nationality\n0.593870\t0.158974\t0.857581\taroon_purie\tindia\t/people/person/nationality\n0.592734\t0.158974\t0.857473\twindisch\tgermany\t/people/person/nationality\n0.591603\t0.158974\t0.857044\tgreenwich\tbest_&_co.\t/location/location/contains\n0.592381\t0.159487\t0.856863\tmontana\tmissoula\t/location/location/contains\n0.593156\t0.160000\t0.856764\tphilippe_lucas\tfrance\t/people/person/nationality\n0.592030\t0.160000\t0.855694\tjames_bond\tfrance\t/people/person/nationality\n0.590909\t0.160000\t0.855131\toregon\treed_college\t/location/location/contains\n0.591682\t0.160513\t0.855116\tcarl_friedrich_von_weizsäcker\tgermany\t/people/person/nationality\n0.590566\t0.160513\t0.854609\tjack_abramoff\tscotland\t/people/person/nationality\n0.591337\t0.161026\t0.854371\tcalifornia\tcoronado\t/location/location/contains\n0.592105\t0.161538\t0.854301\tmarin_marais\tfrance\t/people/person/nationality\n0.592871\t0.162051\t0.854072\tindia\thampi\t/location/location/contains\n0.593633\t0.162564\t0.853389\tgermany\theilbronn\t/location/location/contains\n0.592523\t0.162564\t0.853126\tviktor_yushchenko\tukraine\t/people/person/nationality\n0.591418\t0.162564\t0.852970\tireland\tcounty_mayo\t/location/location/contains\n0.592179\t0.163077\t0.852953\tandré_boisclair\tcanada\t/people/person/nationality\n0.591078\t0.163077\t0.852640\tabdul_aziz_al-hakim\tiran\t/people/person/nationality\n0.591837\t0.163590\t0.852389\talain_chabat\tfrance\t/people/person/nationality\n0.592593\t0.164103\t0.851902\tjosef_ackermann\tdeutsche_bank\t/business/person/company\n0.591497\t0.164103\t0.851410\tcolorado\tdenison\t/location/location/contains\n0.592251\t0.164615\t0.851349\tmadaí_pérez\tmexico\t/people/person/nationality\n0.591160\t0.164615\t0.851205\tparis\trodin_museum\t/location/location/contains\n0.590074\t0.164615\t0.851040\tsan_francisco\tpeabody_school\t/location/location/contains\n0.588991\t0.164615\t0.850781\tmarlborough\tcytyc\t/location/location/contains\n0.587912\t0.164615\t0.849717\titaly\tuniversity_of_turin\t/location/location/contains\n0.588665\t0.165128\t0.849686\tpaul-henri_mathieu\tfrance\t/people/person/nationality\n0.587591\t0.165128\t0.849629\tlyndon_b._johnson\toklahoma\t/people/person/place_lived\n0.588342\t0.165641\t0.849128\tshanghai\ttongji_university\t/location/location/contains\n0.589091\t0.166154\t0.848939\tdavid_ben-gurion\tisrael\t/people/person/nationality\n0.589837\t0.166667\t0.848030\tolivier_assayas\tfrance\t/people/person/nationality\n0.588768\t0.166667\t0.847454\tlarry_ellison\toracle\t/business/person/company\n0.587703\t0.166667\t0.846737\ttechnorati\titaly\t/people/person/nationality\n0.586643\t0.166667\t0.846447\tjim_mccrery\tlouisiana\t/people/person/place_lived\n0.585586\t0.166667\t0.846079\tbanco_bilbao_vizcaya_argentaria\tspain\t/people/person/nationality\n0.584532\t0.166667\t0.845873\tboston\ttufts_university\t/location/location/contains\n0.583483\t0.166667\t0.845594\tcalifornia\tvang\t/location/location/contains\n0.582437\t0.166667\t0.845535\traleb_majadele\tisrael\t/people/person/nationality\n0.581395\t0.166667\t0.844753\tsri_lanka\tmalabe\t/location/location/contains\n0.582143\t0.167179\t0.844572\terich_ludendorff\tgermany\t/people/person/nationality\n0.582888\t0.167692\t0.844567\twisconsin\tlake_geneva\t/location/location/contains\n0.581851\t0.167692\t0.844446\tinternational_speedway_corporation\tfrance\t/people/person/nationality\n0.580817\t0.167692\t0.844285\tjacksonville\tfort_george_island\t/location/location/contains\n0.581560\t0.168205\t0.843688\tbrett_keller\tpriceline.com\t/business/person/company\n0.580531\t0.168205\t0.842887\tkentucky\tcherokee\t/location/location/contains\n0.581272\t0.168718\t0.842832\tspain\talicante\t/location/location/contains\n0.582011\t0.169231\t0.842719\tvenice\tpeggy_guggenheim_collection\t/location/location/contains\n0.580986\t0.169231\t0.842250\tunicredit\titaly\t/people/person/nationality\n0.581722\t0.169744\t0.841717\tvictoria_azarenka\tbelarus\t/people/person/nationality\n0.580702\t0.169744\t0.841536\tmarco_cappato\titaly\t/people/person/nationality\n0.581436\t0.170256\t0.841347\tolivier_dahan\tfrance\t/people/person/nationality\n0.582168\t0.170769\t0.841090\tparis\tgare_du_nord\t/location/location/contains\n0.581152\t0.170769\t0.840691\tmotown_records\tfrance\t/people/person/nationality\n0.580139\t0.170769\t0.840596\tjhoom_barabar_jhoom\tfrance\t/people/person/nationality\n0.579130\t0.170769\t0.839785\tgiorgio_moroder\tnorway\t/people/person/nationality\n0.578125\t0.170769\t0.839443\tconnecticut\tcornwall\t/location/location/contains\n0.577123\t0.170769\t0.839337\twestchester_county\tblue_hill\t/location/location/contains\n0.576125\t0.170769\t0.839221\tallen_ginsberg\tindia\t/people/person/nationality\n0.575130\t0.170769\t0.839088\twest_virginia\tblenko_glass_company\t/location/location/contains\n0.575862\t0.171282\t0.839031\tguerrero\tacapulco\t/location/location/contains\n0.576592\t0.171795\t0.839002\traymond_j._mcguire\tcitigroup\t/business/person/company\n0.575601\t0.171795\t0.838690\tgary_stevens\tfrance\t/people/person/nationality\n0.574614\t0.171795\t0.838623\tgermany\tshetland\t/location/location/contains\n0.573630\t0.171795\t0.838500\twilliam_s._paley\tcbs\t/business/person/company\n0.572650\t0.171795\t0.838378\tprague\tbarrandov_studios\t/location/location/contains\n0.571672\t0.171795\t0.838110\tcalifornia\ttucson_international_airport\t/location/location/contains\n0.570698\t0.171795\t0.837905\tflorida\ttaylor\t/location/location/contains\n0.571429\t0.172308\t0.837893\tcalifornia\tsan_jose\t/location/location/contains\n0.570458\t0.172308\t0.837709\tpeter_morgan\tscotland\t/people/person/nationality\n0.569492\t0.172308\t0.837343\tcalifornia\tsalinas_valley\t/location/location/contains\n0.568528\t0.172308\t0.837302\tidaho\tred_river\t/location/location/contains\n0.569257\t0.172821\t0.836418\tgermany\theidelberg\t/location/location/contains\n0.569983\t0.173333\t0.836353\tindiana\tgnaw_bone\t/location/location/contains\n0.570707\t0.173846\t0.836305\trenaud_donnedieu_de_vabres\tfrance\t/people/person/nationality\n0.571429\t0.174359\t0.836137\tturkey\tbodrum\t/location/location/contains\n0.572148\t0.174872\t0.836070\tgermany\tfreiburg\t/location/location/contains\n0.571189\t0.174872\t0.836061\tpeter_pace\tiran\t/people/person/nationality\n0.571906\t0.175385\t0.836019\tatlanta\tsweet_auburn\t/location/location/contains\n0.572621\t0.175897\t0.835868\tcyprus\tlarnaca\t/location/location/contains\n0.571667\t0.175897\t0.835443\tpeter_bragdon\tcolumbia_sportswear\t/business/person/company\n0.572379\t0.176410\t0.835356\tcolorado\tboulder\t/location/location/contains\n0.571429\t0.176410\t0.835314\tvittorio_storaro\tspain\t/people/person/nationality\n0.570481\t0.176410\t0.834601\tsam_querrey\tfrance\t/people/person/nationality\n0.569536\t0.176410\t0.834413\tspain\tchipiona\t/location/location/contains\n0.568595\t0.176410\t0.834327\tedward_fox\tfrance\t/people/person/nationality\n0.569307\t0.176923\t0.834114\tpeter_munk\tbarrick_gold\t/business/person/company\n0.568369\t0.176923\t0.833768\tbernhard_langer\tgermany\t/people/person/nationality\n0.567434\t0.176923\t0.833699\tnashville\tbelle_meade\t/location/location/contains\n0.568144\t0.177436\t0.833684\tkentucky\tchurchill_downs\t/location/location/contains\n0.567213\t0.177436\t0.833588\tswitzerland\tvevey\t/location/location/contains\n0.566285\t0.177436\t0.833321\toklahoma_city\talfred_p._murrah_federal_building\t/location/location/contains\n0.566993\t0.177949\t0.833237\tboston\tunion_oyster_house\t/location/location/contains\n0.567700\t0.178462\t0.833098\twisconsin\tmadison\t/location/location/contains\n0.566775\t0.178462\t0.833068\tyoutube\tchad_hurley\t/business/person/company\n0.565854\t0.178462\t0.832697\tgiulio_andreotti\titaly\t/people/person/nationality\n0.564935\t0.178462\t0.832496\tstelco\tcanada\t/people/person/nationality\n0.565640\t0.178974\t0.832496\ttunisia\tnabeul\t/location/location/contains\n0.564725\t0.178974\t0.832478\tmads_mikkelsen\tindia\t/people/person/nationality\n0.563813\t0.178974\t0.832368\talexander_stille\tfrance\t/people/person/nationality\n0.562903\t0.178974\t0.831774\tsharon_zukin\tbrooklyn_college\t/business/person/company\n0.561997\t0.178974\t0.831339\trussia\tsheepshead_bay\t/location/location/contains\n0.561093\t0.178974\t0.831321\tsmilebox\tgoogle\t/business/person/company\n0.560193\t0.178974\t0.830690\tjonathan_glazer\tscotland\t/people/person/nationality\n0.559295\t0.178974\t0.830529\tbobby_deol\tfrance\t/people/person/nationality\n0.558400\t0.178974\t0.830467\tasia\teastern_washington\t/location/location/contains\n0.559105\t0.179487\t0.830418\tnoam_sheriff\tisrael\t/people/person/nationality\n0.558214\t0.179487\t0.830071\tnew_york_city\tsouth_bronx\t/location/location/contains\n0.558917\t0.180000\t0.829929\tcolorado\tvail\t/location/location/contains\n0.558029\t0.180000\t0.829737\tshirley_yeung\tpccw\t/business/person/company\n0.557143\t0.180000\t0.829570\tnorth_dakota\tkeene\t/location/location/contains\n0.556260\t0.180000\t0.829554\twashington\twtop\t/location/location/contains\n0.555380\t0.180000\t0.829149\tportland\tbayside\t/location/location/contains\n0.556082\t0.180513\t0.828485\tpoland\tjaworzno\t/location/location/contains\n0.555205\t0.180513\t0.828445\taustralia\tmonash_university\t/location/location/contains\n0.554331\t0.180513\t0.828349\tnew_york_city\tfire_island\t/location/location/contains\n0.553459\t0.180513\t0.828308\taustralia\tport_melbourne\t/location/location/contains\n0.554160\t0.181026\t0.828252\tiran\tnatanz\t/location/location/contains\n0.553292\t0.181026\t0.828216\tmichael_bar-zohar\tisrael\t/people/person/nationality\n0.553991\t0.181538\t0.828089\tpaul_klee\tgermany\t/people/person/nationality\n0.554688\t0.182051\t0.827681\tnew_haven\tsouthern_connecticut_state_university\t/location/location/contains\n0.553822\t0.182051\t0.827623\tcosta_rica\tsan_jose\t/location/location/contains\n0.554517\t0.182564\t0.827361\tarturo_toscanini\titaly\t/people/person/nationality\n0.553655\t0.182564\t0.827227\tbanquo\titaly\t/people/person/nationality\n0.552795\t0.182564\t0.826570\tthomas_cech\thoward_hughes_medical_institute\t/business/person/company\n0.551938\t0.182564\t0.826525\taustralia\tpaula_wriedt\t/location/location/contains\n0.551084\t0.182564\t0.826393\tmary_e._minnick\tmuhtar_kent\t/business/person/company\n0.550232\t0.182564\t0.826173\tsylvester_stallone\taustralia\t/people/person/nationality\n0.549383\t0.182564\t0.825953\tgururaj_deshpande\tsycamore_networks\t/business/person/company\n0.548536\t0.182564\t0.825812\tvermont\tberkshire_county\t/location/location/contains\n0.549231\t0.183077\t0.825571\tsteve_newcomb\tpowerset\t/business/person/company\n0.548387\t0.183077\t0.825517\talaska\tbellingham\t/location/location/contains\n0.547546\t0.183077\t0.825099\tcarol_shea-porter\tnew_hampshire\t/people/person/place_lived\n0.548239\t0.183590\t0.824758\tidaho\tweiser\t/location/location/contains\n0.548930\t0.184103\t0.824697\tdavid_kenny\tdigitas\t/business/person/company\n0.549618\t0.184615\t0.824670\twole_soyinka\tnigeria\t/people/person/nationality\n0.550305\t0.185128\t0.824599\tnorth_beach\tsan_francisco\t/location/neighborhood/neighborhood_of\n0.549467\t0.185128\t0.824570\toakland\tbeth_eden_baptist_church\t/location/location/contains\n0.548632\t0.185128\t0.824536\tnuhu_ribadu\tnigeria\t/people/person/nationality\n0.547800\t0.185128\t0.824486\tconnecticut\thartford_civic_center\t/location/location/contains\n0.546970\t0.185128\t0.824012\tjohn_caplan\tford_models\t/business/person/company\n0.547655\t0.185641\t0.823807\tindia\tauroville\t/location/location/contains\n0.546828\t0.185641\t0.823736\tsyracuse\toswego\t/location/location/contains\n0.547511\t0.186154\t0.823485\tmexico\tpuerto_peñasco\t/location/location/contains\n0.546687\t0.186154\t0.823077\taustralia\tuniversity_of_adelaide\t/location/location/contains\n0.545865\t0.186154\t0.823075\tcalifornia\tnissin\t/location/location/contains\n0.545045\t0.186154\t0.822868\tvirginia\tmartinsville_speedway\t/location/location/contains\n0.545727\t0.186667\t0.822459\tatlanta\tgeorgia_aquarium\t/location/location/contains\n0.546407\t0.187179\t0.822235\tmaryland\tbaltimore\t/location/location/contains\n0.545590\t0.187179\t0.821977\tarvo_pärt\tdenmark\t/people/person/nationality\n0.546269\t0.187692\t0.821722\thelen_fisher\trutgers_university\t/business/person/company\n0.546945\t0.188205\t0.821302\tnew_york_city\tstaten_island\t/location/location/contains\n0.546131\t0.188205\t0.821103\tserbia\tmuslim\t/location/location/contains\n0.545319\t0.188205\t0.820584\tnina_tassler\tcbs\t/business/person/company\n0.544510\t0.188205\t0.820459\tmississippi\twillingboro\t/location/location/contains\n0.543704\t0.188205\t0.819995\tjay_rosen\tnew_york_university\t/business/person/company\n0.542899\t0.188205\t0.819781\tanthony_powell\tscotland\t/people/person/nationality\n0.542097\t0.188205\t0.819726\tkevin_lyons\trutgers_university\t/business/person/company\n0.541298\t0.188205\t0.819660\tbernard_kerik\tunited_states_of_america\t/people/person/nationality\n0.540501\t0.188205\t0.819388\tireland\tdonegal\t/location/location/contains\n0.541176\t0.188718\t0.819319\tnew_hampshire\tcannon_mountain\t/location/location/contains\n0.540382\t0.188718\t0.818400\telias_murr\tlebanon\t/people/person/nationality\n0.539589\t0.188718\t0.818321\terik_breukink\titaly\t/people/person/nationality\n0.538799\t0.188718\t0.817697\tcuba\twest_new_york\t/location/location/contains\n0.538012\t0.188718\t0.817270\tmarwan_barghouti\tisrael\t/people/person/nationality\n0.537226\t0.188718\t0.817246\tmayawati\tindia\t/people/person/nationality\n0.537901\t0.189231\t0.815972\tjennifer_botterill\tcanada\t/people/person/nationality\n0.537118\t0.189231\t0.815800\tdan_ariely\tmassachusetts_institute_of_technology\t/business/person/company\n0.537791\t0.189744\t0.815670\tgermany\trostock\t/location/location/contains\n0.538462\t0.190256\t0.815470\tderek_v._smith\tchoicepoint\t/business/person/company\n0.539130\t0.190769\t0.815368\tgermany\tkarlsruhe\t/location/location/contains\n0.539797\t0.191282\t0.815089\tcharles_fefferman\tprinceton_university\t/business/person/company\n0.539017\t0.191282\t0.814654\tswitzerland\tlucerne\t/location/location/contains\n0.539683\t0.191795\t0.814574\tseoul\tkorea_university\t/location/location/contains\n0.538905\t0.191795\t0.814328\twisconsin\tnew_hampshire\t/location/location/contains\n0.538129\t0.191795\t0.814205\tdavid_rieff\tfrance\t/people/person/nationality\n0.537356\t0.191795\t0.814016\tconnecticut\tbrattleboro\t/location/location/contains\n0.536585\t0.191795\t0.813731\tcalifornia\twest_valley_college\t/location/location/contains\n0.535817\t0.191795\t0.813369\tcharles_oman\tmassachusetts_institute_of_technology\t/business/person/company\n0.535050\t0.191795\t0.813031\tbertone\titaly\t/people/person/nationality\n0.534286\t0.191795\t0.810841\tedward_steichen\tfrance\t/people/person/nationality\n0.533524\t0.191795\t0.810289\trudi_völler\titaly\t/people/person/nationality\n0.534188\t0.192308\t0.810226\tvenice\tfondazione_querini_stampalia\t/location/location/contains\n0.534851\t0.192821\t0.810188\twatervliet\twatervliet_arsenal\t/location/location/contains\n0.534091\t0.192821\t0.809941\tcanada\tpearce\t/location/location/contains\n0.533333\t0.192821\t0.809513\ttoronto\ternst_&_young\t/location/location/contains\n0.533994\t0.193333\t0.809403\tted_sarandos\tnetflix\t/business/person/company\n0.533239\t0.193333\t0.808107\tabhishek_bachchan\tfrance\t/people/person/nationality\n0.533898\t0.193846\t0.807946\twestchester_county\tport_chester\t/location/location/contains\n0.534556\t0.194359\t0.807910\tvincent_pastore\titaly\t/people/person/nationality\n0.533803\t0.194359\t0.807870\tcalifornia\tpiedmont\t/location/location/contains\n0.534459\t0.194872\t0.807249\tarcata\thumboldt_state_university\t/location/location/contains\n0.533708\t0.194872\t0.807064\trosa_delauro\tconnecticut\t/people/person/place_lived\n0.534362\t0.195385\t0.806815\trockland_county\tblauvelt\t/location/location/contains\n0.533613\t0.195385\t0.806712\twashington\tadams_morgan\t/location/location/contains\n0.534266\t0.195897\t0.806367\talexander_downer\taustralia\t/people/person/nationality\n0.534916\t0.196410\t0.806144\tcalifornia\tlong_beach\t/location/location/contains\n0.535565\t0.196923\t0.805249\tsuffolk_county\tfire_island\t/location/location/contains\n0.534819\t0.196923\t0.805050\takio_morita\tsony\t/business/person/company\n0.534075\t0.196923\t0.804928\tcalifornia\taustralia\t/location/location/contains\n0.533333\t0.196923\t0.804534\tvitaly_i._churkin\trussia\t/people/person/nationality\n0.532594\t0.196923\t0.804499\tpaterson\teast_orange\t/location/location/contains\n0.533241\t0.197436\t0.804238\tendre_szervanszky\thungary\t/people/person/nationality\n0.532503\t0.197436\t0.804207\tcalifornia\tsan_diego_museum_of_art\t/location/location/contains\n0.533149\t0.197949\t0.804109\tcalifornia\tmonterey_bay\t/location/location/contains\n0.532414\t0.197949\t0.803564\tmaryland\tchicago\t/location/location/contains\n0.533058\t0.198462\t0.803342\tguanajuato\tmexico\t/location/administrative_division/country\n0.532325\t0.198462\t0.803179\tmartin_peretz\tisrael\t/people/person/nationality\n0.531593\t0.198462\t0.802806\tconnecticut\tlakeville\t/location/location/contains\n0.530864\t0.198462\t0.802780\tbaja_california\tcortez\t/location/location/contains\n0.530137\t0.198462\t0.802210\tyasser_arafat\tfrance\t/people/person/nationality\n0.529412\t0.198462\t0.801770\titaly\tuniversity_of_plymouth\t/location/location/contains\n0.530055\t0.198974\t0.801562\tconnecticut\thamden\t/location/location/contains\n0.529332\t0.198974\t0.801350\tkentucky\tlake_michigan\t/location/location/contains\n0.528610\t0.198974\t0.801303\tlee_h._hamilton\tiran\t/people/person/nationality\n0.527891\t0.198974\t0.801279\th._lee_scott_jr.\tthe_new_york_times\t/business/person/company\n0.528533\t0.199487\t0.800925\tgordon_m._bethune\tcontinental_airlines\t/business/person/company\n0.527815\t0.199487\t0.800510\tsan_fernando_valley\tstudio_city\t/location/location/contains\n0.528455\t0.200000\t0.800181\tgermany\tbad_soden\t/location/location/contains\n0.527740\t0.200000\t0.800157\tperformics\tgoogle\t/business/person/company\n0.528378\t0.200513\t0.799793\tbaltimore\twalters_art_museum\t/location/location/contains\n0.527665\t0.200513\t0.799282\tacademy_of_national_economy\trussia\t/people/person/nationality\n0.526954\t0.200513\t0.799181\ttom_cole\toklahoma\t/people/person/place_lived\n0.527591\t0.201026\t0.799076\tcalifornia\tvallejo\t/location/location/contains\n0.526882\t0.201026\t0.798987\tslovakia\tkosice\t/location/location/contains\n0.527517\t0.201538\t0.798635\tstaten_island\trichmond_valley\t/location/location/contains\n0.528150\t0.202051\t0.798604\ttoronto\tmassey_hall\t/location/location/contains\n0.527443\t0.202051\t0.797856\tmarco_andretti\tspain\t/people/person/nationality\n0.526738\t0.202051\t0.797585\tmanthia_diawara\tnew_york_university\t/business/person/company\n0.526035\t0.202051\t0.796487\tmelbourne_beach\tarchie_carr_national_wildlife_refuge\t/location/location/contains\n0.525333\t0.202051\t0.796465\tchicago\tsears_tower\t/location/location/contains\n0.525965\t0.202564\t0.795610\toakland\tsamuel_merritt_college\t/location/location/contains\n0.525266\t0.202564\t0.794721\toregon\tuniversity_of_portland\t/location/location/contains\n0.524568\t0.202564\t0.793731\trussia\talexander_kerensky\t/location/location/contains\n0.523873\t0.202564\t0.793555\ttoomas_hendrik_ilves\trussia\t/people/person/nationality\n0.524503\t0.203077\t0.793197\tking_county\tbellevue\t/location/location/contains\n0.525132\t0.203590\t0.793039\tkirk_fordice\tmississippi\t/people/person/place_lived\n0.524439\t0.203590\t0.792469\tmark_wallinger\tisrael\t/people/person/nationality\n0.525066\t0.204103\t0.791738\tcolorado\tfort_carson\t/location/location/contains\n0.524374\t0.204103\t0.791581\tjhoom_barabar_jhoom\tindia\t/people/person/nationality\n0.523684\t0.204103\t0.791376\tboston\tsuffolk_university\t/location/location/contains\n0.522996\t0.204103\t0.791277\tlos_angeles_county\tcharles_r._drew_university_of_medicine_and_science\t/location/location/contains\n0.523622\t0.204615\t0.790921\tjeffrey_a._citron\tvonage\t/business/person/company\n0.522936\t0.204615\t0.790901\titaly\tgardaland\t/location/location/contains\n0.522251\t0.204615\t0.790296\tgeorge_godwin\tzimbabwe\t/people/person/nationality\n0.521569\t0.204615\t0.789840\tjason_strudwick\tswitzerland\t/people/person/nationality\n0.520888\t0.204615\t0.789248\tmexico_city\ttabasco\t/location/location/contains\n0.520209\t0.204615\t0.788276\tnew_york_city\tst._george\t/location/location/contains\n0.520833\t0.205128\t0.788067\tvermont\tjay_peak\t/location/location/contains\n0.520156\t0.205128\t0.787396\trussia\ttallinn\t/location/location/contains\n0.519481\t0.205128\t0.787260\tlangston_hughes\tspain\t/people/person/nationality\n0.518807\t0.205128\t0.786977\tfairfield_county\tnew_haven_county\t/location/location/contains\n0.518135\t0.205128\t0.786870\tgary_tinterow\tfrance\t/people/person/nationality\n0.517464\t0.205128\t0.786681\tmariana_islands\tsaipan\t/location/location/contains\n0.518088\t0.205641\t0.786678\tmexico\ttulum\t/location/location/contains\n0.517419\t0.205641\t0.786626\tthorpe\taustralia\t/people/person/nationality\n0.518041\t0.206154\t0.786058\tdelaware\tocean_view\t/location/location/contains\n0.517375\t0.206154\t0.785899\testrella_morente\tspain\t/people/person/nationality\n0.516710\t0.206154\t0.785869\trhode_island\tjohnson_&_wales_university\t/location/location/contains\n0.516046\t0.206154\t0.785701\thcl_technologies\tindia\t/people/person/nationality\n0.515385\t0.206154\t0.785557\tulster_county\tnew_york_city\t/location/location/contains\n0.514725\t0.206154\t0.785062\tstaten_island\tcharleston\t/location/location/contains\n0.515345\t0.206667\t0.784595\trussia\ttomsk\t/location/location/contains\n0.515964\t0.207179\t0.784395\tnancy_huston\tcanada\t/people/person/nationality\n0.516582\t0.207692\t0.784188\tnigeria\tuyo\t/location/location/contains\n0.515924\t0.207692\t0.783796\tf._landa_jocano\tuniversity_of_chicago\t/business/person/company\n0.515267\t0.207692\t0.783439\titaly\tsan_remo\t/location/location/contains\n0.515883\t0.208205\t0.782972\titaly\tumbria\t/location/location/contains\n0.516497\t0.208718\t0.782767\tgermany\tjena\t/location/location/contains\n0.515843\t0.208718\t0.782466\tminnesota\tlarchmont\t/location/location/contains\n0.515190\t0.208718\t0.782380\tmichoacán\tguanajuato\t/location/location/contains\n0.514539\t0.208718\t0.781985\tmike_huckabee\tiowa\t/people/person/place_lived\n0.513889\t0.208718\t0.781810\tchris_van_hollen\tmaryland\t/people/person/place_lived\n0.514502\t0.209231\t0.781619\talaska\tketchikan\t/location/location/contains\n0.513854\t0.209231\t0.781163\tjalisco\tnational_autonomous_university_of_mexico\t/location/location/contains\n0.514465\t0.209744\t0.781089\tmaryland\tcarroll_county\t/location/location/contains\n0.513819\t0.209744\t0.780176\tsallai_meridor\tisrael\t/people/person/nationality\n0.514429\t0.210256\t0.779992\tnorth_adams\tmassachusetts_museum_of_contemporary_art\t/location/location/contains\n0.515038\t0.210769\t0.779629\thugo_sánchez\tmexico\t/people/person/nationality\n0.515645\t0.211282\t0.779572\tgene_taylor\tmississippi\t/people/person/place_lived\n0.515000\t0.211282\t0.779384\tflorida\ttejon_ranch\t/location/location/contains\n0.514357\t0.211282\t0.779292\tgeorge_h._w._bush\tgermany\t/people/person/nationality\n0.514963\t0.211795\t0.778870\titaly\tivrea\t/location/location/contains\n0.514321\t0.211795\t0.778552\trobert_lutz\tgeneral_motors\t/business/person/company\n0.514925\t0.212308\t0.778531\tkenneth_whyte\tcanada\t/people/person/nationality\n0.514286\t0.212308\t0.778397\tflorida\tuniversity_of_miami\t/location/location/contains\n0.513648\t0.212308\t0.777576\tmontecatini\titaly\t/people/person/nationality\n0.513011\t0.212308\t0.777137\tanton_rubinstein\tgermany\t/people/person/nationality\n0.513614\t0.212821\t0.777060\tmichael_moritz\tsequoia_capital\t/business/person/company\n0.512979\t0.212821\t0.776006\ttom_feeney\tflorida\t/people/person/place_lived\n0.513580\t0.213333\t0.775512\tscottsdale\ttaliesin_west\t/location/location/contains\n0.512947\t0.213333\t0.775424\tspain\taranjuez\t/location/location/contains\n0.512315\t0.213333\t0.775234\tcanada\tuniversity_of_waterloo\t/location/location/contains\n0.511685\t0.213333\t0.775004\tsouth_asia\tthe_new_york_times\t/location/location/contains\n0.511057\t0.213333\t0.774759\tontario\twoodstock\t/location/location/contains\n0.511656\t0.213846\t0.774654\tdan_halutz\tisrael\t/people/person/nationality\n0.511029\t0.213846\t0.774521\tulyanovsk\trussia\t/people/person/nationality\n0.511628\t0.214359\t0.774413\taustralia\tnational_gallery_of_victoria\t/location/location/contains\n0.511002\t0.214359\t0.774330\tsean_varah\tsony\t/business/person/company\n0.511600\t0.214872\t0.774220\titaly\tpisciotta\t/location/location/contains\n0.510976\t0.214872\t0.773927\tcalifornia\thouston\t/location/location/contains\n0.511571\t0.215385\t0.773160\tchris_guccione\taustralia\t/people/person/nationality\n0.510949\t0.215385\t0.772985\tdenmark\tuniversity_of_copenhagen\t/location/location/contains\n0.511543\t0.215897\t0.772748\trussia\tarkhangelsk\t/location/location/contains\n0.512136\t0.216410\t0.772584\tbrian_nellis\toklahoma\t/people/person/place_lived\n0.512727\t0.216923\t0.772289\traoul_bova\titaly\t/people/person/nationality\n0.512107\t0.216923\t0.772132\tcalifornia\tleo_carrillo\t/location/location/contains\n0.512696\t0.217436\t0.771528\tricardo_bofill\tspain\t/people/person/nationality\n0.512077\t0.217436\t0.771342\tnashville\tfisk_university\t/location/location/contains\n0.511460\t0.217436\t0.770781\tprince_william_county\tpotomac_mills\t/location/location/contains\n0.512048\t0.217949\t0.770750\tasia\tmacau\t/location/location/contains\n0.511432\t0.217949\t0.770411\tken_kutaragi\tsony\t/business/person/company\n0.510817\t0.217949\t0.770198\tspain\tpeggy_guggenheim_collection\t/location/location/contains\n0.511405\t0.218462\t0.770031\tulrich_mühe\tgermany\t/people/person/nationality\n0.510791\t0.218462\t0.769807\tbrendan_shanahan\tcanada\t/people/person/nationality\n0.511377\t0.218974\t0.769639\tlos_angeles_county\tmalibu\t/location/location/contains\n0.511962\t0.219487\t0.769072\tthailand\tchiang_mai\t/location/location/contains\n0.512545\t0.220000\t0.768855\tberlin\tmitte\t/location/location/contains\n0.513126\t0.220513\t0.767005\tarkansas\tarkadelphia\t/location/location/contains\n0.512515\t0.220513\t0.766211\trochester\tgeorge_eastman_house\t/location/location/contains\n0.511905\t0.220513\t0.766049\tcharles_b._rangel\tmontana\t/people/person/place_lived\n0.511296\t0.220513\t0.766016\tmike_huckabee\twisconsin\t/people/person/place_lived\n0.511876\t0.221026\t0.765886\tsarika\tindia\t/people/person/nationality\n0.512456\t0.221538\t0.765787\tjosé_luis_rodríguez_zapatero\tspain\t/people/person/nationality\n0.511848\t0.221538\t0.765450\tportugal\tnational_museum_of_african_art\t/location/location/contains\n0.511243\t0.221538\t0.765351\tnizhny_novgorod\trussia\t/location/administrative_division/country\n0.510638\t0.221538\t0.764831\tenrique_peña_nieto\tmexico\t/people/person/nationality\n0.511216\t0.222051\t0.764758\tsuffolk_county\tyaphank\t/location/location/contains\n0.511792\t0.222564\t0.764709\tindia\tmera\t/location/location/contains\n0.511190\t0.222564\t0.764634\tjames_bond\tpoland\t/people/person/nationality\n0.510588\t0.222564\t0.764329\tcalifornia\tculinary_institute_of_america\t/location/location/contains\n0.509988\t0.222564\t0.763909\tcalifornia\tlivingston\t/location/location/contains\n0.509390\t0.222564\t0.763695\titaly\tpalazzo_strozzi\t/location/location/contains\n0.509965\t0.223077\t0.763561\tontario\tbrantford\t/location/location/contains\n0.509368\t0.223077\t0.763532\tmenton\taristide_briand\t/location/location/contains\n0.509942\t0.223590\t0.763047\titaly\tfiesole\t/location/location/contains\n0.509346\t0.223590\t0.762507\tbangkok\tbaker_&_mckenzie\t/location/location/contains\n0.509918\t0.224103\t0.762169\tisrael\tra'anana\t/location/location/contains\n0.509324\t0.224103\t0.761732\tnolbert_kunonga\tzimbabwe\t/people/person/nationality\n0.508731\t0.224103\t0.761483\tnew_brunswick\trobert_wood_johnson_university_hospital\t/location/location/contains\n0.508140\t0.224103\t0.760868\tnorthern_ireland\tlisburn\t/location/location/contains\n0.508711\t0.224615\t0.760814\tmohammad_soleimani\tiran\t/people/person/nationality\n0.509281\t0.225128\t0.759678\tjeanne_moreau\tfrance\t/people/person/nationality\n0.508691\t0.225128\t0.758873\tinteroil\taustralia\t/people/person/nationality\n0.509259\t0.225641\t0.758284\trussia\tulyanovsk\t/location/location/contains\n0.508671\t0.225641\t0.758205\tchicago\twinston_&_strawn\t/location/location/contains\n0.508083\t0.225641\t0.757767\tontario\tuniversity_of_waterloo\t/location/location/contains\n0.508651\t0.226154\t0.757459\tomaha\tcreighton_university\t/location/location/contains\n0.508065\t0.226154\t0.757361\tasia\tjakarta\t/location/location/contains\n0.507480\t0.226154\t0.757081\tjudith_resnik\tyale_law_school\t/business/person/company\n0.506897\t0.226154\t0.757068\tyoutube\tgoogle\t/business/person/company\n0.507463\t0.226667\t0.756512\tflorida\tbroward_county\t/location/location/contains\n0.508028\t0.227179\t0.756466\tj._b._van_hollen\twisconsin\t/people/person/place_lived\n0.507446\t0.227179\t0.756361\tdaytona_beach\tinternational_speedway_corporation\t/location/location/contains\n0.508009\t0.227692\t0.755291\taustralia\tadelaide\t/location/location/contains\n0.507429\t0.227692\t0.755262\tvirginia\tlourdes\t/location/location/contains\n0.506849\t0.227692\t0.755179\twest_virginia\tmississippi_state\t/location/location/contains\n0.506271\t0.227692\t0.754884\tflavia_colgan\titaly\t/people/person/nationality\n0.505695\t0.227692\t0.754647\tonondaga\tsyracuse\t/location/location/contains\n0.505119\t0.227692\t0.754611\tflavia_rigamonti\tswitzerland\t/people/person/nationality\n0.504545\t0.227692\t0.754549\tconnecticut\tberkshire_county\t/location/location/contains\n0.503973\t0.227692\t0.753779\tgiuliano_amato\titaly\t/people/person/nationality\n0.504535\t0.228205\t0.753677\tumbria\titaly\t/location/administrative_division/country\n0.503964\t0.228205\t0.753529\tthe_salt_lake_tribune\tgoogle\t/business/person/company\n0.503394\t0.228205\t0.752993\tnormandy\tlanquetot\t/location/location/contains\n0.502825\t0.228205\t0.751243\tvicente_amigo\tspain\t/people/person/nationality\n0.502257\t0.228205\t0.751110\tgordon_johndroe\tunited_kingdom\t/people/person/nationality\n0.501691\t0.228205\t0.750747\twestchester_county\tkykuit\t/location/location/contains\n0.501126\t0.228205\t0.750555\twallace_stegner\tstanford_university\t/business/person/company\n0.500562\t0.228205\t0.750157\tcalifornia\tunited_states_court_of_appeals_for_the_district_of_columbia_circuit\t/location/location/contains\n0.501124\t0.228718\t0.749642\tkyrgyzstan\tbishkek\t/location/location/contains\n0.500561\t0.228718\t0.749548\tmoscow_state_university\trussia\t/people/person/nationality\n0.501121\t0.229231\t0.749320\tindia\tdharamsala\t/location/location/contains\n0.500560\t0.229231\t0.749250\tbuffalo\tthomas_vanek\t/location/location/contains\n0.500000\t0.229231\t0.749189\tport_washington\tmanhasset\t/location/location/contains\n0.499441\t0.229231\t0.749083\ttimothy_wilson\tuniversity_of_virginia\t/business/person/company\n0.498884\t0.229231\t0.748254\tgeorge_c._wolfe\tkentucky\t/people/person/place_lived\n0.498328\t0.229231\t0.748228\tnew_york_city\tcolony_club\t/location/location/contains\n0.497773\t0.229231\t0.747899\tmark_souder\tindiana\t/people/person/place_lived\n0.497219\t0.229231\t0.747545\tukraine\tirkutsk\t/location/location/contains\n0.496667\t0.229231\t0.747266\tparamus\twestfield_garden_state_plaza\t/location/location/contains\n0.497225\t0.229744\t0.747098\tsouth_lake_union\tseattle\t/location/neighborhood/neighborhood_of\n0.496674\t0.229744\t0.747093\tcolorado\tsan_juan\t/location/location/contains\n0.497231\t0.230256\t0.746579\tsaskatchewan\tmoose_jaw\t/location/location/contains\n0.496681\t0.230256\t0.745742\tmississippi\toxford\t/location/location/contains\n0.496133\t0.230256\t0.745657\tjorge_garbajosa\titaly\t/people/person/nationality\n0.495585\t0.230256\t0.745319\tminnesota\trochester\t/location/location/contains\n0.496141\t0.230769\t0.745230\tatlanta\tmorehouse_school_of_medicine\t/location/location/contains\n0.495595\t0.230769\t0.745073\tsarah_jamieson\tcanada\t/people/person/nationality\n0.496150\t0.231282\t0.745021\tlouisiana\tbarksdale_air_force_base\t/location/location/contains\n0.496703\t0.231795\t0.745019\trajiv_gandhi\tindia\t/people/person/nationality\n0.496158\t0.231795\t0.744559\twest_yorkshire\tbirmingham\t/location/location/contains\n0.496711\t0.232308\t0.744484\tjames_heckman\tuniversity_of_chicago\t/business/person/company\n0.497262\t0.232821\t0.744386\tgermany\therzogenaurach\t/location/location/contains\n0.497812\t0.233333\t0.744351\tlouisville\tchurchill_downs\t/location/location/contains\n0.498361\t0.233846\t0.744190\tflorida\tpalm_harbor\t/location/location/contains\n0.497817\t0.233846\t0.743810\tivan_basso\tfrance\t/people/person/nationality\n0.498364\t0.234359\t0.743715\tnorth_creek\tgore_mountain\t/location/location/contains\n0.497821\t0.234359\t0.743577\tcalifornia\tquantico\t/location/location/contains\n0.497280\t0.234359\t0.743505\tlouisiana\tcleveland\t/location/location/contains\n0.496739\t0.234359\t0.743164\tconnie_mack\tflorida\t/people/person/place_lived\n0.496200\t0.234359\t0.743154\tflorida\tglendale\t/location/location/contains\n0.496746\t0.234872\t0.742996\tivan_basso\titaly\t/people/person/nationality\n0.496208\t0.234872\t0.742874\tsouth_africa\tvodacom\t/location/location/contains\n0.496753\t0.235385\t0.742713\tboston\tfenway_park\t/location/location/contains\n0.496216\t0.235385\t0.742421\tjamie_anderson\taustralia\t/people/person/nationality\n0.496760\t0.235897\t0.742405\tiowa\tankeny\t/location/location/contains\n0.497303\t0.236410\t0.742189\tbelarus\tvitebsk\t/location/location/contains\n0.496767\t0.236410\t0.741828\twestchester_county\tlakeland\t/location/location/contains\n0.496233\t0.236410\t0.741390\tdesmond_guinness\tireland\t/people/person/nationality\n0.496774\t0.236923\t0.741111\tgermany\tstuttgart\t/location/location/contains\n0.496241\t0.236923\t0.740985\tmaurizio_gherardini\titaly\t/people/person/nationality\n0.495708\t0.236923\t0.740796\tmississippi\tpaterson\t/location/location/contains\n0.495177\t0.236923\t0.739785\tthomas_krens\tspain\t/people/person/nationality\n0.495717\t0.237436\t0.739687\tnorway\tlillehammer\t/location/location/contains\n0.495187\t0.237436\t0.739449\tfairfield_county\tnew_haven\t/location/location/contains\n0.494658\t0.237436\t0.739371\tvittorio_storaro\titaly\t/people/person/nationality\n0.494130\t0.237436\t0.739307\tsuffolk_county\tbrentwood\t/location/location/contains\n0.493603\t0.237436\t0.739047\tmontana\tyellowstone_club\t/location/location/contains\n0.493078\t0.237436\t0.738904\temma_goldman\tfrance\t/people/person/nationality\n0.492553\t0.237436\t0.738542\tleskovac\tserbia\t/people/person/nationality\n0.492030\t0.237436\t0.738046\tdavid_collings\titaly\t/people/person/nationality\n0.491507\t0.237436\t0.737759\tvanessa_redgrave\tiran\t/people/person/nationality\n0.492047\t0.237949\t0.737281\tpranab_mukherjee\tindia\t/people/person/nationality\n0.492585\t0.238462\t0.737196\tasia\tkyrgyzstan\t/location/location/contains\n0.492063\t0.238462\t0.737118\trainer_maria_rilke\tgermany\t/people/person/nationality\n0.492600\t0.238974\t0.737017\tjens_voigt\tgermany\t/people/person/nationality\n0.492080\t0.238974\t0.736829\titaly\tuniversity_of_ferrara\t/location/location/contains\n0.492616\t0.239487\t0.736781\tian_bogost\tgeorgia_institute_of_technology\t/business/person/company\n0.493151\t0.240000\t0.736676\tasia\tkabul\t/location/location/contains\n0.493684\t0.240513\t0.736512\taziz_pahad\tsouth_africa\t/people/person/nationality\n0.494217\t0.241026\t0.736279\tfinland\tturku\t/location/location/contains\n0.493697\t0.241026\t0.736090\tslovakia\ttranspetrol\t/location/location/contains\n0.494229\t0.241538\t0.735816\tgötz_aly\tgermany\t/people/person/nationality\n0.494759\t0.242051\t0.735286\tgiuseppe_verdi\titaly\t/people/person/nationality\n0.495288\t0.242564\t0.735233\tvirginia\tunited_states_of_america\t/location/administrative_division/country\n0.495816\t0.243077\t0.734777\tstaten_island\tfort_wadsworth\t/location/location/contains\n0.495298\t0.243077\t0.734702\tcalifornia\to.c.\t/location/location/contains\n0.494781\t0.243077\t0.734625\tceline_dion\tswitzerland\t/people/person/nationality\n0.495308\t0.243590\t0.734018\tsteve_king\tiowa\t/people/person/place_lived\n0.494792\t0.243590\t0.733955\tcalcata\titaly\t/people/person/nationality\n0.495317\t0.244103\t0.733854\tminnesota\twarroad\t/location/location/contains\n0.494802\t0.244103\t0.733660\tcalifornia\triviera\t/location/location/contains\n0.495327\t0.244615\t0.733082\tpaolo_scaroni\teni\t/business/person/company\n0.494813\t0.244615\t0.732075\tstaten_island\tbloomfield\t/location/location/contains\n0.495337\t0.245128\t0.732033\tgermany\tkiel\t/location/location/contains\n0.495859\t0.245641\t0.731968\tminnesota\tinternational_falls\t/location/location/contains\n0.495346\t0.245641\t0.731506\twilliam_k._reilly\tstanford_university\t/business/person/company\n0.494835\t0.245641\t0.730696\tjane_austen\tfrance\t/people/person/nationality\n0.494324\t0.245641\t0.730443\trob_simmons\tconnecticut\t/people/person/place_lived\n0.493814\t0.245641\t0.730144\tcalifornia\tpeter_cooper_village\t/location/location/contains\n0.494336\t0.246154\t0.730097\tcalifornia\tsan_francisco\t/location/location/contains\n0.493827\t0.246154\t0.729934\tthe_daily_telegraph\taustralia\t/people/person/nationality\n0.493320\t0.246154\t0.729357\tswitzerland\tlake_lucerne\t/location/location/contains\n0.492813\t0.246154\t0.729208\twestchester_county\tbronx_river\t/location/location/contains\n0.492308\t0.246154\t0.728745\tpyotr_popov\tsoviet_union\t/people/person/nationality\n0.491803\t0.246154\t0.728718\tclemente_mastella\titaly\t/people/person/nationality\n0.491300\t0.246154\t0.728159\tcanwest_global_communications\tcanada\t/people/person/nationality\n0.490798\t0.246154\t0.728137\tcolumbia_county\tchatham\t/location/location/contains\n0.491318\t0.246667\t0.728062\tvermont\tascutney\t/location/location/contains\n0.491837\t0.247179\t0.727934\tmads_mikkelsen\tdenmark\t/people/person/nationality\n0.491335\t0.247179\t0.726871\to'neill\trussia\t/people/person/nationality\n0.490835\t0.247179\t0.726864\tscott_dunlap\tnearbynow\t/business/person/company\n0.490336\t0.247179\t0.725680\tjames_kakalios\tuniversity_of_minnesota\t/business/person/company\n0.489837\t0.247179\t0.725466\titaly\tuffizi_gallery\t/location/location/contains\n0.489340\t0.247179\t0.725353\tasia\tyasukuni_shrine\t/location/location/contains\n0.489858\t0.247692\t0.725281\ttoronto\tbata_shoe_museum\t/location/location/contains\n0.489362\t0.247692\t0.724804\tcalifornia\tmontana\t/location/location/contains\n0.488866\t0.247692\t0.724471\tparis\tvendôme\t/location/location/contains\n0.488372\t0.247692\t0.724450\tjohn_mcadam\timperial\t/business/person/company\n0.488889\t0.248205\t0.724394\tireland\tcork\t/location/location/contains\n0.489405\t0.248718\t0.724248\tchicago\tunited_center\t/location/location/contains\n0.489919\t0.249231\t0.724050\tmike_hampton\tatlanta\t/people/person/place_lived\n0.489426\t0.249231\t0.723932\tpeter_pace\taustralia\t/people/person/nationality\n0.489940\t0.249744\t0.723931\tmemphis\tgraceland\t/location/location/contains\n0.490452\t0.250256\t0.722647\tpaul_andreu\tfrance\t/people/person/nationality\n0.489960\t0.250256\t0.722264\tfreddy_rodriguez\tdominican_republic\t/people/person/nationality\n0.489468\t0.250256\t0.722125\tvirginia\tkingsmill\t/location/location/contains\n0.488978\t0.250256\t0.722021\titaly\tvilla_san_michele\t/location/location/contains\n0.489489\t0.250769\t0.721585\tindia\tgoa\t/location/location/contains\n0.489000\t0.250769\t0.721341\telkhonon_goldberg\tnew_york_university\t/business/person/company\n0.488511\t0.250769\t0.721038\tseattle\tgrandview\t/location/location/contains\n0.488024\t0.250769\t0.720955\tcanada\tteaneck\t/location/location/contains\n0.487537\t0.250769\t0.720657\tmonkey_world\tspain\t/people/person/nationality\n0.487052\t0.250769\t0.720547\tjerusalem\ttemple\t/location/location/contains\n0.487562\t0.251282\t0.720289\tluciano_berio\titaly\t/people/person/nationality\n0.487078\t0.251282\t0.720014\taustralia\tunited_kingdom\t/location/administrative_division/country\n0.487587\t0.251795\t0.720009\tnorth_dakota\tfort_yates\t/location/location/contains\n0.488095\t0.252308\t0.719735\tcalifornia\tcarpinteria\t/location/location/contains\n0.487611\t0.252308\t0.718903\tdavid_dagon\tgeorgia_institute_of_technology\t/business/person/company\n0.487129\t0.252308\t0.718454\tjack_m._wilson\tuniversity_of_massachusetts\t/business/person/company\n0.486647\t0.252308\t0.718333\tgeorge_maciunas\tgermany\t/people/person/nationality\n0.487154\t0.252821\t0.718123\tindia\thyderabad\t/location/location/contains\n0.487660\t0.253333\t0.718023\tcalifornia\tsan_leandro\t/location/location/contains\n0.487179\t0.253333\t0.717973\trusal\trussia\t/people/person/nationality\n0.486700\t0.253333\t0.717847\tamsterdam\tgelderland\t/location/location/contains\n0.486220\t0.253333\t0.717728\toklahoma\tponca\t/location/location/contains\n0.485742\t0.253333\t0.717662\trepublic_of_ireland\tscotland\t/location/administrative_division/country\n0.485265\t0.253333\t0.717548\tflorida\tindian_river\t/location/location/contains\n0.484789\t0.253333\t0.717343\tunited_kingdom\tgrimshaw\t/location/location/contains\n0.485294\t0.253846\t0.716955\tflorida\tpanama_city_beach\t/location/location/contains\n0.485798\t0.254359\t0.716761\tleonardo_da_vinci\titaly\t/people/person/nationality\n0.485323\t0.254359\t0.716744\tflorida\ttvr\t/location/location/contains\n0.484848\t0.254359\t0.716547\tvirginia\tadams_morgan\t/location/location/contains\n0.485352\t0.254872\t0.716441\tiowa\twaverly\t/location/location/contains\n0.485854\t0.255385\t0.716065\tjacques_chirac\tfrance\t/people/person/nationality\n0.485380\t0.255385\t0.715906\tglen_tetley\tgermany\t/people/person/nationality\n0.485881\t0.255897\t0.715800\tmexico\tquerétaro\t/location/location/contains\n0.485409\t0.255897\t0.714691\tcalifornia\tunion_beach\t/location/location/contains\n0.485909\t0.256410\t0.714594\tturkey\tankara\t/location/location/contains\n0.485437\t0.256410\t0.714236\tsonoma_county\toccidental\t/location/location/contains\n0.484966\t0.256410\t0.714188\tjean-claude_brialy\tparis\t/people/deceased_person/place_of_death\n0.485465\t0.256923\t0.714095\tsouth_carolina\tcharleston\t/location/location/contains\n0.485963\t0.257436\t0.713574\tspain\tcáceres\t/location/location/contains\n0.486460\t0.257949\t0.713399\tontario\tniagara_falls\t/location/location/contains\n0.486957\t0.258462\t0.713266\therat_province\tshindand\t/location/location/contains\n0.486486\t0.258462\t0.713190\thouston_nutt\tarkansas\t/people/person/place_lived\n0.486982\t0.258974\t0.713166\tmexico\tciudad_juárez\t/location/location/contains\n0.487476\t0.259487\t0.712510\treza_aslan\tiran\t/people/person/nationality\n0.487007\t0.259487\t0.712478\tgermany\tfimat_banque\t/location/location/contains\n0.487500\t0.260000\t0.712357\tminnesota\tmankato\t/location/location/contains\n0.487032\t0.260000\t0.711896\tjosé_bové\tfrance\t/people/person/nationality\n0.486564\t0.260000\t0.711847\tcanada\tuniversity_of_british_columbia\t/location/location/contains\n0.487057\t0.260513\t0.711341\tkamal_nath\tindia\t/people/person/nationality\n0.487548\t0.261026\t0.711303\tgermany\tmunich\t/location/location/contains\n0.487081\t0.261026\t0.709715\tshirley_temple\taustralia\t/people/person/nationality\n0.486616\t0.261026\t0.709471\tgermany\tdeutsche_bahn\t/location/location/contains\n0.486151\t0.261026\t0.709224\tjaouad_gharib\titaly\t/people/person/nationality\n0.485687\t0.261026\t0.708675\titaly\tbertone\t/location/location/contains\n0.486177\t0.261538\t0.708130\tecuador\totavalo\t/location/location/contains\n0.486667\t0.262051\t0.707626\tspain\tvalencia\t/location/location/contains\n0.487155\t0.262564\t0.707499\tflorida\ttampa\t/location/location/contains\n0.487643\t0.263077\t0.707097\tsouth_korea\tyeongcheon\t/location/location/contains\n0.488129\t0.263590\t0.707037\tmexico\tcabo_san_lucas\t/location/location/contains\n0.487666\t0.263590\t0.706729\tbardolino\titaly\t/people/person/nationality\n0.487204\t0.263590\t0.706594\tstaten_island\tlivingston\t/location/location/contains\n0.486742\t0.263590\t0.706350\tjeb_bradley\tnew_hampshire\t/people/person/place_lived\n0.486282\t0.263590\t0.705322\thisham_matar\tlibya\t/people/person/nationality\n0.486767\t0.264103\t0.705304\tidaho\tgreenleaf\t/location/location/contains\n0.487252\t0.264615\t0.704228\tgary_becker\tuniversity_of_chicago\t/business/person/company\n0.486792\t0.264615\t0.703946\toklahoma\tsanta_monica_college\t/location/location/contains\n0.487276\t0.265128\t0.703855\tmississippi\ttunica\t/location/location/contains\n0.486817\t0.265128\t0.702964\tvirginia\thampton_university\t/location/location/contains\n0.486359\t0.265128\t0.702390\tcalifornia\trockville_centre\t/location/location/contains\n0.485902\t0.265128\t0.702235\tflorida\tepcot\t/location/location/contains\n0.485446\t0.265128\t0.701780\trex_w._tillerson\tgoogle\t/business/person/company\n0.484991\t0.265128\t0.701349\tnew_york_city\tmonticello\t/location/location/contains\n0.485473\t0.265641\t0.700707\tnew_york_city\twashington_heights\t/location/location/contains\n0.485019\t0.265641\t0.700521\tdreamworks\tindia\t/people/person/nationality\n0.485500\t0.266154\t0.699844\ttony_parker\tfrance\t/people/person/nationality\n0.485981\t0.266667\t0.699305\tflorida\tjacksonville\t/location/location/contains\n0.485528\t0.266667\t0.699195\tfrankfurter_allgemeine_zeitung\tgermany\t/people/person/nationality\n0.485075\t0.266667\t0.698906\tcalifornia\tyuma\t/location/location/contains\n0.485555\t0.267179\t0.698454\twestchester_county\tchappaqua\t/location/location/contains\n0.486034\t0.267692\t0.697769\tmarco_materazzi\titaly\t/people/person/nationality\n0.485581\t0.267692\t0.697704\twest_texas\tlaredo\t/location/location/contains\n0.485130\t0.267692\t0.696624\tmexico\tgonzález\t/location/location/contains\n0.485608\t0.268205\t0.696475\tsuffolk_county\tkings_park\t/location/location/contains\n0.485158\t0.268205\t0.696309\tbaltimore\tboulder\t/location/location/contains\n0.484708\t0.268205\t0.696056\tsyracuse\tnational_safety_council\t/location/location/contains\n0.484259\t0.268205\t0.695543\tflorida\tcape_canaveral\t/location/location/contains\n0.484736\t0.268718\t0.695456\tguinea\tconakry\t/location/location/contains\n0.484288\t0.268718\t0.695015\tspain\tostia\t/location/location/contains\n0.483841\t0.268718\t0.694390\tarkansas\tchoctawhatchee_river\t/location/location/contains\n0.483395\t0.268718\t0.693581\tiowa\tadel\t/location/location/contains\n0.482949\t0.268718\t0.693565\tvermont\tjacksonville\t/location/location/contains\n0.482505\t0.268718\t0.693317\ticeland\tnuuk\t/location/location/contains\n0.482981\t0.269231\t0.693290\tgian_carlo_menotti\titaly\t/people/person/nationality\n0.482537\t0.269231\t0.693220\tdesio\titaly\t/people/person/nationality\n0.482094\t0.269231\t0.693132\tmark_pryor\tarkansas\t/people/person/place_lived\n0.482569\t0.269744\t0.693023\talejandro_gonzález_iñárritu\tmexico\t/people/person/nationality\n0.482126\t0.269744\t0.692891\tmstislav_rostropovich\trussia\t/people/person/nationality\n0.481685\t0.269744\t0.692559\tarkansas\tmountain_meadows\t/location/location/contains\n0.481244\t0.269744\t0.690884\tspain\tbanco_bilbao_vizcaya_argentaria\t/location/location/contains\n0.481718\t0.270256\t0.690859\tmexico\tmérida\t/location/location/contains\n0.481279\t0.270256\t0.690355\tlouisiana\tcajun\t/location/location/contains\n0.481752\t0.270769\t0.690226\tthailand\tyala\t/location/location/contains\n0.481313\t0.270769\t0.689932\tsouth_africa\tmatabeleland\t/location/location/contains\n0.480874\t0.270769\t0.689819\tasia\tshinto\t/location/location/contains\n0.480437\t0.270769\t0.689391\tunited_kingdom\tgordon_johndroe\t/location/location/contains\n0.480000\t0.270769\t0.689184\tscotland\tdingwall\t/location/location/contains\n0.480472\t0.271282\t0.688607\tontario\twaterloo\t/location/location/contains\n0.480036\t0.271282\t0.688199\tbernd_schuster\titaly\t/people/person/nationality\n0.480508\t0.271795\t0.688113\tmel_karmazin\tsirius_satellite_radio\t/business/person/company\n0.480072\t0.271795\t0.688077\tarkansas\toak_bluffs\t/location/location/contains\n0.480543\t0.272308\t0.687957\tlura\tportugal\t/people/person/nationality\n0.481013\t0.272821\t0.687845\tsam_walton\tarkansas\t/people/person/place_lived\n0.480578\t0.272821\t0.687830\tkelibia\ttunisia\t/people/person/nationality\n0.480144\t0.272821\t0.687517\tkari_lizer\tcbs\t/business/person/company\n0.479711\t0.272821\t0.686976\troy_miller\tatlanta\t/people/person/place_lived\n0.480180\t0.273333\t0.686935\tshona_brown\tgoogle\t/business/person/company\n0.479748\t0.273333\t0.686858\tfrancesco_rutelli\titaly\t/people/person/nationality\n0.479317\t0.273333\t0.686722\tmontclair\thillside\t/location/location/contains\n0.479784\t0.273846\t0.686012\tandré_desmarais\tcanada\t/people/person/nationality\n0.479354\t0.273846\t0.685799\tsylvain_chomet\tfrance\t/people/person/nationality\n0.478924\t0.273846\t0.685769\toklahoma\tbrad_henry\t/location/location/contains\n0.478495\t0.273846\t0.685605\tnew_york_city\tbridgewater\t/location/location/contains\n0.478066\t0.273846\t0.685594\tamsterdam\tnaarden\t/location/location/contains\n0.477639\t0.273846\t0.684955\tfelipe_pérez_roque\tcuba\t/people/person/nationality\n0.477212\t0.273846\t0.684643\tiowa\tcrown_point\t/location/location/contains\n0.477679\t0.274359\t0.683387\trichard_gasquet\tfrance\t/people/person/nationality\n0.477252\t0.274359\t0.683245\tpolaris_venture_partners\tmassachusetts_institute_of_technology\t/business/person/company\n0.476827\t0.274359\t0.682876\toklahoma\tperry\t/location/location/contains\n0.476402\t0.274359\t0.682570\tniantic\teast_lyme\t/location/location/contains\n0.476868\t0.274872\t0.682390\trussia\tbeslan\t/location/location/contains\n0.477333\t0.275385\t0.682384\tcatalonia\tspain\t/location/administrative_division/country\n0.477798\t0.275897\t0.682321\tcalifornia\tcorona\t/location/location/contains\n0.477374\t0.275897\t0.682316\tcoahuila\tmexico\t/people/person/nationality\n0.476950\t0.275897\t0.681847\twill_smith\tscotland\t/people/person/nationality\n0.476528\t0.275897\t0.681294\tidaho\tlewiston\t/location/location/contains\n0.476106\t0.275897\t0.681265\tÉlysée_palace\tfrance\t/people/person/nationality\n0.475685\t0.275897\t0.680972\tmexico\toswego\t/location/location/contains\n0.475265\t0.275897\t0.680948\tmargaret_macmillan\tuniversity_of_toronto\t/business/person/company\n0.474846\t0.275897\t0.680128\tmaryland\tkawasaki\t/location/location/contains\n0.474427\t0.275897\t0.680030\tvilla_san_michele\titaly\t/people/person/nationality\n0.474890\t0.276410\t0.679951\theinrich_heine\tgermany\t/people/person/nationality\n0.474472\t0.276410\t0.679153\tsandra_pianalto\tfederal_reserve_bank_of_cleveland\t/business/person/company\n0.474934\t0.276923\t0.678405\tmark_mathabane\tsouth_africa\t/people/person/nationality\n0.474517\t0.276923\t0.678040\tmichael_marsh\ttrinity_college\t/business/person/company\n0.474100\t0.276923\t0.678038\tnewark\tjefferson_street\t/location/location/contains\n0.474561\t0.277436\t0.677928\tmuhammad_yunus\tgrameen_bank\t/business/person/company\n0.474145\t0.277436\t0.677757\tvirginia\tchantilly\t/location/location/contains\n0.474606\t0.277949\t0.676690\tparis\tgrand_palais\t/location/location/contains\n0.475066\t0.278462\t0.676274\tbaltimore\tm&t_bank_stadium\t/location/location/contains\n0.474650\t0.278462\t0.676199\tcamus\tgermany\t/people/person/nationality\n0.475109\t0.278974\t0.675256\tcampania\titaly\t/location/administrative_division/country\n0.474695\t0.278974\t0.675065\tpeter_houghton\tnew_hampshire\t/people/person/place_lived\n0.474281\t0.278974\t0.674770\twayne_gilchrest\tmaryland\t/people/person/place_lived\n0.473868\t0.278974\t0.674722\tserbia\tpec\t/location/location/contains\n0.473455\t0.278974\t0.674718\tmexico_city\tchalco\t/location/location/contains\n0.473043\t0.278974\t0.674319\ttaos\ttaos_ski_valley\t/location/location/contains\n0.472632\t0.278974\t0.673715\tstephen_m._cutler\tcitigroup\t/business/person/company\n0.472222\t0.278974\t0.673547\tnew_york_city\tnew_haven\t/location/location/contains\n0.471813\t0.278974\t0.673512\tvirgin_blue\taustralia\t/people/person/nationality\n0.471404\t0.278974\t0.673276\tthe_new_york_times\tgoogle\t/business/person/company\n0.470996\t0.278974\t0.673090\tvirginia\tlarkspur\t/location/location/contains\n0.470588\t0.278974\t0.672973\tmississippi\tjames_meredith\t/location/location/contains\n0.470182\t0.278974\t0.672453\tmississippi\thuntsville\t/location/location/contains\n0.469775\t0.278974\t0.672112\twashington\tst._albans_school\t/location/location/contains\n0.470233\t0.279487\t0.671974\tkiran_desai\tindia\t/people/person/nationality\n0.469828\t0.279487\t0.671929\tjulian_schnabel\tfrance\t/people/person/nationality\n0.469423\t0.279487\t0.671904\ttsai_ming-liang\tmalaysia\t/people/person/nationality\n0.469880\t0.280000\t0.671853\tking_county\tseattle\t/location/location/contains\n0.469475\t0.280000\t0.671725\tfranco\tspain\t/people/person/nationality\n0.469931\t0.280513\t0.671518\tmississippi\tocean_springs\t/location/location/contains\n0.469528\t0.280513\t0.671187\tsan_fernando_valley\tgranada_hills\t/location/location/contains\n0.469125\t0.280513\t0.671064\tjohn_e._sununu\tnew_hampshire\t/people/person/place_lived\n0.469580\t0.281026\t0.670646\tsong_min-soon\tsouth_korea\t/people/person/nationality\n0.469178\t0.281026\t0.670642\tbrad_henry\toklahoma\t/people/person/place_lived\n0.469632\t0.281538\t0.670052\tsweet_auburn\tatlanta\t/location/neighborhood/neighborhood_of\n0.469231\t0.281538\t0.670016\tbenchmark_capital\tmitch_lasky\t/business/person/company\n0.469684\t0.282051\t0.670007\tabhishek_bachchan\tindia\t/people/person/nationality\n0.469283\t0.282051\t0.669883\tkirk_kerkorian\tgermany\t/people/person/nationality\n0.469736\t0.282564\t0.669810\tsan_francisco\tnoe_valley\t/location/location/contains\n0.469336\t0.282564\t0.669484\tpaul_butler\tgeorge_washington_university\t/business/person/company\n0.469787\t0.283077\t0.669422\tjosé_luis_castillo\tmexico\t/people/person/nationality\n0.469388\t0.283077\t0.669406\thenry_tang\tisrael\t/people/person/nationality\n0.469839\t0.283590\t0.669378\twashington\twenatchee_river\t/location/location/contains\n0.469440\t0.283590\t0.669370\tocean_falls\tcanada\t/people/person/nationality\n0.469890\t0.284103\t0.668866\tcroatia\tistria\t/location/location/contains\n0.469492\t0.284103\t0.668742\tconnecticut\tbethlehem\t/location/location/contains\n0.469094\t0.284103\t0.668698\tspain\told_san_juan\t/location/location/contains\n0.468697\t0.284103\t0.668224\tleningrad\tvaganova_ballet_academy\t/location/location/contains\n0.469146\t0.284615\t0.668097\titaly\tsan_siro\t/location/location/contains\n0.468750\t0.284615\t0.667906\tgeorge_gilder\tatari\t/business/person/company\n0.468354\t0.284615\t0.666891\tjürgen_klinsmann\taustralia\t/people/person/nationality\n0.467960\t0.284615\t0.666719\taltimo\talfa_group\t/business/person/company\n0.467565\t0.284615\t0.666693\tconnecticut\tbethel\t/location/location/contains\n0.467172\t0.284615\t0.666603\tidaho\tdonnelly\t/location/location/contains\n0.466779\t0.284615\t0.666388\tvirginia\tmorgantown\t/location/location/contains\n0.467227\t0.285128\t0.666251\tiowa\tsioux_city\t/location/location/contains\n0.466835\t0.285128\t0.666201\tconnecticut\tcheshire_high_school\t/location/location/contains\n0.467282\t0.285641\t0.666068\tcalifornia\tsacramento\t/location/location/contains\n0.466890\t0.285641\t0.665127\tisadore_sharp\tbill_gates\t/business/person/company\n0.466499\t0.285641\t0.665100\tjean-bertrand_aristide\tsouth_africa\t/people/person/nationality\n0.466109\t0.285641\t0.664583\tsão_paulo\tfasano\t/location/location/contains\n0.466555\t0.286154\t0.664010\titaly\tcalcata\t/location/location/contains\n0.466165\t0.286154\t0.663567\tjosé_clemente_orozco\tmexico\t/people/person/nationality\n0.465776\t0.286154\t0.663289\twashington\tdupont_circle\t/location/location/contains\n0.465388\t0.286154\t0.663057\tiranian-american\tiran\t/people/person/nationality\n0.465000\t0.286154\t0.662898\tbrian_france\tfrance\t/people/person/nationality\n0.464613\t0.286154\t0.662886\tvirginia\tmiddleburg\t/location/location/contains\n0.464226\t0.286154\t0.661858\tpaul_slovic\tuniversity_of_oregon\t/business/person/company\n0.463840\t0.286154\t0.661582\tfrance\tlyon\t/location/location/contains\n0.463455\t0.286154\t0.661551\tgordon_johndroe\tiran\t/people/person/nationality\n0.463071\t0.286154\t0.661479\tiran\tnimruz_province\t/location/location/contains\n0.463516\t0.286667\t0.661205\tmexico\tbaja_california\t/location/location/contains\n0.463132\t0.286667\t0.661072\tnebraska\tcharles_starkweather\t/location/location/contains\n0.463576\t0.287179\t0.661072\taustralia\tbrisbane\t/location/location/contains\n0.463193\t0.287179\t0.660295\tbill_bain\tbain_&_company\t/business/person/company\n0.462810\t0.287179\t0.660290\tjoe_francis\tmexico\t/people/person/nationality\n0.463254\t0.287692\t0.660004\tdenmark\telsinore\t/location/location/contains\n0.462871\t0.287692\t0.659576\titaly\tflavia_colgan\t/location/location/contains\n0.463314\t0.288205\t0.659515\titaly\tgenoa\t/location/location/contains\n0.462932\t0.288205\t0.659431\tkansas\ttallgrass_beef_company\t/location/location/contains\n0.463374\t0.288718\t0.659415\ttrevor_manuel\tsouth_africa\t/people/person/nationality\n0.463816\t0.289231\t0.659387\tcalifornia\tfresno_county\t/location/location/contains\n0.464256\t0.289744\t0.658826\trichard_branson\tvirgin_galactic\t/business/person/company\n0.463875\t0.289744\t0.658689\tpatricia_c._dunn\thewlett-packard\t/business/person/company\n0.464315\t0.290256\t0.658645\tscott_rothbort\tseton_hall_university\t/business/person/company\n0.463934\t0.290256\t0.658448\tjean_drèze\tindia\t/people/person/nationality\n0.463554\t0.290256\t0.658237\tnanjing\tjinhua\t/location/location/contains\n0.463993\t0.290769\t0.657877\tbihar\tindia\t/location/administrative_division/country\n0.464432\t0.291282\t0.657655\tprimo_levi\titaly\t/people/person/nationality\n0.464052\t0.291282\t0.656515\tsalmagundi_club\tnew_york_city\t/location/neighborhood/neighborhood_of\n0.463673\t0.291282\t0.656193\thindustan_lever_limited\tindia\t/people/person/nationality\n0.464111\t0.291795\t0.656034\tdominican_republic\tnagua\t/location/location/contains\n0.463733\t0.291795\t0.655967\tlos_angeles_county\tsteven_holl\t/location/location/contains\n0.464169\t0.292308\t0.655701\tnicole_kidman\taustralia\t/people/person/nationality\n0.464605\t0.292821\t0.654884\tcambridge\tmassachusetts_institute_of_technology\t/location/location/contains\n0.465041\t0.293333\t0.654794\tevgeni_malkin\trussia\t/people/person/nationality\n0.465475\t0.293846\t0.654665\tisrael\trehovot\t/location/location/contains\n0.465097\t0.293846\t0.654344\tjuan_diego_flórez\titaly\t/people/person/nationality\n0.464720\t0.293846\t0.654288\twisconsin\tcrystal_river\t/location/location/contains\n0.465154\t0.294359\t0.654249\tboston\tmassachusetts_general_hospital\t/location/location/contains\n0.464777\t0.294359\t0.653927\tekene_ibekwe\tmaryland\t/people/person/place_lived\n0.464401\t0.294359\t0.653656\tjane_elliott\tiowa\t/people/person/place_lived\n0.464026\t0.294359\t0.653002\tcalifornia\tlafayette\t/location/location/contains\n0.463651\t0.294359\t0.652965\tsteven_lewis\tempire_state_college\t/business/person/company\n0.464084\t0.294872\t0.652720\tklaus_kleinfeld\tgermany\t/people/person/nationality\n0.463710\t0.294872\t0.652709\tkim_kirchen\tspain\t/people/person/nationality\n0.463336\t0.294872\t0.651534\ta._c._grayling\tspain\t/people/person/nationality\n0.463768\t0.295385\t0.651427\tmartti_ahtisaari\tfinland\t/people/person/nationality\n0.463395\t0.295385\t0.651380\tarmand_hammer\toccidental_petroleum\t/business/person/company\n0.463023\t0.295385\t0.651033\tturkey\tfrance\t/people/person/nationality\n0.462651\t0.295385\t0.650774\ttaos\thamptons\t/location/location/contains\n0.462279\t0.295385\t0.650030\tbaltimore\tjohns_hopkins_hospital\t/location/location/contains\n0.461909\t0.295385\t0.649699\tmike_huckabee\tvirginia\t/people/person/place_lived\n0.462340\t0.295897\t0.649564\tcalifornia\tsanta_clarita\t/location/location/contains\n0.462770\t0.296410\t0.649436\tireland\tathenry\t/location/location/contains\n0.463200\t0.296923\t0.649430\trussia\tnefteyugansk\t/location/location/contains\n0.462830\t0.296923\t0.649357\therzogenaurach\tcanada\t/people/person/nationality\n0.463259\t0.297436\t0.649329\trichard_sands\tconstellation_brands\t/business/person/company\n0.462889\t0.297436\t0.649281\tmike_huckabee\tcolorado\t/people/person/place_lived\n0.462520\t0.297436\t0.649141\tsomalia\tcongo_river\t/location/location/contains\n0.462151\t0.297436\t0.649088\tstephen_ames\taustralia\t/people/person/nationality\n0.461783\t0.297436\t0.648863\toklahoma\talaska\t/location/location/contains\n0.461416\t0.297436\t0.648843\tezer_weizman\tisrael\t/people/person/nationality\n0.461049\t0.297436\t0.648627\tiran\tkufa\t/location/location/contains\n0.461477\t0.297949\t0.648151\tamitabh_bachchan\tindia\t/people/person/nationality\n0.461905\t0.298462\t0.648106\tsomaliland\thargeisa\t/location/location/contains\n0.462331\t0.298974\t0.648004\tjhumpa_lahiri\tindia\t/people/person/nationality\n0.461965\t0.298974\t0.647128\ttranspetrol\tslovakia\t/people/person/nationality\n0.461599\t0.298974\t0.647078\tfernando_valenzuela\tmexico\t/people/person/nationality\n0.461234\t0.298974\t0.645285\tjohn_b._bellinger_iii\titaly\t/people/person/nationality\n0.460870\t0.298974\t0.644129\tdeutsche_bahn\tgermany\t/people/person/nationality\n0.460506\t0.298974\t0.644088\tflorida\tdallas_baker\t/location/location/contains\n0.460142\t0.298974\t0.643996\tmexico\tjuárez\t/location/location/contains\n0.460568\t0.299487\t0.643960\ttunisia\tkelibia\t/location/location/contains\n0.460205\t0.299487\t0.643763\tstaten_island\tkent_street\t/location/location/contains\n0.459843\t0.299487\t0.643728\tsouth_africa\tsoweto\t/location/location/contains\n0.459481\t0.299487\t0.643527\tcalifornia\tsimon_&_schuster\t/location/location/contains\n0.459119\t0.299487\t0.643222\tquicken_loans\tdan_gilbert\t/business/person/company\n0.458759\t0.299487\t0.642924\tcosta_rica\tÓscar_arias\t/location/location/contains\n0.458399\t0.299487\t0.642842\tstephen_blum\tiran\t/people/person/nationality\n0.458039\t0.299487\t0.642663\tedward_luce\tindia\t/people/person/nationality\n0.457680\t0.299487\t0.642454\tlucky\tfrance\t/people/person/nationality\n0.458105\t0.300000\t0.641963\tana_palacio\tspain\t/people/person/nationality\n0.457746\t0.300000\t0.641848\tsouth_carolina\tnew_haven\t/location/location/contains\n0.458170\t0.300513\t0.641697\tfairfield_county\tgreenwich\t/location/location/contains\n0.458594\t0.301026\t0.641435\toklahoma\toklahoma_city\t/location/location/contains\n0.458236\t0.301026\t0.641101\tdreamworks\tcreative_artists_agency\t/business/person/company\n0.457878\t0.301026\t0.640985\trussian\trussia\t/people/person/nationality\n0.457521\t0.301026\t0.640887\teva_hesse\tgermany\t/people/person/nationality\n0.457944\t0.301538\t0.640771\titaly\tdesio\t/location/location/contains\n0.457588\t0.301538\t0.640664\tbernadette_chirac\tspain\t/people/person/nationality\n0.457232\t0.301538\t0.640252\tmexico\tchalco\t/location/location/contains\n0.457653\t0.302051\t0.640038\tkansas\tatchison\t/location/location/contains\n0.457298\t0.302051\t0.639916\tchipiona\tspain\t/people/person/nationality\n0.457719\t0.302564\t0.639771\tcleveland\tcase_western_reserve_university\t/location/location/contains\n0.457364\t0.302564\t0.639748\ttom_vilsack\tiowa\t/people/person/place_lived\n0.457010\t0.302564\t0.639674\terik_nielsen\tgermany\t/people/person/nationality\n0.457430\t0.303077\t0.639569\tmalaysia\tsepang\t/location/location/contains\n0.457077\t0.303077\t0.639560\tsimon_sebag_montefiore\trussia\t/people/person/nationality\n0.456723\t0.303077\t0.639528\tindia\thumayun\t/location/location/contains\n0.457143\t0.303590\t0.639520\tmitch_mcconnell\tkentucky\t/people/person/place_lived\n0.457562\t0.304103\t0.639417\tindia\tbihar\t/location/location/contains\n0.457209\t0.304103\t0.639403\tflorida\tboquete\t/location/location/contains\n0.456857\t0.304103\t0.639321\ternie_fletcher\tkentucky\t/people/person/place_lived\n0.456505\t0.304103\t0.639036\tontario\truthven\t/location/location/contains\n0.456154\t0.304103\t0.638891\tjack_abramoff\twashington\t/people/person/place_lived\n0.455803\t0.304103\t0.638725\tbob_roberts\tatlanta\t/people/person/place_lived\n0.455453\t0.304103\t0.638662\tnearbynow\tscott_dunlap\t/business/person/company\n0.455871\t0.304615\t0.637262\tdenmark\tribe\t/location/location/contains\n0.455521\t0.304615\t0.637029\trose_gottemoeller\trussia\t/people/person/nationality\n0.455172\t0.304615\t0.636890\tcompass_bancshares\tspain\t/people/person/nationality\n0.454824\t0.304615\t0.636679\thebei\tanhui\t/location/location/contains\n0.454476\t0.304615\t0.636481\talbany_county\tdavid_soares\t/location/location/contains\n0.454128\t0.304615\t0.636384\tberkeley\tkermit_lynch\t/location/location/contains\n0.453782\t0.304615\t0.636288\tjan_marek\trussia\t/people/person/nationality\n0.453435\t0.304615\t0.635957\tdenmark\thelsingborg\t/location/location/contains\n0.453089\t0.304615\t0.635605\tpaul-henri_mathieu\trussia\t/people/person/nationality\n0.452744\t0.304615\t0.635343\tami_ayalon\tisrael\t/people/person/nationality\n0.452399\t0.304615\t0.634901\tnew_york_city\tbound_brook\t/location/location/contains\n0.452055\t0.304615\t0.634463\ttahar_ben_jelloun\tlebanon\t/people/person/nationality\n0.451711\t0.304615\t0.634413\tsyracuse\trochester\t/location/location/contains\n0.452128\t0.305128\t0.633934\tbobby_deol\tindia\t/people/person/nationality\n0.451784\t0.305128\t0.633903\ttom_latham\tiowa\t/people/person/place_lived\n0.451442\t0.305128\t0.633707\tseattle\tlake_union\t/location/location/contains\n0.451099\t0.305128\t0.633544\tjonathan_haidt\tuniversity_of_virginia\t/business/person/company\n0.450758\t0.305128\t0.633238\tingmar_bergman\tfrance\t/people/person/nationality\n0.450416\t0.305128\t0.632601\tjeff_galloway\tatlanta\t/people/person/place_lived\n0.450076\t0.305128\t0.632404\tjack_kachkar\tfrance\t/people/person/nationality\n0.449735\t0.305128\t0.632117\tvirginia\twestfield\t/location/location/contains\n0.450151\t0.305641\t0.632114\tcalifornia\tross\t/location/location/contains\n0.449811\t0.305641\t0.632083\tangela_williams\tatlanta\t/people/person/place_lived\n0.449472\t0.305641\t0.631154\talcatel-lucent\tfrance\t/people/person/nationality\n0.449133\t0.305641\t0.631149\trichard_branson\tgoogle\t/business/person/company\n0.448795\t0.305641\t0.630697\twood_buffalo_national_park\tcanada\t/location/administrative_division/country\n0.448457\t0.305641\t0.630342\tkentucky\tnewton\t/location/location/contains\n0.448120\t0.305641\t0.629727\tian_ayres\tyale_law_school\t/business/person/company\n0.447784\t0.305641\t0.629547\tsamantha_bee\tindia\t/people/person/nationality\n0.448198\t0.306154\t0.629415\tkurt_weill\tgermany\t/people/person/nationality\n0.448612\t0.306667\t0.629353\tmitch_lasky\tbenchmark_capital\t/business/person/company\n0.448276\t0.306667\t0.629103\tstephen_schneider\tgoogle\t/business/person/company\n0.448689\t0.307179\t0.628793\tjim_bunning\tkentucky\t/people/person/place_lived\n0.448353\t0.307179\t0.628647\tcalifornia\tlawrence_berkeley_national_laboratory\t/location/location/contains\n0.448018\t0.307179\t0.628117\tdaniel_o'connell\tscotland\t/people/person/nationality\n0.447683\t0.307179\t0.627724\tportland\tbeaverton\t/location/location/contains\n0.448096\t0.307692\t0.627506\tspain\tjaén\t/location/location/contains\n0.447761\t0.307692\t0.627487\tcalifornia\tzoic_studios\t/location/location/contains\n0.447427\t0.307692\t0.627397\tbelfast\tnewgrange\t/location/location/contains\n0.447094\t0.307692\t0.626683\tmiddle_east\tsamarra\t/location/location/contains\n0.446761\t0.307692\t0.626456\tboston\tamerican_musicological_society\t/location/location/contains\n0.446429\t0.307692\t0.626445\tsouth_plainfield\tsaigon_restaurant\t/location/location/contains\n0.446097\t0.307692\t0.626066\tvietnam\tsan_pedro\t/location/location/contains\n0.445765\t0.307692\t0.625402\talejandro_toledo\tstanford_university\t/business/person/company\n0.445434\t0.307692\t0.625019\tsuffolk_county\thuntington\t/location/location/contains\n0.445846\t0.308205\t0.625003\tdominican_republic\tsantiago_rodríguez\t/location/location/contains\n0.446256\t0.308718\t0.623924\tsouth_carolina\tsavannah_river\t/location/location/contains\n0.446667\t0.309231\t0.623790\titaly\treggio_emilia\t/location/location/contains\n0.446336\t0.309231\t0.623710\tsylvester_stallone\tfrance\t/people/person/nationality\n0.446006\t0.309231\t0.623668\toklahoma\tcheyenne\t/location/location/contains\n0.446415\t0.309744\t0.623462\tmikhail_khodorkovsky\trussia\t/people/person/nationality\n0.446824\t0.310256\t0.622526\tnew_york_city\tgreenwich_village\t/location/location/contains\n0.446494\t0.310256\t0.622213\twayne_white\tiran\t/people/person/nationality\n0.446165\t0.310256\t0.621913\tshashi_tharoor\tisrael\t/people/person/nationality\n0.446573\t0.310769\t0.621151\tindia\tchhattisgarh\t/location/location/contains\n0.446244\t0.310769\t0.621141\tjames_gist\tmaryland\t/people/person/place_lived\n0.446652\t0.311282\t0.620691\tgloria_macapagal-arroyo\tphilippines\t/people/person/nationality\n0.446324\t0.311282\t0.620128\tmaryland\tlong_&_foster\t/location/location/contains\n0.445996\t0.311282\t0.620086\truss_feingold\twisconsin\t/people/person/place_lived\n0.446402\t0.311795\t0.619537\tphilippines\tsan_carlos_city\t/location/location/contains\n0.446075\t0.311795\t0.619459\tmark_chandler\tcisco\t/business/person/company\n0.445748\t0.311795\t0.618719\tarkansas\tberkeley\t/location/location/contains\n0.445421\t0.311795\t0.618435\tportland\tinternational_school\t/location/location/contains\n0.445827\t0.312308\t0.618418\troberto_calvi\titaly\t/people/person/nationality\n0.446233\t0.312821\t0.617762\tjean-louis_borloo\tfrance\t/people/person/nationality\n0.445906\t0.312821\t0.617427\tbill_gates\tcorbis\t/business/person/company\n0.445581\t0.312821\t0.617221\tcalifornia\thot_springs\t/location/location/contains\n0.445255\t0.312821\t0.616918\tstephen_harper\tmexico\t/people/person/nationality\n0.444931\t0.312821\t0.616199\tcajun\tlost_bayou_ramblers\t/location/location/contains\n0.445335\t0.313333\t0.616004\tcalifornia\tceres\t/location/location/contains\n0.445011\t0.313333\t0.615958\trussia\tindia\t/people/person/nationality\n0.444687\t0.313333\t0.615482\talaska\ttexas_city\t/location/location/contains\n0.444364\t0.313333\t0.615279\ted_oakley\ttom_leppert\t/business/person/company\n0.444041\t0.313333\t0.614500\tat&t\titaly\t/people/person/nationality\n0.443718\t0.313333\t0.614417\tstacy_peralta\tspain\t/people/person/nationality\n0.444122\t0.313846\t0.614382\tindia\tsawai_madhopur\t/location/location/contains\n0.443800\t0.313846\t0.614317\tthomas_vanek\tbuffalo\t/people/person/place_lived\n0.444203\t0.314359\t0.614257\tgeorge_allen\tvirginia\t/people/person/place_lived\n0.444605\t0.314872\t0.614247\tflorida\tlakeland\t/location/location/contains\n0.444284\t0.314872\t0.613686\twashington\twashington_state_university\t/location/location/contains\n0.443962\t0.314872\t0.613304\tdavid_a._harris\tiran\t/people/person/nationality\n0.443642\t0.314872\t0.612578\tpeter_r._dolan\tbristol-myers_squibb\t/business/person/company\n0.443321\t0.314872\t0.612340\tzubin_mehta\tindia\t/people/person/nationality\n0.443001\t0.314872\t0.612163\tatlanta\tomni\t/location/location/contains\n0.442682\t0.314872\t0.612077\tflorida\tmilton\t/location/location/contains\n0.442363\t0.314872\t0.611990\tdarfur\tzaghawa\t/location/location/contains\n0.442045\t0.314872\t0.611930\tfrance\ttalence\t/location/location/contains\n0.441727\t0.314872\t0.611622\tmartin_sorrell\titaly\t/people/person/nationality\n0.441409\t0.314872\t0.611288\twisconsin\tchicago\t/location/location/contains\n0.441092\t0.314872\t0.610704\tjohn_cocke\tnew_york_university\t/business/person/company\n0.441493\t0.315385\t0.610287\tmexico\tacapulco\t/location/location/contains\n0.441894\t0.315897\t0.610275\tcalifornia\tpalo_alto\t/location/location/contains\n0.442294\t0.316410\t0.610208\tenrico_fermi\tuniversity_of_chicago\t/business/person/company\n0.441977\t0.316410\t0.610173\tcarly_phillips\tisrael\t/people/person/nationality\n0.441661\t0.316410\t0.610097\tnew_hampshire\twhite_mountains\t/location/location/contains\n0.441345\t0.316410\t0.609668\tbritish_virgin_islands\tspanish_town\t/location/location/contains\n0.441744\t0.316923\t0.609234\tdavid_b._yoffie\tharvard_business_school\t/business/person/company\n0.441429\t0.316923\t0.608704\tcyprus\tashkelon\t/location/location/contains\n0.441827\t0.317436\t0.608666\tbelarus\tpinsk\t/location/location/contains\n0.441512\t0.317436\t0.608546\tvirginia\tbaltimore\t/location/location/contains\n0.441197\t0.317436\t0.608203\tsan_francisco\tflagstaff\t/location/location/contains\n0.440883\t0.317436\t0.608003\tatlanta\tagnes_scott_college\t/location/location/contains\n0.440569\t0.317436\t0.607527\thewlett-packard\tfrance\t/people/person/nationality\n0.440967\t0.317949\t0.607467\tkentucky\tvilla_hills\t/location/location/contains\n0.441365\t0.318462\t0.607313\tstaten_island\twesterleigh\t/location/location/contains\n0.441051\t0.318462\t0.607067\tlebanon\tharet_hreik\t/location/location/contains\n0.440738\t0.318462\t0.606543\tsycamore_networks\tgururaj_deshpande\t/business/person/company\n0.440426\t0.318462\t0.606475\therzogenaurach\tgermany\t/people/person/nationality\n0.440822\t0.318974\t0.606473\thenry_fonda\tomaha\t/people/person/place_lived\n0.440510\t0.318974\t0.606264\tflorida\tdavid_armstrong\t/location/location/contains\n0.440198\t0.318974\t0.606238\tfélix_sánchez\tdominican_republic\t/people/person/nationality\n0.439887\t0.318974\t0.606201\thomesense\tcanada\t/people/person/nationality\n0.439576\t0.318974\t0.606037\tcalifornia\tlarry_wilmore\t/location/location/contains\n0.439266\t0.318974\t0.605314\tram_shriram\tgoogle\t/business/person/company\n0.438956\t0.318974\t0.604980\tflorida\thillside\t/location/location/contains\n0.438646\t0.318974\t0.604629\tchirac\tfrance\t/people/person/nationality\n0.439042\t0.319487\t0.604309\tcalifornia\tlos_gatos\t/location/location/contains\n0.438732\t0.319487\t0.604276\tarabian_peninsula\triyadh\t/location/location/contains\n0.438424\t0.319487\t0.604267\tilya_kovalchuk\tatlanta\t/people/person/place_lived\n0.438115\t0.319487\t0.604121\tsasol\tsouth_africa\t/people/person/nationality\n0.437807\t0.319487\t0.603795\tseattle\tamerican_astronomical_society\t/location/location/contains\n0.438202\t0.320000\t0.603719\ttasmania\thobart\t/location/location/contains\n0.437895\t0.320000\t0.602935\tsouth_carolina\tlenoir\t/location/location/contains\n0.437588\t0.320000\t0.602634\tcaravaggio\titaly\t/people/person/nationality\n0.437982\t0.320513\t0.601308\tsuffolk_county\tnorth_amityville\t/location/location/contains\n0.438375\t0.321026\t0.601280\tkevin_andrews\taustralia\t/people/person/nationality\n0.438768\t0.321538\t0.601110\tpierre_boulez\tfrance\t/people/person/nationality\n0.439161\t0.322051\t0.600129\tlloyd_kaufman\ttroma_entertainment\t/business/person/company\n0.438854\t0.322051\t0.599354\tyemen\tgulf_of_aden\t/location/location/contains\n0.439246\t0.322564\t0.599353\tarundhati_roy\tindia\t/people/person/nationality\n0.438939\t0.322564\t0.599326\tparis\tÉcole_normale_supérieure\t/location/location/contains\n0.438633\t0.322564\t0.599227\thrant_dink\tturkey\t/people/person/nationality\n0.439024\t0.323077\t0.599211\tgrover_cleveland\tbuffalo\t/people/person/place_lived\n0.438719\t0.323077\t0.599050\tfilippo_magnini\tcanada\t/people/person/nationality\n0.438413\t0.323077\t0.598944\tseattle\thood_river\t/location/location/contains\n0.438804\t0.323590\t0.598707\tgermany\tlaupheim\t/location/location/contains\n0.438499\t0.323590\t0.598658\tolga_kern\trussia\t/people/person/nationality\n0.438194\t0.323590\t0.598538\tpaula_wriedt\taustralia\t/people/person/nationality\n0.437890\t0.323590\t0.597857\tfrance\talzonne\t/location/location/contains\n0.437587\t0.323590\t0.597688\trangin_dadfar_spanta\tiran\t/people/person/nationality\n0.437283\t0.323590\t0.597082\tpeter_fenton\tsouth_africa\t/people/person/nationality\n0.436981\t0.323590\t0.596648\tcroatia\tlopud\t/location/location/contains\n0.436678\t0.323590\t0.596101\tsuffolk_county\teast_new_york\t/location/location/contains\n0.437068\t0.324103\t0.595500\ttucson\tuniversity_of_arizona_college_of_medicine\t/location/location/contains\n0.436766\t0.324103\t0.594824\tnetherlands_antilles\taracataca\t/location/location/contains\n0.437155\t0.324615\t0.594741\tnew_york_city\tconey_island\t/location/location/contains\n0.436853\t0.324615\t0.594396\tcarl_robinson\tgermany\t/people/person/nationality\n0.436552\t0.324615\t0.594222\tvictoria_azarenka\tserbia\t/people/person/nationality\n0.436251\t0.324615\t0.594071\tjohn_caplan\tyoutube\t/business/person/company\n0.436639\t0.325128\t0.594020\tdenmark\taarhus\t/location/location/contains\n0.437027\t0.325641\t0.593797\tmohammad_khatami\tiran\t/people/person/nationality\n0.437414\t0.326154\t0.593275\tidaho\tburley\t/location/location/contains\n0.437113\t0.326154\t0.593080\tnew_york_city\torange\t/location/location/contains\n0.436813\t0.326154\t0.592607\toregon\telwha\t/location/location/contains\n0.436513\t0.326154\t0.591373\tforest_whitaker\tscotland\t/people/person/nationality\n0.436214\t0.326154\t0.591359\tmel_gibson\tisrael\t/people/person/nationality\n0.435915\t0.326154\t0.591222\tishmael_beah\tgeorge_washington_university\t/business/person/company\n0.435616\t0.326154\t0.590893\tjoann_ross\tcbs_corporation\t/business/person/company\n0.436003\t0.326667\t0.590504\tharris_county\thouston\t/location/location/contains\n0.435705\t0.326667\t0.590293\trenault\tfrance\t/people/person/nationality\n0.436090\t0.327179\t0.589753\talessandro_profumo\tunicredit\t/business/person/company\n0.435792\t0.327179\t0.589523\tjoseph_thompson\tmassachusetts_museum_of_contemporary_art\t/business/person/company\n0.435495\t0.327179\t0.589438\tjames_dimon\tnyse_group\t/business/person/company\n0.435880\t0.327692\t0.588724\tmichael_geoghegan\thsbc\t/business/person/company\n0.435583\t0.327692\t0.588660\telon_musk\tgoogle\t/business/person/company\n0.435286\t0.327692\t0.588064\tconnecticut\tm._jodi_rell\t/location/location/contains\n0.434990\t0.327692\t0.588031\trussian_river\tsonoma_county\t/location/location/contains\n0.434694\t0.327692\t0.587874\tcharles_pfizer\tgermany\t/people/person/nationality\n0.435078\t0.328205\t0.587552\tlawrence_lessig\tstanford_law_school\t/business/person/company\n0.434783\t0.328205\t0.587400\tnew_hampshire\thanover\t/location/location/contains\n0.434487\t0.328205\t0.587305\tmateusz_sawrymowicz\tpoland\t/people/person/nationality\n0.434193\t0.328205\t0.587062\tmaryland\telizabethtown_college\t/location/location/contains\n0.433898\t0.328205\t0.586918\tcalifornia\tcleveland\t/location/location/contains\n0.434282\t0.328718\t0.586892\tsouth_africa\tstellenbosch\t/location/location/contains\n0.433988\t0.328718\t0.586490\tnewark\tbroad_street\t/location/location/contains\n0.433694\t0.328718\t0.585775\tdeborah_willis\tnew_york_university\t/business/person/company\n0.433401\t0.328718\t0.585571\tjames_bulger\tboston\t/people/person/place_lived\n0.433108\t0.328718\t0.585231\tmurat_kurnaz\tgermany\t/people/person/nationality\n0.432816\t0.328718\t0.585194\tivrea\titaly\t/people/person/nationality\n0.432524\t0.328718\t0.585024\trobin_moore\tnorth_carolina_state_university\t/business/person/company\n0.432232\t0.328718\t0.584970\tjim_bennett\tnetflix\t/business/person/company\n0.432615\t0.329231\t0.584833\tgermany\tnuremberg\t/location/location/contains\n0.432323\t0.329231\t0.584778\tmike_huckabee\tchicago\t/people/person/place_lived\n0.432032\t0.329231\t0.584593\tflorida\talton_road\t/location/location/contains\n0.431742\t0.329231\t0.584234\talexander_stille\tcolumbia_university_graduate_school_of_journalism\t/business/person/company\n0.431452\t0.329231\t0.583082\tindia\tsouth_india\t/location/location/contains\n0.431162\t0.329231\t0.582805\tsanjay_nayar\tindia\t/people/person/nationality\n0.430872\t0.329231\t0.582372\tsouth_asia\tsingapore\t/location/location/contains\n0.430584\t0.329231\t0.581849\tstephen_r._wise\tjacksonville\t/people/person/place_lived\n0.430295\t0.329231\t0.581750\tjim_doyle\twisconsin\t/people/person/place_lived\n0.430007\t0.329231\t0.581687\tashley_harkleroad\tgermany\t/people/person/nationality\n0.430388\t0.329744\t0.581229\tflorida\tst._lucie\t/location/location/contains\n0.430100\t0.329744\t0.581106\tindiana\tchicagoland\t/location/location/contains\n0.430481\t0.330256\t0.580814\tronald_pofalla\tgermany\t/people/person/nationality\n0.430194\t0.330256\t0.580390\tunited_kingdom\twest_bank\t/location/location/contains\n0.429907\t0.330256\t0.580310\teric_e._schmidt\tnews_corporation\t/business/person/company\n0.430287\t0.330769\t0.579994\tasia\tsoviet_union\t/location/location/contains\n0.430000\t0.330769\t0.579779\tron_kind\twisconsin\t/people/person/place_lived\n0.429714\t0.330769\t0.579399\tchris_newton\tcleveland\t/people/person/place_lived\n0.430093\t0.331282\t0.579049\tidaho\thailey\t/location/location/contains\n0.430472\t0.331795\t0.578931\thaley_barbour\tmississippi\t/people/person/place_lived\n0.430186\t0.331795\t0.578850\tbarbet_schroeder\tscotland\t/people/person/nationality\n0.429900\t0.331795\t0.578623\tmuhtar_kent\tmary_e._minnick\t/business/person/company\n0.429615\t0.331795\t0.578501\tnew_york_city\tpratt_institute\t/location/location/contains\n0.429993\t0.332308\t0.578404\tpiedmont\titaly\t/location/administrative_division/country\n0.429708\t0.332308\t0.578068\tmike_huckabee\tmexico\t/people/person/nationality\n0.429423\t0.332308\t0.577996\tmississippi\tmagnolia\t/location/location/contains\n0.429801\t0.332821\t0.577991\tfemi_kuti\tnigeria\t/people/person/nationality\n0.429517\t0.332821\t0.577829\tshlomo_riskin\tisrael\t/people/person/nationality\n0.429233\t0.332821\t0.577684\tsean_combs\thollywood_roosevelt_hotel\t/business/person/company\n0.428949\t0.332821\t0.577620\trick_perry\tkatsuaki_watanabe\t/business/person/company\n0.428666\t0.332821\t0.577555\trichard_branson\tgeneral_electric\t/business/person/company\n0.428383\t0.332821\t0.577548\tmaurice_papon\tparis\t/people/deceased_person/place_of_death\n0.428100\t0.332821\t0.577255\ttaiwan\tnational_central_university\t/location/location/contains\n0.428477\t0.333333\t0.577052\tindia\tsimla\t/location/location/contains\n0.428195\t0.333333\t0.576909\tcollege_of_insurance\tnew_york_city\t/location/neighborhood/neighborhood_of\n0.427913\t0.333333\t0.576210\tmexico\tla_paz\t/location/location/contains\n0.427632\t0.333333\t0.576071\tconnecticut\tcarnegie_mellon_university\t/location/location/contains\n0.428008\t0.333846\t0.575367\tbeirut\tlebanese_university\t/location/location/contains\n0.427727\t0.333846\t0.574897\tpetronas\tmalaysia\t/people/person/nationality\n0.428102\t0.334359\t0.574562\tlouisiana\tbolden\t/location/location/contains\n0.427822\t0.334359\t0.574469\tnew_york_city\tpoughkeepsie\t/location/location/contains\n0.427541\t0.334359\t0.574155\tminnesota\tbuffalo_ridge\t/location/location/contains\n0.427261\t0.334359\t0.574151\tmichael_d._griffin\tmassachusetts_institute_of_technology\t/business/person/company\n0.427636\t0.334872\t0.574111\tnamibia\twindhoek\t/location/location/contains\n0.428010\t0.335385\t0.574014\tsteve_cohen\tmemphis\t/people/person/place_lived\n0.427731\t0.335385\t0.573747\tsteven_lewis\tiran\t/people/person/nationality\n0.427451\t0.335385\t0.573594\tsan_francisco\tvenice\t/location/location/contains\n0.427172\t0.335385\t0.573442\tgordon_brown\tfrance\t/people/person/nationality\n0.426893\t0.335385\t0.573314\twellesley\tst._andrews_episcopal_church\t/location/location/contains\n0.427267\t0.335897\t0.572940\toregon\tklamath_falls\t/location/location/contains\n0.426988\t0.335897\t0.572602\tdallas\thighland_springs\t/location/location/contains\n0.426710\t0.335897\t0.571886\tjames_moran\tvirginia\t/people/person/place_lived\n0.426432\t0.335897\t0.571578\trussia\ttoomas_hendrik_ilves\t/location/location/contains\n0.426805\t0.336410\t0.571440\trussia\tvolgograd\t/location/location/contains\n0.427178\t0.336923\t0.571207\twilbur_mills\tarkansas\t/people/person/place_lived\n0.426901\t0.336923\t0.571081\tisrael\thebron\t/location/location/contains\n0.426623\t0.336923\t0.570679\tÓscar_berger\tguatemala\t/people/person/nationality\n0.426347\t0.336923\t0.570659\tgermany\tfranconia\t/location/location/contains\n0.426070\t0.336923\t0.569904\tdenis_macshane\tisrael\t/people/person/nationality\n0.425794\t0.336923\t0.569312\tandy_warhol\tfrance\t/people/person/nationality\n0.425518\t0.336923\t0.568971\trussian\tukraine\t/people/person/nationality\n0.425243\t0.336923\t0.568763\tken_salazar\tcolorado\t/people/person/place_lived\n0.424968\t0.336923\t0.568458\tleonid_kuchma\tukraine\t/people/person/nationality\n0.424693\t0.336923\t0.567750\tvirginia\tsouth_carolina\t/location/location/contains\n0.424419\t0.336923\t0.567659\tglobe\tcanada\t/people/person/nationality\n0.424145\t0.336923\t0.567425\tsuffolk_county\tmerrick\t/location/location/contains\n0.423871\t0.336923\t0.567171\twest_virginia\tsulphur_springs\t/location/location/contains\n0.423598\t0.336923\t0.566931\teric_cantor\tvirginia\t/people/person/place_lived\n0.423325\t0.336923\t0.566908\tkenneth_gibson\tnewark\t/people/person/place_lived\n0.423052\t0.336923\t0.566544\trobert_savage\tnanette_lepore\t/business/person/company\n0.422780\t0.336923\t0.566490\tchristophe_rochus\tfrance\t/people/person/nationality\n0.422508\t0.336923\t0.566406\tunited_kingdom\tcanada\t/location/administrative_division/country\n0.422879\t0.337436\t0.566372\tminas_gerais\tbelo_horizonte\t/location/location/contains\n0.422608\t0.337436\t0.566344\toregon\tjesse_williams\t/location/location/contains\n0.422978\t0.337949\t0.566016\tmaher_arar\tcanada\t/people/person/nationality\n0.422707\t0.337949\t0.565487\tyuma\tsan_luis_río_colorado\t/location/location/contains\n0.422436\t0.337949\t0.565159\tpaula_todd\ttowers_perrin\t/business/person/company\n0.422165\t0.337949\t0.564606\twally_herbert\tscotland\t/people/person/nationality\n0.421895\t0.337949\t0.564409\tarkansas\tjohn_brown_university\t/location/location/contains\n0.421625\t0.337949\t0.564352\troberto_rossellini\tdenmark\t/people/person/nationality\n0.421355\t0.337949\t0.563812\tleo_strauss\tpoland\t/people/person/nationality\n0.421086\t0.337949\t0.563550\tthe_new_york_times_company\tthe_new_york_times\t/business/person/company\n0.420817\t0.337949\t0.563431\tcalifornia\tboston\t/location/location/contains\n0.421187\t0.338462\t0.563347\toregon\tportland\t/location/location/contains\n0.420918\t0.338462\t0.563168\tchianti\tsiena\t/location/location/contains\n0.420650\t0.338462\t0.562956\taltimo\tnorway\t/people/person/nationality\n0.420382\t0.338462\t0.562869\tvoltaire\tfrance\t/people/person/nationality\n0.420751\t0.338974\t0.562797\talexander_graham_bell\tcanada\t/people/person/nationality\n0.420483\t0.338974\t0.562232\tgordon_brown\tindia\t/people/person/nationality\n0.420852\t0.339487\t0.562218\tsan_francisco\tsan_francisco-oakland_bay_bridge\t/location/location/contains\n0.421220\t0.340000\t0.562092\tmexico\tguadalajara\t/location/location/contains\n0.420952\t0.340000\t0.561753\tseoul\trodin_museum\t/location/location/contains\n0.420685\t0.340000\t0.561389\tmount_baker\tlake_union\t/location/location/contains\n0.420419\t0.340000\t0.561094\tmaryland\tchesapeake\t/location/location/contains\n0.420152\t0.340000\t0.560843\twashington\tfoggy_bottom\t/location/location/contains\n0.419886\t0.340000\t0.560834\tjason_brown\tatlanta\t/people/person/place_lived\n0.419620\t0.340000\t0.560321\tlajos_kossuth\tfrance\t/people/person/nationality\n0.419355\t0.340000\t0.560059\tport_washington\tamsterdam\t/location/location/contains\n0.419722\t0.340513\t0.558848\tsyria\tdamascus\t/location/location/contains\n0.419457\t0.340513\t0.558600\talmaty\tastana\t/location/location/contains\n0.419192\t0.340513\t0.557565\tcalifornia\tjon_jerde\t/location/location/contains\n0.418927\t0.340513\t0.557120\tsalman_rushdie\tindia\t/people/person/nationality\n0.418663\t0.340513\t0.556492\tverdun\tmuslim\t/location/location/contains\n0.418399\t0.340513\t0.556455\tnew_hampshire\tmusconetcong_river\t/location/location/contains\n0.418136\t0.340513\t0.556403\trandy_williams\tcanada\t/people/person/nationality\n0.418502\t0.341026\t0.556118\tbaltimore\tinner_harbor\t/location/location/contains\n0.418239\t0.341026\t0.556078\tdreamworks\tuniversal_pictures\t/business/person/company\n0.417976\t0.341026\t0.555763\twisconsin\tj._b._van_hollen\t/location/location/contains\n0.417714\t0.341026\t0.555686\tsimone_weil\tgermany\t/people/person/nationality\n0.417451\t0.341026\t0.555334\tboston\tnortheastern_university\t/location/location/contains\n0.417189\t0.341026\t0.555078\twilliam_f._baker\tnew_york_university\t/business/person/company\n0.416928\t0.341026\t0.554737\tlyndon_b._johnson\tdominican_republic\t/people/person/nationality\n0.416667\t0.341026\t0.554736\tchicago\thawthorne_park\t/location/location/contains\n0.416406\t0.341026\t0.554489\tcanada\tottawa_river\t/location/location/contains\n0.416145\t0.341026\t0.554369\tportugal\toporto\t/location/location/contains\n0.416510\t0.341538\t0.554301\talessandro_profumo\titaly\t/people/person/nationality\n0.416250\t0.341538\t0.554194\ttunisia\tj._paul_getty_museum\t/location/location/contains\n0.415990\t0.341538\t0.554067\tvarel\tgermany\t/people/person/nationality\n0.415730\t0.341538\t0.553796\trebecca_weintraub\tisrael\t/people/person/nationality\n0.416095\t0.342051\t0.553778\theinrich_böll\tgermany\t/people/person/nationality\n0.415835\t0.342051\t0.553263\tconnecticut\telihu_yale\t/location/location/contains\n0.415576\t0.342051\t0.553148\tgoogle\tefficient_frontier\t/business/person/company\n0.415318\t0.342051\t0.553129\titaly\titalian_town\t/location/location/contains\n0.415059\t0.342051\t0.552882\tdavid_mcwilliams\tireland\t/people/person/nationality\n0.414801\t0.342051\t0.552875\twoodrow_wilson\talbania\t/people/person/nationality\n0.414543\t0.342051\t0.552848\tjay_leno\tboston_university\t/business/person/company\n0.414286\t0.342051\t0.552677\tdelaware_park\tbuffalo\t/location/neighborhood/neighborhood_of\n0.414649\t0.342564\t0.552329\tthailand\tnarathiwat\t/location/location/contains\n0.414392\t0.342564\t0.552161\tbill_gates\tgermany\t/people/person/nationality\n0.414135\t0.342564\t0.552149\tpaul_kagame\tindia\t/people/person/nationality\n0.414498\t0.343077\t0.551894\tunited_states_of_america\tvirginia\t/location/country/administrative_divisions\n0.414241\t0.343077\t0.551830\traul_allegre\tmexico\t/people/person/nationality\n0.413985\t0.343077\t0.551806\tmark_sanford\tsouth_carolina\t/people/person/place_lived\n0.413729\t0.343077\t0.550842\tnew_york_city\thouston\t/location/location/contains\n0.413473\t0.343077\t0.550592\tindia\tcoromandel_coast\t/location/location/contains\n0.413218\t0.343077\t0.550462\tiowa\tboston\t/location/location/contains\n0.413580\t0.343590\t0.550445\tkwazulu-natal\tsouth_africa\t/location/administrative_division/country\n0.413942\t0.344103\t0.550415\tiowa\tdavenport\t/location/location/contains\n0.413687\t0.344103\t0.548663\tmaryland\tflorida\t/location/location/contains\n0.413432\t0.344103\t0.548504\tvermont\tlong_trail\t/location/location/contains\n0.413793\t0.344615\t0.548456\tmexico\tjalisco\t/location/country/administrative_divisions\n0.413538\t0.344615\t0.548386\thood_river\tseattle\t/location/location/contains\n0.413284\t0.344615\t0.547635\tlouisiana\thouston\t/location/location/contains\n0.413030\t0.344615\t0.546821\tsomalia\tpuntland\t/location/location/contains\n0.412776\t0.344615\t0.546432\tnigeria\tnuhu_ribadu\t/location/location/contains\n0.412523\t0.344615\t0.546412\tturkey\tsunni_islam\t/location/location/contains\n0.412270\t0.344615\t0.546267\tchris_newton\tmemphis\t/people/person/place_lived\n0.412017\t0.344615\t0.545940\tlos_angeles_county\ttejon_ranch\t/location/location/contains\n0.411765\t0.344615\t0.545858\tgermany\tuniversity_of_ulm\t/location/location/contains\n0.411513\t0.344615\t0.545554\toklahoma\tcolorado\t/location/location/contains\n0.411873\t0.345128\t0.545273\twashington\tbainbridge_island\t/location/location/contains\n0.411621\t0.345128\t0.545019\tflorida\ttaurean_green\t/location/location/contains\n0.411369\t0.345128\t0.544879\thosni_mubarak\tiran\t/people/person/nationality\n0.411729\t0.345641\t0.544868\tkentucky\tcentre_college\t/location/location/contains\n0.412088\t0.346154\t0.544840\tmelvin_van_peebles\tchicago\t/people/person/place_of_birth\n0.411836\t0.346154\t0.544664\tmississippi\tstewart\t/location/location/contains\n0.411585\t0.346154\t0.544653\tgreece\tdenizli\t/location/location/contains\n0.411335\t0.346154\t0.544571\thugh_crean\tseattle\t/business/person/company\n0.411084\t0.346154\t0.544538\tnew_york_city\tparamus\t/location/location/contains\n0.410834\t0.346154\t0.544001\tvinod_khosla\tkhosla_ventures\t/business/person/company\n0.410584\t0.346154\t0.543723\ttom_arnold\tterrapass\t/business/person/company\n0.410334\t0.346154\t0.543675\tvirginia\tfort_myer\t/location/location/contains\n0.410693\t0.346667\t0.543644\tÓscar_arias\tcosta_rica\t/people/person/nationality\n0.411050\t0.347179\t0.543451\trhode_island\twarwick\t/location/location/contains\n0.410801\t0.347179\t0.543343\tportland\tpearl\t/location/location/contains\n0.411158\t0.347692\t0.543220\titaly\tancona\t/location/location/contains\n0.411515\t0.348205\t0.542815\tvirginia\tnorfolk\t/location/location/contains\n0.411266\t0.348205\t0.542737\tiowa\twoodward\t/location/location/contains\n0.411017\t0.348205\t0.542684\tconor_casey\tgermany\t/people/person/nationality\n0.410768\t0.348205\t0.542501\tkosice\tslovakia\t/people/person/nationality\n0.410520\t0.348205\t0.542433\tcorrèze\tfrance\t/people/person/nationality\n0.410272\t0.348205\t0.542333\tdon_miller\tpenske_racing\t/business/person/company\n0.410024\t0.348205\t0.541734\tspain\tbilbao\t/location/location/contains\n0.409777\t0.348205\t0.541519\tferdowsi\tiran\t/people/person/nationality\n0.409530\t0.348205\t0.541349\tallen_ginsberg\tsan_francisco\t/people/person/place_lived\n0.409283\t0.348205\t0.541013\tschibsted\tnorway\t/people/person/nationality\n0.409036\t0.348205\t0.540839\tclifton_daniel\tthe_new_york_times\t/business/person/company\n0.408790\t0.348205\t0.540582\trobert_weil\tw._w._norton\t/business/person/company\n0.408544\t0.348205\t0.540472\tmarianne_williamson\tfrance\t/people/person/nationality\n0.408900\t0.348718\t0.540192\thans-werner_sinn\tgermany\t/people/person/nationality\n0.408654\t0.348718\t0.540064\tjohn_c._mather\tnasa\t/business/person/company\n0.408408\t0.348718\t0.539790\tkentucky\tbirmingham\t/location/location/contains\n0.408764\t0.349231\t0.539771\tcalifornia\tstanford_university\t/location/location/contains\n0.408518\t0.349231\t0.539523\tgoa\tindia\t/people/person/nationality\n0.408273\t0.349231\t0.538990\tmashhad\tiran\t/location/administrative_division/country\n0.408029\t0.349231\t0.538831\thappy_chandler\tmexico\t/people/person/nationality\n0.407784\t0.349231\t0.538401\tidaho\tboise_state_university\t/location/location/contains\n0.407540\t0.349231\t0.538198\twashington\tnational_mall\t/location/location/contains\n0.407297\t0.349231\t0.537986\tcalifornia\tseattle\t/location/location/contains\n0.407053\t0.349231\t0.537561\tgatineau\tottawa_river\t/location/location/contains\n0.406810\t0.349231\t0.537503\tanthony_bannon\tbuffalo\t/people/person/place_lived\n0.406567\t0.349231\t0.537411\tbuffalo\tjason_pominville\t/location/location/contains\n0.406325\t0.349231\t0.537245\tcalifornia\tcalcutta\t/location/location/contains\n0.406082\t0.349231\t0.537092\tjesus_christ\tisrael\t/people/person/nationality\n0.405840\t0.349231\t0.537071\tmaj-britt_nilsson\tstockholm\t/people/person/place_of_birth\n0.405599\t0.349231\t0.537005\tcelia_franca\tnational_ballet_of_canada\t/business/person/company\n0.405357\t0.349231\t0.536942\tted_welch\tnashville\t/people/person/place_lived\n0.405116\t0.349231\t0.536927\tindiana\twabash_college\t/location/location/contains\n0.404875\t0.349231\t0.536610\tneville_chamberlain\tgermany\t/people/person/nationality\n0.404635\t0.349231\t0.536380\tsan_francisco\tcryptography_research\t/location/location/contains\n0.404988\t0.349744\t0.536036\tjalisco\tmexico\t/location/administrative_division/country\n0.404748\t0.349744\t0.535542\tscandinavia\tcanada\t/location/administrative_division/country\n0.404508\t0.349744\t0.535235\tbernd_schuster\tspain\t/people/person/nationality\n0.404268\t0.349744\t0.535125\tkurt_wolf\tgermany\t/people/person/nationality\n0.404028\t0.349744\t0.534333\tyeongcheon\tsouth_korea\t/people/person/nationality\n0.404381\t0.350256\t0.533473\tfranck_riboud\tfrance\t/people/person/nationality\n0.404142\t0.350256\t0.533294\tisfahan\tiran\t/location/administrative_division/country\n0.404494\t0.350769\t0.533198\tchile\tpunta_arenas\t/location/location/contains\n0.404846\t0.351282\t0.532965\titaly\tpiedmont\t/location/location/contains\n0.405198\t0.351795\t0.532532\tcape_may_county\tstone_harbor\t/location/location/contains\n0.404959\t0.351795\t0.532416\to'donnell\tboston\t/people/person/place_lived\n0.405310\t0.352308\t0.532227\tconnecticut\tnew_britain\t/location/location/contains\n0.405071\t0.352308\t0.532008\tunion_county\tessex\t/location/location/contains\n0.404832\t0.352308\t0.531654\tnorth_dakota\tfort_union\t/location/location/contains\n0.404594\t0.352308\t0.531515\titaly\tcurtis_institute_of_music\t/location/location/contains\n0.404944\t0.352821\t0.531367\titaly\tcampania\t/location/location/contains\n0.405294\t0.353333\t0.531236\tcalifornia\tmills_college\t/location/location/contains\n0.405644\t0.353846\t0.530815\toklahoma\tnorman\t/location/location/contains\n0.405405\t0.353846\t0.530692\tsan_carlos_city\tphilippines\t/people/person/nationality\n0.405167\t0.353846\t0.530685\tarica\tatlanta\t/people/person/place_lived\n0.405516\t0.354359\t0.530558\twestchester_county\tyorktown\t/location/location/contains\n0.405865\t0.354872\t0.530044\tdorchester\tboston\t/location/neighborhood/neighborhood_of\n0.406213\t0.355385\t0.529552\tromania\tbucharest\t/location/location/contains\n0.405975\t0.355385\t0.529179\tisaiah_washington\tscotland\t/people/person/nationality\n0.405738\t0.355385\t0.529011\tcheikh_anta_diop\tsenegal\t/people/person/nationality\n0.406085\t0.355897\t0.528364\ted_colligan\tpalm\t/business/person/company\n0.405848\t0.355897\t0.528279\tsandy_johnson\tdominican_republic\t/people/person/nationality\n0.406195\t0.356410\t0.527933\taileen_wuornos\tflorida\t/people/person/place_lived\n0.405958\t0.356410\t0.527500\tflorida\tscottsdale\t/location/location/contains\n0.405721\t0.356410\t0.527429\twestport\twinslow_park\t/location/location/contains\n0.405484\t0.356410\t0.527351\tflorida\tbarry_lubetkin\t/location/location/contains\n0.405248\t0.356410\t0.527244\tstaten_island\tst._george\t/location/location/contains\n0.405012\t0.356410\t0.527041\tsouth_korea\twando\t/location/location/contains\n0.404776\t0.356410\t0.526431\tmichael_kohlmann\tgermany\t/people/person/nationality\n0.404540\t0.356410\t0.526271\tvirginia\tst._michaels\t/location/location/contains\n0.404305\t0.356410\t0.526217\tgermany\tbayer_leverkusen\t/location/location/contains\n0.404070\t0.356410\t0.526158\tsacyr_vallehermoso\tfrance\t/people/person/nationality\n0.403835\t0.356410\t0.526080\tingrid_mattson\thartford_seminary\t/business/person/company\n0.403600\t0.356410\t0.526046\tukraine\tgalicia\t/location/location/contains\n0.403366\t0.356410\t0.525999\tbrad_lewis\tfrance\t/people/person/nationality\n0.403132\t0.356410\t0.525917\tchris_houston\tarkansas\t/people/person/place_lived\n0.403478\t0.356923\t0.525603\tjean-david_levitte\tfrance\t/people/person/nationality\n0.403244\t0.356923\t0.525488\tdarfur\tbirao\t/location/location/contains\n0.403011\t0.356923\t0.525411\tjohn_j._mcgrath\tphilippines\t/people/person/nationality\n0.402778\t0.356923\t0.525203\tbank_sepah\tiran\t/people/person/nationality\n0.402545\t0.356923\t0.524908\tmelissa_fay_greene\tatlanta\t/people/person/place_lived\n0.402312\t0.356923\t0.524263\telinor_carucci\tmexico\t/people/person/nationality\n0.402080\t0.356923\t0.523890\tbob_dole\tiowa\t/people/person/place_lived\n0.402425\t0.357436\t0.523751\trhode_island\tjohnston\t/location/location/contains\n0.402770\t0.357949\t0.523702\tira_winkler\tinformation_systems_security_association\t/business/person/company\n0.402537\t0.357949\t0.523458\tdaniel_pauly\tuniversity_of_british_columbia\t/business/person/company\n0.402305\t0.357949\t0.523380\tflorida\thollywood\t/location/location/contains\n0.402074\t0.357949\t0.522121\thuntington\tvanderbilt_museum\t/location/location/contains\n0.401842\t0.357949\t0.521098\tdaytona_beach\tdaytona_international_speedway\t/location/location/contains\n0.401611\t0.357949\t0.521022\tnigeria\tuniversity_of_ibadan\t/location/location/contains\n0.401380\t0.357949\t0.520712\tchristophe_rochus\tgermany\t/people/person/nationality\n0.401149\t0.357949\t0.520478\tmarty_stuart\tnashville\t/people/person/place_lived\n0.400919\t0.357949\t0.520424\tmaryland\tjill_st._john\t/location/location/contains\n0.400689\t0.357949\t0.520019\tsiena\ttroy\t/location/location/contains\n0.400459\t0.357949\t0.519505\tratan_tata\ttata\t/business/person/company\n0.400803\t0.358462\t0.519400\trussia\tnizhny_novgorod\t/location/location/contains\n0.400573\t0.358462\t0.518605\tminnesota\tspirit_lake\t/location/location/contains\n0.400344\t0.358462\t0.518359\tsuffolk_county\tst._joseph\t/location/location/contains\n0.400114\t0.358462\t0.518165\tbob_stapleton\titaly\t/people/person/nationality\n0.399886\t0.358462\t0.518020\tthe_new_york_times\tiran\t/people/person/nationality\n0.400229\t0.358974\t0.517681\tatari\tnolan_bushnell\t/business/company/founders\n0.400571\t0.359487\t0.517603\trobert_l._johnson\tblack_entertainment_television\t/business/person/company\n0.400914\t0.360000\t0.517537\tcook_county\tchicago\t/location/location/contains\n0.401256\t0.360513\t0.517348\tjean_baudrillard\tparis\t/people/deceased_person/place_of_death\n0.401027\t0.360513\t0.516647\tidaho\teastern_washington\t/location/location/contains\n0.400798\t0.360513\t0.516460\tontario\tst._marys_river\t/location/location/contains\n0.400570\t0.360513\t0.516203\tpol_pot\tgermany\t/people/person/nationality\n0.400342\t0.360513\t0.515923\tscott_rolen\tboston\t/people/person/place_lived\n0.400683\t0.361026\t0.515872\titaly\tverona\t/location/location/contains\n0.401024\t0.361538\t0.515824\tjohn_w._snow\tcsx_corporation\t/business/person/company\n0.400796\t0.361538\t0.515330\tkönigsdorf\tgermany\t/people/person/nationality\n0.401136\t0.362051\t0.515272\talan_paton\tsouth_africa\t/people/person/nationality\n0.400909\t0.362051\t0.514730\tnewark\tunion_city\t/location/location/contains\n0.400681\t0.362051\t0.514573\tsuffolk_county\twalgreens\t/location/location/contains\n0.401021\t0.362564\t0.514418\tdavid_wharnsby\ttoronto\t/people/person/place_lived\n0.400794\t0.362564\t0.514158\tmontana\tcanada\t/location/administrative_division/country\n0.400567\t0.362564\t0.513357\twestchester_county\tpaterson\t/location/location/contains\n0.400340\t0.362564\t0.512833\tjoe_courtney\tconnecticut\t/people/person/place_lived\n0.400679\t0.363077\t0.512778\tcanada\tcalgary\t/location/location/contains\n0.400452\t0.363077\t0.512626\tnorth_adams\tmarshall_street\t/location/location/contains\n0.400226\t0.363077\t0.512596\tbill_ritter\tmontana\t/people/person/place_lived\n0.400000\t0.363077\t0.512405\tmontana\tkirby\t/location/location/contains\n0.399774\t0.363077\t0.512401\tclay_shirky\tnew_york_university\t/business/person/company\n0.399549\t0.363077\t0.512044\tlouisville\tbrooks\t/location/location/contains\n0.399323\t0.363077\t0.511937\tconnecticut\tmaryland\t/people/person/place_lived\n0.399098\t0.363077\t0.511856\tcanada\tlake_huron\t/location/location/contains\n0.398873\t0.363077\t0.511717\tmichael_van_valkenburgh\tcharles_eliot\t/business/person/company\n0.398649\t0.363077\t0.511193\tst._thomas\tgermany\t/people/person/nationality\n0.398424\t0.363077\t0.511130\tcannon_mountain\tnew_hampshire\t/people/person/place_lived\n0.398200\t0.363077\t0.511103\tjohn_backus\tstanford_university\t/business/person/company\n0.397976\t0.363077\t0.510901\tcalifornia\twright\t/location/location/contains\n0.397753\t0.363077\t0.510190\tshay_doron\tmaryland\t/people/person/place_lived\n0.398091\t0.363590\t0.509963\tbranford\tstony_creek\t/location/location/contains\n0.397868\t0.363590\t0.509728\thouston\tgeorge_bush_intercontinental_airport\t/location/location/contains\n0.398205\t0.364103\t0.509434\tlaurie_baker\tindia\t/people/person/nationality\n0.398543\t0.364615\t0.509107\tkerala\ternakulam\t/location/location/contains\n0.398880\t0.365128\t0.508974\tcalifornia\tbrentwood\t/location/location/contains\n0.398656\t0.365128\t0.508677\tabdel_basset_ali_al-megrahi\tscotland\t/people/person/nationality\n0.398433\t0.365128\t0.508520\tconan_o'brien\tnbc\t/business/person/company\n0.398210\t0.365128\t0.508482\tjim_gilmore\tvirginia\t/people/person/place_lived\n0.397988\t0.365128\t0.508352\tsam_gejdenson\tconnecticut\t/people/person/place_lived\n0.397765\t0.365128\t0.507745\tvermont\tethan_allen\t/location/location/contains\n0.397543\t0.365128\t0.507203\tgoogle\tgeneral_electric\t/business/person/company\n0.397879\t0.365641\t0.506448\tjoseph_cedar\tisrael\t/people/person/nationality\n0.397658\t0.365641\t0.506280\temma_goldman\tspain\t/people/person/nationality\n0.397436\t0.365641\t0.505691\tcroton_dam\tnew_york_city\t/location/neighborhood/neighborhood_of\n0.397214\t0.365641\t0.505506\tkarl_shapiro\tmontana\t/people/person/place_lived\n0.397550\t0.366154\t0.505500\tcolorado\tsnowmass\t/location/location/contains\n0.397885\t0.366667\t0.505479\tterry_j._lundgren\tfederated_department_stores\t/business/person/company\n0.397664\t0.366667\t0.505072\triverhead\tcalverton_national_cemetery\t/location/location/contains\n0.397443\t0.366667\t0.504859\tted_conover\tnew_york_university\t/business/person/company\n0.397222\t0.366667\t0.504796\thong_kong_island\tvictoria_peak\t/location/location/contains\n0.397557\t0.367179\t0.504712\tclaude_brasseur\tfrance\t/people/person/nationality\n0.397336\t0.367179\t0.504606\tchicago\tunited_states_of_america\t/location/administrative_division/country\n0.397116\t0.367179\t0.504420\tjohn_w._snow\tgermany\t/people/person/nationality\n0.397450\t0.367692\t0.504296\tasia\tthailand\t/location/location/contains\n0.397784\t0.368205\t0.504285\tcanada\tst._catharines\t/location/location/contains\n0.397564\t0.368205\t0.503676\tireland\tdesmond_guinness\t/location/location/contains\n0.397344\t0.368205\t0.503465\tair_berlin\tgermany\t/people/person/nationality\n0.397124\t0.368205\t0.503419\tmike_gravel\tnew_york_city\t/people/person/place_lived\n0.396904\t0.368205\t0.503009\tcalifornia\tcolony_club\t/location/location/contains\n0.397238\t0.368718\t0.502783\tclaudio_x._gonzalez\tkimberly-clark\t/business/person/company\n0.397018\t0.368718\t0.502632\tflorida\trhode_island\t/location/location/contains\n0.396799\t0.368718\t0.502334\tvirginia\tsouth_kent\t/location/location/contains\n0.396580\t0.368718\t0.502196\tchicago\ttucson_international_airport\t/location/location/contains\n0.396362\t0.368718\t0.501811\trondout_reservoir\tnew_york_city\t/location/neighborhood/neighborhood_of\n0.396143\t0.368718\t0.501747\thosni_mubarak\tisrael\t/people/person/nationality\n0.395925\t0.368718\t0.501376\tnew_york_city\tfairfield_county\t/location/location/contains\n0.396258\t0.369231\t0.501276\tvermont\tmiddlebury\t/location/location/contains\n0.396040\t0.369231\t0.501221\tmarshall_rogers\tfremont\t/people/deceased_person/place_of_death\n0.396372\t0.369744\t0.500802\tchuck_hagel\tnebraska\t/people/person/place_lived\n0.396154\t0.369744\t0.500215\tkevin_coughlin\tcleveland\t/people/person/place_lived\n0.396485\t0.370256\t0.499948\tflorida\tport_st._lucie\t/location/location/contains\n0.396268\t0.370256\t0.499742\tjulia_mancuso\tspain\t/people/person/nationality\n0.396050\t0.370256\t0.499495\ta._c._grayling\tfrance\t/people/person/nationality\n0.395833\t0.370256\t0.499463\tconnecticut\tmilford\t/location/location/contains\n0.395616\t0.370256\t0.498680\tmexico_city\tspencer_tunick\t/location/location/contains\n0.395400\t0.370256\t0.498031\tburgundy\tfrance\t/location/administrative_division/country\n0.395183\t0.370256\t0.497243\tharrison_j._goldin\tbuffalo\t/people/person/place_lived\n0.394967\t0.370256\t0.497088\tcentral_asia\tbukhara\t/location/location/contains\n0.394751\t0.370256\t0.497068\tmaryland\tdunkirk\t/location/location/contains\n0.394536\t0.370256\t0.496977\tiran\tdenizli\t/location/location/contains\n0.394320\t0.370256\t0.496665\tavi_dichter\tisrael\t/people/person/nationality\n0.394105\t0.370256\t0.496653\tjimmy_rollins\tboston\t/people/person/place_lived\n0.394435\t0.370769\t0.496121\tkansas\twichita\t/location/location/contains\n0.394220\t0.370769\t0.495970\tnathaniel_hawthorne\tnew_york_city\t/people/person/place_lived\n0.394005\t0.370769\t0.495861\tchester_county\twellsboro\t/location/location/contains\n0.393791\t0.370769\t0.495792\tnational_opinion_research_center\tuniversity_of_chicago\t/business/person/company\n0.393576\t0.370769\t0.495704\tnizamuddin\tindia\t/people/person/nationality\n0.393362\t0.370769\t0.495568\toklahoma\tarapaho\t/location/location/contains\n0.393148\t0.370769\t0.495559\tkentucky\trobertson_county\t/location/location/contains\n0.393478\t0.371282\t0.495383\ttampa\tlegends_field\t/location/location/contains\n0.393808\t0.371795\t0.495211\tbooker_t._jones\tmemphis\t/people/person/place_lived\n0.393594\t0.371795\t0.494912\tjosé_rijo\tdominican_republic\t/people/person/nationality\n0.393380\t0.371795\t0.494901\tgermany\tpergamon\t/location/location/contains\n0.393167\t0.371795\t0.494812\tat&t\tbellsouth\t/business/person/company\n0.392954\t0.371795\t0.494500\tcalifornia\tbaltimore\t/location/location/contains\n0.392741\t0.371795\t0.494294\titaly\tclemente_mastella\t/location/location/contains\n0.392528\t0.371795\t0.494031\tjames_henry_hammond\tsouth_carolina\t/people/person/place_lived\n0.392316\t0.371795\t0.494022\tvictor_rojas\tphilippines\t/people/person/nationality\n0.392104\t0.371795\t0.492362\twestchester_county\trockefeller\t/location/location/contains\n0.391892\t0.371795\t0.492195\tjustin_wolfers\tindia\t/people/person/nationality\n0.391680\t0.371795\t0.491597\tlouisiana\teverglades\t/location/location/contains\n0.391469\t0.371795\t0.491470\tfrance\tvalence\t/location/location/contains\n0.391257\t0.371795\t0.491451\tpol_pot\tthailand\t/people/person/nationality\n0.391046\t0.371795\t0.491343\tbob_mitchell\tportland\t/people/person/place_lived\n0.391375\t0.372308\t0.491153\tunited_states_of_america\tchicago\t/location/location/contains\n0.391703\t0.372821\t0.490874\twilliam_easterly\tnew_york_university\t/business/person/company\n0.391492\t0.372821\t0.490695\tjaworzno\tpoland\t/people/person/nationality\n0.391819\t0.373333\t0.490526\tdavid_sloan_wilson\tbinghamton_university\t/business/person/company\n0.391608\t0.373333\t0.490053\tcalifornia\tcardiff\t/location/location/contains\n0.391398\t0.373333\t0.489541\tontario\twinsor\t/location/location/contains\n0.391725\t0.373846\t0.489263\tbaja_california\tmexico\t/location/administrative_division/country\n0.391515\t0.373846\t0.489016\tjohn_edwards\tnew_york_city\t/people/person/place_lived\n0.391304\t0.373846\t0.488847\tnatasha_hastings\tsouth_carolina\t/people/person/place_lived\n0.391094\t0.373846\t0.488582\twestchester_county\tvalencia\t/location/location/contains\n0.390885\t0.373846\t0.488534\tvermont\tnorth_hill\t/location/location/contains\n0.391211\t0.374359\t0.488314\talameda_county\toakland\t/location/location/contains\n0.391002\t0.374359\t0.488256\ternie_grunwald\tfrance\t/people/person/nationality\n0.390792\t0.374359\t0.487893\tcalifornia\tsouth_bronx\t/location/location/contains\n0.390583\t0.374359\t0.487801\tiowa\tarkansas\t/location/location/contains\n0.390374\t0.374359\t0.487772\tluise_rainer\tconnecticut\t/people/person/place_lived\n0.390166\t0.374359\t0.487677\trocky_mountains\tboulder\t/location/location/contains\n0.389957\t0.374359\t0.487564\tmsn_tv\tsteve_perlman\t/business/person/company\n0.389749\t0.374359\t0.487494\ttila_tequila\tnews_corporation\t/business/person/company\n0.389541\t0.374359\t0.486886\tjosh_boone\tconnecticut\t/people/person/place_lived\n0.389333\t0.374359\t0.486826\tgardaland\titaly\t/people/person/nationality\n0.389126\t0.374359\t0.486686\tdingwall\tscotland\t/people/person/nationality\n0.388918\t0.374359\t0.486413\tindia\thcl_technologies\t/location/location/contains\n0.388711\t0.374359\t0.485894\treza_shah\tiran\t/people/person/nationality\n0.388505\t0.374359\t0.485791\tjasmine_dellal\tspain\t/people/person/nationality\n0.388298\t0.374359\t0.485711\twashington\tnational_cherry_blossom_festival\t/location/location/contains\n0.388091\t0.374359\t0.485407\ttybee_island\tatlanta\t/people/person/place_lived\n0.387885\t0.374359\t0.485403\tcolorado\tlafayette\t/location/location/contains\n0.388210\t0.374872\t0.484864\titaly\tbardolino\t/location/location/contains\n0.388004\t0.374872\t0.484797\tpatrick_ireland\tireland\t/people/person/nationality\n0.387798\t0.374872\t0.484536\tmississippi\tsan_jose\t/location/location/contains\n0.387593\t0.374872\t0.484312\tlaos\tloei_province\t/location/location/contains\n0.387387\t0.374872\t0.484219\toklahoma\tmexico_city\t/location/location/contains\n0.387182\t0.374872\t0.484185\tdominican_republic\tport_st._lucie\t/location/location/contains\n0.386977\t0.374872\t0.484181\tcalifornia\tgeorgia_aquarium\t/location/location/contains\n0.387302\t0.375385\t0.483913\tchristian_de_portzamparc\tfrance\t/people/person/nationality\n0.387097\t0.375385\t0.483756\tthomas_w._lasorda\tjohn_w._snow\t/business/person/company\n0.386892\t0.375385\t0.483738\trussell_merryman\tyoutube\t/business/person/company\n0.386688\t0.375385\t0.483692\tjohn_o'sullivan\tcanada\t/people/person/nationality\n0.387012\t0.375897\t0.483613\twaterloo\tuniversity_of_waterloo\t/location/location/contains\n0.386807\t0.375897\t0.483569\tgeorge_h._w._bush\tnew_hampshire\t/people/person/place_lived\n0.386603\t0.375897\t0.483292\tjohnson_&_wales_university\tharborside\t/location/location/contains\n0.386400\t0.375897\t0.483137\tjeff_bernstein\tnew_york_university\t/business/person/company\n0.386196\t0.375897\t0.482700\tsan_francisco\tcliff_house\t/location/location/contains\n0.385993\t0.375897\t0.482233\tcoahuila\tspain\t/people/person/nationality\n0.385789\t0.375897\t0.481932\tpalo_alto\tstanford_shopping_center\t/location/location/contains\n0.386113\t0.376410\t0.481848\trichmond_valley\tstaten_island\t/location/neighborhood/neighborhood_of\n0.385910\t0.376410\t0.481765\tiran\tzahra_eshraghi\t/location/location/contains\n0.385707\t0.376410\t0.481620\txinjiang\thebei\t/location/location/contains\n0.385504\t0.376410\t0.481588\trodney_ellis\thouston\t/people/person/place_lived\n0.385302\t0.376410\t0.481270\tcraig_claiborne\tmississippi\t/people/person/place_lived\n0.385624\t0.376923\t0.481052\tvirginia\twestover\t/location/location/contains\n0.385422\t0.376923\t0.480900\twestchester_county\ttufts_university\t/location/location/contains\n0.385220\t0.376923\t0.480823\tsan_jose\talmaden_research_center\t/location/location/contains\n0.385542\t0.377436\t0.480500\tstuart_rosenberg\tbeverly_hills\t/people/deceased_person/place_of_death\n0.385340\t0.377436\t0.480419\tkentucky\tcattaraugus\t/location/location/contains\n0.385139\t0.377436\t0.480324\tnew_york_city\tkeansburg\t/location/location/contains\n0.384937\t0.377436\t0.479866\tlori_swanson\tminnesota\t/people/person/place_lived\n0.385259\t0.377949\t0.479807\tspain\tcatalonia\t/location/country/administrative_divisions\n0.385057\t0.377949\t0.479511\tdick_ebersol\tnbc\t/business/person/company\n0.384856\t0.377949\t0.478946\tstanley_wasserman\tindiana_university\t/business/person/company\n0.384656\t0.377949\t0.478766\tsyracuse\tbuffalo\t/location/location/contains\n0.384455\t0.377949\t0.478647\toklahoma\tindian_territory\t/location/location/contains\n0.384254\t0.377949\t0.478196\tdallas\tharvest_partners\t/location/location/contains\n0.384054\t0.377949\t0.478100\tcolony_club\tnew_york_city\t/location/neighborhood/neighborhood_of\n0.384375\t0.378462\t0.478029\tfrance\tcorrèze\t/location/country/administrative_divisions\n0.384175\t0.378462\t0.477980\tdieterich_buxtehude\tdenmark\t/people/person/nationality\n0.383975\t0.378462\t0.477717\tholt_renfrew\tcanada\t/people/person/nationality\n0.383775\t0.378462\t0.477351\tcaribbean\tmacuto\t/location/location/contains\n0.383576\t0.378462\t0.477128\tannie_leibovitz\tboston\t/people/person/place_lived\n0.383896\t0.378974\t0.476836\tmargaret_mitchell\tatlanta\t/people/person/place_lived\n0.383697\t0.378974\t0.476770\tfrance\tlaguiole\t/location/location/contains\n0.383498\t0.378974\t0.476702\tvali_nasr\tnaval_postgraduate_school\t/business/person/company\n0.383817\t0.379487\t0.476666\tjosé_calderón\tspain\t/people/person/nationality\n0.383618\t0.379487\t0.476362\tjoe_beck\tatlanta\t/people/person/place_lived\n0.383420\t0.379487\t0.476038\titaly\tclifton\t/location/location/contains\n0.383221\t0.379487\t0.475360\tcolorado\tfrisco\t/location/location/contains\n0.383023\t0.379487\t0.475318\ttouraine\tfrance\t/location/administrative_division/country\n0.382825\t0.379487\t0.475222\tvirginia\tmontgomery_county\t/location/location/contains\n0.382627\t0.379487\t0.475201\tvermont\tmckibben\t/location/location/contains\n0.382429\t0.379487\t0.474447\tiowa\ttipton\t/location/location/contains\n0.382231\t0.379487\t0.474292\tstanley_park\tanfield\t/location/location/contains\n0.382034\t0.379487\t0.474267\titaly\tcatalonia\t/location/location/contains\n0.381837\t0.379487\t0.474244\tcatalonia\tmadrid\t/location/location/contains\n0.381640\t0.379487\t0.473854\tkhosla_ventures\tsean_simpson\t/business/person/company\n0.381443\t0.379487\t0.473732\tjulie_taymor\tsouth_africa\t/people/person/nationality\n0.381247\t0.379487\t0.473500\tsocotra\tyemen\t/people/person/nationality\n0.381050\t0.379487\t0.473126\tcanada\tdetroit_river\t/location/location/contains\n0.381369\t0.380000\t0.473017\tmexico\tguanajuato\t/location/country/administrative_divisions\n0.381173\t0.380000\t0.472981\tvermont\tsugarbush\t/location/location/contains\n0.380977\t0.380000\t0.472807\tpaul_g._pinsky\tmaryland\t/people/person/place_lived\n0.380781\t0.380000\t0.472517\trobert_kendrick\tspain\t/people/person/nationality\n0.380586\t0.380000\t0.472423\tessex\tessex_meadows\t/location/location/contains\n0.380390\t0.380000\t0.472421\tmichael_mori\taustralia\t/people/person/nationality\n0.380195\t0.380000\t0.472360\tconnecticut\tmount_kisco\t/location/location/contains\n0.380000\t0.380000\t0.471757\tbernard_lagat\taustralia\t/people/person/nationality\n0.379805\t0.380000\t0.471615\tthomas_dewey\tnew_york_city\t/people/person/place_lived\n0.379611\t0.380000\t0.471251\tireland\tnorthern_europe\t/location/location/contains\n0.379416\t0.380000\t0.471103\tfrance\tbesançon\t/location/location/contains\n0.379222\t0.380000\t0.470847\tm._jodi_rell\tconnecticut\t/people/person/place_lived\n0.379028\t0.380000\t0.470274\thood_river\toak_street\t/location/location/contains\n0.378834\t0.380000\t0.470157\tvirginia\tgreenberg_traurig\t/location/location/contains\n0.378641\t0.380000\t0.469930\tjoseph_mitchell\tireland\t/people/person/nationality\n0.378447\t0.380000\t0.469799\tunited_states_of_america\tbernard_kerik\t/location/location/contains\n0.378254\t0.380000\t0.469711\tankara\tdenizli\t/location/location/contains\n0.378061\t0.380000\t0.469441\tlawrence_lessig\tcreative_commons\t/business/person/company\n0.377868\t0.380000\t0.469190\tconnecticut\tbloomfield\t/location/location/contains\n0.378186\t0.380513\t0.468769\trussia\tvankarem\t/location/location/contains\n0.377993\t0.380513\t0.468644\tjill_abramson\tthe_new_york_times\t/business/person/company\n0.378310\t0.381026\t0.468356\tindiana\tsanta_claus\t/location/location/contains\n0.378117\t0.381026\t0.468263\tauxerre\tfrance\t/people/person/nationality\n0.377925\t0.381026\t0.468034\ttopeka\tatchison\t/location/location/contains\n0.377733\t0.381026\t0.467981\tiowa\tindian_hills\t/location/location/contains\n0.377541\t0.381026\t0.467899\tnew_york_city\tboston\t/location/location/contains\n0.377349\t0.381026\t0.467667\tgelderland\tamsterdam\t/location/location/contains\n0.377665\t0.381538\t0.467486\tcroatia\tzagreb\t/location/location/contains\n0.377473\t0.381538\t0.467454\te._b._white\tconnecticut\t/people/person/place_lived\n0.377282\t0.381538\t0.466921\tiowa\tmontezuma\t/location/location/contains\n0.377091\t0.381538\t0.466563\tflorida\tbayside\t/location/location/contains\n0.376900\t0.381538\t0.466202\telias_murr\tisrael\t/people/person/nationality\n0.376709\t0.381538\t0.466171\tcalifornia\tcarlos_rodriguez\t/location/location/contains\n0.376518\t0.381538\t0.466039\tfox_interactive_media\tnews_corporation\t/business/person/company\n0.376328\t0.381538\t0.465465\ta._e._hotchner\tfrance\t/people/person/nationality\n0.376138\t0.381538\t0.465267\tlaurence_h._silberman\tunited_states_court_of_appeals_for_the_district_of_columbia_circuit\t/business/person/company\n0.375947\t0.381538\t0.465197\tpowerset\tgoogle\t/business/person/company\n0.375758\t0.381538\t0.464868\tedward_livingston\tnew_york_city\t/people/person/place_lived\n0.375568\t0.381538\t0.464258\toscar_de_la_renta\tgermany\t/people/person/nationality\n0.375883\t0.382051\t0.464099\tchicago\trush_medical_college\t/location/location/contains\n0.375693\t0.382051\t0.463856\tireland\tbastrop\t/location/location/contains\n0.375504\t0.382051\t0.463836\tdominican_republic\tpompano_beach\t/location/location/contains\n0.375315\t0.382051\t0.463066\tléopold_sédar_senghor\tsenegal\t/people/person/nationality\n0.375126\t0.382051\t0.462951\talexander_waske\tgermany\t/people/person/nationality\n0.374937\t0.382051\t0.462882\tedgar_sosa\tlouisville\t/people/person/place_lived\n0.374748\t0.382051\t0.462819\tflorida\tziad_jarrah\t/location/location/contains\n0.374560\t0.382051\t0.462673\tmike_gravel\tsouth_carolina\t/people/person/place_lived\n0.374372\t0.382051\t0.462563\tann_arbor\tgeorge_eastman_house\t/location/location/contains\n0.374184\t0.382051\t0.461901\tcanada\tandré_boisclair\t/location/location/contains\n0.373996\t0.382051\t0.461753\tunicredit\tfrance\t/people/person/nationality\n0.373808\t0.382051\t0.461523\tmel_gibson\titaly\t/people/person/nationality\n0.373621\t0.382051\t0.461364\tgermany\tsan_bruno\t/location/location/contains\n0.373434\t0.382051\t0.460794\tvolgograd\trussia\t/location/administrative_division/country\n0.373246\t0.382051\t0.460679\tfairfield_county\trye\t/location/location/contains\n0.373060\t0.382051\t0.460415\trussia\tkommersant\t/location/location/contains\n0.372873\t0.382051\t0.460401\tjeffrey_r._immelt\tcnbc\t/business/person/company\n0.372686\t0.382051\t0.460376\tjohn_doolittle\tcalifornia\t/people/person/place_lived\n0.372500\t0.382051\t0.460319\trussian\tgermany\t/people/person/nationality\n"
  },
  {
    "path": "jointD/init.cpp",
    "content": "#include <cstring>\n#include <cstdio>\n#include <cstdlib>\n#include <cmath>\n#include <ctime>\n#include <string>\n#include <algorithm>\n\nusing namespace std;\n\nstring inPath = \"./data/\";\n\nextern \"C\"\nvoid setInPath(char *path) {\n    int len = strlen(path);\n    inPath = \"\";\n    for (int i = 0; i < len; i++)\n        inPath = inPath + path[i];\n    printf(\"Input Files Path : %s\\n\", inPath.c_str());\n}\n\nint *lefHead, *rigHead;\nint *lefTail, *rigTail;\n\nstruct Triple {\n\tint h, r, t;\n};\n\nstruct cmp_head {\n\tbool operator()(const Triple &a, const Triple &b) {\n\t\treturn (a.h < b.h)||(a.h == b.h && a.r < b.r)||(a.h == b.h && a.r == b.r && a.t < b.t);\n\t}\n};\n\nstruct cmp_tail {\n\tbool operator()(const Triple &a, const Triple &b) {\n\t\treturn (a.t < b.t)||(a.t == b.t && a.r < b.r)||(a.t == b.t && a.r == b.r && a.h < b.h);\n\t}\n};\n\nstruct cmp_list {\n\tint minimal(int a,int b) {\n\t\tif (a > b) return b;\n\t\treturn a;\n\t}\n\tbool operator()(const Triple &a, const Triple &b) {\n\t\treturn (minimal(a.h, a.t) > minimal(b.h, b.t));\n\t}\n};\n\nTriple *trainHead, *trainTail, *trainList;\nint relationTotal, entityTotal, tripleTotal;\nint *freqRel, *freqEnt;\nfloat *left_mean, *right_mean;\n\nextern \"C\"\nvoid init() {\n\n\tFILE *fin;\n\tint tmp;\n\n\tfin = fopen((inPath + \"relation2id.txt\").c_str(), \"r\");\n\ttmp = fscanf(fin, \"%d\", &relationTotal);\n\tfclose(fin);\n\tprintf(\"%d\\n\", relationTotal);\n\n\tfreqRel = (int *)calloc(relationTotal, sizeof(int));\n\t\n\tfin = fopen((inPath + \"entity2id.txt\").c_str(), \"r\");\n\ttmp = fscanf(fin, \"%d\", &entityTotal);\n\tfclose(fin);\n\tprintf(\"%d\\n\", entityTotal);\n\n\tfreqEnt = (int *)calloc(entityTotal, sizeof(int));\n\t\n\tfin = fopen((inPath + \"triple2id.txt\").c_str(), \"r\");\n\ttmp = fscanf(fin, \"%d\", &tripleTotal);\n\tprintf(\"%d\\n\", tripleTotal);\n\ttrainHead = (Triple *)calloc(tripleTotal, sizeof(Triple));\n\ttrainTail = (Triple *)calloc(tripleTotal, sizeof(Triple));\n\ttrainList = (Triple *)calloc(tripleTotal, sizeof(Triple));\n\ttripleTotal = 0;\n\twhile (fscanf(fin, \"%d\", &trainList[tripleTotal].h) == 1) {\n\t\ttmp = fscanf(fin, \"%d\", &trainList[tripleTotal].t);\n\t\ttmp = fscanf(fin, \"%d\", &trainList[tripleTotal].r);\n\t\tfreqEnt[trainList[tripleTotal].t]++;\n\t\tfreqEnt[trainList[tripleTotal].h]++;\n\t\tfreqRel[trainList[tripleTotal].r]++;\n\t\ttrainHead[tripleTotal].h = trainList[tripleTotal].h;\n\t\ttrainHead[tripleTotal].t = trainList[tripleTotal].t;\n\t\ttrainHead[tripleTotal].r = trainList[tripleTotal].r;\n\t\ttrainTail[tripleTotal].h = trainList[tripleTotal].h;\n\t\ttrainTail[tripleTotal].t = trainList[tripleTotal].t;\n\t\ttrainTail[tripleTotal].r = trainList[tripleTotal].r;\n\t\ttripleTotal++;\n\t}\n\tfclose(fin);\n\n\tsort(trainHead, trainHead + tripleTotal, cmp_head());\n\tsort(trainTail, trainTail + tripleTotal, cmp_tail());\n\n\tlefHead = (int *)calloc(entityTotal, sizeof(int));\n\trigHead = (int *)calloc(entityTotal, sizeof(int));\n\tlefTail = (int *)calloc(entityTotal, sizeof(int));\n\trigTail = (int *)calloc(entityTotal, sizeof(int));\n\tmemset(rigHead, -1, sizeof(rigHead));\n\tmemset(rigTail, -1, sizeof(rigTail));\n\tfor (int i = 1; i < tripleTotal; i++) {\n\t\tif (trainTail[i].t != trainTail[i - 1].t) {\n\t\t\trigTail[trainTail[i - 1].t] = i - 1;\n\t\t\tlefTail[trainTail[i].t] = i;\n\t\t}\n\t\tif (trainHead[i].h != trainHead[i - 1].h) {\n\t\t\trigHead[trainHead[i - 1].h] = i - 1;\n\t\t\tlefHead[trainHead[i].h] = i;\n\t\t}\n\t}\n\trigHead[trainHead[tripleTotal - 1].h] = tripleTotal - 1;\n\trigTail[trainTail[tripleTotal - 1].t] = tripleTotal - 1;\n\n\tleft_mean = (float *)calloc(relationTotal,sizeof(float));\n\tright_mean = (float *)calloc(relationTotal,sizeof(float));\n\tfor (int i = 0; i < entityTotal; i++) {\n\t\tfor (int j = lefHead[i] + 1; j < rigHead[i]; j++)\n\t\t\tif (trainHead[j].r != trainHead[j - 1].r)\n\t\t\t\tleft_mean[trainHead[j].r] += 1.0;\n\t\tif (lefHead[i] <= rigHead[i])\n\t\t\tleft_mean[trainHead[lefHead[i]].r] += 1.0;\n\t\tfor (int j = lefTail[i] + 1; j < rigTail[i]; j++)\n\t\t\tif (trainTail[j].r != trainTail[j - 1].r)\n\t\t\t\tright_mean[trainTail[j].r] += 1.0;\n\t\tif (lefTail[i] <= rigTail[i])\n\t\t\tright_mean[trainTail[lefTail[i]].r] += 1.0;\n\t}\n\tfor (int i = 0; i < relationTotal; i++) {\n\t\tleft_mean[i] = freqRel[i] / left_mean[i];\n\t\tright_mean[i] = freqRel[i] / right_mean[i];\n\t}\n}\n\nextern \"C\"\nint getEntityTotal() {\n\treturn entityTotal;\n}\n\nextern \"C\"\nint getRelationTotal() {\n\treturn relationTotal;\n}\n\nextern \"C\"\nint getTripleTotal() {\n\treturn tripleTotal;\n}\n\n// unsigned long long *next_random;\nunsigned long long next_random = 3;\n\nunsigned long long randd(int id) {\n\tnext_random = next_random * (unsigned long long)25214903917 + 11;\n\treturn next_random;\n}\n\nint rand_max(int id, int x) {\n\tint res = randd(id) % x;\n\twhile (res<0)\n\t\tres+=x;\n\treturn res;\n}\n\nint corrupt_head(int id, int h, int r) {\n\tint lef, rig, mid, ll, rr;\n\tlef = lefHead[h] - 1;\n\trig = rigHead[h];\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainHead[mid].r >= r) rig = mid; else\n\t\tlef = mid;\n\t}\n\tll = rig;\n\tlef = lefHead[h];\n\trig = rigHead[h] + 1;\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainHead[mid].r <= r) lef = mid; else\n\t\trig = mid;\n\t}\n\trr = lef;\n\tint tmp = rand_max(id, entityTotal - (rr - ll + 1));\n\tif (tmp < trainHead[ll].t) return tmp;\n\tif (tmp > trainHead[rr].t - rr + ll - 1) return tmp + rr - ll + 1;\n\tlef = ll, rig = rr + 1;\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainHead[mid].t - mid + ll - 1 < tmp)\n\t\t\tlef = mid;\n\t\telse \n\t\t\trig = mid;\n\t}\n\treturn tmp + lef - ll + 1;\n}\n\nint corrupt_tail(int id, int t, int r) {\n\tint lef, rig, mid, ll, rr;\n\tlef = lefTail[t] - 1;\n\trig = rigTail[t];\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainTail[mid].r >= r) rig = mid; else\n\t\tlef = mid;\n\t}\n\tll = rig;\n\tlef = lefTail[t];\n\trig = rigTail[t] + 1;\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainTail[mid].r <= r) lef = mid; else\n\t\trig = mid;\n\t}\n\trr = lef;\n\tint tmp = rand_max(id, entityTotal - (rr - ll + 1));\n\tif (tmp < trainTail[ll].h) return tmp;\n\tif (tmp > trainTail[rr].h - rr + ll - 1) return tmp + rr - ll + 1;\n\tlef = ll, rig = rr + 1;\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainTail[mid].h - mid + ll - 1 < tmp)\n\t\t\tlef = mid;\n\t\telse \n\t\t\trig = mid;\n\t}\n\treturn tmp + lef - ll + 1;\n}\n\nextern \"C\"\nvoid getBatch(int *ph, int *pt, int *pr, int *nh, int *nt, int *nr, int batchSize, int id = 0) {\n\tfor (int batch = 0; batch < batchSize; batch++) {\n\t\tint i = rand_max(id, tripleTotal), j;\n\t\tfloat prob = 1000 * right_mean[trainList[i].r] / (right_mean[trainList[i].r] + left_mean[trainList[i].r]);\n\t\tif (randd(id) % 1000 < prob) {\n\t\t\tj = corrupt_head(id, trainList[i].h, trainList[i].r);\n\t\t\tph[batch] = trainList[i].h;\n\t\t\tpt[batch] = trainList[i].t;\n\t\t\tpr[batch] = trainList[i].r;\n\t\t\tnh[batch] = trainList[i].h;\n\t\t\tnt[batch] = j;\n\t\t\tnr[batch] = trainList[i].r;\n\t\t} else {\n\t\t\tj = corrupt_tail(id, trainList[i].t, trainList[i].r);\n\t\t\tph[batch] = trainList[i].h;\n\t\t\tpt[batch] = trainList[i].t;\n\t\t\tpr[batch] = trainList[i].r;\n\t\t\tnh[batch] = j;\n\t\t\tnt[batch] = trainList[i].t;\n\t\t\tnr[batch] = trainList[i].r;\n\t\t}\n\t}\n}"
  },
  {
    "path": "jointD/make.sh",
    "content": "g++ init.cpp -o init.so -fPIC -shared -pthread -O3 -march=native\n"
  },
  {
    "path": "jointD/network.py",
    "content": "import tensorflow as tf\nimport numpy as np\nimport tensorflow.contrib.slim as slim\n\nFLAGS = tf.app.flags.FLAGS\n\nclass NN(object):\n\n\tdef calc(self, e, t, r):\n\t\treturn e + tf.reduce_sum(e * t, 1, keep_dims = True) * r\n\n\tdef __init__(self, is_training, word_embeddings, simple_position = False):\n\t\tself.max_length = FLAGS.max_length\n\t\tself.num_classes = FLAGS.num_classes\n\t\tself.word_size = len(word_embeddings[0])\n\t\tself.hidden_size = FLAGS.hidden_size\n\t\tif FLAGS.model.lower() == \"cnn\":\n\t\t\tself.output_size = FLAGS.hidden_size\n\t\telif FLAGS.model.lower() == \"pcnn\":\n\t\t\tself.output_size = FLAGS.hidden_size * 3\n\t\telif FLAGS.model.lower() == \"lstm\":\n\t\t\tself.output_size = FLAGS.hidden_size\n\t\telif FLAGS.model.lower() == \"gru\":\n\t\t\tself.output_size = FLAGS.hidden_size\n\t\telif FLAGS.model.lower() == \"bi-lstm\" or FLAGS.model.lower() == \"bilstm\":\n\t\t\tself.output_size = FLAGS.hidden_size * 2\n\t\telif FLAGS.model.lower() == \"bi-gru\" or FLAGS.model.lower() == \"bigru\":\n\t\t\tself.output_size = FLAGS.hidden_size * 2\n\t\tself.margin = FLAGS.margin\n\t\t# placeholders for text models\n\t\tself.word = tf.placeholder(dtype=tf.int32,shape=[None, self.max_length], name='input_word')\n\t\tself.pos1 = tf.placeholder(dtype=tf.int32,shape=[None, self.max_length], name='input_pos1')\n\t\tself.pos2 = tf.placeholder(dtype=tf.int32,shape=[None, self.max_length], name='input_pos2')\n\t\tself.mask = tf.placeholder(dtype=tf.int32,shape=[None, self.max_length],name='input_mask')\n\t\tself.len = tf.placeholder(dtype=tf.int32,shape=[None],name='input_len')\n\t\tself.label_index = tf.placeholder(dtype=tf.int32,shape=[None], name='label_index')\n\t\tself.head_index = tf.placeholder(dtype=tf.int32,shape=[None], name='head_index')\n\t\tself.tail_index = tf.placeholder(dtype=tf.int32,shape=[None], name='tail_index')\n\t\tself.label = tf.placeholder(dtype=tf.float32,shape=[FLAGS.batch_size, self.num_classes], name='input_label')\n\t\tself.scope = tf.placeholder(dtype=tf.int32,shape=[FLAGS.batch_size+1], name='scope')\t\n\t\tself.keep_prob = tf.placeholder(dtype=tf.float32, name='keep_prob')\n\t\tself.weights = tf.placeholder(dtype=tf.float32,shape=[FLAGS.batch_size])\n\t\t# placeholders for kg models\n\t\tself.pos_h = tf.placeholder(tf.int32, [None])\n\t\tself.pos_t = tf.placeholder(tf.int32, [None])\n\t\tself.pos_r = tf.placeholder(tf.int32, [None])\n\t\tself.neg_h = tf.placeholder(tf.int32, [None])\n\t\tself.neg_t = tf.placeholder(tf.int32, [None])\n\t\tself.neg_r = tf.placeholder(tf.int32, [None])\n\n\t\twith tf.name_scope(\"embedding-layers\"):\n\t\t\t# word embeddings\n\t\t\ttemp_word_embedding = tf.get_variable(initializer=word_embeddings[FLAGS.ent_total:,:],name = 'temp_word_embedding',dtype=tf.float32)\n\t\t\tent_embedding = tf.get_variable(name = \"ent_embedding\",shape = [FLAGS.ent_total, self.word_size], initializer = tf.contrib.layers.xavier_initializer(uniform = False))\n\t\t\tunk_word_embedding = tf.get_variable('unk_embedding',[self.word_size], dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n\t\t\tself.word_embedding = tf.concat([\n\t\t\t\tent_embedding,\n\t\t\t\ttemp_word_embedding,\n\t\t\t\ttf.reshape(unk_word_embedding,[1, self.word_size]),\n\t\t\t\ttf.reshape(tf.constant(np.zeros(self.word_size, dtype=np.float32)),[1, self.word_size]) ],0)\n\t\t\tself.relation_matrix = tf.get_variable('relation_matrix',[self.num_classes, self.output_size],dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n\t\t\tself.bias = tf.get_variable('bias',[self.num_classes],dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n\t\t\t# position embeddings\n\t\t\tif simple_position:\n\t\t\t\ttemp_pos_array = np.zeros((FLAGS.pos_num + 1, FLAGS.pos_size), dtype=np.float32)\n\t\t\t\ttemp_pos_array[(FLAGS.pos_num - 1) / 2] = np.ones(FLAGS.pos_size, dtype=np.float32)\n\t\t\t\tself.pos1_embedding = tf.constant(temp_pos_array)\n\t\t\t\tself.pos2_embedding = tf.constant(temp_pos_array)\n\t\t\telse:\n\t\t\t\ttemp_pos1_embedding = tf.get_variable('temp_pos1_embedding',[FLAGS.pos_num,FLAGS.pos_size],dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n\t\t\t\ttemp_pos2_embedding = tf.get_variable('temp_pos2_embedding',[FLAGS.pos_num,FLAGS.pos_size],dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n\t\t\t\tself.pos1_embedding = tf.concat([temp_pos1_embedding,tf.reshape(tf.constant(np.zeros(FLAGS.pos_size,dtype=np.float32)),[1, FLAGS.pos_size])],0)\n\t\t\t\tself.pos2_embedding = tf.concat([temp_pos2_embedding,tf.reshape(tf.constant(np.zeros(FLAGS.pos_size,dtype=np.float32)),[1, FLAGS.pos_size])],0)\n\t\t\t# relation embeddings and the transfer matrix between relations and textual relations\n\t\t\tself.rel_embeddings = tf.get_variable(name = \"rel_embedding\", shape = [FLAGS.rel_total, self.word_size], initializer = tf.contrib.layers.xavier_initializer(uniform = False))\n\t\t\tself.transfer_matrix = tf.get_variable(\"transfer_matrix\", [self.output_size, self.word_size])\n\t\t\tself.transfer_bias = tf.get_variable('transfer_bias', [self.word_size], dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n\t\t\tself.ent_transfer = tf.get_variable(name = \"ent_transfer\", shape = [FLAGS.ent_total, self.word_size], initializer = tf.contrib.layers.xavier_initializer(uniform = False))\n\t\t\tself.rel_transfer = tf.get_variable(name = \"rel_transfer\", shape = [FLAGS.rel_total, self.word_size], initializer = tf.contrib.layers.xavier_initializer(uniform = False))\n\n\t\twith tf.name_scope(\"embedding-lookup\"):\n\t\t\t# textual embedding-lookup \n\t\t\tinput_word = tf.nn.embedding_lookup(self.word_embedding, self.word)\n\t\t\tinput_pos1 = tf.nn.embedding_lookup(self.pos1_embedding, self.pos1)\n\t\t\tinput_pos2 = tf.nn.embedding_lookup(self.pos2_embedding, self.pos2)\n\t\t\tself.input_embedding = tf.concat(values = [input_word, input_pos1, input_pos2], axis = 2)\n\t\t\t# knowledge embedding-lookup \n\t\t\tpos_h_e = tf.nn.embedding_lookup(self.word_embedding, self.pos_h)\n\t\t\tpos_t_e = tf.nn.embedding_lookup(self.word_embedding, self.pos_t)\n\t\t\tpos_r_e = tf.nn.embedding_lookup(self.rel_embeddings, self.pos_r)\n\t\t\tpos_h_t = tf.nn.embedding_lookup(self.ent_transfer, self.pos_h)\n\t\t\tpos_t_t = tf.nn.embedding_lookup(self.ent_transfer, self.pos_t)\n\t\t\tpos_r_t = tf.nn.embedding_lookup(self.rel_transfer, self.pos_r)\n\t\t\tneg_h_e = tf.nn.embedding_lookup(self.word_embedding, self.neg_h)\n\t\t\tneg_t_e = tf.nn.embedding_lookup(self.word_embedding, self.neg_t)\n\t\t\tneg_r_e = tf.nn.embedding_lookup(self.rel_embeddings, self.neg_r)\n\t\t\tneg_h_t = tf.nn.embedding_lookup(self.ent_transfer, self.neg_h)\n\t\t\tneg_t_t = tf.nn.embedding_lookup(self.ent_transfer, self.neg_t)\n\t\t\tneg_r_t = tf.nn.embedding_lookup(self.rel_transfer, self.neg_r)\n\t\t\tpos_h_e = self.calc(pos_h_e, pos_h_t, pos_r_t)\n\t\t\tpos_t_e = self.calc(pos_t_e, pos_t_t, pos_r_t)\n\t\t\tneg_h_e = self.calc(neg_h_e, neg_h_t, neg_r_t)\n\t\t\tneg_t_e = self.calc(neg_t_e, neg_t_t, neg_r_t)\n\t\twith tf.name_scope(\"knowledge_graph\"):\n\t\t\tpos = tf.reduce_sum(abs(pos_h_e + pos_r_e - pos_t_e), 1, keep_dims = True)\n\t\t\tneg = tf.reduce_sum(abs(neg_h_e + neg_r_e - neg_t_e), 1, keep_dims = True)\n\t\t\tself.loss_kg = tf.reduce_sum(tf.maximum(pos - neg + self.margin, 0))\n\n\tdef transfer(self, x):\n\t\tres = tf.nn.bias_add(tf.matmul(x, self.transfer_matrix), self.transfer_bias)\n\t\treturn res\n\n\tdef att(self, x, is_training = True, dropout = True):\n\t\twith tf.name_scope(\"sentence-level-attention\"):\n\t\t\tcurrent_attention = tf.nn.embedding_lookup(self.relation_matrix, self.label_index)\n\t\t\tattention_logit = tf.reduce_sum(current_attention * x, 1)\n\t\t\ttower_repre = []\n\t\t\tfor i in range(FLAGS.batch_size):\n\t\t\t\tsen_matrix = x[self.scope[i]:self.scope[i+1]]\n\t\t\t\tattention_score = tf.nn.softmax(tf.reshape(attention_logit[self.scope[i]:self.scope[i+1]], [1, -1]))\n\t\t\t\tfinal_repre = tf.reshape(tf.matmul(attention_score, sen_matrix),[self.output_size])\n\t\t\t\ttower_repre.append(final_repre)\n\t\t\tif dropout:\n\t\t\t\tstack_repre = tf.layers.dropout(tf.stack(tower_repre), rate = self.keep_prob, training = is_training)\n\t\t\telse:\n\t\t\t\tstack_repre = tf.stack(tower_repre)\n\t\treturn stack_repre\n\n\tdef katt(self, x, is_training = True, dropout = True):\n\t\twith tf.name_scope(\"knowledge-based-attention\"):\n\t\t\thead = tf.nn.embedding_lookup(self.word_embedding, self.head_index)\n\t\t\ttail = tf.nn.embedding_lookup(self.word_embedding, self.tail_index)\n\t\t\thead_transfer = tf.nn.embedding_lookup(self.ent_transfer, self.head_index)\n\t\t\ttail_transfer = tf.nn.embedding_lookup(self.ent_transfer, self.tail_index)\n\t\t\trel_transfer = tf.nn.embedding_lookup(self.rel_transfer, self.label_index)\n\t\t\tkg_att = self.calc(head, head_transfer, rel_transfer) - self.calc(tail, tail_transfer, rel_transfer)\n\t\t\tattention_logit = tf.reduce_sum(self.transfer(x) * kg_att, 1)\n\t\t\ttower_repre = []\n\t\t\tfor i in range(FLAGS.batch_size):\n\t\t\t\tsen_matrix = x[self.scope[i]:self.scope[i+1]]\n\t\t\t\tattention_score = tf.nn.softmax(tf.reshape(attention_logit[self.scope[i]:self.scope[i+1]], [1, -1]))\n\t\t\t\tfinal_repre = tf.reshape(tf.matmul(attention_score, sen_matrix),[self.output_size])\n\t\t\t\ttower_repre.append(final_repre)\n\t\t\tif dropout:\n\t\t\t\tstack_repre = tf.layers.dropout(tf.stack(tower_repre), rate = self.keep_prob, training = is_training)\n\t\t\telse:\n\t\t\t\tstack_repre = tf.stack(tower_repre)\n\t\treturn stack_repre\n\n\tdef att_test(self, x, is_training = False):\n\t\ttest_attention_logit = tf.matmul(x, tf.transpose(self.relation_matrix))\n\t\treturn test_attention_logit\n\n\tdef katt_test(self, x, is_training = False):\n\t\t\n\t\thead = tf.nn.embedding_lookup(self.word_embedding, self.head_index)\n\t\ttail = tf.nn.embedding_lookup(self.word_embedding, self.tail_index)\n\t\thead_transfer = tf.nn.embedding_lookup(self.ent_transfer, self.head_index)\n\t\ttail_transfer = tf.nn.embedding_lookup(self.ent_transfer, self.tail_index)\n\n\t\tkg_att = []\n\t\tfor i in range(self.num_classes):\n\t\t\teach_att = tf.expand_dims(self.calc(head, head_transfer, tf.reshape(self.rel_transfer[i], [-1, self.word_size])) - self.calc(tail, tail_transfer,  tf.reshape(self.rel_transfer[i], [-1, self.word_size])), -1)\n\t\t\tkg_att.append(each_att)\n\t\tkg_att = tf.concat(kg_att, 2)\n\t\tx = tf.reshape(self.transfer(x), [-1, 1, self.word_size])\n\t\ttest_attention_logit = tf.matmul(x, kg_att)\n\t\treturn tf.reshape(test_attention_logit, [-1, self.num_classes])\n\nclass CNN(NN):\n\n\tdef __init__(self, is_training, word_embeddings, simple_position = False):\n\t\tNN.__init__(self, is_training, word_embeddings, simple_position)\n\n\t\twith tf.name_scope(\"conv-maxpool\"):\n\t\t\tinput_sentence = tf.expand_dims(self.input_embedding, axis=1)\n\t\t\tx = tf.layers.conv2d(inputs = input_sentence, filters=FLAGS.hidden_size, kernel_size=[1,3], strides=[1, 1], padding='same', kernel_initializer=tf.contrib.layers.xavier_initializer_conv2d()) \n\t\t\tx = tf.reduce_max(x, axis=2)\n\t\t\tx = tf.nn.relu(tf.squeeze(x))\n\n\t\tif FLAGS.katt_flag != 0:\n\t\t\tstack_repre = self.katt(x, is_training)\n\t\telse:\n\t\t\tstack_repre = self.att(x, is_training)\n\n\t\twith tf.name_scope(\"loss\"):\n\t\t\tlogits = tf.matmul(stack_repre, tf.transpose(self.relation_matrix)) + self.bias\n\t\t\tself.loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=self.label,logits=logits))\n\t\t\tself.loss = tf.losses.softmax_cross_entropy(onehot_labels = self.label, logits = logits, weights = self.weights)\n\t\t\tself.output = tf.nn.softmax(logits)\n\t\t\ttf.summary.scalar('loss',self.loss)\n\t\t\tself.predictions = tf.argmax(logits, 1, name=\"predictions\")\n\t\t\tself.correct_predictions = tf.equal(self.predictions, tf.argmax(self.label, 1))\n\t\t\tself.accuracy = tf.reduce_mean(tf.cast(self.correct_predictions, \"float\"), name=\"accuracy\")\n\n\t\tif not is_training:\n\t\t\twith tf.name_scope(\"test\"):\n\t\t\t\tif FLAGS.katt_flag != 0:\n\t\t\t\t\ttest_attention_logit = self.katt_test(x)\n\t\t\t\telse:\n\t\t\t\t\ttest_attention_logit = self.att_test(x)\n\t\t\t\ttest_tower_output = []\n\t\t\t\tfor i in range(FLAGS.test_batch_size):\n\t\t\t\t\ttest_attention_score = tf.nn.softmax(tf.transpose(test_attention_logit[self.scope[i]:self.scope[i+1],:]))\n\t\t\t\t\tfinal_repre = tf.matmul(test_attention_score, x[self.scope[i]:self.scope[i+1]])\n\t\t\t\t\tlogits = tf.matmul(final_repre, tf.transpose(self.relation_matrix)) + self.bias\n\t\t\t\t\toutput = tf.diag_part(tf.nn.softmax(logits))\n\t\t\t\t\ttest_tower_output.append(output)\n\t\t\t\ttest_stack_output = tf.reshape(tf.stack(test_tower_output),[FLAGS.test_batch_size, self.num_classes])\n\t\t\t\tself.test_output = test_stack_output\n\n\nclass PCNN(NN):\n\n\tdef __init__(self, is_training, word_embeddings, simple_position = False):\n\t\tNN.__init__(self, is_training, word_embeddings, simple_position)\n\t\twith tf.name_scope(\"conv-maxpool\"):\n\t\t\tmask_embedding = tf.constant([[0,0,0],[1,0,0],[0,1,0],[0,0,1]], dtype=np.float32)\n\t\t\tpcnn_mask = tf.nn.embedding_lookup(mask_embedding, self.mask)\n\t\t\tinput_sentence = tf.expand_dims(self.input_embedding, axis=1)\n\t\t\tx = tf.layers.conv2d(inputs = input_sentence, filters=FLAGS.hidden_size, kernel_size=[1,3], strides=[1, 1], padding='same', kernel_initializer=tf.contrib.layers.xavier_initializer_conv2d())\n\t\t\tx = tf.reshape(x, [-1, self.max_length, FLAGS.hidden_size, 1])\n\t\t\tx = tf.reduce_max(tf.reshape(pcnn_mask, [-1, 1, self.max_length, 3]) * tf.transpose(x,[0, 2, 1, 3]), axis = 2)\n\t\t\tx = tf.nn.relu(tf.reshape(x,[-1, self.output_size]))\n\n\t\tif FLAGS.katt_flag != 0:\n\t\t\tstack_repre = self.katt(x, is_training)\n\t\telse:\n\t\t\tstack_repre = self.att(x, is_training)\n\n\t\twith tf.name_scope(\"loss\"):\n\t\t\tlogits = tf.matmul(stack_repre, tf.transpose(self.relation_matrix)) + self.bias\n\t\t\tself.loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=self.label,logits=logits))\n\t\t\tself.loss = tf.losses.softmax_cross_entropy(onehot_labels = self.label, logits = logits, weights = self.weights)\n\t\t\tself.output = tf.nn.softmax(logits)\n\t\t\ttf.summary.scalar('loss',self.loss)\n\t\t\tself.predictions = tf.argmax(logits, 1, name=\"predictions\")\n\t\t\tself.correct_predictions = tf.equal(self.predictions, tf.argmax(self.label, 1))\n\t\t\tself.accuracy = tf.reduce_mean(tf.cast(self.correct_predictions, \"float\"), name=\"accuracy\")\n\n\t\tif not is_training:\n\t\t\twith tf.name_scope(\"test\"):\n\t\t\t\tif FLAGS.katt_flag != 0:\n\t\t\t\t\ttest_attention_logit = self.katt_test(x)\n\t\t\t\telse:\n\t\t\t\t\ttest_attention_logit = self.att_test(x)\n\t\t\t\ttest_tower_output = []\n\t\t\t\tfor i in range(FLAGS.test_batch_size):\n\t\t\t\t\ttest_attention_score = tf.nn.softmax(tf.transpose(test_attention_logit[self.scope[i]:self.scope[i+1],:]))\n\t\t\t\t\tfinal_repre = tf.matmul(test_attention_score, x[self.scope[i]:self.scope[i+1]])\n\t\t\t\t\tlogits = tf.matmul(final_repre, tf.transpose(relation_matrix)) + bias\n\t\t\t\t\toutput = tf.diag_part(tf.nn.softmax(logits))\n\t\t\t\t\ttest_tower_output.append(output)\n\t\t\t\ttest_stack_output = tf.reshape(tf.stack(test_tower_output),[FLAGS.test_batch_size, self.num_classes])\n\t\t\t\tself.test_output = test_stack_output\n\nclass RNN(NN):\n\n\tdef get_rnn_cell(self, dim, cell_name = 'lstm'):\n\t\tif isinstance(cell_name,list) or isinstance(cell_name, tuple):\n\t\t\tif len(cell_name) == 1:\n\t\t\t\treturn get_rnn_cell(dim, cell_name[0])\n\t\t\tcells = [get_rnn_cell(dim, c) for c in cell_name]\n\t\t\treturn tf.contrib.rnn.MultiRNNCell(cells, state_is_tuple=True)\n\t\tif cell_name.lower() == 'lstm':\n\t\t\treturn tf.contrib.rnn.BasicLSTMCell(dim, state_is_tuple=True)\n\t\telif cell_name.lower() == 'gru':\n\t\t\treturn tf.contrib.rnn.GRUCell(dim)\n\t\traise NotImplementedError\n\n\tdef __init__(self, is_training, word_embeddings, cell_name, simple_position = False):\n\t\tNN.__init__(self, is_training, word_embeddings, simple_position)\n\t\tinput_sentence = tf.layers.dropout(self.input_embedding, rate = self.keep_prob, training = is_training)\n\t\twith tf.name_scope('rnn'):\n\t\t\tcell = self.get_rnn_cell(FLAGS.hidden_size, cell_name)\n\t\t\toutputs, states = tf.nn.dynamic_rnn(cell, input_sentence,\n\t\t\t\t\t\t\t\t\t\t\tsequence_length = self.len,\n\t\t\t\t\t\t\t\t\t\t\tdtype = tf.float32,\n\t\t\t\t\t\t\t\t\t\t\tscope = 'dynamic-rnn')\n\t\t\tif isinstance(states, tuple):\n\t\t\t\tstates = states[0]\n\t\t\tx = states\n\n\t\tif FLAGS.katt_flag != 0:\n\t\t\tstack_repre = self.katt(x, is_training, False)\n\t\telse:\n\t\t\tstack_repre = self.att(x, is_training, False)\n\n\t\twith tf.name_scope(\"loss\"):\n\t\t\tlogits = tf.matmul(stack_repre, tf.transpose(self.relation_matrix)) + self.bias\n\t\t\tself.loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=self.label,logits=logits))\n\t\t\tself.loss = tf.losses.softmax_cross_entropy(onehot_labels = self.label, logits = logits, weights = self.weights)\n\t\t\tself.output = tf.nn.softmax(logits)\n\t\t\ttf.summary.scalar('loss',self.loss)\n\t\t\tself.predictions = tf.argmax(logits, 1, name=\"predictions\")\n\t\t\tself.correct_predictions = tf.equal(self.predictions, tf.argmax(self.label, 1))\n\t\t\tself.accuracy = tf.reduce_mean(tf.cast(self.correct_predictions, \"float\"), name=\"accuracy\")\n\t\n\t\tif not is_training:\n\t\t\twith tf.name_scope(\"test\"):\n\t\t\t\tif FLAGS.katt_flag != 0:\n\t\t\t\t\ttest_attention_logit = self.katt_test(x)\n\t\t\t\telse:\n\t\t\t\t\ttest_attention_logit = self.att_test(x)\n\t\t\t\ttest_tower_output = []\n\t\t\t\tfor i in range(FLAGS.test_batch_size):\n\t\t\t\t\ttest_attention_score = tf.nn.softmax(tf.transpose(test_attention_logit[self.scope[i]:self.scope[i+1],:]))\n\t\t\t\t\tfinal_repre = tf.matmul(test_attention_score, x[self.scope[i]:self.scope[i+1]])\n\t\t\t\t\tlogits = tf.matmul(final_repre, tf.transpose(relation_matrix)) + bias\n\t\t\t\t\toutput = tf.diag_part(tf.nn.softmax(logits))\n\t\t\t\t\ttest_tower_output.append(output)\n\t\t\t\ttest_stack_output = tf.reshape(tf.stack(test_tower_output),[FLAGS.test_batch_size, self.num_classes])\n\t\t\t\tself.test_output = test_stack_output\n\nclass BiRNN(NN):\n\n\tdef get_rnn_cell(self, dim, cell_name = 'lstm'):\n\t\tif isinstance(cell_name,list) or isinstance(cell_name, tuple):\n\t\t\tif len(cell_name) == 1:\n\t\t\t\treturn get_rnn_cell(dim, cell_name[0])\n\t\t\tcells = [get_rnn_cell(dim, c) for c in cell_name]\n\t\t\treturn tf.contrib.rnn.MultiRNNCell(cells, state_is_tuple=True)\n\t\tif cell_name.lower() == 'lstm':\n\t\t\treturn tf.contrib.rnn.BasicLSTMCell(dim, state_is_tuple=True)\n\t\telif cell_name.lower() == 'gru':\n\t\t\treturn tf.contrib.rnn.GRUCell(dim)\n\t\traise NotImplementedError\n\n\tdef __init__(self, is_training, word_embeddings, cell_name, simple_position = False):\n\t\tNN.__init__(self, is_training, word_embeddings, simple_position)\n\t\tinput_sentence = tf.layers.dropout(self.input_embedding, rate = self.keep_prob, training = is_training)\n\t\twith tf.name_scope('bi-rnn'):\n\t\t\tfw_cell = self.get_rnn_cell(FLAGS.hidden_size, cell_name)\n\t\t\tbw_cell = self.get_rnn_cell(FLAGS.hidden_size, cell_name)\n\t\t\toutputs, states = tf.nn.bidirectional_dynamic_rnn(\n\t\t\t\t\t\t\tfw_cell, bw_cell, input_sentence,\n\t\t\t\t\t\t\tsequence_length = self.len,\n\t\t\t\t\t\t\tdtype = tf.float32,\n\t\t\t\t\t\t\tscope = 'bi-dynamic-rnn')\n\t\t\tfw_states, bw_states = states\n\t\t\tif isinstance(fw_states, tuple):\n\t\t\t\tfw_states = fw_states[0]\n\t\t\t\tbw_states = bw_states[0]\n\t\t\tx = tf.concat(states, axis=1)\n\n\t\tif FLAGS.katt_flag != 0:\n\t\t\tstack_repre = self.katt(x, is_training, False)\n\t\telse:\n\t\t\tstack_repre = self.att(x, is_training, False)\n\n\t\twith tf.name_scope(\"loss\"):\n\t\t\tlogits = tf.matmul(stack_repre, tf.transpose(self.relation_matrix)) + self.bias\n\t\t\tself.loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=self.label,logits=logits))\n\t\t\tself.loss = tf.losses.softmax_cross_entropy(onehot_labels = self.label, logits = logits, weights = self.weights)\n\t\t\tself.output = tf.nn.softmax(logits)\n\t\t\ttf.summary.scalar('loss',self.loss)\n\t\t\tself.predictions = tf.argmax(logits, 1, name=\"predictions\")\n\t\t\tself.correct_predictions = tf.equal(self.predictions, tf.argmax(self.label, 1))\n\t\t\tself.accuracy = tf.reduce_mean(tf.cast(self.correct_predictions, \"float\"), name=\"accuracy\")\n\t\n\t\tif not is_training:\n\t\t\twith tf.name_scope(\"test\"):\n\t\t\t\tif FLAGS.katt_flag != 0:\n\t\t\t\t\ttest_attention_logit = self.katt_test(x)\n\t\t\t\telse:\n\t\t\t\t\ttest_attention_logit = self.att_test(x)\n\t\t\t\ttest_tower_output = []\n\t\t\t\tfor i in range(FLAGS.test_batch_size):\n\t\t\t\t\ttest_attention_score = tf.nn.softmax(tf.transpose(test_attention_logit[self.scope[i]:self.scope[i+1],:]))\n\t\t\t\t\tfinal_repre = tf.matmul(test_attention_score, x[self.scope[i]:self.scope[i+1]])\n\t\t\t\t\tlogits = tf.matmul(final_repre, tf.transpose(relation_matrix)) + bias\n\t\t\t\t\toutput = tf.diag_part(tf.nn.softmax(logits))\n\t\t\t\t\ttest_tower_output.append(output)\n\t\t\t\ttest_stack_output = tf.reshape(tf.stack(test_tower_output),[FLAGS.test_batch_size, self.num_classes])\n\t\t\t\tself.test_output = test_stack_output\n\n"
  },
  {
    "path": "jointD/pr_plot.py",
    "content": "import os\nimport numpy as np\nfrom sklearn.metrics import precision_recall_curve\nfrom sklearn.metrics import average_precision_score\nimport matplotlib\nmatplotlib.use('Agg')\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport sys\n\nfrom matplotlib.backends.backend_pdf import PdfPages\n\n\nff = plt.figure()\n\nMODEL = 'cnn'\n\ndef guolv(recall, precision):\n    a = [recall[0]]\n    b = [precision[0]]\n    print len(recall)\n    for i in range(1, len(recall)):\n        if a[len(a) - 1] == recall[i]:\n            if precision[i] > b[len(b)-1]:\n                b[len(b)-1] = precision[i]\n        else:\n            a.append(recall[i])\n            b.append(precision[i])\n            \n    recall = np.array(a)\n    precision = np.array(b)\n    xnew = np.linspace(recall.min(),recall.max(), 500) #300 represents number of points to make between T.min and T.max  \n    print recall\n    print precision\n    power_smooth = spline(recall,precision,xnew)  \n    return xnew, power_smooth\n\ndef PrecisionAtRecall(pAll, rAll, rMark):\n    length = len(rAll)\n    lo = 0\n    hi = length - 1\n    mark = length >> 1\n    error = rMark - rAll[mark]\n    while np.abs(error) > 0.005:\n        if error > 0:\n            hi = mark - 1\n        else:\n            lo = mark + 1\n        mark = (hi + lo) >> 1\n        error = rMark - rAll[mark]\n    return pAll[mark], rAll[mark], mark\n\n\ncolor = ['red', 'turquoise', 'darkorange', 'cornflowerblue', 'teal']\n\ntest_model = ['cnn'+'+sen_att']\ntest_epoch = ['9']\navg_pres = []\nfor temp, (model, step) in enumerate(zip(test_model, test_epoch)):\n    y_scores = np.load(model+'_all_prob' + '_' + step + '.npy')\n    y_true = np.load(model+'_all_label' + '_' + step + '.npy')\n    y_scores = np.reshape(y_scores,(-1))\n    y_true = np.reshape(y_true,(-1))\n    precision,recall,threshold = precision_recall_curve(y_true,y_scores)\n    p,r,i = PrecisionAtRecall(precision, recall, 0.1)\n    print('precison: {}, recall: {}'.format(p, r))\n    p,r,i = PrecisionAtRecall(precision, recall, 0.2)\n    print('precison: {}, recall: {}'.format(p, r))\n    p,r,i = PrecisionAtRecall(precision, recall, 0.3)\n    print('precison: {}, recall: {}'.format(p, r))\n    average_precision = average_precision_score(y_true, y_scores)\n    avg_pres.append(average_precision)\n    recall = recall[::-1]\n    precision = precision[::-1]\n    plt.plot(recall[:], precision[:], lw=2, color=color[1],label=\"CNN+ATT\")\n\nlines_cnn = open('cnn.txt').readlines()\nlines_cnn = [t.strip().split()[:2] for t in lines_cnn]\nprecision_cnn = np.array([t[0] for t in lines_cnn], dtype=np.float32)\nrecall_cnn = np.array([t[1] for t in lines_cnn], dtype=np.float32)\nplt.plot(recall_cnn, precision_cnn, lw=2, color=color[-1], label=\"CNN+ATT\") \n\n\nplt.xlabel('Recall')\nplt.ylabel('Precision')\nplt.ylim([0.3, 1.0])\nplt.xlim([0.0, 0.4])\nplt.title('Precision-Recall Area={0:0.4f}'.format(avg_pres[-1]))\nplt.legend(loc=\"upper right\")\nplt.grid(True)\nplt.savefig('sgd_'+MODEL)\nplt.plot(range(10), range(10), \"o\")\nplt.show()\nff.savefig(\"pr.pdf\", bbox_inches='tight')\n"
  },
  {
    "path": "jointD/test.py",
    "content": "import tensorflow as tf\nimport numpy as np\nimport time\nimport datetime\nimport os\nimport network\nimport json\nimport sys\nfrom sklearn.metrics import average_precision_score\nimport ctypes\n\nexport_path = \"../data/\"\n\nword_vec = np.load(export_path + 'vec.npy')\nf = open(export_path + \"config\", 'r')\nconfig = json.loads(f.read())\nf.close()\n\nll = ctypes.cdll.LoadLibrary   \nlib = ll(\"./init.so\")\nlib.setInPath(\"../data/\")\nlib.init()\n\nFLAGS = tf.app.flags.FLAGS\n\ntf.app.flags.DEFINE_integer('nbatch_kg',100,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('margin',1.0,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('learning_rate_kg',0.001,'learning rate for kg')\ntf.app.flags.DEFINE_integer('ent_total',lib.getEntityTotal(),'total of entities')\ntf.app.flags.DEFINE_integer('rel_total',lib.getRelationTotal(),'total of relations')\ntf.app.flags.DEFINE_integer('tri_total',lib.getTripleTotal(),'total of triples')\ntf.app.flags.DEFINE_integer('katt_flag', 1, '1 for katt, 0 for att')\n\ntf.app.flags.DEFINE_string('model', 'cnn', 'neural models to encode sentences')\ntf.app.flags.DEFINE_integer('max_length',config['fixlen'],'maximum of number of words in one sentence')\ntf.app.flags.DEFINE_integer('pos_num', config['maxlen'] * 2 + 1,'number of position embedding vectors')\ntf.app.flags.DEFINE_integer('num_classes', config['textual_rel_total'],'maximum of relations')\n\ntf.app.flags.DEFINE_integer('hidden_size',230,'hidden feature size')\ntf.app.flags.DEFINE_integer('pos_size',5,'position embedding size')\n\ntf.app.flags.DEFINE_integer('max_epoch',30,'maximum of training epochs')\ntf.app.flags.DEFINE_integer('batch_size',131*2,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('learning_rate',0.1,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('weight_decay',0.00001,'weight_decay')\ntf.app.flags.DEFINE_float('keep_prob',1.0,'dropout rate')\n\ntf.app.flags.DEFINE_integer('test_batch_size',131*2,'entity numbers used each test time')\ntf.app.flags.DEFINE_string('checkpoint_path','./model/','path to store model')\n\n\ndef make_shape(array,last_dim):\n\toutput = []\n\tfor i in array:\n\t\tfor j in i:\n\t\t\toutput.append(j)\n\toutput = np.array(output)\n\tif np.shape(output)[-1]==last_dim:\n\t\treturn output\n\n\telse:\n\t\tprint 'Make Shape Error!'\n\ndef main(_):\n\n\tprint 'reading word embedding'\n\tword_vec = np.load(export_path + 'vec.npy')\n\tprint 'reading test data'\n\ttest_instance_triple = np.load(export_path + 'test_instance_triple.npy')\n\ttest_instance_scope = np.load(export_path + 'test_instance_scope.npy')\n\ttest_len = np.load(export_path + 'test_len.npy')\n\ttest_label = np.load(export_path + 'test_label.npy')\n\ttest_word = np.load(export_path + 'test_word.npy')\n\ttest_pos1 = np.load(export_path + 'test_pos1.npy')\n\ttest_pos2 = np.load(export_path + 'test_pos2.npy')\n\ttest_mask = np.load(export_path + 'test_mask.npy')\n\ttest_head = np.load(export_path + 'test_head.npy')\n\ttest_tail = np.load(export_path + 'test_tail.npy')\n\tprint 'reading finished'\n\tprint 'mentions \t\t: %d' % (len(test_instance_triple))\n\tprint 'sentences\t\t: %d' % (len(test_len))\n\tprint 'relations\t\t: %d' % (FLAGS.num_classes)\n\tprint 'word size\t\t: %d' % (len(word_vec[0]))\n\tprint 'position size \t: %d' % (FLAGS.pos_size)\n\tprint 'hidden size\t\t: %d' % (FLAGS.hidden_size)\n\tprint 'reading finished'\n\n\tprint 'building network...'\n\tsess = tf.Session()\n\tif FLAGS.model.lower() == \"cnn\":\n\t\tmodel = network.CNN(is_training = False, word_embeddings = word_vec)\n\telif FLAGS.model.lower() == \"pcnn\":\n\t\tmodel = network.PCNN(is_training = False, word_embeddings = word_vec)\n\telif FLAGS.model.lower() == \"lstm\":\n\t\tmodel = network.RNN(is_training = False, word_embeddings = word_vec, cell_name = \"LSTM\", simple_position = True)\n\telif FLAGS.model.lower() == \"gru\":\n\t\tmodel = network.RNN(is_training = False, word_embeddings = word_vec, cell_name = \"GRU\", simple_position = True)\n\telif FLAGS.model.lower() == \"bi-lstm\" or FLAGS.model.lower() == \"bilstm\":\n\t\tmodel = network.BiRNN(is_training = False, word_embeddings = word_vec, cell_name = \"LSTM\", simple_position = True)\n\telif FLAGS.model.lower() == \"bi-gru\" or FLAGS.model.lower() == \"bigru\":\n\t\tmodel = network.BiRNN(is_training = False, word_embeddings = word_vec, cell_name = \"GRU\", simple_position = True)\n\tsess.run(tf.global_variables_initializer())\n\tsaver = tf.train.Saver()\n\n\tdef test_step(head, tail, word, pos1, pos2, mask, leng, label_index, label, scope):\n\t\tfeed_dict = {\n\t\t\tmodel.head_index: head,\n\t\t\tmodel.tail_index: tail,\n\t\t\tmodel.word: word,\n\t\t\tmodel.pos1: pos1,\n\t\t\tmodel.pos2: pos2,\n\t\t\tmodel.mask: mask,\n\t\t\tmodel.len : leng,\n\t\t\tmodel.label_index: label_index,\n\t\t\tmodel.label: label,\n\t\t\tmodel.scope: scope,\n\t\t\tmodel.keep_prob: FLAGS.keep_prob\n\t\t}\n\t\toutput = sess.run(model.test_output, feed_dict)\n\t\treturn output\n\n\tf = open('results.txt','w')\n\tf.write('iteration\\taverage precision\\n')\n\tfor iters in range(1,30):\n\t\tprint iters\n\t\tsaver.restore(sess, FLAGS.checkpoint_path + FLAGS.model+str(FLAGS.katt_flag)+\"-\"+str(3664*iters))\n\n\t\tstack_output = []\n\t\tstack_label = []\n\t\t\n\t\titeration = len(test_instance_scope)/FLAGS.test_batch_size\n\t\tfor i in range(iteration):\n\t\t\ttemp_str= 'running '+str(i)+'/'+str(iteration)+'...'\n\t\t\tsys.stdout.write(temp_str+'\\r')\n\t\t\tsys.stdout.flush()\n\t\t\tinput_scope = test_instance_scope[i * FLAGS.test_batch_size:(i+1)*FLAGS.test_batch_size]\n\t\t\tindex = []\n\t\t\tscope = [0]\n\t\t\tlabel = []\n\t\t\tfor num in input_scope:\n\t\t\t\tindex = index + range(num[0], num[1] + 1)\n\t\t\t\tlabel.append(test_label[num[0]])\n\t\t\t\tscope.append(scope[len(scope)-1] + num[1] - num[0] + 1)\n\t\t\tlabel_ = np.zeros((FLAGS.test_batch_size, FLAGS.num_classes))\n\t\t\tlabel_[np.arange(FLAGS.test_batch_size), label] = 1\n\t\t\toutput = test_step(test_head[index], test_tail[index], test_word[index,:], test_pos1[index,:], test_pos2[index,:], test_mask[index,:], test_len[index], test_label[index], label_, np.array(scope))\n\t\t\tstack_output.append(output)\n\t\t\tstack_label.append(label_)\n\t\t\t\n\t\tprint 'evaluating...'\n\n\t\tstack_output = np.concatenate(stack_output, axis=0)\n\t\tstack_label = np.concatenate(stack_label, axis = 0)\n\n\t\texclude_na_flatten_output = stack_output[:,1:]\n\t\texclude_na_flatten_label = stack_label[:,1:]\n\t\tprint exclude_na_flatten_output.shape\n\t\tprint exclude_na_flatten_label.shape\n\n\t\taverage_precision = average_precision_score(exclude_na_flatten_label,exclude_na_flatten_output, average = \"micro\")\n\n\t\tnp.save('./'+FLAGS.model+'+sen_att_all_prob_'+str(iters)+'.npy', exclude_na_flatten_output)\n\t\tnp.save('./'+FLAGS.model+'+sen_att_all_label_'+str(iters)+'.npy',exclude_na_flatten_label)\n\n\t\tprint 'pr: '+str(average_precision)\n\t\tf.write(str(average_precision)+'\\n')\n\tf.close()\n\nif __name__ == \"__main__\":\n\ttf.app.run()\n"
  },
  {
    "path": "jointD/train.py",
    "content": "import tensorflow as tf\nimport numpy as np\nimport time\nimport datetime\nimport os\nimport network\nimport json\nfrom sklearn.metrics import average_precision_score\nimport sys\nimport ctypes\nimport threading\n\nexport_path = \"../data/\"\n\nword_vec = np.load(export_path + 'vec.npy')\nf = open(export_path + \"config\", 'r')\nconfig = json.loads(f.read())\nf.close()\n\nll = ctypes.cdll.LoadLibrary   \nlib = ll(\"./init.so\")\nlib.setInPath(\"../data/\")\nlib.init()\n\nFLAGS = tf.app.flags.FLAGS\n\ntf.app.flags.DEFINE_float('nbatch_kg',100,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('margin',1.0,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('learning_rate_kg',0.001,'learning rate for kg')\ntf.app.flags.DEFINE_integer('ent_total',lib.getEntityTotal(),'total of entities')\ntf.app.flags.DEFINE_integer('rel_total',lib.getRelationTotal(),'total of relations')\ntf.app.flags.DEFINE_integer('tri_total',lib.getTripleTotal(),'total of triples')\ntf.app.flags.DEFINE_integer('katt_flag', 1, '1 for katt, 0 for att')\n\ntf.app.flags.DEFINE_string('model', 'cnn', 'neural models to encode sentences')\ntf.app.flags.DEFINE_integer('max_length',config['fixlen'],'maximum of number of words in one sentence')\ntf.app.flags.DEFINE_integer('pos_num', config['maxlen'] * 2 + 1,'number of position embedding vectors')\ntf.app.flags.DEFINE_integer('num_classes', config['textual_rel_total'],'maximum of relations')\n\ntf.app.flags.DEFINE_integer('hidden_size',230,'hidden feature size')\ntf.app.flags.DEFINE_integer('pos_size',5,'position embedding size')\n\ntf.app.flags.DEFINE_integer('max_epoch',20,'maximum of training epochs')\ntf.app.flags.DEFINE_integer('batch_size',160,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('learning_rate',0.5,'learning rate for nn')\ntf.app.flags.DEFINE_float('weight_decay',0.00001,'weight_decay')\ntf.app.flags.DEFINE_float('keep_prob',0.5,'dropout rate')\n\ntf.app.flags.DEFINE_string('model_dir','./model/','path to store model')\ntf.app.flags.DEFINE_string('summary_dir','./summary','path to store summary_dir')\n\n\ndef MakeSummary(name, value):\n\t\"\"\"Creates a tf.Summary proto with the given name and value.\"\"\"\n\tsummary = tf.Summary()\n\tval = summary.value.add()\n\tval.tag = str(name)\n\tval.simple_value = float(value)\n\treturn summary\n\ndef make_shape(array,last_dim):\n\toutput = []\n\tfor i in array:\n\t\tfor j in i:\n\t\t\toutput.append(j)\n\toutput = np.array(output)\n\tif np.shape(output)[-1]==last_dim:\n\t\treturn output\n\telse:\n\t\tprint 'Make Shape Error!'\n\ndef main(_):\n\n\tprint 'reading word embedding'\n\tword_vec = np.load(export_path + 'vec.npy')\n\tprint 'reading training data'\n\tinstance_triple = np.load(export_path + 'train_instance_triple.npy')\n\tinstance_scope = np.load(export_path + 'train_instance_scope.npy')\n\ttrain_len = np.load(export_path + 'train_len.npy')\n\ttrain_label = np.load(export_path + 'train_label.npy')\n\ttrain_word = np.load(export_path + 'train_word.npy')\n\ttrain_pos1 = np.load(export_path + 'train_pos1.npy')\n\ttrain_pos2 = np.load(export_path + 'train_pos2.npy')\n\ttrain_mask = np.load(export_path + 'train_mask.npy')\n\ttrain_head = np.load(export_path + 'train_head.npy')\n\ttrain_tail = np.load(export_path + 'train_tail.npy')\n\tprint 'reading finished'\n\tprint 'mentions \t\t: %d' % (len(instance_triple))\n\tprint 'sentences\t\t: %d' % (len(train_len))\n\tprint 'relations\t\t: %d' % (FLAGS.num_classes)\n\tprint 'word size\t\t: %d' % (len(word_vec[0]))\n\tprint 'position size \t: %d' % (FLAGS.pos_size)\n\tprint 'hidden size\t\t: %d' % (FLAGS.hidden_size)\n\treltot = {}\n\tfor index, i in enumerate(train_label):\n\t\tif not i in reltot:\n\t\t\treltot[i] = 1.0\n\t\telse:\n\t\t\treltot[i] += 1.0\n\tfor i in reltot:\n\t\treltot[i] = 1/(reltot[i] ** (0.05)) \n\tprint 'building network...'\n\tsess = tf.Session()\n\tif FLAGS.model.lower() == \"cnn\":\n\t\tmodel = network.CNN(is_training = True, word_embeddings = word_vec)\n\telif FLAGS.model.lower() == \"pcnn\":\n\t\tmodel = network.PCNN(is_training = True, word_embeddings = word_vec)\n\telif FLAGS.model.lower() == \"lstm\":\n\t\tmodel = network.RNN(is_training = True, word_embeddings = word_vec, cell_name = \"LSTM\", simple_position = True)\n\telif FLAGS.model.lower() == \"gru\":\n\t\tmodel = network.RNN(is_training = True, word_embeddings = word_vec, cell_name = \"GRU\", simple_position = True)\n\telif FLAGS.model.lower() == \"bi-lstm\" or FLAGS.model.lower() == \"bilstm\":\n\t\tmodel = network.BiRNN(is_training = True, word_embeddings = word_vec, cell_name = \"LSTM\", simple_position = True)\n\telif FLAGS.model.lower() == \"bi-gru\" or FLAGS.model.lower() == \"bigru\":\n\t\tmodel = network.BiRNN(is_training = True, word_embeddings = word_vec, cell_name = \"GRU\", simple_position = True)\n\t\n\tglobal_step = tf.Variable(0,name='global_step',trainable=False)\n\tglobal_step_kg = tf.Variable(0,name='global_step_kg',trainable=False)\n\ttf.summary.scalar('learning_rate', FLAGS.learning_rate)\n\ttf.summary.scalar('learning_rate_kg', FLAGS.learning_rate_kg)\n\n\toptimizer = tf.train.GradientDescentOptimizer(FLAGS.learning_rate)\n\tgrads_and_vars = optimizer.compute_gradients(model.loss)\n\ttrain_op = optimizer.apply_gradients(grads_and_vars, global_step = global_step)\n\n\toptimizer_kg = tf.train.GradientDescentOptimizer(FLAGS.learning_rate_kg)\n\tgrads_and_vars_kg = optimizer_kg.compute_gradients(model.loss_kg)\n\ttrain_op_kg = optimizer_kg.apply_gradients(grads_and_vars_kg, global_step = global_step_kg)\n\n\tmerged_summary = tf.summary.merge_all()\n\tsummary_writer = tf.summary.FileWriter(FLAGS.summary_dir, sess.graph)\n\tsess.run(tf.global_variables_initializer())\n\tsaver = tf.train.Saver(max_to_keep=None)\n\tprint 'building finished'\n\n\tdef train_kg(coord):\n\t\tdef train_step_kg(pos_h_batch, pos_t_batch, pos_r_batch, neg_h_batch, neg_t_batch, neg_r_batch):\n\t\t\tfeed_dict = {\n\t\t\t\tmodel.pos_h: pos_h_batch,\n\t\t\t\tmodel.pos_t: pos_t_batch,\n\t\t\t\tmodel.pos_r: pos_r_batch,\n\t\t\t\tmodel.neg_h: neg_h_batch,\n\t\t\t\tmodel.neg_t: neg_t_batch,\n\t\t\t\tmodel.neg_r: neg_r_batch\n\t\t\t}\n\t\t\t_, step, loss = sess.run(\n\t\t\t\t[train_op_kg, global_step_kg, model.loss_kg], feed_dict)\n\t\t\treturn loss\n\n\t\tbatch_size = (FLAGS.ent_total / FLAGS.nbatch_kg)\n\t\tph = np.zeros(batch_size, dtype = np.int32)\n\t\tpt = np.zeros(batch_size, dtype = np.int32)\n\t\tpr = np.zeros(batch_size, dtype = np.int32)\n\t\tnh = np.zeros(batch_size, dtype = np.int32)\n\t\tnt = np.zeros(batch_size, dtype = np.int32)\n\t\tnr = np.zeros(batch_size, dtype = np.int32)\n\t\tph_addr = ph.__array_interface__['data'][0]\n\t\tpt_addr = pt.__array_interface__['data'][0]\n\t\tpr_addr = pr.__array_interface__['data'][0]\n\t\tnh_addr = nh.__array_interface__['data'][0]\n\t\tnt_addr = nt.__array_interface__['data'][0]\n\t\tnr_addr = nr.__array_interface__['data'][0]\n\t\tlib.getBatch.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int]\n\t\ttimes_kg = 0\n\t\twhile not coord.should_stop():\n\t\t\ttimes_kg += 1\n\t\t\tres = 0.0\n\t\t\tfor batch in range(FLAGS.nbatch_kg):\n\t\t\t\tlib.getBatch(ph_addr, pt_addr, pr_addr, nh_addr, nt_addr, nr_addr, batch_size)\n\t\t\t\tres += train_step_kg(ph, pt, pr, nh, nt, nr)\n\t\t\ttime_str = datetime.datetime.now().isoformat()\n\t\t\tprint \"batch %d time %s | loss : %f\" % (times_kg, time_str, res)\n\n\n\tdef train_nn(coord):\n\t\tdef train_step(head, tail, word, pos1, pos2, mask, leng, label_index, label, scope, weights):\n\t\t\tfeed_dict = {\n\t\t\t\tmodel.head_index: head,\n\t\t\t\tmodel.tail_index: tail,\n\t\t\t\tmodel.word: word,\n\t\t\t\tmodel.pos1: pos1,\n\t\t\t\tmodel.pos2: pos2,\n\t\t\t\tmodel.mask: mask,\n\t\t\t\tmodel.len : leng,\n\t\t\t\tmodel.label_index: label_index,\n\t\t\t\tmodel.label: label,\n\t\t\t\tmodel.scope: scope,\n\t\t\t\tmodel.keep_prob: FLAGS.keep_prob,\n\t\t\t\tmodel.weights: weights\n\t\t\t}\n\t\t\t_, step, loss, summary, output, correct_predictions = sess.run([train_op, global_step, model.loss, merged_summary, model.output, model.correct_predictions], feed_dict)\n\t\t\tsummary_writer.add_summary(summary, step)\n\t\t\treturn output, loss, correct_predictions\n\n\t\tstack_output = []\n\t\tstack_label = []\n\t\tstack_ce_loss = []\n\n\t\ttrain_order = range(len(instance_triple))\n\n\t\tsave_epoch = 2\n\t\teval_step = 300\n\n\t\tfor one_epoch in range(FLAGS.max_epoch):\n\n\t\t\tprint('epoch '+str(one_epoch+1)+' starts!')\n\t\t\tnp.random.shuffle(train_order)\n\t\t\ts1 = 0.0\n\t\t\ts2 = 0.0\n\t\t\ttot1 = 0.0\n\t\t\ttot2 = 0.0\n\t\t\tlosstot = 0.0\n\t\t\tfor i in range(int(len(train_order)/float(FLAGS.batch_size))):\n\t\t\t\tinput_scope = np.take(instance_scope, train_order[i * FLAGS.batch_size:(i+1)*FLAGS.batch_size], axis=0)\n\t\t\t\tindex = []\n\t\t\t\tscope = [0]\n\t\t\t\tlabel = []\n\t\t\t\tweights = []\n\t\t\t\tfor num in input_scope:\n\t\t\t\t\tindex = index + range(num[0], num[1] + 1)\n\t\t\t\t\tlabel.append(train_label[num[0]])\n\t\t\t\t\tif train_label[num[0]] > 53:\n\t\t\t\t\t\tprint train_label[num[0]]\n\t\t\t\t\tscope.append(scope[len(scope)-1] + num[1] - num[0] + 1)\n\t\t\t\t\tweights.append(reltot[train_label[num[0]]])\n\t\t\t\tlabel_ = np.zeros((FLAGS.batch_size, FLAGS.num_classes))\n\t\t\t\tlabel_[np.arange(FLAGS.batch_size), label] = 1\n\t\t\t\toutput, loss, correct_predictions = train_step(train_head[index], train_tail[index], train_word[index,:], train_pos1[index,:], train_pos2[index,:], train_mask[index,:], train_len[index],train_label[index], label_, np.array(scope), weights)\n\t\t\t\tnum = 0\n\t\t\t\ts = 0\n\t\t\t\tlosstot += loss\n\t\t\t\tfor num in correct_predictions:\n\t\t\t\t\tif label[s] == 0:\n\t\t\t\t\t\ttot1 += 1.0\n\t\t\t\t\t\tif num:\n\t\t\t\t\t\t\ts1+= 1.0\n\t\t\t\t\telse:\n\t\t\t\t\t\ttot2 += 1.0\n\t\t\t\t\t\tif num:\n\t\t\t\t\t\t\ts2 += 1.0\n\t\t\t\t\ts = s + 1\n\n\t\t\t\ttime_str = datetime.datetime.now().isoformat()\n\t\t\t\tprint \"batch %d step %d time %s | loss : %f, NA accuracy: %f, not NA accuracy: %f\" % (one_epoch, i, time_str, loss, s1 / tot1, s2 / tot2)\n\t\t\t\tcurrent_step = tf.train.global_step(sess, global_step)\n\n\t\t\tif (one_epoch + 1) % save_epoch == 0:\n\t\t\t\tprint 'epoch '+str(one_epoch+1)+' has finished'\n\t\t\t\tprint 'saving model...'\n\t\t\t\tpath = saver.save(sess,FLAGS.model_dir+FLAGS.model+str(FLAGS.katt_flag), global_step=current_step)\n\t\t\t\tprint 'have savde model to '+path\n\n\t\tcoord.request_stop()\n\n\n\tcoord = tf.train.Coordinator()\n\tthreads = []\n\tthreads.append(threading.Thread(target=train_kg, args=(coord,)))\n\tthreads.append(threading.Thread(target=train_nn, args=(coord,)))\n\tfor t in threads: t.start()\n\tcoord.join(threads)\n\nif __name__ == \"__main__\":\n\ttf.app.run() \n"
  },
  {
    "path": "jointE/KATT/cnn.txt",
    "content": "0.000000\t0.000000\t0.995880\tmaryland\tkensington\t/location/location/contains\n0.500000\t0.000513\t0.994287\tvinod_khosla\tsun_microsystems\t/business/person/company\n0.666667\t0.001026\t0.993049\tcalifornia\tmill_valley\t/location/location/contains\n0.750000\t0.001538\t0.992666\tlaure_manaudou\tfrance\t/people/person/nationality\n0.800000\t0.002051\t0.991946\teric_e._schmidt\tgoogle\t/business/person/company\n0.833333\t0.002564\t0.991272\tpier_paolo_pasolini\titaly\t/people/person/nationality\n0.857143\t0.003077\t0.991046\tflorida\tjacksonville_beach\t/location/location/contains\n0.875000\t0.003590\t0.990915\tmaryland\tannapolis\t/location/location/contains\n0.888889\t0.004103\t0.989325\talaska\tchena_hot_springs\t/location/location/contains\n0.800000\t0.004103\t0.988933\tanna_chakvetadze\trussia\t/people/person/nationality\n0.818182\t0.004615\t0.988582\tfilippo_magnini\titaly\t/people/person/nationality\n0.750000\t0.004615\t0.988186\tjonathan_rosenberg\tgoogle\t/business/person/company\n0.692308\t0.004615\t0.988147\trajeev_motwani\tgoogle\t/business/person/company\n0.714286\t0.005128\t0.987757\tmarkus_zusak\taustralia\t/people/person/nationality\n0.733333\t0.005641\t0.987335\toklahoma\tmcalester\t/location/location/contains\n0.750000\t0.006154\t0.986457\twestchester_county\tpocantico_hills\t/location/location/contains\n0.764706\t0.006667\t0.986183\tjeffrey_r._immelt\tgeneral_electric\t/business/person/company\n0.777778\t0.007179\t0.986032\tflorida\tbal_harbour\t/location/location/contains\n0.789474\t0.007692\t0.985603\twestchester_county\tgreenburgh\t/location/location/contains\n0.800000\t0.008205\t0.985258\tdavid_eun\tgoogle\t/business/person/company\n0.809524\t0.008718\t0.984771\tcalifornia\tsonoma_county\t/location/location/contains\n0.818182\t0.009231\t0.984614\tlibby_lenton\taustralia\t/people/person/nationality\n0.826087\t0.009744\t0.984579\tmarius_trésor\tfrance\t/people/person/nationality\n0.791667\t0.009744\t0.983953\ttathiana_garbin\titaly\t/people/person/nationality\n0.800000\t0.010256\t0.983902\tcalifornia\tnapa\t/location/location/contains\n0.807692\t0.010769\t0.983871\tflorida\tgulf_stream\t/location/location/contains\n0.814815\t0.011282\t0.983634\tflorent_serra\tfrance\t/people/person/nationality\n0.821429\t0.011795\t0.983324\tjohn_l._hennessy\tstanford_university\t/business/person/company\n0.827586\t0.012308\t0.983282\tstephen_harper\tcanada\t/people/person/nationality\n0.833333\t0.012821\t0.983228\tmarissa_mayer\tgoogle\t/business/person/company\n0.838710\t0.013333\t0.983181\tconnecticut\tguilford\t/location/location/contains\n0.843750\t0.013846\t0.982989\titaly\tmaranello\t/location/location/contains\n0.818182\t0.013846\t0.982911\tontario\tfort_erie\t/location/location/contains\n0.794118\t0.013846\t0.982526\tflorida\trotonda\t/location/location/contains\n0.800000\t0.014359\t0.982010\tdenise_karbon\titaly\t/people/person/nationality\n0.777778\t0.014359\t0.981817\tontario\tnanticoke\t/location/location/contains\n0.783784\t0.014872\t0.981697\tstein_eriksen\tnorway\t/people/person/nationality\n0.763158\t0.014872\t0.981560\tsouth_carolina\tdarlington_raceway\t/location/location/contains\n0.769231\t0.015385\t0.981317\tpeter_luczak\taustralia\t/people/person/nationality\n0.750000\t0.015385\t0.981105\tnolan_bushnell\tatari\t/business/person/company\n0.756098\t0.015897\t0.980632\tchase_carey\tdirectv\t/business/person/company\n0.738095\t0.015897\t0.980458\tdinara_safina\trussia\t/people/person/nationality\n0.744186\t0.016410\t0.980418\tfairfield_county\twestport\t/location/location/contains\n0.750000\t0.016923\t0.980406\tchad_hurley\tyoutube\t/business/person/company\n0.755556\t0.017436\t0.980174\tsami_jo_small\tcanada\t/people/person/nationality\n0.760870\t0.017949\t0.980101\tvirginia\tharrisonburg\t/location/location/contains\n0.765957\t0.018462\t0.979768\tjonathan_littell\tfrance\t/people/person/nationality\n0.770833\t0.018974\t0.979625\tcalifornia\thumboldt_redwoods_state_park\t/location/location/contains\n0.775510\t0.019487\t0.979323\tflorida\tnorth_port\t/location/location/contains\n0.760000\t0.019487\t0.978916\tphillip_aspinall\taustralia\t/people/person/nationality\n0.764706\t0.020000\t0.978291\tchad_hurley\tgoogle\t/business/person/company\n0.769231\t0.020513\t0.977949\ttanzania\tmoshi\t/location/location/contains\n0.773585\t0.021026\t0.977405\tdouglas_merrill\tgoogle\t/business/person/company\n0.777778\t0.021538\t0.977193\tconnecticut\tfairfield_county\t/location/location/contains\n0.781818\t0.022051\t0.977117\trussell_smith\tcanada\t/people/person/nationality\n0.785714\t0.022564\t0.977091\tperdita_felicien\tcanada\t/people/person/nationality\n0.789474\t0.023077\t0.977077\tgermany\tkronach\t/location/location/contains\n0.793103\t0.023590\t0.976818\txavier_florencio\tspain\t/people/person/nationality\n0.796610\t0.024103\t0.976818\tanne_m._mulcahy\txerox\t/business/person/company\n0.800000\t0.024615\t0.976730\tstefano_baldini\titaly\t/people/person/nationality\n0.803279\t0.025128\t0.976672\tmaryland\ttakoma_park\t/location/location/contains\n0.806452\t0.025641\t0.976611\tiowa\tle_mars\t/location/location/contains\n0.809524\t0.026154\t0.976504\tfrançois_bayrou\tfrance\t/people/person/nationality\n0.796875\t0.026154\t0.976321\ttatiana_kosintseva\trussia\t/people/person/nationality\n0.800000\t0.026667\t0.976294\tboston\tdorchester\t/location/location/contains\n0.787879\t0.026667\t0.975527\tbjorn_phau\tgermany\t/people/person/nationality\n0.791045\t0.027179\t0.975518\tcuba\tbayamo\t/location/location/contains\n0.794118\t0.027692\t0.975472\tvermont\tbrattleboro\t/location/location/contains\n0.797101\t0.028205\t0.975466\tjorge_garbajosa\tspain\t/people/person/nationality\n0.785714\t0.028205\t0.975436\tdon_harrison\tgoogle\t/business/person/company\n0.774648\t0.028205\t0.975419\tvirginia\tmount_vernon\t/location/location/contains\n0.777778\t0.028718\t0.975294\tgermany\tlandstuhl\t/location/location/contains\n0.780822\t0.029231\t0.974849\titaly\tpositano\t/location/location/contains\n0.770270\t0.029231\t0.974492\tnew_york_city\tcollege_of_insurance\t/location/location/contains\n0.773333\t0.029744\t0.974405\tsouth_carolina\tlittle_pee_dee_river\t/location/location/contains\n0.776316\t0.030256\t0.974199\tcalifornia\tmonterey\t/location/location/contains\n0.779221\t0.030769\t0.974047\twest_virginia\telk_garden\t/location/location/contains\n0.782051\t0.031282\t0.973229\tfrancesco_maria_piave\titaly\t/people/person/nationality\n0.772152\t0.031282\t0.973215\tbaltasar_garzón\tspain\t/people/person/nationality\n0.775000\t0.031795\t0.973188\tcalifornia\tsan_juan_capistrano\t/location/location/contains\n0.777778\t0.032308\t0.973173\tflorida\tboca_raton\t/location/location/contains\n0.768293\t0.032308\t0.972939\tontario\twawa\t/location/location/contains\n0.771084\t0.032821\t0.972635\tségolène_royal\tfrance\t/people/person/nationality\n0.773810\t0.033333\t0.972544\tmississippi\tmccomb\t/location/location/contains\n0.764706\t0.033333\t0.972514\telena_dementieva\trussia\t/people/person/nationality\n0.767442\t0.033846\t0.971313\tflorida\tponte_vedra_beach\t/location/location/contains\n0.770115\t0.034359\t0.971186\tflorida\tlake_worth\t/location/location/contains\n0.772727\t0.034872\t0.970938\tgermany\tbaden-baden\t/location/location/contains\n0.775281\t0.035385\t0.970156\tsuffolk_county\tsmithtown\t/location/location/contains\n0.777778\t0.035897\t0.969907\trhode_island\twest_warwick\t/location/location/contains\n0.769231\t0.035897\t0.969728\tphilippe_douste-blazy\tfrance\t/people/person/nationality\n0.771739\t0.036410\t0.969597\tcalifornia\tbeverly_hills\t/location/location/contains\n0.763441\t0.036410\t0.969277\tashis_nandy\tindia\t/people/person/nationality\n0.755319\t0.036410\t0.969072\tspringstein\tgermany\t/people/person/nationality\n0.757895\t0.036923\t0.968775\taustralia\tjindabyne\t/location/location/contains\n0.750000\t0.036923\t0.968310\tmaryland\tfort_meade\t/location/location/contains\n0.752577\t0.037436\t0.968180\travi_chopra\tindia\t/people/person/nationality\n0.755102\t0.037949\t0.967655\tcorrado_augias\titaly\t/people/person/nationality\n0.757576\t0.038462\t0.967118\tontario\tniagara-on-the-lake\t/location/location/contains\n0.760000\t0.038974\t0.967032\tshilpa_shetty\tindia\t/people/person/nationality\n0.762376\t0.039487\t0.966855\tantonio_stradivari\titaly\t/people/person/nationality\n0.754902\t0.039487\t0.966782\tcolorado\thinsdale\t/location/location/contains\n0.757282\t0.040000\t0.966779\tbruno_kernen\tswitzerland\t/people/person/nationality\n0.759615\t0.040513\t0.966745\tcolorado\taspen\t/location/location/contains\n0.752381\t0.040513\t0.966705\tidaho\ttamarack_resort\t/location/location/contains\n0.754717\t0.041026\t0.966588\tgermany\tbad_arolsen\t/location/location/contains\n0.747664\t0.041026\t0.966460\tandy_murray\tscotland\t/people/person/nationality\n0.750000\t0.041538\t0.966229\tarthur_d._collins_jr.\tmedtronic\t/business/person/company\n0.752294\t0.042051\t0.966202\tmario_soldati\titaly\t/people/person/nationality\n0.745455\t0.042051\t0.965811\tyle\tfinland\t/people/person/nationality\n0.747748\t0.042564\t0.965271\tcalifornia\tlos_alamitos\t/location/location/contains\n0.741071\t0.042564\t0.965190\tcalifornia\towens_valley\t/location/location/contains\n0.734513\t0.042564\t0.964723\tnew_hampshire\tattitash\t/location/location/contains\n0.736842\t0.043077\t0.964520\ttorah_bright\taustralia\t/people/person/nationality\n0.739130\t0.043590\t0.964175\tgermany\tnordenham\t/location/location/contains\n0.732759\t0.043590\t0.963294\tvermont\tbennington\t/location/location/contains\n0.735043\t0.044103\t0.963292\tgermany\tkönigsdorf\t/location/location/contains\n0.737288\t0.044615\t0.963275\tsri_lanka\tpolonnaruwa\t/location/location/contains\n0.731092\t0.044615\t0.963223\tboston\tfirst_church\t/location/location/contains\n0.725000\t0.044615\t0.963017\tcuba\tpuerto_padre\t/location/location/contains\n0.727273\t0.045128\t0.962931\thoward_hochhauser\tmartha_stewart_living_omnimedia\t/business/person/company\n0.729508\t0.045641\t0.962851\twisconsin\tuss_cobia\t/location/location/contains\n0.723577\t0.045641\t0.962537\tflorida\tsarasota_film_festival\t/location/location/contains\n0.725806\t0.046154\t0.962358\tsan_francisco\tnorth_beach\t/location/location/contains\n0.728000\t0.046667\t0.962206\tper_petterson\tnorway\t/people/person/nationality\n0.730159\t0.047179\t0.961897\tlars_berger\tnorway\t/people/person/nationality\n0.732283\t0.047692\t0.961732\tdavid_ferrer\tspain\t/people/person/nationality\n0.734375\t0.048205\t0.961326\tflorida\tcoconut_creek\t/location/location/contains\n0.728682\t0.048205\t0.961289\twisconsin\tfishtrap_lake\t/location/location/contains\n0.730769\t0.048718\t0.961181\trobert_druskin\tcitigroup\t/business/person/company\n0.725191\t0.048718\t0.961020\tmaryland\tmontgomery_county\t/location/location/contains\n0.727273\t0.049231\t0.961004\tjean-louis_bruguière\tfrance\t/people/person/nationality\n0.729323\t0.049744\t0.960851\tgermany\tmeiningen\t/location/location/contains\n0.731343\t0.050256\t0.960149\tmichelle_peluso\ttravelocity\t/business/person/company\n0.725926\t0.050256\t0.958890\ttim_clark\tsouth_africa\t/people/person/nationality\n0.720588\t0.050256\t0.958454\toklahoma\tcherokee_county\t/location/location/contains\n0.722628\t0.050769\t0.958083\tfrançois_mitterrand\tfrance\t/people/person/nationality\n0.724638\t0.051282\t0.957728\tmark_v._hurd\thewlett-packard\t/business/person/company\n0.719424\t0.051282\t0.957067\tolivier_roy\tfrance\t/people/person/nationality\n0.721429\t0.051795\t0.956988\tjalisco\tmazamitla\t/location/location/contains\n0.716312\t0.051795\t0.956932\tmaryland\tcomcast_center\t/location/location/contains\n0.718310\t0.052308\t0.956872\tpedro_almodóvar\tspain\t/people/person/nationality\n0.720280\t0.052821\t0.956852\tsarah_jamieson\taustralia\t/people/person/nationality\n0.722222\t0.053333\t0.956464\tflorida\tpalm_beach\t/location/location/contains\n0.724138\t0.053846\t0.956148\tshane_doan\tcanada\t/people/person/nationality\n0.726027\t0.054359\t0.956037\tatiku_abubakar\tnigeria\t/people/person/nationality\n0.727891\t0.054872\t0.955890\tgermany\tdessau\t/location/location/contains\n0.729730\t0.055385\t0.955835\tsão_paulo\tpacaembu\t/location/location/contains\n0.731544\t0.055897\t0.955751\trockland_county\tairmont\t/location/location/contains\n0.733333\t0.056410\t0.954876\tgermany\tsiegen\t/location/location/contains\n0.735099\t0.056923\t0.954274\tpeter_akinola\tnigeria\t/people/person/nationality\n0.730263\t0.056923\t0.954118\tabdou_diouf\tsenegal\t/people/person/nationality\n0.732026\t0.057436\t0.953871\tmaryland\tdeep_creek_lake\t/location/location/contains\n0.733766\t0.057949\t0.953760\tisrael\tashkelon\t/location/location/contains\n0.735484\t0.058462\t0.953628\tcambridge\tlesley_university\t/location/location/contains\n0.737179\t0.058974\t0.952835\tjo-wilfried_tsonga\tfrance\t/people/person/nationality\n0.738854\t0.059487\t0.952825\tamália_rodrigues\tportugal\t/people/person/nationality\n0.734177\t0.059487\t0.952404\tbihar\tjahanabad\t/location/location/contains\n0.735849\t0.060000\t0.951826\tturkey\ttrabzon\t/location/location/contains\n0.731250\t0.060000\t0.951575\tandrea_frazzini\tuniversity_of_chicago\t/business/person/company\n0.732919\t0.060513\t0.951397\tgaël_monfils\tfrance\t/people/person/nationality\n0.728395\t0.060513\t0.951389\tbuffalo\tdelaware_park\t/location/location/contains\n0.730061\t0.061026\t0.951155\trockland_county\tnew_city\t/location/location/contains\n0.731707\t0.061538\t0.950967\tlaurent_merlin\tfrance\t/people/person/nationality\n0.733333\t0.062051\t0.950891\tiowa\tbode\t/location/location/contains\n0.734940\t0.062564\t0.950856\tsanta_clara_county\tsan_jose\t/location/location/contains\n0.736527\t0.063077\t0.950850\tsouth_dakota\trosebud_indian_reservation\t/location/location/contains\n0.738095\t0.063590\t0.950538\tpeer_steinbrück\tgermany\t/people/person/nationality\n0.739645\t0.064103\t0.950037\tcamille_pin\tfrance\t/people/person/nationality\n0.741176\t0.064615\t0.950000\tlos_angeles_county\tlong_beach\t/location/location/contains\n0.742690\t0.065128\t0.949893\tjohn_macdonald\tcanada\t/people/person/nationality\n0.738372\t0.065128\t0.949711\tireland\tcounty_monaghan\t/location/location/contains\n0.739884\t0.065641\t0.949668\tlos_angeles_county\tbell_gardens\t/location/location/contains\n0.735632\t0.065641\t0.949614\trussia\tcaucasus_mountains\t/location/location/contains\n0.737143\t0.066154\t0.949597\tindia\tgangtok\t/location/location/contains\n0.738636\t0.066667\t0.949449\tcalifornia\tberkeley\t/location/location/contains\n0.734463\t0.066667\t0.949148\talex_neve\tcanada\t/people/person/nationality\n0.735955\t0.067179\t0.949132\tseyyed_hossein_nasr\tgeorge_washington_university\t/business/person/company\n0.731844\t0.067179\t0.949106\trockland_county\tramapo\t/location/location/contains\n0.733333\t0.067692\t0.948681\tthailand\tkrabi\t/location/location/contains\n0.729282\t0.067692\t0.948643\tireland\tcounty_longford\t/location/location/contains\n0.725275\t0.067692\t0.948520\tcolorado\tridgway_state_park\t/location/location/contains\n0.726776\t0.068205\t0.948424\tkim_jong-il\tnorth_korea\t/people/person/nationality\n0.728261\t0.068718\t0.948321\tconnecticut\twestport\t/location/location/contains\n0.729730\t0.069231\t0.948108\tali_khamenei\tiran\t/people/person/nationality\n0.725806\t0.069231\t0.948021\tgermany\tuniversity_of_lübeck\t/location/location/contains\n0.721925\t0.069231\t0.947805\tsteve_newcomb\tgoogle\t/business/person/company\n0.723404\t0.069744\t0.947530\tstephen_g._post\tcase_western_reserve_university\t/business/person/company\n0.724868\t0.070256\t0.947518\tidaho\tlapwai\t/location/location/contains\n0.726316\t0.070769\t0.947223\titaly\torvieto\t/location/location/contains\n0.727749\t0.071282\t0.947085\tbenita_johnson\taustralia\t/people/person/nationality\n0.729167\t0.071795\t0.946970\tfaraz_hoodbhoy\tpixsense\t/business/person/company\n0.730570\t0.072308\t0.946963\titaly\travenna\t/location/location/contains\n0.726804\t0.072308\t0.946805\tvirginia\tringgold\t/location/location/contains\n0.723077\t0.072308\t0.946686\tspain\talhambra\t/location/location/contains\n0.719388\t0.072308\t0.946157\tindiana\tbedford\t/location/location/contains\n0.715736\t0.072308\t0.945670\tpaolo_gentiloni\titaly\t/people/person/nationality\n0.712121\t0.072308\t0.945421\tennio_morricone\tportugal\t/people/person/nationality\n0.708543\t0.072308\t0.945250\tnikolay_davydenko\trussia\t/people/person/nationality\n0.705000\t0.072308\t0.945206\tiberdrola\tspain\t/people/person/nationality\n0.706468\t0.072821\t0.945195\titaly\tmontappone\t/location/location/contains\n0.707921\t0.073333\t0.945179\tsumner_redstone\tviacom\t/business/person/company\n0.704433\t0.073333\t0.944991\teric_von_hippel\tmassachusetts_institute_of_technology\t/business/person/company\n0.705882\t0.073846\t0.944633\tturkey\tvan\t/location/location/contains\n0.702439\t0.073846\t0.944331\tbjarne_riis\tfrance\t/people/person/nationality\n0.703883\t0.074359\t0.943904\tstaten_island\ttodt_hill\t/location/location/contains\n0.700483\t0.074359\t0.943814\tstefano_bollani\titaly\t/people/person/nationality\n0.701923\t0.074872\t0.943663\tiowa\tfort_madison\t/location/location/contains\n0.698565\t0.074872\t0.943349\tlloyd_taylor\tgoogle\t/business/person/company\n0.695238\t0.074872\t0.942840\tcalifornia\ttim_rooney\t/location/location/contains\n0.691943\t0.074872\t0.942762\tnew_york_city\tcroton_dam\t/location/location/contains\n0.693396\t0.075385\t0.942626\tiran\tisfahan\t/location/location/contains\n0.694836\t0.075897\t0.942505\tsherry_turkle\tmassachusetts_institute_of_technology\t/business/person/company\n0.696262\t0.076410\t0.942444\tportland\treed_college\t/location/location/contains\n0.697674\t0.076923\t0.942358\tmariano_rajoy\tspain\t/people/person/nationality\n0.699074\t0.077436\t0.942169\tcalifornia\tsan_onofre\t/location/location/contains\n0.695853\t0.077436\t0.942069\tontario\ttobermory\t/location/location/contains\n0.697248\t0.077949\t0.941898\tturkey\tsamsun\t/location/location/contains\n0.694064\t0.077949\t0.941252\tkatharine_hepburn\tscotland\t/people/person/nationality\n0.695455\t0.078462\t0.941231\tconnecticut\tdarien\t/location/location/contains\n0.692308\t0.078462\t0.941151\tvoltaire\tportugal\t/people/person/nationality\n0.693694\t0.078974\t0.940939\tmexico\tbaja_california_peninsula\t/location/location/contains\n0.690583\t0.078974\t0.940489\trolf_de_heer\taustralia\t/people/person/nationality\n0.687500\t0.078974\t0.939817\tmargherita_of_savoy\titaly\t/people/person/nationality\n0.688889\t0.079487\t0.939789\tdan_gilbert\tquicken_loans\t/business/person/company\n0.690265\t0.080000\t0.939631\tidaho\trexburg\t/location/location/contains\n0.687225\t0.080000\t0.939558\tmark_feldstein\tgeorge_washington_university\t/business/person/company\n0.688596\t0.080513\t0.939392\tturkey\tkonya\t/location/location/contains\n0.685590\t0.080513\t0.939389\tr._c._buford\tfrance\t/people/person/nationality\n0.686957\t0.081026\t0.939348\tsara_seager\tmassachusetts_institute_of_technology\t/business/person/company\n0.688312\t0.081538\t0.939344\tflorida\taventura\t/location/location/contains\n0.689655\t0.082051\t0.939325\tstephen_ames\tcanada\t/people/person/nationality\n0.686695\t0.082051\t0.939312\tmountain_zebra_national_park\tsouth_africa\t/people/person/nationality\n0.683761\t0.082051\t0.939121\talexander_stille\titaly\t/people/person/nationality\n0.685106\t0.082564\t0.938532\tdominique_gisin\tswitzerland\t/people/person/nationality\n0.682203\t0.082564\t0.938017\tsonoma_county\trussian_river\t/location/location/contains\n0.683544\t0.083077\t0.937965\tmaryland\tglenarden\t/location/location/contains\n0.684874\t0.083590\t0.937930\tlevi_eshkol\tisrael\t/people/person/nationality\n0.686192\t0.084103\t0.937828\thenri_troyat\tfrance\t/people/person/nationality\n0.687500\t0.084615\t0.937527\talain_duhamel\tfrance\t/people/person/nationality\n0.688797\t0.085128\t0.937519\talfred_moisiu\talbania\t/people/person/nationality\n0.690083\t0.085641\t0.937387\tdavid_altmejd\tcanada\t/people/person/nationality\n0.691358\t0.086154\t0.937372\tpierre_bourdieu\tfrance\t/people/person/nationality\n0.688525\t0.086154\t0.937212\tboston\tmassachusetts_college_of_art\t/location/location/contains\n0.689796\t0.086667\t0.936803\tsouth_australia\tport_lincoln\t/location/location/contains\n0.691057\t0.087179\t0.936777\tminnesota\teveleth\t/location/location/contains\n0.688259\t0.087179\t0.936494\tdavid_berson\tespn\t/business/person/company\n0.689516\t0.087692\t0.936452\tjosé_sócrates\tportugal\t/people/person/nationality\n0.686747\t0.087692\t0.936435\tmarilee_jones\tmassachusetts_institute_of_technology\t/business/person/company\n0.688000\t0.088205\t0.936339\tjürgen_klinsmann\tgermany\t/people/person/nationality\n0.689243\t0.088718\t0.935953\tindia\thalol\t/location/location/contains\n0.686508\t0.088718\t0.935750\tela_bhatt\tindia\t/people/person/nationality\n0.683794\t0.088718\t0.935417\tkeith_murdoch\taustralia\t/people/person/nationality\n0.681102\t0.088718\t0.935371\twest_texas\tmarfa\t/location/location/contains\n0.682353\t0.089231\t0.935055\tjosé_maría_aznar\tspain\t/people/person/nationality\n0.679688\t0.089231\t0.934673\tcalifornia\tlawrence_livermore_national_laboratory\t/location/location/contains\n0.677043\t0.089231\t0.934502\tconnecticut\tglass_house\t/location/location/contains\n0.674419\t0.089231\t0.934226\titaly\tuniversity_of_florence\t/location/location/contains\n0.671815\t0.089231\t0.933992\tbaja_california\tla_paz\t/location/location/contains\n0.669231\t0.089231\t0.933980\tmafioso\titaly\t/people/person/nationality\n0.670498\t0.089744\t0.933795\tarkansas\thendrix_college\t/location/location/contains\n0.671756\t0.090256\t0.933668\tandrew_whiteman\tcanada\t/people/person/nationality\n0.669202\t0.090256\t0.933496\tport_washington\tharborside\t/location/location/contains\n0.670455\t0.090769\t0.933354\tcalifornia\toakland\t/location/location/contains\n0.667925\t0.090769\t0.932307\tpaktia_province\tpatan\t/location/location/contains\n0.665414\t0.090769\t0.932061\tpeter_gelb\tfrance\t/people/person/nationality\n0.666667\t0.091282\t0.932001\tmuhammadu_buhari\tnigeria\t/people/person/nationality\n0.667910\t0.091795\t0.931935\tesa-pekka_salonen\tfinland\t/people/person/nationality\n0.669145\t0.092308\t0.931596\tgermany\thildesheim\t/location/location/contains\n0.666667\t0.092308\t0.931410\tvermont\tokemo_mountain_resort\t/location/location/contains\n0.664207\t0.092308\t0.931354\ttulbagh\tsouth_africa\t/people/person/nationality\n0.661765\t0.092308\t0.930946\tnadia_petrova\trussia\t/people/person/nationality\n0.663004\t0.092821\t0.930666\tguanajuato\tacámbaro\t/location/location/contains\n0.664234\t0.093333\t0.930552\tjonathan_gruber\tmassachusetts_institute_of_technology\t/business/person/company\n0.665455\t0.093846\t0.930363\tiowa\tfort_des_moines\t/location/location/contains\n0.666667\t0.094359\t0.930152\tshanghai\tjade_buddha_temple\t/location/location/contains\n0.667870\t0.094872\t0.929813\talaska\tkenai\t/location/location/contains\n0.665468\t0.094872\t0.929333\tmilton_wolff\tspain\t/people/person/nationality\n0.666667\t0.095385\t0.928934\tchris_dewolfe\tmyspace\t/business/person/company\n0.667857\t0.095897\t0.928495\tiran\tmashhad\t/location/location/contains\n0.669039\t0.096410\t0.928331\tseattle\tsouth_lake_union\t/location/location/contains\n0.670213\t0.096923\t0.927680\tserbia\tleskovac\t/location/location/contains\n0.671378\t0.097436\t0.927453\tmichael_grossi\thelio\t/business/person/company\n0.669014\t0.097436\t0.927444\tconnecticut\tmadison\t/location/location/contains\n0.670175\t0.097949\t0.927055\theinrich_von_pierer\tgermany\t/people/person/nationality\n0.671329\t0.098462\t0.926509\tkwame_anthony_appiah\tprinceton_university\t/business/person/company\n0.672474\t0.098974\t0.926131\tcalifornia\triverside\t/location/location/contains\n0.673611\t0.099487\t0.926088\tbrian_mulroney\tcanada\t/people/person/nationality\n0.674740\t0.100000\t0.925667\ttim_rogers\taustralia\t/people/person/nationality\n0.675862\t0.100513\t0.925204\twestchester_county\tmamaroneck\t/location/location/contains\n0.673540\t0.100513\t0.925190\tcalifornia\ttejon_ranch\t/location/location/contains\n0.674658\t0.101026\t0.925047\tontario\tst._catharines\t/location/location/contains\n0.675768\t0.101538\t0.924211\tangelo_morbelli\titaly\t/people/person/nationality\n0.673469\t0.101538\t0.923590\taziz_pahad\tzimbabwe\t/people/person/nationality\n0.671186\t0.101538\t0.922936\tlaurent_merlin\tportugal\t/people/person/nationality\n0.672297\t0.102051\t0.922899\tgermany\twolfsburg\t/location/location/contains\n0.670034\t0.102051\t0.922686\tpope_benedict_xvi\tiran\t/people/person/nationality\n0.667785\t0.102051\t0.922344\tcanada\twood_buffalo_national_park\t/location/location/contains\n0.668896\t0.102564\t0.921539\tjohn_howard\taustralia\t/people/person/nationality\n0.666667\t0.102564\t0.921435\twilliam_knox\tisrael\t/people/person/nationality\n0.664452\t0.102564\t0.920513\tcalifornia\tsacramento_river\t/location/location/contains\n0.662252\t0.102564\t0.920216\tdavid_m._kennedy\tstanford_university\t/business/person/company\n0.663366\t0.103077\t0.919945\tcalifornia\tmalibu\t/location/location/contains\n0.664474\t0.103590\t0.919059\tnew_york_city\tsalmagundi_club\t/location/location/contains\n0.665574\t0.104103\t0.918715\tgreece\tmount_athos\t/location/location/contains\n0.666667\t0.104615\t0.918633\tgeorges_pompidou\tfrance\t/people/person/nationality\n0.664495\t0.104615\t0.918607\tnew_york_city\tmount_sinai_school_of_medicine\t/location/location/contains\n0.665584\t0.105128\t0.918318\tmolise\tvenafro\t/location/location/contains\n0.666667\t0.105641\t0.917563\thebei\tbaoding\t/location/location/contains\n0.664516\t0.105641\t0.917160\tsan_francisco\tvideoegg\t/location/location/contains\n0.662379\t0.105641\t0.916986\tmaryland\tmontgomery_college\t/location/location/contains\n0.663462\t0.106154\t0.916313\tmaria_de_belém_roseira\tportugal\t/people/person/nationality\n0.664537\t0.106667\t0.915366\tyossi_vardi\tisrael\t/people/person/nationality\n0.662420\t0.106667\t0.915280\tmartin_sorrell\tgoogle\t/business/person/company\n0.660317\t0.106667\t0.914784\tdavid_cheriton\tgoogle\t/business/person/company\n0.658228\t0.106667\t0.914121\tronald_radosh\tspain\t/people/person/nationality\n0.656151\t0.106667\t0.914073\tberlin\teastern_high_school\t/location/location/contains\n0.657233\t0.107179\t0.913532\twestchester_county\tnew_rochelle\t/location/location/contains\n0.655172\t0.107179\t0.912928\tnew_york_city\trondout_reservoir\t/location/location/contains\n0.656250\t0.107692\t0.912906\tgermany\tfriedrichshafen\t/location/location/contains\n0.657321\t0.108205\t0.912778\tflorida\ttamarac\t/location/location/contains\n0.655280\t0.108205\t0.912466\tg._wayne_clough\tgeorgia_institute_of_technology\t/business/person/company\n0.653251\t0.108205\t0.912406\tswitzerland\tarosa\t/location/location/contains\n0.651235\t0.108205\t0.912103\tedmund_daukoru\tnigeria\t/people/person/nationality\n0.652308\t0.108718\t0.911903\tcalifornia\tsan_mateo\t/location/location/contains\n0.653374\t0.109231\t0.911347\tenrique_morente\tspain\t/people/person/nationality\n0.654434\t0.109744\t0.911146\tconnecticut\tnew_haven\t/location/location/contains\n0.652439\t0.109744\t0.910960\tdenis_macshane\tfrance\t/people/person/nationality\n0.650456\t0.109744\t0.910712\tkhosla_ventures\tsun_microsystems\t/business/person/company\n0.648485\t0.109744\t0.910390\tsherwin_rosen\tuniversity_of_chicago\t/business/person/company\n0.646526\t0.109744\t0.910235\taustralia\tmelbourne_aquarium\t/location/location/contains\n0.647590\t0.110256\t0.909981\tindia\taldona\t/location/location/contains\n0.645646\t0.110256\t0.909832\tunion_county\tspringfield\t/location/location/contains\n0.643713\t0.110256\t0.909715\tcalifornia\tmuseum_of_latin_american_art\t/location/location/contains\n0.641791\t0.110256\t0.909558\tnew_hampshire\tmarlborough\t/location/location/contains\n0.642857\t0.110769\t0.909508\toregon\trogue_river\t/location/location/contains\n0.640950\t0.110769\t0.909369\tfred_krupp\tgeneral_electric\t/business/person/company\n0.639053\t0.110769\t0.909242\tflorida\tvenice\t/location/location/contains\n0.637168\t0.110769\t0.909192\tecuador\tcuenca\t/location/location/contains\n0.638235\t0.111282\t0.907942\ttanzania\tmount_kilimanjaro\t/location/location/contains\n0.636364\t0.111282\t0.907613\tthomas_w._lasorda\tchrysler\t/business/person/company\n0.634503\t0.111282\t0.907485\twestchester_county\teastview\t/location/location/contains\n0.632653\t0.111282\t0.907314\tstuart_appleby\taustralia\t/people/person/nationality\n0.633721\t0.111795\t0.906548\tindia\tbenaulim\t/location/location/contains\n0.631884\t0.111795\t0.905579\twisconsin\toswego\t/location/location/contains\n0.630058\t0.111795\t0.905464\talain_j._p._belda\tcitigroup\t/business/person/company\n0.628242\t0.111795\t0.905275\ttoronto\tkensington_gardens\t/location/location/contains\n0.629310\t0.112308\t0.905107\tmaryland\ttowson\t/location/location/contains\n0.630372\t0.112821\t0.904916\tjosé_saramago\tportugal\t/people/person/nationality\n0.628571\t0.112821\t0.904145\tnapoleon\trussia\t/people/person/nationality\n0.626781\t0.112821\t0.904031\twestchester_county\tstaten_island\t/location/location/contains\n0.625000\t0.112821\t0.903694\tcalifornia\tchapman_university\t/location/location/contains\n0.623229\t0.112821\t0.903613\tcolorado\tbreckenridge\t/location/location/contains\n0.624294\t0.113333\t0.903511\taravind_adiga\tindia\t/people/person/nationality\n0.625352\t0.113846\t0.903457\tcaroline_fourest\tfrance\t/people/person/nationality\n0.626404\t0.114359\t0.903072\tmartin_mosebach\tgermany\t/people/person/nationality\n0.627451\t0.114872\t0.902634\tgujarat\tvadodara\t/location/location/contains\n0.625698\t0.114872\t0.902533\tnelson_chamisa\tzimbabwe\t/people/person/nationality\n0.626741\t0.115385\t0.902192\tvermont\tstowe\t/location/location/contains\n0.627778\t0.115897\t0.902184\tgordon_brown\tunited_kingdom\t/people/person/nationality\n0.626039\t0.115897\t0.901592\tjohn_stratton\taustralia\t/people/person/nationality\n0.624309\t0.115897\t0.901139\taustralia\tuniversity_of_sydney\t/location/location/contains\n0.625344\t0.116410\t0.900902\tmonmouth_county\toceanport\t/location/location/contains\n0.623626\t0.116410\t0.900701\tjohn_smedley\tsony\t/business/person/company\n0.624658\t0.116923\t0.898962\tmatt_cutts\tgoogle\t/business/person/company\n0.625683\t0.117436\t0.898682\thaleh_esfandiari\tiran\t/people/person/nationality\n0.623978\t0.117436\t0.898593\tnew_hampshire\tmount_washington\t/location/location/contains\n0.625000\t0.117949\t0.898535\tpaul_kocher\tcryptography_research\t/business/person/company\n0.626016\t0.118462\t0.898508\tgreenwich_village\tnew_york_city\t/location/neighborhood/neighborhood_of\n0.627027\t0.118974\t0.898202\tjohn_logsdon\tgeorge_washington_university\t/business/person/company\n0.628032\t0.119487\t0.897145\talaska\tmount_mckinley\t/location/location/contains\n0.629032\t0.120000\t0.896192\tnew_york_city\tkew_gardens\t/location/location/contains\n0.630027\t0.120513\t0.896167\tviswanathan_anand\tindia\t/people/person/nationality\n0.631016\t0.121026\t0.896036\thanns_eisler\tgermany\t/people/person/nationality\n0.632000\t0.121538\t0.896023\tlorena_ochoa\tmexico\t/people/person/nationality\n0.632979\t0.122051\t0.895875\titaly\tnarni\t/location/location/contains\n0.631300\t0.122051\t0.895806\tflorida\thillsborough\t/location/location/contains\n0.632275\t0.122564\t0.895663\tnew_york_city\tmanhattanville\t/location/location/contains\n0.633245\t0.123077\t0.895501\tconnecticut\tfarmington\t/location/location/contains\n0.634211\t0.123590\t0.895011\tflorida\tjensen_beach\t/location/location/contains\n0.635171\t0.124103\t0.894662\tsouth_africa\tkwazulu-natal\t/location/location/contains\n0.633508\t0.124103\t0.894343\tmike_huckabee\tarkansas\t/people/person/place_lived\n0.631854\t0.124103\t0.894023\twichita\twoodlawn\t/location/location/contains\n0.632812\t0.124615\t0.893443\tcalifornia\tsan_clemente\t/location/location/contains\n0.631169\t0.124615\t0.892974\tkirk_kerkorian\tfrance\t/people/person/nationality\n0.629534\t0.124615\t0.892924\tsaipan\ttinian\t/location/location/contains\n0.630491\t0.125128\t0.892728\taustan_goolsbee\tuniversity_of_chicago\t/business/person/company\n0.628866\t0.125128\t0.892589\trutka_laskier\tpoland\t/people/person/nationality\n0.629820\t0.125641\t0.892294\tjerusalem\tsecond_temple\t/location/location/contains\n0.628205\t0.125641\t0.892178\talireza_jafarzadeh\tiran\t/people/person/nationality\n0.626598\t0.125641\t0.892173\tsriti_jha\tindia\t/people/person/nationality\n0.627551\t0.126154\t0.892043\tconnecticut\tstorrs\t/location/location/contains\n0.628499\t0.126667\t0.891953\tbashar_al-assad\tsyria\t/people/person/nationality\n0.629442\t0.127179\t0.891926\tmaryland\tbethesda\t/location/location/contains\n0.627848\t0.127179\t0.891871\tgwyneth_paltrow\tscotland\t/people/person/nationality\n0.628788\t0.127692\t0.891824\titaly\tsiena\t/location/location/contains\n0.627204\t0.127692\t0.891777\tvirginia\teastern_shore\t/location/location/contains\n0.628141\t0.128205\t0.891408\tjulius_streicher\tgermany\t/people/person/nationality\n0.629073\t0.128718\t0.891096\tkansas\thays\t/location/location/contains\n0.627500\t0.128718\t0.890906\tjames_bond\tindia\t/people/person/nationality\n0.628429\t0.129231\t0.890795\tconnecticut\tgreenwich\t/location/location/contains\n0.629353\t0.129744\t0.890111\tbertie_ahern\tireland\t/people/person/nationality\n0.627792\t0.129744\t0.890074\tgermany\tuniversity_of_bonn\t/location/location/contains\n0.626238\t0.129744\t0.889969\tturkey\tlemnos\t/location/location/contains\n0.627160\t0.130256\t0.889894\tdenmark\tfrederiksberg\t/location/location/contains\n0.628079\t0.130769\t0.889858\tguam\tagana_heights\t/location/location/contains\n0.628993\t0.131282\t0.889551\talex_salmond\tscotland\t/people/person/nationality\n0.629902\t0.131795\t0.889507\tindiana\tfort_wayne\t/location/location/contains\n0.630807\t0.132308\t0.889216\tphilippe_val\tfrance\t/people/person/nationality\n0.629268\t0.132308\t0.889000\tlawrence_lessig\tstanford_university\t/business/person/company\n0.630170\t0.132821\t0.888690\tvirginia\tfairfax_county\t/location/location/contains\n0.628641\t0.132821\t0.888482\thenry_j._leir\tisrael\t/people/person/nationality\n0.629540\t0.133333\t0.888445\tberkeley\tchez_panisse\t/location/location/contains\n0.630435\t0.133846\t0.888163\tarmenia\tgyumri\t/location/location/contains\n0.628916\t0.133846\t0.888041\tseth_goldman\thonest_tea\t/business/person/company\n0.629808\t0.134359\t0.887699\tspain\tmálaga\t/location/location/contains\n0.628297\t0.134359\t0.887376\tsan_francisco\tembarcadero\t/location/location/contains\n0.629187\t0.134872\t0.886913\tjoe_giordano\tpayscale\t/business/person/company\n0.627685\t0.134872\t0.886845\tbuffalo\tnew_york_city\t/location/location/contains\n0.628571\t0.135385\t0.886776\tnorway\thorten\t/location/location/contains\n0.627078\t0.135385\t0.886557\tcalifornia\tsanta_barbara_city_college\t/location/location/contains\n0.627962\t0.135897\t0.886539\tlos_angeles_county\thuntington_park\t/location/location/contains\n0.626478\t0.135897\t0.886365\thunterdon_county\tdelaware_valley_school_district\t/location/location/contains\n0.625000\t0.135897\t0.885598\tamanda_weir\taustralia\t/people/person/nationality\n0.625882\t0.136410\t0.885410\tiowa\tmuscatine\t/location/location/contains\n0.624413\t0.136410\t0.885300\temma_goldman\tcanada\t/people/person/nationality\n0.622951\t0.136410\t0.885189\tcalifornia\thumboldt_state_university\t/location/location/contains\n0.623832\t0.136923\t0.885169\tminnesota\tnorthfield\t/location/location/contains\n0.622378\t0.136923\t0.885111\tconnecticut\twesleyan_university\t/location/location/contains\n0.623256\t0.137436\t0.884562\tcambridge\tharvard_square\t/location/location/contains\n0.624130\t0.137949\t0.884092\tiowa\tottumwa\t/location/location/contains\n0.622685\t0.137949\t0.883776\tcutchogue\told_house\t/location/location/contains\n0.621247\t0.137949\t0.883725\tsvetlana_kuznetsova\trussia\t/people/person/nationality\n0.619816\t0.137949\t0.882647\twisconsin\tberkeley\t/location/location/contains\n0.618391\t0.137949\t0.882610\tsusanne_bier\tindia\t/people/person/nationality\n0.616972\t0.137949\t0.882174\tsam_querrey\tspain\t/people/person/nationality\n0.615561\t0.137949\t0.881718\tkevin_walsh\tgeneral_electric\t/business/person/company\n0.614155\t0.137949\t0.881561\tvenus_williams\tfrance\t/people/person/nationality\n0.612756\t0.137949\t0.881343\tontario\tuniversity_of_windsor\t/location/location/contains\n0.613636\t0.138462\t0.881231\tzahra_eshraghi\tiran\t/people/person/nationality\n0.614512\t0.138974\t0.881160\titaly\tamalfi_coast\t/location/location/contains\n0.613122\t0.138974\t0.880853\tdavid_drummond\tgoogle\t/business/person/company\n0.611738\t0.138974\t0.880425\tsouth_carolina\tgraceland\t/location/location/contains\n0.612613\t0.139487\t0.879943\titaly\tlucca\t/location/location/contains\n0.613483\t0.140000\t0.879783\tcalisto_tanzi\tparmalat\t/business/person/company\n0.612108\t0.140000\t0.879745\tbrian_schweitzer\tmontana\t/people/person/place_lived\n0.610738\t0.140000\t0.879611\tgordon_brown\trussia\t/people/person/nationality\n0.609375\t0.140000\t0.878932\tgoogle\teric_e._schmidt\t/business/person/company\n0.610245\t0.140513\t0.878734\tsuffolk_county\teast_patchogue\t/location/location/contains\n0.611111\t0.141026\t0.878627\tmcalester\toklahoma_state_penitentiary\t/location/location/contains\n0.611973\t0.141538\t0.877977\thermann_göring\tgermany\t/people/person/nationality\n0.612832\t0.142051\t0.877805\tireland\tballintubber\t/location/location/contains\n0.613687\t0.142564\t0.877796\tgermany\twiesbaden\t/location/location/contains\n0.612335\t0.142564\t0.876945\twestchester_county\tpelham\t/location/location/contains\n0.613187\t0.143077\t0.876649\tron_dembo\tzerofootprint\t/business/person/company\n0.614035\t0.143590\t0.876607\tkris_gopalakrishnan\tindia\t/people/person/nationality\n0.614880\t0.144103\t0.876299\tbernadette_chirac\tfrance\t/people/person/nationality\n0.613537\t0.144103\t0.875839\tiowa\tsimpson_college\t/location/location/contains\n0.614379\t0.144615\t0.875557\tvermont\tsouth_burlington\t/location/location/contains\n0.613043\t0.144615\t0.875320\ttelevision\tgoogle\t/business/person/company\n0.613883\t0.145128\t0.875220\tjohn_farnham\taustralia\t/people/person/nationality\n0.614719\t0.145641\t0.875126\tboston\tisabella_stewart_gardner_museum\t/location/location/contains\n0.613391\t0.145641\t0.874748\trussia\tural_mountains\t/location/location/contains\n0.614224\t0.146154\t0.874464\tidaho\tsalmon_river\t/location/location/contains\n0.612903\t0.146154\t0.874391\tcalifornia\tst._thomas\t/location/location/contains\n0.611588\t0.146154\t0.874316\tbaltimore\tt._rowe_price\t/location/location/contains\n0.610278\t0.146154\t0.873912\tcalifornia\tsanta_monica_college\t/location/location/contains\n0.608974\t0.146154\t0.873208\tpaul_kagame\trwanda\t/people/person/nationality\n0.607676\t0.146154\t0.872797\tvirginia\tchatham\t/location/location/contains\n0.608511\t0.146667\t0.872610\tezra_pound\titaly\t/people/person/nationality\n0.609342\t0.147179\t0.872514\tjoyce_wieland\tcanada\t/people/person/nationality\n0.608051\t0.147179\t0.871928\toquossoc\trangeley_lake\t/location/location/contains\n0.608879\t0.147692\t0.871885\tspain\tcádiz\t/location/location/contains\n0.609705\t0.148205\t0.871262\tgermany\thanover\t/location/location/contains\n0.608421\t0.148205\t0.871216\tcarol_baum\tcreative_artists_agency\t/business/person/company\n0.607143\t0.148205\t0.870946\tcarlos_ruiz\tspain\t/people/person/nationality\n0.605870\t0.148205\t0.870833\tmaj-britt_nilsson\tfrance\t/people/person/nationality\n0.606695\t0.148718\t0.870772\tflorida\tdaytona_beach\t/location/location/contains\n0.605428\t0.148718\t0.869869\tvincent_paronnaud\tfrance\t/people/person/nationality\n0.604167\t0.148718\t0.869331\tflorida\tsouth_beach\t/location/location/contains\n0.604990\t0.149231\t0.868992\tcalifornia\tgardena\t/location/location/contains\n0.605809\t0.149744\t0.868840\trussia\tnovokuznetsk\t/location/location/contains\n0.606625\t0.150256\t0.867946\tcalabria\tcrotone\t/location/location/contains\n0.605372\t0.150256\t0.867472\tvermont\tgreen_mountain_college\t/location/location/contains\n0.604124\t0.150256\t0.867075\tgeorge_orwell\tspain\t/people/person/nationality\n0.602881\t0.150256\t0.866926\tasia\tdongguan\t/location/location/contains\n0.601643\t0.150256\t0.866635\tspringfield\tbaptist_bible_college\t/location/location/contains\n0.600410\t0.150256\t0.866474\tkentucky\tjamaica_estates\t/location/location/contains\n0.599182\t0.150256\t0.866306\tprince_edward_island\tpictou\t/location/location/contains\n0.600000\t0.150769\t0.865921\tjawaharlal_nehru\tindia\t/people/person/nationality\n0.598778\t0.150769\t0.865497\tchicago\tlake_michigan\t/location/location/contains\n0.597561\t0.150769\t0.865167\tsanford_i._weill\tcitigroup\t/business/person/company\n0.596349\t0.150769\t0.864896\tray_takeyh\tiran\t/people/person/nationality\n0.595142\t0.150769\t0.864667\ttom_stoppard\trussia\t/people/person/nationality\n0.595960\t0.151282\t0.864352\teugene_melnyk\tcanada\t/people/person/nationality\n0.594758\t0.151282\t0.864327\tcalifornia\tfort_bragg\t/location/location/contains\n0.593561\t0.151282\t0.864325\tlane_merrifield\tclub_penguin\t/business/person/company\n0.592369\t0.151282\t0.864219\tcalifornia\tharlingen\t/location/location/contains\n0.593186\t0.151795\t0.863906\tyelena_isinbayeva\trussia\t/people/person/nationality\n0.594000\t0.152308\t0.863866\tkristian_pless\tdenmark\t/people/person/nationality\n0.592814\t0.152308\t0.863720\tjason_mccartney\tgermany\t/people/person/nationality\n0.593625\t0.152821\t0.863604\tasia\tbishkek\t/location/location/contains\n0.594433\t0.153333\t0.863503\tdonald_e._graham\twashington_post_company\t/business/person/company\n0.595238\t0.153846\t0.863452\tmonmouth_county\tfreehold_township\t/location/location/contains\n0.594059\t0.153846\t0.862990\tmontreal_canadiens\tcanada\t/people/person/nationality\n0.594862\t0.154359\t0.862738\tjean-baptiste_colbert\tfrance\t/people/person/nationality\n0.595661\t0.154872\t0.861836\tandrea_bargnani\titaly\t/people/person/nationality\n0.594488\t0.154872\t0.861763\tisaac_goldberg\tpoland\t/people/person/nationality\n0.595285\t0.155385\t0.861071\tgermany\tvarel\t/location/location/contains\n0.596078\t0.155897\t0.859425\tratan_tata\tindia\t/people/person/nationality\n0.596869\t0.156410\t0.859367\talaska\twasilla\t/location/location/contains\n0.595703\t0.156410\t0.859346\tségolène_royal\tiran\t/people/person/nationality\n0.596491\t0.156923\t0.859310\tsani_abacha\tnigeria\t/people/person/nationality\n0.597276\t0.157436\t0.859264\tfranco_donatoni\titaly\t/people/person/nationality\n0.596117\t0.157436\t0.858968\teurajoki\tfinland\t/people/person/nationality\n0.594961\t0.157436\t0.858714\tnorway\tkvitfjell\t/location/location/contains\n0.595745\t0.157949\t0.858673\tmichael_j._critelli\tpitney_bowes\t/business/person/company\n0.594595\t0.157949\t0.858175\tcalifornia\twilshire_boulevard\t/location/location/contains\n0.593449\t0.157949\t0.857892\tmonmouth_county\twawa\t/location/location/contains\n0.594231\t0.158462\t0.857734\tzimbabwe\tmarondera\t/location/location/contains\n0.593090\t0.158462\t0.857615\talexander_grischuk\trussia\t/people/person/nationality\n0.593870\t0.158974\t0.857581\taroon_purie\tindia\t/people/person/nationality\n0.592734\t0.158974\t0.857473\twindisch\tgermany\t/people/person/nationality\n0.591603\t0.158974\t0.857044\tgreenwich\tbest_&_co.\t/location/location/contains\n0.592381\t0.159487\t0.856863\tmontana\tmissoula\t/location/location/contains\n0.593156\t0.160000\t0.856764\tphilippe_lucas\tfrance\t/people/person/nationality\n0.592030\t0.160000\t0.855694\tjames_bond\tfrance\t/people/person/nationality\n0.590909\t0.160000\t0.855131\toregon\treed_college\t/location/location/contains\n0.591682\t0.160513\t0.855116\tcarl_friedrich_von_weizsäcker\tgermany\t/people/person/nationality\n0.590566\t0.160513\t0.854609\tjack_abramoff\tscotland\t/people/person/nationality\n0.591337\t0.161026\t0.854371\tcalifornia\tcoronado\t/location/location/contains\n0.592105\t0.161538\t0.854301\tmarin_marais\tfrance\t/people/person/nationality\n0.592871\t0.162051\t0.854072\tindia\thampi\t/location/location/contains\n0.593633\t0.162564\t0.853389\tgermany\theilbronn\t/location/location/contains\n0.592523\t0.162564\t0.853126\tviktor_yushchenko\tukraine\t/people/person/nationality\n0.591418\t0.162564\t0.852970\tireland\tcounty_mayo\t/location/location/contains\n0.592179\t0.163077\t0.852953\tandré_boisclair\tcanada\t/people/person/nationality\n0.591078\t0.163077\t0.852640\tabdul_aziz_al-hakim\tiran\t/people/person/nationality\n0.591837\t0.163590\t0.852389\talain_chabat\tfrance\t/people/person/nationality\n0.592593\t0.164103\t0.851902\tjosef_ackermann\tdeutsche_bank\t/business/person/company\n0.591497\t0.164103\t0.851410\tcolorado\tdenison\t/location/location/contains\n0.592251\t0.164615\t0.851349\tmadaí_pérez\tmexico\t/people/person/nationality\n0.591160\t0.164615\t0.851205\tparis\trodin_museum\t/location/location/contains\n0.590074\t0.164615\t0.851040\tsan_francisco\tpeabody_school\t/location/location/contains\n0.588991\t0.164615\t0.850781\tmarlborough\tcytyc\t/location/location/contains\n0.587912\t0.164615\t0.849717\titaly\tuniversity_of_turin\t/location/location/contains\n0.588665\t0.165128\t0.849686\tpaul-henri_mathieu\tfrance\t/people/person/nationality\n0.587591\t0.165128\t0.849629\tlyndon_b._johnson\toklahoma\t/people/person/place_lived\n0.588342\t0.165641\t0.849128\tshanghai\ttongji_university\t/location/location/contains\n0.589091\t0.166154\t0.848939\tdavid_ben-gurion\tisrael\t/people/person/nationality\n0.589837\t0.166667\t0.848030\tolivier_assayas\tfrance\t/people/person/nationality\n0.588768\t0.166667\t0.847454\tlarry_ellison\toracle\t/business/person/company\n0.587703\t0.166667\t0.846737\ttechnorati\titaly\t/people/person/nationality\n0.586643\t0.166667\t0.846447\tjim_mccrery\tlouisiana\t/people/person/place_lived\n0.585586\t0.166667\t0.846079\tbanco_bilbao_vizcaya_argentaria\tspain\t/people/person/nationality\n0.584532\t0.166667\t0.845873\tboston\ttufts_university\t/location/location/contains\n0.583483\t0.166667\t0.845594\tcalifornia\tvang\t/location/location/contains\n0.582437\t0.166667\t0.845535\traleb_majadele\tisrael\t/people/person/nationality\n0.581395\t0.166667\t0.844753\tsri_lanka\tmalabe\t/location/location/contains\n0.582143\t0.167179\t0.844572\terich_ludendorff\tgermany\t/people/person/nationality\n0.582888\t0.167692\t0.844567\twisconsin\tlake_geneva\t/location/location/contains\n0.581851\t0.167692\t0.844446\tinternational_speedway_corporation\tfrance\t/people/person/nationality\n0.580817\t0.167692\t0.844285\tjacksonville\tfort_george_island\t/location/location/contains\n0.581560\t0.168205\t0.843688\tbrett_keller\tpriceline.com\t/business/person/company\n0.580531\t0.168205\t0.842887\tkentucky\tcherokee\t/location/location/contains\n0.581272\t0.168718\t0.842832\tspain\talicante\t/location/location/contains\n0.582011\t0.169231\t0.842719\tvenice\tpeggy_guggenheim_collection\t/location/location/contains\n0.580986\t0.169231\t0.842250\tunicredit\titaly\t/people/person/nationality\n0.581722\t0.169744\t0.841717\tvictoria_azarenka\tbelarus\t/people/person/nationality\n0.580702\t0.169744\t0.841536\tmarco_cappato\titaly\t/people/person/nationality\n0.581436\t0.170256\t0.841347\tolivier_dahan\tfrance\t/people/person/nationality\n0.582168\t0.170769\t0.841090\tparis\tgare_du_nord\t/location/location/contains\n0.581152\t0.170769\t0.840691\tmotown_records\tfrance\t/people/person/nationality\n0.580139\t0.170769\t0.840596\tjhoom_barabar_jhoom\tfrance\t/people/person/nationality\n0.579130\t0.170769\t0.839785\tgiorgio_moroder\tnorway\t/people/person/nationality\n0.578125\t0.170769\t0.839443\tconnecticut\tcornwall\t/location/location/contains\n0.577123\t0.170769\t0.839337\twestchester_county\tblue_hill\t/location/location/contains\n0.576125\t0.170769\t0.839221\tallen_ginsberg\tindia\t/people/person/nationality\n0.575130\t0.170769\t0.839088\twest_virginia\tblenko_glass_company\t/location/location/contains\n0.575862\t0.171282\t0.839031\tguerrero\tacapulco\t/location/location/contains\n0.576592\t0.171795\t0.839002\traymond_j._mcguire\tcitigroup\t/business/person/company\n0.575601\t0.171795\t0.838690\tgary_stevens\tfrance\t/people/person/nationality\n0.574614\t0.171795\t0.838623\tgermany\tshetland\t/location/location/contains\n0.573630\t0.171795\t0.838500\twilliam_s._paley\tcbs\t/business/person/company\n0.572650\t0.171795\t0.838378\tprague\tbarrandov_studios\t/location/location/contains\n0.571672\t0.171795\t0.838110\tcalifornia\ttucson_international_airport\t/location/location/contains\n0.570698\t0.171795\t0.837905\tflorida\ttaylor\t/location/location/contains\n0.571429\t0.172308\t0.837893\tcalifornia\tsan_jose\t/location/location/contains\n0.570458\t0.172308\t0.837709\tpeter_morgan\tscotland\t/people/person/nationality\n0.569492\t0.172308\t0.837343\tcalifornia\tsalinas_valley\t/location/location/contains\n0.568528\t0.172308\t0.837302\tidaho\tred_river\t/location/location/contains\n0.569257\t0.172821\t0.836418\tgermany\theidelberg\t/location/location/contains\n0.569983\t0.173333\t0.836353\tindiana\tgnaw_bone\t/location/location/contains\n0.570707\t0.173846\t0.836305\trenaud_donnedieu_de_vabres\tfrance\t/people/person/nationality\n0.571429\t0.174359\t0.836137\tturkey\tbodrum\t/location/location/contains\n0.572148\t0.174872\t0.836070\tgermany\tfreiburg\t/location/location/contains\n0.571189\t0.174872\t0.836061\tpeter_pace\tiran\t/people/person/nationality\n0.571906\t0.175385\t0.836019\tatlanta\tsweet_auburn\t/location/location/contains\n0.572621\t0.175897\t0.835868\tcyprus\tlarnaca\t/location/location/contains\n0.571667\t0.175897\t0.835443\tpeter_bragdon\tcolumbia_sportswear\t/business/person/company\n0.572379\t0.176410\t0.835356\tcolorado\tboulder\t/location/location/contains\n0.571429\t0.176410\t0.835314\tvittorio_storaro\tspain\t/people/person/nationality\n0.570481\t0.176410\t0.834601\tsam_querrey\tfrance\t/people/person/nationality\n0.569536\t0.176410\t0.834413\tspain\tchipiona\t/location/location/contains\n0.568595\t0.176410\t0.834327\tedward_fox\tfrance\t/people/person/nationality\n0.569307\t0.176923\t0.834114\tpeter_munk\tbarrick_gold\t/business/person/company\n0.568369\t0.176923\t0.833768\tbernhard_langer\tgermany\t/people/person/nationality\n0.567434\t0.176923\t0.833699\tnashville\tbelle_meade\t/location/location/contains\n0.568144\t0.177436\t0.833684\tkentucky\tchurchill_downs\t/location/location/contains\n0.567213\t0.177436\t0.833588\tswitzerland\tvevey\t/location/location/contains\n0.566285\t0.177436\t0.833321\toklahoma_city\talfred_p._murrah_federal_building\t/location/location/contains\n0.566993\t0.177949\t0.833237\tboston\tunion_oyster_house\t/location/location/contains\n0.567700\t0.178462\t0.833098\twisconsin\tmadison\t/location/location/contains\n0.566775\t0.178462\t0.833068\tyoutube\tchad_hurley\t/business/person/company\n0.565854\t0.178462\t0.832697\tgiulio_andreotti\titaly\t/people/person/nationality\n0.564935\t0.178462\t0.832496\tstelco\tcanada\t/people/person/nationality\n0.565640\t0.178974\t0.832496\ttunisia\tnabeul\t/location/location/contains\n0.564725\t0.178974\t0.832478\tmads_mikkelsen\tindia\t/people/person/nationality\n0.563813\t0.178974\t0.832368\talexander_stille\tfrance\t/people/person/nationality\n0.562903\t0.178974\t0.831774\tsharon_zukin\tbrooklyn_college\t/business/person/company\n0.561997\t0.178974\t0.831339\trussia\tsheepshead_bay\t/location/location/contains\n0.561093\t0.178974\t0.831321\tsmilebox\tgoogle\t/business/person/company\n0.560193\t0.178974\t0.830690\tjonathan_glazer\tscotland\t/people/person/nationality\n0.559295\t0.178974\t0.830529\tbobby_deol\tfrance\t/people/person/nationality\n0.558400\t0.178974\t0.830467\tasia\teastern_washington\t/location/location/contains\n0.559105\t0.179487\t0.830418\tnoam_sheriff\tisrael\t/people/person/nationality\n0.558214\t0.179487\t0.830071\tnew_york_city\tsouth_bronx\t/location/location/contains\n0.558917\t0.180000\t0.829929\tcolorado\tvail\t/location/location/contains\n0.558029\t0.180000\t0.829737\tshirley_yeung\tpccw\t/business/person/company\n0.557143\t0.180000\t0.829570\tnorth_dakota\tkeene\t/location/location/contains\n0.556260\t0.180000\t0.829554\twashington\twtop\t/location/location/contains\n0.555380\t0.180000\t0.829149\tportland\tbayside\t/location/location/contains\n0.556082\t0.180513\t0.828485\tpoland\tjaworzno\t/location/location/contains\n0.555205\t0.180513\t0.828445\taustralia\tmonash_university\t/location/location/contains\n0.554331\t0.180513\t0.828349\tnew_york_city\tfire_island\t/location/location/contains\n0.553459\t0.180513\t0.828308\taustralia\tport_melbourne\t/location/location/contains\n0.554160\t0.181026\t0.828252\tiran\tnatanz\t/location/location/contains\n0.553292\t0.181026\t0.828216\tmichael_bar-zohar\tisrael\t/people/person/nationality\n0.553991\t0.181538\t0.828089\tpaul_klee\tgermany\t/people/person/nationality\n0.554688\t0.182051\t0.827681\tnew_haven\tsouthern_connecticut_state_university\t/location/location/contains\n0.553822\t0.182051\t0.827623\tcosta_rica\tsan_jose\t/location/location/contains\n0.554517\t0.182564\t0.827361\tarturo_toscanini\titaly\t/people/person/nationality\n0.553655\t0.182564\t0.827227\tbanquo\titaly\t/people/person/nationality\n0.552795\t0.182564\t0.826570\tthomas_cech\thoward_hughes_medical_institute\t/business/person/company\n0.551938\t0.182564\t0.826525\taustralia\tpaula_wriedt\t/location/location/contains\n0.551084\t0.182564\t0.826393\tmary_e._minnick\tmuhtar_kent\t/business/person/company\n0.550232\t0.182564\t0.826173\tsylvester_stallone\taustralia\t/people/person/nationality\n0.549383\t0.182564\t0.825953\tgururaj_deshpande\tsycamore_networks\t/business/person/company\n0.548536\t0.182564\t0.825812\tvermont\tberkshire_county\t/location/location/contains\n0.549231\t0.183077\t0.825571\tsteve_newcomb\tpowerset\t/business/person/company\n0.548387\t0.183077\t0.825517\talaska\tbellingham\t/location/location/contains\n0.547546\t0.183077\t0.825099\tcarol_shea-porter\tnew_hampshire\t/people/person/place_lived\n0.548239\t0.183590\t0.824758\tidaho\tweiser\t/location/location/contains\n0.548930\t0.184103\t0.824697\tdavid_kenny\tdigitas\t/business/person/company\n0.549618\t0.184615\t0.824670\twole_soyinka\tnigeria\t/people/person/nationality\n0.550305\t0.185128\t0.824599\tnorth_beach\tsan_francisco\t/location/neighborhood/neighborhood_of\n0.549467\t0.185128\t0.824570\toakland\tbeth_eden_baptist_church\t/location/location/contains\n0.548632\t0.185128\t0.824536\tnuhu_ribadu\tnigeria\t/people/person/nationality\n0.547800\t0.185128\t0.824486\tconnecticut\thartford_civic_center\t/location/location/contains\n0.546970\t0.185128\t0.824012\tjohn_caplan\tford_models\t/business/person/company\n0.547655\t0.185641\t0.823807\tindia\tauroville\t/location/location/contains\n0.546828\t0.185641\t0.823736\tsyracuse\toswego\t/location/location/contains\n0.547511\t0.186154\t0.823485\tmexico\tpuerto_peñasco\t/location/location/contains\n0.546687\t0.186154\t0.823077\taustralia\tuniversity_of_adelaide\t/location/location/contains\n0.545865\t0.186154\t0.823075\tcalifornia\tnissin\t/location/location/contains\n0.545045\t0.186154\t0.822868\tvirginia\tmartinsville_speedway\t/location/location/contains\n0.545727\t0.186667\t0.822459\tatlanta\tgeorgia_aquarium\t/location/location/contains\n0.546407\t0.187179\t0.822235\tmaryland\tbaltimore\t/location/location/contains\n0.545590\t0.187179\t0.821977\tarvo_pärt\tdenmark\t/people/person/nationality\n0.546269\t0.187692\t0.821722\thelen_fisher\trutgers_university\t/business/person/company\n0.546945\t0.188205\t0.821302\tnew_york_city\tstaten_island\t/location/location/contains\n0.546131\t0.188205\t0.821103\tserbia\tmuslim\t/location/location/contains\n0.545319\t0.188205\t0.820584\tnina_tassler\tcbs\t/business/person/company\n0.544510\t0.188205\t0.820459\tmississippi\twillingboro\t/location/location/contains\n0.543704\t0.188205\t0.819995\tjay_rosen\tnew_york_university\t/business/person/company\n0.542899\t0.188205\t0.819781\tanthony_powell\tscotland\t/people/person/nationality\n0.542097\t0.188205\t0.819726\tkevin_lyons\trutgers_university\t/business/person/company\n0.541298\t0.188205\t0.819660\tbernard_kerik\tunited_states_of_america\t/people/person/nationality\n0.540501\t0.188205\t0.819388\tireland\tdonegal\t/location/location/contains\n0.541176\t0.188718\t0.819319\tnew_hampshire\tcannon_mountain\t/location/location/contains\n0.540382\t0.188718\t0.818400\telias_murr\tlebanon\t/people/person/nationality\n0.539589\t0.188718\t0.818321\terik_breukink\titaly\t/people/person/nationality\n0.538799\t0.188718\t0.817697\tcuba\twest_new_york\t/location/location/contains\n0.538012\t0.188718\t0.817270\tmarwan_barghouti\tisrael\t/people/person/nationality\n0.537226\t0.188718\t0.817246\tmayawati\tindia\t/people/person/nationality\n0.537901\t0.189231\t0.815972\tjennifer_botterill\tcanada\t/people/person/nationality\n0.537118\t0.189231\t0.815800\tdan_ariely\tmassachusetts_institute_of_technology\t/business/person/company\n0.537791\t0.189744\t0.815670\tgermany\trostock\t/location/location/contains\n0.538462\t0.190256\t0.815470\tderek_v._smith\tchoicepoint\t/business/person/company\n0.539130\t0.190769\t0.815368\tgermany\tkarlsruhe\t/location/location/contains\n0.539797\t0.191282\t0.815089\tcharles_fefferman\tprinceton_university\t/business/person/company\n0.539017\t0.191282\t0.814654\tswitzerland\tlucerne\t/location/location/contains\n0.539683\t0.191795\t0.814574\tseoul\tkorea_university\t/location/location/contains\n0.538905\t0.191795\t0.814328\twisconsin\tnew_hampshire\t/location/location/contains\n0.538129\t0.191795\t0.814205\tdavid_rieff\tfrance\t/people/person/nationality\n0.537356\t0.191795\t0.814016\tconnecticut\tbrattleboro\t/location/location/contains\n0.536585\t0.191795\t0.813731\tcalifornia\twest_valley_college\t/location/location/contains\n0.535817\t0.191795\t0.813369\tcharles_oman\tmassachusetts_institute_of_technology\t/business/person/company\n0.535050\t0.191795\t0.813031\tbertone\titaly\t/people/person/nationality\n0.534286\t0.191795\t0.810841\tedward_steichen\tfrance\t/people/person/nationality\n0.533524\t0.191795\t0.810289\trudi_völler\titaly\t/people/person/nationality\n0.534188\t0.192308\t0.810226\tvenice\tfondazione_querini_stampalia\t/location/location/contains\n0.534851\t0.192821\t0.810188\twatervliet\twatervliet_arsenal\t/location/location/contains\n0.534091\t0.192821\t0.809941\tcanada\tpearce\t/location/location/contains\n0.533333\t0.192821\t0.809513\ttoronto\ternst_&_young\t/location/location/contains\n0.533994\t0.193333\t0.809403\tted_sarandos\tnetflix\t/business/person/company\n0.533239\t0.193333\t0.808107\tabhishek_bachchan\tfrance\t/people/person/nationality\n0.533898\t0.193846\t0.807946\twestchester_county\tport_chester\t/location/location/contains\n0.534556\t0.194359\t0.807910\tvincent_pastore\titaly\t/people/person/nationality\n0.533803\t0.194359\t0.807870\tcalifornia\tpiedmont\t/location/location/contains\n0.534459\t0.194872\t0.807249\tarcata\thumboldt_state_university\t/location/location/contains\n0.533708\t0.194872\t0.807064\trosa_delauro\tconnecticut\t/people/person/place_lived\n0.534362\t0.195385\t0.806815\trockland_county\tblauvelt\t/location/location/contains\n0.533613\t0.195385\t0.806712\twashington\tadams_morgan\t/location/location/contains\n0.534266\t0.195897\t0.806367\talexander_downer\taustralia\t/people/person/nationality\n0.534916\t0.196410\t0.806144\tcalifornia\tlong_beach\t/location/location/contains\n0.535565\t0.196923\t0.805249\tsuffolk_county\tfire_island\t/location/location/contains\n0.534819\t0.196923\t0.805050\takio_morita\tsony\t/business/person/company\n0.534075\t0.196923\t0.804928\tcalifornia\taustralia\t/location/location/contains\n0.533333\t0.196923\t0.804534\tvitaly_i._churkin\trussia\t/people/person/nationality\n0.532594\t0.196923\t0.804499\tpaterson\teast_orange\t/location/location/contains\n0.533241\t0.197436\t0.804238\tendre_szervanszky\thungary\t/people/person/nationality\n0.532503\t0.197436\t0.804207\tcalifornia\tsan_diego_museum_of_art\t/location/location/contains\n0.533149\t0.197949\t0.804109\tcalifornia\tmonterey_bay\t/location/location/contains\n0.532414\t0.197949\t0.803564\tmaryland\tchicago\t/location/location/contains\n0.533058\t0.198462\t0.803342\tguanajuato\tmexico\t/location/administrative_division/country\n0.532325\t0.198462\t0.803179\tmartin_peretz\tisrael\t/people/person/nationality\n0.531593\t0.198462\t0.802806\tconnecticut\tlakeville\t/location/location/contains\n0.530864\t0.198462\t0.802780\tbaja_california\tcortez\t/location/location/contains\n0.530137\t0.198462\t0.802210\tyasser_arafat\tfrance\t/people/person/nationality\n0.529412\t0.198462\t0.801770\titaly\tuniversity_of_plymouth\t/location/location/contains\n0.530055\t0.198974\t0.801562\tconnecticut\thamden\t/location/location/contains\n0.529332\t0.198974\t0.801350\tkentucky\tlake_michigan\t/location/location/contains\n0.528610\t0.198974\t0.801303\tlee_h._hamilton\tiran\t/people/person/nationality\n0.527891\t0.198974\t0.801279\th._lee_scott_jr.\tthe_new_york_times\t/business/person/company\n0.528533\t0.199487\t0.800925\tgordon_m._bethune\tcontinental_airlines\t/business/person/company\n0.527815\t0.199487\t0.800510\tsan_fernando_valley\tstudio_city\t/location/location/contains\n0.528455\t0.200000\t0.800181\tgermany\tbad_soden\t/location/location/contains\n0.527740\t0.200000\t0.800157\tperformics\tgoogle\t/business/person/company\n0.528378\t0.200513\t0.799793\tbaltimore\twalters_art_museum\t/location/location/contains\n0.527665\t0.200513\t0.799282\tacademy_of_national_economy\trussia\t/people/person/nationality\n0.526954\t0.200513\t0.799181\ttom_cole\toklahoma\t/people/person/place_lived\n0.527591\t0.201026\t0.799076\tcalifornia\tvallejo\t/location/location/contains\n0.526882\t0.201026\t0.798987\tslovakia\tkosice\t/location/location/contains\n0.527517\t0.201538\t0.798635\tstaten_island\trichmond_valley\t/location/location/contains\n0.528150\t0.202051\t0.798604\ttoronto\tmassey_hall\t/location/location/contains\n0.527443\t0.202051\t0.797856\tmarco_andretti\tspain\t/people/person/nationality\n0.526738\t0.202051\t0.797585\tmanthia_diawara\tnew_york_university\t/business/person/company\n0.526035\t0.202051\t0.796487\tmelbourne_beach\tarchie_carr_national_wildlife_refuge\t/location/location/contains\n0.525333\t0.202051\t0.796465\tchicago\tsears_tower\t/location/location/contains\n0.525965\t0.202564\t0.795610\toakland\tsamuel_merritt_college\t/location/location/contains\n0.525266\t0.202564\t0.794721\toregon\tuniversity_of_portland\t/location/location/contains\n0.524568\t0.202564\t0.793731\trussia\talexander_kerensky\t/location/location/contains\n0.523873\t0.202564\t0.793555\ttoomas_hendrik_ilves\trussia\t/people/person/nationality\n0.524503\t0.203077\t0.793197\tking_county\tbellevue\t/location/location/contains\n0.525132\t0.203590\t0.793039\tkirk_fordice\tmississippi\t/people/person/place_lived\n0.524439\t0.203590\t0.792469\tmark_wallinger\tisrael\t/people/person/nationality\n0.525066\t0.204103\t0.791738\tcolorado\tfort_carson\t/location/location/contains\n0.524374\t0.204103\t0.791581\tjhoom_barabar_jhoom\tindia\t/people/person/nationality\n0.523684\t0.204103\t0.791376\tboston\tsuffolk_university\t/location/location/contains\n0.522996\t0.204103\t0.791277\tlos_angeles_county\tcharles_r._drew_university_of_medicine_and_science\t/location/location/contains\n0.523622\t0.204615\t0.790921\tjeffrey_a._citron\tvonage\t/business/person/company\n0.522936\t0.204615\t0.790901\titaly\tgardaland\t/location/location/contains\n0.522251\t0.204615\t0.790296\tgeorge_godwin\tzimbabwe\t/people/person/nationality\n0.521569\t0.204615\t0.789840\tjason_strudwick\tswitzerland\t/people/person/nationality\n0.520888\t0.204615\t0.789248\tmexico_city\ttabasco\t/location/location/contains\n0.520209\t0.204615\t0.788276\tnew_york_city\tst._george\t/location/location/contains\n0.520833\t0.205128\t0.788067\tvermont\tjay_peak\t/location/location/contains\n0.520156\t0.205128\t0.787396\trussia\ttallinn\t/location/location/contains\n0.519481\t0.205128\t0.787260\tlangston_hughes\tspain\t/people/person/nationality\n0.518807\t0.205128\t0.786977\tfairfield_county\tnew_haven_county\t/location/location/contains\n0.518135\t0.205128\t0.786870\tgary_tinterow\tfrance\t/people/person/nationality\n0.517464\t0.205128\t0.786681\tmariana_islands\tsaipan\t/location/location/contains\n0.518088\t0.205641\t0.786678\tmexico\ttulum\t/location/location/contains\n0.517419\t0.205641\t0.786626\tthorpe\taustralia\t/people/person/nationality\n0.518041\t0.206154\t0.786058\tdelaware\tocean_view\t/location/location/contains\n0.517375\t0.206154\t0.785899\testrella_morente\tspain\t/people/person/nationality\n0.516710\t0.206154\t0.785869\trhode_island\tjohnson_&_wales_university\t/location/location/contains\n0.516046\t0.206154\t0.785701\thcl_technologies\tindia\t/people/person/nationality\n0.515385\t0.206154\t0.785557\tulster_county\tnew_york_city\t/location/location/contains\n0.514725\t0.206154\t0.785062\tstaten_island\tcharleston\t/location/location/contains\n0.515345\t0.206667\t0.784595\trussia\ttomsk\t/location/location/contains\n0.515964\t0.207179\t0.784395\tnancy_huston\tcanada\t/people/person/nationality\n0.516582\t0.207692\t0.784188\tnigeria\tuyo\t/location/location/contains\n0.515924\t0.207692\t0.783796\tf._landa_jocano\tuniversity_of_chicago\t/business/person/company\n0.515267\t0.207692\t0.783439\titaly\tsan_remo\t/location/location/contains\n0.515883\t0.208205\t0.782972\titaly\tumbria\t/location/location/contains\n0.516497\t0.208718\t0.782767\tgermany\tjena\t/location/location/contains\n0.515843\t0.208718\t0.782466\tminnesota\tlarchmont\t/location/location/contains\n0.515190\t0.208718\t0.782380\tmichoacán\tguanajuato\t/location/location/contains\n0.514539\t0.208718\t0.781985\tmike_huckabee\tiowa\t/people/person/place_lived\n0.513889\t0.208718\t0.781810\tchris_van_hollen\tmaryland\t/people/person/place_lived\n0.514502\t0.209231\t0.781619\talaska\tketchikan\t/location/location/contains\n0.513854\t0.209231\t0.781163\tjalisco\tnational_autonomous_university_of_mexico\t/location/location/contains\n0.514465\t0.209744\t0.781089\tmaryland\tcarroll_county\t/location/location/contains\n0.513819\t0.209744\t0.780176\tsallai_meridor\tisrael\t/people/person/nationality\n0.514429\t0.210256\t0.779992\tnorth_adams\tmassachusetts_museum_of_contemporary_art\t/location/location/contains\n0.515038\t0.210769\t0.779629\thugo_sánchez\tmexico\t/people/person/nationality\n0.515645\t0.211282\t0.779572\tgene_taylor\tmississippi\t/people/person/place_lived\n0.515000\t0.211282\t0.779384\tflorida\ttejon_ranch\t/location/location/contains\n0.514357\t0.211282\t0.779292\tgeorge_h._w._bush\tgermany\t/people/person/nationality\n0.514963\t0.211795\t0.778870\titaly\tivrea\t/location/location/contains\n0.514321\t0.211795\t0.778552\trobert_lutz\tgeneral_motors\t/business/person/company\n0.514925\t0.212308\t0.778531\tkenneth_whyte\tcanada\t/people/person/nationality\n0.514286\t0.212308\t0.778397\tflorida\tuniversity_of_miami\t/location/location/contains\n0.513648\t0.212308\t0.777576\tmontecatini\titaly\t/people/person/nationality\n0.513011\t0.212308\t0.777137\tanton_rubinstein\tgermany\t/people/person/nationality\n0.513614\t0.212821\t0.777060\tmichael_moritz\tsequoia_capital\t/business/person/company\n0.512979\t0.212821\t0.776006\ttom_feeney\tflorida\t/people/person/place_lived\n0.513580\t0.213333\t0.775512\tscottsdale\ttaliesin_west\t/location/location/contains\n0.512947\t0.213333\t0.775424\tspain\taranjuez\t/location/location/contains\n0.512315\t0.213333\t0.775234\tcanada\tuniversity_of_waterloo\t/location/location/contains\n0.511685\t0.213333\t0.775004\tsouth_asia\tthe_new_york_times\t/location/location/contains\n0.511057\t0.213333\t0.774759\tontario\twoodstock\t/location/location/contains\n0.511656\t0.213846\t0.774654\tdan_halutz\tisrael\t/people/person/nationality\n0.511029\t0.213846\t0.774521\tulyanovsk\trussia\t/people/person/nationality\n0.511628\t0.214359\t0.774413\taustralia\tnational_gallery_of_victoria\t/location/location/contains\n0.511002\t0.214359\t0.774330\tsean_varah\tsony\t/business/person/company\n0.511600\t0.214872\t0.774220\titaly\tpisciotta\t/location/location/contains\n0.510976\t0.214872\t0.773927\tcalifornia\thouston\t/location/location/contains\n0.511571\t0.215385\t0.773160\tchris_guccione\taustralia\t/people/person/nationality\n0.510949\t0.215385\t0.772985\tdenmark\tuniversity_of_copenhagen\t/location/location/contains\n0.511543\t0.215897\t0.772748\trussia\tarkhangelsk\t/location/location/contains\n0.512136\t0.216410\t0.772584\tbrian_nellis\toklahoma\t/people/person/place_lived\n0.512727\t0.216923\t0.772289\traoul_bova\titaly\t/people/person/nationality\n0.512107\t0.216923\t0.772132\tcalifornia\tleo_carrillo\t/location/location/contains\n0.512696\t0.217436\t0.771528\tricardo_bofill\tspain\t/people/person/nationality\n0.512077\t0.217436\t0.771342\tnashville\tfisk_university\t/location/location/contains\n0.511460\t0.217436\t0.770781\tprince_william_county\tpotomac_mills\t/location/location/contains\n0.512048\t0.217949\t0.770750\tasia\tmacau\t/location/location/contains\n0.511432\t0.217949\t0.770411\tken_kutaragi\tsony\t/business/person/company\n0.510817\t0.217949\t0.770198\tspain\tpeggy_guggenheim_collection\t/location/location/contains\n0.511405\t0.218462\t0.770031\tulrich_mühe\tgermany\t/people/person/nationality\n0.510791\t0.218462\t0.769807\tbrendan_shanahan\tcanada\t/people/person/nationality\n0.511377\t0.218974\t0.769639\tlos_angeles_county\tmalibu\t/location/location/contains\n0.511962\t0.219487\t0.769072\tthailand\tchiang_mai\t/location/location/contains\n0.512545\t0.220000\t0.768855\tberlin\tmitte\t/location/location/contains\n0.513126\t0.220513\t0.767005\tarkansas\tarkadelphia\t/location/location/contains\n0.512515\t0.220513\t0.766211\trochester\tgeorge_eastman_house\t/location/location/contains\n0.511905\t0.220513\t0.766049\tcharles_b._rangel\tmontana\t/people/person/place_lived\n0.511296\t0.220513\t0.766016\tmike_huckabee\twisconsin\t/people/person/place_lived\n0.511876\t0.221026\t0.765886\tsarika\tindia\t/people/person/nationality\n0.512456\t0.221538\t0.765787\tjosé_luis_rodríguez_zapatero\tspain\t/people/person/nationality\n0.511848\t0.221538\t0.765450\tportugal\tnational_museum_of_african_art\t/location/location/contains\n0.511243\t0.221538\t0.765351\tnizhny_novgorod\trussia\t/location/administrative_division/country\n0.510638\t0.221538\t0.764831\tenrique_peña_nieto\tmexico\t/people/person/nationality\n0.511216\t0.222051\t0.764758\tsuffolk_county\tyaphank\t/location/location/contains\n0.511792\t0.222564\t0.764709\tindia\tmera\t/location/location/contains\n0.511190\t0.222564\t0.764634\tjames_bond\tpoland\t/people/person/nationality\n0.510588\t0.222564\t0.764329\tcalifornia\tculinary_institute_of_america\t/location/location/contains\n0.509988\t0.222564\t0.763909\tcalifornia\tlivingston\t/location/location/contains\n0.509390\t0.222564\t0.763695\titaly\tpalazzo_strozzi\t/location/location/contains\n0.509965\t0.223077\t0.763561\tontario\tbrantford\t/location/location/contains\n0.509368\t0.223077\t0.763532\tmenton\taristide_briand\t/location/location/contains\n0.509942\t0.223590\t0.763047\titaly\tfiesole\t/location/location/contains\n0.509346\t0.223590\t0.762507\tbangkok\tbaker_&_mckenzie\t/location/location/contains\n0.509918\t0.224103\t0.762169\tisrael\tra'anana\t/location/location/contains\n0.509324\t0.224103\t0.761732\tnolbert_kunonga\tzimbabwe\t/people/person/nationality\n0.508731\t0.224103\t0.761483\tnew_brunswick\trobert_wood_johnson_university_hospital\t/location/location/contains\n0.508140\t0.224103\t0.760868\tnorthern_ireland\tlisburn\t/location/location/contains\n0.508711\t0.224615\t0.760814\tmohammad_soleimani\tiran\t/people/person/nationality\n0.509281\t0.225128\t0.759678\tjeanne_moreau\tfrance\t/people/person/nationality\n0.508691\t0.225128\t0.758873\tinteroil\taustralia\t/people/person/nationality\n0.509259\t0.225641\t0.758284\trussia\tulyanovsk\t/location/location/contains\n0.508671\t0.225641\t0.758205\tchicago\twinston_&_strawn\t/location/location/contains\n0.508083\t0.225641\t0.757767\tontario\tuniversity_of_waterloo\t/location/location/contains\n0.508651\t0.226154\t0.757459\tomaha\tcreighton_university\t/location/location/contains\n0.508065\t0.226154\t0.757361\tasia\tjakarta\t/location/location/contains\n0.507480\t0.226154\t0.757081\tjudith_resnik\tyale_law_school\t/business/person/company\n0.506897\t0.226154\t0.757068\tyoutube\tgoogle\t/business/person/company\n0.507463\t0.226667\t0.756512\tflorida\tbroward_county\t/location/location/contains\n0.508028\t0.227179\t0.756466\tj._b._van_hollen\twisconsin\t/people/person/place_lived\n0.507446\t0.227179\t0.756361\tdaytona_beach\tinternational_speedway_corporation\t/location/location/contains\n0.508009\t0.227692\t0.755291\taustralia\tadelaide\t/location/location/contains\n0.507429\t0.227692\t0.755262\tvirginia\tlourdes\t/location/location/contains\n0.506849\t0.227692\t0.755179\twest_virginia\tmississippi_state\t/location/location/contains\n0.506271\t0.227692\t0.754884\tflavia_colgan\titaly\t/people/person/nationality\n0.505695\t0.227692\t0.754647\tonondaga\tsyracuse\t/location/location/contains\n0.505119\t0.227692\t0.754611\tflavia_rigamonti\tswitzerland\t/people/person/nationality\n0.504545\t0.227692\t0.754549\tconnecticut\tberkshire_county\t/location/location/contains\n0.503973\t0.227692\t0.753779\tgiuliano_amato\titaly\t/people/person/nationality\n0.504535\t0.228205\t0.753677\tumbria\titaly\t/location/administrative_division/country\n0.503964\t0.228205\t0.753529\tthe_salt_lake_tribune\tgoogle\t/business/person/company\n0.503394\t0.228205\t0.752993\tnormandy\tlanquetot\t/location/location/contains\n0.502825\t0.228205\t0.751243\tvicente_amigo\tspain\t/people/person/nationality\n0.502257\t0.228205\t0.751110\tgordon_johndroe\tunited_kingdom\t/people/person/nationality\n0.501691\t0.228205\t0.750747\twestchester_county\tkykuit\t/location/location/contains\n0.501126\t0.228205\t0.750555\twallace_stegner\tstanford_university\t/business/person/company\n0.500562\t0.228205\t0.750157\tcalifornia\tunited_states_court_of_appeals_for_the_district_of_columbia_circuit\t/location/location/contains\n0.501124\t0.228718\t0.749642\tkyrgyzstan\tbishkek\t/location/location/contains\n0.500561\t0.228718\t0.749548\tmoscow_state_university\trussia\t/people/person/nationality\n0.501121\t0.229231\t0.749320\tindia\tdharamsala\t/location/location/contains\n0.500560\t0.229231\t0.749250\tbuffalo\tthomas_vanek\t/location/location/contains\n0.500000\t0.229231\t0.749189\tport_washington\tmanhasset\t/location/location/contains\n0.499441\t0.229231\t0.749083\ttimothy_wilson\tuniversity_of_virginia\t/business/person/company\n0.498884\t0.229231\t0.748254\tgeorge_c._wolfe\tkentucky\t/people/person/place_lived\n0.498328\t0.229231\t0.748228\tnew_york_city\tcolony_club\t/location/location/contains\n0.497773\t0.229231\t0.747899\tmark_souder\tindiana\t/people/person/place_lived\n0.497219\t0.229231\t0.747545\tukraine\tirkutsk\t/location/location/contains\n0.496667\t0.229231\t0.747266\tparamus\twestfield_garden_state_plaza\t/location/location/contains\n0.497225\t0.229744\t0.747098\tsouth_lake_union\tseattle\t/location/neighborhood/neighborhood_of\n0.496674\t0.229744\t0.747093\tcolorado\tsan_juan\t/location/location/contains\n0.497231\t0.230256\t0.746579\tsaskatchewan\tmoose_jaw\t/location/location/contains\n0.496681\t0.230256\t0.745742\tmississippi\toxford\t/location/location/contains\n0.496133\t0.230256\t0.745657\tjorge_garbajosa\titaly\t/people/person/nationality\n0.495585\t0.230256\t0.745319\tminnesota\trochester\t/location/location/contains\n0.496141\t0.230769\t0.745230\tatlanta\tmorehouse_school_of_medicine\t/location/location/contains\n0.495595\t0.230769\t0.745073\tsarah_jamieson\tcanada\t/people/person/nationality\n0.496150\t0.231282\t0.745021\tlouisiana\tbarksdale_air_force_base\t/location/location/contains\n0.496703\t0.231795\t0.745019\trajiv_gandhi\tindia\t/people/person/nationality\n0.496158\t0.231795\t0.744559\twest_yorkshire\tbirmingham\t/location/location/contains\n0.496711\t0.232308\t0.744484\tjames_heckman\tuniversity_of_chicago\t/business/person/company\n0.497262\t0.232821\t0.744386\tgermany\therzogenaurach\t/location/location/contains\n0.497812\t0.233333\t0.744351\tlouisville\tchurchill_downs\t/location/location/contains\n0.498361\t0.233846\t0.744190\tflorida\tpalm_harbor\t/location/location/contains\n0.497817\t0.233846\t0.743810\tivan_basso\tfrance\t/people/person/nationality\n0.498364\t0.234359\t0.743715\tnorth_creek\tgore_mountain\t/location/location/contains\n0.497821\t0.234359\t0.743577\tcalifornia\tquantico\t/location/location/contains\n0.497280\t0.234359\t0.743505\tlouisiana\tcleveland\t/location/location/contains\n0.496739\t0.234359\t0.743164\tconnie_mack\tflorida\t/people/person/place_lived\n0.496200\t0.234359\t0.743154\tflorida\tglendale\t/location/location/contains\n0.496746\t0.234872\t0.742996\tivan_basso\titaly\t/people/person/nationality\n0.496208\t0.234872\t0.742874\tsouth_africa\tvodacom\t/location/location/contains\n0.496753\t0.235385\t0.742713\tboston\tfenway_park\t/location/location/contains\n0.496216\t0.235385\t0.742421\tjamie_anderson\taustralia\t/people/person/nationality\n0.496760\t0.235897\t0.742405\tiowa\tankeny\t/location/location/contains\n0.497303\t0.236410\t0.742189\tbelarus\tvitebsk\t/location/location/contains\n0.496767\t0.236410\t0.741828\twestchester_county\tlakeland\t/location/location/contains\n0.496233\t0.236410\t0.741390\tdesmond_guinness\tireland\t/people/person/nationality\n0.496774\t0.236923\t0.741111\tgermany\tstuttgart\t/location/location/contains\n0.496241\t0.236923\t0.740985\tmaurizio_gherardini\titaly\t/people/person/nationality\n0.495708\t0.236923\t0.740796\tmississippi\tpaterson\t/location/location/contains\n0.495177\t0.236923\t0.739785\tthomas_krens\tspain\t/people/person/nationality\n0.495717\t0.237436\t0.739687\tnorway\tlillehammer\t/location/location/contains\n0.495187\t0.237436\t0.739449\tfairfield_county\tnew_haven\t/location/location/contains\n0.494658\t0.237436\t0.739371\tvittorio_storaro\titaly\t/people/person/nationality\n0.494130\t0.237436\t0.739307\tsuffolk_county\tbrentwood\t/location/location/contains\n0.493603\t0.237436\t0.739047\tmontana\tyellowstone_club\t/location/location/contains\n0.493078\t0.237436\t0.738904\temma_goldman\tfrance\t/people/person/nationality\n0.492553\t0.237436\t0.738542\tleskovac\tserbia\t/people/person/nationality\n0.492030\t0.237436\t0.738046\tdavid_collings\titaly\t/people/person/nationality\n0.491507\t0.237436\t0.737759\tvanessa_redgrave\tiran\t/people/person/nationality\n0.492047\t0.237949\t0.737281\tpranab_mukherjee\tindia\t/people/person/nationality\n0.492585\t0.238462\t0.737196\tasia\tkyrgyzstan\t/location/location/contains\n0.492063\t0.238462\t0.737118\trainer_maria_rilke\tgermany\t/people/person/nationality\n0.492600\t0.238974\t0.737017\tjens_voigt\tgermany\t/people/person/nationality\n0.492080\t0.238974\t0.736829\titaly\tuniversity_of_ferrara\t/location/location/contains\n0.492616\t0.239487\t0.736781\tian_bogost\tgeorgia_institute_of_technology\t/business/person/company\n0.493151\t0.240000\t0.736676\tasia\tkabul\t/location/location/contains\n0.493684\t0.240513\t0.736512\taziz_pahad\tsouth_africa\t/people/person/nationality\n0.494217\t0.241026\t0.736279\tfinland\tturku\t/location/location/contains\n0.493697\t0.241026\t0.736090\tslovakia\ttranspetrol\t/location/location/contains\n0.494229\t0.241538\t0.735816\tgötz_aly\tgermany\t/people/person/nationality\n0.494759\t0.242051\t0.735286\tgiuseppe_verdi\titaly\t/people/person/nationality\n0.495288\t0.242564\t0.735233\tvirginia\tunited_states_of_america\t/location/administrative_division/country\n0.495816\t0.243077\t0.734777\tstaten_island\tfort_wadsworth\t/location/location/contains\n0.495298\t0.243077\t0.734702\tcalifornia\to.c.\t/location/location/contains\n0.494781\t0.243077\t0.734625\tceline_dion\tswitzerland\t/people/person/nationality\n0.495308\t0.243590\t0.734018\tsteve_king\tiowa\t/people/person/place_lived\n0.494792\t0.243590\t0.733955\tcalcata\titaly\t/people/person/nationality\n0.495317\t0.244103\t0.733854\tminnesota\twarroad\t/location/location/contains\n0.494802\t0.244103\t0.733660\tcalifornia\triviera\t/location/location/contains\n0.495327\t0.244615\t0.733082\tpaolo_scaroni\teni\t/business/person/company\n0.494813\t0.244615\t0.732075\tstaten_island\tbloomfield\t/location/location/contains\n0.495337\t0.245128\t0.732033\tgermany\tkiel\t/location/location/contains\n0.495859\t0.245641\t0.731968\tminnesota\tinternational_falls\t/location/location/contains\n0.495346\t0.245641\t0.731506\twilliam_k._reilly\tstanford_university\t/business/person/company\n0.494835\t0.245641\t0.730696\tjane_austen\tfrance\t/people/person/nationality\n0.494324\t0.245641\t0.730443\trob_simmons\tconnecticut\t/people/person/place_lived\n0.493814\t0.245641\t0.730144\tcalifornia\tpeter_cooper_village\t/location/location/contains\n0.494336\t0.246154\t0.730097\tcalifornia\tsan_francisco\t/location/location/contains\n0.493827\t0.246154\t0.729934\tthe_daily_telegraph\taustralia\t/people/person/nationality\n0.493320\t0.246154\t0.729357\tswitzerland\tlake_lucerne\t/location/location/contains\n0.492813\t0.246154\t0.729208\twestchester_county\tbronx_river\t/location/location/contains\n0.492308\t0.246154\t0.728745\tpyotr_popov\tsoviet_union\t/people/person/nationality\n0.491803\t0.246154\t0.728718\tclemente_mastella\titaly\t/people/person/nationality\n0.491300\t0.246154\t0.728159\tcanwest_global_communications\tcanada\t/people/person/nationality\n0.490798\t0.246154\t0.728137\tcolumbia_county\tchatham\t/location/location/contains\n0.491318\t0.246667\t0.728062\tvermont\tascutney\t/location/location/contains\n0.491837\t0.247179\t0.727934\tmads_mikkelsen\tdenmark\t/people/person/nationality\n0.491335\t0.247179\t0.726871\to'neill\trussia\t/people/person/nationality\n0.490835\t0.247179\t0.726864\tscott_dunlap\tnearbynow\t/business/person/company\n0.490336\t0.247179\t0.725680\tjames_kakalios\tuniversity_of_minnesota\t/business/person/company\n0.489837\t0.247179\t0.725466\titaly\tuffizi_gallery\t/location/location/contains\n0.489340\t0.247179\t0.725353\tasia\tyasukuni_shrine\t/location/location/contains\n0.489858\t0.247692\t0.725281\ttoronto\tbata_shoe_museum\t/location/location/contains\n0.489362\t0.247692\t0.724804\tcalifornia\tmontana\t/location/location/contains\n0.488866\t0.247692\t0.724471\tparis\tvendôme\t/location/location/contains\n0.488372\t0.247692\t0.724450\tjohn_mcadam\timperial\t/business/person/company\n0.488889\t0.248205\t0.724394\tireland\tcork\t/location/location/contains\n0.489405\t0.248718\t0.724248\tchicago\tunited_center\t/location/location/contains\n0.489919\t0.249231\t0.724050\tmike_hampton\tatlanta\t/people/person/place_lived\n0.489426\t0.249231\t0.723932\tpeter_pace\taustralia\t/people/person/nationality\n0.489940\t0.249744\t0.723931\tmemphis\tgraceland\t/location/location/contains\n0.490452\t0.250256\t0.722647\tpaul_andreu\tfrance\t/people/person/nationality\n0.489960\t0.250256\t0.722264\tfreddy_rodriguez\tdominican_republic\t/people/person/nationality\n0.489468\t0.250256\t0.722125\tvirginia\tkingsmill\t/location/location/contains\n0.488978\t0.250256\t0.722021\titaly\tvilla_san_michele\t/location/location/contains\n0.489489\t0.250769\t0.721585\tindia\tgoa\t/location/location/contains\n0.489000\t0.250769\t0.721341\telkhonon_goldberg\tnew_york_university\t/business/person/company\n0.488511\t0.250769\t0.721038\tseattle\tgrandview\t/location/location/contains\n0.488024\t0.250769\t0.720955\tcanada\tteaneck\t/location/location/contains\n0.487537\t0.250769\t0.720657\tmonkey_world\tspain\t/people/person/nationality\n0.487052\t0.250769\t0.720547\tjerusalem\ttemple\t/location/location/contains\n0.487562\t0.251282\t0.720289\tluciano_berio\titaly\t/people/person/nationality\n0.487078\t0.251282\t0.720014\taustralia\tunited_kingdom\t/location/administrative_division/country\n0.487587\t0.251795\t0.720009\tnorth_dakota\tfort_yates\t/location/location/contains\n0.488095\t0.252308\t0.719735\tcalifornia\tcarpinteria\t/location/location/contains\n0.487611\t0.252308\t0.718903\tdavid_dagon\tgeorgia_institute_of_technology\t/business/person/company\n0.487129\t0.252308\t0.718454\tjack_m._wilson\tuniversity_of_massachusetts\t/business/person/company\n0.486647\t0.252308\t0.718333\tgeorge_maciunas\tgermany\t/people/person/nationality\n0.487154\t0.252821\t0.718123\tindia\thyderabad\t/location/location/contains\n0.487660\t0.253333\t0.718023\tcalifornia\tsan_leandro\t/location/location/contains\n0.487179\t0.253333\t0.717973\trusal\trussia\t/people/person/nationality\n0.486700\t0.253333\t0.717847\tamsterdam\tgelderland\t/location/location/contains\n0.486220\t0.253333\t0.717728\toklahoma\tponca\t/location/location/contains\n0.485742\t0.253333\t0.717662\trepublic_of_ireland\tscotland\t/location/administrative_division/country\n0.485265\t0.253333\t0.717548\tflorida\tindian_river\t/location/location/contains\n0.484789\t0.253333\t0.717343\tunited_kingdom\tgrimshaw\t/location/location/contains\n0.485294\t0.253846\t0.716955\tflorida\tpanama_city_beach\t/location/location/contains\n0.485798\t0.254359\t0.716761\tleonardo_da_vinci\titaly\t/people/person/nationality\n0.485323\t0.254359\t0.716744\tflorida\ttvr\t/location/location/contains\n0.484848\t0.254359\t0.716547\tvirginia\tadams_morgan\t/location/location/contains\n0.485352\t0.254872\t0.716441\tiowa\twaverly\t/location/location/contains\n0.485854\t0.255385\t0.716065\tjacques_chirac\tfrance\t/people/person/nationality\n0.485380\t0.255385\t0.715906\tglen_tetley\tgermany\t/people/person/nationality\n0.485881\t0.255897\t0.715800\tmexico\tquerétaro\t/location/location/contains\n0.485409\t0.255897\t0.714691\tcalifornia\tunion_beach\t/location/location/contains\n0.485909\t0.256410\t0.714594\tturkey\tankara\t/location/location/contains\n0.485437\t0.256410\t0.714236\tsonoma_county\toccidental\t/location/location/contains\n0.484966\t0.256410\t0.714188\tjean-claude_brialy\tparis\t/people/deceased_person/place_of_death\n0.485465\t0.256923\t0.714095\tsouth_carolina\tcharleston\t/location/location/contains\n0.485963\t0.257436\t0.713574\tspain\tcáceres\t/location/location/contains\n0.486460\t0.257949\t0.713399\tontario\tniagara_falls\t/location/location/contains\n0.486957\t0.258462\t0.713266\therat_province\tshindand\t/location/location/contains\n0.486486\t0.258462\t0.713190\thouston_nutt\tarkansas\t/people/person/place_lived\n0.486982\t0.258974\t0.713166\tmexico\tciudad_juárez\t/location/location/contains\n0.487476\t0.259487\t0.712510\treza_aslan\tiran\t/people/person/nationality\n0.487007\t0.259487\t0.712478\tgermany\tfimat_banque\t/location/location/contains\n0.487500\t0.260000\t0.712357\tminnesota\tmankato\t/location/location/contains\n0.487032\t0.260000\t0.711896\tjosé_bové\tfrance\t/people/person/nationality\n0.486564\t0.260000\t0.711847\tcanada\tuniversity_of_british_columbia\t/location/location/contains\n0.487057\t0.260513\t0.711341\tkamal_nath\tindia\t/people/person/nationality\n0.487548\t0.261026\t0.711303\tgermany\tmunich\t/location/location/contains\n0.487081\t0.261026\t0.709715\tshirley_temple\taustralia\t/people/person/nationality\n0.486616\t0.261026\t0.709471\tgermany\tdeutsche_bahn\t/location/location/contains\n0.486151\t0.261026\t0.709224\tjaouad_gharib\titaly\t/people/person/nationality\n0.485687\t0.261026\t0.708675\titaly\tbertone\t/location/location/contains\n0.486177\t0.261538\t0.708130\tecuador\totavalo\t/location/location/contains\n0.486667\t0.262051\t0.707626\tspain\tvalencia\t/location/location/contains\n0.487155\t0.262564\t0.707499\tflorida\ttampa\t/location/location/contains\n0.487643\t0.263077\t0.707097\tsouth_korea\tyeongcheon\t/location/location/contains\n0.488129\t0.263590\t0.707037\tmexico\tcabo_san_lucas\t/location/location/contains\n0.487666\t0.263590\t0.706729\tbardolino\titaly\t/people/person/nationality\n0.487204\t0.263590\t0.706594\tstaten_island\tlivingston\t/location/location/contains\n0.486742\t0.263590\t0.706350\tjeb_bradley\tnew_hampshire\t/people/person/place_lived\n0.486282\t0.263590\t0.705322\thisham_matar\tlibya\t/people/person/nationality\n0.486767\t0.264103\t0.705304\tidaho\tgreenleaf\t/location/location/contains\n0.487252\t0.264615\t0.704228\tgary_becker\tuniversity_of_chicago\t/business/person/company\n0.486792\t0.264615\t0.703946\toklahoma\tsanta_monica_college\t/location/location/contains\n0.487276\t0.265128\t0.703855\tmississippi\ttunica\t/location/location/contains\n0.486817\t0.265128\t0.702964\tvirginia\thampton_university\t/location/location/contains\n0.486359\t0.265128\t0.702390\tcalifornia\trockville_centre\t/location/location/contains\n0.485902\t0.265128\t0.702235\tflorida\tepcot\t/location/location/contains\n0.485446\t0.265128\t0.701780\trex_w._tillerson\tgoogle\t/business/person/company\n0.484991\t0.265128\t0.701349\tnew_york_city\tmonticello\t/location/location/contains\n0.485473\t0.265641\t0.700707\tnew_york_city\twashington_heights\t/location/location/contains\n0.485019\t0.265641\t0.700521\tdreamworks\tindia\t/people/person/nationality\n0.485500\t0.266154\t0.699844\ttony_parker\tfrance\t/people/person/nationality\n0.485981\t0.266667\t0.699305\tflorida\tjacksonville\t/location/location/contains\n0.485528\t0.266667\t0.699195\tfrankfurter_allgemeine_zeitung\tgermany\t/people/person/nationality\n0.485075\t0.266667\t0.698906\tcalifornia\tyuma\t/location/location/contains\n0.485555\t0.267179\t0.698454\twestchester_county\tchappaqua\t/location/location/contains\n0.486034\t0.267692\t0.697769\tmarco_materazzi\titaly\t/people/person/nationality\n0.485581\t0.267692\t0.697704\twest_texas\tlaredo\t/location/location/contains\n0.485130\t0.267692\t0.696624\tmexico\tgonzález\t/location/location/contains\n0.485608\t0.268205\t0.696475\tsuffolk_county\tkings_park\t/location/location/contains\n0.485158\t0.268205\t0.696309\tbaltimore\tboulder\t/location/location/contains\n0.484708\t0.268205\t0.696056\tsyracuse\tnational_safety_council\t/location/location/contains\n0.484259\t0.268205\t0.695543\tflorida\tcape_canaveral\t/location/location/contains\n0.484736\t0.268718\t0.695456\tguinea\tconakry\t/location/location/contains\n0.484288\t0.268718\t0.695015\tspain\tostia\t/location/location/contains\n0.483841\t0.268718\t0.694390\tarkansas\tchoctawhatchee_river\t/location/location/contains\n0.483395\t0.268718\t0.693581\tiowa\tadel\t/location/location/contains\n0.482949\t0.268718\t0.693565\tvermont\tjacksonville\t/location/location/contains\n0.482505\t0.268718\t0.693317\ticeland\tnuuk\t/location/location/contains\n0.482981\t0.269231\t0.693290\tgian_carlo_menotti\titaly\t/people/person/nationality\n0.482537\t0.269231\t0.693220\tdesio\titaly\t/people/person/nationality\n0.482094\t0.269231\t0.693132\tmark_pryor\tarkansas\t/people/person/place_lived\n0.482569\t0.269744\t0.693023\talejandro_gonzález_iñárritu\tmexico\t/people/person/nationality\n0.482126\t0.269744\t0.692891\tmstislav_rostropovich\trussia\t/people/person/nationality\n0.481685\t0.269744\t0.692559\tarkansas\tmountain_meadows\t/location/location/contains\n0.481244\t0.269744\t0.690884\tspain\tbanco_bilbao_vizcaya_argentaria\t/location/location/contains\n0.481718\t0.270256\t0.690859\tmexico\tmérida\t/location/location/contains\n0.481279\t0.270256\t0.690355\tlouisiana\tcajun\t/location/location/contains\n0.481752\t0.270769\t0.690226\tthailand\tyala\t/location/location/contains\n0.481313\t0.270769\t0.689932\tsouth_africa\tmatabeleland\t/location/location/contains\n0.480874\t0.270769\t0.689819\tasia\tshinto\t/location/location/contains\n0.480437\t0.270769\t0.689391\tunited_kingdom\tgordon_johndroe\t/location/location/contains\n0.480000\t0.270769\t0.689184\tscotland\tdingwall\t/location/location/contains\n0.480472\t0.271282\t0.688607\tontario\twaterloo\t/location/location/contains\n0.480036\t0.271282\t0.688199\tbernd_schuster\titaly\t/people/person/nationality\n0.480508\t0.271795\t0.688113\tmel_karmazin\tsirius_satellite_radio\t/business/person/company\n0.480072\t0.271795\t0.688077\tarkansas\toak_bluffs\t/location/location/contains\n0.480543\t0.272308\t0.687957\tlura\tportugal\t/people/person/nationality\n0.481013\t0.272821\t0.687845\tsam_walton\tarkansas\t/people/person/place_lived\n0.480578\t0.272821\t0.687830\tkelibia\ttunisia\t/people/person/nationality\n0.480144\t0.272821\t0.687517\tkari_lizer\tcbs\t/business/person/company\n0.479711\t0.272821\t0.686976\troy_miller\tatlanta\t/people/person/place_lived\n0.480180\t0.273333\t0.686935\tshona_brown\tgoogle\t/business/person/company\n0.479748\t0.273333\t0.686858\tfrancesco_rutelli\titaly\t/people/person/nationality\n0.479317\t0.273333\t0.686722\tmontclair\thillside\t/location/location/contains\n0.479784\t0.273846\t0.686012\tandré_desmarais\tcanada\t/people/person/nationality\n0.479354\t0.273846\t0.685799\tsylvain_chomet\tfrance\t/people/person/nationality\n0.478924\t0.273846\t0.685769\toklahoma\tbrad_henry\t/location/location/contains\n0.478495\t0.273846\t0.685605\tnew_york_city\tbridgewater\t/location/location/contains\n0.478066\t0.273846\t0.685594\tamsterdam\tnaarden\t/location/location/contains\n0.477639\t0.273846\t0.684955\tfelipe_pérez_roque\tcuba\t/people/person/nationality\n0.477212\t0.273846\t0.684643\tiowa\tcrown_point\t/location/location/contains\n0.477679\t0.274359\t0.683387\trichard_gasquet\tfrance\t/people/person/nationality\n0.477252\t0.274359\t0.683245\tpolaris_venture_partners\tmassachusetts_institute_of_technology\t/business/person/company\n0.476827\t0.274359\t0.682876\toklahoma\tperry\t/location/location/contains\n0.476402\t0.274359\t0.682570\tniantic\teast_lyme\t/location/location/contains\n0.476868\t0.274872\t0.682390\trussia\tbeslan\t/location/location/contains\n0.477333\t0.275385\t0.682384\tcatalonia\tspain\t/location/administrative_division/country\n0.477798\t0.275897\t0.682321\tcalifornia\tcorona\t/location/location/contains\n0.477374\t0.275897\t0.682316\tcoahuila\tmexico\t/people/person/nationality\n0.476950\t0.275897\t0.681847\twill_smith\tscotland\t/people/person/nationality\n0.476528\t0.275897\t0.681294\tidaho\tlewiston\t/location/location/contains\n0.476106\t0.275897\t0.681265\tÉlysée_palace\tfrance\t/people/person/nationality\n0.475685\t0.275897\t0.680972\tmexico\toswego\t/location/location/contains\n0.475265\t0.275897\t0.680948\tmargaret_macmillan\tuniversity_of_toronto\t/business/person/company\n0.474846\t0.275897\t0.680128\tmaryland\tkawasaki\t/location/location/contains\n0.474427\t0.275897\t0.680030\tvilla_san_michele\titaly\t/people/person/nationality\n0.474890\t0.276410\t0.679951\theinrich_heine\tgermany\t/people/person/nationality\n0.474472\t0.276410\t0.679153\tsandra_pianalto\tfederal_reserve_bank_of_cleveland\t/business/person/company\n0.474934\t0.276923\t0.678405\tmark_mathabane\tsouth_africa\t/people/person/nationality\n0.474517\t0.276923\t0.678040\tmichael_marsh\ttrinity_college\t/business/person/company\n0.474100\t0.276923\t0.678038\tnewark\tjefferson_street\t/location/location/contains\n0.474561\t0.277436\t0.677928\tmuhammad_yunus\tgrameen_bank\t/business/person/company\n0.474145\t0.277436\t0.677757\tvirginia\tchantilly\t/location/location/contains\n0.474606\t0.277949\t0.676690\tparis\tgrand_palais\t/location/location/contains\n0.475066\t0.278462\t0.676274\tbaltimore\tm&t_bank_stadium\t/location/location/contains\n0.474650\t0.278462\t0.676199\tcamus\tgermany\t/people/person/nationality\n0.475109\t0.278974\t0.675256\tcampania\titaly\t/location/administrative_division/country\n0.474695\t0.278974\t0.675065\tpeter_houghton\tnew_hampshire\t/people/person/place_lived\n0.474281\t0.278974\t0.674770\twayne_gilchrest\tmaryland\t/people/person/place_lived\n0.473868\t0.278974\t0.674722\tserbia\tpec\t/location/location/contains\n0.473455\t0.278974\t0.674718\tmexico_city\tchalco\t/location/location/contains\n0.473043\t0.278974\t0.674319\ttaos\ttaos_ski_valley\t/location/location/contains\n0.472632\t0.278974\t0.673715\tstephen_m._cutler\tcitigroup\t/business/person/company\n0.472222\t0.278974\t0.673547\tnew_york_city\tnew_haven\t/location/location/contains\n0.471813\t0.278974\t0.673512\tvirgin_blue\taustralia\t/people/person/nationality\n0.471404\t0.278974\t0.673276\tthe_new_york_times\tgoogle\t/business/person/company\n0.470996\t0.278974\t0.673090\tvirginia\tlarkspur\t/location/location/contains\n0.470588\t0.278974\t0.672973\tmississippi\tjames_meredith\t/location/location/contains\n0.470182\t0.278974\t0.672453\tmississippi\thuntsville\t/location/location/contains\n0.469775\t0.278974\t0.672112\twashington\tst._albans_school\t/location/location/contains\n0.470233\t0.279487\t0.671974\tkiran_desai\tindia\t/people/person/nationality\n0.469828\t0.279487\t0.671929\tjulian_schnabel\tfrance\t/people/person/nationality\n0.469423\t0.279487\t0.671904\ttsai_ming-liang\tmalaysia\t/people/person/nationality\n0.469880\t0.280000\t0.671853\tking_county\tseattle\t/location/location/contains\n0.469475\t0.280000\t0.671725\tfranco\tspain\t/people/person/nationality\n0.469931\t0.280513\t0.671518\tmississippi\tocean_springs\t/location/location/contains\n0.469528\t0.280513\t0.671187\tsan_fernando_valley\tgranada_hills\t/location/location/contains\n0.469125\t0.280513\t0.671064\tjohn_e._sununu\tnew_hampshire\t/people/person/place_lived\n0.469580\t0.281026\t0.670646\tsong_min-soon\tsouth_korea\t/people/person/nationality\n0.469178\t0.281026\t0.670642\tbrad_henry\toklahoma\t/people/person/place_lived\n0.469632\t0.281538\t0.670052\tsweet_auburn\tatlanta\t/location/neighborhood/neighborhood_of\n0.469231\t0.281538\t0.670016\tbenchmark_capital\tmitch_lasky\t/business/person/company\n0.469684\t0.282051\t0.670007\tabhishek_bachchan\tindia\t/people/person/nationality\n0.469283\t0.282051\t0.669883\tkirk_kerkorian\tgermany\t/people/person/nationality\n0.469736\t0.282564\t0.669810\tsan_francisco\tnoe_valley\t/location/location/contains\n0.469336\t0.282564\t0.669484\tpaul_butler\tgeorge_washington_university\t/business/person/company\n0.469787\t0.283077\t0.669422\tjosé_luis_castillo\tmexico\t/people/person/nationality\n0.469388\t0.283077\t0.669406\thenry_tang\tisrael\t/people/person/nationality\n0.469839\t0.283590\t0.669378\twashington\twenatchee_river\t/location/location/contains\n0.469440\t0.283590\t0.669370\tocean_falls\tcanada\t/people/person/nationality\n0.469890\t0.284103\t0.668866\tcroatia\tistria\t/location/location/contains\n0.469492\t0.284103\t0.668742\tconnecticut\tbethlehem\t/location/location/contains\n0.469094\t0.284103\t0.668698\tspain\told_san_juan\t/location/location/contains\n0.468697\t0.284103\t0.668224\tleningrad\tvaganova_ballet_academy\t/location/location/contains\n0.469146\t0.284615\t0.668097\titaly\tsan_siro\t/location/location/contains\n0.468750\t0.284615\t0.667906\tgeorge_gilder\tatari\t/business/person/company\n0.468354\t0.284615\t0.666891\tjürgen_klinsmann\taustralia\t/people/person/nationality\n0.467960\t0.284615\t0.666719\taltimo\talfa_group\t/business/person/company\n0.467565\t0.284615\t0.666693\tconnecticut\tbethel\t/location/location/contains\n0.467172\t0.284615\t0.666603\tidaho\tdonnelly\t/location/location/contains\n0.466779\t0.284615\t0.666388\tvirginia\tmorgantown\t/location/location/contains\n0.467227\t0.285128\t0.666251\tiowa\tsioux_city\t/location/location/contains\n0.466835\t0.285128\t0.666201\tconnecticut\tcheshire_high_school\t/location/location/contains\n0.467282\t0.285641\t0.666068\tcalifornia\tsacramento\t/location/location/contains\n0.466890\t0.285641\t0.665127\tisadore_sharp\tbill_gates\t/business/person/company\n0.466499\t0.285641\t0.665100\tjean-bertrand_aristide\tsouth_africa\t/people/person/nationality\n0.466109\t0.285641\t0.664583\tsão_paulo\tfasano\t/location/location/contains\n0.466555\t0.286154\t0.664010\titaly\tcalcata\t/location/location/contains\n0.466165\t0.286154\t0.663567\tjosé_clemente_orozco\tmexico\t/people/person/nationality\n0.465776\t0.286154\t0.663289\twashington\tdupont_circle\t/location/location/contains\n0.465388\t0.286154\t0.663057\tiranian-american\tiran\t/people/person/nationality\n0.465000\t0.286154\t0.662898\tbrian_france\tfrance\t/people/person/nationality\n0.464613\t0.286154\t0.662886\tvirginia\tmiddleburg\t/location/location/contains\n0.464226\t0.286154\t0.661858\tpaul_slovic\tuniversity_of_oregon\t/business/person/company\n0.463840\t0.286154\t0.661582\tfrance\tlyon\t/location/location/contains\n0.463455\t0.286154\t0.661551\tgordon_johndroe\tiran\t/people/person/nationality\n0.463071\t0.286154\t0.661479\tiran\tnimruz_province\t/location/location/contains\n0.463516\t0.286667\t0.661205\tmexico\tbaja_california\t/location/location/contains\n0.463132\t0.286667\t0.661072\tnebraska\tcharles_starkweather\t/location/location/contains\n0.463576\t0.287179\t0.661072\taustralia\tbrisbane\t/location/location/contains\n0.463193\t0.287179\t0.660295\tbill_bain\tbain_&_company\t/business/person/company\n0.462810\t0.287179\t0.660290\tjoe_francis\tmexico\t/people/person/nationality\n0.463254\t0.287692\t0.660004\tdenmark\telsinore\t/location/location/contains\n0.462871\t0.287692\t0.659576\titaly\tflavia_colgan\t/location/location/contains\n0.463314\t0.288205\t0.659515\titaly\tgenoa\t/location/location/contains\n0.462932\t0.288205\t0.659431\tkansas\ttallgrass_beef_company\t/location/location/contains\n0.463374\t0.288718\t0.659415\ttrevor_manuel\tsouth_africa\t/people/person/nationality\n0.463816\t0.289231\t0.659387\tcalifornia\tfresno_county\t/location/location/contains\n0.464256\t0.289744\t0.658826\trichard_branson\tvirgin_galactic\t/business/person/company\n0.463875\t0.289744\t0.658689\tpatricia_c._dunn\thewlett-packard\t/business/person/company\n0.464315\t0.290256\t0.658645\tscott_rothbort\tseton_hall_university\t/business/person/company\n0.463934\t0.290256\t0.658448\tjean_drèze\tindia\t/people/person/nationality\n0.463554\t0.290256\t0.658237\tnanjing\tjinhua\t/location/location/contains\n0.463993\t0.290769\t0.657877\tbihar\tindia\t/location/administrative_division/country\n0.464432\t0.291282\t0.657655\tprimo_levi\titaly\t/people/person/nationality\n0.464052\t0.291282\t0.656515\tsalmagundi_club\tnew_york_city\t/location/neighborhood/neighborhood_of\n0.463673\t0.291282\t0.656193\thindustan_lever_limited\tindia\t/people/person/nationality\n0.464111\t0.291795\t0.656034\tdominican_republic\tnagua\t/location/location/contains\n0.463733\t0.291795\t0.655967\tlos_angeles_county\tsteven_holl\t/location/location/contains\n0.464169\t0.292308\t0.655701\tnicole_kidman\taustralia\t/people/person/nationality\n0.464605\t0.292821\t0.654884\tcambridge\tmassachusetts_institute_of_technology\t/location/location/contains\n0.465041\t0.293333\t0.654794\tevgeni_malkin\trussia\t/people/person/nationality\n0.465475\t0.293846\t0.654665\tisrael\trehovot\t/location/location/contains\n0.465097\t0.293846\t0.654344\tjuan_diego_flórez\titaly\t/people/person/nationality\n0.464720\t0.293846\t0.654288\twisconsin\tcrystal_river\t/location/location/contains\n0.465154\t0.294359\t0.654249\tboston\tmassachusetts_general_hospital\t/location/location/contains\n0.464777\t0.294359\t0.653927\tekene_ibekwe\tmaryland\t/people/person/place_lived\n0.464401\t0.294359\t0.653656\tjane_elliott\tiowa\t/people/person/place_lived\n0.464026\t0.294359\t0.653002\tcalifornia\tlafayette\t/location/location/contains\n0.463651\t0.294359\t0.652965\tsteven_lewis\tempire_state_college\t/business/person/company\n0.464084\t0.294872\t0.652720\tklaus_kleinfeld\tgermany\t/people/person/nationality\n0.463710\t0.294872\t0.652709\tkim_kirchen\tspain\t/people/person/nationality\n0.463336\t0.294872\t0.651534\ta._c._grayling\tspain\t/people/person/nationality\n0.463768\t0.295385\t0.651427\tmartti_ahtisaari\tfinland\t/people/person/nationality\n0.463395\t0.295385\t0.651380\tarmand_hammer\toccidental_petroleum\t/business/person/company\n0.463023\t0.295385\t0.651033\tturkey\tfrance\t/people/person/nationality\n0.462651\t0.295385\t0.650774\ttaos\thamptons\t/location/location/contains\n0.462279\t0.295385\t0.650030\tbaltimore\tjohns_hopkins_hospital\t/location/location/contains\n0.461909\t0.295385\t0.649699\tmike_huckabee\tvirginia\t/people/person/place_lived\n0.462340\t0.295897\t0.649564\tcalifornia\tsanta_clarita\t/location/location/contains\n0.462770\t0.296410\t0.649436\tireland\tathenry\t/location/location/contains\n0.463200\t0.296923\t0.649430\trussia\tnefteyugansk\t/location/location/contains\n0.462830\t0.296923\t0.649357\therzogenaurach\tcanada\t/people/person/nationality\n0.463259\t0.297436\t0.649329\trichard_sands\tconstellation_brands\t/business/person/company\n0.462889\t0.297436\t0.649281\tmike_huckabee\tcolorado\t/people/person/place_lived\n0.462520\t0.297436\t0.649141\tsomalia\tcongo_river\t/location/location/contains\n0.462151\t0.297436\t0.649088\tstephen_ames\taustralia\t/people/person/nationality\n0.461783\t0.297436\t0.648863\toklahoma\talaska\t/location/location/contains\n0.461416\t0.297436\t0.648843\tezer_weizman\tisrael\t/people/person/nationality\n0.461049\t0.297436\t0.648627\tiran\tkufa\t/location/location/contains\n0.461477\t0.297949\t0.648151\tamitabh_bachchan\tindia\t/people/person/nationality\n0.461905\t0.298462\t0.648106\tsomaliland\thargeisa\t/location/location/contains\n0.462331\t0.298974\t0.648004\tjhumpa_lahiri\tindia\t/people/person/nationality\n0.461965\t0.298974\t0.647128\ttranspetrol\tslovakia\t/people/person/nationality\n0.461599\t0.298974\t0.647078\tfernando_valenzuela\tmexico\t/people/person/nationality\n0.461234\t0.298974\t0.645285\tjohn_b._bellinger_iii\titaly\t/people/person/nationality\n0.460870\t0.298974\t0.644129\tdeutsche_bahn\tgermany\t/people/person/nationality\n0.460506\t0.298974\t0.644088\tflorida\tdallas_baker\t/location/location/contains\n0.460142\t0.298974\t0.643996\tmexico\tjuárez\t/location/location/contains\n0.460568\t0.299487\t0.643960\ttunisia\tkelibia\t/location/location/contains\n0.460205\t0.299487\t0.643763\tstaten_island\tkent_street\t/location/location/contains\n0.459843\t0.299487\t0.643728\tsouth_africa\tsoweto\t/location/location/contains\n0.459481\t0.299487\t0.643527\tcalifornia\tsimon_&_schuster\t/location/location/contains\n0.459119\t0.299487\t0.643222\tquicken_loans\tdan_gilbert\t/business/person/company\n0.458759\t0.299487\t0.642924\tcosta_rica\tÓscar_arias\t/location/location/contains\n0.458399\t0.299487\t0.642842\tstephen_blum\tiran\t/people/person/nationality\n0.458039\t0.299487\t0.642663\tedward_luce\tindia\t/people/person/nationality\n0.457680\t0.299487\t0.642454\tlucky\tfrance\t/people/person/nationality\n0.458105\t0.300000\t0.641963\tana_palacio\tspain\t/people/person/nationality\n0.457746\t0.300000\t0.641848\tsouth_carolina\tnew_haven\t/location/location/contains\n0.458170\t0.300513\t0.641697\tfairfield_county\tgreenwich\t/location/location/contains\n0.458594\t0.301026\t0.641435\toklahoma\toklahoma_city\t/location/location/contains\n0.458236\t0.301026\t0.641101\tdreamworks\tcreative_artists_agency\t/business/person/company\n0.457878\t0.301026\t0.640985\trussian\trussia\t/people/person/nationality\n0.457521\t0.301026\t0.640887\teva_hesse\tgermany\t/people/person/nationality\n0.457944\t0.301538\t0.640771\titaly\tdesio\t/location/location/contains\n0.457588\t0.301538\t0.640664\tbernadette_chirac\tspain\t/people/person/nationality\n0.457232\t0.301538\t0.640252\tmexico\tchalco\t/location/location/contains\n0.457653\t0.302051\t0.640038\tkansas\tatchison\t/location/location/contains\n0.457298\t0.302051\t0.639916\tchipiona\tspain\t/people/person/nationality\n0.457719\t0.302564\t0.639771\tcleveland\tcase_western_reserve_university\t/location/location/contains\n0.457364\t0.302564\t0.639748\ttom_vilsack\tiowa\t/people/person/place_lived\n0.457010\t0.302564\t0.639674\terik_nielsen\tgermany\t/people/person/nationality\n0.457430\t0.303077\t0.639569\tmalaysia\tsepang\t/location/location/contains\n0.457077\t0.303077\t0.639560\tsimon_sebag_montefiore\trussia\t/people/person/nationality\n0.456723\t0.303077\t0.639528\tindia\thumayun\t/location/location/contains\n0.457143\t0.303590\t0.639520\tmitch_mcconnell\tkentucky\t/people/person/place_lived\n0.457562\t0.304103\t0.639417\tindia\tbihar\t/location/location/contains\n0.457209\t0.304103\t0.639403\tflorida\tboquete\t/location/location/contains\n0.456857\t0.304103\t0.639321\ternie_fletcher\tkentucky\t/people/person/place_lived\n0.456505\t0.304103\t0.639036\tontario\truthven\t/location/location/contains\n0.456154\t0.304103\t0.638891\tjack_abramoff\twashington\t/people/person/place_lived\n0.455803\t0.304103\t0.638725\tbob_roberts\tatlanta\t/people/person/place_lived\n0.455453\t0.304103\t0.638662\tnearbynow\tscott_dunlap\t/business/person/company\n0.455871\t0.304615\t0.637262\tdenmark\tribe\t/location/location/contains\n0.455521\t0.304615\t0.637029\trose_gottemoeller\trussia\t/people/person/nationality\n0.455172\t0.304615\t0.636890\tcompass_bancshares\tspain\t/people/person/nationality\n0.454824\t0.304615\t0.636679\thebei\tanhui\t/location/location/contains\n0.454476\t0.304615\t0.636481\talbany_county\tdavid_soares\t/location/location/contains\n0.454128\t0.304615\t0.636384\tberkeley\tkermit_lynch\t/location/location/contains\n0.453782\t0.304615\t0.636288\tjan_marek\trussia\t/people/person/nationality\n0.453435\t0.304615\t0.635957\tdenmark\thelsingborg\t/location/location/contains\n0.453089\t0.304615\t0.635605\tpaul-henri_mathieu\trussia\t/people/person/nationality\n0.452744\t0.304615\t0.635343\tami_ayalon\tisrael\t/people/person/nationality\n0.452399\t0.304615\t0.634901\tnew_york_city\tbound_brook\t/location/location/contains\n0.452055\t0.304615\t0.634463\ttahar_ben_jelloun\tlebanon\t/people/person/nationality\n0.451711\t0.304615\t0.634413\tsyracuse\trochester\t/location/location/contains\n0.452128\t0.305128\t0.633934\tbobby_deol\tindia\t/people/person/nationality\n0.451784\t0.305128\t0.633903\ttom_latham\tiowa\t/people/person/place_lived\n0.451442\t0.305128\t0.633707\tseattle\tlake_union\t/location/location/contains\n0.451099\t0.305128\t0.633544\tjonathan_haidt\tuniversity_of_virginia\t/business/person/company\n0.450758\t0.305128\t0.633238\tingmar_bergman\tfrance\t/people/person/nationality\n0.450416\t0.305128\t0.632601\tjeff_galloway\tatlanta\t/people/person/place_lived\n0.450076\t0.305128\t0.632404\tjack_kachkar\tfrance\t/people/person/nationality\n0.449735\t0.305128\t0.632117\tvirginia\twestfield\t/location/location/contains\n0.450151\t0.305641\t0.632114\tcalifornia\tross\t/location/location/contains\n0.449811\t0.305641\t0.632083\tangela_williams\tatlanta\t/people/person/place_lived\n0.449472\t0.305641\t0.631154\talcatel-lucent\tfrance\t/people/person/nationality\n0.449133\t0.305641\t0.631149\trichard_branson\tgoogle\t/business/person/company\n0.448795\t0.305641\t0.630697\twood_buffalo_national_park\tcanada\t/location/administrative_division/country\n0.448457\t0.305641\t0.630342\tkentucky\tnewton\t/location/location/contains\n0.448120\t0.305641\t0.629727\tian_ayres\tyale_law_school\t/business/person/company\n0.447784\t0.305641\t0.629547\tsamantha_bee\tindia\t/people/person/nationality\n0.448198\t0.306154\t0.629415\tkurt_weill\tgermany\t/people/person/nationality\n0.448612\t0.306667\t0.629353\tmitch_lasky\tbenchmark_capital\t/business/person/company\n0.448276\t0.306667\t0.629103\tstephen_schneider\tgoogle\t/business/person/company\n0.448689\t0.307179\t0.628793\tjim_bunning\tkentucky\t/people/person/place_lived\n0.448353\t0.307179\t0.628647\tcalifornia\tlawrence_berkeley_national_laboratory\t/location/location/contains\n0.448018\t0.307179\t0.628117\tdaniel_o'connell\tscotland\t/people/person/nationality\n0.447683\t0.307179\t0.627724\tportland\tbeaverton\t/location/location/contains\n0.448096\t0.307692\t0.627506\tspain\tjaén\t/location/location/contains\n0.447761\t0.307692\t0.627487\tcalifornia\tzoic_studios\t/location/location/contains\n0.447427\t0.307692\t0.627397\tbelfast\tnewgrange\t/location/location/contains\n0.447094\t0.307692\t0.626683\tmiddle_east\tsamarra\t/location/location/contains\n0.446761\t0.307692\t0.626456\tboston\tamerican_musicological_society\t/location/location/contains\n0.446429\t0.307692\t0.626445\tsouth_plainfield\tsaigon_restaurant\t/location/location/contains\n0.446097\t0.307692\t0.626066\tvietnam\tsan_pedro\t/location/location/contains\n0.445765\t0.307692\t0.625402\talejandro_toledo\tstanford_university\t/business/person/company\n0.445434\t0.307692\t0.625019\tsuffolk_county\thuntington\t/location/location/contains\n0.445846\t0.308205\t0.625003\tdominican_republic\tsantiago_rodríguez\t/location/location/contains\n0.446256\t0.308718\t0.623924\tsouth_carolina\tsavannah_river\t/location/location/contains\n0.446667\t0.309231\t0.623790\titaly\treggio_emilia\t/location/location/contains\n0.446336\t0.309231\t0.623710\tsylvester_stallone\tfrance\t/people/person/nationality\n0.446006\t0.309231\t0.623668\toklahoma\tcheyenne\t/location/location/contains\n0.446415\t0.309744\t0.623462\tmikhail_khodorkovsky\trussia\t/people/person/nationality\n0.446824\t0.310256\t0.622526\tnew_york_city\tgreenwich_village\t/location/location/contains\n0.446494\t0.310256\t0.622213\twayne_white\tiran\t/people/person/nationality\n0.446165\t0.310256\t0.621913\tshashi_tharoor\tisrael\t/people/person/nationality\n0.446573\t0.310769\t0.621151\tindia\tchhattisgarh\t/location/location/contains\n0.446244\t0.310769\t0.621141\tjames_gist\tmaryland\t/people/person/place_lived\n0.446652\t0.311282\t0.620691\tgloria_macapagal-arroyo\tphilippines\t/people/person/nationality\n0.446324\t0.311282\t0.620128\tmaryland\tlong_&_foster\t/location/location/contains\n0.445996\t0.311282\t0.620086\truss_feingold\twisconsin\t/people/person/place_lived\n0.446402\t0.311795\t0.619537\tphilippines\tsan_carlos_city\t/location/location/contains\n0.446075\t0.311795\t0.619459\tmark_chandler\tcisco\t/business/person/company\n0.445748\t0.311795\t0.618719\tarkansas\tberkeley\t/location/location/contains\n0.445421\t0.311795\t0.618435\tportland\tinternational_school\t/location/location/contains\n0.445827\t0.312308\t0.618418\troberto_calvi\titaly\t/people/person/nationality\n0.446233\t0.312821\t0.617762\tjean-louis_borloo\tfrance\t/people/person/nationality\n0.445906\t0.312821\t0.617427\tbill_gates\tcorbis\t/business/person/company\n0.445581\t0.312821\t0.617221\tcalifornia\thot_springs\t/location/location/contains\n0.445255\t0.312821\t0.616918\tstephen_harper\tmexico\t/people/person/nationality\n0.444931\t0.312821\t0.616199\tcajun\tlost_bayou_ramblers\t/location/location/contains\n0.445335\t0.313333\t0.616004\tcalifornia\tceres\t/location/location/contains\n0.445011\t0.313333\t0.615958\trussia\tindia\t/people/person/nationality\n0.444687\t0.313333\t0.615482\talaska\ttexas_city\t/location/location/contains\n0.444364\t0.313333\t0.615279\ted_oakley\ttom_leppert\t/business/person/company\n0.444041\t0.313333\t0.614500\tat&t\titaly\t/people/person/nationality\n0.443718\t0.313333\t0.614417\tstacy_peralta\tspain\t/people/person/nationality\n0.444122\t0.313846\t0.614382\tindia\tsawai_madhopur\t/location/location/contains\n0.443800\t0.313846\t0.614317\tthomas_vanek\tbuffalo\t/people/person/place_lived\n0.444203\t0.314359\t0.614257\tgeorge_allen\tvirginia\t/people/person/place_lived\n0.444605\t0.314872\t0.614247\tflorida\tlakeland\t/location/location/contains\n0.444284\t0.314872\t0.613686\twashington\twashington_state_university\t/location/location/contains\n0.443962\t0.314872\t0.613304\tdavid_a._harris\tiran\t/people/person/nationality\n0.443642\t0.314872\t0.612578\tpeter_r._dolan\tbristol-myers_squibb\t/business/person/company\n0.443321\t0.314872\t0.612340\tzubin_mehta\tindia\t/people/person/nationality\n0.443001\t0.314872\t0.612163\tatlanta\tomni\t/location/location/contains\n0.442682\t0.314872\t0.612077\tflorida\tmilton\t/location/location/contains\n0.442363\t0.314872\t0.611990\tdarfur\tzaghawa\t/location/location/contains\n0.442045\t0.314872\t0.611930\tfrance\ttalence\t/location/location/contains\n0.441727\t0.314872\t0.611622\tmartin_sorrell\titaly\t/people/person/nationality\n0.441409\t0.314872\t0.611288\twisconsin\tchicago\t/location/location/contains\n0.441092\t0.314872\t0.610704\tjohn_cocke\tnew_york_university\t/business/person/company\n0.441493\t0.315385\t0.610287\tmexico\tacapulco\t/location/location/contains\n0.441894\t0.315897\t0.610275\tcalifornia\tpalo_alto\t/location/location/contains\n0.442294\t0.316410\t0.610208\tenrico_fermi\tuniversity_of_chicago\t/business/person/company\n0.441977\t0.316410\t0.610173\tcarly_phillips\tisrael\t/people/person/nationality\n0.441661\t0.316410\t0.610097\tnew_hampshire\twhite_mountains\t/location/location/contains\n0.441345\t0.316410\t0.609668\tbritish_virgin_islands\tspanish_town\t/location/location/contains\n0.441744\t0.316923\t0.609234\tdavid_b._yoffie\tharvard_business_school\t/business/person/company\n0.441429\t0.316923\t0.608704\tcyprus\tashkelon\t/location/location/contains\n0.441827\t0.317436\t0.608666\tbelarus\tpinsk\t/location/location/contains\n0.441512\t0.317436\t0.608546\tvirginia\tbaltimore\t/location/location/contains\n0.441197\t0.317436\t0.608203\tsan_francisco\tflagstaff\t/location/location/contains\n0.440883\t0.317436\t0.608003\tatlanta\tagnes_scott_college\t/location/location/contains\n0.440569\t0.317436\t0.607527\thewlett-packard\tfrance\t/people/person/nationality\n0.440967\t0.317949\t0.607467\tkentucky\tvilla_hills\t/location/location/contains\n0.441365\t0.318462\t0.607313\tstaten_island\twesterleigh\t/location/location/contains\n0.441051\t0.318462\t0.607067\tlebanon\tharet_hreik\t/location/location/contains\n0.440738\t0.318462\t0.606543\tsycamore_networks\tgururaj_deshpande\t/business/person/company\n0.440426\t0.318462\t0.606475\therzogenaurach\tgermany\t/people/person/nationality\n0.440822\t0.318974\t0.606473\thenry_fonda\tomaha\t/people/person/place_lived\n0.440510\t0.318974\t0.606264\tflorida\tdavid_armstrong\t/location/location/contains\n0.440198\t0.318974\t0.606238\tfélix_sánchez\tdominican_republic\t/people/person/nationality\n0.439887\t0.318974\t0.606201\thomesense\tcanada\t/people/person/nationality\n0.439576\t0.318974\t0.606037\tcalifornia\tlarry_wilmore\t/location/location/contains\n0.439266\t0.318974\t0.605314\tram_shriram\tgoogle\t/business/person/company\n0.438956\t0.318974\t0.604980\tflorida\thillside\t/location/location/contains\n0.438646\t0.318974\t0.604629\tchirac\tfrance\t/people/person/nationality\n0.439042\t0.319487\t0.604309\tcalifornia\tlos_gatos\t/location/location/contains\n0.438732\t0.319487\t0.604276\tarabian_peninsula\triyadh\t/location/location/contains\n0.438424\t0.319487\t0.604267\tilya_kovalchuk\tatlanta\t/people/person/place_lived\n0.438115\t0.319487\t0.604121\tsasol\tsouth_africa\t/people/person/nationality\n0.437807\t0.319487\t0.603795\tseattle\tamerican_astronomical_society\t/location/location/contains\n0.438202\t0.320000\t0.603719\ttasmania\thobart\t/location/location/contains\n0.437895\t0.320000\t0.602935\tsouth_carolina\tlenoir\t/location/location/contains\n0.437588\t0.320000\t0.602634\tcaravaggio\titaly\t/people/person/nationality\n0.437982\t0.320513\t0.601308\tsuffolk_county\tnorth_amityville\t/location/location/contains\n0.438375\t0.321026\t0.601280\tkevin_andrews\taustralia\t/people/person/nationality\n0.438768\t0.321538\t0.601110\tpierre_boulez\tfrance\t/people/person/nationality\n0.439161\t0.322051\t0.600129\tlloyd_kaufman\ttroma_entertainment\t/business/person/company\n0.438854\t0.322051\t0.599354\tyemen\tgulf_of_aden\t/location/location/contains\n0.439246\t0.322564\t0.599353\tarundhati_roy\tindia\t/people/person/nationality\n0.438939\t0.322564\t0.599326\tparis\tÉcole_normale_supérieure\t/location/location/contains\n0.438633\t0.322564\t0.599227\thrant_dink\tturkey\t/people/person/nationality\n0.439024\t0.323077\t0.599211\tgrover_cleveland\tbuffalo\t/people/person/place_lived\n0.438719\t0.323077\t0.599050\tfilippo_magnini\tcanada\t/people/person/nationality\n0.438413\t0.323077\t0.598944\tseattle\thood_river\t/location/location/contains\n0.438804\t0.323590\t0.598707\tgermany\tlaupheim\t/location/location/contains\n0.438499\t0.323590\t0.598658\tolga_kern\trussia\t/people/person/nationality\n0.438194\t0.323590\t0.598538\tpaula_wriedt\taustralia\t/people/person/nationality\n0.437890\t0.323590\t0.597857\tfrance\talzonne\t/location/location/contains\n0.437587\t0.323590\t0.597688\trangin_dadfar_spanta\tiran\t/people/person/nationality\n0.437283\t0.323590\t0.597082\tpeter_fenton\tsouth_africa\t/people/person/nationality\n0.436981\t0.323590\t0.596648\tcroatia\tlopud\t/location/location/contains\n0.436678\t0.323590\t0.596101\tsuffolk_county\teast_new_york\t/location/location/contains\n0.437068\t0.324103\t0.595500\ttucson\tuniversity_of_arizona_college_of_medicine\t/location/location/contains\n0.436766\t0.324103\t0.594824\tnetherlands_antilles\taracataca\t/location/location/contains\n0.437155\t0.324615\t0.594741\tnew_york_city\tconey_island\t/location/location/contains\n0.436853\t0.324615\t0.594396\tcarl_robinson\tgermany\t/people/person/nationality\n0.436552\t0.324615\t0.594222\tvictoria_azarenka\tserbia\t/people/person/nationality\n0.436251\t0.324615\t0.594071\tjohn_caplan\tyoutube\t/business/person/company\n0.436639\t0.325128\t0.594020\tdenmark\taarhus\t/location/location/contains\n0.437027\t0.325641\t0.593797\tmohammad_khatami\tiran\t/people/person/nationality\n0.437414\t0.326154\t0.593275\tidaho\tburley\t/location/location/contains\n0.437113\t0.326154\t0.593080\tnew_york_city\torange\t/location/location/contains\n0.436813\t0.326154\t0.592607\toregon\telwha\t/location/location/contains\n0.436513\t0.326154\t0.591373\tforest_whitaker\tscotland\t/people/person/nationality\n0.436214\t0.326154\t0.591359\tmel_gibson\tisrael\t/people/person/nationality\n0.435915\t0.326154\t0.591222\tishmael_beah\tgeorge_washington_university\t/business/person/company\n0.435616\t0.326154\t0.590893\tjoann_ross\tcbs_corporation\t/business/person/company\n0.436003\t0.326667\t0.590504\tharris_county\thouston\t/location/location/contains\n0.435705\t0.326667\t0.590293\trenault\tfrance\t/people/person/nationality\n0.436090\t0.327179\t0.589753\talessandro_profumo\tunicredit\t/business/person/company\n0.435792\t0.327179\t0.589523\tjoseph_thompson\tmassachusetts_museum_of_contemporary_art\t/business/person/company\n0.435495\t0.327179\t0.589438\tjames_dimon\tnyse_group\t/business/person/company\n0.435880\t0.327692\t0.588724\tmichael_geoghegan\thsbc\t/business/person/company\n0.435583\t0.327692\t0.588660\telon_musk\tgoogle\t/business/person/company\n0.435286\t0.327692\t0.588064\tconnecticut\tm._jodi_rell\t/location/location/contains\n0.434990\t0.327692\t0.588031\trussian_river\tsonoma_county\t/location/location/contains\n0.434694\t0.327692\t0.587874\tcharles_pfizer\tgermany\t/people/person/nationality\n0.435078\t0.328205\t0.587552\tlawrence_lessig\tstanford_law_school\t/business/person/company\n0.434783\t0.328205\t0.587400\tnew_hampshire\thanover\t/location/location/contains\n0.434487\t0.328205\t0.587305\tmateusz_sawrymowicz\tpoland\t/people/person/nationality\n0.434193\t0.328205\t0.587062\tmaryland\telizabethtown_college\t/location/location/contains\n0.433898\t0.328205\t0.586918\tcalifornia\tcleveland\t/location/location/contains\n0.434282\t0.328718\t0.586892\tsouth_africa\tstellenbosch\t/location/location/contains\n0.433988\t0.328718\t0.586490\tnewark\tbroad_street\t/location/location/contains\n0.433694\t0.328718\t0.585775\tdeborah_willis\tnew_york_university\t/business/person/company\n0.433401\t0.328718\t0.585571\tjames_bulger\tboston\t/people/person/place_lived\n0.433108\t0.328718\t0.585231\tmurat_kurnaz\tgermany\t/people/person/nationality\n0.432816\t0.328718\t0.585194\tivrea\titaly\t/people/person/nationality\n0.432524\t0.328718\t0.585024\trobin_moore\tnorth_carolina_state_university\t/business/person/company\n0.432232\t0.328718\t0.584970\tjim_bennett\tnetflix\t/business/person/company\n0.432615\t0.329231\t0.584833\tgermany\tnuremberg\t/location/location/contains\n0.432323\t0.329231\t0.584778\tmike_huckabee\tchicago\t/people/person/place_lived\n0.432032\t0.329231\t0.584593\tflorida\talton_road\t/location/location/contains\n0.431742\t0.329231\t0.584234\talexander_stille\tcolumbia_university_graduate_school_of_journalism\t/business/person/company\n0.431452\t0.329231\t0.583082\tindia\tsouth_india\t/location/location/contains\n0.431162\t0.329231\t0.582805\tsanjay_nayar\tindia\t/people/person/nationality\n0.430872\t0.329231\t0.582372\tsouth_asia\tsingapore\t/location/location/contains\n0.430584\t0.329231\t0.581849\tstephen_r._wise\tjacksonville\t/people/person/place_lived\n0.430295\t0.329231\t0.581750\tjim_doyle\twisconsin\t/people/person/place_lived\n0.430007\t0.329231\t0.581687\tashley_harkleroad\tgermany\t/people/person/nationality\n0.430388\t0.329744\t0.581229\tflorida\tst._lucie\t/location/location/contains\n0.430100\t0.329744\t0.581106\tindiana\tchicagoland\t/location/location/contains\n0.430481\t0.330256\t0.580814\tronald_pofalla\tgermany\t/people/person/nationality\n0.430194\t0.330256\t0.580390\tunited_kingdom\twest_bank\t/location/location/contains\n0.429907\t0.330256\t0.580310\teric_e._schmidt\tnews_corporation\t/business/person/company\n0.430287\t0.330769\t0.579994\tasia\tsoviet_union\t/location/location/contains\n0.430000\t0.330769\t0.579779\tron_kind\twisconsin\t/people/person/place_lived\n0.429714\t0.330769\t0.579399\tchris_newton\tcleveland\t/people/person/place_lived\n0.430093\t0.331282\t0.579049\tidaho\thailey\t/location/location/contains\n0.430472\t0.331795\t0.578931\thaley_barbour\tmississippi\t/people/person/place_lived\n0.430186\t0.331795\t0.578850\tbarbet_schroeder\tscotland\t/people/person/nationality\n0.429900\t0.331795\t0.578623\tmuhtar_kent\tmary_e._minnick\t/business/person/company\n0.429615\t0.331795\t0.578501\tnew_york_city\tpratt_institute\t/location/location/contains\n0.429993\t0.332308\t0.578404\tpiedmont\titaly\t/location/administrative_division/country\n0.429708\t0.332308\t0.578068\tmike_huckabee\tmexico\t/people/person/nationality\n0.429423\t0.332308\t0.577996\tmississippi\tmagnolia\t/location/location/contains\n0.429801\t0.332821\t0.577991\tfemi_kuti\tnigeria\t/people/person/nationality\n0.429517\t0.332821\t0.577829\tshlomo_riskin\tisrael\t/people/person/nationality\n0.429233\t0.332821\t0.577684\tsean_combs\thollywood_roosevelt_hotel\t/business/person/company\n0.428949\t0.332821\t0.577620\trick_perry\tkatsuaki_watanabe\t/business/person/company\n0.428666\t0.332821\t0.577555\trichard_branson\tgeneral_electric\t/business/person/company\n0.428383\t0.332821\t0.577548\tmaurice_papon\tparis\t/people/deceased_person/place_of_death\n0.428100\t0.332821\t0.577255\ttaiwan\tnational_central_university\t/location/location/contains\n0.428477\t0.333333\t0.577052\tindia\tsimla\t/location/location/contains\n0.428195\t0.333333\t0.576909\tcollege_of_insurance\tnew_york_city\t/location/neighborhood/neighborhood_of\n0.427913\t0.333333\t0.576210\tmexico\tla_paz\t/location/location/contains\n0.427632\t0.333333\t0.576071\tconnecticut\tcarnegie_mellon_university\t/location/location/contains\n0.428008\t0.333846\t0.575367\tbeirut\tlebanese_university\t/location/location/contains\n0.427727\t0.333846\t0.574897\tpetronas\tmalaysia\t/people/person/nationality\n0.428102\t0.334359\t0.574562\tlouisiana\tbolden\t/location/location/contains\n0.427822\t0.334359\t0.574469\tnew_york_city\tpoughkeepsie\t/location/location/contains\n0.427541\t0.334359\t0.574155\tminnesota\tbuffalo_ridge\t/location/location/contains\n0.427261\t0.334359\t0.574151\tmichael_d._griffin\tmassachusetts_institute_of_technology\t/business/person/company\n0.427636\t0.334872\t0.574111\tnamibia\twindhoek\t/location/location/contains\n0.428010\t0.335385\t0.574014\tsteve_cohen\tmemphis\t/people/person/place_lived\n0.427731\t0.335385\t0.573747\tsteven_lewis\tiran\t/people/person/nationality\n0.427451\t0.335385\t0.573594\tsan_francisco\tvenice\t/location/location/contains\n0.427172\t0.335385\t0.573442\tgordon_brown\tfrance\t/people/person/nationality\n0.426893\t0.335385\t0.573314\twellesley\tst._andrews_episcopal_church\t/location/location/contains\n0.427267\t0.335897\t0.572940\toregon\tklamath_falls\t/location/location/contains\n0.426988\t0.335897\t0.572602\tdallas\thighland_springs\t/location/location/contains\n0.426710\t0.335897\t0.571886\tjames_moran\tvirginia\t/people/person/place_lived\n0.426432\t0.335897\t0.571578\trussia\ttoomas_hendrik_ilves\t/location/location/contains\n0.426805\t0.336410\t0.571440\trussia\tvolgograd\t/location/location/contains\n0.427178\t0.336923\t0.571207\twilbur_mills\tarkansas\t/people/person/place_lived\n0.426901\t0.336923\t0.571081\tisrael\thebron\t/location/location/contains\n0.426623\t0.336923\t0.570679\tÓscar_berger\tguatemala\t/people/person/nationality\n0.426347\t0.336923\t0.570659\tgermany\tfranconia\t/location/location/contains\n0.426070\t0.336923\t0.569904\tdenis_macshane\tisrael\t/people/person/nationality\n0.425794\t0.336923\t0.569312\tandy_warhol\tfrance\t/people/person/nationality\n0.425518\t0.336923\t0.568971\trussian\tukraine\t/people/person/nationality\n0.425243\t0.336923\t0.568763\tken_salazar\tcolorado\t/people/person/place_lived\n0.424968\t0.336923\t0.568458\tleonid_kuchma\tukraine\t/people/person/nationality\n0.424693\t0.336923\t0.567750\tvirginia\tsouth_carolina\t/location/location/contains\n0.424419\t0.336923\t0.567659\tglobe\tcanada\t/people/person/nationality\n0.424145\t0.336923\t0.567425\tsuffolk_county\tmerrick\t/location/location/contains\n0.423871\t0.336923\t0.567171\twest_virginia\tsulphur_springs\t/location/location/contains\n0.423598\t0.336923\t0.566931\teric_cantor\tvirginia\t/people/person/place_lived\n0.423325\t0.336923\t0.566908\tkenneth_gibson\tnewark\t/people/person/place_lived\n0.423052\t0.336923\t0.566544\trobert_savage\tnanette_lepore\t/business/person/company\n0.422780\t0.336923\t0.566490\tchristophe_rochus\tfrance\t/people/person/nationality\n0.422508\t0.336923\t0.566406\tunited_kingdom\tcanada\t/location/administrative_division/country\n0.422879\t0.337436\t0.566372\tminas_gerais\tbelo_horizonte\t/location/location/contains\n0.422608\t0.337436\t0.566344\toregon\tjesse_williams\t/location/location/contains\n0.422978\t0.337949\t0.566016\tmaher_arar\tcanada\t/people/person/nationality\n0.422707\t0.337949\t0.565487\tyuma\tsan_luis_río_colorado\t/location/location/contains\n0.422436\t0.337949\t0.565159\tpaula_todd\ttowers_perrin\t/business/person/company\n0.422165\t0.337949\t0.564606\twally_herbert\tscotland\t/people/person/nationality\n0.421895\t0.337949\t0.564409\tarkansas\tjohn_brown_university\t/location/location/contains\n0.421625\t0.337949\t0.564352\troberto_rossellini\tdenmark\t/people/person/nationality\n0.421355\t0.337949\t0.563812\tleo_strauss\tpoland\t/people/person/nationality\n0.421086\t0.337949\t0.563550\tthe_new_york_times_company\tthe_new_york_times\t/business/person/company\n0.420817\t0.337949\t0.563431\tcalifornia\tboston\t/location/location/contains\n0.421187\t0.338462\t0.563347\toregon\tportland\t/location/location/contains\n0.420918\t0.338462\t0.563168\tchianti\tsiena\t/location/location/contains\n0.420650\t0.338462\t0.562956\taltimo\tnorway\t/people/person/nationality\n0.420382\t0.338462\t0.562869\tvoltaire\tfrance\t/people/person/nationality\n0.420751\t0.338974\t0.562797\talexander_graham_bell\tcanada\t/people/person/nationality\n0.420483\t0.338974\t0.562232\tgordon_brown\tindia\t/people/person/nationality\n0.420852\t0.339487\t0.562218\tsan_francisco\tsan_francisco-oakland_bay_bridge\t/location/location/contains\n0.421220\t0.340000\t0.562092\tmexico\tguadalajara\t/location/location/contains\n0.420952\t0.340000\t0.561753\tseoul\trodin_museum\t/location/location/contains\n0.420685\t0.340000\t0.561389\tmount_baker\tlake_union\t/location/location/contains\n0.420419\t0.340000\t0.561094\tmaryland\tchesapeake\t/location/location/contains\n0.420152\t0.340000\t0.560843\twashington\tfoggy_bottom\t/location/location/contains\n0.419886\t0.340000\t0.560834\tjason_brown\tatlanta\t/people/person/place_lived\n0.419620\t0.340000\t0.560321\tlajos_kossuth\tfrance\t/people/person/nationality\n0.419355\t0.340000\t0.560059\tport_washington\tamsterdam\t/location/location/contains\n0.419722\t0.340513\t0.558848\tsyria\tdamascus\t/location/location/contains\n0.419457\t0.340513\t0.558600\talmaty\tastana\t/location/location/contains\n0.419192\t0.340513\t0.557565\tcalifornia\tjon_jerde\t/location/location/contains\n0.418927\t0.340513\t0.557120\tsalman_rushdie\tindia\t/people/person/nationality\n0.418663\t0.340513\t0.556492\tverdun\tmuslim\t/location/location/contains\n0.418399\t0.340513\t0.556455\tnew_hampshire\tmusconetcong_river\t/location/location/contains\n0.418136\t0.340513\t0.556403\trandy_williams\tcanada\t/people/person/nationality\n0.418502\t0.341026\t0.556118\tbaltimore\tinner_harbor\t/location/location/contains\n0.418239\t0.341026\t0.556078\tdreamworks\tuniversal_pictures\t/business/person/company\n0.417976\t0.341026\t0.555763\twisconsin\tj._b._van_hollen\t/location/location/contains\n0.417714\t0.341026\t0.555686\tsimone_weil\tgermany\t/people/person/nationality\n0.417451\t0.341026\t0.555334\tboston\tnortheastern_university\t/location/location/contains\n0.417189\t0.341026\t0.555078\twilliam_f._baker\tnew_york_university\t/business/person/company\n0.416928\t0.341026\t0.554737\tlyndon_b._johnson\tdominican_republic\t/people/person/nationality\n0.416667\t0.341026\t0.554736\tchicago\thawthorne_park\t/location/location/contains\n0.416406\t0.341026\t0.554489\tcanada\tottawa_river\t/location/location/contains\n0.416145\t0.341026\t0.554369\tportugal\toporto\t/location/location/contains\n0.416510\t0.341538\t0.554301\talessandro_profumo\titaly\t/people/person/nationality\n0.416250\t0.341538\t0.554194\ttunisia\tj._paul_getty_museum\t/location/location/contains\n0.415990\t0.341538\t0.554067\tvarel\tgermany\t/people/person/nationality\n0.415730\t0.341538\t0.553796\trebecca_weintraub\tisrael\t/people/person/nationality\n0.416095\t0.342051\t0.553778\theinrich_böll\tgermany\t/people/person/nationality\n0.415835\t0.342051\t0.553263\tconnecticut\telihu_yale\t/location/location/contains\n0.415576\t0.342051\t0.553148\tgoogle\tefficient_frontier\t/business/person/company\n0.415318\t0.342051\t0.553129\titaly\titalian_town\t/location/location/contains\n0.415059\t0.342051\t0.552882\tdavid_mcwilliams\tireland\t/people/person/nationality\n0.414801\t0.342051\t0.552875\twoodrow_wilson\talbania\t/people/person/nationality\n0.414543\t0.342051\t0.552848\tjay_leno\tboston_university\t/business/person/company\n0.414286\t0.342051\t0.552677\tdelaware_park\tbuffalo\t/location/neighborhood/neighborhood_of\n0.414649\t0.342564\t0.552329\tthailand\tnarathiwat\t/location/location/contains\n0.414392\t0.342564\t0.552161\tbill_gates\tgermany\t/people/person/nationality\n0.414135\t0.342564\t0.552149\tpaul_kagame\tindia\t/people/person/nationality\n0.414498\t0.343077\t0.551894\tunited_states_of_america\tvirginia\t/location/country/administrative_divisions\n0.414241\t0.343077\t0.551830\traul_allegre\tmexico\t/people/person/nationality\n0.413985\t0.343077\t0.551806\tmark_sanford\tsouth_carolina\t/people/person/place_lived\n0.413729\t0.343077\t0.550842\tnew_york_city\thouston\t/location/location/contains\n0.413473\t0.343077\t0.550592\tindia\tcoromandel_coast\t/location/location/contains\n0.413218\t0.343077\t0.550462\tiowa\tboston\t/location/location/contains\n0.413580\t0.343590\t0.550445\tkwazulu-natal\tsouth_africa\t/location/administrative_division/country\n0.413942\t0.344103\t0.550415\tiowa\tdavenport\t/location/location/contains\n0.413687\t0.344103\t0.548663\tmaryland\tflorida\t/location/location/contains\n0.413432\t0.344103\t0.548504\tvermont\tlong_trail\t/location/location/contains\n0.413793\t0.344615\t0.548456\tmexico\tjalisco\t/location/country/administrative_divisions\n0.413538\t0.344615\t0.548386\thood_river\tseattle\t/location/location/contains\n0.413284\t0.344615\t0.547635\tlouisiana\thouston\t/location/location/contains\n0.413030\t0.344615\t0.546821\tsomalia\tpuntland\t/location/location/contains\n0.412776\t0.344615\t0.546432\tnigeria\tnuhu_ribadu\t/location/location/contains\n0.412523\t0.344615\t0.546412\tturkey\tsunni_islam\t/location/location/contains\n0.412270\t0.344615\t0.546267\tchris_newton\tmemphis\t/people/person/place_lived\n0.412017\t0.344615\t0.545940\tlos_angeles_county\ttejon_ranch\t/location/location/contains\n0.411765\t0.344615\t0.545858\tgermany\tuniversity_of_ulm\t/location/location/contains\n0.411513\t0.344615\t0.545554\toklahoma\tcolorado\t/location/location/contains\n0.411873\t0.345128\t0.545273\twashington\tbainbridge_island\t/location/location/contains\n0.411621\t0.345128\t0.545019\tflorida\ttaurean_green\t/location/location/contains\n0.411369\t0.345128\t0.544879\thosni_mubarak\tiran\t/people/person/nationality\n0.411729\t0.345641\t0.544868\tkentucky\tcentre_college\t/location/location/contains\n0.412088\t0.346154\t0.544840\tmelvin_van_peebles\tchicago\t/people/person/place_of_birth\n0.411836\t0.346154\t0.544664\tmississippi\tstewart\t/location/location/contains\n0.411585\t0.346154\t0.544653\tgreece\tdenizli\t/location/location/contains\n0.411335\t0.346154\t0.544571\thugh_crean\tseattle\t/business/person/company\n0.411084\t0.346154\t0.544538\tnew_york_city\tparamus\t/location/location/contains\n0.410834\t0.346154\t0.544001\tvinod_khosla\tkhosla_ventures\t/business/person/company\n0.410584\t0.346154\t0.543723\ttom_arnold\tterrapass\t/business/person/company\n0.410334\t0.346154\t0.543675\tvirginia\tfort_myer\t/location/location/contains\n0.410693\t0.346667\t0.543644\tÓscar_arias\tcosta_rica\t/people/person/nationality\n0.411050\t0.347179\t0.543451\trhode_island\twarwick\t/location/location/contains\n0.410801\t0.347179\t0.543343\tportland\tpearl\t/location/location/contains\n0.411158\t0.347692\t0.543220\titaly\tancona\t/location/location/contains\n0.411515\t0.348205\t0.542815\tvirginia\tnorfolk\t/location/location/contains\n0.411266\t0.348205\t0.542737\tiowa\twoodward\t/location/location/contains\n0.411017\t0.348205\t0.542684\tconor_casey\tgermany\t/people/person/nationality\n0.410768\t0.348205\t0.542501\tkosice\tslovakia\t/people/person/nationality\n0.410520\t0.348205\t0.542433\tcorrèze\tfrance\t/people/person/nationality\n0.410272\t0.348205\t0.542333\tdon_miller\tpenske_racing\t/business/person/company\n0.410024\t0.348205\t0.541734\tspain\tbilbao\t/location/location/contains\n0.409777\t0.348205\t0.541519\tferdowsi\tiran\t/people/person/nationality\n0.409530\t0.348205\t0.541349\tallen_ginsberg\tsan_francisco\t/people/person/place_lived\n0.409283\t0.348205\t0.541013\tschibsted\tnorway\t/people/person/nationality\n0.409036\t0.348205\t0.540839\tclifton_daniel\tthe_new_york_times\t/business/person/company\n0.408790\t0.348205\t0.540582\trobert_weil\tw._w._norton\t/business/person/company\n0.408544\t0.348205\t0.540472\tmarianne_williamson\tfrance\t/people/person/nationality\n0.408900\t0.348718\t0.540192\thans-werner_sinn\tgermany\t/people/person/nationality\n0.408654\t0.348718\t0.540064\tjohn_c._mather\tnasa\t/business/person/company\n0.408408\t0.348718\t0.539790\tkentucky\tbirmingham\t/location/location/contains\n0.408764\t0.349231\t0.539771\tcalifornia\tstanford_university\t/location/location/contains\n0.408518\t0.349231\t0.539523\tgoa\tindia\t/people/person/nationality\n0.408273\t0.349231\t0.538990\tmashhad\tiran\t/location/administrative_division/country\n0.408029\t0.349231\t0.538831\thappy_chandler\tmexico\t/people/person/nationality\n0.407784\t0.349231\t0.538401\tidaho\tboise_state_university\t/location/location/contains\n0.407540\t0.349231\t0.538198\twashington\tnational_mall\t/location/location/contains\n0.407297\t0.349231\t0.537986\tcalifornia\tseattle\t/location/location/contains\n0.407053\t0.349231\t0.537561\tgatineau\tottawa_river\t/location/location/contains\n0.406810\t0.349231\t0.537503\tanthony_bannon\tbuffalo\t/people/person/place_lived\n0.406567\t0.349231\t0.537411\tbuffalo\tjason_pominville\t/location/location/contains\n0.406325\t0.349231\t0.537245\tcalifornia\tcalcutta\t/location/location/contains\n0.406082\t0.349231\t0.537092\tjesus_christ\tisrael\t/people/person/nationality\n0.405840\t0.349231\t0.537071\tmaj-britt_nilsson\tstockholm\t/people/person/place_of_birth\n0.405599\t0.349231\t0.537005\tcelia_franca\tnational_ballet_of_canada\t/business/person/company\n0.405357\t0.349231\t0.536942\tted_welch\tnashville\t/people/person/place_lived\n0.405116\t0.349231\t0.536927\tindiana\twabash_college\t/location/location/contains\n0.404875\t0.349231\t0.536610\tneville_chamberlain\tgermany\t/people/person/nationality\n0.404635\t0.349231\t0.536380\tsan_francisco\tcryptography_research\t/location/location/contains\n0.404988\t0.349744\t0.536036\tjalisco\tmexico\t/location/administrative_division/country\n0.404748\t0.349744\t0.535542\tscandinavia\tcanada\t/location/administrative_division/country\n0.404508\t0.349744\t0.535235\tbernd_schuster\tspain\t/people/person/nationality\n0.404268\t0.349744\t0.535125\tkurt_wolf\tgermany\t/people/person/nationality\n0.404028\t0.349744\t0.534333\tyeongcheon\tsouth_korea\t/people/person/nationality\n0.404381\t0.350256\t0.533473\tfranck_riboud\tfrance\t/people/person/nationality\n0.404142\t0.350256\t0.533294\tisfahan\tiran\t/location/administrative_division/country\n0.404494\t0.350769\t0.533198\tchile\tpunta_arenas\t/location/location/contains\n0.404846\t0.351282\t0.532965\titaly\tpiedmont\t/location/location/contains\n0.405198\t0.351795\t0.532532\tcape_may_county\tstone_harbor\t/location/location/contains\n0.404959\t0.351795\t0.532416\to'donnell\tboston\t/people/person/place_lived\n0.405310\t0.352308\t0.532227\tconnecticut\tnew_britain\t/location/location/contains\n0.405071\t0.352308\t0.532008\tunion_county\tessex\t/location/location/contains\n0.404832\t0.352308\t0.531654\tnorth_dakota\tfort_union\t/location/location/contains\n0.404594\t0.352308\t0.531515\titaly\tcurtis_institute_of_music\t/location/location/contains\n0.404944\t0.352821\t0.531367\titaly\tcampania\t/location/location/contains\n0.405294\t0.353333\t0.531236\tcalifornia\tmills_college\t/location/location/contains\n0.405644\t0.353846\t0.530815\toklahoma\tnorman\t/location/location/contains\n0.405405\t0.353846\t0.530692\tsan_carlos_city\tphilippines\t/people/person/nationality\n0.405167\t0.353846\t0.530685\tarica\tatlanta\t/people/person/place_lived\n0.405516\t0.354359\t0.530558\twestchester_county\tyorktown\t/location/location/contains\n0.405865\t0.354872\t0.530044\tdorchester\tboston\t/location/neighborhood/neighborhood_of\n0.406213\t0.355385\t0.529552\tromania\tbucharest\t/location/location/contains\n0.405975\t0.355385\t0.529179\tisaiah_washington\tscotland\t/people/person/nationality\n0.405738\t0.355385\t0.529011\tcheikh_anta_diop\tsenegal\t/people/person/nationality\n0.406085\t0.355897\t0.528364\ted_colligan\tpalm\t/business/person/company\n0.405848\t0.355897\t0.528279\tsandy_johnson\tdominican_republic\t/people/person/nationality\n0.406195\t0.356410\t0.527933\taileen_wuornos\tflorida\t/people/person/place_lived\n0.405958\t0.356410\t0.527500\tflorida\tscottsdale\t/location/location/contains\n0.405721\t0.356410\t0.527429\twestport\twinslow_park\t/location/location/contains\n0.405484\t0.356410\t0.527351\tflorida\tbarry_lubetkin\t/location/location/contains\n0.405248\t0.356410\t0.527244\tstaten_island\tst._george\t/location/location/contains\n0.405012\t0.356410\t0.527041\tsouth_korea\twando\t/location/location/contains\n0.404776\t0.356410\t0.526431\tmichael_kohlmann\tgermany\t/people/person/nationality\n0.404540\t0.356410\t0.526271\tvirginia\tst._michaels\t/location/location/contains\n0.404305\t0.356410\t0.526217\tgermany\tbayer_leverkusen\t/location/location/contains\n0.404070\t0.356410\t0.526158\tsacyr_vallehermoso\tfrance\t/people/person/nationality\n0.403835\t0.356410\t0.526080\tingrid_mattson\thartford_seminary\t/business/person/company\n0.403600\t0.356410\t0.526046\tukraine\tgalicia\t/location/location/contains\n0.403366\t0.356410\t0.525999\tbrad_lewis\tfrance\t/people/person/nationality\n0.403132\t0.356410\t0.525917\tchris_houston\tarkansas\t/people/person/place_lived\n0.403478\t0.356923\t0.525603\tjean-david_levitte\tfrance\t/people/person/nationality\n0.403244\t0.356923\t0.525488\tdarfur\tbirao\t/location/location/contains\n0.403011\t0.356923\t0.525411\tjohn_j._mcgrath\tphilippines\t/people/person/nationality\n0.402778\t0.356923\t0.525203\tbank_sepah\tiran\t/people/person/nationality\n0.402545\t0.356923\t0.524908\tmelissa_fay_greene\tatlanta\t/people/person/place_lived\n0.402312\t0.356923\t0.524263\telinor_carucci\tmexico\t/people/person/nationality\n0.402080\t0.356923\t0.523890\tbob_dole\tiowa\t/people/person/place_lived\n0.402425\t0.357436\t0.523751\trhode_island\tjohnston\t/location/location/contains\n0.402770\t0.357949\t0.523702\tira_winkler\tinformation_systems_security_association\t/business/person/company\n0.402537\t0.357949\t0.523458\tdaniel_pauly\tuniversity_of_british_columbia\t/business/person/company\n0.402305\t0.357949\t0.523380\tflorida\thollywood\t/location/location/contains\n0.402074\t0.357949\t0.522121\thuntington\tvanderbilt_museum\t/location/location/contains\n0.401842\t0.357949\t0.521098\tdaytona_beach\tdaytona_international_speedway\t/location/location/contains\n0.401611\t0.357949\t0.521022\tnigeria\tuniversity_of_ibadan\t/location/location/contains\n0.401380\t0.357949\t0.520712\tchristophe_rochus\tgermany\t/people/person/nationality\n0.401149\t0.357949\t0.520478\tmarty_stuart\tnashville\t/people/person/place_lived\n0.400919\t0.357949\t0.520424\tmaryland\tjill_st._john\t/location/location/contains\n0.400689\t0.357949\t0.520019\tsiena\ttroy\t/location/location/contains\n0.400459\t0.357949\t0.519505\tratan_tata\ttata\t/business/person/company\n0.400803\t0.358462\t0.519400\trussia\tnizhny_novgorod\t/location/location/contains\n0.400573\t0.358462\t0.518605\tminnesota\tspirit_lake\t/location/location/contains\n0.400344\t0.358462\t0.518359\tsuffolk_county\tst._joseph\t/location/location/contains\n0.400114\t0.358462\t0.518165\tbob_stapleton\titaly\t/people/person/nationality\n0.399886\t0.358462\t0.518020\tthe_new_york_times\tiran\t/people/person/nationality\n0.400229\t0.358974\t0.517681\tatari\tnolan_bushnell\t/business/company/founders\n0.400571\t0.359487\t0.517603\trobert_l._johnson\tblack_entertainment_television\t/business/person/company\n0.400914\t0.360000\t0.517537\tcook_county\tchicago\t/location/location/contains\n0.401256\t0.360513\t0.517348\tjean_baudrillard\tparis\t/people/deceased_person/place_of_death\n0.401027\t0.360513\t0.516647\tidaho\teastern_washington\t/location/location/contains\n0.400798\t0.360513\t0.516460\tontario\tst._marys_river\t/location/location/contains\n0.400570\t0.360513\t0.516203\tpol_pot\tgermany\t/people/person/nationality\n0.400342\t0.360513\t0.515923\tscott_rolen\tboston\t/people/person/place_lived\n0.400683\t0.361026\t0.515872\titaly\tverona\t/location/location/contains\n0.401024\t0.361538\t0.515824\tjohn_w._snow\tcsx_corporation\t/business/person/company\n0.400796\t0.361538\t0.515330\tkönigsdorf\tgermany\t/people/person/nationality\n0.401136\t0.362051\t0.515272\talan_paton\tsouth_africa\t/people/person/nationality\n0.400909\t0.362051\t0.514730\tnewark\tunion_city\t/location/location/contains\n0.400681\t0.362051\t0.514573\tsuffolk_county\twalgreens\t/location/location/contains\n0.401021\t0.362564\t0.514418\tdavid_wharnsby\ttoronto\t/people/person/place_lived\n0.400794\t0.362564\t0.514158\tmontana\tcanada\t/location/administrative_division/country\n0.400567\t0.362564\t0.513357\twestchester_county\tpaterson\t/location/location/contains\n0.400340\t0.362564\t0.512833\tjoe_courtney\tconnecticut\t/people/person/place_lived\n0.400679\t0.363077\t0.512778\tcanada\tcalgary\t/location/location/contains\n0.400452\t0.363077\t0.512626\tnorth_adams\tmarshall_street\t/location/location/contains\n0.400226\t0.363077\t0.512596\tbill_ritter\tmontana\t/people/person/place_lived\n0.400000\t0.363077\t0.512405\tmontana\tkirby\t/location/location/contains\n0.399774\t0.363077\t0.512401\tclay_shirky\tnew_york_university\t/business/person/company\n0.399549\t0.363077\t0.512044\tlouisville\tbrooks\t/location/location/contains\n0.399323\t0.363077\t0.511937\tconnecticut\tmaryland\t/people/person/place_lived\n0.399098\t0.363077\t0.511856\tcanada\tlake_huron\t/location/location/contains\n0.398873\t0.363077\t0.511717\tmichael_van_valkenburgh\tcharles_eliot\t/business/person/company\n0.398649\t0.363077\t0.511193\tst._thomas\tgermany\t/people/person/nationality\n0.398424\t0.363077\t0.511130\tcannon_mountain\tnew_hampshire\t/people/person/place_lived\n0.398200\t0.363077\t0.511103\tjohn_backus\tstanford_university\t/business/person/company\n0.397976\t0.363077\t0.510901\tcalifornia\twright\t/location/location/contains\n0.397753\t0.363077\t0.510190\tshay_doron\tmaryland\t/people/person/place_lived\n0.398091\t0.363590\t0.509963\tbranford\tstony_creek\t/location/location/contains\n0.397868\t0.363590\t0.509728\thouston\tgeorge_bush_intercontinental_airport\t/location/location/contains\n0.398205\t0.364103\t0.509434\tlaurie_baker\tindia\t/people/person/nationality\n0.398543\t0.364615\t0.509107\tkerala\ternakulam\t/location/location/contains\n0.398880\t0.365128\t0.508974\tcalifornia\tbrentwood\t/location/location/contains\n0.398656\t0.365128\t0.508677\tabdel_basset_ali_al-megrahi\tscotland\t/people/person/nationality\n0.398433\t0.365128\t0.508520\tconan_o'brien\tnbc\t/business/person/company\n0.398210\t0.365128\t0.508482\tjim_gilmore\tvirginia\t/people/person/place_lived\n0.397988\t0.365128\t0.508352\tsam_gejdenson\tconnecticut\t/people/person/place_lived\n0.397765\t0.365128\t0.507745\tvermont\tethan_allen\t/location/location/contains\n0.397543\t0.365128\t0.507203\tgoogle\tgeneral_electric\t/business/person/company\n0.397879\t0.365641\t0.506448\tjoseph_cedar\tisrael\t/people/person/nationality\n0.397658\t0.365641\t0.506280\temma_goldman\tspain\t/people/person/nationality\n0.397436\t0.365641\t0.505691\tcroton_dam\tnew_york_city\t/location/neighborhood/neighborhood_of\n0.397214\t0.365641\t0.505506\tkarl_shapiro\tmontana\t/people/person/place_lived\n0.397550\t0.366154\t0.505500\tcolorado\tsnowmass\t/location/location/contains\n0.397885\t0.366667\t0.505479\tterry_j._lundgren\tfederated_department_stores\t/business/person/company\n0.397664\t0.366667\t0.505072\triverhead\tcalverton_national_cemetery\t/location/location/contains\n0.397443\t0.366667\t0.504859\tted_conover\tnew_york_university\t/business/person/company\n0.397222\t0.366667\t0.504796\thong_kong_island\tvictoria_peak\t/location/location/contains\n0.397557\t0.367179\t0.504712\tclaude_brasseur\tfrance\t/people/person/nationality\n0.397336\t0.367179\t0.504606\tchicago\tunited_states_of_america\t/location/administrative_division/country\n0.397116\t0.367179\t0.504420\tjohn_w._snow\tgermany\t/people/person/nationality\n0.397450\t0.367692\t0.504296\tasia\tthailand\t/location/location/contains\n0.397784\t0.368205\t0.504285\tcanada\tst._catharines\t/location/location/contains\n0.397564\t0.368205\t0.503676\tireland\tdesmond_guinness\t/location/location/contains\n0.397344\t0.368205\t0.503465\tair_berlin\tgermany\t/people/person/nationality\n0.397124\t0.368205\t0.503419\tmike_gravel\tnew_york_city\t/people/person/place_lived\n0.396904\t0.368205\t0.503009\tcalifornia\tcolony_club\t/location/location/contains\n0.397238\t0.368718\t0.502783\tclaudio_x._gonzalez\tkimberly-clark\t/business/person/company\n0.397018\t0.368718\t0.502632\tflorida\trhode_island\t/location/location/contains\n0.396799\t0.368718\t0.502334\tvirginia\tsouth_kent\t/location/location/contains\n0.396580\t0.368718\t0.502196\tchicago\ttucson_international_airport\t/location/location/contains\n0.396362\t0.368718\t0.501811\trondout_reservoir\tnew_york_city\t/location/neighborhood/neighborhood_of\n0.396143\t0.368718\t0.501747\thosni_mubarak\tisrael\t/people/person/nationality\n0.395925\t0.368718\t0.501376\tnew_york_city\tfairfield_county\t/location/location/contains\n0.396258\t0.369231\t0.501276\tvermont\tmiddlebury\t/location/location/contains\n0.396040\t0.369231\t0.501221\tmarshall_rogers\tfremont\t/people/deceased_person/place_of_death\n0.396372\t0.369744\t0.500802\tchuck_hagel\tnebraska\t/people/person/place_lived\n0.396154\t0.369744\t0.500215\tkevin_coughlin\tcleveland\t/people/person/place_lived\n0.396485\t0.370256\t0.499948\tflorida\tport_st._lucie\t/location/location/contains\n0.396268\t0.370256\t0.499742\tjulia_mancuso\tspain\t/people/person/nationality\n0.396050\t0.370256\t0.499495\ta._c._grayling\tfrance\t/people/person/nationality\n0.395833\t0.370256\t0.499463\tconnecticut\tmilford\t/location/location/contains\n0.395616\t0.370256\t0.498680\tmexico_city\tspencer_tunick\t/location/location/contains\n0.395400\t0.370256\t0.498031\tburgundy\tfrance\t/location/administrative_division/country\n0.395183\t0.370256\t0.497243\tharrison_j._goldin\tbuffalo\t/people/person/place_lived\n0.394967\t0.370256\t0.497088\tcentral_asia\tbukhara\t/location/location/contains\n0.394751\t0.370256\t0.497068\tmaryland\tdunkirk\t/location/location/contains\n0.394536\t0.370256\t0.496977\tiran\tdenizli\t/location/location/contains\n0.394320\t0.370256\t0.496665\tavi_dichter\tisrael\t/people/person/nationality\n0.394105\t0.370256\t0.496653\tjimmy_rollins\tboston\t/people/person/place_lived\n0.394435\t0.370769\t0.496121\tkansas\twichita\t/location/location/contains\n0.394220\t0.370769\t0.495970\tnathaniel_hawthorne\tnew_york_city\t/people/person/place_lived\n0.394005\t0.370769\t0.495861\tchester_county\twellsboro\t/location/location/contains\n0.393791\t0.370769\t0.495792\tnational_opinion_research_center\tuniversity_of_chicago\t/business/person/company\n0.393576\t0.370769\t0.495704\tnizamuddin\tindia\t/people/person/nationality\n0.393362\t0.370769\t0.495568\toklahoma\tarapaho\t/location/location/contains\n0.393148\t0.370769\t0.495559\tkentucky\trobertson_county\t/location/location/contains\n0.393478\t0.371282\t0.495383\ttampa\tlegends_field\t/location/location/contains\n0.393808\t0.371795\t0.495211\tbooker_t._jones\tmemphis\t/people/person/place_lived\n0.393594\t0.371795\t0.494912\tjosé_rijo\tdominican_republic\t/people/person/nationality\n0.393380\t0.371795\t0.494901\tgermany\tpergamon\t/location/location/contains\n0.393167\t0.371795\t0.494812\tat&t\tbellsouth\t/business/person/company\n0.392954\t0.371795\t0.494500\tcalifornia\tbaltimore\t/location/location/contains\n0.392741\t0.371795\t0.494294\titaly\tclemente_mastella\t/location/location/contains\n0.392528\t0.371795\t0.494031\tjames_henry_hammond\tsouth_carolina\t/people/person/place_lived\n0.392316\t0.371795\t0.494022\tvictor_rojas\tphilippines\t/people/person/nationality\n0.392104\t0.371795\t0.492362\twestchester_county\trockefeller\t/location/location/contains\n0.391892\t0.371795\t0.492195\tjustin_wolfers\tindia\t/people/person/nationality\n0.391680\t0.371795\t0.491597\tlouisiana\teverglades\t/location/location/contains\n0.391469\t0.371795\t0.491470\tfrance\tvalence\t/location/location/contains\n0.391257\t0.371795\t0.491451\tpol_pot\tthailand\t/people/person/nationality\n0.391046\t0.371795\t0.491343\tbob_mitchell\tportland\t/people/person/place_lived\n0.391375\t0.372308\t0.491153\tunited_states_of_america\tchicago\t/location/location/contains\n0.391703\t0.372821\t0.490874\twilliam_easterly\tnew_york_university\t/business/person/company\n0.391492\t0.372821\t0.490695\tjaworzno\tpoland\t/people/person/nationality\n0.391819\t0.373333\t0.490526\tdavid_sloan_wilson\tbinghamton_university\t/business/person/company\n0.391608\t0.373333\t0.490053\tcalifornia\tcardiff\t/location/location/contains\n0.391398\t0.373333\t0.489541\tontario\twinsor\t/location/location/contains\n0.391725\t0.373846\t0.489263\tbaja_california\tmexico\t/location/administrative_division/country\n0.391515\t0.373846\t0.489016\tjohn_edwards\tnew_york_city\t/people/person/place_lived\n0.391304\t0.373846\t0.488847\tnatasha_hastings\tsouth_carolina\t/people/person/place_lived\n0.391094\t0.373846\t0.488582\twestchester_county\tvalencia\t/location/location/contains\n0.390885\t0.373846\t0.488534\tvermont\tnorth_hill\t/location/location/contains\n0.391211\t0.374359\t0.488314\talameda_county\toakland\t/location/location/contains\n0.391002\t0.374359\t0.488256\ternie_grunwald\tfrance\t/people/person/nationality\n0.390792\t0.374359\t0.487893\tcalifornia\tsouth_bronx\t/location/location/contains\n0.390583\t0.374359\t0.487801\tiowa\tarkansas\t/location/location/contains\n0.390374\t0.374359\t0.487772\tluise_rainer\tconnecticut\t/people/person/place_lived\n0.390166\t0.374359\t0.487677\trocky_mountains\tboulder\t/location/location/contains\n0.389957\t0.374359\t0.487564\tmsn_tv\tsteve_perlman\t/business/person/company\n0.389749\t0.374359\t0.487494\ttila_tequila\tnews_corporation\t/business/person/company\n0.389541\t0.374359\t0.486886\tjosh_boone\tconnecticut\t/people/person/place_lived\n0.389333\t0.374359\t0.486826\tgardaland\titaly\t/people/person/nationality\n0.389126\t0.374359\t0.486686\tdingwall\tscotland\t/people/person/nationality\n0.388918\t0.374359\t0.486413\tindia\thcl_technologies\t/location/location/contains\n0.388711\t0.374359\t0.485894\treza_shah\tiran\t/people/person/nationality\n0.388505\t0.374359\t0.485791\tjasmine_dellal\tspain\t/people/person/nationality\n0.388298\t0.374359\t0.485711\twashington\tnational_cherry_blossom_festival\t/location/location/contains\n0.388091\t0.374359\t0.485407\ttybee_island\tatlanta\t/people/person/place_lived\n0.387885\t0.374359\t0.485403\tcolorado\tlafayette\t/location/location/contains\n0.388210\t0.374872\t0.484864\titaly\tbardolino\t/location/location/contains\n0.388004\t0.374872\t0.484797\tpatrick_ireland\tireland\t/people/person/nationality\n0.387798\t0.374872\t0.484536\tmississippi\tsan_jose\t/location/location/contains\n0.387593\t0.374872\t0.484312\tlaos\tloei_province\t/location/location/contains\n0.387387\t0.374872\t0.484219\toklahoma\tmexico_city\t/location/location/contains\n0.387182\t0.374872\t0.484185\tdominican_republic\tport_st._lucie\t/location/location/contains\n0.386977\t0.374872\t0.484181\tcalifornia\tgeorgia_aquarium\t/location/location/contains\n0.387302\t0.375385\t0.483913\tchristian_de_portzamparc\tfrance\t/people/person/nationality\n0.387097\t0.375385\t0.483756\tthomas_w._lasorda\tjohn_w._snow\t/business/person/company\n0.386892\t0.375385\t0.483738\trussell_merryman\tyoutube\t/business/person/company\n0.386688\t0.375385\t0.483692\tjohn_o'sullivan\tcanada\t/people/person/nationality\n0.387012\t0.375897\t0.483613\twaterloo\tuniversity_of_waterloo\t/location/location/contains\n0.386807\t0.375897\t0.483569\tgeorge_h._w._bush\tnew_hampshire\t/people/person/place_lived\n0.386603\t0.375897\t0.483292\tjohnson_&_wales_university\tharborside\t/location/location/contains\n0.386400\t0.375897\t0.483137\tjeff_bernstein\tnew_york_university\t/business/person/company\n0.386196\t0.375897\t0.482700\tsan_francisco\tcliff_house\t/location/location/contains\n0.385993\t0.375897\t0.482233\tcoahuila\tspain\t/people/person/nationality\n0.385789\t0.375897\t0.481932\tpalo_alto\tstanford_shopping_center\t/location/location/contains\n0.386113\t0.376410\t0.481848\trichmond_valley\tstaten_island\t/location/neighborhood/neighborhood_of\n0.385910\t0.376410\t0.481765\tiran\tzahra_eshraghi\t/location/location/contains\n0.385707\t0.376410\t0.481620\txinjiang\thebei\t/location/location/contains\n0.385504\t0.376410\t0.481588\trodney_ellis\thouston\t/people/person/place_lived\n0.385302\t0.376410\t0.481270\tcraig_claiborne\tmississippi\t/people/person/place_lived\n0.385624\t0.376923\t0.481052\tvirginia\twestover\t/location/location/contains\n0.385422\t0.376923\t0.480900\twestchester_county\ttufts_university\t/location/location/contains\n0.385220\t0.376923\t0.480823\tsan_jose\talmaden_research_center\t/location/location/contains\n0.385542\t0.377436\t0.480500\tstuart_rosenberg\tbeverly_hills\t/people/deceased_person/place_of_death\n0.385340\t0.377436\t0.480419\tkentucky\tcattaraugus\t/location/location/contains\n0.385139\t0.377436\t0.480324\tnew_york_city\tkeansburg\t/location/location/contains\n0.384937\t0.377436\t0.479866\tlori_swanson\tminnesota\t/people/person/place_lived\n0.385259\t0.377949\t0.479807\tspain\tcatalonia\t/location/country/administrative_divisions\n0.385057\t0.377949\t0.479511\tdick_ebersol\tnbc\t/business/person/company\n0.384856\t0.377949\t0.478946\tstanley_wasserman\tindiana_university\t/business/person/company\n0.384656\t0.377949\t0.478766\tsyracuse\tbuffalo\t/location/location/contains\n0.384455\t0.377949\t0.478647\toklahoma\tindian_territory\t/location/location/contains\n0.384254\t0.377949\t0.478196\tdallas\tharvest_partners\t/location/location/contains\n0.384054\t0.377949\t0.478100\tcolony_club\tnew_york_city\t/location/neighborhood/neighborhood_of\n0.384375\t0.378462\t0.478029\tfrance\tcorrèze\t/location/country/administrative_divisions\n0.384175\t0.378462\t0.477980\tdieterich_buxtehude\tdenmark\t/people/person/nationality\n0.383975\t0.378462\t0.477717\tholt_renfrew\tcanada\t/people/person/nationality\n0.383775\t0.378462\t0.477351\tcaribbean\tmacuto\t/location/location/contains\n0.383576\t0.378462\t0.477128\tannie_leibovitz\tboston\t/people/person/place_lived\n0.383896\t0.378974\t0.476836\tmargaret_mitchell\tatlanta\t/people/person/place_lived\n0.383697\t0.378974\t0.476770\tfrance\tlaguiole\t/location/location/contains\n0.383498\t0.378974\t0.476702\tvali_nasr\tnaval_postgraduate_school\t/business/person/company\n0.383817\t0.379487\t0.476666\tjosé_calderón\tspain\t/people/person/nationality\n0.383618\t0.379487\t0.476362\tjoe_beck\tatlanta\t/people/person/place_lived\n0.383420\t0.379487\t0.476038\titaly\tclifton\t/location/location/contains\n0.383221\t0.379487\t0.475360\tcolorado\tfrisco\t/location/location/contains\n0.383023\t0.379487\t0.475318\ttouraine\tfrance\t/location/administrative_division/country\n0.382825\t0.379487\t0.475222\tvirginia\tmontgomery_county\t/location/location/contains\n0.382627\t0.379487\t0.475201\tvermont\tmckibben\t/location/location/contains\n0.382429\t0.379487\t0.474447\tiowa\ttipton\t/location/location/contains\n0.382231\t0.379487\t0.474292\tstanley_park\tanfield\t/location/location/contains\n0.382034\t0.379487\t0.474267\titaly\tcatalonia\t/location/location/contains\n0.381837\t0.379487\t0.474244\tcatalonia\tmadrid\t/location/location/contains\n0.381640\t0.379487\t0.473854\tkhosla_ventures\tsean_simpson\t/business/person/company\n0.381443\t0.379487\t0.473732\tjulie_taymor\tsouth_africa\t/people/person/nationality\n0.381247\t0.379487\t0.473500\tsocotra\tyemen\t/people/person/nationality\n0.381050\t0.379487\t0.473126\tcanada\tdetroit_river\t/location/location/contains\n0.381369\t0.380000\t0.473017\tmexico\tguanajuato\t/location/country/administrative_divisions\n0.381173\t0.380000\t0.472981\tvermont\tsugarbush\t/location/location/contains\n0.380977\t0.380000\t0.472807\tpaul_g._pinsky\tmaryland\t/people/person/place_lived\n0.380781\t0.380000\t0.472517\trobert_kendrick\tspain\t/people/person/nationality\n0.380586\t0.380000\t0.472423\tessex\tessex_meadows\t/location/location/contains\n0.380390\t0.380000\t0.472421\tmichael_mori\taustralia\t/people/person/nationality\n0.380195\t0.380000\t0.472360\tconnecticut\tmount_kisco\t/location/location/contains\n0.380000\t0.380000\t0.471757\tbernard_lagat\taustralia\t/people/person/nationality\n0.379805\t0.380000\t0.471615\tthomas_dewey\tnew_york_city\t/people/person/place_lived\n0.379611\t0.380000\t0.471251\tireland\tnorthern_europe\t/location/location/contains\n0.379416\t0.380000\t0.471103\tfrance\tbesançon\t/location/location/contains\n0.379222\t0.380000\t0.470847\tm._jodi_rell\tconnecticut\t/people/person/place_lived\n0.379028\t0.380000\t0.470274\thood_river\toak_street\t/location/location/contains\n0.378834\t0.380000\t0.470157\tvirginia\tgreenberg_traurig\t/location/location/contains\n0.378641\t0.380000\t0.469930\tjoseph_mitchell\tireland\t/people/person/nationality\n0.378447\t0.380000\t0.469799\tunited_states_of_america\tbernard_kerik\t/location/location/contains\n0.378254\t0.380000\t0.469711\tankara\tdenizli\t/location/location/contains\n0.378061\t0.380000\t0.469441\tlawrence_lessig\tcreative_commons\t/business/person/company\n0.377868\t0.380000\t0.469190\tconnecticut\tbloomfield\t/location/location/contains\n0.378186\t0.380513\t0.468769\trussia\tvankarem\t/location/location/contains\n0.377993\t0.380513\t0.468644\tjill_abramson\tthe_new_york_times\t/business/person/company\n0.378310\t0.381026\t0.468356\tindiana\tsanta_claus\t/location/location/contains\n0.378117\t0.381026\t0.468263\tauxerre\tfrance\t/people/person/nationality\n0.377925\t0.381026\t0.468034\ttopeka\tatchison\t/location/location/contains\n0.377733\t0.381026\t0.467981\tiowa\tindian_hills\t/location/location/contains\n0.377541\t0.381026\t0.467899\tnew_york_city\tboston\t/location/location/contains\n0.377349\t0.381026\t0.467667\tgelderland\tamsterdam\t/location/location/contains\n0.377665\t0.381538\t0.467486\tcroatia\tzagreb\t/location/location/contains\n0.377473\t0.381538\t0.467454\te._b._white\tconnecticut\t/people/person/place_lived\n0.377282\t0.381538\t0.466921\tiowa\tmontezuma\t/location/location/contains\n0.377091\t0.381538\t0.466563\tflorida\tbayside\t/location/location/contains\n0.376900\t0.381538\t0.466202\telias_murr\tisrael\t/people/person/nationality\n0.376709\t0.381538\t0.466171\tcalifornia\tcarlos_rodriguez\t/location/location/contains\n0.376518\t0.381538\t0.466039\tfox_interactive_media\tnews_corporation\t/business/person/company\n0.376328\t0.381538\t0.465465\ta._e._hotchner\tfrance\t/people/person/nationality\n0.376138\t0.381538\t0.465267\tlaurence_h._silberman\tunited_states_court_of_appeals_for_the_district_of_columbia_circuit\t/business/person/company\n0.375947\t0.381538\t0.465197\tpowerset\tgoogle\t/business/person/company\n0.375758\t0.381538\t0.464868\tedward_livingston\tnew_york_city\t/people/person/place_lived\n0.375568\t0.381538\t0.464258\toscar_de_la_renta\tgermany\t/people/person/nationality\n0.375883\t0.382051\t0.464099\tchicago\trush_medical_college\t/location/location/contains\n0.375693\t0.382051\t0.463856\tireland\tbastrop\t/location/location/contains\n0.375504\t0.382051\t0.463836\tdominican_republic\tpompano_beach\t/location/location/contains\n0.375315\t0.382051\t0.463066\tléopold_sédar_senghor\tsenegal\t/people/person/nationality\n0.375126\t0.382051\t0.462951\talexander_waske\tgermany\t/people/person/nationality\n0.374937\t0.382051\t0.462882\tedgar_sosa\tlouisville\t/people/person/place_lived\n0.374748\t0.382051\t0.462819\tflorida\tziad_jarrah\t/location/location/contains\n0.374560\t0.382051\t0.462673\tmike_gravel\tsouth_carolina\t/people/person/place_lived\n0.374372\t0.382051\t0.462563\tann_arbor\tgeorge_eastman_house\t/location/location/contains\n0.374184\t0.382051\t0.461901\tcanada\tandré_boisclair\t/location/location/contains\n0.373996\t0.382051\t0.461753\tunicredit\tfrance\t/people/person/nationality\n0.373808\t0.382051\t0.461523\tmel_gibson\titaly\t/people/person/nationality\n0.373621\t0.382051\t0.461364\tgermany\tsan_bruno\t/location/location/contains\n0.373434\t0.382051\t0.460794\tvolgograd\trussia\t/location/administrative_division/country\n0.373246\t0.382051\t0.460679\tfairfield_county\trye\t/location/location/contains\n0.373060\t0.382051\t0.460415\trussia\tkommersant\t/location/location/contains\n0.372873\t0.382051\t0.460401\tjeffrey_r._immelt\tcnbc\t/business/person/company\n0.372686\t0.382051\t0.460376\tjohn_doolittle\tcalifornia\t/people/person/place_lived\n0.372500\t0.382051\t0.460319\trussian\tgermany\t/people/person/nationality\n"
  },
  {
    "path": "jointE/KATT/init.cpp",
    "content": "#include <cstring>\n#include <cstdio>\n#include <cstdlib>\n#include <cmath>\n#include <ctime>\n#include <string>\n#include <algorithm>\n\nusing namespace std;\n\nstring inPath = \"./data/\";\n\nextern \"C\"\nvoid setInPath(char *path) {\n    int len = strlen(path);\n    inPath = \"\";\n    for (int i = 0; i < len; i++)\n        inPath = inPath + path[i];\n    printf(\"Input Files Path : %s\\n\", inPath.c_str());\n}\n\nint *lefHead, *rigHead;\nint *lefTail, *rigTail;\n\nstruct Triple {\n\tint h, r, t;\n};\n\nstruct cmp_head {\n\tbool operator()(const Triple &a, const Triple &b) {\n\t\treturn (a.h < b.h)||(a.h == b.h && a.r < b.r)||(a.h == b.h && a.r == b.r && a.t < b.t);\n\t}\n};\n\nstruct cmp_tail {\n\tbool operator()(const Triple &a, const Triple &b) {\n\t\treturn (a.t < b.t)||(a.t == b.t && a.r < b.r)||(a.t == b.t && a.r == b.r && a.h < b.h);\n\t}\n};\n\nstruct cmp_list {\n\tint minimal(int a,int b) {\n\t\tif (a > b) return b;\n\t\treturn a;\n\t}\n\tbool operator()(const Triple &a, const Triple &b) {\n\t\treturn (minimal(a.h, a.t) > minimal(b.h, b.t));\n\t}\n};\n\nTriple *trainHead, *trainTail, *trainList;\nint relationTotal, entityTotal, tripleTotal;\nint *freqRel, *freqEnt;\nfloat *left_mean, *right_mean;\n\nextern \"C\"\nvoid init() {\n\n\tFILE *fin;\n\tint tmp;\n\n\tfin = fopen((inPath + \"relation2id.txt\").c_str(), \"r\");\n\ttmp = fscanf(fin, \"%d\", &relationTotal);\n\tfclose(fin);\n\tprintf(\"%d\\n\", relationTotal);\n\n\tfreqRel = (int *)calloc(relationTotal, sizeof(int));\n\t\n\tfin = fopen((inPath + \"entity2id.txt\").c_str(), \"r\");\n\ttmp = fscanf(fin, \"%d\", &entityTotal);\n\tfclose(fin);\n\tprintf(\"%d\\n\", entityTotal);\n\n\tfreqEnt = (int *)calloc(entityTotal, sizeof(int));\n\t\n\tfin = fopen((inPath + \"triple2id.txt\").c_str(), \"r\");\n\ttmp = fscanf(fin, \"%d\", &tripleTotal);\n\tprintf(\"%d\\n\", tripleTotal);\n\ttrainHead = (Triple *)calloc(tripleTotal, sizeof(Triple));\n\ttrainTail = (Triple *)calloc(tripleTotal, sizeof(Triple));\n\ttrainList = (Triple *)calloc(tripleTotal, sizeof(Triple));\n\ttripleTotal = 0;\n\twhile (fscanf(fin, \"%d\", &trainList[tripleTotal].h) == 1) {\n\t\ttmp = fscanf(fin, \"%d\", &trainList[tripleTotal].t);\n\t\ttmp = fscanf(fin, \"%d\", &trainList[tripleTotal].r);\n\t\tfreqEnt[trainList[tripleTotal].t]++;\n\t\tfreqEnt[trainList[tripleTotal].h]++;\n\t\tfreqRel[trainList[tripleTotal].r]++;\n\t\ttrainHead[tripleTotal].h = trainList[tripleTotal].h;\n\t\ttrainHead[tripleTotal].t = trainList[tripleTotal].t;\n\t\ttrainHead[tripleTotal].r = trainList[tripleTotal].r;\n\t\ttrainTail[tripleTotal].h = trainList[tripleTotal].h;\n\t\ttrainTail[tripleTotal].t = trainList[tripleTotal].t;\n\t\ttrainTail[tripleTotal].r = trainList[tripleTotal].r;\n\t\ttripleTotal++;\n\t}\n\tfclose(fin);\n\n\tsort(trainHead, trainHead + tripleTotal, cmp_head());\n\tsort(trainTail, trainTail + tripleTotal, cmp_tail());\n\n\tlefHead = (int *)calloc(entityTotal, sizeof(int));\n\trigHead = (int *)calloc(entityTotal, sizeof(int));\n\tlefTail = (int *)calloc(entityTotal, sizeof(int));\n\trigTail = (int *)calloc(entityTotal, sizeof(int));\n\tmemset(rigHead, -1, sizeof(rigHead));\n\tmemset(rigTail, -1, sizeof(rigTail));\n\tfor (int i = 1; i < tripleTotal; i++) {\n\t\tif (trainTail[i].t != trainTail[i - 1].t) {\n\t\t\trigTail[trainTail[i - 1].t] = i - 1;\n\t\t\tlefTail[trainTail[i].t] = i;\n\t\t}\n\t\tif (trainHead[i].h != trainHead[i - 1].h) {\n\t\t\trigHead[trainHead[i - 1].h] = i - 1;\n\t\t\tlefHead[trainHead[i].h] = i;\n\t\t}\n\t}\n\trigHead[trainHead[tripleTotal - 1].h] = tripleTotal - 1;\n\trigTail[trainTail[tripleTotal - 1].t] = tripleTotal - 1;\n\n\tleft_mean = (float *)calloc(relationTotal,sizeof(float));\n\tright_mean = (float *)calloc(relationTotal,sizeof(float));\n\tfor (int i = 0; i < entityTotal; i++) {\n\t\tfor (int j = lefHead[i] + 1; j < rigHead[i]; j++)\n\t\t\tif (trainHead[j].r != trainHead[j - 1].r)\n\t\t\t\tleft_mean[trainHead[j].r] += 1.0;\n\t\tif (lefHead[i] <= rigHead[i])\n\t\t\tleft_mean[trainHead[lefHead[i]].r] += 1.0;\n\t\tfor (int j = lefTail[i] + 1; j < rigTail[i]; j++)\n\t\t\tif (trainTail[j].r != trainTail[j - 1].r)\n\t\t\t\tright_mean[trainTail[j].r] += 1.0;\n\t\tif (lefTail[i] <= rigTail[i])\n\t\t\tright_mean[trainTail[lefTail[i]].r] += 1.0;\n\t}\n\tfor (int i = 0; i < relationTotal; i++) {\n\t\tleft_mean[i] = freqRel[i] / left_mean[i];\n\t\tright_mean[i] = freqRel[i] / right_mean[i];\n\t}\n}\n\nextern \"C\"\nint getEntityTotal() {\n\treturn entityTotal;\n}\n\nextern \"C\"\nint getRelationTotal() {\n\treturn relationTotal;\n}\n\nextern \"C\"\nint getTripleTotal() {\n\treturn tripleTotal;\n}\n\n// unsigned long long *next_random;\nunsigned long long next_random = 3;\n\nunsigned long long randd(int id) {\n\tnext_random = next_random * (unsigned long long)25214903917 + 11;\n\treturn next_random;\n}\n\nint rand_max(int id, int x) {\n\tint res = randd(id) % x;\n\twhile (res<0)\n\t\tres+=x;\n\treturn res;\n}\n\nint corrupt_head(int id, int h, int r) {\n\tint lef, rig, mid, ll, rr;\n\tlef = lefHead[h] - 1;\n\trig = rigHead[h];\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainHead[mid].r >= r) rig = mid; else\n\t\tlef = mid;\n\t}\n\tll = rig;\n\tlef = lefHead[h];\n\trig = rigHead[h] + 1;\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainHead[mid].r <= r) lef = mid; else\n\t\trig = mid;\n\t}\n\trr = lef;\n\tint tmp = rand_max(id, entityTotal - (rr - ll + 1));\n\tif (tmp < trainHead[ll].t) return tmp;\n\tif (tmp > trainHead[rr].t - rr + ll - 1) return tmp + rr - ll + 1;\n\tlef = ll, rig = rr + 1;\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainHead[mid].t - mid + ll - 1 < tmp)\n\t\t\tlef = mid;\n\t\telse \n\t\t\trig = mid;\n\t}\n\treturn tmp + lef - ll + 1;\n}\n\nint corrupt_tail(int id, int t, int r) {\n\tint lef, rig, mid, ll, rr;\n\tlef = lefTail[t] - 1;\n\trig = rigTail[t];\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainTail[mid].r >= r) rig = mid; else\n\t\tlef = mid;\n\t}\n\tll = rig;\n\tlef = lefTail[t];\n\trig = rigTail[t] + 1;\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainTail[mid].r <= r) lef = mid; else\n\t\trig = mid;\n\t}\n\trr = lef;\n\tint tmp = rand_max(id, entityTotal - (rr - ll + 1));\n\tif (tmp < trainTail[ll].h) return tmp;\n\tif (tmp > trainTail[rr].h - rr + ll - 1) return tmp + rr - ll + 1;\n\tlef = ll, rig = rr + 1;\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainTail[mid].h - mid + ll - 1 < tmp)\n\t\t\tlef = mid;\n\t\telse \n\t\t\trig = mid;\n\t}\n\treturn tmp + lef - ll + 1;\n}\n\nextern \"C\"\nvoid getBatch(int *ph, int *pt, int *pr, int *nh, int *nt, int *nr, int batchSize, int id = 0) {\n\tfor (int batch = 0; batch < batchSize; batch++) {\n\t\tint i = rand_max(id, tripleTotal), j;\n\t\tfloat prob = 1000 * right_mean[trainList[i].r] / (right_mean[trainList[i].r] + left_mean[trainList[i].r]);\n\t\tif (randd(id) % 1000 < prob) {\n\t\t\tj = corrupt_head(id, trainList[i].h, trainList[i].r);\n\t\t\tph[batch] = trainList[i].h;\n\t\t\tpt[batch] = trainList[i].t;\n\t\t\tpr[batch] = trainList[i].r;\n\t\t\tnh[batch] = trainList[i].h;\n\t\t\tnt[batch] = j;\n\t\t\tnr[batch] = trainList[i].r;\n\t\t} else {\n\t\t\tj = corrupt_tail(id, trainList[i].t, trainList[i].r);\n\t\t\tph[batch] = trainList[i].h;\n\t\t\tpt[batch] = trainList[i].t;\n\t\t\tpr[batch] = trainList[i].r;\n\t\t\tnh[batch] = j;\n\t\t\tnt[batch] = trainList[i].t;\n\t\t\tnr[batch] = trainList[i].r;\n\t\t}\n\t}\n}"
  },
  {
    "path": "jointE/KATT/make.sh",
    "content": "g++ init.cpp -o init.so -fPIC -shared -pthread -O3 -march=native\n"
  },
  {
    "path": "jointE/KATT/network.py",
    "content": "import tensorflow as tf\nimport numpy as np\nimport tensorflow.contrib.slim as slim\n\nFLAGS = tf.app.flags.FLAGS\n\nclass NN(object):\n\n\tdef __init__(self, is_training, word_embeddings, simple_position = False):\n\t\tself.max_length = FLAGS.max_length\n\t\tself.num_classes = FLAGS.num_classes\n\t\tself.word_size = len(word_embeddings[0])\n\t\tself.hidden_size = FLAGS.hidden_size\n\t\tif FLAGS.model.lower() == \"cnn\":\n\t\t\tself.output_size = FLAGS.hidden_size\n\t\telif FLAGS.model.lower() == \"pcnn\":\n\t\t\tself.output_size = FLAGS.hidden_size * 3\n\t\telif FLAGS.model.lower() == \"lstm\":\n\t\t\tself.output_size = FLAGS.hidden_size\n\t\telif FLAGS.model.lower() == \"gru\":\n\t\t\tself.output_size = FLAGS.hidden_size\n\t\telif FLAGS.model.lower() == \"bi-lstm\" or FLAGS.model.lower() == \"bilstm\":\n\t\t\tself.output_size = FLAGS.hidden_size * 2\n\t\telif FLAGS.model.lower() == \"bi-gru\" or FLAGS.model.lower() == \"bigru\":\n\t\t\tself.output_size = FLAGS.hidden_size * 2\n\t\tself.margin = FLAGS.margin\n\t\t# placeholders for text models\n\t\tself.word = tf.placeholder(dtype=tf.int32,shape=[None, self.max_length], name='input_word')\n\t\tself.pos1 = tf.placeholder(dtype=tf.int32,shape=[None, self.max_length], name='input_pos1')\n\t\tself.pos2 = tf.placeholder(dtype=tf.int32,shape=[None, self.max_length], name='input_pos2')\n\t\tself.mask = tf.placeholder(dtype=tf.int32,shape=[None, self.max_length],name='input_mask')\n\t\tself.len = tf.placeholder(dtype=tf.int32,shape=[None],name='input_len')\n\t\tself.label_index = tf.placeholder(dtype=tf.int32,shape=[None], name='label_index')\n\t\tself.head_index = tf.placeholder(dtype=tf.int32,shape=[None], name='head_index')\n\t\tself.tail_index = tf.placeholder(dtype=tf.int32,shape=[None], name='tail_index')\n\t\tself.label = tf.placeholder(dtype=tf.float32,shape=[FLAGS.batch_size, self.num_classes], name='input_label')\n\t\tself.scope = tf.placeholder(dtype=tf.int32,shape=[FLAGS.batch_size+1], name='scope')\t\n\t\tself.keep_prob = tf.placeholder(dtype=tf.float32, name='keep_prob')\n\t\tself.weights = tf.placeholder(dtype=tf.float32,shape=[FLAGS.batch_size])\n\t\t# placeholders for kg models\n\t\tself.pos_h = tf.placeholder(tf.int32, [None])\n\t\tself.pos_t = tf.placeholder(tf.int32, [None])\n\t\tself.pos_r = tf.placeholder(tf.int32, [None])\n\t\tself.neg_h = tf.placeholder(tf.int32, [None])\n\t\tself.neg_t = tf.placeholder(tf.int32, [None])\n\t\tself.neg_r = tf.placeholder(tf.int32, [None])\n\n\t\twith tf.name_scope(\"embedding-layers\"):\n\t\t\t# word embeddings\n\t\t\ttemp_word_embedding = tf.get_variable(initializer=word_embeddings[FLAGS.ent_total:,:],name = 'temp_word_embedding',dtype=tf.float32)\n\t\t\tent_embedding = tf.get_variable(name = \"ent_embedding\",shape = [FLAGS.ent_total, self.word_size], initializer = tf.contrib.layers.xavier_initializer(uniform = False))\n\t\t\tunk_word_embedding = tf.get_variable('unk_embedding',[self.word_size], dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n\t\t\tself.word_embedding = tf.concat([\n\t\t\t\tent_embedding,\n\t\t\t\ttemp_word_embedding,\n\t\t\t\ttf.reshape(unk_word_embedding,[1, self.word_size]),\n\t\t\t\ttf.reshape(tf.constant(np.zeros(self.word_size, dtype=np.float32)),[1, self.word_size]) ],0)\n\t\t\tself.relation_matrix = tf.get_variable('relation_matrix',[self.num_classes, self.output_size],dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n\t\t\tself.bias = tf.get_variable('bias',[self.num_classes],dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n\t\t\t# position embeddings\n\t\t\tif simple_position:\n\t\t\t\ttemp_pos_array = np.zeros((FLAGS.pos_num + 1, FLAGS.pos_size), dtype=np.float32)\n\t\t\t\ttemp_pos_array[(FLAGS.pos_num - 1) / 2] = np.ones(FLAGS.pos_size, dtype=np.float32)\n\t\t\t\tself.pos1_embedding = tf.constant(temp_pos_array)\n\t\t\t\tself.pos2_embedding = tf.constant(temp_pos_array)\n\t\t\telse:\n\t\t\t\ttemp_pos1_embedding = tf.get_variable('temp_pos1_embedding',[FLAGS.pos_num,FLAGS.pos_size],dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n\t\t\t\ttemp_pos2_embedding = tf.get_variable('temp_pos2_embedding',[FLAGS.pos_num,FLAGS.pos_size],dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n\t\t\t\tself.pos1_embedding = tf.concat([temp_pos1_embedding,tf.reshape(tf.constant(np.zeros(FLAGS.pos_size,dtype=np.float32)),[1, FLAGS.pos_size])],0)\n\t\t\t\tself.pos2_embedding = tf.concat([temp_pos2_embedding,tf.reshape(tf.constant(np.zeros(FLAGS.pos_size,dtype=np.float32)),[1, FLAGS.pos_size])],0)\n\t\t\t# relation embeddings and the transfer matrix between relations and textual relations\n\t\t\tself.rel_embeddings = tf.get_variable(name = \"rel_embedding\", shape = [FLAGS.rel_total, self.word_size], initializer = tf.contrib.layers.xavier_initializer(uniform = False))\n\t\t\tself.transfer_matrix = tf.get_variable(\"transfer_matrix\", [self.output_size, self.word_size])\n\t\t\tself.transfer_bias = tf.get_variable('transfer_bias', [self.word_size], dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n\t\t\n\t\twith tf.name_scope(\"embedding-lookup\"):\n\t\t\t# textual embedding-lookup \n\t\t\tinput_word = tf.nn.embedding_lookup(self.word_embedding, self.word)\n\t\t\tinput_pos1 = tf.nn.embedding_lookup(self.pos1_embedding, self.pos1)\n\t\t\tinput_pos2 = tf.nn.embedding_lookup(self.pos2_embedding, self.pos2)\n\t\t\tself.input_embedding = tf.concat(values = [input_word, input_pos1, input_pos2], axis = 2)\n\t\t\t# knowledge embedding-lookup \n\t\t\tpos_h_e = tf.nn.embedding_lookup(self.word_embedding, self.pos_h)\n\t\t\tpos_t_e = tf.nn.embedding_lookup(self.word_embedding, self.pos_t)\n\t\t\tpos_r_e = tf.nn.embedding_lookup(self.rel_embeddings, self.pos_r)\n\t\t\tneg_h_e = tf.nn.embedding_lookup(self.word_embedding, self.neg_h)\n\t\t\tneg_t_e = tf.nn.embedding_lookup(self.word_embedding, self.neg_t)\n\t\t\tneg_r_e = tf.nn.embedding_lookup(self.rel_embeddings, self.neg_r)\n\n\t\twith tf.name_scope(\"knowledge_graph\"):\n\t\t\tpos = tf.reduce_sum(abs(pos_h_e + pos_r_e - pos_t_e), 1, keep_dims = True)\n\t\t\tneg = tf.reduce_sum(abs(neg_h_e + neg_r_e - neg_t_e), 1, keep_dims = True)\n\t\t\tself.loss_kg = tf.reduce_sum(tf.maximum(pos - neg + self.margin, 0))\n\n\tdef transfer(self, x):\n\t\tres = tf.nn.bias_add(tf.matmul(x, self.transfer_matrix), self.transfer_bias)\n\t\treturn res\n\n\tdef att(self, x, is_training = True, dropout = True):\n\t\twith tf.name_scope(\"sentence-level-attention\"):\n\t\t\tcurrent_attention = tf.nn.embedding_lookup(self.relation_matrix, self.label_index)\n\t\t\tattention_logit = tf.reduce_sum(current_attention * x, 1)\n\t\t\ttower_repre = []\n\t\t\tfor i in range(FLAGS.batch_size):\n\t\t\t\tsen_matrix = x[self.scope[i]:self.scope[i+1]]\n\t\t\t\tattention_score = tf.nn.softmax(tf.reshape(attention_logit[self.scope[i]:self.scope[i+1]], [1, -1]))\n\t\t\t\tfinal_repre = tf.reshape(tf.matmul(attention_score, sen_matrix),[self.output_size])\n\t\t\t\ttower_repre.append(final_repre)\n\t\t\tif dropout:\n\t\t\t\tstack_repre = tf.layers.dropout(tf.stack(tower_repre), rate = self.keep_prob, training = is_training)\n\t\t\telse:\n\t\t\t\tstack_repre = tf.stack(tower_repre)\n\t\treturn stack_repre\n\n\tdef katt(self, x, is_training = True, dropout = True):\n\t\twith tf.name_scope(\"knowledge-based-attention\"):\n\t\t\thead = tf.nn.embedding_lookup(self.word_embedding, self.head_index)\n\t\t\ttail = tf.nn.embedding_lookup(self.word_embedding, self.tail_index)\n\t\t\tkg_att = tail - head\n\t\t\tattention_logit = tf.reduce_sum(self.transfer(x) * kg_att, 1)\n\t\t\ttower_repre = []\n\t\t\tfor i in range(FLAGS.batch_size):\n\t\t\t\tsen_matrix = x[self.scope[i]:self.scope[i+1]]\n\t\t\t\tattention_score = tf.nn.softmax(tf.reshape(attention_logit[self.scope[i]:self.scope[i+1]], [1, -1]))\n\t\t\t\tfinal_repre = tf.reshape(tf.matmul(attention_score, sen_matrix),[self.output_size])\n\t\t\t\ttower_repre.append(final_repre)\n\t\t\tif dropout:\n\t\t\t\tstack_repre = tf.layers.dropout(tf.stack(tower_repre), rate = self.keep_prob, training = is_training)\n\t\t\telse:\n\t\t\t\tstack_repre = tf.stack(tower_repre)\n\t\treturn stack_repre\n\n\tdef att_test(self, x, is_training = False):\n\t\ttest_attention_logit = tf.matmul(x, tf.transpose(self.relation_matrix))\n\t\treturn test_attention_logit\n\n\tdef katt_test(self, x, is_training = False):\n\t\thead = tf.nn.embedding_lookup(self.word_embedding, self.head_index)\n\t\ttail = tf.nn.embedding_lookup(self.word_embedding, self.tail_index)\n\t\teach_att = tf.expand_dims(tail - head, -1)\n\t\tkg_att = tf.concat([each_att for i in range(self.num_classes)], 2)\n\t\tx = tf.reshape(self.transfer(x), [-1, 1, self.word_size])\n\t\ttest_attention_logit = tf.matmul(x, kg_att)\n\t\treturn tf.reshape(test_attention_logit, [-1, self.num_classes])\n\nclass CNN(NN):\n\n\tdef __init__(self, is_training, word_embeddings, simple_position = False):\n\t\tNN.__init__(self, is_training, word_embeddings, simple_position)\n\n\t\twith tf.name_scope(\"conv-maxpool\"):\n\t\t\tinput_sentence = tf.expand_dims(self.input_embedding, axis=1)\n\t\t\tx = tf.layers.conv2d(inputs = input_sentence, filters=FLAGS.hidden_size, kernel_size=[1,3], strides=[1, 1], padding='same', kernel_initializer=tf.contrib.layers.xavier_initializer_conv2d()) \n\t\t\tx = tf.reduce_max(x, axis=2)\n\t\t\tx = tf.nn.relu(tf.squeeze(x))\n\n\t\tif FLAGS.katt_flag != 0:\n\t\t\tstack_repre = self.katt(x, is_training)\n\t\telse:\n\t\t\tstack_repre = self.att(x, is_training)\n\n\t\twith tf.name_scope(\"loss\"):\n\t\t\tlogits = tf.matmul(stack_repre, tf.transpose(self.relation_matrix)) + self.bias\n\t\t\tself.loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=self.label,logits=logits))\n\t\t\tself.loss = tf.losses.softmax_cross_entropy(onehot_labels = self.label, logits = logits, weights = self.weights)\n\t\t\tself.output = tf.nn.softmax(logits)\n\t\t\ttf.summary.scalar('loss',self.loss)\n\t\t\tself.predictions = tf.argmax(logits, 1, name=\"predictions\")\n\t\t\tself.correct_predictions = tf.equal(self.predictions, tf.argmax(self.label, 1))\n\t\t\tself.accuracy = tf.reduce_mean(tf.cast(self.correct_predictions, \"float\"), name=\"accuracy\")\n\n\t\tif not is_training:\n\t\t\twith tf.name_scope(\"test\"):\n\t\t\t\tif FLAGS.katt_flag != 0:\n\t\t\t\t\ttest_attention_logit = self.katt_test(x)\n\t\t\t\telse:\n\t\t\t\t\ttest_attention_logit = self.att_test(x)\n\t\t\t\ttest_tower_output = []\n\t\t\t\tfor i in range(FLAGS.test_batch_size):\n\t\t\t\t\ttest_attention_score = tf.nn.softmax(tf.transpose(test_attention_logit[self.scope[i]:self.scope[i+1],:]))\n\t\t\t\t\tfinal_repre = tf.matmul(test_attention_score, x[self.scope[i]:self.scope[i+1]])\n\t\t\t\t\tlogits = tf.matmul(final_repre, tf.transpose(self.relation_matrix)) + self.bias\n\t\t\t\t\toutput = tf.diag_part(tf.nn.softmax(logits))\n\t\t\t\t\ttest_tower_output.append(output)\n\t\t\t\ttest_stack_output = tf.reshape(tf.stack(test_tower_output),[FLAGS.test_batch_size, self.num_classes])\n\t\t\t\tself.test_output = test_stack_output\n\n\nclass PCNN(NN):\n\n\tdef __init__(self, is_training, word_embeddings, simple_position = False):\n\t\tNN.__init__(self, is_training, word_embeddings, simple_position)\n\t\twith tf.name_scope(\"conv-maxpool\"):\n\t\t\tmask_embedding = tf.constant([[0,0,0],[1,0,0],[0,1,0],[0,0,1]], dtype=np.float32)\n\t\t\tpcnn_mask = tf.nn.embedding_lookup(mask_embedding, self.mask)\n\t\t\tinput_sentence = tf.expand_dims(self.input_embedding, axis=1)\n\t\t\tx = tf.layers.conv2d(inputs = input_sentence, filters=FLAGS.hidden_size, kernel_size=[1,3], strides=[1, 1], padding='same', kernel_initializer=tf.contrib.layers.xavier_initializer_conv2d())\n\t\t\tx = tf.reshape(x, [-1, self.max_length, FLAGS.hidden_size, 1])\n\t\t\tx = tf.reduce_max(tf.reshape(pcnn_mask, [-1, 1, self.max_length, 3]) * tf.transpose(x,[0, 2, 1, 3]), axis = 2)\n\t\t\tx = tf.nn.relu(tf.reshape(x,[-1, self.output_size]))\n\n\t\tif FLAGS.katt_flag != 0:\n\t\t\tstack_repre = self.katt(x, is_training)\n\t\telse:\n\t\t\tstack_repre = self.att(x, is_training)\n\n\t\twith tf.name_scope(\"loss\"):\n\t\t\tlogits = tf.matmul(stack_repre, tf.transpose(self.relation_matrix)) + self.bias\n\t\t\tself.loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=self.label,logits=logits))\n\t\t\tself.loss = tf.losses.softmax_cross_entropy(onehot_labels = self.label, logits = logits, weights = self.weights)\n\t\t\tself.output = tf.nn.softmax(logits)\n\t\t\ttf.summary.scalar('loss',self.loss)\n\t\t\tself.predictions = tf.argmax(logits, 1, name=\"predictions\")\n\t\t\tself.correct_predictions = tf.equal(self.predictions, tf.argmax(self.label, 1))\n\t\t\tself.accuracy = tf.reduce_mean(tf.cast(self.correct_predictions, \"float\"), name=\"accuracy\")\n\n\t\tif not is_training:\n\t\t\twith tf.name_scope(\"test\"):\n\t\t\t\tif FLAGS.katt_flag != 0:\n\t\t\t\t\ttest_attention_logit = self.katt_test(x)\n\t\t\t\telse:\n\t\t\t\t\ttest_attention_logit = self.att_test(x)\n\t\t\t\ttest_tower_output = []\n\t\t\t\tfor i in range(FLAGS.test_batch_size):\n\t\t\t\t\ttest_attention_score = tf.nn.softmax(tf.transpose(test_attention_logit[self.scope[i]:self.scope[i+1],:]))\n\t\t\t\t\tfinal_repre = tf.matmul(test_attention_score, x[self.scope[i]:self.scope[i+1]])\n\t\t\t\t\tlogits = tf.matmul(final_repre, tf.transpose(relation_matrix)) + bias\n\t\t\t\t\toutput = tf.diag_part(tf.nn.softmax(logits))\n\t\t\t\t\ttest_tower_output.append(output)\n\t\t\t\ttest_stack_output = tf.reshape(tf.stack(test_tower_output),[FLAGS.test_batch_size, self.num_classes])\n\t\t\t\tself.test_output = test_stack_output\n\nclass RNN(NN):\n\n\tdef get_rnn_cell(self, dim, cell_name = 'lstm'):\n\t\tif isinstance(cell_name,list) or isinstance(cell_name, tuple):\n\t\t\tif len(cell_name) == 1:\n\t\t\t\treturn get_rnn_cell(dim, cell_name[0])\n\t\t\tcells = [get_rnn_cell(dim, c) for c in cell_name]\n\t\t\treturn tf.contrib.rnn.MultiRNNCell(cells, state_is_tuple=True)\n\t\tif cell_name.lower() == 'lstm':\n\t\t\treturn tf.contrib.rnn.BasicLSTMCell(dim, state_is_tuple=True)\n\t\telif cell_name.lower() == 'gru':\n\t\t\treturn tf.contrib.rnn.GRUCell(dim)\n\t\traise NotImplementedError\n\n\tdef __init__(self, is_training, word_embeddings, cell_name, simple_position = False):\n\t\tNN.__init__(self, is_training, word_embeddings, simple_position)\n\t\tinput_sentence = tf.layers.dropout(self.input_embedding, rate = self.keep_prob, training = is_training)\n\t\twith tf.name_scope('rnn'):\n\t\t\tcell = self.get_rnn_cell(FLAGS.hidden_size, cell_name)\n\t\t\toutputs, states = tf.nn.dynamic_rnn(cell, input_sentence,\n\t\t\t\t\t\t\t\t\t\t\tsequence_length = self.len,\n\t\t\t\t\t\t\t\t\t\t\tdtype = tf.float32,\n\t\t\t\t\t\t\t\t\t\t\tscope = 'dynamic-rnn')\n\t\t\tif isinstance(states, tuple):\n\t\t\t\tstates = states[0]\n\t\t\tx = states\n\n\t\tif FLAGS.katt_flag != 0:\n\t\t\tstack_repre = self.katt(x, is_training, False)\n\t\telse:\n\t\t\tstack_repre = self.att(x, is_training, False)\n\n\t\twith tf.name_scope(\"loss\"):\n\t\t\tlogits = tf.matmul(stack_repre, tf.transpose(self.relation_matrix)) + self.bias\n\t\t\tself.loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=self.label,logits=logits))\n\t\t\tself.loss = tf.losses.softmax_cross_entropy(onehot_labels = self.label, logits = logits, weights = self.weights)\n\t\t\tself.output = tf.nn.softmax(logits)\n\t\t\ttf.summary.scalar('loss',self.loss)\n\t\t\tself.predictions = tf.argmax(logits, 1, name=\"predictions\")\n\t\t\tself.correct_predictions = tf.equal(self.predictions, tf.argmax(self.label, 1))\n\t\t\tself.accuracy = tf.reduce_mean(tf.cast(self.correct_predictions, \"float\"), name=\"accuracy\")\n\t\n\t\tif not is_training:\n\t\t\twith tf.name_scope(\"test\"):\n\t\t\t\tif FLAGS.katt_flag != 0:\n\t\t\t\t\ttest_attention_logit = self.katt_test(x)\n\t\t\t\telse:\n\t\t\t\t\ttest_attention_logit = self.att_test(x)\n\t\t\t\ttest_tower_output = []\n\t\t\t\tfor i in range(FLAGS.test_batch_size):\n\t\t\t\t\ttest_attention_score = tf.nn.softmax(tf.transpose(test_attention_logit[self.scope[i]:self.scope[i+1],:]))\n\t\t\t\t\tfinal_repre = tf.matmul(test_attention_score, x[self.scope[i]:self.scope[i+1]])\n\t\t\t\t\tlogits = tf.matmul(final_repre, tf.transpose(relation_matrix)) + bias\n\t\t\t\t\toutput = tf.diag_part(tf.nn.softmax(logits))\n\t\t\t\t\ttest_tower_output.append(output)\n\t\t\t\ttest_stack_output = tf.reshape(tf.stack(test_tower_output),[FLAGS.test_batch_size, self.num_classes])\n\t\t\t\tself.test_output = test_stack_output\n\nclass BiRNN(NN):\n\n\tdef get_rnn_cell(self, dim, cell_name = 'lstm'):\n\t\tif isinstance(cell_name,list) or isinstance(cell_name, tuple):\n\t\t\tif len(cell_name) == 1:\n\t\t\t\treturn get_rnn_cell(dim, cell_name[0])\n\t\t\tcells = [get_rnn_cell(dim, c) for c in cell_name]\n\t\t\treturn tf.contrib.rnn.MultiRNNCell(cells, state_is_tuple=True)\n\t\tif cell_name.lower() == 'lstm':\n\t\t\treturn tf.contrib.rnn.BasicLSTMCell(dim, state_is_tuple=True)\n\t\telif cell_name.lower() == 'gru':\n\t\t\treturn tf.contrib.rnn.GRUCell(dim)\n\t\traise NotImplementedError\n\n\tdef __init__(self, is_training, word_embeddings, cell_name, simple_position = False):\n\t\tNN.__init__(self, is_training, word_embeddings, simple_position)\n\t\tinput_sentence = tf.layers.dropout(self.input_embedding, rate = self.keep_prob, training = is_training)\n\t\twith tf.name_scope('bi-rnn'):\n\t\t\tfw_cell = self.get_rnn_cell(FLAGS.hidden_size, cell_name)\n\t\t\tbw_cell = self.get_rnn_cell(FLAGS.hidden_size, cell_name)\n\t\t\toutputs, states = tf.nn.bidirectional_dynamic_rnn(\n\t\t\t\t\t\t\tfw_cell, bw_cell, input_sentence,\n\t\t\t\t\t\t\tsequence_length = self.len,\n\t\t\t\t\t\t\tdtype = tf.float32,\n\t\t\t\t\t\t\tscope = 'bi-dynamic-rnn')\n\t\t\tfw_states, bw_states = states\n\t\t\tif isinstance(fw_states, tuple):\n\t\t\t\tfw_states = fw_states[0]\n\t\t\t\tbw_states = bw_states[0]\n\t\t\tx = tf.concat(states, axis=1)\n\n\t\tif FLAGS.katt_flag != 0:\n\t\t\tstack_repre = self.katt(x, is_training, False)\n\t\telse:\n\t\t\tstack_repre = self.att(x, is_training, False)\n\n\t\twith tf.name_scope(\"loss\"):\n\t\t\tlogits = tf.matmul(stack_repre, tf.transpose(self.relation_matrix)) + self.bias\n\t\t\tself.loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=self.label,logits=logits))\n\t\t\tself.loss = tf.losses.softmax_cross_entropy(onehot_labels = self.label, logits = logits, weights = self.weights)\n\t\t\tself.output = tf.nn.softmax(logits)\n\t\t\ttf.summary.scalar('loss',self.loss)\n\t\t\tself.predictions = tf.argmax(logits, 1, name=\"predictions\")\n\t\t\tself.correct_predictions = tf.equal(self.predictions, tf.argmax(self.label, 1))\n\t\t\tself.accuracy = tf.reduce_mean(tf.cast(self.correct_predictions, \"float\"), name=\"accuracy\")\n\t\n\t\tif not is_training:\n\t\t\twith tf.name_scope(\"test\"):\n\t\t\t\tif FLAGS.katt_flag != 0:\n\t\t\t\t\ttest_attention_logit = self.katt_test(x)\n\t\t\t\telse:\n\t\t\t\t\ttest_attention_logit = self.att_test(x)\n\t\t\t\ttest_tower_output = []\n\t\t\t\tfor i in range(FLAGS.test_batch_size):\n\t\t\t\t\ttest_attention_score = tf.nn.softmax(tf.transpose(test_attention_logit[self.scope[i]:self.scope[i+1],:]))\n\t\t\t\t\tfinal_repre = tf.matmul(test_attention_score, x[self.scope[i]:self.scope[i+1]])\n\t\t\t\t\tlogits = tf.matmul(final_repre, tf.transpose(relation_matrix)) + bias\n\t\t\t\t\toutput = tf.diag_part(tf.nn.softmax(logits))\n\t\t\t\t\ttest_tower_output.append(output)\n\t\t\t\ttest_stack_output = tf.reshape(tf.stack(test_tower_output),[FLAGS.test_batch_size, self.num_classes])\n\t\t\t\tself.test_output = test_stack_output\n\n"
  },
  {
    "path": "jointE/KATT/pr_plot.py",
    "content": "import os\nimport numpy as np\nfrom sklearn.metrics import precision_recall_curve\nfrom sklearn.metrics import average_precision_score\nimport matplotlib\nmatplotlib.use('Agg')\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport sys\n\nfrom matplotlib.backends.backend_pdf import PdfPages\n\n\nff = plt.figure()\n\nMODEL = 'cnn'\n\ndef guolv(recall, precision):\n    a = [recall[0]]\n    b = [precision[0]]\n    print len(recall)\n    for i in range(1, len(recall)):\n        if a[len(a) - 1] == recall[i]:\n            if precision[i] > b[len(b)-1]:\n                b[len(b)-1] = precision[i]\n        else:\n            a.append(recall[i])\n            b.append(precision[i])\n            \n    recall = np.array(a)\n    precision = np.array(b)\n    xnew = np.linspace(recall.min(),recall.max(), 500) #300 represents number of points to make between T.min and T.max  \n    print recall\n    print precision\n    power_smooth = spline(recall,precision,xnew)  \n    return xnew, power_smooth\n\ndef PrecisionAtRecall(pAll, rAll, rMark):\n    length = len(rAll)\n    lo = 0\n    hi = length - 1\n    mark = length >> 1\n    error = rMark - rAll[mark]\n    while np.abs(error) > 0.005:\n        if error > 0:\n            hi = mark - 1\n        else:\n            lo = mark + 1\n        mark = (hi + lo) >> 1\n        error = rMark - rAll[mark]\n    return pAll[mark], rAll[mark], mark\n\n\ncolor = ['red', 'turquoise', 'darkorange', 'cornflowerblue', 'teal']\n\ntest_model = ['cnn'+'+sen_att']\ntest_epoch = ['9']\navg_pres = []\nfor temp, (model, step) in enumerate(zip(test_model, test_epoch)):\n    y_scores = np.load(model+'_all_prob' + '_' + step + '.npy')\n    y_true = np.load(model+'_all_label' + '_' + step + '.npy')\n    y_scores = np.reshape(y_scores,(-1))\n    y_true = np.reshape(y_true,(-1))\n    precision,recall,threshold = precision_recall_curve(y_true,y_scores)\n    p,r,i = PrecisionAtRecall(precision, recall, 0.1)\n    print('precison: {}, recall: {}'.format(p, r))\n    p,r,i = PrecisionAtRecall(precision, recall, 0.2)\n    print('precison: {}, recall: {}'.format(p, r))\n    p,r,i = PrecisionAtRecall(precision, recall, 0.3)\n    print('precison: {}, recall: {}'.format(p, r))\n    average_precision = average_precision_score(y_true, y_scores)\n    avg_pres.append(average_precision)\n    recall = recall[::-1]\n    precision = precision[::-1]\n    plt.plot(recall[:], precision[:], lw=2, color=color[1],label=\"CNN+ATT\")\n\nlines_cnn = open('cnn.txt').readlines()\nlines_cnn = [t.strip().split()[:2] for t in lines_cnn]\nprecision_cnn = np.array([t[0] for t in lines_cnn], dtype=np.float32)\nrecall_cnn = np.array([t[1] for t in lines_cnn], dtype=np.float32)\nplt.plot(recall_cnn, precision_cnn, lw=2, color=color[-1], label=\"CNN+ATT\") \n\n\nplt.xlabel('Recall')\nplt.ylabel('Precision')\nplt.ylim([0.3, 1.0])\nplt.xlim([0.0, 0.4])\nplt.title('Precision-Recall Area={0:0.4f}'.format(avg_pres[-1]))\nplt.legend(loc=\"upper right\")\nplt.grid(True)\nplt.savefig('sgd_'+MODEL)\nplt.plot(range(10), range(10), \"o\")\nplt.show()\nff.savefig(\"pr.pdf\", bbox_inches='tight')\n"
  },
  {
    "path": "jointE/KATT/test.py",
    "content": "import tensorflow as tf\nimport numpy as np\nimport time\nimport datetime\nimport os\nimport network\nimport json\nimport sys\nfrom sklearn.metrics import average_precision_score\nimport ctypes\n\nexport_path = \"../data/\"\n\nword_vec = np.load(export_path + 'vec.npy')\nf = open(export_path + \"config\", 'r')\nconfig = json.loads(f.read())\nf.close()\n\nll = ctypes.cdll.LoadLibrary   \nlib = ll(\"./init.so\")\nlib.setInPath(\"../data/\")\nlib.init()\n\nFLAGS = tf.app.flags.FLAGS\n\ntf.app.flags.DEFINE_integer('nbatch_kg',100,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('margin',1.0,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('learning_rate_kg',0.001,'learning rate for kg')\ntf.app.flags.DEFINE_integer('ent_total',lib.getEntityTotal(),'total of entities')\ntf.app.flags.DEFINE_integer('rel_total',lib.getRelationTotal(),'total of relations')\ntf.app.flags.DEFINE_integer('tri_total',lib.getTripleTotal(),'total of triples')\ntf.app.flags.DEFINE_integer('katt_flag', 1, '1 for katt, 0 for att')\n\ntf.app.flags.DEFINE_string('model', 'cnn', 'neural models to encode sentences')\ntf.app.flags.DEFINE_integer('max_length',config['fixlen'],'maximum of number of words in one sentence')\ntf.app.flags.DEFINE_integer('pos_num', config['maxlen'] * 2 + 1,'number of position embedding vectors')\ntf.app.flags.DEFINE_integer('num_classes', config['textual_rel_total'],'maximum of relations')\n\ntf.app.flags.DEFINE_integer('hidden_size',230,'hidden feature size')\ntf.app.flags.DEFINE_integer('pos_size',5,'position embedding size')\n\ntf.app.flags.DEFINE_integer('max_epoch',30,'maximum of training epochs')\ntf.app.flags.DEFINE_integer('batch_size',131*2,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('learning_rate',0.1,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('weight_decay',0.00001,'weight_decay')\ntf.app.flags.DEFINE_float('keep_prob',1.0,'dropout rate')\n\ntf.app.flags.DEFINE_integer('test_batch_size',131*2,'entity numbers used each test time')\ntf.app.flags.DEFINE_string('checkpoint_path','./model/','path to store model')\n\n\ndef make_shape(array,last_dim):\n\toutput = []\n\tfor i in array:\n\t\tfor j in i:\n\t\t\toutput.append(j)\n\toutput = np.array(output)\n\tif np.shape(output)[-1]==last_dim:\n\t\treturn output\n\n\telse:\n\t\tprint 'Make Shape Error!'\n\ndef main(_):\n\n\tprint 'reading word embedding'\n\tword_vec = np.load(export_path + 'vec.npy')\n\tprint 'reading test data'\n\ttest_instance_triple = np.load(export_path + 'test_instance_triple.npy')\n\ttest_instance_scope = np.load(export_path + 'test_instance_scope.npy')\n\ttest_len = np.load(export_path + 'test_len.npy')\n\ttest_label = np.load(export_path + 'test_label.npy')\n\ttest_word = np.load(export_path + 'test_word.npy')\n\ttest_pos1 = np.load(export_path + 'test_pos1.npy')\n\ttest_pos2 = np.load(export_path + 'test_pos2.npy')\n\ttest_mask = np.load(export_path + 'test_mask.npy')\n\ttest_head = np.load(export_path + 'test_head.npy')\n\ttest_tail = np.load(export_path + 'test_tail.npy')\n\tprint 'reading finished'\n\tprint 'mentions \t\t: %d' % (len(test_instance_triple))\n\tprint 'sentences\t\t: %d' % (len(test_len))\n\tprint 'relations\t\t: %d' % (FLAGS.num_classes)\n\tprint 'word size\t\t: %d' % (len(word_vec[0]))\n\tprint 'position size \t: %d' % (FLAGS.pos_size)\n\tprint 'hidden size\t\t: %d' % (FLAGS.hidden_size)\n\tprint 'reading finished'\n\n\tprint 'building network...'\n\tsess = tf.Session()\n\tif FLAGS.model.lower() == \"cnn\":\n\t\tmodel = network.CNN(is_training = False, word_embeddings = word_vec)\n\telif FLAGS.model.lower() == \"pcnn\":\n\t\tmodel = network.PCNN(is_training = False, word_embeddings = word_vec)\n\telif FLAGS.model.lower() == \"lstm\":\n\t\tmodel = network.RNN(is_training = False, word_embeddings = word_vec, cell_name = \"LSTM\", simple_position = True)\n\telif FLAGS.model.lower() == \"gru\":\n\t\tmodel = network.RNN(is_training = False, word_embeddings = word_vec, cell_name = \"GRU\", simple_position = True)\n\telif FLAGS.model.lower() == \"bi-lstm\" or FLAGS.model.lower() == \"bilstm\":\n\t\tmodel = network.BiRNN(is_training = False, word_embeddings = word_vec, cell_name = \"LSTM\", simple_position = True)\n\telif FLAGS.model.lower() == \"bi-gru\" or FLAGS.model.lower() == \"bigru\":\n\t\tmodel = network.BiRNN(is_training = False, word_embeddings = word_vec, cell_name = \"GRU\", simple_position = True)\n\tsess.run(tf.global_variables_initializer())\n\tsaver = tf.train.Saver()\n\n\tdef test_step(head, tail, word, pos1, pos2, mask, leng, label_index, label, scope):\n\t\tfeed_dict = {\n\t\t\tmodel.head_index: head,\n\t\t\tmodel.tail_index: tail,\n\t\t\tmodel.word: word,\n\t\t\tmodel.pos1: pos1,\n\t\t\tmodel.pos2: pos2,\n\t\t\tmodel.mask: mask,\n\t\t\tmodel.len : leng,\n\t\t\tmodel.label_index: label_index,\n\t\t\tmodel.label: label,\n\t\t\tmodel.scope: scope,\n\t\t\tmodel.keep_prob: FLAGS.keep_prob\n\t\t}\n\t\toutput = sess.run(model.test_output, feed_dict)\n\t\treturn output\n\n\tf = open('results.txt','w')\n\tf.write('iteration\\taverage precision\\n')\n\tfor iters in range(1,30):\n\t\tprint iters\n\t\tsaver.restore(sess, FLAGS.checkpoint_path + FLAGS.model+str(FLAGS.katt_flag)+\"-\"+str(3664*iters))\n\n\t\tstack_output = []\n\t\tstack_label = []\n\t\t\n\t\titeration = len(test_instance_scope)/FLAGS.test_batch_size\n\t\tfor i in range(iteration):\n\t\t\ttemp_str= 'running '+str(i)+'/'+str(iteration)+'...'\n\t\t\tsys.stdout.write(temp_str+'\\r')\n\t\t\tsys.stdout.flush()\n\t\t\tinput_scope = test_instance_scope[i * FLAGS.test_batch_size:(i+1)*FLAGS.test_batch_size]\n\t\t\tindex = []\n\t\t\tscope = [0]\n\t\t\tlabel = []\n\t\t\tfor num in input_scope:\n\t\t\t\tindex = index + range(num[0], num[1] + 1)\n\t\t\t\tlabel.append(test_label[num[0]])\n\t\t\t\tscope.append(scope[len(scope)-1] + num[1] - num[0] + 1)\n\t\t\tlabel_ = np.zeros((FLAGS.test_batch_size, FLAGS.num_classes))\n\t\t\tlabel_[np.arange(FLAGS.test_batch_size), label] = 1\n\t\t\toutput = test_step(test_head[index], test_tail[index], test_word[index,:], test_pos1[index,:], test_pos2[index,:], test_mask[index,:], test_len[index], test_label[index], label_, np.array(scope))\n\t\t\tstack_output.append(output)\n\t\t\tstack_label.append(label_)\n\t\t\t\n\t\tprint 'evaluating...'\n\n\t\tstack_output = np.concatenate(stack_output, axis=0)\n\t\tstack_label = np.concatenate(stack_label, axis = 0)\n\n\t\texclude_na_flatten_output = stack_output[:,1:]\n\t\texclude_na_flatten_label = stack_label[:,1:]\n\t\tprint exclude_na_flatten_output.shape\n\t\tprint exclude_na_flatten_label.shape\n\n\t\taverage_precision = average_precision_score(exclude_na_flatten_label,exclude_na_flatten_output, average = \"micro\")\n\n\t\tnp.save('./'+FLAGS.model+'+sen_att_all_prob_'+str(iters)+'.npy', exclude_na_flatten_output)\n\t\tnp.save('./'+FLAGS.model+'+sen_att_all_label_'+str(iters)+'.npy',exclude_na_flatten_label)\n\n\t\tprint 'pr: '+str(average_precision)\n\t\tf.write(str(average_precision)+'\\n')\n\tf.close()\n\nif __name__ == \"__main__\":\n\ttf.app.run()\n"
  },
  {
    "path": "jointE/KATT/train.py",
    "content": "import tensorflow as tf\nimport numpy as np\nimport time\nimport datetime\nimport os\nimport network\nimport json\nfrom sklearn.metrics import average_precision_score\nimport sys\nimport ctypes\nimport threading\n\nexport_path = \"../data/\"\n\nword_vec = np.load(export_path + 'vec.npy')\nf = open(export_path + \"config\", 'r')\nconfig = json.loads(f.read())\nf.close()\n\nll = ctypes.cdll.LoadLibrary   \nlib = ll(\"./init.so\")\nlib.setInPath(\"../data/\")\nlib.init()\n\nFLAGS = tf.app.flags.FLAGS\n\ntf.app.flags.DEFINE_float('nbatch_kg',100,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('margin',1.0,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('learning_rate_kg',0.001,'learning rate for kg')\ntf.app.flags.DEFINE_integer('ent_total',lib.getEntityTotal(),'total of entities')\ntf.app.flags.DEFINE_integer('rel_total',lib.getRelationTotal(),'total of relations')\ntf.app.flags.DEFINE_integer('tri_total',lib.getTripleTotal(),'total of triples')\ntf.app.flags.DEFINE_integer('katt_flag', 1, '1 for katt, 0 for att')\n\ntf.app.flags.DEFINE_string('model', 'cnn', 'neural models to encode sentences')\ntf.app.flags.DEFINE_integer('max_length',config['fixlen'],'maximum of number of words in one sentence')\ntf.app.flags.DEFINE_integer('pos_num', config['maxlen'] * 2 + 1,'number of position embedding vectors')\ntf.app.flags.DEFINE_integer('num_classes', config['textual_rel_total'],'maximum of relations')\n\ntf.app.flags.DEFINE_integer('hidden_size',230,'hidden feature size')\ntf.app.flags.DEFINE_integer('pos_size',5,'position embedding size')\n\ntf.app.flags.DEFINE_integer('max_epoch',20,'maximum of training epochs')\ntf.app.flags.DEFINE_integer('batch_size',160,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('learning_rate',0.5,'learning rate for nn')\ntf.app.flags.DEFINE_float('weight_decay',0.00001,'weight_decay')\ntf.app.flags.DEFINE_float('keep_prob',0.5,'dropout rate')\n\ntf.app.flags.DEFINE_string('model_dir','./model/','path to store model')\ntf.app.flags.DEFINE_string('summary_dir','./summary','path to store summary_dir')\n\n\ndef MakeSummary(name, value):\n\t\"\"\"Creates a tf.Summary proto with the given name and value.\"\"\"\n\tsummary = tf.Summary()\n\tval = summary.value.add()\n\tval.tag = str(name)\n\tval.simple_value = float(value)\n\treturn summary\n\ndef make_shape(array,last_dim):\n\toutput = []\n\tfor i in array:\n\t\tfor j in i:\n\t\t\toutput.append(j)\n\toutput = np.array(output)\n\tif np.shape(output)[-1]==last_dim:\n\t\treturn output\n\telse:\n\t\tprint 'Make Shape Error!'\n\ndef main(_):\n\n\tprint 'reading word embedding'\n\tword_vec = np.load(export_path + 'vec.npy')\n\tprint 'reading training data'\n\t\n\tinstance_triple = np.load(export_path + 'train_instance_triple.npy')\n\tinstance_scope = np.load(export_path + 'train_instance_scope.npy')\n\ttrain_len = np.load(export_path + 'train_len.npy')\n\ttrain_label = np.load(export_path + 'train_label.npy')\n\ttrain_word = np.load(export_path + 'train_word.npy')\n\ttrain_pos1 = np.load(export_path + 'train_pos1.npy')\n\ttrain_pos2 = np.load(export_path + 'train_pos2.npy')\n\ttrain_mask = np.load(export_path + 'train_mask.npy')\n\ttrain_head = np.load(export_path + 'train_head.npy')\n\ttrain_tail = np.load(export_path + 'train_tail.npy')\n\n\tprint 'reading finished'\n\tprint 'mentions \t\t: %d' % (len(instance_triple))\n\tprint 'sentences\t\t: %d' % (len(train_len))\n\tprint 'relations\t\t: %d' % (FLAGS.num_classes)\n\tprint 'word size\t\t: %d' % (len(word_vec[0]))\n\tprint 'position size \t: %d' % (FLAGS.pos_size)\n\tprint 'hidden size\t\t: %d' % (FLAGS.hidden_size)\n\treltot = {}\n\tfor index, i in enumerate(train_label):\n\t\tif not i in reltot:\n\t\t\treltot[i] = 1.0\n\t\telse:\n\t\t\treltot[i] += 1.0\n\tfor i in reltot:\n\t\treltot[i] = 1/(reltot[i] ** (0.05)) \n\tprint 'building network...'\n\tsess = tf.Session()\n\tif FLAGS.model.lower() == \"cnn\":\n\t\tmodel = network.CNN(is_training = True, word_embeddings = word_vec)\n\telif FLAGS.model.lower() == \"pcnn\":\n\t\tmodel = network.PCNN(is_training = True, word_embeddings = word_vec)\n\telif FLAGS.model.lower() == \"lstm\":\n\t\tmodel = network.RNN(is_training = True, word_embeddings = word_vec, cell_name = \"LSTM\", simple_position = True)\n\telif FLAGS.model.lower() == \"gru\":\n\t\tmodel = network.RNN(is_training = True, word_embeddings = word_vec, cell_name = \"GRU\", simple_position = True)\n\telif FLAGS.model.lower() == \"bi-lstm\" or FLAGS.model.lower() == \"bilstm\":\n\t\tmodel = network.BiRNN(is_training = True, word_embeddings = word_vec, cell_name = \"LSTM\", simple_position = True)\n\telif FLAGS.model.lower() == \"bi-gru\" or FLAGS.model.lower() == \"bigru\":\n\t\tmodel = network.BiRNN(is_training = True, word_embeddings = word_vec, cell_name = \"GRU\", simple_position = True)\n\t\n\tglobal_step = tf.Variable(0,name='global_step',trainable=False)\n\tglobal_step_kg = tf.Variable(0,name='global_step_kg',trainable=False)\n\ttf.summary.scalar('learning_rate', FLAGS.learning_rate)\n\ttf.summary.scalar('learning_rate_kg', FLAGS.learning_rate_kg)\n\n\toptimizer = tf.train.GradientDescentOptimizer(FLAGS.learning_rate)\n\tgrads_and_vars = optimizer.compute_gradients(model.loss)\n\ttrain_op = optimizer.apply_gradients(grads_and_vars, global_step = global_step)\n\n\toptimizer_kg = tf.train.GradientDescentOptimizer(FLAGS.learning_rate_kg)\n\tgrads_and_vars_kg = optimizer_kg.compute_gradients(model.loss_kg)\n\ttrain_op_kg = optimizer_kg.apply_gradients(grads_and_vars_kg, global_step = global_step_kg)\n\n\tmerged_summary = tf.summary.merge_all()\n\tsummary_writer = tf.summary.FileWriter(FLAGS.summary_dir, sess.graph)\n\tsess.run(tf.global_variables_initializer())\n\tsaver = tf.train.Saver(max_to_keep=None)\n\tprint 'building finished'\n\n\tdef train_kg(coord):\n\t\tdef train_step_kg(pos_h_batch, pos_t_batch, pos_r_batch, neg_h_batch, neg_t_batch, neg_r_batch):\n\t\t\tfeed_dict = {\n\t\t\t\tmodel.pos_h: pos_h_batch,\n\t\t\t\tmodel.pos_t: pos_t_batch,\n\t\t\t\tmodel.pos_r: pos_r_batch,\n\t\t\t\tmodel.neg_h: neg_h_batch,\n\t\t\t\tmodel.neg_t: neg_t_batch,\n\t\t\t\tmodel.neg_r: neg_r_batch\n\t\t\t}\n\t\t\t_, step, loss = sess.run(\n\t\t\t\t[train_op_kg, global_step_kg, model.loss_kg], feed_dict)\n\t\t\treturn loss\n\n\t\tbatch_size = (FLAGS.ent_total / FLAGS.nbatch_kg)\n\t\tph = np.zeros(batch_size, dtype = np.int32)\n\t\tpt = np.zeros(batch_size, dtype = np.int32)\n\t\tpr = np.zeros(batch_size, dtype = np.int32)\n\t\tnh = np.zeros(batch_size, dtype = np.int32)\n\t\tnt = np.zeros(batch_size, dtype = np.int32)\n\t\tnr = np.zeros(batch_size, dtype = np.int32)\n\t\tph_addr = ph.__array_interface__['data'][0]\n\t\tpt_addr = pt.__array_interface__['data'][0]\n\t\tpr_addr = pr.__array_interface__['data'][0]\n\t\tnh_addr = nh.__array_interface__['data'][0]\n\t\tnt_addr = nt.__array_interface__['data'][0]\n\t\tnr_addr = nr.__array_interface__['data'][0]\n\t\tlib.getBatch.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int]\n\t\ttimes_kg = 0\n\t\twhile not coord.should_stop():\n\t\t\ttimes_kg += 1\n\t\t\tres = 0.0\n\t\t\tfor batch in range(FLAGS.nbatch_kg):\n\t\t\t\tlib.getBatch(ph_addr, pt_addr, pr_addr, nh_addr, nt_addr, nr_addr, batch_size)\n\t\t\t\tres += train_step_kg(ph, pt, pr, nh, nt, nr)\n\t\t\ttime_str = datetime.datetime.now().isoformat()\n\t\t\tprint \"batch %d time %s | loss : %f\" % (times_kg, time_str, res)\n\n\n\tdef train_nn(coord):\n\t\tdef train_step(head, tail, word, pos1, pos2, mask, leng, label_index, label, scope, weights):\n\t\t\tfeed_dict = {\n\t\t\t\tmodel.head_index: head,\n\t\t\t\tmodel.tail_index: tail,\n\t\t\t\tmodel.word: word,\n\t\t\t\tmodel.pos1: pos1,\n\t\t\t\tmodel.pos2: pos2,\n\t\t\t\tmodel.mask: mask,\n\t\t\t\tmodel.len : leng,\n\t\t\t\tmodel.label_index: label_index,\n\t\t\t\tmodel.label: label,\n\t\t\t\tmodel.scope: scope,\n\t\t\t\tmodel.keep_prob: FLAGS.keep_prob,\n\t\t\t\tmodel.weights: weights\n\t\t\t}\n\t\t\t_, step, loss, summary, output, correct_predictions = sess.run([train_op, global_step, model.loss, merged_summary, model.output, model.correct_predictions], feed_dict)\n\t\t\tsummary_writer.add_summary(summary, step)\n\t\t\treturn output, loss, correct_predictions\n\n\t\tstack_output = []\n\t\tstack_label = []\n\t\tstack_ce_loss = []\n\n\t\ttrain_order = range(len(instance_triple))\n\n\t\tsave_epoch = 2\n\t\teval_step = 300\n\n\t\tfor one_epoch in range(FLAGS.max_epoch):\n\n\t\t\tprint('epoch '+str(one_epoch+1)+' starts!')\n\t\t\tnp.random.shuffle(train_order)\n\t\t\ts1 = 0.0\n\t\t\ts2 = 0.0\n\t\t\ttot1 = 0.0\n\t\t\ttot2 = 0.0\n\t\t\tlosstot = 0.0\n\t\t\tfor i in range(int(len(train_order)/float(FLAGS.batch_size))):\n\t\t\t\tinput_scope = np.take(instance_scope, train_order[i * FLAGS.batch_size:(i+1)*FLAGS.batch_size], axis=0)\n\t\t\t\tindex = []\n\t\t\t\tscope = [0]\n\t\t\t\tlabel = []\n\t\t\t\tweights = []\n\t\t\t\tfor num in input_scope:\n\t\t\t\t\tindex = index + range(num[0], num[1] + 1)\n\t\t\t\t\tlabel.append(train_label[num[0]])\n\t\t\t\t\tif train_label[num[0]] > 53:\n\t\t\t\t\t\tprint train_label[num[0]]\n\t\t\t\t\tscope.append(scope[len(scope)-1] + num[1] - num[0] + 1)\n\t\t\t\t\tweights.append(reltot[train_label[num[0]]])\n\t\t\t\tlabel_ = np.zeros((FLAGS.batch_size, FLAGS.num_classes))\n\t\t\t\tlabel_[np.arange(FLAGS.batch_size), label] = 1\n\t\t\t\toutput, loss, correct_predictions = train_step(train_head[index], train_tail[index], train_word[index,:], train_pos1[index,:], train_pos2[index,:], train_mask[index,:], train_len[index],train_label[index], label_, np.array(scope), weights)\n\t\t\t\tnum = 0\n\t\t\t\ts = 0\n\t\t\t\tlosstot += loss\n\t\t\t\tfor num in correct_predictions:\n\t\t\t\t\tif label[s] == 0:\n\t\t\t\t\t\ttot1 += 1.0\n\t\t\t\t\t\tif num:\n\t\t\t\t\t\t\ts1+= 1.0\n\t\t\t\t\telse:\n\t\t\t\t\t\ttot2 += 1.0\n\t\t\t\t\t\tif num:\n\t\t\t\t\t\t\ts2 += 1.0\n\t\t\t\t\ts = s + 1\n\n\t\t\t\ttime_str = datetime.datetime.now().isoformat()\n\t\t\t\tprint \"batch %d step %d time %s | loss : %f, NA accuracy: %f, not NA accuracy: %f\" % (one_epoch, i, time_str, loss, s1 / tot1, s2 / tot2)\n\t\t\t\tcurrent_step = tf.train.global_step(sess, global_step)\n\n\t\t\tif (one_epoch + 1) % save_epoch == 0:\n\t\t\t\tprint 'epoch '+str(one_epoch+1)+' has finished'\n\t\t\t\tprint 'saving model...'\n\t\t\t\tpath = saver.save(sess,FLAGS.model_dir+FLAGS.model+str(FLAGS.katt_flag), global_step=current_step)\n\t\t\t\tprint 'have savde model to '+path\n\n\t\tcoord.request_stop()\n\n\n\tcoord = tf.train.Coordinator()\n\tthreads = []\n\tthreads.append(threading.Thread(target=train_kg, args=(coord,)))\n\tthreads.append(threading.Thread(target=train_nn, args=(coord,)))\n\tfor t in threads: t.start()\n\tcoord.join(threads)\n\nif __name__ == \"__main__\":\n\ttf.app.run() \n"
  },
  {
    "path": "jointE/SATT/cnn.txt",
    "content": "0.000000\t0.000000\t0.995880\tmaryland\tkensington\t/location/location/contains\n0.500000\t0.000513\t0.994287\tvinod_khosla\tsun_microsystems\t/business/person/company\n0.666667\t0.001026\t0.993049\tcalifornia\tmill_valley\t/location/location/contains\n0.750000\t0.001538\t0.992666\tlaure_manaudou\tfrance\t/people/person/nationality\n0.800000\t0.002051\t0.991946\teric_e._schmidt\tgoogle\t/business/person/company\n0.833333\t0.002564\t0.991272\tpier_paolo_pasolini\titaly\t/people/person/nationality\n0.857143\t0.003077\t0.991046\tflorida\tjacksonville_beach\t/location/location/contains\n0.875000\t0.003590\t0.990915\tmaryland\tannapolis\t/location/location/contains\n0.888889\t0.004103\t0.989325\talaska\tchena_hot_springs\t/location/location/contains\n0.800000\t0.004103\t0.988933\tanna_chakvetadze\trussia\t/people/person/nationality\n0.818182\t0.004615\t0.988582\tfilippo_magnini\titaly\t/people/person/nationality\n0.750000\t0.004615\t0.988186\tjonathan_rosenberg\tgoogle\t/business/person/company\n0.692308\t0.004615\t0.988147\trajeev_motwani\tgoogle\t/business/person/company\n0.714286\t0.005128\t0.987757\tmarkus_zusak\taustralia\t/people/person/nationality\n0.733333\t0.005641\t0.987335\toklahoma\tmcalester\t/location/location/contains\n0.750000\t0.006154\t0.986457\twestchester_county\tpocantico_hills\t/location/location/contains\n0.764706\t0.006667\t0.986183\tjeffrey_r._immelt\tgeneral_electric\t/business/person/company\n0.777778\t0.007179\t0.986032\tflorida\tbal_harbour\t/location/location/contains\n0.789474\t0.007692\t0.985603\twestchester_county\tgreenburgh\t/location/location/contains\n0.800000\t0.008205\t0.985258\tdavid_eun\tgoogle\t/business/person/company\n0.809524\t0.008718\t0.984771\tcalifornia\tsonoma_county\t/location/location/contains\n0.818182\t0.009231\t0.984614\tlibby_lenton\taustralia\t/people/person/nationality\n0.826087\t0.009744\t0.984579\tmarius_trésor\tfrance\t/people/person/nationality\n0.791667\t0.009744\t0.983953\ttathiana_garbin\titaly\t/people/person/nationality\n0.800000\t0.010256\t0.983902\tcalifornia\tnapa\t/location/location/contains\n0.807692\t0.010769\t0.983871\tflorida\tgulf_stream\t/location/location/contains\n0.814815\t0.011282\t0.983634\tflorent_serra\tfrance\t/people/person/nationality\n0.821429\t0.011795\t0.983324\tjohn_l._hennessy\tstanford_university\t/business/person/company\n0.827586\t0.012308\t0.983282\tstephen_harper\tcanada\t/people/person/nationality\n0.833333\t0.012821\t0.983228\tmarissa_mayer\tgoogle\t/business/person/company\n0.838710\t0.013333\t0.983181\tconnecticut\tguilford\t/location/location/contains\n0.843750\t0.013846\t0.982989\titaly\tmaranello\t/location/location/contains\n0.818182\t0.013846\t0.982911\tontario\tfort_erie\t/location/location/contains\n0.794118\t0.013846\t0.982526\tflorida\trotonda\t/location/location/contains\n0.800000\t0.014359\t0.982010\tdenise_karbon\titaly\t/people/person/nationality\n0.777778\t0.014359\t0.981817\tontario\tnanticoke\t/location/location/contains\n0.783784\t0.014872\t0.981697\tstein_eriksen\tnorway\t/people/person/nationality\n0.763158\t0.014872\t0.981560\tsouth_carolina\tdarlington_raceway\t/location/location/contains\n0.769231\t0.015385\t0.981317\tpeter_luczak\taustralia\t/people/person/nationality\n0.750000\t0.015385\t0.981105\tnolan_bushnell\tatari\t/business/person/company\n0.756098\t0.015897\t0.980632\tchase_carey\tdirectv\t/business/person/company\n0.738095\t0.015897\t0.980458\tdinara_safina\trussia\t/people/person/nationality\n0.744186\t0.016410\t0.980418\tfairfield_county\twestport\t/location/location/contains\n0.750000\t0.016923\t0.980406\tchad_hurley\tyoutube\t/business/person/company\n0.755556\t0.017436\t0.980174\tsami_jo_small\tcanada\t/people/person/nationality\n0.760870\t0.017949\t0.980101\tvirginia\tharrisonburg\t/location/location/contains\n0.765957\t0.018462\t0.979768\tjonathan_littell\tfrance\t/people/person/nationality\n0.770833\t0.018974\t0.979625\tcalifornia\thumboldt_redwoods_state_park\t/location/location/contains\n0.775510\t0.019487\t0.979323\tflorida\tnorth_port\t/location/location/contains\n0.760000\t0.019487\t0.978916\tphillip_aspinall\taustralia\t/people/person/nationality\n0.764706\t0.020000\t0.978291\tchad_hurley\tgoogle\t/business/person/company\n0.769231\t0.020513\t0.977949\ttanzania\tmoshi\t/location/location/contains\n0.773585\t0.021026\t0.977405\tdouglas_merrill\tgoogle\t/business/person/company\n0.777778\t0.021538\t0.977193\tconnecticut\tfairfield_county\t/location/location/contains\n0.781818\t0.022051\t0.977117\trussell_smith\tcanada\t/people/person/nationality\n0.785714\t0.022564\t0.977091\tperdita_felicien\tcanada\t/people/person/nationality\n0.789474\t0.023077\t0.977077\tgermany\tkronach\t/location/location/contains\n0.793103\t0.023590\t0.976818\txavier_florencio\tspain\t/people/person/nationality\n0.796610\t0.024103\t0.976818\tanne_m._mulcahy\txerox\t/business/person/company\n0.800000\t0.024615\t0.976730\tstefano_baldini\titaly\t/people/person/nationality\n0.803279\t0.025128\t0.976672\tmaryland\ttakoma_park\t/location/location/contains\n0.806452\t0.025641\t0.976611\tiowa\tle_mars\t/location/location/contains\n0.809524\t0.026154\t0.976504\tfrançois_bayrou\tfrance\t/people/person/nationality\n0.796875\t0.026154\t0.976321\ttatiana_kosintseva\trussia\t/people/person/nationality\n0.800000\t0.026667\t0.976294\tboston\tdorchester\t/location/location/contains\n0.787879\t0.026667\t0.975527\tbjorn_phau\tgermany\t/people/person/nationality\n0.791045\t0.027179\t0.975518\tcuba\tbayamo\t/location/location/contains\n0.794118\t0.027692\t0.975472\tvermont\tbrattleboro\t/location/location/contains\n0.797101\t0.028205\t0.975466\tjorge_garbajosa\tspain\t/people/person/nationality\n0.785714\t0.028205\t0.975436\tdon_harrison\tgoogle\t/business/person/company\n0.774648\t0.028205\t0.975419\tvirginia\tmount_vernon\t/location/location/contains\n0.777778\t0.028718\t0.975294\tgermany\tlandstuhl\t/location/location/contains\n0.780822\t0.029231\t0.974849\titaly\tpositano\t/location/location/contains\n0.770270\t0.029231\t0.974492\tnew_york_city\tcollege_of_insurance\t/location/location/contains\n0.773333\t0.029744\t0.974405\tsouth_carolina\tlittle_pee_dee_river\t/location/location/contains\n0.776316\t0.030256\t0.974199\tcalifornia\tmonterey\t/location/location/contains\n0.779221\t0.030769\t0.974047\twest_virginia\telk_garden\t/location/location/contains\n0.782051\t0.031282\t0.973229\tfrancesco_maria_piave\titaly\t/people/person/nationality\n0.772152\t0.031282\t0.973215\tbaltasar_garzón\tspain\t/people/person/nationality\n0.775000\t0.031795\t0.973188\tcalifornia\tsan_juan_capistrano\t/location/location/contains\n0.777778\t0.032308\t0.973173\tflorida\tboca_raton\t/location/location/contains\n0.768293\t0.032308\t0.972939\tontario\twawa\t/location/location/contains\n0.771084\t0.032821\t0.972635\tségolène_royal\tfrance\t/people/person/nationality\n0.773810\t0.033333\t0.972544\tmississippi\tmccomb\t/location/location/contains\n0.764706\t0.033333\t0.972514\telena_dementieva\trussia\t/people/person/nationality\n0.767442\t0.033846\t0.971313\tflorida\tponte_vedra_beach\t/location/location/contains\n0.770115\t0.034359\t0.971186\tflorida\tlake_worth\t/location/location/contains\n0.772727\t0.034872\t0.970938\tgermany\tbaden-baden\t/location/location/contains\n0.775281\t0.035385\t0.970156\tsuffolk_county\tsmithtown\t/location/location/contains\n0.777778\t0.035897\t0.969907\trhode_island\twest_warwick\t/location/location/contains\n0.769231\t0.035897\t0.969728\tphilippe_douste-blazy\tfrance\t/people/person/nationality\n0.771739\t0.036410\t0.969597\tcalifornia\tbeverly_hills\t/location/location/contains\n0.763441\t0.036410\t0.969277\tashis_nandy\tindia\t/people/person/nationality\n0.755319\t0.036410\t0.969072\tspringstein\tgermany\t/people/person/nationality\n0.757895\t0.036923\t0.968775\taustralia\tjindabyne\t/location/location/contains\n0.750000\t0.036923\t0.968310\tmaryland\tfort_meade\t/location/location/contains\n0.752577\t0.037436\t0.968180\travi_chopra\tindia\t/people/person/nationality\n0.755102\t0.037949\t0.967655\tcorrado_augias\titaly\t/people/person/nationality\n0.757576\t0.038462\t0.967118\tontario\tniagara-on-the-lake\t/location/location/contains\n0.760000\t0.038974\t0.967032\tshilpa_shetty\tindia\t/people/person/nationality\n0.762376\t0.039487\t0.966855\tantonio_stradivari\titaly\t/people/person/nationality\n0.754902\t0.039487\t0.966782\tcolorado\thinsdale\t/location/location/contains\n0.757282\t0.040000\t0.966779\tbruno_kernen\tswitzerland\t/people/person/nationality\n0.759615\t0.040513\t0.966745\tcolorado\taspen\t/location/location/contains\n0.752381\t0.040513\t0.966705\tidaho\ttamarack_resort\t/location/location/contains\n0.754717\t0.041026\t0.966588\tgermany\tbad_arolsen\t/location/location/contains\n0.747664\t0.041026\t0.966460\tandy_murray\tscotland\t/people/person/nationality\n0.750000\t0.041538\t0.966229\tarthur_d._collins_jr.\tmedtronic\t/business/person/company\n0.752294\t0.042051\t0.966202\tmario_soldati\titaly\t/people/person/nationality\n0.745455\t0.042051\t0.965811\tyle\tfinland\t/people/person/nationality\n0.747748\t0.042564\t0.965271\tcalifornia\tlos_alamitos\t/location/location/contains\n0.741071\t0.042564\t0.965190\tcalifornia\towens_valley\t/location/location/contains\n0.734513\t0.042564\t0.964723\tnew_hampshire\tattitash\t/location/location/contains\n0.736842\t0.043077\t0.964520\ttorah_bright\taustralia\t/people/person/nationality\n0.739130\t0.043590\t0.964175\tgermany\tnordenham\t/location/location/contains\n0.732759\t0.043590\t0.963294\tvermont\tbennington\t/location/location/contains\n0.735043\t0.044103\t0.963292\tgermany\tkönigsdorf\t/location/location/contains\n0.737288\t0.044615\t0.963275\tsri_lanka\tpolonnaruwa\t/location/location/contains\n0.731092\t0.044615\t0.963223\tboston\tfirst_church\t/location/location/contains\n0.725000\t0.044615\t0.963017\tcuba\tpuerto_padre\t/location/location/contains\n0.727273\t0.045128\t0.962931\thoward_hochhauser\tmartha_stewart_living_omnimedia\t/business/person/company\n0.729508\t0.045641\t0.962851\twisconsin\tuss_cobia\t/location/location/contains\n0.723577\t0.045641\t0.962537\tflorida\tsarasota_film_festival\t/location/location/contains\n0.725806\t0.046154\t0.962358\tsan_francisco\tnorth_beach\t/location/location/contains\n0.728000\t0.046667\t0.962206\tper_petterson\tnorway\t/people/person/nationality\n0.730159\t0.047179\t0.961897\tlars_berger\tnorway\t/people/person/nationality\n0.732283\t0.047692\t0.961732\tdavid_ferrer\tspain\t/people/person/nationality\n0.734375\t0.048205\t0.961326\tflorida\tcoconut_creek\t/location/location/contains\n0.728682\t0.048205\t0.961289\twisconsin\tfishtrap_lake\t/location/location/contains\n0.730769\t0.048718\t0.961181\trobert_druskin\tcitigroup\t/business/person/company\n0.725191\t0.048718\t0.961020\tmaryland\tmontgomery_county\t/location/location/contains\n0.727273\t0.049231\t0.961004\tjean-louis_bruguière\tfrance\t/people/person/nationality\n0.729323\t0.049744\t0.960851\tgermany\tmeiningen\t/location/location/contains\n0.731343\t0.050256\t0.960149\tmichelle_peluso\ttravelocity\t/business/person/company\n0.725926\t0.050256\t0.958890\ttim_clark\tsouth_africa\t/people/person/nationality\n0.720588\t0.050256\t0.958454\toklahoma\tcherokee_county\t/location/location/contains\n0.722628\t0.050769\t0.958083\tfrançois_mitterrand\tfrance\t/people/person/nationality\n0.724638\t0.051282\t0.957728\tmark_v._hurd\thewlett-packard\t/business/person/company\n0.719424\t0.051282\t0.957067\tolivier_roy\tfrance\t/people/person/nationality\n0.721429\t0.051795\t0.956988\tjalisco\tmazamitla\t/location/location/contains\n0.716312\t0.051795\t0.956932\tmaryland\tcomcast_center\t/location/location/contains\n0.718310\t0.052308\t0.956872\tpedro_almodóvar\tspain\t/people/person/nationality\n0.720280\t0.052821\t0.956852\tsarah_jamieson\taustralia\t/people/person/nationality\n0.722222\t0.053333\t0.956464\tflorida\tpalm_beach\t/location/location/contains\n0.724138\t0.053846\t0.956148\tshane_doan\tcanada\t/people/person/nationality\n0.726027\t0.054359\t0.956037\tatiku_abubakar\tnigeria\t/people/person/nationality\n0.727891\t0.054872\t0.955890\tgermany\tdessau\t/location/location/contains\n0.729730\t0.055385\t0.955835\tsão_paulo\tpacaembu\t/location/location/contains\n0.731544\t0.055897\t0.955751\trockland_county\tairmont\t/location/location/contains\n0.733333\t0.056410\t0.954876\tgermany\tsiegen\t/location/location/contains\n0.735099\t0.056923\t0.954274\tpeter_akinola\tnigeria\t/people/person/nationality\n0.730263\t0.056923\t0.954118\tabdou_diouf\tsenegal\t/people/person/nationality\n0.732026\t0.057436\t0.953871\tmaryland\tdeep_creek_lake\t/location/location/contains\n0.733766\t0.057949\t0.953760\tisrael\tashkelon\t/location/location/contains\n0.735484\t0.058462\t0.953628\tcambridge\tlesley_university\t/location/location/contains\n0.737179\t0.058974\t0.952835\tjo-wilfried_tsonga\tfrance\t/people/person/nationality\n0.738854\t0.059487\t0.952825\tamália_rodrigues\tportugal\t/people/person/nationality\n0.734177\t0.059487\t0.952404\tbihar\tjahanabad\t/location/location/contains\n0.735849\t0.060000\t0.951826\tturkey\ttrabzon\t/location/location/contains\n0.731250\t0.060000\t0.951575\tandrea_frazzini\tuniversity_of_chicago\t/business/person/company\n0.732919\t0.060513\t0.951397\tgaël_monfils\tfrance\t/people/person/nationality\n0.728395\t0.060513\t0.951389\tbuffalo\tdelaware_park\t/location/location/contains\n0.730061\t0.061026\t0.951155\trockland_county\tnew_city\t/location/location/contains\n0.731707\t0.061538\t0.950967\tlaurent_merlin\tfrance\t/people/person/nationality\n0.733333\t0.062051\t0.950891\tiowa\tbode\t/location/location/contains\n0.734940\t0.062564\t0.950856\tsanta_clara_county\tsan_jose\t/location/location/contains\n0.736527\t0.063077\t0.950850\tsouth_dakota\trosebud_indian_reservation\t/location/location/contains\n0.738095\t0.063590\t0.950538\tpeer_steinbrück\tgermany\t/people/person/nationality\n0.739645\t0.064103\t0.950037\tcamille_pin\tfrance\t/people/person/nationality\n0.741176\t0.064615\t0.950000\tlos_angeles_county\tlong_beach\t/location/location/contains\n0.742690\t0.065128\t0.949893\tjohn_macdonald\tcanada\t/people/person/nationality\n0.738372\t0.065128\t0.949711\tireland\tcounty_monaghan\t/location/location/contains\n0.739884\t0.065641\t0.949668\tlos_angeles_county\tbell_gardens\t/location/location/contains\n0.735632\t0.065641\t0.949614\trussia\tcaucasus_mountains\t/location/location/contains\n0.737143\t0.066154\t0.949597\tindia\tgangtok\t/location/location/contains\n0.738636\t0.066667\t0.949449\tcalifornia\tberkeley\t/location/location/contains\n0.734463\t0.066667\t0.949148\talex_neve\tcanada\t/people/person/nationality\n0.735955\t0.067179\t0.949132\tseyyed_hossein_nasr\tgeorge_washington_university\t/business/person/company\n0.731844\t0.067179\t0.949106\trockland_county\tramapo\t/location/location/contains\n0.733333\t0.067692\t0.948681\tthailand\tkrabi\t/location/location/contains\n0.729282\t0.067692\t0.948643\tireland\tcounty_longford\t/location/location/contains\n0.725275\t0.067692\t0.948520\tcolorado\tridgway_state_park\t/location/location/contains\n0.726776\t0.068205\t0.948424\tkim_jong-il\tnorth_korea\t/people/person/nationality\n0.728261\t0.068718\t0.948321\tconnecticut\twestport\t/location/location/contains\n0.729730\t0.069231\t0.948108\tali_khamenei\tiran\t/people/person/nationality\n0.725806\t0.069231\t0.948021\tgermany\tuniversity_of_lübeck\t/location/location/contains\n0.721925\t0.069231\t0.947805\tsteve_newcomb\tgoogle\t/business/person/company\n0.723404\t0.069744\t0.947530\tstephen_g._post\tcase_western_reserve_university\t/business/person/company\n0.724868\t0.070256\t0.947518\tidaho\tlapwai\t/location/location/contains\n0.726316\t0.070769\t0.947223\titaly\torvieto\t/location/location/contains\n0.727749\t0.071282\t0.947085\tbenita_johnson\taustralia\t/people/person/nationality\n0.729167\t0.071795\t0.946970\tfaraz_hoodbhoy\tpixsense\t/business/person/company\n0.730570\t0.072308\t0.946963\titaly\travenna\t/location/location/contains\n0.726804\t0.072308\t0.946805\tvirginia\tringgold\t/location/location/contains\n0.723077\t0.072308\t0.946686\tspain\talhambra\t/location/location/contains\n0.719388\t0.072308\t0.946157\tindiana\tbedford\t/location/location/contains\n0.715736\t0.072308\t0.945670\tpaolo_gentiloni\titaly\t/people/person/nationality\n0.712121\t0.072308\t0.945421\tennio_morricone\tportugal\t/people/person/nationality\n0.708543\t0.072308\t0.945250\tnikolay_davydenko\trussia\t/people/person/nationality\n0.705000\t0.072308\t0.945206\tiberdrola\tspain\t/people/person/nationality\n0.706468\t0.072821\t0.945195\titaly\tmontappone\t/location/location/contains\n0.707921\t0.073333\t0.945179\tsumner_redstone\tviacom\t/business/person/company\n0.704433\t0.073333\t0.944991\teric_von_hippel\tmassachusetts_institute_of_technology\t/business/person/company\n0.705882\t0.073846\t0.944633\tturkey\tvan\t/location/location/contains\n0.702439\t0.073846\t0.944331\tbjarne_riis\tfrance\t/people/person/nationality\n0.703883\t0.074359\t0.943904\tstaten_island\ttodt_hill\t/location/location/contains\n0.700483\t0.074359\t0.943814\tstefano_bollani\titaly\t/people/person/nationality\n0.701923\t0.074872\t0.943663\tiowa\tfort_madison\t/location/location/contains\n0.698565\t0.074872\t0.943349\tlloyd_taylor\tgoogle\t/business/person/company\n0.695238\t0.074872\t0.942840\tcalifornia\ttim_rooney\t/location/location/contains\n0.691943\t0.074872\t0.942762\tnew_york_city\tcroton_dam\t/location/location/contains\n0.693396\t0.075385\t0.942626\tiran\tisfahan\t/location/location/contains\n0.694836\t0.075897\t0.942505\tsherry_turkle\tmassachusetts_institute_of_technology\t/business/person/company\n0.696262\t0.076410\t0.942444\tportland\treed_college\t/location/location/contains\n0.697674\t0.076923\t0.942358\tmariano_rajoy\tspain\t/people/person/nationality\n0.699074\t0.077436\t0.942169\tcalifornia\tsan_onofre\t/location/location/contains\n0.695853\t0.077436\t0.942069\tontario\ttobermory\t/location/location/contains\n0.697248\t0.077949\t0.941898\tturkey\tsamsun\t/location/location/contains\n0.694064\t0.077949\t0.941252\tkatharine_hepburn\tscotland\t/people/person/nationality\n0.695455\t0.078462\t0.941231\tconnecticut\tdarien\t/location/location/contains\n0.692308\t0.078462\t0.941151\tvoltaire\tportugal\t/people/person/nationality\n0.693694\t0.078974\t0.940939\tmexico\tbaja_california_peninsula\t/location/location/contains\n0.690583\t0.078974\t0.940489\trolf_de_heer\taustralia\t/people/person/nationality\n0.687500\t0.078974\t0.939817\tmargherita_of_savoy\titaly\t/people/person/nationality\n0.688889\t0.079487\t0.939789\tdan_gilbert\tquicken_loans\t/business/person/company\n0.690265\t0.080000\t0.939631\tidaho\trexburg\t/location/location/contains\n0.687225\t0.080000\t0.939558\tmark_feldstein\tgeorge_washington_university\t/business/person/company\n0.688596\t0.080513\t0.939392\tturkey\tkonya\t/location/location/contains\n0.685590\t0.080513\t0.939389\tr._c._buford\tfrance\t/people/person/nationality\n0.686957\t0.081026\t0.939348\tsara_seager\tmassachusetts_institute_of_technology\t/business/person/company\n0.688312\t0.081538\t0.939344\tflorida\taventura\t/location/location/contains\n0.689655\t0.082051\t0.939325\tstephen_ames\tcanada\t/people/person/nationality\n0.686695\t0.082051\t0.939312\tmountain_zebra_national_park\tsouth_africa\t/people/person/nationality\n0.683761\t0.082051\t0.939121\talexander_stille\titaly\t/people/person/nationality\n0.685106\t0.082564\t0.938532\tdominique_gisin\tswitzerland\t/people/person/nationality\n0.682203\t0.082564\t0.938017\tsonoma_county\trussian_river\t/location/location/contains\n0.683544\t0.083077\t0.937965\tmaryland\tglenarden\t/location/location/contains\n0.684874\t0.083590\t0.937930\tlevi_eshkol\tisrael\t/people/person/nationality\n0.686192\t0.084103\t0.937828\thenri_troyat\tfrance\t/people/person/nationality\n0.687500\t0.084615\t0.937527\talain_duhamel\tfrance\t/people/person/nationality\n0.688797\t0.085128\t0.937519\talfred_moisiu\talbania\t/people/person/nationality\n0.690083\t0.085641\t0.937387\tdavid_altmejd\tcanada\t/people/person/nationality\n0.691358\t0.086154\t0.937372\tpierre_bourdieu\tfrance\t/people/person/nationality\n0.688525\t0.086154\t0.937212\tboston\tmassachusetts_college_of_art\t/location/location/contains\n0.689796\t0.086667\t0.936803\tsouth_australia\tport_lincoln\t/location/location/contains\n0.691057\t0.087179\t0.936777\tminnesota\teveleth\t/location/location/contains\n0.688259\t0.087179\t0.936494\tdavid_berson\tespn\t/business/person/company\n0.689516\t0.087692\t0.936452\tjosé_sócrates\tportugal\t/people/person/nationality\n0.686747\t0.087692\t0.936435\tmarilee_jones\tmassachusetts_institute_of_technology\t/business/person/company\n0.688000\t0.088205\t0.936339\tjürgen_klinsmann\tgermany\t/people/person/nationality\n0.689243\t0.088718\t0.935953\tindia\thalol\t/location/location/contains\n0.686508\t0.088718\t0.935750\tela_bhatt\tindia\t/people/person/nationality\n0.683794\t0.088718\t0.935417\tkeith_murdoch\taustralia\t/people/person/nationality\n0.681102\t0.088718\t0.935371\twest_texas\tmarfa\t/location/location/contains\n0.682353\t0.089231\t0.935055\tjosé_maría_aznar\tspain\t/people/person/nationality\n0.679688\t0.089231\t0.934673\tcalifornia\tlawrence_livermore_national_laboratory\t/location/location/contains\n0.677043\t0.089231\t0.934502\tconnecticut\tglass_house\t/location/location/contains\n0.674419\t0.089231\t0.934226\titaly\tuniversity_of_florence\t/location/location/contains\n0.671815\t0.089231\t0.933992\tbaja_california\tla_paz\t/location/location/contains\n0.669231\t0.089231\t0.933980\tmafioso\titaly\t/people/person/nationality\n0.670498\t0.089744\t0.933795\tarkansas\thendrix_college\t/location/location/contains\n0.671756\t0.090256\t0.933668\tandrew_whiteman\tcanada\t/people/person/nationality\n0.669202\t0.090256\t0.933496\tport_washington\tharborside\t/location/location/contains\n0.670455\t0.090769\t0.933354\tcalifornia\toakland\t/location/location/contains\n0.667925\t0.090769\t0.932307\tpaktia_province\tpatan\t/location/location/contains\n0.665414\t0.090769\t0.932061\tpeter_gelb\tfrance\t/people/person/nationality\n0.666667\t0.091282\t0.932001\tmuhammadu_buhari\tnigeria\t/people/person/nationality\n0.667910\t0.091795\t0.931935\tesa-pekka_salonen\tfinland\t/people/person/nationality\n0.669145\t0.092308\t0.931596\tgermany\thildesheim\t/location/location/contains\n0.666667\t0.092308\t0.931410\tvermont\tokemo_mountain_resort\t/location/location/contains\n0.664207\t0.092308\t0.931354\ttulbagh\tsouth_africa\t/people/person/nationality\n0.661765\t0.092308\t0.930946\tnadia_petrova\trussia\t/people/person/nationality\n0.663004\t0.092821\t0.930666\tguanajuato\tacámbaro\t/location/location/contains\n0.664234\t0.093333\t0.930552\tjonathan_gruber\tmassachusetts_institute_of_technology\t/business/person/company\n0.665455\t0.093846\t0.930363\tiowa\tfort_des_moines\t/location/location/contains\n0.666667\t0.094359\t0.930152\tshanghai\tjade_buddha_temple\t/location/location/contains\n0.667870\t0.094872\t0.929813\talaska\tkenai\t/location/location/contains\n0.665468\t0.094872\t0.929333\tmilton_wolff\tspain\t/people/person/nationality\n0.666667\t0.095385\t0.928934\tchris_dewolfe\tmyspace\t/business/person/company\n0.667857\t0.095897\t0.928495\tiran\tmashhad\t/location/location/contains\n0.669039\t0.096410\t0.928331\tseattle\tsouth_lake_union\t/location/location/contains\n0.670213\t0.096923\t0.927680\tserbia\tleskovac\t/location/location/contains\n0.671378\t0.097436\t0.927453\tmichael_grossi\thelio\t/business/person/company\n0.669014\t0.097436\t0.927444\tconnecticut\tmadison\t/location/location/contains\n0.670175\t0.097949\t0.927055\theinrich_von_pierer\tgermany\t/people/person/nationality\n0.671329\t0.098462\t0.926509\tkwame_anthony_appiah\tprinceton_university\t/business/person/company\n0.672474\t0.098974\t0.926131\tcalifornia\triverside\t/location/location/contains\n0.673611\t0.099487\t0.926088\tbrian_mulroney\tcanada\t/people/person/nationality\n0.674740\t0.100000\t0.925667\ttim_rogers\taustralia\t/people/person/nationality\n0.675862\t0.100513\t0.925204\twestchester_county\tmamaroneck\t/location/location/contains\n0.673540\t0.100513\t0.925190\tcalifornia\ttejon_ranch\t/location/location/contains\n0.674658\t0.101026\t0.925047\tontario\tst._catharines\t/location/location/contains\n0.675768\t0.101538\t0.924211\tangelo_morbelli\titaly\t/people/person/nationality\n0.673469\t0.101538\t0.923590\taziz_pahad\tzimbabwe\t/people/person/nationality\n0.671186\t0.101538\t0.922936\tlaurent_merlin\tportugal\t/people/person/nationality\n0.672297\t0.102051\t0.922899\tgermany\twolfsburg\t/location/location/contains\n0.670034\t0.102051\t0.922686\tpope_benedict_xvi\tiran\t/people/person/nationality\n0.667785\t0.102051\t0.922344\tcanada\twood_buffalo_national_park\t/location/location/contains\n0.668896\t0.102564\t0.921539\tjohn_howard\taustralia\t/people/person/nationality\n0.666667\t0.102564\t0.921435\twilliam_knox\tisrael\t/people/person/nationality\n0.664452\t0.102564\t0.920513\tcalifornia\tsacramento_river\t/location/location/contains\n0.662252\t0.102564\t0.920216\tdavid_m._kennedy\tstanford_university\t/business/person/company\n0.663366\t0.103077\t0.919945\tcalifornia\tmalibu\t/location/location/contains\n0.664474\t0.103590\t0.919059\tnew_york_city\tsalmagundi_club\t/location/location/contains\n0.665574\t0.104103\t0.918715\tgreece\tmount_athos\t/location/location/contains\n0.666667\t0.104615\t0.918633\tgeorges_pompidou\tfrance\t/people/person/nationality\n0.664495\t0.104615\t0.918607\tnew_york_city\tmount_sinai_school_of_medicine\t/location/location/contains\n0.665584\t0.105128\t0.918318\tmolise\tvenafro\t/location/location/contains\n0.666667\t0.105641\t0.917563\thebei\tbaoding\t/location/location/contains\n0.664516\t0.105641\t0.917160\tsan_francisco\tvideoegg\t/location/location/contains\n0.662379\t0.105641\t0.916986\tmaryland\tmontgomery_college\t/location/location/contains\n0.663462\t0.106154\t0.916313\tmaria_de_belém_roseira\tportugal\t/people/person/nationality\n0.664537\t0.106667\t0.915366\tyossi_vardi\tisrael\t/people/person/nationality\n0.662420\t0.106667\t0.915280\tmartin_sorrell\tgoogle\t/business/person/company\n0.660317\t0.106667\t0.914784\tdavid_cheriton\tgoogle\t/business/person/company\n0.658228\t0.106667\t0.914121\tronald_radosh\tspain\t/people/person/nationality\n0.656151\t0.106667\t0.914073\tberlin\teastern_high_school\t/location/location/contains\n0.657233\t0.107179\t0.913532\twestchester_county\tnew_rochelle\t/location/location/contains\n0.655172\t0.107179\t0.912928\tnew_york_city\trondout_reservoir\t/location/location/contains\n0.656250\t0.107692\t0.912906\tgermany\tfriedrichshafen\t/location/location/contains\n0.657321\t0.108205\t0.912778\tflorida\ttamarac\t/location/location/contains\n0.655280\t0.108205\t0.912466\tg._wayne_clough\tgeorgia_institute_of_technology\t/business/person/company\n0.653251\t0.108205\t0.912406\tswitzerland\tarosa\t/location/location/contains\n0.651235\t0.108205\t0.912103\tedmund_daukoru\tnigeria\t/people/person/nationality\n0.652308\t0.108718\t0.911903\tcalifornia\tsan_mateo\t/location/location/contains\n0.653374\t0.109231\t0.911347\tenrique_morente\tspain\t/people/person/nationality\n0.654434\t0.109744\t0.911146\tconnecticut\tnew_haven\t/location/location/contains\n0.652439\t0.109744\t0.910960\tdenis_macshane\tfrance\t/people/person/nationality\n0.650456\t0.109744\t0.910712\tkhosla_ventures\tsun_microsystems\t/business/person/company\n0.648485\t0.109744\t0.910390\tsherwin_rosen\tuniversity_of_chicago\t/business/person/company\n0.646526\t0.109744\t0.910235\taustralia\tmelbourne_aquarium\t/location/location/contains\n0.647590\t0.110256\t0.909981\tindia\taldona\t/location/location/contains\n0.645646\t0.110256\t0.909832\tunion_county\tspringfield\t/location/location/contains\n0.643713\t0.110256\t0.909715\tcalifornia\tmuseum_of_latin_american_art\t/location/location/contains\n0.641791\t0.110256\t0.909558\tnew_hampshire\tmarlborough\t/location/location/contains\n0.642857\t0.110769\t0.909508\toregon\trogue_river\t/location/location/contains\n0.640950\t0.110769\t0.909369\tfred_krupp\tgeneral_electric\t/business/person/company\n0.639053\t0.110769\t0.909242\tflorida\tvenice\t/location/location/contains\n0.637168\t0.110769\t0.909192\tecuador\tcuenca\t/location/location/contains\n0.638235\t0.111282\t0.907942\ttanzania\tmount_kilimanjaro\t/location/location/contains\n0.636364\t0.111282\t0.907613\tthomas_w._lasorda\tchrysler\t/business/person/company\n0.634503\t0.111282\t0.907485\twestchester_county\teastview\t/location/location/contains\n0.632653\t0.111282\t0.907314\tstuart_appleby\taustralia\t/people/person/nationality\n0.633721\t0.111795\t0.906548\tindia\tbenaulim\t/location/location/contains\n0.631884\t0.111795\t0.905579\twisconsin\toswego\t/location/location/contains\n0.630058\t0.111795\t0.905464\talain_j._p._belda\tcitigroup\t/business/person/company\n0.628242\t0.111795\t0.905275\ttoronto\tkensington_gardens\t/location/location/contains\n0.629310\t0.112308\t0.905107\tmaryland\ttowson\t/location/location/contains\n0.630372\t0.112821\t0.904916\tjosé_saramago\tportugal\t/people/person/nationality\n0.628571\t0.112821\t0.904145\tnapoleon\trussia\t/people/person/nationality\n0.626781\t0.112821\t0.904031\twestchester_county\tstaten_island\t/location/location/contains\n0.625000\t0.112821\t0.903694\tcalifornia\tchapman_university\t/location/location/contains\n0.623229\t0.112821\t0.903613\tcolorado\tbreckenridge\t/location/location/contains\n0.624294\t0.113333\t0.903511\taravind_adiga\tindia\t/people/person/nationality\n0.625352\t0.113846\t0.903457\tcaroline_fourest\tfrance\t/people/person/nationality\n0.626404\t0.114359\t0.903072\tmartin_mosebach\tgermany\t/people/person/nationality\n0.627451\t0.114872\t0.902634\tgujarat\tvadodara\t/location/location/contains\n0.625698\t0.114872\t0.902533\tnelson_chamisa\tzimbabwe\t/people/person/nationality\n0.626741\t0.115385\t0.902192\tvermont\tstowe\t/location/location/contains\n0.627778\t0.115897\t0.902184\tgordon_brown\tunited_kingdom\t/people/person/nationality\n0.626039\t0.115897\t0.901592\tjohn_stratton\taustralia\t/people/person/nationality\n0.624309\t0.115897\t0.901139\taustralia\tuniversity_of_sydney\t/location/location/contains\n0.625344\t0.116410\t0.900902\tmonmouth_county\toceanport\t/location/location/contains\n0.623626\t0.116410\t0.900701\tjohn_smedley\tsony\t/business/person/company\n0.624658\t0.116923\t0.898962\tmatt_cutts\tgoogle\t/business/person/company\n0.625683\t0.117436\t0.898682\thaleh_esfandiari\tiran\t/people/person/nationality\n0.623978\t0.117436\t0.898593\tnew_hampshire\tmount_washington\t/location/location/contains\n0.625000\t0.117949\t0.898535\tpaul_kocher\tcryptography_research\t/business/person/company\n0.626016\t0.118462\t0.898508\tgreenwich_village\tnew_york_city\t/location/neighborhood/neighborhood_of\n0.627027\t0.118974\t0.898202\tjohn_logsdon\tgeorge_washington_university\t/business/person/company\n0.628032\t0.119487\t0.897145\talaska\tmount_mckinley\t/location/location/contains\n0.629032\t0.120000\t0.896192\tnew_york_city\tkew_gardens\t/location/location/contains\n0.630027\t0.120513\t0.896167\tviswanathan_anand\tindia\t/people/person/nationality\n0.631016\t0.121026\t0.896036\thanns_eisler\tgermany\t/people/person/nationality\n0.632000\t0.121538\t0.896023\tlorena_ochoa\tmexico\t/people/person/nationality\n0.632979\t0.122051\t0.895875\titaly\tnarni\t/location/location/contains\n0.631300\t0.122051\t0.895806\tflorida\thillsborough\t/location/location/contains\n0.632275\t0.122564\t0.895663\tnew_york_city\tmanhattanville\t/location/location/contains\n0.633245\t0.123077\t0.895501\tconnecticut\tfarmington\t/location/location/contains\n0.634211\t0.123590\t0.895011\tflorida\tjensen_beach\t/location/location/contains\n0.635171\t0.124103\t0.894662\tsouth_africa\tkwazulu-natal\t/location/location/contains\n0.633508\t0.124103\t0.894343\tmike_huckabee\tarkansas\t/people/person/place_lived\n0.631854\t0.124103\t0.894023\twichita\twoodlawn\t/location/location/contains\n0.632812\t0.124615\t0.893443\tcalifornia\tsan_clemente\t/location/location/contains\n0.631169\t0.124615\t0.892974\tkirk_kerkorian\tfrance\t/people/person/nationality\n0.629534\t0.124615\t0.892924\tsaipan\ttinian\t/location/location/contains\n0.630491\t0.125128\t0.892728\taustan_goolsbee\tuniversity_of_chicago\t/business/person/company\n0.628866\t0.125128\t0.892589\trutka_laskier\tpoland\t/people/person/nationality\n0.629820\t0.125641\t0.892294\tjerusalem\tsecond_temple\t/location/location/contains\n0.628205\t0.125641\t0.892178\talireza_jafarzadeh\tiran\t/people/person/nationality\n0.626598\t0.125641\t0.892173\tsriti_jha\tindia\t/people/person/nationality\n0.627551\t0.126154\t0.892043\tconnecticut\tstorrs\t/location/location/contains\n0.628499\t0.126667\t0.891953\tbashar_al-assad\tsyria\t/people/person/nationality\n0.629442\t0.127179\t0.891926\tmaryland\tbethesda\t/location/location/contains\n0.627848\t0.127179\t0.891871\tgwyneth_paltrow\tscotland\t/people/person/nationality\n0.628788\t0.127692\t0.891824\titaly\tsiena\t/location/location/contains\n0.627204\t0.127692\t0.891777\tvirginia\teastern_shore\t/location/location/contains\n0.628141\t0.128205\t0.891408\tjulius_streicher\tgermany\t/people/person/nationality\n0.629073\t0.128718\t0.891096\tkansas\thays\t/location/location/contains\n0.627500\t0.128718\t0.890906\tjames_bond\tindia\t/people/person/nationality\n0.628429\t0.129231\t0.890795\tconnecticut\tgreenwich\t/location/location/contains\n0.629353\t0.129744\t0.890111\tbertie_ahern\tireland\t/people/person/nationality\n0.627792\t0.129744\t0.890074\tgermany\tuniversity_of_bonn\t/location/location/contains\n0.626238\t0.129744\t0.889969\tturkey\tlemnos\t/location/location/contains\n0.627160\t0.130256\t0.889894\tdenmark\tfrederiksberg\t/location/location/contains\n0.628079\t0.130769\t0.889858\tguam\tagana_heights\t/location/location/contains\n0.628993\t0.131282\t0.889551\talex_salmond\tscotland\t/people/person/nationality\n0.629902\t0.131795\t0.889507\tindiana\tfort_wayne\t/location/location/contains\n0.630807\t0.132308\t0.889216\tphilippe_val\tfrance\t/people/person/nationality\n0.629268\t0.132308\t0.889000\tlawrence_lessig\tstanford_university\t/business/person/company\n0.630170\t0.132821\t0.888690\tvirginia\tfairfax_county\t/location/location/contains\n0.628641\t0.132821\t0.888482\thenry_j._leir\tisrael\t/people/person/nationality\n0.629540\t0.133333\t0.888445\tberkeley\tchez_panisse\t/location/location/contains\n0.630435\t0.133846\t0.888163\tarmenia\tgyumri\t/location/location/contains\n0.628916\t0.133846\t0.888041\tseth_goldman\thonest_tea\t/business/person/company\n0.629808\t0.134359\t0.887699\tspain\tmálaga\t/location/location/contains\n0.628297\t0.134359\t0.887376\tsan_francisco\tembarcadero\t/location/location/contains\n0.629187\t0.134872\t0.886913\tjoe_giordano\tpayscale\t/business/person/company\n0.627685\t0.134872\t0.886845\tbuffalo\tnew_york_city\t/location/location/contains\n0.628571\t0.135385\t0.886776\tnorway\thorten\t/location/location/contains\n0.627078\t0.135385\t0.886557\tcalifornia\tsanta_barbara_city_college\t/location/location/contains\n0.627962\t0.135897\t0.886539\tlos_angeles_county\thuntington_park\t/location/location/contains\n0.626478\t0.135897\t0.886365\thunterdon_county\tdelaware_valley_school_district\t/location/location/contains\n0.625000\t0.135897\t0.885598\tamanda_weir\taustralia\t/people/person/nationality\n0.625882\t0.136410\t0.885410\tiowa\tmuscatine\t/location/location/contains\n0.624413\t0.136410\t0.885300\temma_goldman\tcanada\t/people/person/nationality\n0.622951\t0.136410\t0.885189\tcalifornia\thumboldt_state_university\t/location/location/contains\n0.623832\t0.136923\t0.885169\tminnesota\tnorthfield\t/location/location/contains\n0.622378\t0.136923\t0.885111\tconnecticut\twesleyan_university\t/location/location/contains\n0.623256\t0.137436\t0.884562\tcambridge\tharvard_square\t/location/location/contains\n0.624130\t0.137949\t0.884092\tiowa\tottumwa\t/location/location/contains\n0.622685\t0.137949\t0.883776\tcutchogue\told_house\t/location/location/contains\n0.621247\t0.137949\t0.883725\tsvetlana_kuznetsova\trussia\t/people/person/nationality\n0.619816\t0.137949\t0.882647\twisconsin\tberkeley\t/location/location/contains\n0.618391\t0.137949\t0.882610\tsusanne_bier\tindia\t/people/person/nationality\n0.616972\t0.137949\t0.882174\tsam_querrey\tspain\t/people/person/nationality\n0.615561\t0.137949\t0.881718\tkevin_walsh\tgeneral_electric\t/business/person/company\n0.614155\t0.137949\t0.881561\tvenus_williams\tfrance\t/people/person/nationality\n0.612756\t0.137949\t0.881343\tontario\tuniversity_of_windsor\t/location/location/contains\n0.613636\t0.138462\t0.881231\tzahra_eshraghi\tiran\t/people/person/nationality\n0.614512\t0.138974\t0.881160\titaly\tamalfi_coast\t/location/location/contains\n0.613122\t0.138974\t0.880853\tdavid_drummond\tgoogle\t/business/person/company\n0.611738\t0.138974\t0.880425\tsouth_carolina\tgraceland\t/location/location/contains\n0.612613\t0.139487\t0.879943\titaly\tlucca\t/location/location/contains\n0.613483\t0.140000\t0.879783\tcalisto_tanzi\tparmalat\t/business/person/company\n0.612108\t0.140000\t0.879745\tbrian_schweitzer\tmontana\t/people/person/place_lived\n0.610738\t0.140000\t0.879611\tgordon_brown\trussia\t/people/person/nationality\n0.609375\t0.140000\t0.878932\tgoogle\teric_e._schmidt\t/business/person/company\n0.610245\t0.140513\t0.878734\tsuffolk_county\teast_patchogue\t/location/location/contains\n0.611111\t0.141026\t0.878627\tmcalester\toklahoma_state_penitentiary\t/location/location/contains\n0.611973\t0.141538\t0.877977\thermann_göring\tgermany\t/people/person/nationality\n0.612832\t0.142051\t0.877805\tireland\tballintubber\t/location/location/contains\n0.613687\t0.142564\t0.877796\tgermany\twiesbaden\t/location/location/contains\n0.612335\t0.142564\t0.876945\twestchester_county\tpelham\t/location/location/contains\n0.613187\t0.143077\t0.876649\tron_dembo\tzerofootprint\t/business/person/company\n0.614035\t0.143590\t0.876607\tkris_gopalakrishnan\tindia\t/people/person/nationality\n0.614880\t0.144103\t0.876299\tbernadette_chirac\tfrance\t/people/person/nationality\n0.613537\t0.144103\t0.875839\tiowa\tsimpson_college\t/location/location/contains\n0.614379\t0.144615\t0.875557\tvermont\tsouth_burlington\t/location/location/contains\n0.613043\t0.144615\t0.875320\ttelevision\tgoogle\t/business/person/company\n0.613883\t0.145128\t0.875220\tjohn_farnham\taustralia\t/people/person/nationality\n0.614719\t0.145641\t0.875126\tboston\tisabella_stewart_gardner_museum\t/location/location/contains\n0.613391\t0.145641\t0.874748\trussia\tural_mountains\t/location/location/contains\n0.614224\t0.146154\t0.874464\tidaho\tsalmon_river\t/location/location/contains\n0.612903\t0.146154\t0.874391\tcalifornia\tst._thomas\t/location/location/contains\n0.611588\t0.146154\t0.874316\tbaltimore\tt._rowe_price\t/location/location/contains\n0.610278\t0.146154\t0.873912\tcalifornia\tsanta_monica_college\t/location/location/contains\n0.608974\t0.146154\t0.873208\tpaul_kagame\trwanda\t/people/person/nationality\n0.607676\t0.146154\t0.872797\tvirginia\tchatham\t/location/location/contains\n0.608511\t0.146667\t0.872610\tezra_pound\titaly\t/people/person/nationality\n0.609342\t0.147179\t0.872514\tjoyce_wieland\tcanada\t/people/person/nationality\n0.608051\t0.147179\t0.871928\toquossoc\trangeley_lake\t/location/location/contains\n0.608879\t0.147692\t0.871885\tspain\tcádiz\t/location/location/contains\n0.609705\t0.148205\t0.871262\tgermany\thanover\t/location/location/contains\n0.608421\t0.148205\t0.871216\tcarol_baum\tcreative_artists_agency\t/business/person/company\n0.607143\t0.148205\t0.870946\tcarlos_ruiz\tspain\t/people/person/nationality\n0.605870\t0.148205\t0.870833\tmaj-britt_nilsson\tfrance\t/people/person/nationality\n0.606695\t0.148718\t0.870772\tflorida\tdaytona_beach\t/location/location/contains\n0.605428\t0.148718\t0.869869\tvincent_paronnaud\tfrance\t/people/person/nationality\n0.604167\t0.148718\t0.869331\tflorida\tsouth_beach\t/location/location/contains\n0.604990\t0.149231\t0.868992\tcalifornia\tgardena\t/location/location/contains\n0.605809\t0.149744\t0.868840\trussia\tnovokuznetsk\t/location/location/contains\n0.606625\t0.150256\t0.867946\tcalabria\tcrotone\t/location/location/contains\n0.605372\t0.150256\t0.867472\tvermont\tgreen_mountain_college\t/location/location/contains\n0.604124\t0.150256\t0.867075\tgeorge_orwell\tspain\t/people/person/nationality\n0.602881\t0.150256\t0.866926\tasia\tdongguan\t/location/location/contains\n0.601643\t0.150256\t0.866635\tspringfield\tbaptist_bible_college\t/location/location/contains\n0.600410\t0.150256\t0.866474\tkentucky\tjamaica_estates\t/location/location/contains\n0.599182\t0.150256\t0.866306\tprince_edward_island\tpictou\t/location/location/contains\n0.600000\t0.150769\t0.865921\tjawaharlal_nehru\tindia\t/people/person/nationality\n0.598778\t0.150769\t0.865497\tchicago\tlake_michigan\t/location/location/contains\n0.597561\t0.150769\t0.865167\tsanford_i._weill\tcitigroup\t/business/person/company\n0.596349\t0.150769\t0.864896\tray_takeyh\tiran\t/people/person/nationality\n0.595142\t0.150769\t0.864667\ttom_stoppard\trussia\t/people/person/nationality\n0.595960\t0.151282\t0.864352\teugene_melnyk\tcanada\t/people/person/nationality\n0.594758\t0.151282\t0.864327\tcalifornia\tfort_bragg\t/location/location/contains\n0.593561\t0.151282\t0.864325\tlane_merrifield\tclub_penguin\t/business/person/company\n0.592369\t0.151282\t0.864219\tcalifornia\tharlingen\t/location/location/contains\n0.593186\t0.151795\t0.863906\tyelena_isinbayeva\trussia\t/people/person/nationality\n0.594000\t0.152308\t0.863866\tkristian_pless\tdenmark\t/people/person/nationality\n0.592814\t0.152308\t0.863720\tjason_mccartney\tgermany\t/people/person/nationality\n0.593625\t0.152821\t0.863604\tasia\tbishkek\t/location/location/contains\n0.594433\t0.153333\t0.863503\tdonald_e._graham\twashington_post_company\t/business/person/company\n0.595238\t0.153846\t0.863452\tmonmouth_county\tfreehold_township\t/location/location/contains\n0.594059\t0.153846\t0.862990\tmontreal_canadiens\tcanada\t/people/person/nationality\n0.594862\t0.154359\t0.862738\tjean-baptiste_colbert\tfrance\t/people/person/nationality\n0.595661\t0.154872\t0.861836\tandrea_bargnani\titaly\t/people/person/nationality\n0.594488\t0.154872\t0.861763\tisaac_goldberg\tpoland\t/people/person/nationality\n0.595285\t0.155385\t0.861071\tgermany\tvarel\t/location/location/contains\n0.596078\t0.155897\t0.859425\tratan_tata\tindia\t/people/person/nationality\n0.596869\t0.156410\t0.859367\talaska\twasilla\t/location/location/contains\n0.595703\t0.156410\t0.859346\tségolène_royal\tiran\t/people/person/nationality\n0.596491\t0.156923\t0.859310\tsani_abacha\tnigeria\t/people/person/nationality\n0.597276\t0.157436\t0.859264\tfranco_donatoni\titaly\t/people/person/nationality\n0.596117\t0.157436\t0.858968\teurajoki\tfinland\t/people/person/nationality\n0.594961\t0.157436\t0.858714\tnorway\tkvitfjell\t/location/location/contains\n0.595745\t0.157949\t0.858673\tmichael_j._critelli\tpitney_bowes\t/business/person/company\n0.594595\t0.157949\t0.858175\tcalifornia\twilshire_boulevard\t/location/location/contains\n0.593449\t0.157949\t0.857892\tmonmouth_county\twawa\t/location/location/contains\n0.594231\t0.158462\t0.857734\tzimbabwe\tmarondera\t/location/location/contains\n0.593090\t0.158462\t0.857615\talexander_grischuk\trussia\t/people/person/nationality\n0.593870\t0.158974\t0.857581\taroon_purie\tindia\t/people/person/nationality\n0.592734\t0.158974\t0.857473\twindisch\tgermany\t/people/person/nationality\n0.591603\t0.158974\t0.857044\tgreenwich\tbest_&_co.\t/location/location/contains\n0.592381\t0.159487\t0.856863\tmontana\tmissoula\t/location/location/contains\n0.593156\t0.160000\t0.856764\tphilippe_lucas\tfrance\t/people/person/nationality\n0.592030\t0.160000\t0.855694\tjames_bond\tfrance\t/people/person/nationality\n0.590909\t0.160000\t0.855131\toregon\treed_college\t/location/location/contains\n0.591682\t0.160513\t0.855116\tcarl_friedrich_von_weizsäcker\tgermany\t/people/person/nationality\n0.590566\t0.160513\t0.854609\tjack_abramoff\tscotland\t/people/person/nationality\n0.591337\t0.161026\t0.854371\tcalifornia\tcoronado\t/location/location/contains\n0.592105\t0.161538\t0.854301\tmarin_marais\tfrance\t/people/person/nationality\n0.592871\t0.162051\t0.854072\tindia\thampi\t/location/location/contains\n0.593633\t0.162564\t0.853389\tgermany\theilbronn\t/location/location/contains\n0.592523\t0.162564\t0.853126\tviktor_yushchenko\tukraine\t/people/person/nationality\n0.591418\t0.162564\t0.852970\tireland\tcounty_mayo\t/location/location/contains\n0.592179\t0.163077\t0.852953\tandré_boisclair\tcanada\t/people/person/nationality\n0.591078\t0.163077\t0.852640\tabdul_aziz_al-hakim\tiran\t/people/person/nationality\n0.591837\t0.163590\t0.852389\talain_chabat\tfrance\t/people/person/nationality\n0.592593\t0.164103\t0.851902\tjosef_ackermann\tdeutsche_bank\t/business/person/company\n0.591497\t0.164103\t0.851410\tcolorado\tdenison\t/location/location/contains\n0.592251\t0.164615\t0.851349\tmadaí_pérez\tmexico\t/people/person/nationality\n0.591160\t0.164615\t0.851205\tparis\trodin_museum\t/location/location/contains\n0.590074\t0.164615\t0.851040\tsan_francisco\tpeabody_school\t/location/location/contains\n0.588991\t0.164615\t0.850781\tmarlborough\tcytyc\t/location/location/contains\n0.587912\t0.164615\t0.849717\titaly\tuniversity_of_turin\t/location/location/contains\n0.588665\t0.165128\t0.849686\tpaul-henri_mathieu\tfrance\t/people/person/nationality\n0.587591\t0.165128\t0.849629\tlyndon_b._johnson\toklahoma\t/people/person/place_lived\n0.588342\t0.165641\t0.849128\tshanghai\ttongji_university\t/location/location/contains\n0.589091\t0.166154\t0.848939\tdavid_ben-gurion\tisrael\t/people/person/nationality\n0.589837\t0.166667\t0.848030\tolivier_assayas\tfrance\t/people/person/nationality\n0.588768\t0.166667\t0.847454\tlarry_ellison\toracle\t/business/person/company\n0.587703\t0.166667\t0.846737\ttechnorati\titaly\t/people/person/nationality\n0.586643\t0.166667\t0.846447\tjim_mccrery\tlouisiana\t/people/person/place_lived\n0.585586\t0.166667\t0.846079\tbanco_bilbao_vizcaya_argentaria\tspain\t/people/person/nationality\n0.584532\t0.166667\t0.845873\tboston\ttufts_university\t/location/location/contains\n0.583483\t0.166667\t0.845594\tcalifornia\tvang\t/location/location/contains\n0.582437\t0.166667\t0.845535\traleb_majadele\tisrael\t/people/person/nationality\n0.581395\t0.166667\t0.844753\tsri_lanka\tmalabe\t/location/location/contains\n0.582143\t0.167179\t0.844572\terich_ludendorff\tgermany\t/people/person/nationality\n0.582888\t0.167692\t0.844567\twisconsin\tlake_geneva\t/location/location/contains\n0.581851\t0.167692\t0.844446\tinternational_speedway_corporation\tfrance\t/people/person/nationality\n0.580817\t0.167692\t0.844285\tjacksonville\tfort_george_island\t/location/location/contains\n0.581560\t0.168205\t0.843688\tbrett_keller\tpriceline.com\t/business/person/company\n0.580531\t0.168205\t0.842887\tkentucky\tcherokee\t/location/location/contains\n0.581272\t0.168718\t0.842832\tspain\talicante\t/location/location/contains\n0.582011\t0.169231\t0.842719\tvenice\tpeggy_guggenheim_collection\t/location/location/contains\n0.580986\t0.169231\t0.842250\tunicredit\titaly\t/people/person/nationality\n0.581722\t0.169744\t0.841717\tvictoria_azarenka\tbelarus\t/people/person/nationality\n0.580702\t0.169744\t0.841536\tmarco_cappato\titaly\t/people/person/nationality\n0.581436\t0.170256\t0.841347\tolivier_dahan\tfrance\t/people/person/nationality\n0.582168\t0.170769\t0.841090\tparis\tgare_du_nord\t/location/location/contains\n0.581152\t0.170769\t0.840691\tmotown_records\tfrance\t/people/person/nationality\n0.580139\t0.170769\t0.840596\tjhoom_barabar_jhoom\tfrance\t/people/person/nationality\n0.579130\t0.170769\t0.839785\tgiorgio_moroder\tnorway\t/people/person/nationality\n0.578125\t0.170769\t0.839443\tconnecticut\tcornwall\t/location/location/contains\n0.577123\t0.170769\t0.839337\twestchester_county\tblue_hill\t/location/location/contains\n0.576125\t0.170769\t0.839221\tallen_ginsberg\tindia\t/people/person/nationality\n0.575130\t0.170769\t0.839088\twest_virginia\tblenko_glass_company\t/location/location/contains\n0.575862\t0.171282\t0.839031\tguerrero\tacapulco\t/location/location/contains\n0.576592\t0.171795\t0.839002\traymond_j._mcguire\tcitigroup\t/business/person/company\n0.575601\t0.171795\t0.838690\tgary_stevens\tfrance\t/people/person/nationality\n0.574614\t0.171795\t0.838623\tgermany\tshetland\t/location/location/contains\n0.573630\t0.171795\t0.838500\twilliam_s._paley\tcbs\t/business/person/company\n0.572650\t0.171795\t0.838378\tprague\tbarrandov_studios\t/location/location/contains\n0.571672\t0.171795\t0.838110\tcalifornia\ttucson_international_airport\t/location/location/contains\n0.570698\t0.171795\t0.837905\tflorida\ttaylor\t/location/location/contains\n0.571429\t0.172308\t0.837893\tcalifornia\tsan_jose\t/location/location/contains\n0.570458\t0.172308\t0.837709\tpeter_morgan\tscotland\t/people/person/nationality\n0.569492\t0.172308\t0.837343\tcalifornia\tsalinas_valley\t/location/location/contains\n0.568528\t0.172308\t0.837302\tidaho\tred_river\t/location/location/contains\n0.569257\t0.172821\t0.836418\tgermany\theidelberg\t/location/location/contains\n0.569983\t0.173333\t0.836353\tindiana\tgnaw_bone\t/location/location/contains\n0.570707\t0.173846\t0.836305\trenaud_donnedieu_de_vabres\tfrance\t/people/person/nationality\n0.571429\t0.174359\t0.836137\tturkey\tbodrum\t/location/location/contains\n0.572148\t0.174872\t0.836070\tgermany\tfreiburg\t/location/location/contains\n0.571189\t0.174872\t0.836061\tpeter_pace\tiran\t/people/person/nationality\n0.571906\t0.175385\t0.836019\tatlanta\tsweet_auburn\t/location/location/contains\n0.572621\t0.175897\t0.835868\tcyprus\tlarnaca\t/location/location/contains\n0.571667\t0.175897\t0.835443\tpeter_bragdon\tcolumbia_sportswear\t/business/person/company\n0.572379\t0.176410\t0.835356\tcolorado\tboulder\t/location/location/contains\n0.571429\t0.176410\t0.835314\tvittorio_storaro\tspain\t/people/person/nationality\n0.570481\t0.176410\t0.834601\tsam_querrey\tfrance\t/people/person/nationality\n0.569536\t0.176410\t0.834413\tspain\tchipiona\t/location/location/contains\n0.568595\t0.176410\t0.834327\tedward_fox\tfrance\t/people/person/nationality\n0.569307\t0.176923\t0.834114\tpeter_munk\tbarrick_gold\t/business/person/company\n0.568369\t0.176923\t0.833768\tbernhard_langer\tgermany\t/people/person/nationality\n0.567434\t0.176923\t0.833699\tnashville\tbelle_meade\t/location/location/contains\n0.568144\t0.177436\t0.833684\tkentucky\tchurchill_downs\t/location/location/contains\n0.567213\t0.177436\t0.833588\tswitzerland\tvevey\t/location/location/contains\n0.566285\t0.177436\t0.833321\toklahoma_city\talfred_p._murrah_federal_building\t/location/location/contains\n0.566993\t0.177949\t0.833237\tboston\tunion_oyster_house\t/location/location/contains\n0.567700\t0.178462\t0.833098\twisconsin\tmadison\t/location/location/contains\n0.566775\t0.178462\t0.833068\tyoutube\tchad_hurley\t/business/person/company\n0.565854\t0.178462\t0.832697\tgiulio_andreotti\titaly\t/people/person/nationality\n0.564935\t0.178462\t0.832496\tstelco\tcanada\t/people/person/nationality\n0.565640\t0.178974\t0.832496\ttunisia\tnabeul\t/location/location/contains\n0.564725\t0.178974\t0.832478\tmads_mikkelsen\tindia\t/people/person/nationality\n0.563813\t0.178974\t0.832368\talexander_stille\tfrance\t/people/person/nationality\n0.562903\t0.178974\t0.831774\tsharon_zukin\tbrooklyn_college\t/business/person/company\n0.561997\t0.178974\t0.831339\trussia\tsheepshead_bay\t/location/location/contains\n0.561093\t0.178974\t0.831321\tsmilebox\tgoogle\t/business/person/company\n0.560193\t0.178974\t0.830690\tjonathan_glazer\tscotland\t/people/person/nationality\n0.559295\t0.178974\t0.830529\tbobby_deol\tfrance\t/people/person/nationality\n0.558400\t0.178974\t0.830467\tasia\teastern_washington\t/location/location/contains\n0.559105\t0.179487\t0.830418\tnoam_sheriff\tisrael\t/people/person/nationality\n0.558214\t0.179487\t0.830071\tnew_york_city\tsouth_bronx\t/location/location/contains\n0.558917\t0.180000\t0.829929\tcolorado\tvail\t/location/location/contains\n0.558029\t0.180000\t0.829737\tshirley_yeung\tpccw\t/business/person/company\n0.557143\t0.180000\t0.829570\tnorth_dakota\tkeene\t/location/location/contains\n0.556260\t0.180000\t0.829554\twashington\twtop\t/location/location/contains\n0.555380\t0.180000\t0.829149\tportland\tbayside\t/location/location/contains\n0.556082\t0.180513\t0.828485\tpoland\tjaworzno\t/location/location/contains\n0.555205\t0.180513\t0.828445\taustralia\tmonash_university\t/location/location/contains\n0.554331\t0.180513\t0.828349\tnew_york_city\tfire_island\t/location/location/contains\n0.553459\t0.180513\t0.828308\taustralia\tport_melbourne\t/location/location/contains\n0.554160\t0.181026\t0.828252\tiran\tnatanz\t/location/location/contains\n0.553292\t0.181026\t0.828216\tmichael_bar-zohar\tisrael\t/people/person/nationality\n0.553991\t0.181538\t0.828089\tpaul_klee\tgermany\t/people/person/nationality\n0.554688\t0.182051\t0.827681\tnew_haven\tsouthern_connecticut_state_university\t/location/location/contains\n0.553822\t0.182051\t0.827623\tcosta_rica\tsan_jose\t/location/location/contains\n0.554517\t0.182564\t0.827361\tarturo_toscanini\titaly\t/people/person/nationality\n0.553655\t0.182564\t0.827227\tbanquo\titaly\t/people/person/nationality\n0.552795\t0.182564\t0.826570\tthomas_cech\thoward_hughes_medical_institute\t/business/person/company\n0.551938\t0.182564\t0.826525\taustralia\tpaula_wriedt\t/location/location/contains\n0.551084\t0.182564\t0.826393\tmary_e._minnick\tmuhtar_kent\t/business/person/company\n0.550232\t0.182564\t0.826173\tsylvester_stallone\taustralia\t/people/person/nationality\n0.549383\t0.182564\t0.825953\tgururaj_deshpande\tsycamore_networks\t/business/person/company\n0.548536\t0.182564\t0.825812\tvermont\tberkshire_county\t/location/location/contains\n0.549231\t0.183077\t0.825571\tsteve_newcomb\tpowerset\t/business/person/company\n0.548387\t0.183077\t0.825517\talaska\tbellingham\t/location/location/contains\n0.547546\t0.183077\t0.825099\tcarol_shea-porter\tnew_hampshire\t/people/person/place_lived\n0.548239\t0.183590\t0.824758\tidaho\tweiser\t/location/location/contains\n0.548930\t0.184103\t0.824697\tdavid_kenny\tdigitas\t/business/person/company\n0.549618\t0.184615\t0.824670\twole_soyinka\tnigeria\t/people/person/nationality\n0.550305\t0.185128\t0.824599\tnorth_beach\tsan_francisco\t/location/neighborhood/neighborhood_of\n0.549467\t0.185128\t0.824570\toakland\tbeth_eden_baptist_church\t/location/location/contains\n0.548632\t0.185128\t0.824536\tnuhu_ribadu\tnigeria\t/people/person/nationality\n0.547800\t0.185128\t0.824486\tconnecticut\thartford_civic_center\t/location/location/contains\n0.546970\t0.185128\t0.824012\tjohn_caplan\tford_models\t/business/person/company\n0.547655\t0.185641\t0.823807\tindia\tauroville\t/location/location/contains\n0.546828\t0.185641\t0.823736\tsyracuse\toswego\t/location/location/contains\n0.547511\t0.186154\t0.823485\tmexico\tpuerto_peñasco\t/location/location/contains\n0.546687\t0.186154\t0.823077\taustralia\tuniversity_of_adelaide\t/location/location/contains\n0.545865\t0.186154\t0.823075\tcalifornia\tnissin\t/location/location/contains\n0.545045\t0.186154\t0.822868\tvirginia\tmartinsville_speedway\t/location/location/contains\n0.545727\t0.186667\t0.822459\tatlanta\tgeorgia_aquarium\t/location/location/contains\n0.546407\t0.187179\t0.822235\tmaryland\tbaltimore\t/location/location/contains\n0.545590\t0.187179\t0.821977\tarvo_pärt\tdenmark\t/people/person/nationality\n0.546269\t0.187692\t0.821722\thelen_fisher\trutgers_university\t/business/person/company\n0.546945\t0.188205\t0.821302\tnew_york_city\tstaten_island\t/location/location/contains\n0.546131\t0.188205\t0.821103\tserbia\tmuslim\t/location/location/contains\n0.545319\t0.188205\t0.820584\tnina_tassler\tcbs\t/business/person/company\n0.544510\t0.188205\t0.820459\tmississippi\twillingboro\t/location/location/contains\n0.543704\t0.188205\t0.819995\tjay_rosen\tnew_york_university\t/business/person/company\n0.542899\t0.188205\t0.819781\tanthony_powell\tscotland\t/people/person/nationality\n0.542097\t0.188205\t0.819726\tkevin_lyons\trutgers_university\t/business/person/company\n0.541298\t0.188205\t0.819660\tbernard_kerik\tunited_states_of_america\t/people/person/nationality\n0.540501\t0.188205\t0.819388\tireland\tdonegal\t/location/location/contains\n0.541176\t0.188718\t0.819319\tnew_hampshire\tcannon_mountain\t/location/location/contains\n0.540382\t0.188718\t0.818400\telias_murr\tlebanon\t/people/person/nationality\n0.539589\t0.188718\t0.818321\terik_breukink\titaly\t/people/person/nationality\n0.538799\t0.188718\t0.817697\tcuba\twest_new_york\t/location/location/contains\n0.538012\t0.188718\t0.817270\tmarwan_barghouti\tisrael\t/people/person/nationality\n0.537226\t0.188718\t0.817246\tmayawati\tindia\t/people/person/nationality\n0.537901\t0.189231\t0.815972\tjennifer_botterill\tcanada\t/people/person/nationality\n0.537118\t0.189231\t0.815800\tdan_ariely\tmassachusetts_institute_of_technology\t/business/person/company\n0.537791\t0.189744\t0.815670\tgermany\trostock\t/location/location/contains\n0.538462\t0.190256\t0.815470\tderek_v._smith\tchoicepoint\t/business/person/company\n0.539130\t0.190769\t0.815368\tgermany\tkarlsruhe\t/location/location/contains\n0.539797\t0.191282\t0.815089\tcharles_fefferman\tprinceton_university\t/business/person/company\n0.539017\t0.191282\t0.814654\tswitzerland\tlucerne\t/location/location/contains\n0.539683\t0.191795\t0.814574\tseoul\tkorea_university\t/location/location/contains\n0.538905\t0.191795\t0.814328\twisconsin\tnew_hampshire\t/location/location/contains\n0.538129\t0.191795\t0.814205\tdavid_rieff\tfrance\t/people/person/nationality\n0.537356\t0.191795\t0.814016\tconnecticut\tbrattleboro\t/location/location/contains\n0.536585\t0.191795\t0.813731\tcalifornia\twest_valley_college\t/location/location/contains\n0.535817\t0.191795\t0.813369\tcharles_oman\tmassachusetts_institute_of_technology\t/business/person/company\n0.535050\t0.191795\t0.813031\tbertone\titaly\t/people/person/nationality\n0.534286\t0.191795\t0.810841\tedward_steichen\tfrance\t/people/person/nationality\n0.533524\t0.191795\t0.810289\trudi_völler\titaly\t/people/person/nationality\n0.534188\t0.192308\t0.810226\tvenice\tfondazione_querini_stampalia\t/location/location/contains\n0.534851\t0.192821\t0.810188\twatervliet\twatervliet_arsenal\t/location/location/contains\n0.534091\t0.192821\t0.809941\tcanada\tpearce\t/location/location/contains\n0.533333\t0.192821\t0.809513\ttoronto\ternst_&_young\t/location/location/contains\n0.533994\t0.193333\t0.809403\tted_sarandos\tnetflix\t/business/person/company\n0.533239\t0.193333\t0.808107\tabhishek_bachchan\tfrance\t/people/person/nationality\n0.533898\t0.193846\t0.807946\twestchester_county\tport_chester\t/location/location/contains\n0.534556\t0.194359\t0.807910\tvincent_pastore\titaly\t/people/person/nationality\n0.533803\t0.194359\t0.807870\tcalifornia\tpiedmont\t/location/location/contains\n0.534459\t0.194872\t0.807249\tarcata\thumboldt_state_university\t/location/location/contains\n0.533708\t0.194872\t0.807064\trosa_delauro\tconnecticut\t/people/person/place_lived\n0.534362\t0.195385\t0.806815\trockland_county\tblauvelt\t/location/location/contains\n0.533613\t0.195385\t0.806712\twashington\tadams_morgan\t/location/location/contains\n0.534266\t0.195897\t0.806367\talexander_downer\taustralia\t/people/person/nationality\n0.534916\t0.196410\t0.806144\tcalifornia\tlong_beach\t/location/location/contains\n0.535565\t0.196923\t0.805249\tsuffolk_county\tfire_island\t/location/location/contains\n0.534819\t0.196923\t0.805050\takio_morita\tsony\t/business/person/company\n0.534075\t0.196923\t0.804928\tcalifornia\taustralia\t/location/location/contains\n0.533333\t0.196923\t0.804534\tvitaly_i._churkin\trussia\t/people/person/nationality\n0.532594\t0.196923\t0.804499\tpaterson\teast_orange\t/location/location/contains\n0.533241\t0.197436\t0.804238\tendre_szervanszky\thungary\t/people/person/nationality\n0.532503\t0.197436\t0.804207\tcalifornia\tsan_diego_museum_of_art\t/location/location/contains\n0.533149\t0.197949\t0.804109\tcalifornia\tmonterey_bay\t/location/location/contains\n0.532414\t0.197949\t0.803564\tmaryland\tchicago\t/location/location/contains\n0.533058\t0.198462\t0.803342\tguanajuato\tmexico\t/location/administrative_division/country\n0.532325\t0.198462\t0.803179\tmartin_peretz\tisrael\t/people/person/nationality\n0.531593\t0.198462\t0.802806\tconnecticut\tlakeville\t/location/location/contains\n0.530864\t0.198462\t0.802780\tbaja_california\tcortez\t/location/location/contains\n0.530137\t0.198462\t0.802210\tyasser_arafat\tfrance\t/people/person/nationality\n0.529412\t0.198462\t0.801770\titaly\tuniversity_of_plymouth\t/location/location/contains\n0.530055\t0.198974\t0.801562\tconnecticut\thamden\t/location/location/contains\n0.529332\t0.198974\t0.801350\tkentucky\tlake_michigan\t/location/location/contains\n0.528610\t0.198974\t0.801303\tlee_h._hamilton\tiran\t/people/person/nationality\n0.527891\t0.198974\t0.801279\th._lee_scott_jr.\tthe_new_york_times\t/business/person/company\n0.528533\t0.199487\t0.800925\tgordon_m._bethune\tcontinental_airlines\t/business/person/company\n0.527815\t0.199487\t0.800510\tsan_fernando_valley\tstudio_city\t/location/location/contains\n0.528455\t0.200000\t0.800181\tgermany\tbad_soden\t/location/location/contains\n0.527740\t0.200000\t0.800157\tperformics\tgoogle\t/business/person/company\n0.528378\t0.200513\t0.799793\tbaltimore\twalters_art_museum\t/location/location/contains\n0.527665\t0.200513\t0.799282\tacademy_of_national_economy\trussia\t/people/person/nationality\n0.526954\t0.200513\t0.799181\ttom_cole\toklahoma\t/people/person/place_lived\n0.527591\t0.201026\t0.799076\tcalifornia\tvallejo\t/location/location/contains\n0.526882\t0.201026\t0.798987\tslovakia\tkosice\t/location/location/contains\n0.527517\t0.201538\t0.798635\tstaten_island\trichmond_valley\t/location/location/contains\n0.528150\t0.202051\t0.798604\ttoronto\tmassey_hall\t/location/location/contains\n0.527443\t0.202051\t0.797856\tmarco_andretti\tspain\t/people/person/nationality\n0.526738\t0.202051\t0.797585\tmanthia_diawara\tnew_york_university\t/business/person/company\n0.526035\t0.202051\t0.796487\tmelbourne_beach\tarchie_carr_national_wildlife_refuge\t/location/location/contains\n0.525333\t0.202051\t0.796465\tchicago\tsears_tower\t/location/location/contains\n0.525965\t0.202564\t0.795610\toakland\tsamuel_merritt_college\t/location/location/contains\n0.525266\t0.202564\t0.794721\toregon\tuniversity_of_portland\t/location/location/contains\n0.524568\t0.202564\t0.793731\trussia\talexander_kerensky\t/location/location/contains\n0.523873\t0.202564\t0.793555\ttoomas_hendrik_ilves\trussia\t/people/person/nationality\n0.524503\t0.203077\t0.793197\tking_county\tbellevue\t/location/location/contains\n0.525132\t0.203590\t0.793039\tkirk_fordice\tmississippi\t/people/person/place_lived\n0.524439\t0.203590\t0.792469\tmark_wallinger\tisrael\t/people/person/nationality\n0.525066\t0.204103\t0.791738\tcolorado\tfort_carson\t/location/location/contains\n0.524374\t0.204103\t0.791581\tjhoom_barabar_jhoom\tindia\t/people/person/nationality\n0.523684\t0.204103\t0.791376\tboston\tsuffolk_university\t/location/location/contains\n0.522996\t0.204103\t0.791277\tlos_angeles_county\tcharles_r._drew_university_of_medicine_and_science\t/location/location/contains\n0.523622\t0.204615\t0.790921\tjeffrey_a._citron\tvonage\t/business/person/company\n0.522936\t0.204615\t0.790901\titaly\tgardaland\t/location/location/contains\n0.522251\t0.204615\t0.790296\tgeorge_godwin\tzimbabwe\t/people/person/nationality\n0.521569\t0.204615\t0.789840\tjason_strudwick\tswitzerland\t/people/person/nationality\n0.520888\t0.204615\t0.789248\tmexico_city\ttabasco\t/location/location/contains\n0.520209\t0.204615\t0.788276\tnew_york_city\tst._george\t/location/location/contains\n0.520833\t0.205128\t0.788067\tvermont\tjay_peak\t/location/location/contains\n0.520156\t0.205128\t0.787396\trussia\ttallinn\t/location/location/contains\n0.519481\t0.205128\t0.787260\tlangston_hughes\tspain\t/people/person/nationality\n0.518807\t0.205128\t0.786977\tfairfield_county\tnew_haven_county\t/location/location/contains\n0.518135\t0.205128\t0.786870\tgary_tinterow\tfrance\t/people/person/nationality\n0.517464\t0.205128\t0.786681\tmariana_islands\tsaipan\t/location/location/contains\n0.518088\t0.205641\t0.786678\tmexico\ttulum\t/location/location/contains\n0.517419\t0.205641\t0.786626\tthorpe\taustralia\t/people/person/nationality\n0.518041\t0.206154\t0.786058\tdelaware\tocean_view\t/location/location/contains\n0.517375\t0.206154\t0.785899\testrella_morente\tspain\t/people/person/nationality\n0.516710\t0.206154\t0.785869\trhode_island\tjohnson_&_wales_university\t/location/location/contains\n0.516046\t0.206154\t0.785701\thcl_technologies\tindia\t/people/person/nationality\n0.515385\t0.206154\t0.785557\tulster_county\tnew_york_city\t/location/location/contains\n0.514725\t0.206154\t0.785062\tstaten_island\tcharleston\t/location/location/contains\n0.515345\t0.206667\t0.784595\trussia\ttomsk\t/location/location/contains\n0.515964\t0.207179\t0.784395\tnancy_huston\tcanada\t/people/person/nationality\n0.516582\t0.207692\t0.784188\tnigeria\tuyo\t/location/location/contains\n0.515924\t0.207692\t0.783796\tf._landa_jocano\tuniversity_of_chicago\t/business/person/company\n0.515267\t0.207692\t0.783439\titaly\tsan_remo\t/location/location/contains\n0.515883\t0.208205\t0.782972\titaly\tumbria\t/location/location/contains\n0.516497\t0.208718\t0.782767\tgermany\tjena\t/location/location/contains\n0.515843\t0.208718\t0.782466\tminnesota\tlarchmont\t/location/location/contains\n0.515190\t0.208718\t0.782380\tmichoacán\tguanajuato\t/location/location/contains\n0.514539\t0.208718\t0.781985\tmike_huckabee\tiowa\t/people/person/place_lived\n0.513889\t0.208718\t0.781810\tchris_van_hollen\tmaryland\t/people/person/place_lived\n0.514502\t0.209231\t0.781619\talaska\tketchikan\t/location/location/contains\n0.513854\t0.209231\t0.781163\tjalisco\tnational_autonomous_university_of_mexico\t/location/location/contains\n0.514465\t0.209744\t0.781089\tmaryland\tcarroll_county\t/location/location/contains\n0.513819\t0.209744\t0.780176\tsallai_meridor\tisrael\t/people/person/nationality\n0.514429\t0.210256\t0.779992\tnorth_adams\tmassachusetts_museum_of_contemporary_art\t/location/location/contains\n0.515038\t0.210769\t0.779629\thugo_sánchez\tmexico\t/people/person/nationality\n0.515645\t0.211282\t0.779572\tgene_taylor\tmississippi\t/people/person/place_lived\n0.515000\t0.211282\t0.779384\tflorida\ttejon_ranch\t/location/location/contains\n0.514357\t0.211282\t0.779292\tgeorge_h._w._bush\tgermany\t/people/person/nationality\n0.514963\t0.211795\t0.778870\titaly\tivrea\t/location/location/contains\n0.514321\t0.211795\t0.778552\trobert_lutz\tgeneral_motors\t/business/person/company\n0.514925\t0.212308\t0.778531\tkenneth_whyte\tcanada\t/people/person/nationality\n0.514286\t0.212308\t0.778397\tflorida\tuniversity_of_miami\t/location/location/contains\n0.513648\t0.212308\t0.777576\tmontecatini\titaly\t/people/person/nationality\n0.513011\t0.212308\t0.777137\tanton_rubinstein\tgermany\t/people/person/nationality\n0.513614\t0.212821\t0.777060\tmichael_moritz\tsequoia_capital\t/business/person/company\n0.512979\t0.212821\t0.776006\ttom_feeney\tflorida\t/people/person/place_lived\n0.513580\t0.213333\t0.775512\tscottsdale\ttaliesin_west\t/location/location/contains\n0.512947\t0.213333\t0.775424\tspain\taranjuez\t/location/location/contains\n0.512315\t0.213333\t0.775234\tcanada\tuniversity_of_waterloo\t/location/location/contains\n0.511685\t0.213333\t0.775004\tsouth_asia\tthe_new_york_times\t/location/location/contains\n0.511057\t0.213333\t0.774759\tontario\twoodstock\t/location/location/contains\n0.511656\t0.213846\t0.774654\tdan_halutz\tisrael\t/people/person/nationality\n0.511029\t0.213846\t0.774521\tulyanovsk\trussia\t/people/person/nationality\n0.511628\t0.214359\t0.774413\taustralia\tnational_gallery_of_victoria\t/location/location/contains\n0.511002\t0.214359\t0.774330\tsean_varah\tsony\t/business/person/company\n0.511600\t0.214872\t0.774220\titaly\tpisciotta\t/location/location/contains\n0.510976\t0.214872\t0.773927\tcalifornia\thouston\t/location/location/contains\n0.511571\t0.215385\t0.773160\tchris_guccione\taustralia\t/people/person/nationality\n0.510949\t0.215385\t0.772985\tdenmark\tuniversity_of_copenhagen\t/location/location/contains\n0.511543\t0.215897\t0.772748\trussia\tarkhangelsk\t/location/location/contains\n0.512136\t0.216410\t0.772584\tbrian_nellis\toklahoma\t/people/person/place_lived\n0.512727\t0.216923\t0.772289\traoul_bova\titaly\t/people/person/nationality\n0.512107\t0.216923\t0.772132\tcalifornia\tleo_carrillo\t/location/location/contains\n0.512696\t0.217436\t0.771528\tricardo_bofill\tspain\t/people/person/nationality\n0.512077\t0.217436\t0.771342\tnashville\tfisk_university\t/location/location/contains\n0.511460\t0.217436\t0.770781\tprince_william_county\tpotomac_mills\t/location/location/contains\n0.512048\t0.217949\t0.770750\tasia\tmacau\t/location/location/contains\n0.511432\t0.217949\t0.770411\tken_kutaragi\tsony\t/business/person/company\n0.510817\t0.217949\t0.770198\tspain\tpeggy_guggenheim_collection\t/location/location/contains\n0.511405\t0.218462\t0.770031\tulrich_mühe\tgermany\t/people/person/nationality\n0.510791\t0.218462\t0.769807\tbrendan_shanahan\tcanada\t/people/person/nationality\n0.511377\t0.218974\t0.769639\tlos_angeles_county\tmalibu\t/location/location/contains\n0.511962\t0.219487\t0.769072\tthailand\tchiang_mai\t/location/location/contains\n0.512545\t0.220000\t0.768855\tberlin\tmitte\t/location/location/contains\n0.513126\t0.220513\t0.767005\tarkansas\tarkadelphia\t/location/location/contains\n0.512515\t0.220513\t0.766211\trochester\tgeorge_eastman_house\t/location/location/contains\n0.511905\t0.220513\t0.766049\tcharles_b._rangel\tmontana\t/people/person/place_lived\n0.511296\t0.220513\t0.766016\tmike_huckabee\twisconsin\t/people/person/place_lived\n0.511876\t0.221026\t0.765886\tsarika\tindia\t/people/person/nationality\n0.512456\t0.221538\t0.765787\tjosé_luis_rodríguez_zapatero\tspain\t/people/person/nationality\n0.511848\t0.221538\t0.765450\tportugal\tnational_museum_of_african_art\t/location/location/contains\n0.511243\t0.221538\t0.765351\tnizhny_novgorod\trussia\t/location/administrative_division/country\n0.510638\t0.221538\t0.764831\tenrique_peña_nieto\tmexico\t/people/person/nationality\n0.511216\t0.222051\t0.764758\tsuffolk_county\tyaphank\t/location/location/contains\n0.511792\t0.222564\t0.764709\tindia\tmera\t/location/location/contains\n0.511190\t0.222564\t0.764634\tjames_bond\tpoland\t/people/person/nationality\n0.510588\t0.222564\t0.764329\tcalifornia\tculinary_institute_of_america\t/location/location/contains\n0.509988\t0.222564\t0.763909\tcalifornia\tlivingston\t/location/location/contains\n0.509390\t0.222564\t0.763695\titaly\tpalazzo_strozzi\t/location/location/contains\n0.509965\t0.223077\t0.763561\tontario\tbrantford\t/location/location/contains\n0.509368\t0.223077\t0.763532\tmenton\taristide_briand\t/location/location/contains\n0.509942\t0.223590\t0.763047\titaly\tfiesole\t/location/location/contains\n0.509346\t0.223590\t0.762507\tbangkok\tbaker_&_mckenzie\t/location/location/contains\n0.509918\t0.224103\t0.762169\tisrael\tra'anana\t/location/location/contains\n0.509324\t0.224103\t0.761732\tnolbert_kunonga\tzimbabwe\t/people/person/nationality\n0.508731\t0.224103\t0.761483\tnew_brunswick\trobert_wood_johnson_university_hospital\t/location/location/contains\n0.508140\t0.224103\t0.760868\tnorthern_ireland\tlisburn\t/location/location/contains\n0.508711\t0.224615\t0.760814\tmohammad_soleimani\tiran\t/people/person/nationality\n0.509281\t0.225128\t0.759678\tjeanne_moreau\tfrance\t/people/person/nationality\n0.508691\t0.225128\t0.758873\tinteroil\taustralia\t/people/person/nationality\n0.509259\t0.225641\t0.758284\trussia\tulyanovsk\t/location/location/contains\n0.508671\t0.225641\t0.758205\tchicago\twinston_&_strawn\t/location/location/contains\n0.508083\t0.225641\t0.757767\tontario\tuniversity_of_waterloo\t/location/location/contains\n0.508651\t0.226154\t0.757459\tomaha\tcreighton_university\t/location/location/contains\n0.508065\t0.226154\t0.757361\tasia\tjakarta\t/location/location/contains\n0.507480\t0.226154\t0.757081\tjudith_resnik\tyale_law_school\t/business/person/company\n0.506897\t0.226154\t0.757068\tyoutube\tgoogle\t/business/person/company\n0.507463\t0.226667\t0.756512\tflorida\tbroward_county\t/location/location/contains\n0.508028\t0.227179\t0.756466\tj._b._van_hollen\twisconsin\t/people/person/place_lived\n0.507446\t0.227179\t0.756361\tdaytona_beach\tinternational_speedway_corporation\t/location/location/contains\n0.508009\t0.227692\t0.755291\taustralia\tadelaide\t/location/location/contains\n0.507429\t0.227692\t0.755262\tvirginia\tlourdes\t/location/location/contains\n0.506849\t0.227692\t0.755179\twest_virginia\tmississippi_state\t/location/location/contains\n0.506271\t0.227692\t0.754884\tflavia_colgan\titaly\t/people/person/nationality\n0.505695\t0.227692\t0.754647\tonondaga\tsyracuse\t/location/location/contains\n0.505119\t0.227692\t0.754611\tflavia_rigamonti\tswitzerland\t/people/person/nationality\n0.504545\t0.227692\t0.754549\tconnecticut\tberkshire_county\t/location/location/contains\n0.503973\t0.227692\t0.753779\tgiuliano_amato\titaly\t/people/person/nationality\n0.504535\t0.228205\t0.753677\tumbria\titaly\t/location/administrative_division/country\n0.503964\t0.228205\t0.753529\tthe_salt_lake_tribune\tgoogle\t/business/person/company\n0.503394\t0.228205\t0.752993\tnormandy\tlanquetot\t/location/location/contains\n0.502825\t0.228205\t0.751243\tvicente_amigo\tspain\t/people/person/nationality\n0.502257\t0.228205\t0.751110\tgordon_johndroe\tunited_kingdom\t/people/person/nationality\n0.501691\t0.228205\t0.750747\twestchester_county\tkykuit\t/location/location/contains\n0.501126\t0.228205\t0.750555\twallace_stegner\tstanford_university\t/business/person/company\n0.500562\t0.228205\t0.750157\tcalifornia\tunited_states_court_of_appeals_for_the_district_of_columbia_circuit\t/location/location/contains\n0.501124\t0.228718\t0.749642\tkyrgyzstan\tbishkek\t/location/location/contains\n0.500561\t0.228718\t0.749548\tmoscow_state_university\trussia\t/people/person/nationality\n0.501121\t0.229231\t0.749320\tindia\tdharamsala\t/location/location/contains\n0.500560\t0.229231\t0.749250\tbuffalo\tthomas_vanek\t/location/location/contains\n0.500000\t0.229231\t0.749189\tport_washington\tmanhasset\t/location/location/contains\n0.499441\t0.229231\t0.749083\ttimothy_wilson\tuniversity_of_virginia\t/business/person/company\n0.498884\t0.229231\t0.748254\tgeorge_c._wolfe\tkentucky\t/people/person/place_lived\n0.498328\t0.229231\t0.748228\tnew_york_city\tcolony_club\t/location/location/contains\n0.497773\t0.229231\t0.747899\tmark_souder\tindiana\t/people/person/place_lived\n0.497219\t0.229231\t0.747545\tukraine\tirkutsk\t/location/location/contains\n0.496667\t0.229231\t0.747266\tparamus\twestfield_garden_state_plaza\t/location/location/contains\n0.497225\t0.229744\t0.747098\tsouth_lake_union\tseattle\t/location/neighborhood/neighborhood_of\n0.496674\t0.229744\t0.747093\tcolorado\tsan_juan\t/location/location/contains\n0.497231\t0.230256\t0.746579\tsaskatchewan\tmoose_jaw\t/location/location/contains\n0.496681\t0.230256\t0.745742\tmississippi\toxford\t/location/location/contains\n0.496133\t0.230256\t0.745657\tjorge_garbajosa\titaly\t/people/person/nationality\n0.495585\t0.230256\t0.745319\tminnesota\trochester\t/location/location/contains\n0.496141\t0.230769\t0.745230\tatlanta\tmorehouse_school_of_medicine\t/location/location/contains\n0.495595\t0.230769\t0.745073\tsarah_jamieson\tcanada\t/people/person/nationality\n0.496150\t0.231282\t0.745021\tlouisiana\tbarksdale_air_force_base\t/location/location/contains\n0.496703\t0.231795\t0.745019\trajiv_gandhi\tindia\t/people/person/nationality\n0.496158\t0.231795\t0.744559\twest_yorkshire\tbirmingham\t/location/location/contains\n0.496711\t0.232308\t0.744484\tjames_heckman\tuniversity_of_chicago\t/business/person/company\n0.497262\t0.232821\t0.744386\tgermany\therzogenaurach\t/location/location/contains\n0.497812\t0.233333\t0.744351\tlouisville\tchurchill_downs\t/location/location/contains\n0.498361\t0.233846\t0.744190\tflorida\tpalm_harbor\t/location/location/contains\n0.497817\t0.233846\t0.743810\tivan_basso\tfrance\t/people/person/nationality\n0.498364\t0.234359\t0.743715\tnorth_creek\tgore_mountain\t/location/location/contains\n0.497821\t0.234359\t0.743577\tcalifornia\tquantico\t/location/location/contains\n0.497280\t0.234359\t0.743505\tlouisiana\tcleveland\t/location/location/contains\n0.496739\t0.234359\t0.743164\tconnie_mack\tflorida\t/people/person/place_lived\n0.496200\t0.234359\t0.743154\tflorida\tglendale\t/location/location/contains\n0.496746\t0.234872\t0.742996\tivan_basso\titaly\t/people/person/nationality\n0.496208\t0.234872\t0.742874\tsouth_africa\tvodacom\t/location/location/contains\n0.496753\t0.235385\t0.742713\tboston\tfenway_park\t/location/location/contains\n0.496216\t0.235385\t0.742421\tjamie_anderson\taustralia\t/people/person/nationality\n0.496760\t0.235897\t0.742405\tiowa\tankeny\t/location/location/contains\n0.497303\t0.236410\t0.742189\tbelarus\tvitebsk\t/location/location/contains\n0.496767\t0.236410\t0.741828\twestchester_county\tlakeland\t/location/location/contains\n0.496233\t0.236410\t0.741390\tdesmond_guinness\tireland\t/people/person/nationality\n0.496774\t0.236923\t0.741111\tgermany\tstuttgart\t/location/location/contains\n0.496241\t0.236923\t0.740985\tmaurizio_gherardini\titaly\t/people/person/nationality\n0.495708\t0.236923\t0.740796\tmississippi\tpaterson\t/location/location/contains\n0.495177\t0.236923\t0.739785\tthomas_krens\tspain\t/people/person/nationality\n0.495717\t0.237436\t0.739687\tnorway\tlillehammer\t/location/location/contains\n0.495187\t0.237436\t0.739449\tfairfield_county\tnew_haven\t/location/location/contains\n0.494658\t0.237436\t0.739371\tvittorio_storaro\titaly\t/people/person/nationality\n0.494130\t0.237436\t0.739307\tsuffolk_county\tbrentwood\t/location/location/contains\n0.493603\t0.237436\t0.739047\tmontana\tyellowstone_club\t/location/location/contains\n0.493078\t0.237436\t0.738904\temma_goldman\tfrance\t/people/person/nationality\n0.492553\t0.237436\t0.738542\tleskovac\tserbia\t/people/person/nationality\n0.492030\t0.237436\t0.738046\tdavid_collings\titaly\t/people/person/nationality\n0.491507\t0.237436\t0.737759\tvanessa_redgrave\tiran\t/people/person/nationality\n0.492047\t0.237949\t0.737281\tpranab_mukherjee\tindia\t/people/person/nationality\n0.492585\t0.238462\t0.737196\tasia\tkyrgyzstan\t/location/location/contains\n0.492063\t0.238462\t0.737118\trainer_maria_rilke\tgermany\t/people/person/nationality\n0.492600\t0.238974\t0.737017\tjens_voigt\tgermany\t/people/person/nationality\n0.492080\t0.238974\t0.736829\titaly\tuniversity_of_ferrara\t/location/location/contains\n0.492616\t0.239487\t0.736781\tian_bogost\tgeorgia_institute_of_technology\t/business/person/company\n0.493151\t0.240000\t0.736676\tasia\tkabul\t/location/location/contains\n0.493684\t0.240513\t0.736512\taziz_pahad\tsouth_africa\t/people/person/nationality\n0.494217\t0.241026\t0.736279\tfinland\tturku\t/location/location/contains\n0.493697\t0.241026\t0.736090\tslovakia\ttranspetrol\t/location/location/contains\n0.494229\t0.241538\t0.735816\tgötz_aly\tgermany\t/people/person/nationality\n0.494759\t0.242051\t0.735286\tgiuseppe_verdi\titaly\t/people/person/nationality\n0.495288\t0.242564\t0.735233\tvirginia\tunited_states_of_america\t/location/administrative_division/country\n0.495816\t0.243077\t0.734777\tstaten_island\tfort_wadsworth\t/location/location/contains\n0.495298\t0.243077\t0.734702\tcalifornia\to.c.\t/location/location/contains\n0.494781\t0.243077\t0.734625\tceline_dion\tswitzerland\t/people/person/nationality\n0.495308\t0.243590\t0.734018\tsteve_king\tiowa\t/people/person/place_lived\n0.494792\t0.243590\t0.733955\tcalcata\titaly\t/people/person/nationality\n0.495317\t0.244103\t0.733854\tminnesota\twarroad\t/location/location/contains\n0.494802\t0.244103\t0.733660\tcalifornia\triviera\t/location/location/contains\n0.495327\t0.244615\t0.733082\tpaolo_scaroni\teni\t/business/person/company\n0.494813\t0.244615\t0.732075\tstaten_island\tbloomfield\t/location/location/contains\n0.495337\t0.245128\t0.732033\tgermany\tkiel\t/location/location/contains\n0.495859\t0.245641\t0.731968\tminnesota\tinternational_falls\t/location/location/contains\n0.495346\t0.245641\t0.731506\twilliam_k._reilly\tstanford_university\t/business/person/company\n0.494835\t0.245641\t0.730696\tjane_austen\tfrance\t/people/person/nationality\n0.494324\t0.245641\t0.730443\trob_simmons\tconnecticut\t/people/person/place_lived\n0.493814\t0.245641\t0.730144\tcalifornia\tpeter_cooper_village\t/location/location/contains\n0.494336\t0.246154\t0.730097\tcalifornia\tsan_francisco\t/location/location/contains\n0.493827\t0.246154\t0.729934\tthe_daily_telegraph\taustralia\t/people/person/nationality\n0.493320\t0.246154\t0.729357\tswitzerland\tlake_lucerne\t/location/location/contains\n0.492813\t0.246154\t0.729208\twestchester_county\tbronx_river\t/location/location/contains\n0.492308\t0.246154\t0.728745\tpyotr_popov\tsoviet_union\t/people/person/nationality\n0.491803\t0.246154\t0.728718\tclemente_mastella\titaly\t/people/person/nationality\n0.491300\t0.246154\t0.728159\tcanwest_global_communications\tcanada\t/people/person/nationality\n0.490798\t0.246154\t0.728137\tcolumbia_county\tchatham\t/location/location/contains\n0.491318\t0.246667\t0.728062\tvermont\tascutney\t/location/location/contains\n0.491837\t0.247179\t0.727934\tmads_mikkelsen\tdenmark\t/people/person/nationality\n0.491335\t0.247179\t0.726871\to'neill\trussia\t/people/person/nationality\n0.490835\t0.247179\t0.726864\tscott_dunlap\tnearbynow\t/business/person/company\n0.490336\t0.247179\t0.725680\tjames_kakalios\tuniversity_of_minnesota\t/business/person/company\n0.489837\t0.247179\t0.725466\titaly\tuffizi_gallery\t/location/location/contains\n0.489340\t0.247179\t0.725353\tasia\tyasukuni_shrine\t/location/location/contains\n0.489858\t0.247692\t0.725281\ttoronto\tbata_shoe_museum\t/location/location/contains\n0.489362\t0.247692\t0.724804\tcalifornia\tmontana\t/location/location/contains\n0.488866\t0.247692\t0.724471\tparis\tvendôme\t/location/location/contains\n0.488372\t0.247692\t0.724450\tjohn_mcadam\timperial\t/business/person/company\n0.488889\t0.248205\t0.724394\tireland\tcork\t/location/location/contains\n0.489405\t0.248718\t0.724248\tchicago\tunited_center\t/location/location/contains\n0.489919\t0.249231\t0.724050\tmike_hampton\tatlanta\t/people/person/place_lived\n0.489426\t0.249231\t0.723932\tpeter_pace\taustralia\t/people/person/nationality\n0.489940\t0.249744\t0.723931\tmemphis\tgraceland\t/location/location/contains\n0.490452\t0.250256\t0.722647\tpaul_andreu\tfrance\t/people/person/nationality\n0.489960\t0.250256\t0.722264\tfreddy_rodriguez\tdominican_republic\t/people/person/nationality\n0.489468\t0.250256\t0.722125\tvirginia\tkingsmill\t/location/location/contains\n0.488978\t0.250256\t0.722021\titaly\tvilla_san_michele\t/location/location/contains\n0.489489\t0.250769\t0.721585\tindia\tgoa\t/location/location/contains\n0.489000\t0.250769\t0.721341\telkhonon_goldberg\tnew_york_university\t/business/person/company\n0.488511\t0.250769\t0.721038\tseattle\tgrandview\t/location/location/contains\n0.488024\t0.250769\t0.720955\tcanada\tteaneck\t/location/location/contains\n0.487537\t0.250769\t0.720657\tmonkey_world\tspain\t/people/person/nationality\n0.487052\t0.250769\t0.720547\tjerusalem\ttemple\t/location/location/contains\n0.487562\t0.251282\t0.720289\tluciano_berio\titaly\t/people/person/nationality\n0.487078\t0.251282\t0.720014\taustralia\tunited_kingdom\t/location/administrative_division/country\n0.487587\t0.251795\t0.720009\tnorth_dakota\tfort_yates\t/location/location/contains\n0.488095\t0.252308\t0.719735\tcalifornia\tcarpinteria\t/location/location/contains\n0.487611\t0.252308\t0.718903\tdavid_dagon\tgeorgia_institute_of_technology\t/business/person/company\n0.487129\t0.252308\t0.718454\tjack_m._wilson\tuniversity_of_massachusetts\t/business/person/company\n0.486647\t0.252308\t0.718333\tgeorge_maciunas\tgermany\t/people/person/nationality\n0.487154\t0.252821\t0.718123\tindia\thyderabad\t/location/location/contains\n0.487660\t0.253333\t0.718023\tcalifornia\tsan_leandro\t/location/location/contains\n0.487179\t0.253333\t0.717973\trusal\trussia\t/people/person/nationality\n0.486700\t0.253333\t0.717847\tamsterdam\tgelderland\t/location/location/contains\n0.486220\t0.253333\t0.717728\toklahoma\tponca\t/location/location/contains\n0.485742\t0.253333\t0.717662\trepublic_of_ireland\tscotland\t/location/administrative_division/country\n0.485265\t0.253333\t0.717548\tflorida\tindian_river\t/location/location/contains\n0.484789\t0.253333\t0.717343\tunited_kingdom\tgrimshaw\t/location/location/contains\n0.485294\t0.253846\t0.716955\tflorida\tpanama_city_beach\t/location/location/contains\n0.485798\t0.254359\t0.716761\tleonardo_da_vinci\titaly\t/people/person/nationality\n0.485323\t0.254359\t0.716744\tflorida\ttvr\t/location/location/contains\n0.484848\t0.254359\t0.716547\tvirginia\tadams_morgan\t/location/location/contains\n0.485352\t0.254872\t0.716441\tiowa\twaverly\t/location/location/contains\n0.485854\t0.255385\t0.716065\tjacques_chirac\tfrance\t/people/person/nationality\n0.485380\t0.255385\t0.715906\tglen_tetley\tgermany\t/people/person/nationality\n0.485881\t0.255897\t0.715800\tmexico\tquerétaro\t/location/location/contains\n0.485409\t0.255897\t0.714691\tcalifornia\tunion_beach\t/location/location/contains\n0.485909\t0.256410\t0.714594\tturkey\tankara\t/location/location/contains\n0.485437\t0.256410\t0.714236\tsonoma_county\toccidental\t/location/location/contains\n0.484966\t0.256410\t0.714188\tjean-claude_brialy\tparis\t/people/deceased_person/place_of_death\n0.485465\t0.256923\t0.714095\tsouth_carolina\tcharleston\t/location/location/contains\n0.485963\t0.257436\t0.713574\tspain\tcáceres\t/location/location/contains\n0.486460\t0.257949\t0.713399\tontario\tniagara_falls\t/location/location/contains\n0.486957\t0.258462\t0.713266\therat_province\tshindand\t/location/location/contains\n0.486486\t0.258462\t0.713190\thouston_nutt\tarkansas\t/people/person/place_lived\n0.486982\t0.258974\t0.713166\tmexico\tciudad_juárez\t/location/location/contains\n0.487476\t0.259487\t0.712510\treza_aslan\tiran\t/people/person/nationality\n0.487007\t0.259487\t0.712478\tgermany\tfimat_banque\t/location/location/contains\n0.487500\t0.260000\t0.712357\tminnesota\tmankato\t/location/location/contains\n0.487032\t0.260000\t0.711896\tjosé_bové\tfrance\t/people/person/nationality\n0.486564\t0.260000\t0.711847\tcanada\tuniversity_of_british_columbia\t/location/location/contains\n0.487057\t0.260513\t0.711341\tkamal_nath\tindia\t/people/person/nationality\n0.487548\t0.261026\t0.711303\tgermany\tmunich\t/location/location/contains\n0.487081\t0.261026\t0.709715\tshirley_temple\taustralia\t/people/person/nationality\n0.486616\t0.261026\t0.709471\tgermany\tdeutsche_bahn\t/location/location/contains\n0.486151\t0.261026\t0.709224\tjaouad_gharib\titaly\t/people/person/nationality\n0.485687\t0.261026\t0.708675\titaly\tbertone\t/location/location/contains\n0.486177\t0.261538\t0.708130\tecuador\totavalo\t/location/location/contains\n0.486667\t0.262051\t0.707626\tspain\tvalencia\t/location/location/contains\n0.487155\t0.262564\t0.707499\tflorida\ttampa\t/location/location/contains\n0.487643\t0.263077\t0.707097\tsouth_korea\tyeongcheon\t/location/location/contains\n0.488129\t0.263590\t0.707037\tmexico\tcabo_san_lucas\t/location/location/contains\n0.487666\t0.263590\t0.706729\tbardolino\titaly\t/people/person/nationality\n0.487204\t0.263590\t0.706594\tstaten_island\tlivingston\t/location/location/contains\n0.486742\t0.263590\t0.706350\tjeb_bradley\tnew_hampshire\t/people/person/place_lived\n0.486282\t0.263590\t0.705322\thisham_matar\tlibya\t/people/person/nationality\n0.486767\t0.264103\t0.705304\tidaho\tgreenleaf\t/location/location/contains\n0.487252\t0.264615\t0.704228\tgary_becker\tuniversity_of_chicago\t/business/person/company\n0.486792\t0.264615\t0.703946\toklahoma\tsanta_monica_college\t/location/location/contains\n0.487276\t0.265128\t0.703855\tmississippi\ttunica\t/location/location/contains\n0.486817\t0.265128\t0.702964\tvirginia\thampton_university\t/location/location/contains\n0.486359\t0.265128\t0.702390\tcalifornia\trockville_centre\t/location/location/contains\n0.485902\t0.265128\t0.702235\tflorida\tepcot\t/location/location/contains\n0.485446\t0.265128\t0.701780\trex_w._tillerson\tgoogle\t/business/person/company\n0.484991\t0.265128\t0.701349\tnew_york_city\tmonticello\t/location/location/contains\n0.485473\t0.265641\t0.700707\tnew_york_city\twashington_heights\t/location/location/contains\n0.485019\t0.265641\t0.700521\tdreamworks\tindia\t/people/person/nationality\n0.485500\t0.266154\t0.699844\ttony_parker\tfrance\t/people/person/nationality\n0.485981\t0.266667\t0.699305\tflorida\tjacksonville\t/location/location/contains\n0.485528\t0.266667\t0.699195\tfrankfurter_allgemeine_zeitung\tgermany\t/people/person/nationality\n0.485075\t0.266667\t0.698906\tcalifornia\tyuma\t/location/location/contains\n0.485555\t0.267179\t0.698454\twestchester_county\tchappaqua\t/location/location/contains\n0.486034\t0.267692\t0.697769\tmarco_materazzi\titaly\t/people/person/nationality\n0.485581\t0.267692\t0.697704\twest_texas\tlaredo\t/location/location/contains\n0.485130\t0.267692\t0.696624\tmexico\tgonzález\t/location/location/contains\n0.485608\t0.268205\t0.696475\tsuffolk_county\tkings_park\t/location/location/contains\n0.485158\t0.268205\t0.696309\tbaltimore\tboulder\t/location/location/contains\n0.484708\t0.268205\t0.696056\tsyracuse\tnational_safety_council\t/location/location/contains\n0.484259\t0.268205\t0.695543\tflorida\tcape_canaveral\t/location/location/contains\n0.484736\t0.268718\t0.695456\tguinea\tconakry\t/location/location/contains\n0.484288\t0.268718\t0.695015\tspain\tostia\t/location/location/contains\n0.483841\t0.268718\t0.694390\tarkansas\tchoctawhatchee_river\t/location/location/contains\n0.483395\t0.268718\t0.693581\tiowa\tadel\t/location/location/contains\n0.482949\t0.268718\t0.693565\tvermont\tjacksonville\t/location/location/contains\n0.482505\t0.268718\t0.693317\ticeland\tnuuk\t/location/location/contains\n0.482981\t0.269231\t0.693290\tgian_carlo_menotti\titaly\t/people/person/nationality\n0.482537\t0.269231\t0.693220\tdesio\titaly\t/people/person/nationality\n0.482094\t0.269231\t0.693132\tmark_pryor\tarkansas\t/people/person/place_lived\n0.482569\t0.269744\t0.693023\talejandro_gonzález_iñárritu\tmexico\t/people/person/nationality\n0.482126\t0.269744\t0.692891\tmstislav_rostropovich\trussia\t/people/person/nationality\n0.481685\t0.269744\t0.692559\tarkansas\tmountain_meadows\t/location/location/contains\n0.481244\t0.269744\t0.690884\tspain\tbanco_bilbao_vizcaya_argentaria\t/location/location/contains\n0.481718\t0.270256\t0.690859\tmexico\tmérida\t/location/location/contains\n0.481279\t0.270256\t0.690355\tlouisiana\tcajun\t/location/location/contains\n0.481752\t0.270769\t0.690226\tthailand\tyala\t/location/location/contains\n0.481313\t0.270769\t0.689932\tsouth_africa\tmatabeleland\t/location/location/contains\n0.480874\t0.270769\t0.689819\tasia\tshinto\t/location/location/contains\n0.480437\t0.270769\t0.689391\tunited_kingdom\tgordon_johndroe\t/location/location/contains\n0.480000\t0.270769\t0.689184\tscotland\tdingwall\t/location/location/contains\n0.480472\t0.271282\t0.688607\tontario\twaterloo\t/location/location/contains\n0.480036\t0.271282\t0.688199\tbernd_schuster\titaly\t/people/person/nationality\n0.480508\t0.271795\t0.688113\tmel_karmazin\tsirius_satellite_radio\t/business/person/company\n0.480072\t0.271795\t0.688077\tarkansas\toak_bluffs\t/location/location/contains\n0.480543\t0.272308\t0.687957\tlura\tportugal\t/people/person/nationality\n0.481013\t0.272821\t0.687845\tsam_walton\tarkansas\t/people/person/place_lived\n0.480578\t0.272821\t0.687830\tkelibia\ttunisia\t/people/person/nationality\n0.480144\t0.272821\t0.687517\tkari_lizer\tcbs\t/business/person/company\n0.479711\t0.272821\t0.686976\troy_miller\tatlanta\t/people/person/place_lived\n0.480180\t0.273333\t0.686935\tshona_brown\tgoogle\t/business/person/company\n0.479748\t0.273333\t0.686858\tfrancesco_rutelli\titaly\t/people/person/nationality\n0.479317\t0.273333\t0.686722\tmontclair\thillside\t/location/location/contains\n0.479784\t0.273846\t0.686012\tandré_desmarais\tcanada\t/people/person/nationality\n0.479354\t0.273846\t0.685799\tsylvain_chomet\tfrance\t/people/person/nationality\n0.478924\t0.273846\t0.685769\toklahoma\tbrad_henry\t/location/location/contains\n0.478495\t0.273846\t0.685605\tnew_york_city\tbridgewater\t/location/location/contains\n0.478066\t0.273846\t0.685594\tamsterdam\tnaarden\t/location/location/contains\n0.477639\t0.273846\t0.684955\tfelipe_pérez_roque\tcuba\t/people/person/nationality\n0.477212\t0.273846\t0.684643\tiowa\tcrown_point\t/location/location/contains\n0.477679\t0.274359\t0.683387\trichard_gasquet\tfrance\t/people/person/nationality\n0.477252\t0.274359\t0.683245\tpolaris_venture_partners\tmassachusetts_institute_of_technology\t/business/person/company\n0.476827\t0.274359\t0.682876\toklahoma\tperry\t/location/location/contains\n0.476402\t0.274359\t0.682570\tniantic\teast_lyme\t/location/location/contains\n0.476868\t0.274872\t0.682390\trussia\tbeslan\t/location/location/contains\n0.477333\t0.275385\t0.682384\tcatalonia\tspain\t/location/administrative_division/country\n0.477798\t0.275897\t0.682321\tcalifornia\tcorona\t/location/location/contains\n0.477374\t0.275897\t0.682316\tcoahuila\tmexico\t/people/person/nationality\n0.476950\t0.275897\t0.681847\twill_smith\tscotland\t/people/person/nationality\n0.476528\t0.275897\t0.681294\tidaho\tlewiston\t/location/location/contains\n0.476106\t0.275897\t0.681265\tÉlysée_palace\tfrance\t/people/person/nationality\n0.475685\t0.275897\t0.680972\tmexico\toswego\t/location/location/contains\n0.475265\t0.275897\t0.680948\tmargaret_macmillan\tuniversity_of_toronto\t/business/person/company\n0.474846\t0.275897\t0.680128\tmaryland\tkawasaki\t/location/location/contains\n0.474427\t0.275897\t0.680030\tvilla_san_michele\titaly\t/people/person/nationality\n0.474890\t0.276410\t0.679951\theinrich_heine\tgermany\t/people/person/nationality\n0.474472\t0.276410\t0.679153\tsandra_pianalto\tfederal_reserve_bank_of_cleveland\t/business/person/company\n0.474934\t0.276923\t0.678405\tmark_mathabane\tsouth_africa\t/people/person/nationality\n0.474517\t0.276923\t0.678040\tmichael_marsh\ttrinity_college\t/business/person/company\n0.474100\t0.276923\t0.678038\tnewark\tjefferson_street\t/location/location/contains\n0.474561\t0.277436\t0.677928\tmuhammad_yunus\tgrameen_bank\t/business/person/company\n0.474145\t0.277436\t0.677757\tvirginia\tchantilly\t/location/location/contains\n0.474606\t0.277949\t0.676690\tparis\tgrand_palais\t/location/location/contains\n0.475066\t0.278462\t0.676274\tbaltimore\tm&t_bank_stadium\t/location/location/contains\n0.474650\t0.278462\t0.676199\tcamus\tgermany\t/people/person/nationality\n0.475109\t0.278974\t0.675256\tcampania\titaly\t/location/administrative_division/country\n0.474695\t0.278974\t0.675065\tpeter_houghton\tnew_hampshire\t/people/person/place_lived\n0.474281\t0.278974\t0.674770\twayne_gilchrest\tmaryland\t/people/person/place_lived\n0.473868\t0.278974\t0.674722\tserbia\tpec\t/location/location/contains\n0.473455\t0.278974\t0.674718\tmexico_city\tchalco\t/location/location/contains\n0.473043\t0.278974\t0.674319\ttaos\ttaos_ski_valley\t/location/location/contains\n0.472632\t0.278974\t0.673715\tstephen_m._cutler\tcitigroup\t/business/person/company\n0.472222\t0.278974\t0.673547\tnew_york_city\tnew_haven\t/location/location/contains\n0.471813\t0.278974\t0.673512\tvirgin_blue\taustralia\t/people/person/nationality\n0.471404\t0.278974\t0.673276\tthe_new_york_times\tgoogle\t/business/person/company\n0.470996\t0.278974\t0.673090\tvirginia\tlarkspur\t/location/location/contains\n0.470588\t0.278974\t0.672973\tmississippi\tjames_meredith\t/location/location/contains\n0.470182\t0.278974\t0.672453\tmississippi\thuntsville\t/location/location/contains\n0.469775\t0.278974\t0.672112\twashington\tst._albans_school\t/location/location/contains\n0.470233\t0.279487\t0.671974\tkiran_desai\tindia\t/people/person/nationality\n0.469828\t0.279487\t0.671929\tjulian_schnabel\tfrance\t/people/person/nationality\n0.469423\t0.279487\t0.671904\ttsai_ming-liang\tmalaysia\t/people/person/nationality\n0.469880\t0.280000\t0.671853\tking_county\tseattle\t/location/location/contains\n0.469475\t0.280000\t0.671725\tfranco\tspain\t/people/person/nationality\n0.469931\t0.280513\t0.671518\tmississippi\tocean_springs\t/location/location/contains\n0.469528\t0.280513\t0.671187\tsan_fernando_valley\tgranada_hills\t/location/location/contains\n0.469125\t0.280513\t0.671064\tjohn_e._sununu\tnew_hampshire\t/people/person/place_lived\n0.469580\t0.281026\t0.670646\tsong_min-soon\tsouth_korea\t/people/person/nationality\n0.469178\t0.281026\t0.670642\tbrad_henry\toklahoma\t/people/person/place_lived\n0.469632\t0.281538\t0.670052\tsweet_auburn\tatlanta\t/location/neighborhood/neighborhood_of\n0.469231\t0.281538\t0.670016\tbenchmark_capital\tmitch_lasky\t/business/person/company\n0.469684\t0.282051\t0.670007\tabhishek_bachchan\tindia\t/people/person/nationality\n0.469283\t0.282051\t0.669883\tkirk_kerkorian\tgermany\t/people/person/nationality\n0.469736\t0.282564\t0.669810\tsan_francisco\tnoe_valley\t/location/location/contains\n0.469336\t0.282564\t0.669484\tpaul_butler\tgeorge_washington_university\t/business/person/company\n0.469787\t0.283077\t0.669422\tjosé_luis_castillo\tmexico\t/people/person/nationality\n0.469388\t0.283077\t0.669406\thenry_tang\tisrael\t/people/person/nationality\n0.469839\t0.283590\t0.669378\twashington\twenatchee_river\t/location/location/contains\n0.469440\t0.283590\t0.669370\tocean_falls\tcanada\t/people/person/nationality\n0.469890\t0.284103\t0.668866\tcroatia\tistria\t/location/location/contains\n0.469492\t0.284103\t0.668742\tconnecticut\tbethlehem\t/location/location/contains\n0.469094\t0.284103\t0.668698\tspain\told_san_juan\t/location/location/contains\n0.468697\t0.284103\t0.668224\tleningrad\tvaganova_ballet_academy\t/location/location/contains\n0.469146\t0.284615\t0.668097\titaly\tsan_siro\t/location/location/contains\n0.468750\t0.284615\t0.667906\tgeorge_gilder\tatari\t/business/person/company\n0.468354\t0.284615\t0.666891\tjürgen_klinsmann\taustralia\t/people/person/nationality\n0.467960\t0.284615\t0.666719\taltimo\talfa_group\t/business/person/company\n0.467565\t0.284615\t0.666693\tconnecticut\tbethel\t/location/location/contains\n0.467172\t0.284615\t0.666603\tidaho\tdonnelly\t/location/location/contains\n0.466779\t0.284615\t0.666388\tvirginia\tmorgantown\t/location/location/contains\n0.467227\t0.285128\t0.666251\tiowa\tsioux_city\t/location/location/contains\n0.466835\t0.285128\t0.666201\tconnecticut\tcheshire_high_school\t/location/location/contains\n0.467282\t0.285641\t0.666068\tcalifornia\tsacramento\t/location/location/contains\n0.466890\t0.285641\t0.665127\tisadore_sharp\tbill_gates\t/business/person/company\n0.466499\t0.285641\t0.665100\tjean-bertrand_aristide\tsouth_africa\t/people/person/nationality\n0.466109\t0.285641\t0.664583\tsão_paulo\tfasano\t/location/location/contains\n0.466555\t0.286154\t0.664010\titaly\tcalcata\t/location/location/contains\n0.466165\t0.286154\t0.663567\tjosé_clemente_orozco\tmexico\t/people/person/nationality\n0.465776\t0.286154\t0.663289\twashington\tdupont_circle\t/location/location/contains\n0.465388\t0.286154\t0.663057\tiranian-american\tiran\t/people/person/nationality\n0.465000\t0.286154\t0.662898\tbrian_france\tfrance\t/people/person/nationality\n0.464613\t0.286154\t0.662886\tvirginia\tmiddleburg\t/location/location/contains\n0.464226\t0.286154\t0.661858\tpaul_slovic\tuniversity_of_oregon\t/business/person/company\n0.463840\t0.286154\t0.661582\tfrance\tlyon\t/location/location/contains\n0.463455\t0.286154\t0.661551\tgordon_johndroe\tiran\t/people/person/nationality\n0.463071\t0.286154\t0.661479\tiran\tnimruz_province\t/location/location/contains\n0.463516\t0.286667\t0.661205\tmexico\tbaja_california\t/location/location/contains\n0.463132\t0.286667\t0.661072\tnebraska\tcharles_starkweather\t/location/location/contains\n0.463576\t0.287179\t0.661072\taustralia\tbrisbane\t/location/location/contains\n0.463193\t0.287179\t0.660295\tbill_bain\tbain_&_company\t/business/person/company\n0.462810\t0.287179\t0.660290\tjoe_francis\tmexico\t/people/person/nationality\n0.463254\t0.287692\t0.660004\tdenmark\telsinore\t/location/location/contains\n0.462871\t0.287692\t0.659576\titaly\tflavia_colgan\t/location/location/contains\n0.463314\t0.288205\t0.659515\titaly\tgenoa\t/location/location/contains\n0.462932\t0.288205\t0.659431\tkansas\ttallgrass_beef_company\t/location/location/contains\n0.463374\t0.288718\t0.659415\ttrevor_manuel\tsouth_africa\t/people/person/nationality\n0.463816\t0.289231\t0.659387\tcalifornia\tfresno_county\t/location/location/contains\n0.464256\t0.289744\t0.658826\trichard_branson\tvirgin_galactic\t/business/person/company\n0.463875\t0.289744\t0.658689\tpatricia_c._dunn\thewlett-packard\t/business/person/company\n0.464315\t0.290256\t0.658645\tscott_rothbort\tseton_hall_university\t/business/person/company\n0.463934\t0.290256\t0.658448\tjean_drèze\tindia\t/people/person/nationality\n0.463554\t0.290256\t0.658237\tnanjing\tjinhua\t/location/location/contains\n0.463993\t0.290769\t0.657877\tbihar\tindia\t/location/administrative_division/country\n0.464432\t0.291282\t0.657655\tprimo_levi\titaly\t/people/person/nationality\n0.464052\t0.291282\t0.656515\tsalmagundi_club\tnew_york_city\t/location/neighborhood/neighborhood_of\n0.463673\t0.291282\t0.656193\thindustan_lever_limited\tindia\t/people/person/nationality\n0.464111\t0.291795\t0.656034\tdominican_republic\tnagua\t/location/location/contains\n0.463733\t0.291795\t0.655967\tlos_angeles_county\tsteven_holl\t/location/location/contains\n0.464169\t0.292308\t0.655701\tnicole_kidman\taustralia\t/people/person/nationality\n0.464605\t0.292821\t0.654884\tcambridge\tmassachusetts_institute_of_technology\t/location/location/contains\n0.465041\t0.293333\t0.654794\tevgeni_malkin\trussia\t/people/person/nationality\n0.465475\t0.293846\t0.654665\tisrael\trehovot\t/location/location/contains\n0.465097\t0.293846\t0.654344\tjuan_diego_flórez\titaly\t/people/person/nationality\n0.464720\t0.293846\t0.654288\twisconsin\tcrystal_river\t/location/location/contains\n0.465154\t0.294359\t0.654249\tboston\tmassachusetts_general_hospital\t/location/location/contains\n0.464777\t0.294359\t0.653927\tekene_ibekwe\tmaryland\t/people/person/place_lived\n0.464401\t0.294359\t0.653656\tjane_elliott\tiowa\t/people/person/place_lived\n0.464026\t0.294359\t0.653002\tcalifornia\tlafayette\t/location/location/contains\n0.463651\t0.294359\t0.652965\tsteven_lewis\tempire_state_college\t/business/person/company\n0.464084\t0.294872\t0.652720\tklaus_kleinfeld\tgermany\t/people/person/nationality\n0.463710\t0.294872\t0.652709\tkim_kirchen\tspain\t/people/person/nationality\n0.463336\t0.294872\t0.651534\ta._c._grayling\tspain\t/people/person/nationality\n0.463768\t0.295385\t0.651427\tmartti_ahtisaari\tfinland\t/people/person/nationality\n0.463395\t0.295385\t0.651380\tarmand_hammer\toccidental_petroleum\t/business/person/company\n0.463023\t0.295385\t0.651033\tturkey\tfrance\t/people/person/nationality\n0.462651\t0.295385\t0.650774\ttaos\thamptons\t/location/location/contains\n0.462279\t0.295385\t0.650030\tbaltimore\tjohns_hopkins_hospital\t/location/location/contains\n0.461909\t0.295385\t0.649699\tmike_huckabee\tvirginia\t/people/person/place_lived\n0.462340\t0.295897\t0.649564\tcalifornia\tsanta_clarita\t/location/location/contains\n0.462770\t0.296410\t0.649436\tireland\tathenry\t/location/location/contains\n0.463200\t0.296923\t0.649430\trussia\tnefteyugansk\t/location/location/contains\n0.462830\t0.296923\t0.649357\therzogenaurach\tcanada\t/people/person/nationality\n0.463259\t0.297436\t0.649329\trichard_sands\tconstellation_brands\t/business/person/company\n0.462889\t0.297436\t0.649281\tmike_huckabee\tcolorado\t/people/person/place_lived\n0.462520\t0.297436\t0.649141\tsomalia\tcongo_river\t/location/location/contains\n0.462151\t0.297436\t0.649088\tstephen_ames\taustralia\t/people/person/nationality\n0.461783\t0.297436\t0.648863\toklahoma\talaska\t/location/location/contains\n0.461416\t0.297436\t0.648843\tezer_weizman\tisrael\t/people/person/nationality\n0.461049\t0.297436\t0.648627\tiran\tkufa\t/location/location/contains\n0.461477\t0.297949\t0.648151\tamitabh_bachchan\tindia\t/people/person/nationality\n0.461905\t0.298462\t0.648106\tsomaliland\thargeisa\t/location/location/contains\n0.462331\t0.298974\t0.648004\tjhumpa_lahiri\tindia\t/people/person/nationality\n0.461965\t0.298974\t0.647128\ttranspetrol\tslovakia\t/people/person/nationality\n0.461599\t0.298974\t0.647078\tfernando_valenzuela\tmexico\t/people/person/nationality\n0.461234\t0.298974\t0.645285\tjohn_b._bellinger_iii\titaly\t/people/person/nationality\n0.460870\t0.298974\t0.644129\tdeutsche_bahn\tgermany\t/people/person/nationality\n0.460506\t0.298974\t0.644088\tflorida\tdallas_baker\t/location/location/contains\n0.460142\t0.298974\t0.643996\tmexico\tjuárez\t/location/location/contains\n0.460568\t0.299487\t0.643960\ttunisia\tkelibia\t/location/location/contains\n0.460205\t0.299487\t0.643763\tstaten_island\tkent_street\t/location/location/contains\n0.459843\t0.299487\t0.643728\tsouth_africa\tsoweto\t/location/location/contains\n0.459481\t0.299487\t0.643527\tcalifornia\tsimon_&_schuster\t/location/location/contains\n0.459119\t0.299487\t0.643222\tquicken_loans\tdan_gilbert\t/business/person/company\n0.458759\t0.299487\t0.642924\tcosta_rica\tÓscar_arias\t/location/location/contains\n0.458399\t0.299487\t0.642842\tstephen_blum\tiran\t/people/person/nationality\n0.458039\t0.299487\t0.642663\tedward_luce\tindia\t/people/person/nationality\n0.457680\t0.299487\t0.642454\tlucky\tfrance\t/people/person/nationality\n0.458105\t0.300000\t0.641963\tana_palacio\tspain\t/people/person/nationality\n0.457746\t0.300000\t0.641848\tsouth_carolina\tnew_haven\t/location/location/contains\n0.458170\t0.300513\t0.641697\tfairfield_county\tgreenwich\t/location/location/contains\n0.458594\t0.301026\t0.641435\toklahoma\toklahoma_city\t/location/location/contains\n0.458236\t0.301026\t0.641101\tdreamworks\tcreative_artists_agency\t/business/person/company\n0.457878\t0.301026\t0.640985\trussian\trussia\t/people/person/nationality\n0.457521\t0.301026\t0.640887\teva_hesse\tgermany\t/people/person/nationality\n0.457944\t0.301538\t0.640771\titaly\tdesio\t/location/location/contains\n0.457588\t0.301538\t0.640664\tbernadette_chirac\tspain\t/people/person/nationality\n0.457232\t0.301538\t0.640252\tmexico\tchalco\t/location/location/contains\n0.457653\t0.302051\t0.640038\tkansas\tatchison\t/location/location/contains\n0.457298\t0.302051\t0.639916\tchipiona\tspain\t/people/person/nationality\n0.457719\t0.302564\t0.639771\tcleveland\tcase_western_reserve_university\t/location/location/contains\n0.457364\t0.302564\t0.639748\ttom_vilsack\tiowa\t/people/person/place_lived\n0.457010\t0.302564\t0.639674\terik_nielsen\tgermany\t/people/person/nationality\n0.457430\t0.303077\t0.639569\tmalaysia\tsepang\t/location/location/contains\n0.457077\t0.303077\t0.639560\tsimon_sebag_montefiore\trussia\t/people/person/nationality\n0.456723\t0.303077\t0.639528\tindia\thumayun\t/location/location/contains\n0.457143\t0.303590\t0.639520\tmitch_mcconnell\tkentucky\t/people/person/place_lived\n0.457562\t0.304103\t0.639417\tindia\tbihar\t/location/location/contains\n0.457209\t0.304103\t0.639403\tflorida\tboquete\t/location/location/contains\n0.456857\t0.304103\t0.639321\ternie_fletcher\tkentucky\t/people/person/place_lived\n0.456505\t0.304103\t0.639036\tontario\truthven\t/location/location/contains\n0.456154\t0.304103\t0.638891\tjack_abramoff\twashington\t/people/person/place_lived\n0.455803\t0.304103\t0.638725\tbob_roberts\tatlanta\t/people/person/place_lived\n0.455453\t0.304103\t0.638662\tnearbynow\tscott_dunlap\t/business/person/company\n0.455871\t0.304615\t0.637262\tdenmark\tribe\t/location/location/contains\n0.455521\t0.304615\t0.637029\trose_gottemoeller\trussia\t/people/person/nationality\n0.455172\t0.304615\t0.636890\tcompass_bancshares\tspain\t/people/person/nationality\n0.454824\t0.304615\t0.636679\thebei\tanhui\t/location/location/contains\n0.454476\t0.304615\t0.636481\talbany_county\tdavid_soares\t/location/location/contains\n0.454128\t0.304615\t0.636384\tberkeley\tkermit_lynch\t/location/location/contains\n0.453782\t0.304615\t0.636288\tjan_marek\trussia\t/people/person/nationality\n0.453435\t0.304615\t0.635957\tdenmark\thelsingborg\t/location/location/contains\n0.453089\t0.304615\t0.635605\tpaul-henri_mathieu\trussia\t/people/person/nationality\n0.452744\t0.304615\t0.635343\tami_ayalon\tisrael\t/people/person/nationality\n0.452399\t0.304615\t0.634901\tnew_york_city\tbound_brook\t/location/location/contains\n0.452055\t0.304615\t0.634463\ttahar_ben_jelloun\tlebanon\t/people/person/nationality\n0.451711\t0.304615\t0.634413\tsyracuse\trochester\t/location/location/contains\n0.452128\t0.305128\t0.633934\tbobby_deol\tindia\t/people/person/nationality\n0.451784\t0.305128\t0.633903\ttom_latham\tiowa\t/people/person/place_lived\n0.451442\t0.305128\t0.633707\tseattle\tlake_union\t/location/location/contains\n0.451099\t0.305128\t0.633544\tjonathan_haidt\tuniversity_of_virginia\t/business/person/company\n0.450758\t0.305128\t0.633238\tingmar_bergman\tfrance\t/people/person/nationality\n0.450416\t0.305128\t0.632601\tjeff_galloway\tatlanta\t/people/person/place_lived\n0.450076\t0.305128\t0.632404\tjack_kachkar\tfrance\t/people/person/nationality\n0.449735\t0.305128\t0.632117\tvirginia\twestfield\t/location/location/contains\n0.450151\t0.305641\t0.632114\tcalifornia\tross\t/location/location/contains\n0.449811\t0.305641\t0.632083\tangela_williams\tatlanta\t/people/person/place_lived\n0.449472\t0.305641\t0.631154\talcatel-lucent\tfrance\t/people/person/nationality\n0.449133\t0.305641\t0.631149\trichard_branson\tgoogle\t/business/person/company\n0.448795\t0.305641\t0.630697\twood_buffalo_national_park\tcanada\t/location/administrative_division/country\n0.448457\t0.305641\t0.630342\tkentucky\tnewton\t/location/location/contains\n0.448120\t0.305641\t0.629727\tian_ayres\tyale_law_school\t/business/person/company\n0.447784\t0.305641\t0.629547\tsamantha_bee\tindia\t/people/person/nationality\n0.448198\t0.306154\t0.629415\tkurt_weill\tgermany\t/people/person/nationality\n0.448612\t0.306667\t0.629353\tmitch_lasky\tbenchmark_capital\t/business/person/company\n0.448276\t0.306667\t0.629103\tstephen_schneider\tgoogle\t/business/person/company\n0.448689\t0.307179\t0.628793\tjim_bunning\tkentucky\t/people/person/place_lived\n0.448353\t0.307179\t0.628647\tcalifornia\tlawrence_berkeley_national_laboratory\t/location/location/contains\n0.448018\t0.307179\t0.628117\tdaniel_o'connell\tscotland\t/people/person/nationality\n0.447683\t0.307179\t0.627724\tportland\tbeaverton\t/location/location/contains\n0.448096\t0.307692\t0.627506\tspain\tjaén\t/location/location/contains\n0.447761\t0.307692\t0.627487\tcalifornia\tzoic_studios\t/location/location/contains\n0.447427\t0.307692\t0.627397\tbelfast\tnewgrange\t/location/location/contains\n0.447094\t0.307692\t0.626683\tmiddle_east\tsamarra\t/location/location/contains\n0.446761\t0.307692\t0.626456\tboston\tamerican_musicological_society\t/location/location/contains\n0.446429\t0.307692\t0.626445\tsouth_plainfield\tsaigon_restaurant\t/location/location/contains\n0.446097\t0.307692\t0.626066\tvietnam\tsan_pedro\t/location/location/contains\n0.445765\t0.307692\t0.625402\talejandro_toledo\tstanford_university\t/business/person/company\n0.445434\t0.307692\t0.625019\tsuffolk_county\thuntington\t/location/location/contains\n0.445846\t0.308205\t0.625003\tdominican_republic\tsantiago_rodríguez\t/location/location/contains\n0.446256\t0.308718\t0.623924\tsouth_carolina\tsavannah_river\t/location/location/contains\n0.446667\t0.309231\t0.623790\titaly\treggio_emilia\t/location/location/contains\n0.446336\t0.309231\t0.623710\tsylvester_stallone\tfrance\t/people/person/nationality\n0.446006\t0.309231\t0.623668\toklahoma\tcheyenne\t/location/location/contains\n0.446415\t0.309744\t0.623462\tmikhail_khodorkovsky\trussia\t/people/person/nationality\n0.446824\t0.310256\t0.622526\tnew_york_city\tgreenwich_village\t/location/location/contains\n0.446494\t0.310256\t0.622213\twayne_white\tiran\t/people/person/nationality\n0.446165\t0.310256\t0.621913\tshashi_tharoor\tisrael\t/people/person/nationality\n0.446573\t0.310769\t0.621151\tindia\tchhattisgarh\t/location/location/contains\n0.446244\t0.310769\t0.621141\tjames_gist\tmaryland\t/people/person/place_lived\n0.446652\t0.311282\t0.620691\tgloria_macapagal-arroyo\tphilippines\t/people/person/nationality\n0.446324\t0.311282\t0.620128\tmaryland\tlong_&_foster\t/location/location/contains\n0.445996\t0.311282\t0.620086\truss_feingold\twisconsin\t/people/person/place_lived\n0.446402\t0.311795\t0.619537\tphilippines\tsan_carlos_city\t/location/location/contains\n0.446075\t0.311795\t0.619459\tmark_chandler\tcisco\t/business/person/company\n0.445748\t0.311795\t0.618719\tarkansas\tberkeley\t/location/location/contains\n0.445421\t0.311795\t0.618435\tportland\tinternational_school\t/location/location/contains\n0.445827\t0.312308\t0.618418\troberto_calvi\titaly\t/people/person/nationality\n0.446233\t0.312821\t0.617762\tjean-louis_borloo\tfrance\t/people/person/nationality\n0.445906\t0.312821\t0.617427\tbill_gates\tcorbis\t/business/person/company\n0.445581\t0.312821\t0.617221\tcalifornia\thot_springs\t/location/location/contains\n0.445255\t0.312821\t0.616918\tstephen_harper\tmexico\t/people/person/nationality\n0.444931\t0.312821\t0.616199\tcajun\tlost_bayou_ramblers\t/location/location/contains\n0.445335\t0.313333\t0.616004\tcalifornia\tceres\t/location/location/contains\n0.445011\t0.313333\t0.615958\trussia\tindia\t/people/person/nationality\n0.444687\t0.313333\t0.615482\talaska\ttexas_city\t/location/location/contains\n0.444364\t0.313333\t0.615279\ted_oakley\ttom_leppert\t/business/person/company\n0.444041\t0.313333\t0.614500\tat&t\titaly\t/people/person/nationality\n0.443718\t0.313333\t0.614417\tstacy_peralta\tspain\t/people/person/nationality\n0.444122\t0.313846\t0.614382\tindia\tsawai_madhopur\t/location/location/contains\n0.443800\t0.313846\t0.614317\tthomas_vanek\tbuffalo\t/people/person/place_lived\n0.444203\t0.314359\t0.614257\tgeorge_allen\tvirginia\t/people/person/place_lived\n0.444605\t0.314872\t0.614247\tflorida\tlakeland\t/location/location/contains\n0.444284\t0.314872\t0.613686\twashington\twashington_state_university\t/location/location/contains\n0.443962\t0.314872\t0.613304\tdavid_a._harris\tiran\t/people/person/nationality\n0.443642\t0.314872\t0.612578\tpeter_r._dolan\tbristol-myers_squibb\t/business/person/company\n0.443321\t0.314872\t0.612340\tzubin_mehta\tindia\t/people/person/nationality\n0.443001\t0.314872\t0.612163\tatlanta\tomni\t/location/location/contains\n0.442682\t0.314872\t0.612077\tflorida\tmilton\t/location/location/contains\n0.442363\t0.314872\t0.611990\tdarfur\tzaghawa\t/location/location/contains\n0.442045\t0.314872\t0.611930\tfrance\ttalence\t/location/location/contains\n0.441727\t0.314872\t0.611622\tmartin_sorrell\titaly\t/people/person/nationality\n0.441409\t0.314872\t0.611288\twisconsin\tchicago\t/location/location/contains\n0.441092\t0.314872\t0.610704\tjohn_cocke\tnew_york_university\t/business/person/company\n0.441493\t0.315385\t0.610287\tmexico\tacapulco\t/location/location/contains\n0.441894\t0.315897\t0.610275\tcalifornia\tpalo_alto\t/location/location/contains\n0.442294\t0.316410\t0.610208\tenrico_fermi\tuniversity_of_chicago\t/business/person/company\n0.441977\t0.316410\t0.610173\tcarly_phillips\tisrael\t/people/person/nationality\n0.441661\t0.316410\t0.610097\tnew_hampshire\twhite_mountains\t/location/location/contains\n0.441345\t0.316410\t0.609668\tbritish_virgin_islands\tspanish_town\t/location/location/contains\n0.441744\t0.316923\t0.609234\tdavid_b._yoffie\tharvard_business_school\t/business/person/company\n0.441429\t0.316923\t0.608704\tcyprus\tashkelon\t/location/location/contains\n0.441827\t0.317436\t0.608666\tbelarus\tpinsk\t/location/location/contains\n0.441512\t0.317436\t0.608546\tvirginia\tbaltimore\t/location/location/contains\n0.441197\t0.317436\t0.608203\tsan_francisco\tflagstaff\t/location/location/contains\n0.440883\t0.317436\t0.608003\tatlanta\tagnes_scott_college\t/location/location/contains\n0.440569\t0.317436\t0.607527\thewlett-packard\tfrance\t/people/person/nationality\n0.440967\t0.317949\t0.607467\tkentucky\tvilla_hills\t/location/location/contains\n0.441365\t0.318462\t0.607313\tstaten_island\twesterleigh\t/location/location/contains\n0.441051\t0.318462\t0.607067\tlebanon\tharet_hreik\t/location/location/contains\n0.440738\t0.318462\t0.606543\tsycamore_networks\tgururaj_deshpande\t/business/person/company\n0.440426\t0.318462\t0.606475\therzogenaurach\tgermany\t/people/person/nationality\n0.440822\t0.318974\t0.606473\thenry_fonda\tomaha\t/people/person/place_lived\n0.440510\t0.318974\t0.606264\tflorida\tdavid_armstrong\t/location/location/contains\n0.440198\t0.318974\t0.606238\tfélix_sánchez\tdominican_republic\t/people/person/nationality\n0.439887\t0.318974\t0.606201\thomesense\tcanada\t/people/person/nationality\n0.439576\t0.318974\t0.606037\tcalifornia\tlarry_wilmore\t/location/location/contains\n0.439266\t0.318974\t0.605314\tram_shriram\tgoogle\t/business/person/company\n0.438956\t0.318974\t0.604980\tflorida\thillside\t/location/location/contains\n0.438646\t0.318974\t0.604629\tchirac\tfrance\t/people/person/nationality\n0.439042\t0.319487\t0.604309\tcalifornia\tlos_gatos\t/location/location/contains\n0.438732\t0.319487\t0.604276\tarabian_peninsula\triyadh\t/location/location/contains\n0.438424\t0.319487\t0.604267\tilya_kovalchuk\tatlanta\t/people/person/place_lived\n0.438115\t0.319487\t0.604121\tsasol\tsouth_africa\t/people/person/nationality\n0.437807\t0.319487\t0.603795\tseattle\tamerican_astronomical_society\t/location/location/contains\n0.438202\t0.320000\t0.603719\ttasmania\thobart\t/location/location/contains\n0.437895\t0.320000\t0.602935\tsouth_carolina\tlenoir\t/location/location/contains\n0.437588\t0.320000\t0.602634\tcaravaggio\titaly\t/people/person/nationality\n0.437982\t0.320513\t0.601308\tsuffolk_county\tnorth_amityville\t/location/location/contains\n0.438375\t0.321026\t0.601280\tkevin_andrews\taustralia\t/people/person/nationality\n0.438768\t0.321538\t0.601110\tpierre_boulez\tfrance\t/people/person/nationality\n0.439161\t0.322051\t0.600129\tlloyd_kaufman\ttroma_entertainment\t/business/person/company\n0.438854\t0.322051\t0.599354\tyemen\tgulf_of_aden\t/location/location/contains\n0.439246\t0.322564\t0.599353\tarundhati_roy\tindia\t/people/person/nationality\n0.438939\t0.322564\t0.599326\tparis\tÉcole_normale_supérieure\t/location/location/contains\n0.438633\t0.322564\t0.599227\thrant_dink\tturkey\t/people/person/nationality\n0.439024\t0.323077\t0.599211\tgrover_cleveland\tbuffalo\t/people/person/place_lived\n0.438719\t0.323077\t0.599050\tfilippo_magnini\tcanada\t/people/person/nationality\n0.438413\t0.323077\t0.598944\tseattle\thood_river\t/location/location/contains\n0.438804\t0.323590\t0.598707\tgermany\tlaupheim\t/location/location/contains\n0.438499\t0.323590\t0.598658\tolga_kern\trussia\t/people/person/nationality\n0.438194\t0.323590\t0.598538\tpaula_wriedt\taustralia\t/people/person/nationality\n0.437890\t0.323590\t0.597857\tfrance\talzonne\t/location/location/contains\n0.437587\t0.323590\t0.597688\trangin_dadfar_spanta\tiran\t/people/person/nationality\n0.437283\t0.323590\t0.597082\tpeter_fenton\tsouth_africa\t/people/person/nationality\n0.436981\t0.323590\t0.596648\tcroatia\tlopud\t/location/location/contains\n0.436678\t0.323590\t0.596101\tsuffolk_county\teast_new_york\t/location/location/contains\n0.437068\t0.324103\t0.595500\ttucson\tuniversity_of_arizona_college_of_medicine\t/location/location/contains\n0.436766\t0.324103\t0.594824\tnetherlands_antilles\taracataca\t/location/location/contains\n0.437155\t0.324615\t0.594741\tnew_york_city\tconey_island\t/location/location/contains\n0.436853\t0.324615\t0.594396\tcarl_robinson\tgermany\t/people/person/nationality\n0.436552\t0.324615\t0.594222\tvictoria_azarenka\tserbia\t/people/person/nationality\n0.436251\t0.324615\t0.594071\tjohn_caplan\tyoutube\t/business/person/company\n0.436639\t0.325128\t0.594020\tdenmark\taarhus\t/location/location/contains\n0.437027\t0.325641\t0.593797\tmohammad_khatami\tiran\t/people/person/nationality\n0.437414\t0.326154\t0.593275\tidaho\tburley\t/location/location/contains\n0.437113\t0.326154\t0.593080\tnew_york_city\torange\t/location/location/contains\n0.436813\t0.326154\t0.592607\toregon\telwha\t/location/location/contains\n0.436513\t0.326154\t0.591373\tforest_whitaker\tscotland\t/people/person/nationality\n0.436214\t0.326154\t0.591359\tmel_gibson\tisrael\t/people/person/nationality\n0.435915\t0.326154\t0.591222\tishmael_beah\tgeorge_washington_university\t/business/person/company\n0.435616\t0.326154\t0.590893\tjoann_ross\tcbs_corporation\t/business/person/company\n0.436003\t0.326667\t0.590504\tharris_county\thouston\t/location/location/contains\n0.435705\t0.326667\t0.590293\trenault\tfrance\t/people/person/nationality\n0.436090\t0.327179\t0.589753\talessandro_profumo\tunicredit\t/business/person/company\n0.435792\t0.327179\t0.589523\tjoseph_thompson\tmassachusetts_museum_of_contemporary_art\t/business/person/company\n0.435495\t0.327179\t0.589438\tjames_dimon\tnyse_group\t/business/person/company\n0.435880\t0.327692\t0.588724\tmichael_geoghegan\thsbc\t/business/person/company\n0.435583\t0.327692\t0.588660\telon_musk\tgoogle\t/business/person/company\n0.435286\t0.327692\t0.588064\tconnecticut\tm._jodi_rell\t/location/location/contains\n0.434990\t0.327692\t0.588031\trussian_river\tsonoma_county\t/location/location/contains\n0.434694\t0.327692\t0.587874\tcharles_pfizer\tgermany\t/people/person/nationality\n0.435078\t0.328205\t0.587552\tlawrence_lessig\tstanford_law_school\t/business/person/company\n0.434783\t0.328205\t0.587400\tnew_hampshire\thanover\t/location/location/contains\n0.434487\t0.328205\t0.587305\tmateusz_sawrymowicz\tpoland\t/people/person/nationality\n0.434193\t0.328205\t0.587062\tmaryland\telizabethtown_college\t/location/location/contains\n0.433898\t0.328205\t0.586918\tcalifornia\tcleveland\t/location/location/contains\n0.434282\t0.328718\t0.586892\tsouth_africa\tstellenbosch\t/location/location/contains\n0.433988\t0.328718\t0.586490\tnewark\tbroad_street\t/location/location/contains\n0.433694\t0.328718\t0.585775\tdeborah_willis\tnew_york_university\t/business/person/company\n0.433401\t0.328718\t0.585571\tjames_bulger\tboston\t/people/person/place_lived\n0.433108\t0.328718\t0.585231\tmurat_kurnaz\tgermany\t/people/person/nationality\n0.432816\t0.328718\t0.585194\tivrea\titaly\t/people/person/nationality\n0.432524\t0.328718\t0.585024\trobin_moore\tnorth_carolina_state_university\t/business/person/company\n0.432232\t0.328718\t0.584970\tjim_bennett\tnetflix\t/business/person/company\n0.432615\t0.329231\t0.584833\tgermany\tnuremberg\t/location/location/contains\n0.432323\t0.329231\t0.584778\tmike_huckabee\tchicago\t/people/person/place_lived\n0.432032\t0.329231\t0.584593\tflorida\talton_road\t/location/location/contains\n0.431742\t0.329231\t0.584234\talexander_stille\tcolumbia_university_graduate_school_of_journalism\t/business/person/company\n0.431452\t0.329231\t0.583082\tindia\tsouth_india\t/location/location/contains\n0.431162\t0.329231\t0.582805\tsanjay_nayar\tindia\t/people/person/nationality\n0.430872\t0.329231\t0.582372\tsouth_asia\tsingapore\t/location/location/contains\n0.430584\t0.329231\t0.581849\tstephen_r._wise\tjacksonville\t/people/person/place_lived\n0.430295\t0.329231\t0.581750\tjim_doyle\twisconsin\t/people/person/place_lived\n0.430007\t0.329231\t0.581687\tashley_harkleroad\tgermany\t/people/person/nationality\n0.430388\t0.329744\t0.581229\tflorida\tst._lucie\t/location/location/contains\n0.430100\t0.329744\t0.581106\tindiana\tchicagoland\t/location/location/contains\n0.430481\t0.330256\t0.580814\tronald_pofalla\tgermany\t/people/person/nationality\n0.430194\t0.330256\t0.580390\tunited_kingdom\twest_bank\t/location/location/contains\n0.429907\t0.330256\t0.580310\teric_e._schmidt\tnews_corporation\t/business/person/company\n0.430287\t0.330769\t0.579994\tasia\tsoviet_union\t/location/location/contains\n0.430000\t0.330769\t0.579779\tron_kind\twisconsin\t/people/person/place_lived\n0.429714\t0.330769\t0.579399\tchris_newton\tcleveland\t/people/person/place_lived\n0.430093\t0.331282\t0.579049\tidaho\thailey\t/location/location/contains\n0.430472\t0.331795\t0.578931\thaley_barbour\tmississippi\t/people/person/place_lived\n0.430186\t0.331795\t0.578850\tbarbet_schroeder\tscotland\t/people/person/nationality\n0.429900\t0.331795\t0.578623\tmuhtar_kent\tmary_e._minnick\t/business/person/company\n0.429615\t0.331795\t0.578501\tnew_york_city\tpratt_institute\t/location/location/contains\n0.429993\t0.332308\t0.578404\tpiedmont\titaly\t/location/administrative_division/country\n0.429708\t0.332308\t0.578068\tmike_huckabee\tmexico\t/people/person/nationality\n0.429423\t0.332308\t0.577996\tmississippi\tmagnolia\t/location/location/contains\n0.429801\t0.332821\t0.577991\tfemi_kuti\tnigeria\t/people/person/nationality\n0.429517\t0.332821\t0.577829\tshlomo_riskin\tisrael\t/people/person/nationality\n0.429233\t0.332821\t0.577684\tsean_combs\thollywood_roosevelt_hotel\t/business/person/company\n0.428949\t0.332821\t0.577620\trick_perry\tkatsuaki_watanabe\t/business/person/company\n0.428666\t0.332821\t0.577555\trichard_branson\tgeneral_electric\t/business/person/company\n0.428383\t0.332821\t0.577548\tmaurice_papon\tparis\t/people/deceased_person/place_of_death\n0.428100\t0.332821\t0.577255\ttaiwan\tnational_central_university\t/location/location/contains\n0.428477\t0.333333\t0.577052\tindia\tsimla\t/location/location/contains\n0.428195\t0.333333\t0.576909\tcollege_of_insurance\tnew_york_city\t/location/neighborhood/neighborhood_of\n0.427913\t0.333333\t0.576210\tmexico\tla_paz\t/location/location/contains\n0.427632\t0.333333\t0.576071\tconnecticut\tcarnegie_mellon_university\t/location/location/contains\n0.428008\t0.333846\t0.575367\tbeirut\tlebanese_university\t/location/location/contains\n0.427727\t0.333846\t0.574897\tpetronas\tmalaysia\t/people/person/nationality\n0.428102\t0.334359\t0.574562\tlouisiana\tbolden\t/location/location/contains\n0.427822\t0.334359\t0.574469\tnew_york_city\tpoughkeepsie\t/location/location/contains\n0.427541\t0.334359\t0.574155\tminnesota\tbuffalo_ridge\t/location/location/contains\n0.427261\t0.334359\t0.574151\tmichael_d._griffin\tmassachusetts_institute_of_technology\t/business/person/company\n0.427636\t0.334872\t0.574111\tnamibia\twindhoek\t/location/location/contains\n0.428010\t0.335385\t0.574014\tsteve_cohen\tmemphis\t/people/person/place_lived\n0.427731\t0.335385\t0.573747\tsteven_lewis\tiran\t/people/person/nationality\n0.427451\t0.335385\t0.573594\tsan_francisco\tvenice\t/location/location/contains\n0.427172\t0.335385\t0.573442\tgordon_brown\tfrance\t/people/person/nationality\n0.426893\t0.335385\t0.573314\twellesley\tst._andrews_episcopal_church\t/location/location/contains\n0.427267\t0.335897\t0.572940\toregon\tklamath_falls\t/location/location/contains\n0.426988\t0.335897\t0.572602\tdallas\thighland_springs\t/location/location/contains\n0.426710\t0.335897\t0.571886\tjames_moran\tvirginia\t/people/person/place_lived\n0.426432\t0.335897\t0.571578\trussia\ttoomas_hendrik_ilves\t/location/location/contains\n0.426805\t0.336410\t0.571440\trussia\tvolgograd\t/location/location/contains\n0.427178\t0.336923\t0.571207\twilbur_mills\tarkansas\t/people/person/place_lived\n0.426901\t0.336923\t0.571081\tisrael\thebron\t/location/location/contains\n0.426623\t0.336923\t0.570679\tÓscar_berger\tguatemala\t/people/person/nationality\n0.426347\t0.336923\t0.570659\tgermany\tfranconia\t/location/location/contains\n0.426070\t0.336923\t0.569904\tdenis_macshane\tisrael\t/people/person/nationality\n0.425794\t0.336923\t0.569312\tandy_warhol\tfrance\t/people/person/nationality\n0.425518\t0.336923\t0.568971\trussian\tukraine\t/people/person/nationality\n0.425243\t0.336923\t0.568763\tken_salazar\tcolorado\t/people/person/place_lived\n0.424968\t0.336923\t0.568458\tleonid_kuchma\tukraine\t/people/person/nationality\n0.424693\t0.336923\t0.567750\tvirginia\tsouth_carolina\t/location/location/contains\n0.424419\t0.336923\t0.567659\tglobe\tcanada\t/people/person/nationality\n0.424145\t0.336923\t0.567425\tsuffolk_county\tmerrick\t/location/location/contains\n0.423871\t0.336923\t0.567171\twest_virginia\tsulphur_springs\t/location/location/contains\n0.423598\t0.336923\t0.566931\teric_cantor\tvirginia\t/people/person/place_lived\n0.423325\t0.336923\t0.566908\tkenneth_gibson\tnewark\t/people/person/place_lived\n0.423052\t0.336923\t0.566544\trobert_savage\tnanette_lepore\t/business/person/company\n0.422780\t0.336923\t0.566490\tchristophe_rochus\tfrance\t/people/person/nationality\n0.422508\t0.336923\t0.566406\tunited_kingdom\tcanada\t/location/administrative_division/country\n0.422879\t0.337436\t0.566372\tminas_gerais\tbelo_horizonte\t/location/location/contains\n0.422608\t0.337436\t0.566344\toregon\tjesse_williams\t/location/location/contains\n0.422978\t0.337949\t0.566016\tmaher_arar\tcanada\t/people/person/nationality\n0.422707\t0.337949\t0.565487\tyuma\tsan_luis_río_colorado\t/location/location/contains\n0.422436\t0.337949\t0.565159\tpaula_todd\ttowers_perrin\t/business/person/company\n0.422165\t0.337949\t0.564606\twally_herbert\tscotland\t/people/person/nationality\n0.421895\t0.337949\t0.564409\tarkansas\tjohn_brown_university\t/location/location/contains\n0.421625\t0.337949\t0.564352\troberto_rossellini\tdenmark\t/people/person/nationality\n0.421355\t0.337949\t0.563812\tleo_strauss\tpoland\t/people/person/nationality\n0.421086\t0.337949\t0.563550\tthe_new_york_times_company\tthe_new_york_times\t/business/person/company\n0.420817\t0.337949\t0.563431\tcalifornia\tboston\t/location/location/contains\n0.421187\t0.338462\t0.563347\toregon\tportland\t/location/location/contains\n0.420918\t0.338462\t0.563168\tchianti\tsiena\t/location/location/contains\n0.420650\t0.338462\t0.562956\taltimo\tnorway\t/people/person/nationality\n0.420382\t0.338462\t0.562869\tvoltaire\tfrance\t/people/person/nationality\n0.420751\t0.338974\t0.562797\talexander_graham_bell\tcanada\t/people/person/nationality\n0.420483\t0.338974\t0.562232\tgordon_brown\tindia\t/people/person/nationality\n0.420852\t0.339487\t0.562218\tsan_francisco\tsan_francisco-oakland_bay_bridge\t/location/location/contains\n0.421220\t0.340000\t0.562092\tmexico\tguadalajara\t/location/location/contains\n0.420952\t0.340000\t0.561753\tseoul\trodin_museum\t/location/location/contains\n0.420685\t0.340000\t0.561389\tmount_baker\tlake_union\t/location/location/contains\n0.420419\t0.340000\t0.561094\tmaryland\tchesapeake\t/location/location/contains\n0.420152\t0.340000\t0.560843\twashington\tfoggy_bottom\t/location/location/contains\n0.419886\t0.340000\t0.560834\tjason_brown\tatlanta\t/people/person/place_lived\n0.419620\t0.340000\t0.560321\tlajos_kossuth\tfrance\t/people/person/nationality\n0.419355\t0.340000\t0.560059\tport_washington\tamsterdam\t/location/location/contains\n0.419722\t0.340513\t0.558848\tsyria\tdamascus\t/location/location/contains\n0.419457\t0.340513\t0.558600\talmaty\tastana\t/location/location/contains\n0.419192\t0.340513\t0.557565\tcalifornia\tjon_jerde\t/location/location/contains\n0.418927\t0.340513\t0.557120\tsalman_rushdie\tindia\t/people/person/nationality\n0.418663\t0.340513\t0.556492\tverdun\tmuslim\t/location/location/contains\n0.418399\t0.340513\t0.556455\tnew_hampshire\tmusconetcong_river\t/location/location/contains\n0.418136\t0.340513\t0.556403\trandy_williams\tcanada\t/people/person/nationality\n0.418502\t0.341026\t0.556118\tbaltimore\tinner_harbor\t/location/location/contains\n0.418239\t0.341026\t0.556078\tdreamworks\tuniversal_pictures\t/business/person/company\n0.417976\t0.341026\t0.555763\twisconsin\tj._b._van_hollen\t/location/location/contains\n0.417714\t0.341026\t0.555686\tsimone_weil\tgermany\t/people/person/nationality\n0.417451\t0.341026\t0.555334\tboston\tnortheastern_university\t/location/location/contains\n0.417189\t0.341026\t0.555078\twilliam_f._baker\tnew_york_university\t/business/person/company\n0.416928\t0.341026\t0.554737\tlyndon_b._johnson\tdominican_republic\t/people/person/nationality\n0.416667\t0.341026\t0.554736\tchicago\thawthorne_park\t/location/location/contains\n0.416406\t0.341026\t0.554489\tcanada\tottawa_river\t/location/location/contains\n0.416145\t0.341026\t0.554369\tportugal\toporto\t/location/location/contains\n0.416510\t0.341538\t0.554301\talessandro_profumo\titaly\t/people/person/nationality\n0.416250\t0.341538\t0.554194\ttunisia\tj._paul_getty_museum\t/location/location/contains\n0.415990\t0.341538\t0.554067\tvarel\tgermany\t/people/person/nationality\n0.415730\t0.341538\t0.553796\trebecca_weintraub\tisrael\t/people/person/nationality\n0.416095\t0.342051\t0.553778\theinrich_böll\tgermany\t/people/person/nationality\n0.415835\t0.342051\t0.553263\tconnecticut\telihu_yale\t/location/location/contains\n0.415576\t0.342051\t0.553148\tgoogle\tefficient_frontier\t/business/person/company\n0.415318\t0.342051\t0.553129\titaly\titalian_town\t/location/location/contains\n0.415059\t0.342051\t0.552882\tdavid_mcwilliams\tireland\t/people/person/nationality\n0.414801\t0.342051\t0.552875\twoodrow_wilson\talbania\t/people/person/nationality\n0.414543\t0.342051\t0.552848\tjay_leno\tboston_university\t/business/person/company\n0.414286\t0.342051\t0.552677\tdelaware_park\tbuffalo\t/location/neighborhood/neighborhood_of\n0.414649\t0.342564\t0.552329\tthailand\tnarathiwat\t/location/location/contains\n0.414392\t0.342564\t0.552161\tbill_gates\tgermany\t/people/person/nationality\n0.414135\t0.342564\t0.552149\tpaul_kagame\tindia\t/people/person/nationality\n0.414498\t0.343077\t0.551894\tunited_states_of_america\tvirginia\t/location/country/administrative_divisions\n0.414241\t0.343077\t0.551830\traul_allegre\tmexico\t/people/person/nationality\n0.413985\t0.343077\t0.551806\tmark_sanford\tsouth_carolina\t/people/person/place_lived\n0.413729\t0.343077\t0.550842\tnew_york_city\thouston\t/location/location/contains\n0.413473\t0.343077\t0.550592\tindia\tcoromandel_coast\t/location/location/contains\n0.413218\t0.343077\t0.550462\tiowa\tboston\t/location/location/contains\n0.413580\t0.343590\t0.550445\tkwazulu-natal\tsouth_africa\t/location/administrative_division/country\n0.413942\t0.344103\t0.550415\tiowa\tdavenport\t/location/location/contains\n0.413687\t0.344103\t0.548663\tmaryland\tflorida\t/location/location/contains\n0.413432\t0.344103\t0.548504\tvermont\tlong_trail\t/location/location/contains\n0.413793\t0.344615\t0.548456\tmexico\tjalisco\t/location/country/administrative_divisions\n0.413538\t0.344615\t0.548386\thood_river\tseattle\t/location/location/contains\n0.413284\t0.344615\t0.547635\tlouisiana\thouston\t/location/location/contains\n0.413030\t0.344615\t0.546821\tsomalia\tpuntland\t/location/location/contains\n0.412776\t0.344615\t0.546432\tnigeria\tnuhu_ribadu\t/location/location/contains\n0.412523\t0.344615\t0.546412\tturkey\tsunni_islam\t/location/location/contains\n0.412270\t0.344615\t0.546267\tchris_newton\tmemphis\t/people/person/place_lived\n0.412017\t0.344615\t0.545940\tlos_angeles_county\ttejon_ranch\t/location/location/contains\n0.411765\t0.344615\t0.545858\tgermany\tuniversity_of_ulm\t/location/location/contains\n0.411513\t0.344615\t0.545554\toklahoma\tcolorado\t/location/location/contains\n0.411873\t0.345128\t0.545273\twashington\tbainbridge_island\t/location/location/contains\n0.411621\t0.345128\t0.545019\tflorida\ttaurean_green\t/location/location/contains\n0.411369\t0.345128\t0.544879\thosni_mubarak\tiran\t/people/person/nationality\n0.411729\t0.345641\t0.544868\tkentucky\tcentre_college\t/location/location/contains\n0.412088\t0.346154\t0.544840\tmelvin_van_peebles\tchicago\t/people/person/place_of_birth\n0.411836\t0.346154\t0.544664\tmississippi\tstewart\t/location/location/contains\n0.411585\t0.346154\t0.544653\tgreece\tdenizli\t/location/location/contains\n0.411335\t0.346154\t0.544571\thugh_crean\tseattle\t/business/person/company\n0.411084\t0.346154\t0.544538\tnew_york_city\tparamus\t/location/location/contains\n0.410834\t0.346154\t0.544001\tvinod_khosla\tkhosla_ventures\t/business/person/company\n0.410584\t0.346154\t0.543723\ttom_arnold\tterrapass\t/business/person/company\n0.410334\t0.346154\t0.543675\tvirginia\tfort_myer\t/location/location/contains\n0.410693\t0.346667\t0.543644\tÓscar_arias\tcosta_rica\t/people/person/nationality\n0.411050\t0.347179\t0.543451\trhode_island\twarwick\t/location/location/contains\n0.410801\t0.347179\t0.543343\tportland\tpearl\t/location/location/contains\n0.411158\t0.347692\t0.543220\titaly\tancona\t/location/location/contains\n0.411515\t0.348205\t0.542815\tvirginia\tnorfolk\t/location/location/contains\n0.411266\t0.348205\t0.542737\tiowa\twoodward\t/location/location/contains\n0.411017\t0.348205\t0.542684\tconor_casey\tgermany\t/people/person/nationality\n0.410768\t0.348205\t0.542501\tkosice\tslovakia\t/people/person/nationality\n0.410520\t0.348205\t0.542433\tcorrèze\tfrance\t/people/person/nationality\n0.410272\t0.348205\t0.542333\tdon_miller\tpenske_racing\t/business/person/company\n0.410024\t0.348205\t0.541734\tspain\tbilbao\t/location/location/contains\n0.409777\t0.348205\t0.541519\tferdowsi\tiran\t/people/person/nationality\n0.409530\t0.348205\t0.541349\tallen_ginsberg\tsan_francisco\t/people/person/place_lived\n0.409283\t0.348205\t0.541013\tschibsted\tnorway\t/people/person/nationality\n0.409036\t0.348205\t0.540839\tclifton_daniel\tthe_new_york_times\t/business/person/company\n0.408790\t0.348205\t0.540582\trobert_weil\tw._w._norton\t/business/person/company\n0.408544\t0.348205\t0.540472\tmarianne_williamson\tfrance\t/people/person/nationality\n0.408900\t0.348718\t0.540192\thans-werner_sinn\tgermany\t/people/person/nationality\n0.408654\t0.348718\t0.540064\tjohn_c._mather\tnasa\t/business/person/company\n0.408408\t0.348718\t0.539790\tkentucky\tbirmingham\t/location/location/contains\n0.408764\t0.349231\t0.539771\tcalifornia\tstanford_university\t/location/location/contains\n0.408518\t0.349231\t0.539523\tgoa\tindia\t/people/person/nationality\n0.408273\t0.349231\t0.538990\tmashhad\tiran\t/location/administrative_division/country\n0.408029\t0.349231\t0.538831\thappy_chandler\tmexico\t/people/person/nationality\n0.407784\t0.349231\t0.538401\tidaho\tboise_state_university\t/location/location/contains\n0.407540\t0.349231\t0.538198\twashington\tnational_mall\t/location/location/contains\n0.407297\t0.349231\t0.537986\tcalifornia\tseattle\t/location/location/contains\n0.407053\t0.349231\t0.537561\tgatineau\tottawa_river\t/location/location/contains\n0.406810\t0.349231\t0.537503\tanthony_bannon\tbuffalo\t/people/person/place_lived\n0.406567\t0.349231\t0.537411\tbuffalo\tjason_pominville\t/location/location/contains\n0.406325\t0.349231\t0.537245\tcalifornia\tcalcutta\t/location/location/contains\n0.406082\t0.349231\t0.537092\tjesus_christ\tisrael\t/people/person/nationality\n0.405840\t0.349231\t0.537071\tmaj-britt_nilsson\tstockholm\t/people/person/place_of_birth\n0.405599\t0.349231\t0.537005\tcelia_franca\tnational_ballet_of_canada\t/business/person/company\n0.405357\t0.349231\t0.536942\tted_welch\tnashville\t/people/person/place_lived\n0.405116\t0.349231\t0.536927\tindiana\twabash_college\t/location/location/contains\n0.404875\t0.349231\t0.536610\tneville_chamberlain\tgermany\t/people/person/nationality\n0.404635\t0.349231\t0.536380\tsan_francisco\tcryptography_research\t/location/location/contains\n0.404988\t0.349744\t0.536036\tjalisco\tmexico\t/location/administrative_division/country\n0.404748\t0.349744\t0.535542\tscandinavia\tcanada\t/location/administrative_division/country\n0.404508\t0.349744\t0.535235\tbernd_schuster\tspain\t/people/person/nationality\n0.404268\t0.349744\t0.535125\tkurt_wolf\tgermany\t/people/person/nationality\n0.404028\t0.349744\t0.534333\tyeongcheon\tsouth_korea\t/people/person/nationality\n0.404381\t0.350256\t0.533473\tfranck_riboud\tfrance\t/people/person/nationality\n0.404142\t0.350256\t0.533294\tisfahan\tiran\t/location/administrative_division/country\n0.404494\t0.350769\t0.533198\tchile\tpunta_arenas\t/location/location/contains\n0.404846\t0.351282\t0.532965\titaly\tpiedmont\t/location/location/contains\n0.405198\t0.351795\t0.532532\tcape_may_county\tstone_harbor\t/location/location/contains\n0.404959\t0.351795\t0.532416\to'donnell\tboston\t/people/person/place_lived\n0.405310\t0.352308\t0.532227\tconnecticut\tnew_britain\t/location/location/contains\n0.405071\t0.352308\t0.532008\tunion_county\tessex\t/location/location/contains\n0.404832\t0.352308\t0.531654\tnorth_dakota\tfort_union\t/location/location/contains\n0.404594\t0.352308\t0.531515\titaly\tcurtis_institute_of_music\t/location/location/contains\n0.404944\t0.352821\t0.531367\titaly\tcampania\t/location/location/contains\n0.405294\t0.353333\t0.531236\tcalifornia\tmills_college\t/location/location/contains\n0.405644\t0.353846\t0.530815\toklahoma\tnorman\t/location/location/contains\n0.405405\t0.353846\t0.530692\tsan_carlos_city\tphilippines\t/people/person/nationality\n0.405167\t0.353846\t0.530685\tarica\tatlanta\t/people/person/place_lived\n0.405516\t0.354359\t0.530558\twestchester_county\tyorktown\t/location/location/contains\n0.405865\t0.354872\t0.530044\tdorchester\tboston\t/location/neighborhood/neighborhood_of\n0.406213\t0.355385\t0.529552\tromania\tbucharest\t/location/location/contains\n0.405975\t0.355385\t0.529179\tisaiah_washington\tscotland\t/people/person/nationality\n0.405738\t0.355385\t0.529011\tcheikh_anta_diop\tsenegal\t/people/person/nationality\n0.406085\t0.355897\t0.528364\ted_colligan\tpalm\t/business/person/company\n0.405848\t0.355897\t0.528279\tsandy_johnson\tdominican_republic\t/people/person/nationality\n0.406195\t0.356410\t0.527933\taileen_wuornos\tflorida\t/people/person/place_lived\n0.405958\t0.356410\t0.527500\tflorida\tscottsdale\t/location/location/contains\n0.405721\t0.356410\t0.527429\twestport\twinslow_park\t/location/location/contains\n0.405484\t0.356410\t0.527351\tflorida\tbarry_lubetkin\t/location/location/contains\n0.405248\t0.356410\t0.527244\tstaten_island\tst._george\t/location/location/contains\n0.405012\t0.356410\t0.527041\tsouth_korea\twando\t/location/location/contains\n0.404776\t0.356410\t0.526431\tmichael_kohlmann\tgermany\t/people/person/nationality\n0.404540\t0.356410\t0.526271\tvirginia\tst._michaels\t/location/location/contains\n0.404305\t0.356410\t0.526217\tgermany\tbayer_leverkusen\t/location/location/contains\n0.404070\t0.356410\t0.526158\tsacyr_vallehermoso\tfrance\t/people/person/nationality\n0.403835\t0.356410\t0.526080\tingrid_mattson\thartford_seminary\t/business/person/company\n0.403600\t0.356410\t0.526046\tukraine\tgalicia\t/location/location/contains\n0.403366\t0.356410\t0.525999\tbrad_lewis\tfrance\t/people/person/nationality\n0.403132\t0.356410\t0.525917\tchris_houston\tarkansas\t/people/person/place_lived\n0.403478\t0.356923\t0.525603\tjean-david_levitte\tfrance\t/people/person/nationality\n0.403244\t0.356923\t0.525488\tdarfur\tbirao\t/location/location/contains\n0.403011\t0.356923\t0.525411\tjohn_j._mcgrath\tphilippines\t/people/person/nationality\n0.402778\t0.356923\t0.525203\tbank_sepah\tiran\t/people/person/nationality\n0.402545\t0.356923\t0.524908\tmelissa_fay_greene\tatlanta\t/people/person/place_lived\n0.402312\t0.356923\t0.524263\telinor_carucci\tmexico\t/people/person/nationality\n0.402080\t0.356923\t0.523890\tbob_dole\tiowa\t/people/person/place_lived\n0.402425\t0.357436\t0.523751\trhode_island\tjohnston\t/location/location/contains\n0.402770\t0.357949\t0.523702\tira_winkler\tinformation_systems_security_association\t/business/person/company\n0.402537\t0.357949\t0.523458\tdaniel_pauly\tuniversity_of_british_columbia\t/business/person/company\n0.402305\t0.357949\t0.523380\tflorida\thollywood\t/location/location/contains\n0.402074\t0.357949\t0.522121\thuntington\tvanderbilt_museum\t/location/location/contains\n0.401842\t0.357949\t0.521098\tdaytona_beach\tdaytona_international_speedway\t/location/location/contains\n0.401611\t0.357949\t0.521022\tnigeria\tuniversity_of_ibadan\t/location/location/contains\n0.401380\t0.357949\t0.520712\tchristophe_rochus\tgermany\t/people/person/nationality\n0.401149\t0.357949\t0.520478\tmarty_stuart\tnashville\t/people/person/place_lived\n0.400919\t0.357949\t0.520424\tmaryland\tjill_st._john\t/location/location/contains\n0.400689\t0.357949\t0.520019\tsiena\ttroy\t/location/location/contains\n0.400459\t0.357949\t0.519505\tratan_tata\ttata\t/business/person/company\n0.400803\t0.358462\t0.519400\trussia\tnizhny_novgorod\t/location/location/contains\n0.400573\t0.358462\t0.518605\tminnesota\tspirit_lake\t/location/location/contains\n0.400344\t0.358462\t0.518359\tsuffolk_county\tst._joseph\t/location/location/contains\n0.400114\t0.358462\t0.518165\tbob_stapleton\titaly\t/people/person/nationality\n0.399886\t0.358462\t0.518020\tthe_new_york_times\tiran\t/people/person/nationality\n0.400229\t0.358974\t0.517681\tatari\tnolan_bushnell\t/business/company/founders\n0.400571\t0.359487\t0.517603\trobert_l._johnson\tblack_entertainment_television\t/business/person/company\n0.400914\t0.360000\t0.517537\tcook_county\tchicago\t/location/location/contains\n0.401256\t0.360513\t0.517348\tjean_baudrillard\tparis\t/people/deceased_person/place_of_death\n0.401027\t0.360513\t0.516647\tidaho\teastern_washington\t/location/location/contains\n0.400798\t0.360513\t0.516460\tontario\tst._marys_river\t/location/location/contains\n0.400570\t0.360513\t0.516203\tpol_pot\tgermany\t/people/person/nationality\n0.400342\t0.360513\t0.515923\tscott_rolen\tboston\t/people/person/place_lived\n0.400683\t0.361026\t0.515872\titaly\tverona\t/location/location/contains\n0.401024\t0.361538\t0.515824\tjohn_w._snow\tcsx_corporation\t/business/person/company\n0.400796\t0.361538\t0.515330\tkönigsdorf\tgermany\t/people/person/nationality\n0.401136\t0.362051\t0.515272\talan_paton\tsouth_africa\t/people/person/nationality\n0.400909\t0.362051\t0.514730\tnewark\tunion_city\t/location/location/contains\n0.400681\t0.362051\t0.514573\tsuffolk_county\twalgreens\t/location/location/contains\n0.401021\t0.362564\t0.514418\tdavid_wharnsby\ttoronto\t/people/person/place_lived\n0.400794\t0.362564\t0.514158\tmontana\tcanada\t/location/administrative_division/country\n0.400567\t0.362564\t0.513357\twestchester_county\tpaterson\t/location/location/contains\n0.400340\t0.362564\t0.512833\tjoe_courtney\tconnecticut\t/people/person/place_lived\n0.400679\t0.363077\t0.512778\tcanada\tcalgary\t/location/location/contains\n0.400452\t0.363077\t0.512626\tnorth_adams\tmarshall_street\t/location/location/contains\n0.400226\t0.363077\t0.512596\tbill_ritter\tmontana\t/people/person/place_lived\n0.400000\t0.363077\t0.512405\tmontana\tkirby\t/location/location/contains\n0.399774\t0.363077\t0.512401\tclay_shirky\tnew_york_university\t/business/person/company\n0.399549\t0.363077\t0.512044\tlouisville\tbrooks\t/location/location/contains\n0.399323\t0.363077\t0.511937\tconnecticut\tmaryland\t/people/person/place_lived\n0.399098\t0.363077\t0.511856\tcanada\tlake_huron\t/location/location/contains\n0.398873\t0.363077\t0.511717\tmichael_van_valkenburgh\tcharles_eliot\t/business/person/company\n0.398649\t0.363077\t0.511193\tst._thomas\tgermany\t/people/person/nationality\n0.398424\t0.363077\t0.511130\tcannon_mountain\tnew_hampshire\t/people/person/place_lived\n0.398200\t0.363077\t0.511103\tjohn_backus\tstanford_university\t/business/person/company\n0.397976\t0.363077\t0.510901\tcalifornia\twright\t/location/location/contains\n0.397753\t0.363077\t0.510190\tshay_doron\tmaryland\t/people/person/place_lived\n0.398091\t0.363590\t0.509963\tbranford\tstony_creek\t/location/location/contains\n0.397868\t0.363590\t0.509728\thouston\tgeorge_bush_intercontinental_airport\t/location/location/contains\n0.398205\t0.364103\t0.509434\tlaurie_baker\tindia\t/people/person/nationality\n0.398543\t0.364615\t0.509107\tkerala\ternakulam\t/location/location/contains\n0.398880\t0.365128\t0.508974\tcalifornia\tbrentwood\t/location/location/contains\n0.398656\t0.365128\t0.508677\tabdel_basset_ali_al-megrahi\tscotland\t/people/person/nationality\n0.398433\t0.365128\t0.508520\tconan_o'brien\tnbc\t/business/person/company\n0.398210\t0.365128\t0.508482\tjim_gilmore\tvirginia\t/people/person/place_lived\n0.397988\t0.365128\t0.508352\tsam_gejdenson\tconnecticut\t/people/person/place_lived\n0.397765\t0.365128\t0.507745\tvermont\tethan_allen\t/location/location/contains\n0.397543\t0.365128\t0.507203\tgoogle\tgeneral_electric\t/business/person/company\n0.397879\t0.365641\t0.506448\tjoseph_cedar\tisrael\t/people/person/nationality\n0.397658\t0.365641\t0.506280\temma_goldman\tspain\t/people/person/nationality\n0.397436\t0.365641\t0.505691\tcroton_dam\tnew_york_city\t/location/neighborhood/neighborhood_of\n0.397214\t0.365641\t0.505506\tkarl_shapiro\tmontana\t/people/person/place_lived\n0.397550\t0.366154\t0.505500\tcolorado\tsnowmass\t/location/location/contains\n0.397885\t0.366667\t0.505479\tterry_j._lundgren\tfederated_department_stores\t/business/person/company\n0.397664\t0.366667\t0.505072\triverhead\tcalverton_national_cemetery\t/location/location/contains\n0.397443\t0.366667\t0.504859\tted_conover\tnew_york_university\t/business/person/company\n0.397222\t0.366667\t0.504796\thong_kong_island\tvictoria_peak\t/location/location/contains\n0.397557\t0.367179\t0.504712\tclaude_brasseur\tfrance\t/people/person/nationality\n0.397336\t0.367179\t0.504606\tchicago\tunited_states_of_america\t/location/administrative_division/country\n0.397116\t0.367179\t0.504420\tjohn_w._snow\tgermany\t/people/person/nationality\n0.397450\t0.367692\t0.504296\tasia\tthailand\t/location/location/contains\n0.397784\t0.368205\t0.504285\tcanada\tst._catharines\t/location/location/contains\n0.397564\t0.368205\t0.503676\tireland\tdesmond_guinness\t/location/location/contains\n0.397344\t0.368205\t0.503465\tair_berlin\tgermany\t/people/person/nationality\n0.397124\t0.368205\t0.503419\tmike_gravel\tnew_york_city\t/people/person/place_lived\n0.396904\t0.368205\t0.503009\tcalifornia\tcolony_club\t/location/location/contains\n0.397238\t0.368718\t0.502783\tclaudio_x._gonzalez\tkimberly-clark\t/business/person/company\n0.397018\t0.368718\t0.502632\tflorida\trhode_island\t/location/location/contains\n0.396799\t0.368718\t0.502334\tvirginia\tsouth_kent\t/location/location/contains\n0.396580\t0.368718\t0.502196\tchicago\ttucson_international_airport\t/location/location/contains\n0.396362\t0.368718\t0.501811\trondout_reservoir\tnew_york_city\t/location/neighborhood/neighborhood_of\n0.396143\t0.368718\t0.501747\thosni_mubarak\tisrael\t/people/person/nationality\n0.395925\t0.368718\t0.501376\tnew_york_city\tfairfield_county\t/location/location/contains\n0.396258\t0.369231\t0.501276\tvermont\tmiddlebury\t/location/location/contains\n0.396040\t0.369231\t0.501221\tmarshall_rogers\tfremont\t/people/deceased_person/place_of_death\n0.396372\t0.369744\t0.500802\tchuck_hagel\tnebraska\t/people/person/place_lived\n0.396154\t0.369744\t0.500215\tkevin_coughlin\tcleveland\t/people/person/place_lived\n0.396485\t0.370256\t0.499948\tflorida\tport_st._lucie\t/location/location/contains\n0.396268\t0.370256\t0.499742\tjulia_mancuso\tspain\t/people/person/nationality\n0.396050\t0.370256\t0.499495\ta._c._grayling\tfrance\t/people/person/nationality\n0.395833\t0.370256\t0.499463\tconnecticut\tmilford\t/location/location/contains\n0.395616\t0.370256\t0.498680\tmexico_city\tspencer_tunick\t/location/location/contains\n0.395400\t0.370256\t0.498031\tburgundy\tfrance\t/location/administrative_division/country\n0.395183\t0.370256\t0.497243\tharrison_j._goldin\tbuffalo\t/people/person/place_lived\n0.394967\t0.370256\t0.497088\tcentral_asia\tbukhara\t/location/location/contains\n0.394751\t0.370256\t0.497068\tmaryland\tdunkirk\t/location/location/contains\n0.394536\t0.370256\t0.496977\tiran\tdenizli\t/location/location/contains\n0.394320\t0.370256\t0.496665\tavi_dichter\tisrael\t/people/person/nationality\n0.394105\t0.370256\t0.496653\tjimmy_rollins\tboston\t/people/person/place_lived\n0.394435\t0.370769\t0.496121\tkansas\twichita\t/location/location/contains\n0.394220\t0.370769\t0.495970\tnathaniel_hawthorne\tnew_york_city\t/people/person/place_lived\n0.394005\t0.370769\t0.495861\tchester_county\twellsboro\t/location/location/contains\n0.393791\t0.370769\t0.495792\tnational_opinion_research_center\tuniversity_of_chicago\t/business/person/company\n0.393576\t0.370769\t0.495704\tnizamuddin\tindia\t/people/person/nationality\n0.393362\t0.370769\t0.495568\toklahoma\tarapaho\t/location/location/contains\n0.393148\t0.370769\t0.495559\tkentucky\trobertson_county\t/location/location/contains\n0.393478\t0.371282\t0.495383\ttampa\tlegends_field\t/location/location/contains\n0.393808\t0.371795\t0.495211\tbooker_t._jones\tmemphis\t/people/person/place_lived\n0.393594\t0.371795\t0.494912\tjosé_rijo\tdominican_republic\t/people/person/nationality\n0.393380\t0.371795\t0.494901\tgermany\tpergamon\t/location/location/contains\n0.393167\t0.371795\t0.494812\tat&t\tbellsouth\t/business/person/company\n0.392954\t0.371795\t0.494500\tcalifornia\tbaltimore\t/location/location/contains\n0.392741\t0.371795\t0.494294\titaly\tclemente_mastella\t/location/location/contains\n0.392528\t0.371795\t0.494031\tjames_henry_hammond\tsouth_carolina\t/people/person/place_lived\n0.392316\t0.371795\t0.494022\tvictor_rojas\tphilippines\t/people/person/nationality\n0.392104\t0.371795\t0.492362\twestchester_county\trockefeller\t/location/location/contains\n0.391892\t0.371795\t0.492195\tjustin_wolfers\tindia\t/people/person/nationality\n0.391680\t0.371795\t0.491597\tlouisiana\teverglades\t/location/location/contains\n0.391469\t0.371795\t0.491470\tfrance\tvalence\t/location/location/contains\n0.391257\t0.371795\t0.491451\tpol_pot\tthailand\t/people/person/nationality\n0.391046\t0.371795\t0.491343\tbob_mitchell\tportland\t/people/person/place_lived\n0.391375\t0.372308\t0.491153\tunited_states_of_america\tchicago\t/location/location/contains\n0.391703\t0.372821\t0.490874\twilliam_easterly\tnew_york_university\t/business/person/company\n0.391492\t0.372821\t0.490695\tjaworzno\tpoland\t/people/person/nationality\n0.391819\t0.373333\t0.490526\tdavid_sloan_wilson\tbinghamton_university\t/business/person/company\n0.391608\t0.373333\t0.490053\tcalifornia\tcardiff\t/location/location/contains\n0.391398\t0.373333\t0.489541\tontario\twinsor\t/location/location/contains\n0.391725\t0.373846\t0.489263\tbaja_california\tmexico\t/location/administrative_division/country\n0.391515\t0.373846\t0.489016\tjohn_edwards\tnew_york_city\t/people/person/place_lived\n0.391304\t0.373846\t0.488847\tnatasha_hastings\tsouth_carolina\t/people/person/place_lived\n0.391094\t0.373846\t0.488582\twestchester_county\tvalencia\t/location/location/contains\n0.390885\t0.373846\t0.488534\tvermont\tnorth_hill\t/location/location/contains\n0.391211\t0.374359\t0.488314\talameda_county\toakland\t/location/location/contains\n0.391002\t0.374359\t0.488256\ternie_grunwald\tfrance\t/people/person/nationality\n0.390792\t0.374359\t0.487893\tcalifornia\tsouth_bronx\t/location/location/contains\n0.390583\t0.374359\t0.487801\tiowa\tarkansas\t/location/location/contains\n0.390374\t0.374359\t0.487772\tluise_rainer\tconnecticut\t/people/person/place_lived\n0.390166\t0.374359\t0.487677\trocky_mountains\tboulder\t/location/location/contains\n0.389957\t0.374359\t0.487564\tmsn_tv\tsteve_perlman\t/business/person/company\n0.389749\t0.374359\t0.487494\ttila_tequila\tnews_corporation\t/business/person/company\n0.389541\t0.374359\t0.486886\tjosh_boone\tconnecticut\t/people/person/place_lived\n0.389333\t0.374359\t0.486826\tgardaland\titaly\t/people/person/nationality\n0.389126\t0.374359\t0.486686\tdingwall\tscotland\t/people/person/nationality\n0.388918\t0.374359\t0.486413\tindia\thcl_technologies\t/location/location/contains\n0.388711\t0.374359\t0.485894\treza_shah\tiran\t/people/person/nationality\n0.388505\t0.374359\t0.485791\tjasmine_dellal\tspain\t/people/person/nationality\n0.388298\t0.374359\t0.485711\twashington\tnational_cherry_blossom_festival\t/location/location/contains\n0.388091\t0.374359\t0.485407\ttybee_island\tatlanta\t/people/person/place_lived\n0.387885\t0.374359\t0.485403\tcolorado\tlafayette\t/location/location/contains\n0.388210\t0.374872\t0.484864\titaly\tbardolino\t/location/location/contains\n0.388004\t0.374872\t0.484797\tpatrick_ireland\tireland\t/people/person/nationality\n0.387798\t0.374872\t0.484536\tmississippi\tsan_jose\t/location/location/contains\n0.387593\t0.374872\t0.484312\tlaos\tloei_province\t/location/location/contains\n0.387387\t0.374872\t0.484219\toklahoma\tmexico_city\t/location/location/contains\n0.387182\t0.374872\t0.484185\tdominican_republic\tport_st._lucie\t/location/location/contains\n0.386977\t0.374872\t0.484181\tcalifornia\tgeorgia_aquarium\t/location/location/contains\n0.387302\t0.375385\t0.483913\tchristian_de_portzamparc\tfrance\t/people/person/nationality\n0.387097\t0.375385\t0.483756\tthomas_w._lasorda\tjohn_w._snow\t/business/person/company\n0.386892\t0.375385\t0.483738\trussell_merryman\tyoutube\t/business/person/company\n0.386688\t0.375385\t0.483692\tjohn_o'sullivan\tcanada\t/people/person/nationality\n0.387012\t0.375897\t0.483613\twaterloo\tuniversity_of_waterloo\t/location/location/contains\n0.386807\t0.375897\t0.483569\tgeorge_h._w._bush\tnew_hampshire\t/people/person/place_lived\n0.386603\t0.375897\t0.483292\tjohnson_&_wales_university\tharborside\t/location/location/contains\n0.386400\t0.375897\t0.483137\tjeff_bernstein\tnew_york_university\t/business/person/company\n0.386196\t0.375897\t0.482700\tsan_francisco\tcliff_house\t/location/location/contains\n0.385993\t0.375897\t0.482233\tcoahuila\tspain\t/people/person/nationality\n0.385789\t0.375897\t0.481932\tpalo_alto\tstanford_shopping_center\t/location/location/contains\n0.386113\t0.376410\t0.481848\trichmond_valley\tstaten_island\t/location/neighborhood/neighborhood_of\n0.385910\t0.376410\t0.481765\tiran\tzahra_eshraghi\t/location/location/contains\n0.385707\t0.376410\t0.481620\txinjiang\thebei\t/location/location/contains\n0.385504\t0.376410\t0.481588\trodney_ellis\thouston\t/people/person/place_lived\n0.385302\t0.376410\t0.481270\tcraig_claiborne\tmississippi\t/people/person/place_lived\n0.385624\t0.376923\t0.481052\tvirginia\twestover\t/location/location/contains\n0.385422\t0.376923\t0.480900\twestchester_county\ttufts_university\t/location/location/contains\n0.385220\t0.376923\t0.480823\tsan_jose\talmaden_research_center\t/location/location/contains\n0.385542\t0.377436\t0.480500\tstuart_rosenberg\tbeverly_hills\t/people/deceased_person/place_of_death\n0.385340\t0.377436\t0.480419\tkentucky\tcattaraugus\t/location/location/contains\n0.385139\t0.377436\t0.480324\tnew_york_city\tkeansburg\t/location/location/contains\n0.384937\t0.377436\t0.479866\tlori_swanson\tminnesota\t/people/person/place_lived\n0.385259\t0.377949\t0.479807\tspain\tcatalonia\t/location/country/administrative_divisions\n0.385057\t0.377949\t0.479511\tdick_ebersol\tnbc\t/business/person/company\n0.384856\t0.377949\t0.478946\tstanley_wasserman\tindiana_university\t/business/person/company\n0.384656\t0.377949\t0.478766\tsyracuse\tbuffalo\t/location/location/contains\n0.384455\t0.377949\t0.478647\toklahoma\tindian_territory\t/location/location/contains\n0.384254\t0.377949\t0.478196\tdallas\tharvest_partners\t/location/location/contains\n0.384054\t0.377949\t0.478100\tcolony_club\tnew_york_city\t/location/neighborhood/neighborhood_of\n0.384375\t0.378462\t0.478029\tfrance\tcorrèze\t/location/country/administrative_divisions\n0.384175\t0.378462\t0.477980\tdieterich_buxtehude\tdenmark\t/people/person/nationality\n0.383975\t0.378462\t0.477717\tholt_renfrew\tcanada\t/people/person/nationality\n0.383775\t0.378462\t0.477351\tcaribbean\tmacuto\t/location/location/contains\n0.383576\t0.378462\t0.477128\tannie_leibovitz\tboston\t/people/person/place_lived\n0.383896\t0.378974\t0.476836\tmargaret_mitchell\tatlanta\t/people/person/place_lived\n0.383697\t0.378974\t0.476770\tfrance\tlaguiole\t/location/location/contains\n0.383498\t0.378974\t0.476702\tvali_nasr\tnaval_postgraduate_school\t/business/person/company\n0.383817\t0.379487\t0.476666\tjosé_calderón\tspain\t/people/person/nationality\n0.383618\t0.379487\t0.476362\tjoe_beck\tatlanta\t/people/person/place_lived\n0.383420\t0.379487\t0.476038\titaly\tclifton\t/location/location/contains\n0.383221\t0.379487\t0.475360\tcolorado\tfrisco\t/location/location/contains\n0.383023\t0.379487\t0.475318\ttouraine\tfrance\t/location/administrative_division/country\n0.382825\t0.379487\t0.475222\tvirginia\tmontgomery_county\t/location/location/contains\n0.382627\t0.379487\t0.475201\tvermont\tmckibben\t/location/location/contains\n0.382429\t0.379487\t0.474447\tiowa\ttipton\t/location/location/contains\n0.382231\t0.379487\t0.474292\tstanley_park\tanfield\t/location/location/contains\n0.382034\t0.379487\t0.474267\titaly\tcatalonia\t/location/location/contains\n0.381837\t0.379487\t0.474244\tcatalonia\tmadrid\t/location/location/contains\n0.381640\t0.379487\t0.473854\tkhosla_ventures\tsean_simpson\t/business/person/company\n0.381443\t0.379487\t0.473732\tjulie_taymor\tsouth_africa\t/people/person/nationality\n0.381247\t0.379487\t0.473500\tsocotra\tyemen\t/people/person/nationality\n0.381050\t0.379487\t0.473126\tcanada\tdetroit_river\t/location/location/contains\n0.381369\t0.380000\t0.473017\tmexico\tguanajuato\t/location/country/administrative_divisions\n0.381173\t0.380000\t0.472981\tvermont\tsugarbush\t/location/location/contains\n0.380977\t0.380000\t0.472807\tpaul_g._pinsky\tmaryland\t/people/person/place_lived\n0.380781\t0.380000\t0.472517\trobert_kendrick\tspain\t/people/person/nationality\n0.380586\t0.380000\t0.472423\tessex\tessex_meadows\t/location/location/contains\n0.380390\t0.380000\t0.472421\tmichael_mori\taustralia\t/people/person/nationality\n0.380195\t0.380000\t0.472360\tconnecticut\tmount_kisco\t/location/location/contains\n0.380000\t0.380000\t0.471757\tbernard_lagat\taustralia\t/people/person/nationality\n0.379805\t0.380000\t0.471615\tthomas_dewey\tnew_york_city\t/people/person/place_lived\n0.379611\t0.380000\t0.471251\tireland\tnorthern_europe\t/location/location/contains\n0.379416\t0.380000\t0.471103\tfrance\tbesançon\t/location/location/contains\n0.379222\t0.380000\t0.470847\tm._jodi_rell\tconnecticut\t/people/person/place_lived\n0.379028\t0.380000\t0.470274\thood_river\toak_street\t/location/location/contains\n0.378834\t0.380000\t0.470157\tvirginia\tgreenberg_traurig\t/location/location/contains\n0.378641\t0.380000\t0.469930\tjoseph_mitchell\tireland\t/people/person/nationality\n0.378447\t0.380000\t0.469799\tunited_states_of_america\tbernard_kerik\t/location/location/contains\n0.378254\t0.380000\t0.469711\tankara\tdenizli\t/location/location/contains\n0.378061\t0.380000\t0.469441\tlawrence_lessig\tcreative_commons\t/business/person/company\n0.377868\t0.380000\t0.469190\tconnecticut\tbloomfield\t/location/location/contains\n0.378186\t0.380513\t0.468769\trussia\tvankarem\t/location/location/contains\n0.377993\t0.380513\t0.468644\tjill_abramson\tthe_new_york_times\t/business/person/company\n0.378310\t0.381026\t0.468356\tindiana\tsanta_claus\t/location/location/contains\n0.378117\t0.381026\t0.468263\tauxerre\tfrance\t/people/person/nationality\n0.377925\t0.381026\t0.468034\ttopeka\tatchison\t/location/location/contains\n0.377733\t0.381026\t0.467981\tiowa\tindian_hills\t/location/location/contains\n0.377541\t0.381026\t0.467899\tnew_york_city\tboston\t/location/location/contains\n0.377349\t0.381026\t0.467667\tgelderland\tamsterdam\t/location/location/contains\n0.377665\t0.381538\t0.467486\tcroatia\tzagreb\t/location/location/contains\n0.377473\t0.381538\t0.467454\te._b._white\tconnecticut\t/people/person/place_lived\n0.377282\t0.381538\t0.466921\tiowa\tmontezuma\t/location/location/contains\n0.377091\t0.381538\t0.466563\tflorida\tbayside\t/location/location/contains\n0.376900\t0.381538\t0.466202\telias_murr\tisrael\t/people/person/nationality\n0.376709\t0.381538\t0.466171\tcalifornia\tcarlos_rodriguez\t/location/location/contains\n0.376518\t0.381538\t0.466039\tfox_interactive_media\tnews_corporation\t/business/person/company\n0.376328\t0.381538\t0.465465\ta._e._hotchner\tfrance\t/people/person/nationality\n0.376138\t0.381538\t0.465267\tlaurence_h._silberman\tunited_states_court_of_appeals_for_the_district_of_columbia_circuit\t/business/person/company\n0.375947\t0.381538\t0.465197\tpowerset\tgoogle\t/business/person/company\n0.375758\t0.381538\t0.464868\tedward_livingston\tnew_york_city\t/people/person/place_lived\n0.375568\t0.381538\t0.464258\toscar_de_la_renta\tgermany\t/people/person/nationality\n0.375883\t0.382051\t0.464099\tchicago\trush_medical_college\t/location/location/contains\n0.375693\t0.382051\t0.463856\tireland\tbastrop\t/location/location/contains\n0.375504\t0.382051\t0.463836\tdominican_republic\tpompano_beach\t/location/location/contains\n0.375315\t0.382051\t0.463066\tléopold_sédar_senghor\tsenegal\t/people/person/nationality\n0.375126\t0.382051\t0.462951\talexander_waske\tgermany\t/people/person/nationality\n0.374937\t0.382051\t0.462882\tedgar_sosa\tlouisville\t/people/person/place_lived\n0.374748\t0.382051\t0.462819\tflorida\tziad_jarrah\t/location/location/contains\n0.374560\t0.382051\t0.462673\tmike_gravel\tsouth_carolina\t/people/person/place_lived\n0.374372\t0.382051\t0.462563\tann_arbor\tgeorge_eastman_house\t/location/location/contains\n0.374184\t0.382051\t0.461901\tcanada\tandré_boisclair\t/location/location/contains\n0.373996\t0.382051\t0.461753\tunicredit\tfrance\t/people/person/nationality\n0.373808\t0.382051\t0.461523\tmel_gibson\titaly\t/people/person/nationality\n0.373621\t0.382051\t0.461364\tgermany\tsan_bruno\t/location/location/contains\n0.373434\t0.382051\t0.460794\tvolgograd\trussia\t/location/administrative_division/country\n0.373246\t0.382051\t0.460679\tfairfield_county\trye\t/location/location/contains\n0.373060\t0.382051\t0.460415\trussia\tkommersant\t/location/location/contains\n0.372873\t0.382051\t0.460401\tjeffrey_r._immelt\tcnbc\t/business/person/company\n0.372686\t0.382051\t0.460376\tjohn_doolittle\tcalifornia\t/people/person/place_lived\n0.372500\t0.382051\t0.460319\trussian\tgermany\t/people/person/nationality\n"
  },
  {
    "path": "jointE/SATT/init.cpp",
    "content": "#include <cstring>\n#include <cstdio>\n#include <cstdlib>\n#include <cmath>\n#include <ctime>\n#include <string>\n#include <algorithm>\n\nusing namespace std;\n\nstring inPath = \"./data/\";\n\nextern \"C\"\nvoid setInPath(char *path) {\n    int len = strlen(path);\n    inPath = \"\";\n    for (int i = 0; i < len; i++)\n        inPath = inPath + path[i];\n    printf(\"Input Files Path : %s\\n\", inPath.c_str());\n}\n\nint *lefHead, *rigHead;\nint *lefTail, *rigTail;\n\nstruct Triple {\n\tint h, r, t;\n};\n\nstruct cmp_head {\n\tbool operator()(const Triple &a, const Triple &b) {\n\t\treturn (a.h < b.h)||(a.h == b.h && a.r < b.r)||(a.h == b.h && a.r == b.r && a.t < b.t);\n\t}\n};\n\nstruct cmp_tail {\n\tbool operator()(const Triple &a, const Triple &b) {\n\t\treturn (a.t < b.t)||(a.t == b.t && a.r < b.r)||(a.t == b.t && a.r == b.r && a.h < b.h);\n\t}\n};\n\nstruct cmp_list {\n\tint minimal(int a,int b) {\n\t\tif (a > b) return b;\n\t\treturn a;\n\t}\n\tbool operator()(const Triple &a, const Triple &b) {\n\t\treturn (minimal(a.h, a.t) > minimal(b.h, b.t));\n\t}\n};\n\nTriple *trainHead, *trainTail, *trainList;\nint relationTotal, entityTotal, tripleTotal;\nint *freqRel, *freqEnt;\nfloat *left_mean, *right_mean;\n\nextern \"C\"\nvoid init() {\n\n\tFILE *fin;\n\tint tmp;\n\n\tfin = fopen((inPath + \"relation2id.txt\").c_str(), \"r\");\n\ttmp = fscanf(fin, \"%d\", &relationTotal);\n\tfclose(fin);\n\tprintf(\"%d\\n\", relationTotal);\n\n\tfreqRel = (int *)calloc(relationTotal, sizeof(int));\n\t\n\tfin = fopen((inPath + \"entity2id.txt\").c_str(), \"r\");\n\ttmp = fscanf(fin, \"%d\", &entityTotal);\n\tfclose(fin);\n\tprintf(\"%d\\n\", entityTotal);\n\n\tfreqEnt = (int *)calloc(entityTotal, sizeof(int));\n\t\n\tfin = fopen((inPath + \"triple2id.txt\").c_str(), \"r\");\n\ttmp = fscanf(fin, \"%d\", &tripleTotal);\n\tprintf(\"%d\\n\", tripleTotal);\n\ttrainHead = (Triple *)calloc(tripleTotal, sizeof(Triple));\n\ttrainTail = (Triple *)calloc(tripleTotal, sizeof(Triple));\n\ttrainList = (Triple *)calloc(tripleTotal, sizeof(Triple));\n\ttripleTotal = 0;\n\twhile (fscanf(fin, \"%d\", &trainList[tripleTotal].h) == 1) {\n\t\ttmp = fscanf(fin, \"%d\", &trainList[tripleTotal].t);\n\t\ttmp = fscanf(fin, \"%d\", &trainList[tripleTotal].r);\n\t\tfreqEnt[trainList[tripleTotal].t]++;\n\t\tfreqEnt[trainList[tripleTotal].h]++;\n\t\tfreqRel[trainList[tripleTotal].r]++;\n\t\ttrainHead[tripleTotal].h = trainList[tripleTotal].h;\n\t\ttrainHead[tripleTotal].t = trainList[tripleTotal].t;\n\t\ttrainHead[tripleTotal].r = trainList[tripleTotal].r;\n\t\ttrainTail[tripleTotal].h = trainList[tripleTotal].h;\n\t\ttrainTail[tripleTotal].t = trainList[tripleTotal].t;\n\t\ttrainTail[tripleTotal].r = trainList[tripleTotal].r;\n\t\ttripleTotal++;\n\t}\n\tfclose(fin);\n\n\tsort(trainHead, trainHead + tripleTotal, cmp_head());\n\tsort(trainTail, trainTail + tripleTotal, cmp_tail());\n\n\tlefHead = (int *)calloc(entityTotal, sizeof(int));\n\trigHead = (int *)calloc(entityTotal, sizeof(int));\n\tlefTail = (int *)calloc(entityTotal, sizeof(int));\n\trigTail = (int *)calloc(entityTotal, sizeof(int));\n\tmemset(rigHead, -1, sizeof(rigHead));\n\tmemset(rigTail, -1, sizeof(rigTail));\n\tfor (int i = 1; i < tripleTotal; i++) {\n\t\tif (trainTail[i].t != trainTail[i - 1].t) {\n\t\t\trigTail[trainTail[i - 1].t] = i - 1;\n\t\t\tlefTail[trainTail[i].t] = i;\n\t\t}\n\t\tif (trainHead[i].h != trainHead[i - 1].h) {\n\t\t\trigHead[trainHead[i - 1].h] = i - 1;\n\t\t\tlefHead[trainHead[i].h] = i;\n\t\t}\n\t}\n\trigHead[trainHead[tripleTotal - 1].h] = tripleTotal - 1;\n\trigTail[trainTail[tripleTotal - 1].t] = tripleTotal - 1;\n\n\tleft_mean = (float *)calloc(relationTotal,sizeof(float));\n\tright_mean = (float *)calloc(relationTotal,sizeof(float));\n\tfor (int i = 0; i < entityTotal; i++) {\n\t\tfor (int j = lefHead[i] + 1; j <= rigHead[i]; j++)\n\t\t\tif (trainHead[j].r != trainHead[j - 1].r)\n\t\t\t\tleft_mean[trainHead[j].r] += 1.0;\n\t\tif (lefHead[i] <= rigHead[i])\n\t\t\tleft_mean[trainHead[lefHead[i]].r] += 1.0;\n\t\tfor (int j = lefTail[i] + 1; j <= rigTail[i]; j++)\n\t\t\tif (trainTail[j].r != trainTail[j - 1].r)\n\t\t\t\tright_mean[trainTail[j].r] += 1.0;\n\t\tif (lefTail[i] <= rigTail[i])\n\t\t\tright_mean[trainTail[lefTail[i]].r] += 1.0;\n\t}\n\tfor (int i = 0; i < relationTotal; i++) {\n\t\tleft_mean[i] = freqRel[i] / left_mean[i];\n\t\tright_mean[i] = freqRel[i] / right_mean[i];\n\t}\n}\n\nextern \"C\"\nint getEntityTotal() {\n\treturn entityTotal;\n}\n\nextern \"C\"\nint getRelationTotal() {\n\treturn relationTotal;\n}\n\nextern \"C\"\nint getTripleTotal() {\n\treturn tripleTotal;\n}\n\n// unsigned long long *next_random;\nunsigned long long next_random = 3;\n\nunsigned long long randd(int id) {\n\tnext_random = next_random * (unsigned long long)25214903917 + 11;\n\treturn next_random;\n}\n\nint rand_max(int id, int x) {\n\tint res = randd(id) % x;\n\twhile (res<0)\n\t\tres+=x;\n\treturn res;\n}\n\nint corrupt_head(int id, int h, int r) {\n\tint lef, rig, mid, ll, rr;\n\tlef = lefHead[h] - 1;\n\trig = rigHead[h];\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainHead[mid].r >= r) rig = mid; else\n\t\tlef = mid;\n\t}\n\tll = rig;\n\tlef = lefHead[h];\n\trig = rigHead[h] + 1;\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainHead[mid].r <= r) lef = mid; else\n\t\trig = mid;\n\t}\n\trr = lef;\n\tint tmp = rand_max(id, entityTotal - (rr - ll + 1));\n\tif (tmp < trainHead[ll].t) return tmp;\n\tif (tmp > trainHead[rr].t - rr + ll - 1) return tmp + rr - ll + 1;\n\tlef = ll, rig = rr + 1;\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainHead[mid].t - mid + ll - 1 < tmp)\n\t\t\tlef = mid;\n\t\telse \n\t\t\trig = mid;\n\t}\n\treturn tmp + lef - ll + 1;\n}\n\nint corrupt_tail(int id, int t, int r) {\n\tint lef, rig, mid, ll, rr;\n\tlef = lefTail[t] - 1;\n\trig = rigTail[t];\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainTail[mid].r >= r) rig = mid; else\n\t\tlef = mid;\n\t}\n\tll = rig;\n\tlef = lefTail[t];\n\trig = rigTail[t] + 1;\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainTail[mid].r <= r) lef = mid; else\n\t\trig = mid;\n\t}\n\trr = lef;\n\tint tmp = rand_max(id, entityTotal - (rr - ll + 1));\n\tif (tmp < trainTail[ll].h) return tmp;\n\tif (tmp > trainTail[rr].h - rr + ll - 1) return tmp + rr - ll + 1;\n\tlef = ll, rig = rr + 1;\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainTail[mid].h - mid + ll - 1 < tmp)\n\t\t\tlef = mid;\n\t\telse \n\t\t\trig = mid;\n\t}\n\treturn tmp + lef - ll + 1;\n}\n\nextern \"C\"\nvoid getBatch(int *ph, int *pt, int *pr, int *nh, int *nt, int *nr, int batchSize, int id = 0) {\n\tfor (int batch = 0; batch < batchSize; batch++) {\n\t\tint i = rand_max(id, tripleTotal), j;\n\t\t// float prob = 1000 * right_mean[trainList[i].r] / (right_mean[trainList[i].r] + left_mean[trainList[i].r]);\n\t\tfloat prob = 500;\n\t\tif (randd(id) % 1000 < prob) {\n\t\t\tj = corrupt_head(id, trainList[i].h, trainList[i].r);\n\t\t\tph[batch] = trainList[i].h;\n\t\t\tpt[batch] = trainList[i].t;\n\t\t\tpr[batch] = trainList[i].r;\n\t\t\tnh[batch] = trainList[i].h;\n\t\t\tnt[batch] = j;\n\t\t\tnr[batch] = trainList[i].r;\n\t\t} else {\n\t\t\tj = corrupt_tail(id, trainList[i].t, trainList[i].r);\n\t\t\tph[batch] = trainList[i].h;\n\t\t\tpt[batch] = trainList[i].t;\n\t\t\tpr[batch] = trainList[i].r;\n\t\t\tnh[batch] = j;\n\t\t\tnt[batch] = trainList[i].t;\n\t\t\tnr[batch] = trainList[i].r;\n\t\t}\n\t}\n}"
  },
  {
    "path": "jointE/SATT/make.sh",
    "content": "g++ init.cpp -o init.so -fPIC -shared -pthread -O3 -march=native\n"
  },
  {
    "path": "jointE/SATT/network.py",
    "content": "import tensorflow as tf\nimport numpy as np\nimport tensorflow.contrib.slim as slim\n\nFLAGS = tf.app.flags.FLAGS\n\nclass NN(object):\n\n\tdef __init__(self, is_training, word_embeddings, simple_position = False):\n\t\tself.max_length = FLAGS.max_length\n\t\tself.num_classes = FLAGS.num_classes\n\t\tif len(word_embeddings[0]) != FLAGS.embedding_size:\n\t\t\tself.word_size = FLAGS.embedding_size\n\t\telse:\n\t\t\tself.word_size = len(word_embeddings[0])\n\t\tself.hidden_size = FLAGS.hidden_size\n\t\tif FLAGS.model.lower() == \"cnn\":\n\t\t\tself.output_size = FLAGS.hidden_size\n\t\telif FLAGS.model.lower() == \"pcnn\":\n\t\t\tself.output_size = FLAGS.hidden_size * 3\n\t\telif FLAGS.model.lower() == \"lstm\":\n\t\t\tself.output_size = FLAGS.hidden_size\n\t\telif FLAGS.model.lower() == \"gru\":\n\t\t\tself.output_size = FLAGS.hidden_size\n\t\telif FLAGS.model.lower() == \"bi-lstm\" or FLAGS.model.lower() == \"bilstm\":\n\t\t\tself.output_size = FLAGS.hidden_size * 2\n\t\telif FLAGS.model.lower() == \"bi-gru\" or FLAGS.model.lower() == \"bigru\":\n\t\t\tself.output_size = FLAGS.hidden_size * 2\n\t\tself.margin = FLAGS.margin\n\t\t# placeholders for text models\n\t\tself.word = tf.placeholder(dtype=tf.int32,shape=[None, self.max_length], name='input_word')\n\t\tself.pos1 = tf.placeholder(dtype=tf.int32,shape=[None, self.max_length], name='input_pos1')\n\t\tself.pos2 = tf.placeholder(dtype=tf.int32,shape=[None, self.max_length], name='input_pos2')\n\t\tself.mask = tf.placeholder(dtype=tf.int32,shape=[None, self.max_length],name='input_mask')\n\t\tself.len = tf.placeholder(dtype=tf.int32,shape=[None],name='input_len')\n\t\tself.label_index = tf.placeholder(dtype=tf.int32,shape=[None], name='label_index')\n\t\tself.head_index = tf.placeholder(dtype=tf.int32,shape=[None], name='head_index')\n\t\tself.tail_index = tf.placeholder(dtype=tf.int32,shape=[None], name='tail_index')\n\t\tself.label = tf.placeholder(dtype=tf.float32,shape=[FLAGS.batch_size, self.num_classes], name='input_label')\n\t\tself.scope = tf.placeholder(dtype=tf.int32,shape=[FLAGS.batch_size+1], name='scope')\t\n\t\tself.keep_prob = tf.placeholder(dtype=tf.float32, name='keep_prob')\n\t\tself.weights = tf.placeholder(dtype=tf.float32,shape=[FLAGS.batch_size])\n\t\t# placeholders for kg models\n\t\tself.pos_h = tf.placeholder(tf.int32, [None])\n\t\tself.pos_t = tf.placeholder(tf.int32, [None])\n\t\tself.pos_r = tf.placeholder(tf.int32, [None])\n\t\tself.neg_h = tf.placeholder(tf.int32, [None])\n\t\tself.neg_t = tf.placeholder(tf.int32, [None])\n\t\tself.neg_r = tf.placeholder(tf.int32, [None])\n\t\tself.r_scope = tf.placeholder(tf.int32, [None])\n\t\tself.r_label = tf.placeholder(tf.int32, [None])\n\t\tself.r_length = tf.placeholder(tf.int32, [None])\n\n\t\twith tf.name_scope(\"embedding-layers\"):\n\t\t\t# word embeddings\n\t\t\tif len(word_embeddings[0]) != FLAGS.embedding_size:\n\t\t\t\ttemp_word_embedding = tf.get_variable(name = 'temp_word_embedding', shape=[len(word_embeddings) - FLAGS.ent_total, self.word_size], dtype=tf.float32, initializer = tf.contrib.layers.xavier_initializer(uniform = False))\n\t\t\telse:\n\t\t\t\ttemp_word_embedding = tf.get_variable(initializer=word_embeddings[FLAGS.ent_total:,:],name = 'temp_word_embedding',dtype=tf.float32)\n\t\t\tent_embedding = tf.get_variable(name = \"ent_embedding\",shape = [FLAGS.ent_total, self.word_size], initializer = tf.contrib.layers.xavier_initializer(uniform = False))\n\t\t\tunk_word_embedding = tf.get_variable('unk_embedding',[self.word_size], dtype=tf.float32, initializer = tf.contrib.layers.xavier_initializer(uniform = False))\n\t\t\tself.word_embedding = tf.concat([\n\t\t\t\tent_embedding,\n\t\t\t\ttemp_word_embedding,\n\t\t\t\ttf.reshape(unk_word_embedding,[1, self.word_size]),\n\t\t\t\ttf.reshape(tf.constant(np.zeros(self.word_size, dtype=np.float32)),[1, self.word_size]) ],0)\n\t\t\tself.relation_matrix = tf.get_variable('relation_matrix',[self.num_classes, self.output_size],dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n\t\t\tself.bias = tf.get_variable('bias',[self.num_classes],dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n\t\t\t# position embeddings\n\t\t\tif simple_position:\n\t\t\t\ttemp_pos_array = np.zeros((FLAGS.pos_num + 1, FLAGS.pos_size), dtype=np.float32)\n\t\t\t\ttemp_pos_array[(FLAGS.pos_num - 1) / 2] = np.ones(FLAGS.pos_size, dtype=np.float32)\n\t\t\t\tself.pos1_embedding = tf.constant(temp_pos_array)\n\t\t\t\tself.pos2_embedding = tf.constant(temp_pos_array)\n\t\t\telse:\n\t\t\t\ttemp_pos1_embedding = tf.get_variable('temp_pos1_embedding',[FLAGS.pos_num,FLAGS.pos_size],dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n\t\t\t\ttemp_pos2_embedding = tf.get_variable('temp_pos2_embedding',[FLAGS.pos_num,FLAGS.pos_size],dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n\t\t\t\tself.pos1_embedding = tf.concat([temp_pos1_embedding,tf.reshape(tf.constant(np.zeros(FLAGS.pos_size,dtype=np.float32)),[1, FLAGS.pos_size])],0)\n\t\t\t\tself.pos2_embedding = tf.concat([temp_pos2_embedding,tf.reshape(tf.constant(np.zeros(FLAGS.pos_size,dtype=np.float32)),[1, FLAGS.pos_size])],0)\n\t\t\t# relation embeddings and the transfer matrix between relations and textual relations\n\t\t\tself.rel_embeddings = tf.get_variable(name = \"rel_embedding\", shape = [FLAGS.rel_total, self.word_size], initializer = tf.contrib.layers.xavier_initializer(uniform = False))\n\t\t\tself.transfer_matrix = tf.get_variable(\"transfer_matrix\", [self.output_size, self.word_size])\n\t\t\tself.transfer_bias = tf.get_variable('transfer_bias', [self.word_size], dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n\t\t\n\t\twith tf.name_scope(\"embedding-lookup\"):\n\t\t\t# textual embedding-lookup \n\t\t\tinput_word = tf.nn.embedding_lookup(self.word_embedding, self.word)\n\t\t\tinput_pos1 = tf.nn.embedding_lookup(self.pos1_embedding, self.pos1)\n\t\t\tinput_pos2 = tf.nn.embedding_lookup(self.pos2_embedding, self.pos2)\n\t\t\tself.input_embedding = tf.concat(values = [input_word, input_pos1, input_pos2], axis = 2)\n\t\t\t# knowledge embedding-lookup \n\t\t\tpos_h_e = tf.nn.embedding_lookup(self.word_embedding, self.pos_h)\n\t\t\tpos_t_e = tf.nn.embedding_lookup(self.word_embedding, self.pos_t)\n\t\t\tpos_r_e = tf.nn.embedding_lookup(self.rel_embeddings, self.pos_r)\n\t\t\tneg_h_e = tf.nn.embedding_lookup(self.word_embedding, self.neg_h)\n\t\t\tneg_t_e = tf.nn.embedding_lookup(self.word_embedding, self.neg_t)\n\t\t\tneg_r_e = tf.nn.embedding_lookup(self.rel_embeddings, self.neg_r)\n\n\t\twith tf.name_scope(\"knowledge_graph\"):\n\t\t\tpos = tf.reduce_sum(abs(pos_h_e + pos_r_e - pos_t_e), 1, keep_dims = True)\n\t\t\tneg = tf.reduce_sum(abs(neg_h_e + neg_r_e - neg_t_e), 1, keep_dims = True)\n\t\t\tself.loss_kg = tf.reduce_sum(tf.maximum(pos - neg + self.margin, 0))\n\n\t\t\tht_e = pos_t_e - pos_h_e\n\t\t\tht_att_e = tf.reshape(self.satt(ht_e), [-1, 1, self.word_size])\n\t\t\tpre_r_e = tf.reshape(self.rel_embeddings[:self.num_classes] , [1, -1, self.word_size])\n\n\t\t\tscore = tf.reduce_sum(abs(ht_att_e - pre_r_e), -1, keep_dims = False)\n\t\t\tone_hot_label = tf.one_hot(self.r_label, self.num_classes, dtype = tf.int32)\n\n\t\t\tself.loss_kg_att = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels = one_hot_label, logits = 6.0 - score))\n\t\t\tself.predictions_kg_att = tf.argmax(6.0 - score, 1, name=\"predictions\", output_type = tf.int32)\n\t\t\tself.correct_predictions_kg_att = tf.equal(self.predictions_kg_att, self.r_label)\n\t\t\tself.accuracy_kg_att = tf.reduce_mean(tf.cast(self.correct_predictions_kg_att, \"float\"), name=\"accuracy\")\n\n\tdef transfer(self, x):\n\t\tres = tf.nn.bias_add(tf.matmul(x, self.transfer_matrix), self.transfer_bias)\n\t\treturn res\n\n\tdef att(self, x, is_training = True, dropout = True):\n\t\twith tf.name_scope(\"sentence-level-attention\"):\n\t\t\tcurrent_attention = tf.nn.embedding_lookup(self.relation_matrix, self.label_index)\n\t\t\tattention_logit = tf.reduce_sum(current_attention * x, 1)\n\t\t\ttower_repre = []\n\t\t\tfor i in range(FLAGS.batch_size):\n\t\t\t\tsen_matrix = x[self.scope[i]:self.scope[i+1]]\n\t\t\t\tattention_score = tf.nn.softmax(tf.reshape(attention_logit[self.scope[i]:self.scope[i+1]], [1, -1]))\n\t\t\t\tfinal_repre = tf.reshape(tf.matmul(attention_score, sen_matrix),[self.output_size])\n\t\t\t\ttower_repre.append(final_repre)\n\t\t\tif dropout:\n\t\t\t\tstack_repre = tf.layers.dropout(tf.stack(tower_repre), rate = self.keep_prob, training = is_training)\n\t\t\telse:\n\t\t\t\tstack_repre = tf.stack(tower_repre)\n\t\treturn stack_repre\n\n\tdef katt(self, x, is_training = True, dropout = True):\n\t\twith tf.name_scope(\"knowledge-based-attention\"):\n\t\t\thead = tf.nn.embedding_lookup(self.word_embedding, self.head_index)\n\t\t\ttail = tf.nn.embedding_lookup(self.word_embedding, self.tail_index)\n\t\t\tkg_att = tail - head\n\t\t\tattention_logit = tf.reduce_sum(self.transfer(x) * kg_att, 1)\n\t\t\ttower_repre = []\n\t\t\tfor i in range(FLAGS.batch_size):\n\t\t\t\tsen_matrix = x[self.scope[i]:self.scope[i+1]]\n\t\t\t\tattention_score = tf.nn.softmax(tf.reshape(attention_logit[self.scope[i]:self.scope[i+1]], [1, -1]))\n\t\t\t\tfinal_repre = tf.reshape(tf.matmul(attention_score, sen_matrix),[self.output_size])\n\t\t\t\ttower_repre.append(final_repre)\n\t\t\tif dropout:\n\t\t\t\tstack_repre = tf.layers.dropout(tf.stack(tower_repre), rate = self.keep_prob, training = is_training)\n\t\t\telse:\n\t\t\t\tstack_repre = tf.stack(tower_repre)\n\t\treturn stack_repre\n\t\n\tdef satt(self, x):\n\t\twith tf.name_scope(\"semantic-attention\"):\n\t\t\tcurrent_attention = tf.nn.embedding_lookup(self.relation_matrix, self.pos_r)\n\t\t\tattention_logit = tf.reduce_sum(self.transfer(current_attention) * x, 1)\n\t\t\t\n\t\t\tstep = tf.constant(0)\n\t\t\ttower_repre = tf.zeros([1, self.word_size], dtype=tf.dtypes.float32, name=None)\n\n\t\t\tdef cond(dim, i, tower_repre):\n\t\t\t\treturn i < dim\n\n\t\t\tdef body(dim, i, tower_repre):\n\t\t\t\tsen_matrix = x[self.r_scope[i]:self.r_scope[i+1]]\n\t\t\t\tatt_score = attention_logit[self.r_scope[i]:self.r_scope[i+1]]\n\t\t\t\tatt_score = tf.reshape(att_score, [1, -1])\n\t\t\t\tattention_score = tf.nn.softmax(att_score)\n\t\t\t\tfinal_repre = tf.matmul(attention_score, sen_matrix)\n\t\t\t\t# final_repre = tf.reshape(final_repre, [-1])\n\t\t\t\ttower_repre = tf.concat([tower_repre, final_repre], 0)\n\t\t\t\treturn dim, i + 1, tower_repre\n\n\t\t\t_, _, tower_repre = tf.while_loop(cond, body, [self.r_length[0], step, tower_repre],\n\t\t\tshape_invariants = [step.get_shape(),step.get_shape(),tf.TensorShape([None, self.word_size])])\n\n\t\t\tstack_repre = tower_repre[1:,:]\n\t\treturn stack_repre\n\n\tdef att_test(self, x, is_training = False):\n\t\ttest_attention_logit = tf.matmul(x, tf.transpose(self.relation_matrix))\n\t\treturn test_attention_logit\n\n\tdef katt_test(self, x, is_training = False):\n\t\thead = tf.nn.embedding_lookup(self.word_embedding, self.head_index)\n\t\ttail = tf.nn.embedding_lookup(self.word_embedding, self.tail_index)\n\t\teach_att = tf.expand_dims(tail - head, -1)\n\t\tkg_att = tf.concat([each_att for i in range(self.num_classes)], 2)\n\t\tx = tf.reshape(self.transfer(x), [-1, 1, self.word_size])\n\t\ttest_attention_logit = tf.matmul(x, kg_att)\n\t\treturn tf.reshape(test_attention_logit, [-1, self.num_classes])\n\nclass CNN(NN):\n\n\tdef __init__(self, is_training, word_embeddings, simple_position = False):\n\t\tNN.__init__(self, is_training, word_embeddings, simple_position)\n\n\t\twith tf.name_scope(\"conv-maxpool\"):\n\t\t\tinput_sentence = tf.expand_dims(self.input_embedding, axis=1)\n\t\t\tx = tf.layers.conv2d(inputs = input_sentence, filters=FLAGS.hidden_size, kernel_size=[1,3], strides=[1, 1], padding='same', kernel_initializer=tf.contrib.layers.xavier_initializer_conv2d()) \n\t\t\tx = tf.reduce_max(x, axis=2)\n\t\t\tx = tf.nn.relu(tf.squeeze(x))\n\n\t\tif FLAGS.katt_flag != 0:\n\t\t\tstack_repre = self.katt(x, is_training)\n\t\telse:\n\t\t\tstack_repre = self.att(x, is_training)\n\n\t\twith tf.name_scope(\"loss\"):\n\t\t\tlogits = tf.matmul(stack_repre, tf.transpose(self.relation_matrix)) + self.bias\n\t\t\tself.loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=self.label,logits=logits))\n\t\t\t# self.loss = tf.losses.softmax_cross_entropy(onehot_labels = self.label, logits = logits, weights = self.weights)\n\t\t\tself.output = tf.nn.softmax(logits)\n\t\t\ttf.summary.scalar('loss',self.loss)\n\t\t\tself.predictions = tf.argmax(logits, 1, name=\"predictions\")\n\t\t\tself.correct_predictions = tf.equal(self.predictions, tf.argmax(self.label, 1))\n\t\t\tself.accuracy = tf.reduce_mean(tf.cast(self.correct_predictions, \"float\"), name=\"accuracy\")\n\n\t\tif not is_training:\n\t\t\twith tf.name_scope(\"test\"):\n\t\t\t\tif FLAGS.katt_flag != 0:\n\t\t\t\t\ttest_attention_logit = self.katt_test(x)\n\t\t\t\telse:\n\t\t\t\t\ttest_attention_logit = self.att_test(x)\n\t\t\t\ttest_tower_output = []\n\t\t\t\tfor i in range(FLAGS.test_batch_size):\n\t\t\t\t\ttest_attention_score = tf.nn.softmax(tf.transpose(test_attention_logit[self.scope[i]:self.scope[i+1],:]))\n\t\t\t\t\tfinal_repre = tf.matmul(test_attention_score, x[self.scope[i]:self.scope[i+1]])\n\t\t\t\t\tlogits = tf.matmul(final_repre, tf.transpose(self.relation_matrix)) + self.bias\n\t\t\t\t\toutput = tf.diag_part(tf.nn.softmax(logits))\n\t\t\t\t\ttest_tower_output.append(output)\n\t\t\t\ttest_stack_output = tf.reshape(tf.stack(test_tower_output),[FLAGS.test_batch_size, self.num_classes])\n\t\t\t\tself.test_output = test_stack_output\n\n\nclass PCNN(NN):\n\n\tdef __init__(self, is_training, word_embeddings, simple_position = False):\n\t\tNN.__init__(self, is_training, word_embeddings, simple_position)\n\t\twith tf.name_scope(\"conv-maxpool\"):\n\t\t\tmask_embedding = tf.constant([[0,0,0],[1,0,0],[0,1,0],[0,0,1]], dtype=np.float32)\n\t\t\tpcnn_mask = tf.nn.embedding_lookup(mask_embedding, self.mask)\n\t\t\tinput_sentence = tf.expand_dims(self.input_embedding, axis=1)\n\t\t\tx = tf.layers.conv2d(inputs = input_sentence, filters=FLAGS.hidden_size, kernel_size=[1,3], strides=[1, 1], padding='same', kernel_initializer=tf.contrib.layers.xavier_initializer_conv2d())\n\t\t\tx = tf.reshape(x, [-1, self.max_length, FLAGS.hidden_size, 1])\n\t\t\tx = tf.reduce_max(tf.reshape(pcnn_mask, [-1, 1, self.max_length, 3]) * tf.transpose(x,[0, 2, 1, 3]), axis = 2)\n\t\t\tx = tf.nn.relu(tf.reshape(x,[-1, self.output_size]))\n\n\t\tif FLAGS.katt_flag != 0:\n\t\t\tstack_repre = self.katt(x, is_training)\n\t\telse:\n\t\t\tstack_repre = self.att(x, is_training)\n\n\t\twith tf.name_scope(\"loss\"):\n\t\t\tlogits = tf.matmul(stack_repre, tf.transpose(self.relation_matrix)) + self.bias\n\t\t\tself.loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=self.label,logits=logits))\n\t\t\tself.loss = tf.losses.softmax_cross_entropy(onehot_labels = self.label, logits = logits, weights = self.weights)\n\t\t\tself.output = tf.nn.softmax(logits)\n\t\t\ttf.summary.scalar('loss',self.loss)\n\t\t\tself.predictions = tf.argmax(logits, 1, name=\"predictions\")\n\t\t\tself.correct_predictions = tf.equal(self.predictions, tf.argmax(self.label, 1))\n\t\t\tself.accuracy = tf.reduce_mean(tf.cast(self.correct_predictions, \"float\"), name=\"accuracy\")\n\n\t\tif not is_training:\n\t\t\twith tf.name_scope(\"test\"):\n\t\t\t\tif FLAGS.katt_flag != 0:\n\t\t\t\t\ttest_attention_logit = self.katt_test(x)\n\t\t\t\telse:\n\t\t\t\t\ttest_attention_logit = self.att_test(x)\n\t\t\t\ttest_tower_output = []\n\t\t\t\tfor i in range(FLAGS.test_batch_size):\n\t\t\t\t\ttest_attention_score = tf.nn.softmax(tf.transpose(test_attention_logit[self.scope[i]:self.scope[i+1],:]))\n\t\t\t\t\tfinal_repre = tf.matmul(test_attention_score, x[self.scope[i]:self.scope[i+1]])\n\t\t\t\t\tlogits = tf.matmul(final_repre, tf.transpose(relation_matrix)) + bias\n\t\t\t\t\toutput = tf.diag_part(tf.nn.softmax(logits))\n\t\t\t\t\ttest_tower_output.append(output)\n\t\t\t\ttest_stack_output = tf.reshape(tf.stack(test_tower_output),[FLAGS.test_batch_size, self.num_classes])\n\t\t\t\tself.test_output = test_stack_output\n\nclass RNN(NN):\n\n\tdef get_rnn_cell(self, dim, cell_name = 'lstm'):\n\t\tif isinstance(cell_name,list) or isinstance(cell_name, tuple):\n\t\t\tif len(cell_name) == 1:\n\t\t\t\treturn get_rnn_cell(dim, cell_name[0])\n\t\t\tcells = [get_rnn_cell(dim, c) for c in cell_name]\n\t\t\treturn tf.contrib.rnn.MultiRNNCell(cells, state_is_tuple=True)\n\t\tif cell_name.lower() == 'lstm':\n\t\t\treturn tf.contrib.rnn.BasicLSTMCell(dim, state_is_tuple=True)\n\t\telif cell_name.lower() == 'gru':\n\t\t\treturn tf.contrib.rnn.GRUCell(dim)\n\t\traise NotImplementedError\n\n\tdef __init__(self, is_training, word_embeddings, cell_name, simple_position = False):\n\t\tNN.__init__(self, is_training, word_embeddings, simple_position)\n\t\tinput_sentence = tf.layers.dropout(self.input_embedding, rate = self.keep_prob, training = is_training)\n\t\twith tf.name_scope('rnn'):\n\t\t\tcell = self.get_rnn_cell(FLAGS.hidden_size, cell_name)\n\t\t\toutputs, states = tf.nn.dynamic_rnn(cell, input_sentence,\n\t\t\t\t\t\t\t\t\t\t\tsequence_length = self.len,\n\t\t\t\t\t\t\t\t\t\t\tdtype = tf.float32,\n\t\t\t\t\t\t\t\t\t\t\tscope = 'dynamic-rnn')\n\t\t\tif isinstance(states, tuple):\n\t\t\t\tstates = states[0]\n\t\t\tx = states\n\n\t\tif FLAGS.katt_flag != 0:\n\t\t\tstack_repre = self.katt(x, is_training, False)\n\t\telse:\n\t\t\tstack_repre = self.att(x, is_training, False)\n\n\t\twith tf.name_scope(\"loss\"):\n\t\t\tlogits = tf.matmul(stack_repre, tf.transpose(self.relation_matrix)) + self.bias\n\t\t\tself.loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=self.label,logits=logits))\n\t\t\tself.loss = tf.losses.softmax_cross_entropy(onehot_labels = self.label, logits = logits, weights = self.weights)\n\t\t\tself.output = tf.nn.softmax(logits)\n\t\t\ttf.summary.scalar('loss',self.loss)\n\t\t\tself.predictions = tf.argmax(logits, 1, name=\"predictions\")\n\t\t\tself.correct_predictions = tf.equal(self.predictions, tf.argmax(self.label, 1))\n\t\t\tself.accuracy = tf.reduce_mean(tf.cast(self.correct_predictions, \"float\"), name=\"accuracy\")\n\t\n\t\tif not is_training:\n\t\t\twith tf.name_scope(\"test\"):\n\t\t\t\tif FLAGS.katt_flag != 0:\n\t\t\t\t\ttest_attention_logit = self.katt_test(x)\n\t\t\t\telse:\n\t\t\t\t\ttest_attention_logit = self.att_test(x)\n\t\t\t\ttest_tower_output = []\n\t\t\t\tfor i in range(FLAGS.test_batch_size):\n\t\t\t\t\ttest_attention_score = tf.nn.softmax(tf.transpose(test_attention_logit[self.scope[i]:self.scope[i+1],:]))\n\t\t\t\t\tfinal_repre = tf.matmul(test_attention_score, x[self.scope[i]:self.scope[i+1]])\n\t\t\t\t\tlogits = tf.matmul(final_repre, tf.transpose(relation_matrix)) + bias\n\t\t\t\t\toutput = tf.diag_part(tf.nn.softmax(logits))\n\t\t\t\t\ttest_tower_output.append(output)\n\t\t\t\ttest_stack_output = tf.reshape(tf.stack(test_tower_output),[FLAGS.test_batch_size, self.num_classes])\n\t\t\t\tself.test_output = test_stack_output\n\nclass BiRNN(NN):\n\n\tdef get_rnn_cell(self, dim, cell_name = 'lstm'):\n\t\tif isinstance(cell_name,list) or isinstance(cell_name, tuple):\n\t\t\tif len(cell_name) == 1:\n\t\t\t\treturn get_rnn_cell(dim, cell_name[0])\n\t\t\tcells = [get_rnn_cell(dim, c) for c in cell_name]\n\t\t\treturn tf.contrib.rnn.MultiRNNCell(cells, state_is_tuple=True)\n\t\tif cell_name.lower() == 'lstm':\n\t\t\treturn tf.contrib.rnn.BasicLSTMCell(dim, state_is_tuple=True)\n\t\telif cell_name.lower() == 'gru':\n\t\t\treturn tf.contrib.rnn.GRUCell(dim)\n\t\traise NotImplementedError\n\n\tdef __init__(self, is_training, word_embeddings, cell_name, simple_position = False):\n\t\tNN.__init__(self, is_training, word_embeddings, simple_position)\n\t\tinput_sentence = tf.layers.dropout(self.input_embedding, rate = self.keep_prob, training = is_training)\n\t\twith tf.name_scope('bi-rnn'):\n\t\t\tfw_cell = self.get_rnn_cell(FLAGS.hidden_size, cell_name)\n\t\t\tbw_cell = self.get_rnn_cell(FLAGS.hidden_size, cell_name)\n\t\t\toutputs, states = tf.nn.bidirectional_dynamic_rnn(\n\t\t\t\t\t\t\tfw_cell, bw_cell, input_sentence,\n\t\t\t\t\t\t\tsequence_length = self.len,\n\t\t\t\t\t\t\tdtype = tf.float32,\n\t\t\t\t\t\t\tscope = 'bi-dynamic-rnn')\n\t\t\tfw_states, bw_states = states\n\t\t\tif isinstance(fw_states, tuple):\n\t\t\t\tfw_states = fw_states[0]\n\t\t\t\tbw_states = bw_states[0]\n\t\t\tx = tf.concat(states, axis=1)\n\n\t\tif FLAGS.katt_flag != 0:\n\t\t\tstack_repre = self.katt(x, is_training, False)\n\t\telse:\n\t\t\tstack_repre = self.att(x, is_training, False)\n\n\t\twith tf.name_scope(\"loss\"):\n\t\t\tlogits = tf.matmul(stack_repre, tf.transpose(self.relation_matrix)) + self.bias\n\t\t\tself.loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=self.label,logits=logits))\n\t\t\tself.loss = tf.losses.softmax_cross_entropy(onehot_labels = self.label, logits = logits, weights = self.weights)\n\t\t\tself.output = tf.nn.softmax(logits)\n\t\t\ttf.summary.scalar('loss',self.loss)\n\t\t\tself.predictions = tf.argmax(logits, 1, name=\"predictions\")\n\t\t\tself.correct_predictions = tf.equal(self.predictions, tf.argmax(self.label, 1))\n\t\t\tself.accuracy = tf.reduce_mean(tf.cast(self.correct_predictions, \"float\"), name=\"accuracy\")\n\t\n\t\tif not is_training:\n\t\t\twith tf.name_scope(\"test\"):\n\t\t\t\tif FLAGS.katt_flag != 0:\n\t\t\t\t\ttest_attention_logit = self.katt_test(x)\n\t\t\t\telse:\n\t\t\t\t\ttest_attention_logit = self.att_test(x)\n\t\t\t\ttest_tower_output = []\n\t\t\t\tfor i in range(FLAGS.test_batch_size):\n\t\t\t\t\ttest_attention_score = tf.nn.softmax(tf.transpose(test_attention_logit[self.scope[i]:self.scope[i+1],:]))\n\t\t\t\t\tfinal_repre = tf.matmul(test_attention_score, x[self.scope[i]:self.scope[i+1]])\n\t\t\t\t\tlogits = tf.matmul(final_repre, tf.transpose(relation_matrix)) + bias\n\t\t\t\t\toutput = tf.diag_part(tf.nn.softmax(logits))\n\t\t\t\t\ttest_tower_output.append(output)\n\t\t\t\ttest_stack_output = tf.reshape(tf.stack(test_tower_output),[FLAGS.test_batch_size, self.num_classes])\n\t\t\t\tself.test_output = test_stack_output\n\n"
  },
  {
    "path": "jointE/SATT/pr_plot.py",
    "content": "import os\nimport numpy as np\nfrom sklearn.metrics import precision_recall_curve\nfrom sklearn.metrics import average_precision_score\nimport matplotlib\nmatplotlib.use('Agg')\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport sys\n\nfrom matplotlib.backends.backend_pdf import PdfPages\n\n\nff = plt.figure()\n\nMODEL = 'cnn'\n\ndef guolv(recall, precision):\n    a = [recall[0]]\n    b = [precision[0]]\n    print len(recall)\n    for i in range(1, len(recall)):\n        if a[len(a) - 1] == recall[i]:\n            if precision[i] > b[len(b)-1]:\n                b[len(b)-1] = precision[i]\n        else:\n            a.append(recall[i])\n            b.append(precision[i])\n            \n    recall = np.array(a)\n    precision = np.array(b)\n    xnew = np.linspace(recall.min(),recall.max(), 500) #300 represents number of points to make between T.min and T.max  \n    print recall\n    print precision\n    power_smooth = spline(recall,precision,xnew)  \n    return xnew, power_smooth\n\ndef PrecisionAtRecall(pAll, rAll, rMark):\n    length = len(rAll)\n    lo = 0\n    hi = length - 1\n    mark = length >> 1\n    error = rMark - rAll[mark]\n    while np.abs(error) > 0.005:\n        if error > 0:\n            hi = mark - 1\n        else:\n            lo = mark + 1\n        mark = (hi + lo) >> 1\n        error = rMark - rAll[mark]\n    return pAll[mark], rAll[mark], mark\n\n\ncolor = ['red', 'turquoise', 'darkorange', 'cornflowerblue', 'teal']\n\ntest_model = ['cnn'+'+sen_att']\ntest_epoch = ['9']\navg_pres = []\nfor temp, (model, step) in enumerate(zip(test_model, test_epoch)):\n    y_scores = np.load(model+'_all_prob' + '_' + step + '.npy')\n    y_true = np.load(model+'_all_label' + '_' + step + '.npy')\n    y_scores = np.reshape(y_scores,(-1))\n    y_true = np.reshape(y_true,(-1))\n    precision,recall,threshold = precision_recall_curve(y_true,y_scores)\n    p,r,i = PrecisionAtRecall(precision, recall, 0.1)\n    print('precison: {}, recall: {}'.format(p, r))\n    p,r,i = PrecisionAtRecall(precision, recall, 0.2)\n    print('precison: {}, recall: {}'.format(p, r))\n    p,r,i = PrecisionAtRecall(precision, recall, 0.3)\n    print('precison: {}, recall: {}'.format(p, r))\n    average_precision = average_precision_score(y_true, y_scores)\n    avg_pres.append(average_precision)\n    recall = recall[::-1]\n    precision = precision[::-1]\n    plt.plot(recall[:], precision[:], lw=2, color=color[1],label=\"CNN+ATT\")\n\nlines_cnn = open('cnn.txt').readlines()\nlines_cnn = [t.strip().split()[:2] for t in lines_cnn]\nprecision_cnn = np.array([t[0] for t in lines_cnn], dtype=np.float32)\nrecall_cnn = np.array([t[1] for t in lines_cnn], dtype=np.float32)\nplt.plot(recall_cnn, precision_cnn, lw=2, color=color[-1], label=\"CNN+ATT\") \n\n\nplt.xlabel('Recall')\nplt.ylabel('Precision')\nplt.ylim([0.3, 1.0])\nplt.xlim([0.0, 0.4])\nplt.title('Precision-Recall Area={0:0.4f}'.format(avg_pres[-1]))\nplt.legend(loc=\"upper right\")\nplt.grid(True)\nplt.savefig('sgd_'+MODEL)\nplt.plot(range(10), range(10), \"o\")\nplt.show()\nff.savefig(\"pr.pdf\", bbox_inches='tight')\n"
  },
  {
    "path": "jointE/SATT/train.py",
    "content": "import tensorflow as tf\nimport numpy as np\nimport time\nimport datetime\nimport os\nimport network\nimport json\nimport sys\nimport ctypes\nimport threading\n\nexport_path = \"../data_15k/\"\n\nword_vec = np.load(export_path + 'vec.npy')\nf = open(export_path + \"config\", 'r')\nconfig = json.loads(f.read())\nf.close()\n\nll = ctypes.cdll.LoadLibrary   \nlib = ll(\"./init.so\")\nlib.setInPath(\"../data_15k/\")\nlib.init()\n\ntriple_per_rel = {}\nf = open(export_path + 'triple2id.txt', \"r\")\ncontent = f.readlines()[1:]\nfor i in content:\n\th,t,r = i.strip().split(\"\\t\")\n\tif not (int)(r) in triple_per_rel:\n\t\ttriple_per_rel[(int)(r)] = []\n\ttriple_per_rel[(int)(r)].append([(int)(h),(int)(t)])\nfor rel in triple_per_rel:\n\ttriple_per_rel[rel] = np.array(triple_per_rel[rel])\nf.close()\nfor i in range(config['textual_rel_total']):\n\tprint (len(triple_per_rel[i]))\n\n\n\nFLAGS = tf.app.flags.FLAGS\n\n\ntf.app.flags.DEFINE_integer('nbatch_kg',100,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('margin',1.0,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('learning_rate_kg',0.001,'learning rate for kg')\ntf.app.flags.DEFINE_integer('ent_total',lib.getEntityTotal(),'total of entities')\ntf.app.flags.DEFINE_integer('rel_total',lib.getRelationTotal(),'total of relations')\ntf.app.flags.DEFINE_integer('tri_total',lib.getTripleTotal(),'total of triples')\ntf.app.flags.DEFINE_integer('katt_flag', 1, '1 for katt, 0 for att')\n\ntf.app.flags.DEFINE_string('model', 'cnn', 'neural models to encode sentences')\ntf.app.flags.DEFINE_integer('max_length',config['fixlen'],'maximum of number of words in one sentence')\ntf.app.flags.DEFINE_integer('pos_num', config['maxlen'] * 2 + 1,'number of position embedding vectors')\nprint (config['textual_rel_total'])\ntf.app.flags.DEFINE_integer('num_classes', config['textual_rel_total'],'maximum of relations')\n\ntf.app.flags.DEFINE_integer('hidden_size',230,'hidden feature size')\ntf.app.flags.DEFINE_integer('embedding_size',100,'input feature size')\ntf.app.flags.DEFINE_integer('pos_size',5,'position embedding size')\n\ntf.app.flags.DEFINE_integer('max_epoch',100,'maximum of training epochs')\ntf.app.flags.DEFINE_integer('batch_size',16,'entity numbers used each training time')\ntf.app.flags.DEFINE_float('learning_rate',0.01,'learning rate for nn')\ntf.app.flags.DEFINE_float('weight_decay',0.00001,'weight_decay')\ntf.app.flags.DEFINE_float('keep_prob',0.5,'dropout rate')\n\ntf.app.flags.DEFINE_string('model_dir','./model/','path to store model')\ntf.app.flags.DEFINE_string('summary_dir','./summary','path to store summary_dir')\ntf.app.flags.DEFINE_integer('store_kg_flag', 1, 'store kg embeddings')\n\n\ndef MakeSummary(name, value):\n\t\"\"\"Creates a tf.Summary proto with the given name and value.\"\"\"\n\tsummary = tf.Summary()\n\tval = summary.value.add()\n\tval.tag = str(name)\n\tval.simple_value = float(value)\n\treturn summary\n\ndef make_shape(array,last_dim):\n\toutput = []\n\tfor i in array:\n\t\tfor j in i:\n\t\t\toutput.append(j)\n\toutput = np.array(output)\n\tif np.shape(output)[-1]==last_dim:\n\t\treturn output\n\telse:\n\t\tprint 'Make Shape Error!'\n\ndef main(_):\n\n\tprint 'reading word embedding'\n\tword_vec = np.load(export_path + 'vec.npy')\n\tprint 'reading training data'\n\t\n\tinstance_triple = np.load(export_path + 'train_instance_triple.npy')\n\tinstance_scope = np.load(export_path + 'train_instance_scope.npy')\n\ttrain_len = np.load(export_path + 'train_len.npy')\n\ttrain_label = np.load(export_path + 'train_label.npy')\n\ttrain_word = np.load(export_path + 'train_word.npy')\n\ttrain_pos1 = np.load(export_path + 'train_pos1.npy')\n\ttrain_pos2 = np.load(export_path + 'train_pos2.npy')\n\ttrain_mask = np.load(export_path + 'train_mask.npy')\n\ttrain_head = np.load(export_path + 'train_head.npy')\n\ttrain_tail = np.load(export_path + 'train_tail.npy')\n\n\tprint 'reading finished'\n\tprint 'mentions \t\t: %d' % (len(instance_triple))\n\tprint 'sentences\t\t: %d' % (len(train_len))\n\tprint 'relations\t\t: %d' % (FLAGS.num_classes)\n\tprint 'word size\t\t: %d' % (len(word_vec[0]))\n\tprint 'position size \t: %d' % (FLAGS.pos_size)\n\tprint 'hidden size\t\t: %d' % (FLAGS.hidden_size)\n\treltot = {}\n\tfor index, i in enumerate(train_label):\n\t\tif not i in reltot:\n\t\t\treltot[i] = 1.0\n\t\telse:\n\t\t\treltot[i] += 1.0\n\tfor i in reltot:\n\t\treltot[i] = 1/(reltot[i] ** (0.05)) \n\tprint 'building network...'\n\tsess = tf.Session()\n\tif FLAGS.model.lower() == \"cnn\":\n\t\tmodel = network.CNN(is_training = True, word_embeddings = word_vec)\n\telif FLAGS.model.lower() == \"pcnn\":\n\t\tmodel = network.PCNN(is_training = True, word_embeddings = word_vec)\n\telif FLAGS.model.lower() == \"lstm\":\n\t\tmodel = network.RNN(is_training = True, word_embeddings = word_vec, cell_name = \"LSTM\", simple_position = True)\n\telif FLAGS.model.lower() == \"gru\":\n\t\tmodel = network.RNN(is_training = True, word_embeddings = word_vec, cell_name = \"GRU\", simple_position = True)\n\telif FLAGS.model.lower() == \"bi-lstm\" or FLAGS.model.lower() == \"bilstm\":\n\t\tmodel = network.BiRNN(is_training = True, word_embeddings = word_vec, cell_name = \"LSTM\", simple_position = True)\n\telif FLAGS.model.lower() == \"bi-gru\" or FLAGS.model.lower() == \"bigru\":\n\t\tmodel = network.BiRNN(is_training = True, word_embeddings = word_vec, cell_name = \"GRU\", simple_position = True)\n\t\n\tglobal_step = tf.Variable(0,name='global_step',trainable=False)\n\tglobal_step_kg = tf.Variable(0,name='global_step_kg',trainable=False)\n\tglobal_step_kg_satt = tf.Variable(0,name='global_step_kg_satt',trainable=False)\n\ttf.summary.scalar('learning_rate', FLAGS.learning_rate)\n\ttf.summary.scalar('learning_rate_kg', FLAGS.learning_rate_kg)\n\n\toptimizer = tf.train.GradientDescentOptimizer(FLAGS.learning_rate)\n\tgrads_and_vars = optimizer.compute_gradients(model.loss)\n\ttrain_op = optimizer.apply_gradients(grads_and_vars, global_step = global_step)\n\n\toptimizer_kg = tf.train.GradientDescentOptimizer(FLAGS.learning_rate_kg)\n\tgrads_and_vars_kg = optimizer_kg.compute_gradients(model.loss_kg)\n\ttrain_op_kg = optimizer_kg.apply_gradients(grads_and_vars_kg, global_step = global_step_kg)\n\n\toptimizer_kg_satt = tf.train.GradientDescentOptimizer(FLAGS.learning_rate_kg)\n\tgrads_and_vars_kg_satt = optimizer_kg_satt.compute_gradients(model.loss_kg_att)\n\ttrain_op_kg_satt = optimizer_kg_satt.apply_gradients(grads_and_vars_kg_satt, global_step = global_step_kg_satt)\n\n\tmerged_summary = tf.summary.merge_all()\n\tsummary_writer = tf.summary.FileWriter(FLAGS.summary_dir, sess.graph)\n\tsess.run(tf.global_variables_initializer())\n\tsaver = tf.train.Saver(max_to_keep=None)\n\n\tprint 'building finished'\n\n\tdef train_kg_att(coord):\n\n\t\tdef train_step_kg_att(h_batch, t_batch, r_batch, r_scope, r_label):\n\t\t\tfeed_dict = {\n\t\t\t\tmodel.pos_h: h_batch,\n\t\t\t\tmodel.pos_t: t_batch,\n\t\t\t\tmodel.pos_r: r_batch,\n\t\t\t\tmodel.r_scope: r_scope,\n\t\t\t\tmodel.r_label: r_label,\n\t\t\t\tmodel.r_length: np.array([len(r_label)]),\n\t\t\t}\n\t\t\t_, loss = sess.run([train_op_kg_satt, model.loss_kg_att], feed_dict)\n\t\t\treturn loss\n\t\t\n\t\tdef merge(head, tail, rel):\n\t\t\thash = {}\n\t\t\tfor (h,t,r) in zip(head,tail,rel):\n\t\t\t\tif r < FLAGS.num_classes:\n\t\t\t\t\tif not r in hash:\n\t\t\t\t\t\thash[r] = []\n\t\t\t\t\thash[r].append((h,t))\n\t\t\trel = []\n\t\t\thead = []\n\t\t\ttail = []\n\t\t\trel_label = []\n\t\t\trel_config = [0]\n\t\t\tfor r in hash:\n\t\t\t\tif len(hash[r]) != 0:\n\t\t\t\t\trel_config.append(rel_config[-1])\n\t\t\t\t\trel_label.append(r)\n\t\t\t\t\tfor h,t in hash[r]:\n\t\t\t\t\t\trel_config[-1]+=1\n\t\t\t\t\t\thead.append(h)\n\t\t\t\t\t\ttail.append(t)\n\t\t\t\t\t\trel.append(r)\n\t\t\treturn np.array(head), np.array(tail), np.array(rel), np.array(rel_config), np.array(rel_label)\n\n\t\tbatch_size = (FLAGS.tri_total / FLAGS.nbatch_kg)\n\t\tph = np.zeros(batch_size, dtype = np.int32)\n\t\tpt = np.zeros(batch_size, dtype = np.int32)\n\t\tpr = np.zeros(batch_size, dtype = np.int32)\n\t\tnh = np.zeros(batch_size, dtype = np.int32)\n\t\tnt = np.zeros(batch_size, dtype = np.int32)\n\t\tnr = np.zeros(batch_size, dtype = np.int32)\n\t\tph_addr = ph.__array_interface__['data'][0]\n\t\tpt_addr = pt.__array_interface__['data'][0]\n\t\tpr_addr = pr.__array_interface__['data'][0]\n\t\tnh_addr = nh.__array_interface__['data'][0]\n\t\tnt_addr = nt.__array_interface__['data'][0]\n\t\tnr_addr = nr.__array_interface__['data'][0]\n\t\tlib.getBatch.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int]\n\t\ttimes_kg = 0\n\t\twhile not coord.should_stop():\n\t\t\ttimes_kg += 1\n\t\t\t# if times_kg == 3000:\n\t\t\t# \tcoord.request_stop()\n\t\t\tres = 0.0\n\t\t\tfor batch in range(FLAGS.nbatch_kg):\n\t\t\t\tlib.getBatch(ph_addr, pt_addr, pr_addr, nh_addr, nt_addr, nr_addr, batch_size)\n\t\t\t\th, t, r, r_range, r_label = merge(ph, pt, pr)\n\t\t\t\tres += train_step_kg_att(h, t, r, r_range, r_label)\n\t\t\ttime_str = datetime.datetime.now().isoformat()\n\t\t\tprint \"batch %d time %s | loss : %f\" % (times_kg, time_str, res)\n\n\tdef train_kg(coord):\n\n\t\tdef train_step_kg(pos_h_batch, pos_t_batch, pos_r_batch, neg_h_batch, neg_t_batch, neg_r_batch):\n\t\t\tfeed_dict = {\n\t\t\t\tmodel.pos_h: pos_h_batch,\n\t\t\t\tmodel.pos_t: pos_t_batch,\n\t\t\t\tmodel.pos_r: pos_r_batch,\n\t\t\t\tmodel.neg_h: neg_h_batch,\n\t\t\t\tmodel.neg_t: neg_t_batch,\n\t\t\t\tmodel.neg_r: neg_r_batch\n\t\t\t}\n\t\t\t_, step, loss = sess.run(\n\t\t\t\t[train_op_kg, global_step_kg, model.loss_kg], feed_dict)\n\t\t\treturn loss\n\n\t\tbatch_size = (FLAGS.tri_total / FLAGS.nbatch_kg)\n\t\tph = np.zeros(batch_size, dtype = np.int32)\n\t\tpt = np.zeros(batch_size, dtype = np.int32)\n\t\tpr = np.zeros(batch_size, dtype = np.int32)\n\t\tnh = np.zeros(batch_size, dtype = np.int32)\n\t\tnt = np.zeros(batch_size, dtype = np.int32)\n\t\tnr = np.zeros(batch_size, dtype = np.int32)\n\t\tph_addr = ph.__array_interface__['data'][0]\n\t\tpt_addr = pt.__array_interface__['data'][0]\n\t\tpr_addr = pr.__array_interface__['data'][0]\n\t\tnh_addr = nh.__array_interface__['data'][0]\n\t\tnt_addr = nt.__array_interface__['data'][0]\n\t\tnr_addr = nr.__array_interface__['data'][0]\n\t\tlib.getBatch.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int]\n\t\ttimes_kg = 0\n\t\twhile not coord.should_stop():\n\t\t\ttimes_kg += 1\n\t\t\t# if times_kg == 3000:\n\t\t\t# \tcoord.request_stop()\n\t\t\tres = 0.0\n\t\t\tfor batch in range(FLAGS.nbatch_kg):\n\t\t\t\tlib.getBatch(ph_addr, pt_addr, pr_addr, nh_addr, nt_addr, nr_addr, batch_size)\n\t\t\t\tres += train_step_kg(ph, pt, pr, nh, nt, nr)\n\t\t\ttime_str = datetime.datetime.now().isoformat()\n\t\t\tprint \"batch %d time %s | loss : %f\" % (times_kg, time_str, res)\n\n\n\tdef train_nn(coord):\n\t\tdef train_step(head, tail, word, pos1, pos2, mask, leng, label_index, label, scope, weights):\n\t\t\tfeed_dict = {\n\t\t\t\tmodel.head_index: head,\n\t\t\t\tmodel.tail_index: tail,\n\t\t\t\tmodel.word: word,\n\t\t\t\tmodel.pos1: pos1,\n\t\t\t\tmodel.pos2: pos2,\n\t\t\t\tmodel.mask: mask,\n\t\t\t\tmodel.len : leng,\n\t\t\t\tmodel.label_index: label_index,\n\t\t\t\tmodel.label: label,\n\t\t\t\tmodel.scope: scope,\n\t\t\t\tmodel.keep_prob: FLAGS.keep_prob,\n\t\t\t\tmodel.weights: weights\n\t\t\t}\n\t\t\t_, step, loss, summary, output, correct_predictions = sess.run([train_op, global_step, model.loss, merged_summary, model.output, model.correct_predictions], feed_dict)\n\t\t\tsummary_writer.add_summary(summary, step)\n\t\t\treturn output, loss, correct_predictions\n\n\t\tstack_output = []\n\t\tstack_label = []\n\t\tstack_ce_loss = []\n\n\t\ttrain_order = range(len(instance_triple))\n\n\t\tsave_epoch = 2\n\t\teval_step = 300\n\n\t\tfor one_epoch in range(FLAGS.max_epoch):\n\n\t\t\tprint('epoch '+str(one_epoch+1)+' starts!')\n\t\t\tnp.random.shuffle(train_order)\n\t\t\ts1 = 0.0\n\t\t\ts2 = 0.0\n\t\t\ttot1 = 1.0\n\t\t\ttot2 = 1.0\n\t\t\tlosstot = 0.0\n\t\t\tfor i in range(int(len(train_order)/float(FLAGS.batch_size))):\n\t\t\t\tinput_scope = np.take(instance_scope, train_order[i * FLAGS.batch_size:(i+1)*FLAGS.batch_size], axis=0)\n\t\t\t\tindex = []\n\t\t\t\tscope = [0]\n\t\t\t\tlabel = []\n\t\t\t\tweights = []\n\t\t\t\tfor num in input_scope:\n\t\t\t\t\tindex = index + range(num[0], num[1] + 1)\n\t\t\t\t\tlabel.append(train_label[num[0]])\n\t\t\t\t\tscope.append(scope[len(scope)-1] + num[1] - num[0] + 1)\n\t\t\t\t\tweights.append(reltot[train_label[num[0]]])\n\t\t\t\tlabel_ = np.zeros((FLAGS.batch_size, FLAGS.num_classes))\n\t\t\t\tlabel_[np.arange(FLAGS.batch_size), label] = 1\n\t\t\t\toutput, loss, correct_predictions = train_step(train_head[index], train_tail[index], train_word[index,:], train_pos1[index,:], train_pos2[index,:], train_mask[index,:], train_len[index],train_label[index], label_, np.array(scope), weights)\n\t\t\t\tnum = 0\n\t\t\t\ts = 0\n\t\t\t\tlosstot += loss\n\t\t\t\tfor num in correct_predictions:\n\t\t\t\t\tif label[s] == 0:\n\t\t\t\t\t\ttot1 += 1.0\n\t\t\t\t\t\tif num:\n\t\t\t\t\t\t\ts1+= 1.0\n\t\t\t\t\telse:\n\t\t\t\t\t\ttot2 += 1.0\n\t\t\t\t\t\tif num:\n\t\t\t\t\t\t\ts2 += 1.0\n\t\t\t\t\ts = s + 1\n\n\t\t\t\ttime_str = datetime.datetime.now().isoformat()\n\t\t\t\t# print \"batch %d step %d time %s | loss : %f, NA accuracy: %f, not NA accuracy: %f\" % (one_epoch, i, time_str, loss, s1 / tot1, s2 / tot2)\n\t\t\t\tcurrent_step = tf.train.global_step(sess, global_step)\n\n\t\t\tif (one_epoch + 1) % save_epoch == 0:\n\t\t\t\tprint 'epoch '+str(one_epoch+1)+' has finished'\n\t\t\t\tprint 'saving model...'\n\t\t\t\tpath = saver.save(sess,FLAGS.model_dir+FLAGS.model+str(FLAGS.katt_flag), global_step=current_step)\n\t\tcoord.request_stop()\n\t\n\tcoord = tf.train.Coordinator()\n\tthreads = []\n\tthreads.append(threading.Thread(target=train_kg, args=(coord,)))\n\tthreads.append(threading.Thread(target=train_nn, args=(coord,)))\n\tthreads.append(threading.Thread(target=train_kg_att, args=(coord,)))\n\tfor t in threads: t.start()\n\tcoord.join(threads)\n\tif (FLAGS.store_kg_flag != 0):\n\t\t\t\t\tprint 'saving kg...'\n\t\t\t\t\tent_embedding, rel_embedding = sess.run([model.word_embedding, model.rel_embeddings])\n\t\t\t\t\tent_embedding = ent_embedding.tolist()\n\t\t\t\t\trel_embedding = rel_embedding.tolist()\n\t\t\t\t\tf = open(\"entity2vec\", \"w\")\n\t\t\t\t\tf.write(json.dumps(ent_embedding))\n\t\t\t\t\tf.close()\n\t\t\t\t\tf = open(\"relation2vec\", \"w\")\n\t\t\t\t\tf.write(json.dumps(rel_embedding))\n\t\t\t\t\tf.close()\n\n\nif __name__ == \"__main__\":\n\ttf.app.run() \n"
  },
  {
    "path": "original/baselines/test/init_cnn.cpp",
    "content": "#include <cstring>\n#include <cstdio>\n#include <string>\n#include <cstdlib>\n#include <cmath>\n\nusing namespace std;\n\nconst float pi = 3.141592653589793238462643383;\nstring path = \"../data/FB60K/\";\n\nfloat rand(float min, float max) {\n\treturn min + (max - min) * rand() / (RAND_MAX + 1.0);\n}\n\nfloat normal(float x, float miu,float sigma) {\n\treturn 1.0/sqrt(2*pi)/sigma*exp(-1*(x-miu)*(x-miu)/(2*sigma*sigma));\n}\n\nfloat randn(float miu,float sigma, float min ,float max) {\n\tfloat x, y, dScope;\n\tdo {\n\t\tx = rand(min,max);\n\t\ty = normal(x,miu,sigma);\n\t\tdScope=rand(0.0,normal(miu,miu,sigma));\n\t} while (dScope > y);\n\treturn x;\n}\n\nint word_size;\nint entity_size;\nint dimension;\nint PositionLimit = 30;\nint LenLimit = 100;\nint NA = -1;\nfloat *word_embeddings;\n\nstruct Tip {\n\tint h;\n\tint t;\n\tint r;\n\tint tot;\n\tint *lists;\n};\nTip *tipList;\nint tipTotal;\nint relationTotal = 0;\nint sentenceTotal;\nint instanceTot = 0;\nint *sentence, *posH, *posT, *bags_train;\n\nextern \"C\"\nvoid setNA(int con) {\n\tNA = con;\n}\n\nint getPosition(int position) {\n\tif (position < -PositionLimit) return 0;\n\tif (position > PositionLimit) return 2 * PositionLimit;\n\treturn position + PositionLimit;\n}\n\nextern \"C\"\nvoid readWordVec() {\n\n\tFILE *fin1 = fopen((path + \"entity2id.txt\").c_str(), \"r\");\n\tFILE *fin2 = fopen((path + \"vec.txt\").c_str(), \"r\");\n\tfscanf(fin2, \"%d%d\\n\", &word_size, &dimension);\n\tfscanf(fin1, \"%d\", &entity_size);\n\n\tchar buffer[100];\n\tprintf(\"hx\\n\");\n\tword_size += 2 + entity_size;\n\tword_embeddings = (float *)calloc(word_size * dimension, sizeof(float));\n\tint last = 0;\n\tfor (int i = entity_size * dimension; i > 0 ; i--)\n\t\tword_embeddings[last++] = randn(0, 1.0 / dimension, -6 / sqrt(dimension), 6 / sqrt(dimension));\n\tlast += 2 * dimension;\n\tprintf(\"hx\\n\");\n\tfor (int i = entity_size + 2; i < word_size; i++) {\n\t\tfscanf(fin2, \"%s\", buffer);\n\t\tfor (int i = 0; i < dimension; i++)\n\t\t\tfscanf(fin2, \"%f\", &word_embeddings[last++]);\n\t}\n\n\tfclose(fin2);\n\tfclose(fin1);\n}\n\nextern \"C\"\nvoid getWordVec(float *con) {\n\tfor (int i = word_size * dimension - 1; i >= 0; i--)\n\t\tcon[i] = word_embeddings[i];\n}\n\nint last = 0;\nextern \"C\"\nint batch_iter(int *x_batch, int *p_h_batch, int *p_t_batch, int *y_batch, int *r_batch, float *r_n_batch, int *h_batch, int *t_batch) {\n\tint n = last;\n\tlast++;\n\tif (n >= tipTotal) {\n\t\tn = 0;\n\t\tlast = 0;\n\t}\n\tint instance = tipList[n].tot;\n\tint last = 0;\n\tfor (int i = 0; i < instance; i++) {\n\t\tint j = tipList[n].lists[i];\n\t\tint last1 = j * LenLimit;\n\t\tfor (int k = 0; k < LenLimit; k++) {\n\t\t\tx_batch[last] = sentence[last1];\n\t\t\tp_h_batch[last] = posH[last1];\n\t\t\tp_t_batch[last] = posT[last1];\n\t\t\tlast++;\n\t\t\tlast1++;\n\t\t}\n\t}\n\tr_batch[0] = tipList[n].r;\n\tif (r_batch[0] == NA)\n\t\tr_n_batch[0] = 0;\n\telse\n\t\tr_n_batch[0] = 1;\n\tfor (int j = 0; j < relationTotal; j++)\n\t\ty_batch[j] = 0;\n\ty_batch[tipList[n].r] = 1;\n\th_batch[0] = tipList[n].h;\n\tt_batch[0] = tipList[n].t;\n\treturn instance;\n}\n\nextern \"C\"\nint getTipTotal() {\n\treturn tipTotal;\n}\n\nextern \"C\"\nint getLenLimit() {\n\treturn LenLimit;\n}\n\nextern \"C\"\nint getRelationTotal() {\n\treturn relationTotal;\n}\n\nextern \"C\"\nint getWordTotal() {\n\treturn word_size;\n}\n\nextern \"C\"\nint getPositionLimit() {\n\treturn PositionLimit;\n}\n\nextern \"C\"\nint getWordDimension() {\n\treturn dimension;\n}\n\nextern \"C\"\nint getInstanceTot() {\n\treturn instanceTot;\n}\n\nextern \"C\"\nvoid readFromFile() {\n\tFILE *f = fopen((path + \"test2id.txt\").c_str(), \"r\");\n\tfscanf(f, \"%d\\n\", &tipTotal);\n\tfscanf(f, \"%d\\n\", &sentenceTotal);\n\ttipList = (Tip *)calloc(tipTotal, sizeof(Tip));\n\tsentence = (int *)calloc(sentenceTotal * LenLimit, sizeof(int));\n\tposH = (int *)calloc(sentenceTotal * LenLimit, sizeof(int));\n\tposT = (int *)calloc(sentenceTotal * LenLimit, sizeof(int));\n\tbags_train = (int *)calloc(sentenceTotal, sizeof(int));\n\tint h, t, post, posh, r, len, tip;\n\tfor (int i = 0; i < sentenceTotal; i++) {\n\t\tfscanf(f, \"%d%d%d%d%d%d%d\",&h, &t, &posh, &post, &r, &tip, &len);\n\t\tint last = i * LenLimit;\n\t\tfor (int j = 0; j < len; j++) {\n\t\t\tfscanf(f, \"%d\", &sentence[last + j]);\n\t\t\tposH[last + j] = getPosition(j - posh);\n\t\t\tposT[last + j] = getPosition(j - post);\n\t\t}\n\t\tbags_train[i] = tip;\n\t\ttipList[tip].tot++;\n\t\ttipList[tip].h = h;\n\t\ttipList[tip].r = r;\n\t\ttipList[tip].t = t;\n\t\tif (r + 1 > relationTotal)\n\t\t\trelationTotal = r + 1;\n\t\tif (tipList[tip].tot > instanceTot)\n\t\t\tinstanceTot = tipList[tip].tot;\n\t}\n\tfclose(f);\n\tfor (int i = 0; i < tipTotal; i++) {\n\t\ttipList[i].lists = new int[tipList[i].tot];\n\t\ttipList[i].tot = 0;\n\t}\n\tfor (int i = 0; i < sentenceTotal; i++)\n\t\ttipList[bags_train[i]].lists[tipList[bags_train[i]].tot++] = i;\n\trelationTotal = 56;\n}\n\nint main() {\n\treadWordVec();\n\treadFromFile();\n\treturn 0;\n}\n"
  },
  {
    "path": "original/baselines/test/init_know.cpp",
    "content": "#include <cstring>\n#include <cstdio>\n#include <cstdlib>\n#include <cmath>\n#include <ctime>\n#include <string>\n#include <algorithm>\n\nusing namespace std;\n\nstring inPath = \"../data/FB60K/\";\n\nint *lefHead, *rigHead;\nint *lefTail, *rigTail;\n\nstruct Triple {\n\tint h, r, t;\n};\n\nstruct cmp_head {\n\tbool operator()(const Triple &a, const Triple &b) {\n\t\treturn (a.h < b.h)||(a.h == b.h && a.r < b.r)||(a.h == b.h && a.r == b.r && a.t < b.t);\n\t}\n};\n\nstruct cmp_tail {\n\tbool operator()(const Triple &a, const Triple &b) {\n\t\treturn (a.t < b.t)||(a.t == b.t && a.r < b.r)||(a.t == b.t && a.r == b.r && a.h < b.h);\n\t}\n};\n\nstruct cmp_list {\n\tint minimal(int a,int b) {\n\t\tif (a > b) return b;\n\t\treturn a;\n\t}\n\tbool operator()(const Triple &a, const Triple &b) {\n\t\treturn (minimal(a.h, a.t) > minimal(b.h, b.t));\n\t}\n};\n\nTriple *trainHead, *trainTail, *trainList;\nint relationTotal, entityTotal, tripleTotal;\nint *freqRel, *freqEnt;\nfloat *left_mean, *right_mean;\n\nextern \"C\"\nvoid init() {\n\n\tFILE *fin;\n\tint tmp;\n\n\tfin = fopen((inPath + \"relation2id.txt\").c_str(), \"r\");\n\ttmp = fscanf(fin, \"%d\", &relationTotal);\n\tfclose(fin);\n\n\tfreqRel = (int *)calloc(relationTotal, sizeof(int));\n\t\n\tfin = fopen((inPath + \"entity2id.txt\").c_str(), \"r\");\n\ttmp = fscanf(fin, \"%d\", &entityTotal);\n\tfclose(fin);\n\n\tfreqEnt = (int *)calloc(entityTotal, sizeof(int));\n\t\n\tfin = fopen((inPath + \"triple2id.txt\").c_str(), \"r\");\n\ttmp = fscanf(fin, \"%d\", &tripleTotal);\n\ttrainHead = (Triple *)calloc(tripleTotal, sizeof(Triple));\n\ttrainTail = (Triple *)calloc(tripleTotal, sizeof(Triple));\n\ttrainList = (Triple *)calloc(tripleTotal, sizeof(Triple));\n\ttripleTotal = 0;\n\twhile (fscanf(fin, \"%d\", &trainList[tripleTotal].h) == 1) {\n\t\ttmp = fscanf(fin, \"%d\", &trainList[tripleTotal].t);\n\t\ttmp = fscanf(fin, \"%d\", &trainList[tripleTotal].r);\n\t\tfreqEnt[trainList[tripleTotal].t]++;\n\t\tfreqEnt[trainList[tripleTotal].h]++;\n\t\tfreqRel[trainList[tripleTotal].r]++;\n\t\ttrainHead[tripleTotal].h = trainList[tripleTotal].h;\n\t\ttrainHead[tripleTotal].t = trainList[tripleTotal].t;\n\t\ttrainHead[tripleTotal].r = trainList[tripleTotal].r;\n\t\ttrainTail[tripleTotal].h = trainList[tripleTotal].h;\n\t\ttrainTail[tripleTotal].t = trainList[tripleTotal].t;\n\t\ttrainTail[tripleTotal].r = trainList[tripleTotal].r;\n\t\ttripleTotal++;\n\t}\n\tfclose(fin);\n\n\tsort(trainHead, trainHead + tripleTotal, cmp_head());\n\tsort(trainTail, trainTail + tripleTotal, cmp_tail());\n\n\tlefHead = (int *)calloc(entityTotal, sizeof(int));\n\trigHead = (int *)calloc(entityTotal, sizeof(int));\n\tlefTail = (int *)calloc(entityTotal, sizeof(int));\n\trigTail = (int *)calloc(entityTotal, sizeof(int));\n\tmemset(rigHead, -1, sizeof(rigHead));\n\tmemset(rigTail, -1, sizeof(rigTail));\n\tfor (int i = 1; i < tripleTotal; i++) {\n\t\tif (trainTail[i].t != trainTail[i - 1].t) {\n\t\t\trigTail[trainTail[i - 1].t] = i - 1;\n\t\t\tlefTail[trainTail[i].t] = i;\n\t\t}\n\t\tif (trainHead[i].h != trainHead[i - 1].h) {\n\t\t\trigHead[trainHead[i - 1].h] = i - 1;\n\t\t\tlefHead[trainHead[i].h] = i;\n\t\t}\n\t}\n\trigHead[trainHead[tripleTotal - 1].h] = tripleTotal - 1;\n\trigTail[trainTail[tripleTotal - 1].t] = tripleTotal - 1;\n\n\tleft_mean = (float *)calloc(relationTotal,sizeof(float));\n\tright_mean = (float *)calloc(relationTotal,sizeof(float));\n\tfor (int i = 0; i < entityTotal; i++) {\n\t\tfor (int j = lefHead[i] + 1; j < rigHead[i]; j++)\n\t\t\tif (trainHead[j].r != trainHead[j - 1].r)\n\t\t\t\tleft_mean[trainHead[j].r] += 1.0;\n\t\tif (lefHead[i] <= rigHead[i])\n\t\t\tleft_mean[trainHead[lefHead[i]].r] += 1.0;\n\t\tfor (int j = lefTail[i] + 1; j < rigTail[i]; j++)\n\t\t\tif (trainTail[j].r != trainTail[j - 1].r)\n\t\t\t\tright_mean[trainTail[j].r] += 1.0;\n\t\tif (lefTail[i] <= rigTail[i])\n\t\t\tright_mean[trainTail[lefTail[i]].r] += 1.0;\n\t}\n\tfor (int i = 0; i < relationTotal; i++) {\n\t\tleft_mean[i] = freqRel[i] / left_mean[i];\n\t\tright_mean[i] = freqRel[i] / right_mean[i];\n\t}\n}\n\nextern \"C\"\nint getEntityTotal() {\n\treturn entityTotal;\n}\n\nextern \"C\"\nint getRelationTotal() {\n\treturn relationTotal;\n}\n\nextern \"C\"\nint getTripleTotal() {\n\treturn tripleTotal;\n}\n\n// unsigned long long *next_random;\nunsigned long long next_random = 3;\n\nunsigned long long randd(int id) {\n\tnext_random = next_random * (unsigned long long)25214903917 + 11;\n\treturn next_random;\n}\n\nint rand_max(int id, int x) {\n\tint res = randd(id) % x;\n\twhile (res<0)\n\t\tres+=x;\n\treturn res;\n}\n\nint corrupt_head(int id, int h, int r) {\n\tint lef, rig, mid, ll, rr;\n\tlef = lefHead[h] - 1;\n\trig = rigHead[h];\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainHead[mid].r >= r) rig = mid; else\n\t\tlef = mid;\n\t}\n\tll = rig;\n\tlef = lefHead[h];\n\trig = rigHead[h] + 1;\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainHead[mid].r <= r) lef = mid; else\n\t\trig = mid;\n\t}\n\trr = lef;\n\tint tmp = rand_max(id, entityTotal - (rr - ll + 1));\n\tif (tmp < trainHead[ll].t) return tmp;\n\tif (tmp > trainHead[rr].t - rr + ll - 1) return tmp + rr - ll + 1;\n\tlef = ll, rig = rr + 1;\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainHead[mid].t - mid + ll - 1 < tmp)\n\t\t\tlef = mid;\n\t\telse \n\t\t\trig = mid;\n\t}\n\treturn tmp + lef - ll + 1;\n}\n\nint corrupt_tail(int id, int t, int r) {\n\tint lef, rig, mid, ll, rr;\n\tlef = lefTail[t] - 1;\n\trig = rigTail[t];\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainTail[mid].r >= r) rig = mid; else\n\t\tlef = mid;\n\t}\n\tll = rig;\n\tlef = lefTail[t];\n\trig = rigTail[t] + 1;\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainTail[mid].r <= r) lef = mid; else\n\t\trig = mid;\n\t}\n\trr = lef;\n\tint tmp = rand_max(id, entityTotal - (rr - ll + 1));\n\tif (tmp < trainTail[ll].h) return tmp;\n\tif (tmp > trainTail[rr].h - rr + ll - 1) return tmp + rr - ll + 1;\n\tlef = ll, rig = rr + 1;\n\twhile (lef + 1 < rig) {\n\t\tmid = (lef + rig) >> 1;\n\t\tif (trainTail[mid].h - mid + ll - 1 < tmp)\n\t\t\tlef = mid;\n\t\telse \n\t\t\trig = mid;\n\t}\n\treturn tmp + lef - ll + 1;\n}\n\nextern \"C\"\nvoid getBatch(int *ph, int *pt, int *pr, int *nh, int *nt, int *nr, int batchSize, int id = 0) {\n\tfor (int batch = 0; batch < batchSize; batch++) {\n\t\tint i = rand_max(id, tripleTotal), j;\n\t\tfloat prob = 1000 * right_mean[trainList[i].r] / (right_mean[trainList[i].r] + left_mean[trainList[i].r]);\n\t\tif (randd(id) % 1000 < prob) {\n\t\t\tj = corrupt_head(id, trainList[i].h, trainList[i].r);\n\t\t\tph[batch] = trainList[i].h;\n\t\t\tpt[batch] = trainList[i].t;\n\t\t\tpr[batch] = trainList[i].r;\n\t\t\tnh[batch] = trainList[i].h;\n\t\t\tnt[batch] = j;\n\t\t\tnr[batch] = trainList[i].r;\n\t\t} else {\n\t\t\tj = corrupt_tail(id, trainList[i].t, trainList[i].r);\n\t\t\tph[batch] = trainList[i].h;\n\t\t\tpt[batch] = trainList[i].t;\n\t\t\tpr[batch] = trainList[i].r;\n\t\t\tnh[batch] = j;\n\t\t\tnt[batch] = trainList[i].t;\n\t\t\tnr[batch] = trainList[i].r;\n\t\t}\n\t\tph[batchSize + batch] = trainList[i].h;\n\t\tpt[batchSize + batch] = trainList[i].t;\n\t\tpr[batchSize + batch] = trainList[i].r;\n\t\tnh[batchSize + batch] = trainList[i].h;\n\t\tnt[batchSize + batch] = trainList[i].t;\n\t\tnr[batchSize + batch] = rand_max(id, relationTotal);\n\t}\n}\n\nint main() {\n\tinit();\n\treturn 0;\n}"
  },
  {
    "path": "original/baselines/test/test_JointD+ATT.py",
    "content": "#coding:utf-8\nimport numpy as np\nimport tensorflow as tf\nimport os\nimport time\nimport datetime\nimport ctypes\nimport threading\nimport json\n\nll1 = ctypes.cdll.LoadLibrary   \nlib_cnn = ll1(\"./init_cnn.so\")\nll2 = ctypes.cdll.LoadLibrary   \nlib_kg = ll2(\"./init_know.so\")\n\t\nclass Config(object):\n\tdef __init__(self):\n\t\tself.instanceTot = lib_cnn.getInstanceTot()\n\t\tself.sequence_size = lib_cnn.getLenLimit()\n\t\tself.num_classes = lib_cnn.getRelationTotal()\n\t\tself.num_words = lib_cnn.getWordTotal()\n\t\tself.num_positions = 2 * lib_cnn.getPositionLimit() + 1\n\t\tself.word_size = lib_cnn.getWordDimension()\n\t\tself.position_size = 5\n\t\tself.embedding_size = self.word_size + self.position_size * 2\n\t\tself.filter_size = 3\n\t\tself.num_filters = 230\n\t\tself.relation_size = self.word_size\n\t\tself.dropout_keep_prob = 0.5\n\t\tself.l2_lambda = 0.0001\n\t\tlib_cnn.setNA(51)\n\t\tself.margin = 1.0\n\t\tself.nbatches = 100\n\t\tself.trainTimes = 15\n\t\tself.entityTotal = 0\n\t\tself.relationTotal = 0\n\nclass Model(object):\n\n\n\tdef calc(self, e, t, r):\n\t\treturn e + tf.reduce_sum(e * t, 1, keep_dims = True) * r\n\n\tdef __init__(self, config):\n\t\tsequence_size = config.sequence_size\n\t\tnum_classes = config.num_classes\n\t\tnum_words = config.num_words\n\t\tnum_positions = config.num_positions\n\n\t\tembedding_size = config.embedding_size\n\t\tword_size = config.word_size\n\t\tposition_size = config.position_size\n\t\trelation_size = config.relation_size\n\t\tfilter_size = config.filter_size\n\t\tnum_filters = config.num_filters\n\t\tdropout_keep_prob = config.dropout_keep_prob\n\n\t\tmargin = config.margin\n\t\tl2_lambda = config.l2_lambda\n\n\t\tself.input_x = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_x\")\n\t\tself.input_p_h = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_p_h\")\n\t\tself.input_p_t = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_p_t\")\n\t\tself.input_r = tf.placeholder(tf.int32, [1, 1], name = \"input_r\")\n\t\tself.input_r_n = tf.placeholder(tf.float32, [1, 1], name = \"input_r_n\")\n\t\tself.input_h = tf.placeholder(tf.int32, [1, 1], name = \"input_t\")\n\t\tself.input_t = tf.placeholder(tf.int32, [1, 1], name = \"input_t\")\n\t\tself.input_y = tf.placeholder(tf.float32, [1, num_classes], name = \"input_y\")\n\n\t\tself.pos_h = tf.placeholder(tf.int32, [None])\n\t\tself.pos_t = tf.placeholder(tf.int32, [None])\n\t\tself.pos_r = tf.placeholder(tf.int32, [None])\n\t\tself.neg_h = tf.placeholder(tf.int32, [None])\n\t\tself.neg_t = tf.placeholder(tf.int32, [None])\n\t\tself.neg_r = tf.placeholder(tf.int32, [None])\n\n\t\tl2_loss = tf.constant(0.0)\n\t\twith tf.name_scope(\"embedding-lookup\"):\n\t\t\tself.word_embeddings = tf.Variable(word_embeddings, name=\"word_embeddings\")\n\t\t\tself.relation_embeddings = tf.Variable(relation_embeddings, name=\"relation_embeddings\")\n\t\t\tself.position_embeddings = tf.Variable(position_embeddings, name=\"position_embeddings\")\n\t\t\tself.relation_attention = tf.Variable(relation_attention, name=\"relation_attention\")\n\t\t\tself.NAattention = tf.Variable(NAattention, name=\"NAattention\")\n\t\t\tself.attention = tf.Variable(attention, name=\"attention\")\n\t\t\tself.ent_transfer = tf.Variable(ent_transfer, name = \"ent_transfer\")\n\t\t\tself.rel_transfer = tf.Variable(rel_transfer, name = \"rel_transfer\")\n\n\t\t\tself.r = tf.nn.embedding_lookup(self.attention, self.input_r)\n\n\t\t\t#know\n\t\t\tpos_h_e = tf.nn.embedding_lookup(self.word_embeddings, self.pos_h)\n\t\t\tpos_t_e = tf.nn.embedding_lookup(self.word_embeddings, self.pos_t)\n\t\t\tpos_r_e = tf.nn.embedding_lookup(self.relation_embeddings, self.pos_r)\n\t\t\tpos_h_t = tf.nn.embedding_lookup(self.ent_transfer, self.pos_h)\n\t\t\tpos_t_t = tf.nn.embedding_lookup(self.ent_transfer, self.pos_t)\n\t\t\tpos_r_t = tf.nn.embedding_lookup(self.rel_transfer, self.pos_r)\n\t\t\tneg_h_e = tf.nn.embedding_lookup(self.word_embeddings, self.neg_h)\n\t\t\tneg_t_e = tf.nn.embedding_lookup(self.word_embeddings, self.neg_t)\n\t\t\tneg_r_e = tf.nn.embedding_lookup(self.relation_embeddings, self.neg_r)\n\t\t\tneg_h_t = tf.nn.embedding_lookup(self.ent_transfer, self.neg_h)\n\t\t\tneg_t_t = tf.nn.embedding_lookup(self.ent_transfer, self.neg_t)\n\t\t\tneg_r_t = tf.nn.embedding_lookup(self.rel_transfer, self.neg_r)\n\t\t\tpos_h_e = self.calc(pos_h_e, pos_h_t, pos_r_t)\n\t\t\tpos_t_e = self.calc(pos_t_e, pos_t_t, pos_r_t)\n\t\t\tneg_h_e = self.calc(neg_h_e, neg_h_t, neg_r_t)\n\t\t\tneg_t_e = self.calc(neg_t_e, neg_t_t, neg_r_t)\n\n\t\t\t#cnn\n\t\t\tself.x_initial = tf.nn.embedding_lookup(self.word_embeddings, self.input_x)\n\t\t\tself.x_p_h = tf.nn.embedding_lookup(self.position_embeddings, self.input_p_h)\n\t\t\tself.x_p_t = tf.nn.embedding_lookup(self.position_embeddings, self.input_p_t)\n\t\t\tself.x = tf.expand_dims(tf.concat(2, [self.x_initial, self.x_p_h, self.x_p_t]), -1)\n\t\t\tself.head = tf.nn.embedding_lookup(self.word_embeddings, self.input_h)\n\t\t\tself.tail = tf.nn.embedding_lookup(self.word_embeddings, self.input_t)\n\t\t\tself.head_t = tf.nn.embedding_lookup(self.ent_transfer, self.input_h)\n\t\t\tself.tail_t = tf.nn.embedding_lookup(self.ent_transfer, self.input_t)\n\t\t\tself.r_t = tf.nn.embedding_lookup(self.rel_transfer, self.input_r)\n\t\t\tself.head = self.calc(self.head, self.head_t, self.r_t)\n\t\t\tself.tail = self.calc(self.tail, self.tail_t, self.r_t)\n\t\t\tl2_loss += tf.nn.l2_loss(self.attention)\n\n\t\twith tf.name_scope(\"conv-maxpool\"):\n\t\t\tself.W = tf.Variable(W, name=\"W\")\n\t\t\tself.b = tf.Variable(B, name=\"b\")\n\t\t\tconv = tf.nn.conv2d(self.x, self.W, strides=[1, 1, 1, 1], padding=\"VALID\", name=\"conv\")\n\t\t\th = tf.nn.tanh(tf.nn.bias_add(conv, self.b), name=\"tanh\")\n\t\t\tself.y = tf.nn.max_pool(h, ksize=[1, sequence_size - filter_size + 1, 1, 1], strides=[1, 1, 1, 1], padding='VALID', name=\"pool\")\n\t\t\tl2_loss += tf.nn.l2_loss(self.W)\n\t\t\tl2_loss += tf.nn.l2_loss(self.b)\n\t\t\tself.y = tf.reshape(self.y, [-1, num_filters])\n\n\t\twith tf.name_scope('attention'):\n\t\t\tself.r = tf.reshape(self.r, [relation_size, -1])\n\t\t\tself.e = tf.matmul(tf.nn.tanh(tf.matmul(self.y, self.attention)), self.r)\n\t\t\talpha = tf.reshape(self.e, [1, -1])\n\t\t\tself.alpha_reshape = tf.nn.softmax(alpha)\n\t\t\tself.y_attention = tf.matmul(self.alpha_reshape, self.y)\n\n\t\twith tf.name_scope(\"dropout\"):\n\t\t\tself.transfer_w = tf.Variable(transfer_w, name=\"transfer_w\") \n\t\t\tself.h_drop = tf.nn.l2_normalize(self.y_attention, 1)\n\t\t\tself.scores = tf.matmul(self.h_drop, self.transfer_w) \n\t\t\tself.scoress = tf.nn.softmax(tf.reshape(self.scores, [1, -1]))\n\t\t\t\nbags_sum = 0.0\nbags_hit_NA = 0.0\nsum_NA = 0.0\nsum_fNA = 0.0\nbags_hit = 0.0\nloss_sum = 0.0\nss = []\nflag = True\n\nif __name__ == \"__main__\":\n\t\n\tlib_cnn.readWordVec()\n\tlib_cnn.readFromFile()\n\tlib_kg.init()\n\n\tnp.random.seed(0)\n\ttf.set_random_seed(0)\n\tconfig = Config()\n\n\tword_embeddings = np.zeros(config.num_words * config.word_size, dtype = np.float32)\n\tlib_cnn.getWordVec.argtypes = [ctypes.c_void_p]\n\tlib_cnn.getWordVec(word_embeddings.__array_interface__['data'][0])\n\tword_embeddings.resize((config.num_words,config.word_size))\n\t\n\tconfig.batch_size = lib_kg.getTripleTotal() / config.nbatches\n\tconfig.entityTotal = lib_kg.getEntityTotal()\n\tconfig.relationTotal = lib_kg.getRelationTotal()\n\n\tconfig.num_classes = 56\n\tlog = open(\"log14.txt\", \"r\")\n\tword_embeddings = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_words , config.word_size))\n\trelation_embeddings = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.relationTotal, config.word_size))\n\tposition_embeddings = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_positions, config.position_size))\n\trelation_attention = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_classes, config.relation_size))\n\tattention = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_filters, config.relation_size))\n\tW = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.filter_size, config.embedding_size, 1, config.num_filters))\n\tB = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_filters))\n\ttransfer_w = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape(config.num_filters, config.num_classes)\n\tNAattention = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.relation_size, 1))\n\tent_transfer = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_words , config.word_size))\n\trel_transfer = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.relationTotal, config.word_size))\n\tlog.close()\n\n\t\n\twith tf.Graph().as_default():\n\t\tconf = tf.ConfigProto()\n\t\tsess = tf.Session(config=conf)\n\t\twith sess.as_default():\n\t\t\tinitializer = tf.contrib.layers.xavier_initializer()\n\t\t\twith tf.variable_scope(\"model\", reuse=None, initializer = initializer):\n\t\t\t\tm = Model(config = config)\n\t\t\t\n\t\t\tglobal_step_cnn = tf.Variable(0, name=\"global_step_cnn\", trainable=False)\n\t\t\tsess.run(tf.initialize_all_variables())\n\t\t\t\n\t\t\tx_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tp_t_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tp_h_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tr_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\ty_batch = np.zeros((1, config.num_classes), dtype = np.int32)\n\t\t\tr_n_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\th_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\tt_batch = np.zeros((1, 1), dtype = np.int32)\n\n\t\t\tx_batch_addr = x_batch.__array_interface__['data'][0]\n\t\t\tp_t_batch_addr = p_t_batch.__array_interface__['data'][0]\n\t\t\tp_h_batch_addr = p_h_batch.__array_interface__['data'][0]\n\t\t\ty_batch_addr = y_batch.__array_interface__['data'][0]\n\t\t\tr_batch_addr = r_batch.__array_interface__['data'][0]\n\t\t\tr_n_batch_addr = r_n_batch.__array_interface__['data'][0]\n\t\t\th_batch_addr = h_batch.__array_interface__['data'][0]\n\t\t\tt_batch_addr = t_batch.__array_interface__['data'][0]\n\t\t\tlib_cnn.batch_iter.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]\n\t\t\ttipTotal = lib_cnn.getTipTotal()\n\n\t\t\tdef train_step_cnn(x_batch, p_h_batch, p_t_batch, y_batch, r_batch, r_n_batch, h_batch, t_batch,i):\n\t\t\t\t\tglobal ss, bags_sum, bags_hit, loss_sum, bags_hit_NA, bags_hit, sum_fNA, sum_NA, flag\n\t\t\t\t\tfeed_dict = {\n\t\t\t\t\t\tm.input_x: x_batch,\n\t\t\t\t\t\tm.input_p_h: p_h_batch,\n\t\t\t\t\t\tm.input_p_t: p_t_batch,\n\t\t\t\t\t\tm.input_r: r_batch,\n\t\t\t\t\t\tm.input_r_n: r_n_batch,\n\t\t\t\t\t\tm.input_y: y_batch,\n\t\t\t\t\t\tm.input_h: h_batch,\n\t\t\t\t\t\tm.input_t: t_batch\n\t\t\t\t\t}\n\t\t\t\t\tscores, step, accuracy, accuracy1,scoresgg,scores1gg = sess.run(\n\t\t\t\t\t\t[m.scoress, global_step_cnn, m.accuracy,m.accuracy1,m.y_attention,m.h_drop], feed_dict)\n\t\t\t\t\ttime_str = datetime.datetime.now().isoformat()\n\t\t\t\t\tfor i in range(config.num_classes):\n\t\t\t\t\t\tif (r_batch[0] == i):\n\t\t\t\t\t\t\tss.append((i,scores[0][i],1))\n\t\t\t\t\t\telse:\n\t\t\t\t\t\t\tss.append((i,scores[0][i],0))\n\t\t\t\t\tif bags_sum % 100 == 0:\n\t\t\t\t\t\tprint(\"{}: step {}\".format(time_str, step))\n\n\t\t\tfor i in range(tipTotal):\n\t\t\t\tlength = lib_cnn.batch_iter(x_batch_addr, p_h_batch_addr, p_t_batch_addr, y_batch_addr, r_batch_addr, r_n_batch_addr, h_batch_addr, t_batch_addr)\n\t\t\t\ttrain_step_cnn(x_batch[0:length,], p_h_batch[0:length,], p_t_batch[0:length,], y_batch, r_batch, r_n_batch, h_batch, t_batch,i)\n\t\t\t\tif not flag:\n\t\t\t\t\tbreak\n\nf = open(\"res.txt\", \"w\")\nfor i in ss:\n\tf.write(\"%d\\t%f\\t%d\\n\"%(i[0],i[1],i[2]))\nf.close()\n"
  },
  {
    "path": "original/baselines/test/test_JointD+ONE.py",
    "content": "#coding:utf-8\nimport numpy as np\nimport tensorflow as tf\nimport os\nimport time\nimport datetime\nimport ctypes\nimport threading\nimport json\n\nll1 = ctypes.cdll.LoadLibrary   \nlib_cnn = ll1(\"./init_cnn.so\")\nll2 = ctypes.cdll.LoadLibrary   \nlib_kg = ll2(\"./init_know.so\")\n\t\nclass Config(object):\n\tdef __init__(self):\n\t\tself.instanceTot = lib_cnn.getInstanceTot()\n\t\tself.sequence_size = lib_cnn.getLenLimit()\n\t\tself.num_classes = lib_cnn.getRelationTotal()\n\t\tself.num_words = lib_cnn.getWordTotal()\n\t\tself.num_positions = 2 * lib_cnn.getPositionLimit() + 1\n\t\tself.word_size = lib_cnn.getWordDimension()\n\t\tself.position_size = 5\n\t\tself.embedding_size = self.word_size + self.position_size * 2\n\t\tself.filter_size = 3\n\t\tself.num_filters = 230\n\t\tself.relation_size = self.word_size\n\t\tself.dropout_keep_prob = 0.5\n\t\tself.l2_lambda = 0.0001\n\t\tlib_cnn.setNA(51)\n\t\tself.margin = 1.0\n\t\tself.nbatches = 100\n\t\tself.trainTimes = 15\n\t\tself.entityTotal = 0\n\t\tself.relationTotal = 0\n\nclass Model(object):\n\n\n\tdef calc(self, e, t, r):\n\t\treturn e + tf.reduce_sum(e * t, 1, keep_dims = True) * r\n\n\tdef __init__(self, config):\n\t\tsequence_size = config.sequence_size\n\t\tnum_classes = config.num_classes\n\t\tnum_words = config.num_words\n\t\tnum_positions = config.num_positions\n\n\t\tembedding_size = config.embedding_size\n\t\tword_size = config.word_size\n\t\tposition_size = config.position_size\n\t\trelation_size = config.relation_size\n\t\tfilter_size = config.filter_size\n\t\tnum_filters = config.num_filters\n\t\tdropout_keep_prob = config.dropout_keep_prob\n\n\t\tmargin = config.margin\n\t\tl2_lambda = config.l2_lambda\n\n\t\tself.input_x = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_x\")\n\t\tself.input_p_h = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_p_h\")\n\t\tself.input_p_t = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_p_t\")\n\t\tself.input_r = tf.placeholder(tf.int32, [1, 1], name = \"input_r\")\n\t\tself.input_r_n = tf.placeholder(tf.float32, [1, 1], name = \"input_r_n\")\n\t\tself.input_h = tf.placeholder(tf.int32, [1, 1], name = \"input_t\")\n\t\tself.input_t = tf.placeholder(tf.int32, [1, 1], name = \"input_t\")\n\t\tself.input_y = tf.placeholder(tf.float32, [1, num_classes], name = \"input_y\")\n\n\t\tself.pos_h = tf.placeholder(tf.int32, [None])\n\t\tself.pos_t = tf.placeholder(tf.int32, [None])\n\t\tself.pos_r = tf.placeholder(tf.int32, [None])\n\t\tself.neg_h = tf.placeholder(tf.int32, [None])\n\t\tself.neg_t = tf.placeholder(tf.int32, [None])\n\t\tself.neg_r = tf.placeholder(tf.int32, [None])\n\n\t\tl2_loss = tf.constant(0.0)\n\t\twith tf.name_scope(\"embedding-lookup\"):\n\t\t\tself.word_embeddings = tf.Variable(word_embeddings, name=\"word_embeddings\")\n\t\t\tself.relation_embeddings = tf.Variable(relation_embeddings, name=\"relation_embeddings\")\n\t\t\tself.position_embeddings = tf.Variable(position_embeddings, name=\"position_embeddings\")\n\t\t\tself.relation_attention = tf.Variable(relation_attention, name=\"relation_attention\")\n\t\t\tself.NAattention = tf.Variable(NAattention, name=\"NAattention\")\n\t\t\tself.attention = tf.Variable(attention, name=\"attention\")\n\t\t\tself.ent_transfer = tf.Variable(ent_transfer, name = \"ent_transfer\")\n\t\t\tself.rel_transfer = tf.Variable(rel_transfer, name = \"rel_transfer\")\n\n\t\t\t#know\n\t\t\tpos_h_e = tf.nn.embedding_lookup(self.word_embeddings, self.pos_h)\n\t\t\tpos_t_e = tf.nn.embedding_lookup(self.word_embeddings, self.pos_t)\n\t\t\tpos_r_e = tf.nn.embedding_lookup(self.relation_embeddings, self.pos_r)\n\t\t\tpos_h_t = tf.nn.embedding_lookup(self.ent_transfer, self.pos_h)\n\t\t\tpos_t_t = tf.nn.embedding_lookup(self.ent_transfer, self.pos_t)\n\t\t\tpos_r_t = tf.nn.embedding_lookup(self.rel_transfer, self.pos_r)\n\t\t\tneg_h_e = tf.nn.embedding_lookup(self.word_embeddings, self.neg_h)\n\t\t\tneg_t_e = tf.nn.embedding_lookup(self.word_embeddings, self.neg_t)\n\t\t\tneg_r_e = tf.nn.embedding_lookup(self.relation_embeddings, self.neg_r)\n\t\t\tneg_h_t = tf.nn.embedding_lookup(self.ent_transfer, self.neg_h)\n\t\t\tneg_t_t = tf.nn.embedding_lookup(self.ent_transfer, self.neg_t)\n\t\t\tneg_r_t = tf.nn.embedding_lookup(self.rel_transfer, self.neg_r)\n\t\t\tpos_h_e = self.calc(pos_h_e, pos_h_t, pos_r_t)\n\t\t\tpos_t_e = self.calc(pos_t_e, pos_t_t, pos_r_t)\n\t\t\tneg_h_e = self.calc(neg_h_e, neg_h_t, neg_r_t)\n\t\t\tneg_t_e = self.calc(neg_t_e, neg_t_t, neg_r_t)\n\n\t\t\t#cnn\n\t\t\tself.x_initial = tf.nn.embedding_lookup(self.word_embeddings, self.input_x)\n\t\t\tself.x_p_h = tf.nn.embedding_lookup(self.position_embeddings, self.input_p_h)\n\t\t\tself.x_p_t = tf.nn.embedding_lookup(self.position_embeddings, self.input_p_t)\n\t\t\tself.x = tf.expand_dims(tf.concat(2, [self.x_initial, self.x_p_h, self.x_p_t]), -1)\n\t\t\tself.head = tf.nn.embedding_lookup(self.word_embeddings, self.input_h)\n\t\t\tself.tail = tf.nn.embedding_lookup(self.word_embeddings, self.input_t)\n\t\t\tself.head_t = tf.nn.embedding_lookup(self.ent_transfer, self.input_h)\n\t\t\tself.tail_t = tf.nn.embedding_lookup(self.ent_transfer, self.input_t)\n\t\t\tself.r_t = tf.nn.embedding_lookup(self.rel_transfer, self.input_r)\n\t\t\tself.head = self.calc(self.head, self.head_t, self.r_t)\n\t\t\tself.tail = self.calc(self.tail, self.tail_t, self.r_t)\n\t\t\tl2_loss += tf.nn.l2_loss(self.attention)\n\n\t\twith tf.name_scope(\"conv-maxpool\"):\n\t\t\tself.W = tf.Variable(W, name=\"W\")\n\t\t\tself.b = tf.Variable(B, name=\"b\")\n\t\t\tconv = tf.nn.conv2d(self.x, self.W, strides=[1, 1, 1, 1], padding=\"VALID\", name=\"conv\")\n\t\t\th = tf.nn.tanh(tf.nn.bias_add(conv, self.b), name=\"tanh\")\n\t\t\tself.y = tf.nn.max_pool(h, ksize=[1, sequence_size - filter_size + 1, 1, 1], strides=[1, 1, 1, 1], padding='VALID', name=\"pool\")\n\t\t\tl2_loss += tf.nn.l2_loss(self.W)\n\t\t\tl2_loss += tf.nn.l2_loss(self.b)\n\t\t\tself.y = tf.reshape(self.y, [-1, num_filters])\n\n\t\twith tf.name_scope('attention'):\n\t\t\tself.y_attention = tf.reduce_max(self.y, 0 , keep_dims = True)\n\n\t\twith tf.name_scope(\"dropout\"):\n\t\t\tself.transfer_w = tf.Variable(transfer_w, name=\"transfer_w\") \n\t\t\tself.h_drop = tf.nn.l2_normalize(self.y_attention, 1)\t\t\n\t\t\tself.scores = tf.matmul(self.h_drop, self.transfer_w) \n\t\t\tself.scoress = tf.nn.softmax(tf.reshape(self.scores, [1, -1]))\n\nbags_sum = 0.0\nbags_hit_NA = 0.0\nsum_NA = 0.0\nsum_fNA = 0.0\nbags_hit = 0.0\nloss_sum = 0.0\nss = []\nflag = True\n\nif __name__ == \"__main__\":\n\t\n\tlib_cnn.readWordVec()\n\tlib_cnn.readFromFile()\n\tlib_kg.init()\n\n\tnp.random.seed(0)\n\ttf.set_random_seed(0)\n\tconfig = Config()\n\n\tword_embeddings = np.zeros(config.num_words * config.word_size, dtype = np.float32)\n\tlib_cnn.getWordVec.argtypes = [ctypes.c_void_p]\n\tlib_cnn.getWordVec(word_embeddings.__array_interface__['data'][0])\n\tword_embeddings.resize((config.num_words,config.word_size))\n\t\n\tconfig.batch_size = lib_kg.getTripleTotal() / config.nbatches\n\tconfig.entityTotal = lib_kg.getEntityTotal()\n\tconfig.relationTotal = lib_kg.getRelationTotal()\n\n\tconfig.num_classes = 56\n\tlog = open(\"log14.txt\", \"r\")\n\tword_embeddings = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_words , config.word_size))\n\trelation_embeddings = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.relationTotal, config.word_size))\n\tposition_embeddings = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_positions, config.position_size))\n\trelation_attention = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_classes, config.relation_size))\n\tattention = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_filters, config.relation_size))\n\tW = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.filter_size, config.embedding_size, 1, config.num_filters))\n\tB = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_filters))\n\ttransfer_w = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape(config.num_filters, config.num_classes)\n\tNAattention = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.relation_size, 1))\n\tent_transfer = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_words , config.word_size))\n\trel_transfer = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.relationTotal, config.word_size))\n\tlog.close()\n\n\t\n\twith tf.Graph().as_default():\n\t\tconf = tf.ConfigProto()\n\t\tsess = tf.Session(config=conf)\n\t\twith sess.as_default():\n\t\t\tinitializer = tf.contrib.layers.xavier_initializer()\n\t\t\twith tf.variable_scope(\"model\", reuse=None, initializer = initializer):\n\t\t\t\tm = Model(config = config)\n\t\t\t\n\t\t\tglobal_step_cnn = tf.Variable(0, name=\"global_step_cnn\", trainable=False)\n\t\t\tsess.run(tf.initialize_all_variables())\n\t\t\t\n\t\t\tx_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tp_t_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tp_h_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tr_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\ty_batch = np.zeros((1, config.num_classes), dtype = np.int32)\n\t\t\tr_n_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\th_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\tt_batch = np.zeros((1, 1), dtype = np.int32)\n\n\t\t\tx_batch_addr = x_batch.__array_interface__['data'][0]\n\t\t\tp_t_batch_addr = p_t_batch.__array_interface__['data'][0]\n\t\t\tp_h_batch_addr = p_h_batch.__array_interface__['data'][0]\n\t\t\ty_batch_addr = y_batch.__array_interface__['data'][0]\n\t\t\tr_batch_addr = r_batch.__array_interface__['data'][0]\n\t\t\tr_n_batch_addr = r_n_batch.__array_interface__['data'][0]\n\t\t\th_batch_addr = h_batch.__array_interface__['data'][0]\n\t\t\tt_batch_addr = t_batch.__array_interface__['data'][0]\n\t\t\tlib_cnn.batch_iter.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]\n\t\t\ttipTotal = lib_cnn.getTipTotal()\n\n\t\t\tdef train_step_cnn(x_batch, p_h_batch, p_t_batch, y_batch, r_batch, r_n_batch, h_batch, t_batch,i):\n\t\t\t\t\tglobal ss, bags_sum, bags_hit, loss_sum, bags_hit_NA, bags_hit, sum_fNA, sum_NA, flag\n\t\t\t\t\tfeed_dict = {\n\t\t\t\t\t\tm.input_x: x_batch,\n\t\t\t\t\t\tm.input_p_h: p_h_batch,\n\t\t\t\t\t\tm.input_p_t: p_t_batch,\n\t\t\t\t\t\tm.input_r: r_batch,\n\t\t\t\t\t\tm.input_r_n: r_n_batch,\n\t\t\t\t\t\tm.input_y: y_batch,\n\t\t\t\t\t\tm.input_h: h_batch,\n\t\t\t\t\t\tm.input_t: t_batch\n\t\t\t\t\t}\n\t\t\t\t\tscores, step, accuracy, accuracy1,scoresgg,scores1gg = sess.run(\n\t\t\t\t\t\t[m.scoress, global_step_cnn, m.accuracy,m.accuracy1,m.y_attention,m.h_drop], feed_dict)\n\t\t\t\t\ttime_str = datetime.datetime.now().isoformat()\n\t\t\t\t\tfor i in range(config.num_classes):\n\t\t\t\t\t\tif (r_batch[0] == i):\n\t\t\t\t\t\t\tss.append((i,scores[0][i],1))\n\t\t\t\t\t\telse:\n\t\t\t\t\t\t\tss.append((i,scores[0][i],0))\n\t\t\t\t\tif bags_sum % 100 == 0:\n\t\t\t\t\t\tprint(\"{}: step {}\".format(time_str, step))\n\n\t\t\tfor i in range(tipTotal):\n\t\t\t\tlength = lib_cnn.batch_iter(x_batch_addr, p_h_batch_addr, p_t_batch_addr, y_batch_addr, r_batch_addr, r_n_batch_addr, h_batch_addr, t_batch_addr)\n\t\t\t\ttrain_step_cnn(x_batch[0:length,], p_h_batch[0:length,], p_t_batch[0:length,], y_batch, r_batch, r_n_batch, h_batch, t_batch,i)\n\t\t\t\tif not flag:\n\t\t\t\t\tbreak\n\nf = open(\"res.txt\", \"w\")\nfor i in ss:\n\tf.write(\"%d\\t%f\\t%d\\n\"%(i[0],i[1],i[2]))\nf.close()\n"
  },
  {
    "path": "original/baselines/test/test_JointE+ATT.py",
    "content": "#coding:utf-8\nimport numpy as np\nimport tensorflow as tf\nimport os\nimport time\nimport datetime\nimport ctypes\nimport threading\nimport json\n\nll1 = ctypes.cdll.LoadLibrary   \nlib_cnn = ll1(\"./init_cnn.so\")\nll2 = ctypes.cdll.LoadLibrary   \nlib_kg = ll2(\"./init_know.so\")\n\t\nclass Config(object):\n\tdef __init__(self):\n\t\tself.instanceTot = lib_cnn.getInstanceTot()\n\t\tself.sequence_size = lib_cnn.getLenLimit()\n\t\tself.num_classes = lib_cnn.getRelationTotal()\n\t\tself.num_words = lib_cnn.getWordTotal()\n\t\tself.num_positions = 2 * lib_cnn.getPositionLimit() + 1\n\t\tself.word_size = lib_cnn.getWordDimension()\n\t\tself.position_size = 5\n\t\tself.embedding_size = self.word_size + self.position_size * 2\n\t\tself.filter_size = 3\n\t\tself.num_filters = 230\n\t\tself.relation_size = self.word_size#230\n\t\tself.dropout_keep_prob = 0.5\n\t\tself.l2_lambda = 0.0001\n\t\tlib_cnn.setNA(51)\n\t\tself.margin = 1.0\n\t\tself.nbatches = 100\n\t\tself.trainTimes = 15\n\t\tself.entityTotal = 0\n\t\tself.relationTotal = 0\n\nclass Model(object):\n\n\tdef __init__(self, config):\n\t\tsequence_size = config.sequence_size\n\t\tnum_classes = config.num_classes\n\t\tnum_words = config.num_words\n\t\tnum_positions = config.num_positions\n\n\t\tembedding_size = config.embedding_size\n\t\tword_size = config.word_size\n\t\tposition_size = config.position_size\n\t\trelation_size = config.relation_size\n\t\tfilter_size = config.filter_size\n\t\tnum_filters = config.num_filters\n\t\tdropout_keep_prob = config.dropout_keep_prob\n\n\t\tmargin = config.margin\n\t\tl2_lambda = config.l2_lambda\n\n\t\tself.input_x = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_x\")\n\t\tself.input_p_h = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_p_h\")\n\t\tself.input_p_t = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_p_t\")\n\t\tself.input_r = tf.placeholder(tf.int32, [1, 1], name = \"input_r\")\n\t\tself.input_r_n = tf.placeholder(tf.float32, [1, 1], name = \"input_r_n\")\n\t\tself.input_h = tf.placeholder(tf.int32, [1, 1], name = \"input_t\")\n\t\tself.input_t = tf.placeholder(tf.int32, [1, 1], name = \"input_t\")\n\t\tself.input_y = tf.placeholder(tf.float32, [1, num_classes], name = \"input_y\")\n\n\t\tself.pos_h = tf.placeholder(tf.int32, [None])\n\t\tself.pos_t = tf.placeholder(tf.int32, [None])\n\t\tself.pos_r = tf.placeholder(tf.int32, [None])\n\t\tself.neg_h = tf.placeholder(tf.int32, [None])\n\t\tself.neg_t = tf.placeholder(tf.int32, [None])\n\t\tself.neg_r = tf.placeholder(tf.int32, [None])\n\n\t\tl2_loss = tf.constant(0.0)\n\t\twith tf.name_scope(\"embedding-lookup\"):\n\t\t\tself.word_embeddings = tf.Variable(word_embeddings, name=\"word_embeddings\")\n\t\t\tself.relation_embeddings = tf.Variable(relation_embeddings, name=\"relation_embeddings\")\n\t\t\tself.position_embeddings = tf.Variable(position_embeddings, name=\"position_embeddings\")\n\t\t\tself.relation_attention = tf.Variable(relation_attention, name=\"relation_attention\")\n\t\t\tself.NAattention = tf.Variable(NAattention, name=\"NAattention\")\n\t\t\tself.attention = tf.Variable(attention, name=\"attention\")\n\n\t\t\tself.r = tf.nn.embedding_lookup(self.attention, self.input_r)\n\n\t\t\t#know\n\t\t\tpos_h_e = tf.nn.embedding_lookup(self.word_embeddings, self.pos_h)\n\t\t\tpos_t_e = tf.nn.embedding_lookup(self.word_embeddings, self.pos_t)\n\t\t\tpos_r_e = tf.nn.embedding_lookup(self.relation_embeddings, self.pos_r)\n\t\t\tneg_h_e = tf.nn.embedding_lookup(self.word_embeddings, self.neg_h)\n\t\t\tneg_t_e = tf.nn.embedding_lookup(self.word_embeddings, self.neg_t)\n\t\t\tneg_r_e = tf.nn.embedding_lookup(self.relation_embeddings, self.neg_r)\n\n\t\t\t#cnn\n\t\t\tself.x_initial = tf.nn.embedding_lookup(self.word_embeddings, self.input_x)\n\t\t\tself.x_p_h = tf.nn.embedding_lookup(self.position_embeddings, self.input_p_h)\n\t\t\tself.x_p_t = tf.nn.embedding_lookup(self.position_embeddings, self.input_p_t)\n\t\t\tself.x = tf.expand_dims(tf.concat(2, [self.x_initial, self.x_p_h, self.x_p_t]), -1)\n\t\t\t# self.r = tf.nn.embedding_lookup(self.relation_attention, self.input_r)\n\t\t\tself.head = tf.nn.embedding_lookup(self.word_embeddings, self.input_h)\n\t\t\tself.tail = tf.nn.embedding_lookup(self.word_embeddings, self.input_t)\n\t\t\tl2_loss += tf.nn.l2_loss(self.attention)\n\n\t\twith tf.name_scope(\"conv-maxpool\"):\n\t\t\tself.W = tf.Variable(W, name=\"W\")\n\t\t\tself.b = tf.Variable(B, name=\"b\")\n\t\t\tconv = tf.nn.conv2d(self.x, self.W, strides=[1, 1, 1, 1], padding=\"VALID\", name=\"conv\")\n\t\t\th = tf.nn.tanh(tf.nn.bias_add(conv, self.b), name=\"tanh\")\n\t\t\tself.y = tf.nn.max_pool(h, ksize=[1, sequence_size - filter_size + 1, 1, 1], strides=[1, 1, 1, 1], padding='VALID', name=\"pool\")\n\t\t\tl2_loss += tf.nn.l2_loss(self.W)\n\t\t\tl2_loss += tf.nn.l2_loss(self.b)\n\t\t\tself.y = tf.reshape(self.y, [-1, num_filters])\n\n\t\twith tf.name_scope('attention'):\n\t\t\tself.r = tf.reshape(self.r, [relation_size, -1])\n\t\t\tself.e = tf.matmul(tf.nn.tanh(tf.matmul(self.y, self.attention)), self.r)\n\t\t\talpha = tf.reshape(self.e, [1, -1])\n\t\t\tself.alpha_reshape = tf.nn.softmax(alpha)\n\t\t\tself.y_attention = tf.matmul(self.alpha_reshape, self.y)\n\n\t\twith tf.name_scope(\"dropout\"):\n\t\t\tself.transfer_w = tf.Variable(transfer_w, name=\"transfer_w\") \n\t\t\tself.h_drop = tf.nn.l2_normalize(self.y_attention, 1)\t\t\n\t\t\tself.scores = tf.matmul(self.h_drop, self.transfer_w) \n\t\t\tself.scoress = tf.nn.softmax(tf.reshape(self.scores, [1, -1]))\n\t\t\nbags_sum = 0.0\nbags_hit_NA = 0.0\nsum_NA = 0.0\nsum_fNA = 0.0\nbags_hit = 0.0\nloss_sum = 0.0\nss = []\nflag = True\n\nif __name__ == \"__main__\":\n\t\n\tlib_cnn.readWordVec()\n\tlib_cnn.readFromFile()\n\tlib_kg.init()\n\n\tnp.random.seed(0)\n\ttf.set_random_seed(0)\n\tconfig = Config()\n\n\tword_embeddings = np.zeros(config.num_words * config.word_size, dtype = np.float32)\n\tlib_cnn.getWordVec.argtypes = [ctypes.c_void_p]\n\tlib_cnn.getWordVec(word_embeddings.__array_interface__['data'][0])\n\tword_embeddings.resize((config.num_words,config.word_size))\n\t\n\tconfig.batch_size = lib_kg.getTripleTotal() / config.nbatches\n\tconfig.entityTotal = lib_kg.getEntityTotal()\n\tconfig.relationTotal = lib_kg.getRelationTotal()\n\n\tconfig.num_classes = 56\n\tlog = open(\"log14.txt\", \"r\")\n\tword_embeddings = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_words , config.word_size))\n\trelation_embeddings = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.relationTotal, config.word_size))\n\tposition_embeddings = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_positions, config.position_size))\n\trelation_attention = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_classes, config.relation_size))\n\tattention = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_filters, config.relation_size))\n\tW = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.filter_size, config.embedding_size, 1, config.num_filters))\n\tB = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_filters))\n\ttransfer_w = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape(config.num_filters, config.num_classes)\n\tNAattention = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.relation_size, 1))\n\tlog.close()\n\n\t\n\twith tf.Graph().as_default():\n\t\tconf = tf.ConfigProto()\n\t\tsess = tf.Session(config=conf)\n\t\twith sess.as_default():\n\t\t\tinitializer = tf.contrib.layers.xavier_initializer()\n\t\t\twith tf.variable_scope(\"model\", reuse=None, initializer = initializer):\n\t\t\t\tm = Model(config = config)\n\t\t\t\n\t\t\tglobal_step_cnn = tf.Variable(0, name=\"global_step_cnn\", trainable=False)\n\t\t\tsess.run(tf.initialize_all_variables())\n\t\t\t\n\t\t\tx_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tp_t_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tp_h_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tr_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\ty_batch = np.zeros((1, config.num_classes), dtype = np.int32)\n\t\t\tr_n_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\th_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\tt_batch = np.zeros((1, 1), dtype = np.int32)\n\n\t\t\tx_batch_addr = x_batch.__array_interface__['data'][0]\n\t\t\tp_t_batch_addr = p_t_batch.__array_interface__['data'][0]\n\t\t\tp_h_batch_addr = p_h_batch.__array_interface__['data'][0]\n\t\t\ty_batch_addr = y_batch.__array_interface__['data'][0]\n\t\t\tr_batch_addr = r_batch.__array_interface__['data'][0]\n\t\t\tr_n_batch_addr = r_n_batch.__array_interface__['data'][0]\n\t\t\th_batch_addr = h_batch.__array_interface__['data'][0]\n\t\t\tt_batch_addr = t_batch.__array_interface__['data'][0]\n\t\t\tlib_cnn.batch_iter.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]\n\t\t\ttipTotal = lib_cnn.getTipTotal()\n\n\t\t\tdef train_step_cnn(x_batch, p_h_batch, p_t_batch, y_batch, r_batch, r_n_batch, h_batch, t_batch,i):\n\t\t\t\t\tglobal ss, bags_sum, bags_hit, loss_sum, bags_hit_NA, bags_hit, sum_fNA, sum_NA, flag\n\t\t\t\t\tfeed_dict = {\n\t\t\t\t\t\tm.input_x: x_batch,\n\t\t\t\t\t\tm.input_p_h: p_h_batch,\n\t\t\t\t\t\tm.input_p_t: p_t_batch,\n\t\t\t\t\t\tm.input_r: r_batch,\n\t\t\t\t\t\tm.input_r_n: r_n_batch,\n\t\t\t\t\t\tm.input_y: y_batch,\n\t\t\t\t\t\tm.input_h: h_batch,\n\t\t\t\t\t\tm.input_t: t_batch\n\t\t\t\t\t}\n\t\t\t\t\tscores, step, accuracy, accuracy1,scoresgg,scores1gg = sess.run(\n\t\t\t\t\t\t[m.scoress, global_step_cnn, m.accuracy,m.accuracy1,m.y_attention,m.h_drop], feed_dict)\n\t\t\t\t\ttime_str = datetime.datetime.now().isoformat()\n\t\t\t\t\tfor i in range(config.num_classes):\n\t\t\t\t\t\tif (r_batch[0] == i):\n\t\t\t\t\t\t\tss.append((i,scores[0][i],1))\n\t\t\t\t\t\telse:\n\t\t\t\t\t\t\tss.append((i,scores[0][i],0))\n\t\t\t\t\tbags_sum += 1\n\t\t\t\t\tif bags_sum % 100 == 0:\n\t\t\t\t\t\tprint(\"{}: step {}\".format(time_str, step))\n\n\t\t\tfor i in range(tipTotal):\n\t\t\t\tlength = lib_cnn.batch_iter(x_batch_addr, p_h_batch_addr, p_t_batch_addr, y_batch_addr, r_batch_addr, r_n_batch_addr, h_batch_addr, t_batch_addr)\n\t\t\t\ttrain_step_cnn(x_batch[0:length,], p_h_batch[0:length,], p_t_batch[0:length,], y_batch, r_batch, r_n_batch, h_batch, t_batch,i)\n\t\t\t\tif not flag:\n\t\t\t\t\tbreak\n\nf = open(\"res.txt\", \"w\")\nfor i in ss:\n\tf.write(\"%d\\t%f\\t%d\\n\"%(i[0],i[1],i[2]))\nf.close()\n"
  },
  {
    "path": "original/baselines/test/test_JointE+ONE.py",
    "content": "#coding:utf-8\nimport numpy as np\nimport tensorflow as tf\nimport os\nimport time\nimport datetime\nimport ctypes\nimport threading\nimport json\n\nll1 = ctypes.cdll.LoadLibrary   \nlib_cnn = ll1(\"./init_cnn.so\")\nll2 = ctypes.cdll.LoadLibrary   \nlib_kg = ll2(\"./init_know.so\")\n\t\nclass Config(object):\n\tdef __init__(self):\n\t\tself.instanceTot = lib_cnn.getInstanceTot()\n\t\tself.sequence_size = lib_cnn.getLenLimit()\n\t\tself.num_classes = lib_cnn.getRelationTotal()\n\t\tself.num_words = lib_cnn.getWordTotal()\n\t\tself.num_positions = 2 * lib_cnn.getPositionLimit() + 1\n\t\tself.word_size = lib_cnn.getWordDimension()\n\t\tself.position_size = 5\n\t\tself.embedding_size = self.word_size + self.position_size * 2\n\t\tself.filter_size = 3\n\t\tself.num_filters = 230\n\t\tself.relation_size = self.word_size\n\t\tself.dropout_keep_prob = 0.5\n\t\tself.l2_lambda = 0.0001\n\t\tlib_cnn.setNA(51)\n\t\tself.margin = 1.0\n\t\tself.nbatches = 100\n\t\tself.trainTimes = 15\n\t\tself.entityTotal = 0\n\t\tself.relationTotal = 0\n\nclass Model(object):\n\n\tdef __init__(self, config):\n\t\tsequence_size = config.sequence_size\n\t\tnum_classes = config.num_classes\n\t\tnum_words = config.num_words\n\t\tnum_positions = config.num_positions\n\n\t\tembedding_size = config.embedding_size\n\t\tword_size = config.word_size\n\t\tposition_size = config.position_size\n\t\trelation_size = config.relation_size\n\t\tfilter_size = config.filter_size\n\t\tnum_filters = config.num_filters\n\t\tdropout_keep_prob = config.dropout_keep_prob\n\n\t\tmargin = config.margin\n\t\tl2_lambda = config.l2_lambda\n\n\t\tself.input_x = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_x\")\n\t\tself.input_p_h = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_p_h\")\n\t\tself.input_p_t = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_p_t\")\n\t\tself.input_r = tf.placeholder(tf.int32, [1, 1], name = \"input_r\")\n\t\tself.input_r_n = tf.placeholder(tf.float32, [1, 1], name = \"input_r_n\")\n\t\tself.input_h = tf.placeholder(tf.int32, [1, 1], name = \"input_t\")\n\t\tself.input_t = tf.placeholder(tf.int32, [1, 1], name = \"input_t\")\n\t\tself.input_y = tf.placeholder(tf.float32, [1, num_classes], name = \"input_y\")\n\n\t\tself.pos_h = tf.placeholder(tf.int32, [None])\n\t\tself.pos_t = tf.placeholder(tf.int32, [None])\n\t\tself.pos_r = tf.placeholder(tf.int32, [None])\n\t\tself.neg_h = tf.placeholder(tf.int32, [None])\n\t\tself.neg_t = tf.placeholder(tf.int32, [None])\n\t\tself.neg_r = tf.placeholder(tf.int32, [None])\n\n\t\tl2_loss = tf.constant(0.0)\n\t\twith tf.name_scope(\"embedding-lookup\"):\n\t\t\tself.word_embeddings = tf.Variable(word_embeddings, name=\"word_embeddings\")\n\t\t\tself.relation_embeddings = tf.Variable(relation_embeddings, name=\"relation_embeddings\")\n\t\t\tself.position_embeddings = tf.Variable(position_embeddings, name=\"position_embeddings\")\n\t\t\tself.relation_attention = tf.Variable(relation_attention, name=\"relation_attention\")\n\t\t\tself.NAattention = tf.Variable(NAattention, name=\"NAattention\")\n\t\t\tself.attention = tf.Variable(attention, name=\"attention\")\n\n\t\t\t#know\n\t\t\tpos_h_e = tf.nn.embedding_lookup(self.word_embeddings, self.pos_h)\n\t\t\tpos_t_e = tf.nn.embedding_lookup(self.word_embeddings, self.pos_t)\n\t\t\tpos_r_e = tf.nn.embedding_lookup(self.relation_embeddings, self.pos_r)\n\t\t\tneg_h_e = tf.nn.embedding_lookup(self.word_embeddings, self.neg_h)\n\t\t\tneg_t_e = tf.nn.embedding_lookup(self.word_embeddings, self.neg_t)\n\t\t\tneg_r_e = tf.nn.embedding_lookup(self.relation_embeddings, self.neg_r)\n\n\t\t\t#cnn\n\t\t\tself.x_initial = tf.nn.embedding_lookup(self.word_embeddings, self.input_x)\n\t\t\tself.x_p_h = tf.nn.embedding_lookup(self.position_embeddings, self.input_p_h)\n\t\t\tself.x_p_t = tf.nn.embedding_lookup(self.position_embeddings, self.input_p_t)\n\t\t\tself.x = tf.expand_dims(tf.concat(2, [self.x_initial, self.x_p_h, self.x_p_t]), -1)\n\t\t\tself.head = tf.nn.embedding_lookup(self.word_embeddings, self.input_h)\n\t\t\tself.tail = tf.nn.embedding_lookup(self.word_embeddings, self.input_t)\n\t\t\tl2_loss += tf.nn.l2_loss(self.attention)\n\n\t\twith tf.name_scope(\"conv-maxpool\"):\n\t\t\tself.W = tf.Variable(W, name=\"W\")\n\t\t\tself.b = tf.Variable(B, name=\"b\")\n\t\t\tconv = tf.nn.conv2d(self.x, self.W, strides=[1, 1, 1, 1], padding=\"VALID\", name=\"conv\")\n\t\t\th = tf.nn.tanh(tf.nn.bias_add(conv, self.b), name=\"tanh\")\n\t\t\tself.y = tf.nn.max_pool(h, ksize=[1, sequence_size - filter_size + 1, 1, 1], strides=[1, 1, 1, 1], padding='VALID', name=\"pool\")\n\t\t\tl2_loss += tf.nn.l2_loss(self.W)\n\t\t\tl2_loss += tf.nn.l2_loss(self.b)\n\t\t\tself.y = tf.reshape(self.y, [-1, num_filters])\n\n\t\twith tf.name_scope('attention'):\n\t\t\tself.y_attention = tf.reduce_max(self.y, 0 , keep_dims = True)\n\t\t\t\n\n\t\twith tf.name_scope(\"dropout\"):\n\t\t\tprint self.y_attention.get_shape()\n\t\t\tself.transfer_w = tf.Variable(transfer_w, name=\"transfer_w\") \n\t\t\tself.h_drop = tf.nn.l2_normalize(self.y_attention, 1)\n\t\t\tself.scores = tf.matmul(self.h_drop, self.transfer_w) \n\t\t\tself.scoress = tf.nn.softmax(tf.reshape(self.scores, [1, -1]))\n\nbags_sum = 0.0\nbags_hit_NA = 0.0\nsum_NA = 0.0\nsum_fNA = 0.0\nbags_hit = 0.0\nloss_sum = 0.0\nss = []\nflag = True\n\nif __name__ == \"__main__\":\n\t\n\tlib_cnn.readWordVec()\n\tlib_cnn.readFromFile()\n\tlib_kg.init()\n\n\tnp.random.seed(0)\n\ttf.set_random_seed(0)\n\tconfig = Config()\n\n\tword_embeddings = np.zeros(config.num_words * config.word_size, dtype = np.float32)\n\tlib_cnn.getWordVec.argtypes = [ctypes.c_void_p]\n\tlib_cnn.getWordVec(word_embeddings.__array_interface__['data'][0])\n\tword_embeddings.resize((config.num_words,config.word_size))\n\t\n\tconfig.batch_size = lib_kg.getTripleTotal() / config.nbatches\n\tconfig.entityTotal = lib_kg.getEntityTotal()\n\tconfig.relationTotal = lib_kg.getRelationTotal()\n\n\tconfig.num_classes = 56\n\tlog = open(\"log14.txt\", \"r\")\n\tword_embeddings = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_words , config.word_size))\n\trelation_embeddings = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.relationTotal, config.word_size))\n\tposition_embeddings = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_positions, config.position_size))\n\trelation_attention = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_classes, config.relation_size))\n\tattention = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_filters, config.relation_size))\n\tW = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.filter_size, config.embedding_size, 1, config.num_filters))\n\tB = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.num_filters))\n\ttransfer_w = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape(config.num_filters, config.num_classes)\n\tNAattention = np.array(json.loads(log.readline().strip()), dtype = np.float32).reshape((config.relation_size, 1))\n\tlog.close()\n\n\t\n\twith tf.Graph().as_default():\n\t\tconf = tf.ConfigProto()\n\t\tsess = tf.Session(config=conf)\n\t\twith sess.as_default():\n\t\t\tinitializer = tf.contrib.layers.xavier_initializer()\n\t\t\twith tf.variable_scope(\"model\", reuse=None, initializer = initializer):\n\t\t\t\tm = Model(config = config)\n\t\t\t\n\t\t\tglobal_step_cnn = tf.Variable(0, name=\"global_step_cnn\", trainable=False)\n\t\t\tsess.run(tf.initialize_all_variables())\n\t\t\t\n\t\t\tx_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tp_t_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tp_h_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tr_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\ty_batch = np.zeros((1, config.num_classes), dtype = np.int32)\n\t\t\tr_n_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\th_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\tt_batch = np.zeros((1, 1), dtype = np.int32)\n\n\t\t\tx_batch_addr = x_batch.__array_interface__['data'][0]\n\t\t\tp_t_batch_addr = p_t_batch.__array_interface__['data'][0]\n\t\t\tp_h_batch_addr = p_h_batch.__array_interface__['data'][0]\n\t\t\ty_batch_addr = y_batch.__array_interface__['data'][0]\n\t\t\tr_batch_addr = r_batch.__array_interface__['data'][0]\n\t\t\tr_n_batch_addr = r_n_batch.__array_interface__['data'][0]\n\t\t\th_batch_addr = h_batch.__array_interface__['data'][0]\n\t\t\tt_batch_addr = t_batch.__array_interface__['data'][0]\n\t\t\tlib_cnn.batch_iter.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]\n\t\t\ttipTotal = lib_cnn.getTipTotal()\n\n\t\t\tdef train_step_cnn(x_batch, p_h_batch, p_t_batch, y_batch, r_batch, r_n_batch, h_batch, t_batch,i):\n\t\t\t\t\tglobal ss, bags_sum, bags_hit, loss_sum, bags_hit_NA, bags_hit, sum_fNA, sum_NA, flag\n\t\t\t\t\tfeed_dict = {\n\t\t\t\t\t\tm.input_x: x_batch,\n\t\t\t\t\t\tm.input_p_h: p_h_batch,\n\t\t\t\t\t\tm.input_p_t: p_t_batch,\n\t\t\t\t\t\tm.input_r: r_batch,\n\t\t\t\t\t\tm.input_r_n: r_n_batch,\n\t\t\t\t\t\tm.input_y: y_batch,\n\t\t\t\t\t\tm.input_h: h_batch,\n\t\t\t\t\t\tm.input_t: t_batch\n\t\t\t\t\t}\n\t\t\t\t\tscores, step, accuracy, accuracy1,scoresgg,scores1gg = sess.run(\n\t\t\t\t\t\t[m.scoress, global_step_cnn, m.accuracy,m.accuracy1,m.y_attention,m.h_drop], feed_dict)\n\t\t\t\t\ttime_str = datetime.datetime.now().isoformat()\n\t\t\t\t\tfor i in range(config.num_classes):\n\t\t\t\t\t\tif (r_batch[0] == i):\n\t\t\t\t\t\t\tss.append((i,scores[0][i],1))\n\t\t\t\t\t\telse:\n\t\t\t\t\t\t\tss.append((i,scores[0][i],0))\n\t\t\t\t\tbags_sum += 1\n\t\t\t\t\tif bags_sum % 100 == 0:\n\t\t\t\t\t\tprint(\"{}: step {}\".format(time_str, step))\n\n\t\t\tfor i in range(tipTotal):\n\t\t\t\tlength = lib_cnn.batch_iter(x_batch_addr, p_h_batch_addr, p_t_batch_addr, y_batch_addr, r_batch_addr, r_n_batch_addr, h_batch_addr, t_batch_addr)\n\t\t\t\ttrain_step_cnn(x_batch[0:length,], p_h_batch[0:length,], p_t_batch[0:length,], y_batch, r_batch, r_n_batch, h_batch, t_batch,i)\n\t\t\t\tif not flag:\n\t\t\t\t\tbreak\n\nf = open(\"res.txt\", \"w\")\nfor i in ss:\n\tf.write(\"%d\\t%f\\t%d\\n\"%(i[0],i[1],i[2]))\nf.close()\n"
  },
  {
    "path": "original/baselines/train/JointD+ATT.py",
    "content": "#coding:utf-8\nimport numpy as np\nimport tensorflow as tf\nimport os\nimport time\nimport datetime\nimport ctypes\nimport threading\nimport json\n\nll1 = ctypes.cdll.LoadLibrary   \nlib_cnn = ll1(\"./init_cnn.so\")\nll2 = ctypes.cdll.LoadLibrary   \nlib_kg = ll2(\"./init_know.so\")\n\nclass Config(object):\n\tdef __init__(self):\n\t\tself.instanceTot = lib_cnn.getInstanceTot()\n\t\tself.sequence_size = lib_cnn.getLenLimit()\n\t\tself.num_classes = lib_cnn.getRelationTotal()\n\t\tself.num_words = lib_cnn.getWordTotal()\n\t\tself.num_positions = 2 * lib_cnn.getPositionLimit() + 1\n\t\tself.word_size = lib_cnn.getWordDimension()\n\t\tself.position_size = 5\n\t\tself.embedding_size = self.word_size + self.position_size * 2\n\t\tself.filter_size = 3\n\t\tself.num_filters = 230\n\t\tself.relation_size = self.word_size\n\t\tself.dropout_keep_prob = 0.5\n\t\tself.l2_lambda = 0.0001\n\t\tself.NA = 51\n\t\tlib_cnn.setNA(self.NA)\n\t\tlib_cnn.setRate(3)\t\t\n\t\tself.margin = 1.0\n\t\tself.nbatches = 100\n\t\tself.trainTimes = 15\n\t\tself.entityTotal = 0\n\t\tself.relationTotal = 0\n\nclass Model(object):\n\n\tdef calc(self, e, t, r):\n\t\treturn e + tf.reduce_sum(e * t, 1, keep_dims = True) * r\n\n\n\tdef __init__(self, config):\n\t\tsequence_size = config.sequence_size\n\t\tnum_classes = config.num_classes\n\t\tnum_words = config.num_words\n\t\tnum_positions = config.num_positions\n\n\t\tembedding_size = config.embedding_size\n\t\tword_size = config.word_size\n\t\tposition_size = config.position_size\n\t\trelation_size = config.relation_size\n\t\tfilter_size = config.filter_size\n\t\tnum_filters = config.num_filters\n\t\tdropout_keep_prob = config.dropout_keep_prob\n\n\t\tmargin = config.margin\n\t\tl2_lambda = config.l2_lambda\n\n\t\tself.input_x = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_x\")\n\t\tself.input_p_h = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_p_h\")\n\t\tself.input_p_t = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_p_t\")\n\t\tself.input_r = tf.placeholder(tf.int32, [1, 1], name = \"input_r\")\n\t\tself.input_r_n = tf.placeholder(tf.float32, [1, 1], name = \"input_r_n\")\n\t\tself.input_h = tf.placeholder(tf.int32, [1, 1], name = \"input_h\")\n\t\tself.input_t = tf.placeholder(tf.int32, [1, 1], name = \"input_t\")\n\t\tself.input_y = tf.placeholder(tf.float32, [1, num_classes], name = \"input_y\")\n\n\t\tself.pos_h = tf.placeholder(tf.int32, [None])\n\t\tself.pos_t = tf.placeholder(tf.int32, [None])\n\t\tself.pos_r = tf.placeholder(tf.int32, [None])\n\t\tself.neg_h = tf.placeholder(tf.int32, [None])\n\t\tself.neg_t = tf.placeholder(tf.int32, [None])\n\t\tself.neg_r = tf.placeholder(tf.int32, [None])\n\n\t\tl2_loss = tf.constant(0.0)\n\t\twith tf.name_scope(\"embedding-lookup\"):\n\t\t\tself.word_embeddings = tf.Variable(word_embeddings, name=\"word_embeddings\")\n\t\t\tself.relation_embeddings = tf.get_variable(\"relation_embeddings\", [config.relationTotal, word_size])\n\t\t\tself.position_embeddings = tf.get_variable(\"position_embeddings\", [num_positions, position_size])\n\t\t\tself.relation_attention = tf.get_variable(\"relation_attention\", [num_classes, relation_size])\n\t\t\tself.NAattention = tf.get_variable(\"NAattention\", [relation_size, 1])\n\t\t\tself.attention = tf.get_variable(\"attention\", [num_filters, relation_size])\n\t\t\tself.ent_transfer = tf.get_variable(\"ent_transfer\", shape = [len(word_embeddings), word_size])\n\t\t\tself.rel_transfer = tf.get_variable(\"rel_transfer\", shape = [config.relationTotal, word_size])\n\t\t\t\n\t\t\tself.r = tf.nn.embedding_lookup(self.attention, self.input_r)\n\n\t\t\t#know\n\t\t\tpos_h_e = tf.nn.embedding_lookup(self.word_embeddings, self.pos_h)\n\t\t\tpos_t_e = tf.nn.embedding_lookup(self.word_embeddings, self.pos_t)\n\t\t\tpos_r_e = tf.nn.embedding_lookup(self.relation_embeddings, self.pos_r)\n\t\t\tpos_h_t = tf.nn.embedding_lookup(self.ent_transfer, self.pos_h)\n\t\t\tpos_t_t = tf.nn.embedding_lookup(self.ent_transfer, self.pos_t)\n\t\t\tpos_r_t = tf.nn.embedding_lookup(self.rel_transfer, self.pos_r)\n\t\t\tneg_h_e = tf.nn.embedding_lookup(self.word_embeddings, self.neg_h)\n\t\t\tneg_t_e = tf.nn.embedding_lookup(self.word_embeddings, self.neg_t)\n\t\t\tneg_r_e = tf.nn.embedding_lookup(self.relation_embeddings, self.neg_r)\n\t\t\tneg_h_t = tf.nn.embedding_lookup(self.ent_transfer, self.neg_h)\n\t\t\tneg_t_t = tf.nn.embedding_lookup(self.ent_transfer, self.neg_t)\n\t\t\tneg_r_t = tf.nn.embedding_lookup(self.rel_transfer, self.neg_r)\n\t\t\tpos_h_e = self.calc(pos_h_e, pos_h_t, pos_r_t)\n\t\t\tpos_t_e = self.calc(pos_t_e, pos_t_t, pos_r_t)\n\t\t\tneg_h_e = self.calc(neg_h_e, neg_h_t, neg_r_t)\n\t\t\tneg_t_e = self.calc(neg_t_e, neg_t_t, neg_r_t)\n\n\t\t\t#cnn\n\t\t\tself.x_initial = tf.nn.embedding_lookup(self.word_embeddings, self.input_x)\n\t\t\tself.x_p_h = tf.nn.embedding_lookup(self.position_embeddings, self.input_p_h)\n\t\t\tself.x_p_t = tf.nn.embedding_lookup(self.position_embeddings, self.input_p_t)\n\t\t\tself.x = tf.expand_dims(tf.concat(2, [self.x_initial, self.x_p_h, self.x_p_t]), -1)\n\t\t\tself.head = tf.nn.embedding_lookup(self.word_embeddings, self.input_h)\n\t\t\tself.tail = tf.nn.embedding_lookup(self.word_embeddings, self.input_t)\n\t\t\tself.head_t = tf.nn.embedding_lookup(self.ent_transfer, self.input_h)\n\t\t\tself.tail_t = tf.nn.embedding_lookup(self.ent_transfer, self.input_t)\n\t\t\tself.r_t = tf.nn.embedding_lookup(self.rel_transfer, self.input_r)\n\t\t\tself.head = self.calc(self.head, self.head_t, self.r_t)\n\t\t\tself.tail = self.calc(self.tail, self.tail_t, self.r_t)\n\t\t\tl2_loss += tf.nn.l2_loss(self.attention)\n\n\t\twith tf.name_scope(\"conv-maxpool\"):\n\t\t\tself.W = tf.get_variable(\"W\", [filter_size, embedding_size, 1, num_filters])\n\t\t\tself.b = tf.get_variable(\"b\", [num_filters])\n\t\t\tconv = tf.nn.conv2d(self.x, self.W, strides=[1, 1, 1, 1], padding=\"VALID\", name=\"conv\")\n\t\t\th = tf.nn.tanh(tf.nn.bias_add(conv, self.b), name=\"tanh\")\n\t\t\tself.y = tf.nn.max_pool(h, ksize=[1, sequence_size - filter_size + 1, 1, 1], strides=[1, 1, 1, 1], padding='VALID', name=\"pool\")\n\t\t\tl2_loss += tf.nn.l2_loss(self.W)\n\t\t\tl2_loss += tf.nn.l2_loss(self.b)\n\t\t\tself.y = tf.reshape(self.y, [-1, num_filters])\n\n\t\twith tf.name_scope('attention'):\n\t\t\tself.r = tf.reshape(self.r, [relation_size, -1])\n\t\t\tself.e = tf.matmul(tf.matmul(self.y, self.attention), self.r)\n\t\t\talpha = tf.reshape(self.e, [1, -1])\n\t\t\tself.alpha_reshape = tf.nn.softmax(alpha)\n\t\t\tself.y_attention = tf.matmul(self.alpha_reshape, self.y)\n\n\t\twith tf.name_scope(\"dropout\"):\n\t\t\tself.y_attention = tf.nn.l2_normalize(self.y_attention, 1)\n\t\t\tself.h_drop = tf.nn.dropout(self.y_attention, dropout_keep_prob)\t\t\n\t\t\tself.transfer_w = tf.get_variable(\"transfer_w\", [num_filters, num_classes])\n\t\t\tself.scores = tf.matmul(self.h_drop, self.transfer_w)\n\t\t\tl2_loss += tf.nn.l2_loss(self.transfer_w)\n\n\t\twith tf.name_scope(\"loss\"):\n\t\t\tcross_entropy = tf.nn.softmax_cross_entropy_with_logits(self.scores, self.input_y)\n\t\t\tself.loss_cnn = tf.reduce_mean(cross_entropy) + l2_lambda * l2_loss\n\n\t\t\tself.pos = tf.reduce_sum(abs(pos_h_e + pos_r_e - pos_t_e), 1, keep_dims = True)\n\t\t\tself.neg = tf.reduce_sum(abs(neg_h_e + neg_r_e - neg_t_e), 1, keep_dims = True)\n\t\t\tself.loss_kg = tf.reduce_sum(tf.maximum(self.pos - self.neg + margin, 0))\n\n\t\twith tf.name_scope(\"accuracy\"):\n\t\t\tself.predictions = tf.argmax(self.scores, 1, name=\"predictions\")\n\t\t\tcorrect_predictions = tf.equal(self.predictions, tf.argmax(self.input_y, 1))\n\t\t\tself.accuracy = tf.reduce_mean(tf.cast(correct_predictions, \"float\"), name=\"accuracy\")\n\t\t\t\n\nbags_sum = 0.0\nbags_hit_NA = 0.0\nsum_NA = 0.0\nsum_fNA = 0.0\nbags_hit = 0.0\nloss_sum = 0.0\n\nif __name__ == \"__main__\":\n\t\n\tlib_cnn.readWordVec()\n\tlib_cnn.readFromFile()\n\tlib_kg.init()\n\n\tnp.random.seed(0)\n\ttf.set_random_seed(0)\n\tconfig = Config()\n\n\tword_embeddings = np.zeros(config.num_words * config.word_size, dtype = np.float32)\n\tlib_cnn.getWordVec.argtypes = [ctypes.c_void_p]\n\tlib_cnn.getWordVec(word_embeddings.__array_interface__['data'][0])\n\tword_embeddings.resize((config.num_words,config.word_size))\n\n\tconfig.batch_size = lib_kg.getTripleTotal() / config.nbatches\n\tconfig.entityTotal = lib_kg.getEntityTotal()\n\tconfig.relationTotal = lib_kg.getRelationTotal()\n\t\n\twith tf.Graph().as_default():\n\t\tconf = tf.ConfigProto()\n\t\tsess = tf.Session(config=conf)\n\t\twith sess.as_default():\n\t\t\tinitializer = tf.contrib.layers.xavier_initializer()\n\t\t\twith tf.variable_scope(\"model\", reuse=None, initializer = initializer):\n\t\t\t\tm = Model(config = config)\n\t\t\t\n\t\t\tglobal_step_cnn = tf.Variable(0, name=\"global_step_cnn\", trainable=False)\n\n\t\t\toptimizer_cnn = tf.train.GradientDescentOptimizer(0.01)\n\t\t\tgrads_and_vars_cnn = optimizer_cnn.compute_gradients(m.loss_cnn)\n\t\t\ttrain_op_cnn = optimizer_cnn.apply_gradients(grads_and_vars_cnn, global_step = global_step_cnn)\n\n\t\t\tglobal_step_kg = tf.Variable(0, name=\"global_step_kg\", trainable=False)\n\t\t\toptimizer_kg = tf.train.GradientDescentOptimizer(0.001)\n\t\t\tgrads_and_vars_kg = optimizer_kg.compute_gradients(m.loss_kg)\n\t\t\ttrain_op_kg = optimizer_kg.apply_gradients(grads_and_vars_kg, global_step=global_step_kg)\n\n\t\t\tsess.run(tf.initialize_all_variables())\n\n\t\t\tdef outEmbedding(str1):\n\t\t\t\tword_embeddings, relation_embeddings, position_embeddings, relation_attention, attention, W, B, transfer_w, transfer_b, softmax_w, softmax_b = sess.run([m.word_embeddings, m.relation_embeddings, m.position_embeddings, m.relation_attention, m.attention, m.W, m.b, m.transfer_w, m.transfer_b, m.softmax_w, m.softmax_b])\n\t\t\t\tlog = open(\"log\"+str1+\".txt\", \"w\")\n\t\t\t\tlog.write(json.dumps(word_embeddings.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(relation_embeddings.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(position_embeddings.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(relation_attention.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(attention.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(W.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(B.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(transfer_w.tolist())+\"\\n\")\n\t\t\t\tNAattention = sess.run(m.NAattention)\n\t\t\t\tlog.write(json.dumps(NAattention.tolist()) + \"\\n\")\n\t\t\t\tent_transfer = sess.run(m.ent_transfer)\n\t\t\t\tlog.write(json.dumps(ent_transfer.tolist()) + \"\\n\")\n\t\t\t\trel_transfer = sess.run(m.rel_transfer)\n\t\t\t\tlog.write(json.dumps(rel_transfer.tolist()) + \"\\n\")\n\t\t\t\tlog.close()\n\n\t\t\tx_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tp_t_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tp_h_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tr_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\ty_batch = np.zeros((1, config.num_classes), dtype = np.int32)\n\t\t\tr_n_batch = np.zeros((1, 1), dtype = np.float32)\n\t\t\th_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\tt_batch = np.zeros((1, 1), dtype = np.int32)\n\n\t\t\tx_batch_addr = x_batch.__array_interface__['data'][0]\n\t\t\tp_t_batch_addr = p_t_batch.__array_interface__['data'][0]\n\t\t\tp_h_batch_addr = p_h_batch.__array_interface__['data'][0]\n\t\t\ty_batch_addr = y_batch.__array_interface__['data'][0]\n\t\t\tr_batch_addr = r_batch.__array_interface__['data'][0]\n\t\t\tr_n_batch_addr = r_n_batch.__array_interface__['data'][0]\n\t\t\th_batch_addr = h_batch.__array_interface__['data'][0]\n\t\t\tt_batch_addr = t_batch.__array_interface__['data'][0]\n\t\t\tlib_cnn.batch_iter.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]\n\t\t\ttipTotal = lib_cnn.getTipTotal()\n\t\t\tloop = 0\n\n\t\t\tdef train_cnn(coord):\n\t\t\t\tdef train_step_cnn(x_batch, p_h_batch, p_t_batch, y_batch, r_batch, r_n_batch, h_batch, t_batch):\n\t\t\t\t\tglobal bags_sum, bags_hit, loss_sum, bags_hit_NA, bags_hit, sum_fNA, sum_NA\n\t\t\t\t\tfeed_dict = {\n\t\t\t\t\t\tm.input_x: x_batch,\n\t\t\t\t\t\tm.input_p_h: p_h_batch,\n\t\t\t\t\t\tm.input_p_t: p_t_batch,\n\t\t\t\t\t\tm.input_r: r_batch,\n\t\t\t\t\t\tm.input_r_n: r_n_batch,\n\t\t\t\t\t\tm.input_y: y_batch,\n\t\t\t\t\t\tm.input_h: h_batch,\n\t\t\t\t\t\tm.input_t: t_batch\n\t\t\t\t\t}\n\t\t\t\t\t_, step, loss, accuracy = sess.run(\n\t\t\t\t\t \t[train_op_cnn, global_step_cnn, m.loss_cnn, m.accuracy], feed_dict)\n\t\t\t\t \ttime_str = datetime.datetime.now().isoformat()\n\t\t\t\t \tloss_sum += loss\n\t\t\t\t \tbags_sum += 1\n\t\t\t\t \tif (r_batch[0]!=config.NA):\n\t\t\t\t \t\tsum_fNA += 1\n\t\t\t\t \t\tif accuracy > 0.5:\n\t\t\t\t \t\t\tbags_hit += 1.0\n\t\t\t\t \telse:\n\t\t\t\t \t\tsum_NA += 1\n\t\t\t\t \t\tif accuracy > 0.5:\n\t\t\t\t \t\t\tbags_hit_NA += 1.0\n\t\t\t\t \tif bags_sum % 1000 == 0:\n\t\t\t\t \t\tif (sum_NA == 0):\n\t\t\t\t \t\t\tsum_NA+=1\n\t\t\t\t \t\tif (sum_fNA == 0):\n\t\t\t\t \t\t\tsum_fNA+=1\n\t\t\t\t \t\tprint(\"{}: step {}, loss {:g}, acc {:g} acc {:g} {} {}\".format(time_str, step, loss_sum/bags_sum, bags_hit_NA/sum_NA, bags_hit/sum_fNA, sum_NA, sum_fNA))\n\n\n\t\t\t\tglobal loop\n\t\t\t\twhile not coord.should_stop():\n\t\t\t\t\tprint 'Looping ', loop\n\t\t\t\t\toutEmbedding(str(loop))\n\t\t\t\t\tfor i in range(tipTotal):\n\t\t\t\t\t\tlength = lib_cnn.batch_iter(x_batch_addr, p_h_batch_addr, p_t_batch_addr, y_batch_addr, r_batch_addr, r_n_batch_addr, h_batch_addr, t_batch_addr)\n\t\t\t\t\t\ttrain_step_cnn(x_batch[0:length,], p_h_batch[0:length,], p_t_batch[0:length,], y_batch, r_batch, r_n_batch, h_batch, t_batch)\n\t\t\t\t\tglobal bags_sum, bags_hit, loss_sum, bags_hit_NA, bags_hit, sum_fNA, sum_NA\n\t\t\t\t\tbags_sum = 0\n\t\t\t\t\tbags_hit = 0\n\t\t\t\t\tbags_hit_NA = 0\n\t\t\t\t\tloss_sum = 0\n\t\t\t\t\tsum_fNA = 0\n\t\t\t\t\tsum_NA = 0\t\n\t\t\t\t\tloop += 1\n\t\t\t\t\tif loop == config.trainTimes:\n\t\t\t\t\t\tcoord.request_stop()\n\n\t\t\tph = np.zeros(config.batch_size, dtype = np.int32)\n\t\t\tpt = np.zeros(config.batch_size, dtype = np.int32)\n\t\t\tpr = np.zeros(config.batch_size, dtype = np.int32)\n\t\t\tnh = np.zeros(config.batch_size, dtype = np.int32)\n\t\t\tnt = np.zeros(config.batch_size, dtype = np.int32)\n\t\t\tnr = np.zeros(config.batch_size, dtype = np.int32)\n\t\t\tph_addr = ph.__array_interface__['data'][0]\n\t\t\tpt_addr = pt.__array_interface__['data'][0]\n\t\t\tpr_addr = pr.__array_interface__['data'][0]\n\t\t\tnh_addr = nh.__array_interface__['data'][0]\n\t\t\tnt_addr = nt.__array_interface__['data'][0]\n\t\t\tnr_addr = nr.__array_interface__['data'][0]\n\t\t\tlib_kg.getBatch.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int]\t\t\n\t\t\ttimes_kg = 0\n\n\t\t\tdef train_kg(coord):\n\t\t\t\tdef train_step_kg(pos_h_batch, pos_t_batch, pos_r_batch, neg_h_batch, neg_t_batch, neg_r_batch):\n\t\t\t\t\tfeed_dict = {\n\t\t\t\t\t\tm.pos_h: pos_h_batch,\n\t\t\t\t\t\tm.pos_t: pos_t_batch,\n\t\t\t\t\t\tm.pos_r: pos_r_batch,\n\t\t\t\t\t\tm.neg_h: neg_h_batch,\n\t\t\t\t\t\tm.neg_t: neg_t_batch,\n\t\t\t\t\t\tm.neg_r: neg_r_batch\n\t\t\t\t\t}\n\t\t\t\t\t_, step, loss, = sess.run(\n\t\t\t\t\t\t[train_op_kg, global_step_kg, m.loss_kg], feed_dict)\n\t\t\t\t\treturn loss\n\t\t\t\tglobal times_kg\n\t\t\t\twhile not coord.should_stop():\n\t\t\t\t\ttimes_kg += 1\n\t\t\t\t\tres = 0.0\n\t\t\t\t\tfor batch in range(config.nbatches):\n\t\t\t\t\t\tlib_kg.getBatch(ph_addr, pt_addr, pr_addr, nh_addr, nt_addr, nr_addr, config.batch_size)\n\t\t\t\t\t\tres += train_step_kg(ph, pt, pr, nh, nt, nr)\n\n\t\t\tcoord = tf.train.Coordinator()\n\t\t\tthreads = []\n\t\t\tthreads.append(threading.Thread(target=train_kg, args=(coord,)))\n\t\t\tthreads.append(threading.Thread(target=train_cnn, args=(coord,)))\n\t\t\tfor t in threads: t.start()\n\t\t\tcoord.join(threads)\n\n\n\n"
  },
  {
    "path": "original/baselines/train/JointD+ONE.py",
    "content": "#coding:utf-8\nimport numpy as np\nimport tensorflow as tf\nimport os\nimport time\nimport datetime\nimport ctypes\nimport threading\nimport json\n\nll1 = ctypes.cdll.LoadLibrary   \nlib_cnn = ll1(\"./init_cnn.so\")\nll2 = ctypes.cdll.LoadLibrary   \nlib_kg = ll2(\"./init_know.so\")\n\nclass Config(object):\n\tdef __init__(self):\n\t\tself.instanceTot = lib_cnn.getInstanceTot()\n\t\tself.sequence_size = lib_cnn.getLenLimit()\n\t\tself.num_classes = lib_cnn.getRelationTotal()\n\t\tself.num_words = lib_cnn.getWordTotal()\n\t\tself.num_positions = 2 * lib_cnn.getPositionLimit() + 1\n\t\tself.word_size = lib_cnn.getWordDimension()\n\t\tself.position_size = 5\n\t\tself.embedding_size = self.word_size + self.position_size * 2\n\t\tself.filter_size = 3\n\t\tself.num_filters = 230\n\t\tself.relation_size = self.word_size\n\t\tself.dropout_keep_prob = 0.5\n\t\tself.l2_lambda = 0.0001\n\t\tself.NA = 51\n\t\tlib_cnn.setNA(self.NA)\n\t\tlib_cnn.setRate(3)\t\t\n\t\tself.margin = 1.0\n\t\tself.nbatches = 100\n\t\tself.trainTimes = 15\n\t\tself.entityTotal = 0\n\t\tself.relationTotal = 0\n\nclass Model(object):\n\n\tdef calc(self, e, t, r):\n\t\treturn e + tf.reduce_sum(e * t, 1, keep_dims = True) * r\n\n\n\tdef __init__(self, config):\n\t\tsequence_size = config.sequence_size\n\t\tnum_classes = config.num_classes\n\t\tnum_words = config.num_words\n\t\tnum_positions = config.num_positions\n\n\t\tembedding_size = config.embedding_size\n\t\tword_size = config.word_size\n\t\tposition_size = config.position_size\n\t\trelation_size = config.relation_size\n\t\tfilter_size = config.filter_size\n\t\tnum_filters = config.num_filters\n\t\tdropout_keep_prob = config.dropout_keep_prob\n\n\t\tmargin = config.margin\n\t\tl2_lambda = config.l2_lambda\n\n\t\tself.input_x = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_x\")\n\t\tself.input_p_h = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_p_h\")\n\t\tself.input_p_t = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_p_t\")\n\t\tself.input_r = tf.placeholder(tf.int32, [1, 1], name = \"input_r\")\n\t\tself.input_r_n = tf.placeholder(tf.float32, [1, 1], name = \"input_r_n\")\n\t\tself.input_h = tf.placeholder(tf.int32, [1, 1], name = \"input_h\")\n\t\tself.input_t = tf.placeholder(tf.int32, [1, 1], name = \"input_t\")\n\t\tself.input_y = tf.placeholder(tf.float32, [1, num_classes], name = \"input_y\")\n\n\t\tself.pos_h = tf.placeholder(tf.int32, [None])\n\t\tself.pos_t = tf.placeholder(tf.int32, [None])\n\t\tself.pos_r = tf.placeholder(tf.int32, [None])\n\t\tself.neg_h = tf.placeholder(tf.int32, [None])\n\t\tself.neg_t = tf.placeholder(tf.int32, [None])\n\t\tself.neg_r = tf.placeholder(tf.int32, [None])\n\n\t\tl2_loss = tf.constant(0.0)\n\t\twith tf.name_scope(\"embedding-lookup\"):\n\t\t\tself.word_embeddings = tf.Variable(word_embeddings, name=\"word_embeddings\")\n\t\t\tself.relation_embeddings = tf.get_variable(\"relation_embeddings\", [config.relationTotal, word_size])\n\t\t\tself.position_embeddings = tf.get_variable(\"position_embeddings\", [num_positions, position_size])\n\t\t\tself.relation_attention = tf.get_variable(\"relation_attention\", [num_classes, relation_size])\n\t\t\tself.NAattention = tf.get_variable(\"NAattention\", [relation_size, 1])\n\t\t\tself.attention = tf.get_variable(\"attention\", [num_filters, relation_size])\n\t\t\tself.ent_transfer = tf.get_variable(\"ent_transfer\", shape = [len(word_embeddings), word_size])\n\t\t\tself.rel_transfer = tf.get_variable(\"rel_transfer\", shape = [config.relationTotal, word_size])\n\n\t\t\t#know\n\t\t\tpos_h_e = tf.nn.embedding_lookup(self.word_embeddings, self.pos_h)\n\t\t\tpos_t_e = tf.nn.embedding_lookup(self.word_embeddings, self.pos_t)\n\t\t\tpos_r_e = tf.nn.embedding_lookup(self.relation_embeddings, self.pos_r)\n\t\t\tpos_h_t = tf.nn.embedding_lookup(self.ent_transfer, self.pos_h)\n\t\t\tpos_t_t = tf.nn.embedding_lookup(self.ent_transfer, self.pos_t)\n\t\t\tpos_r_t = tf.nn.embedding_lookup(self.rel_transfer, self.pos_r)\n\t\t\tneg_h_e = tf.nn.embedding_lookup(self.word_embeddings, self.neg_h)\n\t\t\tneg_t_e = tf.nn.embedding_lookup(self.word_embeddings, self.neg_t)\n\t\t\tneg_r_e = tf.nn.embedding_lookup(self.relation_embeddings, self.neg_r)\n\t\t\tneg_h_t = tf.nn.embedding_lookup(self.ent_transfer, self.neg_h)\n\t\t\tneg_t_t = tf.nn.embedding_lookup(self.ent_transfer, self.neg_t)\n\t\t\tneg_r_t = tf.nn.embedding_lookup(self.rel_transfer, self.neg_r)\n\t\t\tpos_h_e = self.calc(pos_h_e, pos_h_t, pos_r_t)\n\t\t\tpos_t_e = self.calc(pos_t_e, pos_t_t, pos_r_t)\n\t\t\tneg_h_e = self.calc(neg_h_e, neg_h_t, neg_r_t)\n\t\t\tneg_t_e = self.calc(neg_t_e, neg_t_t, neg_r_t)\n\n\t\t\t#cnn\n\t\t\tself.x_initial = tf.nn.embedding_lookup(self.word_embeddings, self.input_x)\n\t\t\tself.x_p_h = tf.nn.embedding_lookup(self.position_embeddings, self.input_p_h)\n\t\t\tself.x_p_t = tf.nn.embedding_lookup(self.position_embeddings, self.input_p_t)\n\t\t\tself.x = tf.expand_dims(tf.concat(2, [self.x_initial, self.x_p_h, self.x_p_t]), -1)\n\t\t\tself.head = tf.nn.embedding_lookup(self.word_embeddings, self.input_h)\n\t\t\tself.tail = tf.nn.embedding_lookup(self.word_embeddings, self.input_t)\n\t\t\tself.head_t = tf.nn.embedding_lookup(self.ent_transfer, self.input_h)\n\t\t\tself.tail_t = tf.nn.embedding_lookup(self.ent_transfer, self.input_t)\n\t\t\tself.r_t = tf.nn.embedding_lookup(self.rel_transfer, self.input_r)\n\t\t\tself.head = self.calc(self.head, self.head_t, self.r_t)\n\t\t\tself.tail = self.calc(self.tail, self.tail_t, self.r_t)\n\t\t\tl2_loss += tf.nn.l2_loss(self.attention)\n\n\t\twith tf.name_scope(\"conv-maxpool\"):\n\t\t\tself.W = tf.get_variable(\"W\", [filter_size, embedding_size, 1, num_filters])\n\t\t\tself.b = tf.get_variable(\"b\", [num_filters])\n\t\t\tconv = tf.nn.conv2d(self.x, self.W, strides=[1, 1, 1, 1], padding=\"VALID\", name=\"conv\")\n\t\t\th = tf.nn.tanh(tf.nn.bias_add(conv, self.b), name=\"tanh\")\n\t\t\tself.y = tf.nn.max_pool(h, ksize=[1, sequence_size - filter_size + 1, 1, 1], strides=[1, 1, 1, 1], padding='VALID', name=\"pool\")\n\t\t\tl2_loss += tf.nn.l2_loss(self.W)\n\t\t\tl2_loss += tf.nn.l2_loss(self.b)\n\t\t\tself.y = tf.reshape(self.y, [-1, num_filters])\n\n\t\twith tf.name_scope('attention'):\n\t\t\tself.y_attention = tf.reduce_max(self.y, 0 , keep_dims = True)\n\n\t\twith tf.name_scope(\"dropout\"):\n\t\t\tself.y_attention = tf.nn.l2_normalize(self.y_attention, 1)\n\t\t\tself.h_drop = tf.nn.dropout(self.y_attention, dropout_keep_prob)\n\t\t\tself.transfer_w = tf.get_variable(\"transfer_w\", [num_filters, num_classes])\n\t\t\tself.scores = tf.matmul(self.h_drop, self.transfer_w)\n\t\t\tl2_loss += tf.nn.l2_loss(self.transfer_w)\n\n\t\twith tf.name_scope(\"loss\"):\n\t\t\tcross_entropy = tf.nn.softmax_cross_entropy_with_logits(self.scores, self.input_y)\n\t\t\tself.loss_cnn = tf.reduce_mean(cross_entropy) + l2_lambda * l2_loss\n\n\t\t\tself.pos = tf.reduce_sum(abs(pos_h_e + pos_r_e - pos_t_e), 1, keep_dims = True)\n\t\t\tself.neg = tf.reduce_sum(abs(neg_h_e + neg_r_e - neg_t_e), 1, keep_dims = True)\n\t\t\tself.loss_kg = tf.reduce_sum(tf.maximum(self.pos - self.neg + margin, 0))\n\n\t\twith tf.name_scope(\"accuracy\"):\n\t\t\tself.predictions = tf.argmax(self.scores, 1, name=\"predictions\")\n\t\t\tcorrect_predictions = tf.equal(self.predictions, tf.argmax(self.input_y, 1))\n\t\t\tself.accuracy = tf.reduce_mean(tf.cast(correct_predictions, \"float\"), name=\"accuracy\")\n\t\t\t\n\nbags_sum = 0.0\nbags_hit_NA = 0.0\nsum_NA = 0.0\nsum_fNA = 0.0\nbags_hit = 0.0\nloss_sum = 0.0\n\nif __name__ == \"__main__\":\n\t\n\tlib_cnn.readWordVec()\n\tlib_cnn.readFromFile()\n\tlib_kg.init()\n\n\tnp.random.seed(0)\n\ttf.set_random_seed(0)\n\tconfig = Config()\n\n\tword_embeddings = np.zeros(config.num_words * config.word_size, dtype = np.float32)\n\tlib_cnn.getWordVec.argtypes = [ctypes.c_void_p]\n\tlib_cnn.getWordVec(word_embeddings.__array_interface__['data'][0])\n\tword_embeddings.resize((config.num_words,config.word_size))\n\n\tconfig.batch_size = lib_kg.getTripleTotal() / config.nbatches\n\tconfig.entityTotal = lib_kg.getEntityTotal()\n\tconfig.relationTotal = lib_kg.getRelationTotal()\n\n\twith tf.Graph().as_default():\n\t\tconf = tf.ConfigProto()\n\t\tsess = tf.Session(config=conf)\n\t\twith sess.as_default():\n\t\t\tinitializer = tf.contrib.layers.xavier_initializer()\n\t\t\twith tf.variable_scope(\"model\", reuse=None, initializer = initializer):\n\t\t\t\tm = Model(config = config)\n\t\t\t\n\t\t\tglobal_step_cnn = tf.Variable(0, name=\"global_step_cnn\", trainable=False)\n\n\t\t\toptimizer_cnn = tf.train.GradientDescentOptimizer(0.01)\n\t\t\tgrads_and_vars_cnn = optimizer_cnn.compute_gradients(m.loss_cnn)\n\t\t\ttrain_op_cnn = optimizer_cnn.apply_gradients(grads_and_vars_cnn, global_step = global_step_cnn)\n\n\t\t\tglobal_step_kg = tf.Variable(0, name=\"global_step_kg\", trainable=False)\n\t\t\toptimizer_kg = tf.train.GradientDescentOptimizer(0.001)\n\t\t\tgrads_and_vars_kg = optimizer_kg.compute_gradients(m.loss_kg)\n\t\t\ttrain_op_kg = optimizer_kg.apply_gradients(grads_and_vars_kg, global_step=global_step_kg)\n\n\t\t\tsess.run(tf.initialize_all_variables())\n\n\t\t\tdef outEmbedding(str1):\n\t\t\t\tword_embeddings, relation_embeddings, position_embeddings, relation_attention, attention, W, B, transfer_w, transfer_b, softmax_w, softmax_b = sess.run([m.word_embeddings, m.relation_embeddings, m.position_embeddings, m.relation_attention, m.attention, m.W, m.b, m.transfer_w, m.transfer_b, m.softmax_w, m.softmax_b])\n\t\t\t\tlog = open(\"log\"+str1+\".txt\", \"w\")\n\t\t\t\tlog.write(json.dumps(word_embeddings.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(relation_embeddings.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(position_embeddings.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(relation_attention.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(attention.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(W.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(B.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(transfer_w.tolist())+\"\\n\")\n\t\t\t\tNAattention = sess.run(m.NAattention)\n\t\t\t\tlog.write(json.dumps(NAattention.tolist()) + \"\\n\")\n\t\t\t\tent_transfer = sess.run(m.ent_transfer)\n\t\t\t\tlog.write(json.dumps(ent_transfer.tolist()) + \"\\n\")\n\t\t\t\trel_transfer = sess.run(m.rel_transfer)\n\t\t\t\tlog.write(json.dumps(rel_transfer.tolist()) + \"\\n\")\n\t\t\t\tlog.close()\n\n\t\t\tx_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tp_t_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tp_h_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tr_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\ty_batch = np.zeros((1, config.num_classes), dtype = np.int32)\n\t\t\tr_n_batch = np.zeros((1, 1), dtype = np.float32)\n\t\t\th_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\tt_batch = np.zeros((1, 1), dtype = np.int32)\n\n\t\t\tx_batch_addr = x_batch.__array_interface__['data'][0]\n\t\t\tp_t_batch_addr = p_t_batch.__array_interface__['data'][0]\n\t\t\tp_h_batch_addr = p_h_batch.__array_interface__['data'][0]\n\t\t\ty_batch_addr = y_batch.__array_interface__['data'][0]\n\t\t\tr_batch_addr = r_batch.__array_interface__['data'][0]\n\t\t\tr_n_batch_addr = r_n_batch.__array_interface__['data'][0]\n\t\t\th_batch_addr = h_batch.__array_interface__['data'][0]\n\t\t\tt_batch_addr = t_batch.__array_interface__['data'][0]\n\t\t\tlib_cnn.batch_iter.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]\n\t\t\ttipTotal = lib_cnn.getTipTotal()\n\t\t\tloop = 0\n\n\t\t\tdef train_cnn(coord):\n\t\t\t\tdef train_step_cnn(x_batch, p_h_batch, p_t_batch, y_batch, r_batch, r_n_batch, h_batch, t_batch):\n\t\t\t\t\tglobal bags_sum, bags_hit, loss_sum, bags_hit_NA, bags_hit, sum_fNA, sum_NA\n\t\t\t\t\tfeed_dict = {\n\t\t\t\t\t\tm.input_x: x_batch,\n\t\t\t\t\t\tm.input_p_h: p_h_batch,\n\t\t\t\t\t\tm.input_p_t: p_t_batch,\n\t\t\t\t\t\tm.input_r: r_batch,\n\t\t\t\t\t\tm.input_r_n: r_n_batch,\n\t\t\t\t\t\tm.input_y: y_batch,\n\t\t\t\t\t\tm.input_h: h_batch,\n\t\t\t\t\t\tm.input_t: t_batch\n\t\t\t\t\t}\n\t\t\t\t\t_, step, loss, accuracy = sess.run(\n\t\t\t\t\t \t[train_op_cnn, global_step_cnn, m.loss_cnn, m.accuracy], feed_dict)\n\t\t\t\t \ttime_str = datetime.datetime.now().isoformat()\n\t\t\t\t \tloss_sum += loss\n\t\t\t\t \tbags_sum += 1\n\t\t\t\t \tif (r_batch[0]!=config.NA):\n\t\t\t\t \t\tsum_fNA += 1\n\t\t\t\t \t\tif accuracy > 0.5:\n\t\t\t\t \t\t\tbags_hit += 1.0\n\t\t\t\t \telse:\n\t\t\t\t \t\tsum_NA += 1\n\t\t\t\t \t\tif accuracy > 0.5:\n\t\t\t\t \t\t\tbags_hit_NA += 1.0\n\t\t\t\t \tif bags_sum % 1000 == 0:\n\t\t\t\t \t\tif (sum_NA == 0):\n\t\t\t\t \t\t\tsum_NA+=1\n\t\t\t\t \t\tif (sum_fNA == 0):\n\t\t\t\t \t\t\tsum_fNA+=1\n\t\t\t\t \t\tprint(\"{}: step {}, loss {:g}, acc {:g} acc {:g} {} {}\".format(time_str, step, loss_sum/bags_sum, bags_hit_NA/sum_NA, bags_hit/sum_fNA, sum_NA, sum_fNA))\n\n\n\t\t\t\tglobal loop\n\t\t\t\twhile not coord.should_stop():\n\t\t\t\t\tprint 'Looping ', loop\n\t\t\t\t\toutEmbedding(str(loop))\n\t\t\t\t\tfor i in range(tipTotal):\n\t\t\t\t\t\tlength = lib_cnn.batch_iter(x_batch_addr, p_h_batch_addr, p_t_batch_addr, y_batch_addr, r_batch_addr, r_n_batch_addr, h_batch_addr, t_batch_addr)\n\t\t\t\t\t\ttrain_step_cnn(x_batch[0:length,], p_h_batch[0:length,], p_t_batch[0:length,], y_batch, r_batch, r_n_batch, h_batch, t_batch)\n\t\t\t\t\tglobal bags_sum, bags_hit, loss_sum, bags_hit_NA, bags_hit, sum_fNA, sum_NA\n\t\t\t\t\tbags_sum = 0\n\t\t\t\t\tbags_hit = 0\n\t\t\t\t\tbags_hit_NA = 0\n\t\t\t\t\tloss_sum = 0\n\t\t\t\t\tsum_fNA = 0\n\t\t\t\t\tsum_NA = 0\t\n\t\t\t\t\tloop += 1\n\t\t\t\t\tif loop == config.trainTimes:\n\t\t\t\t\t\tcoord.request_stop()\n\n\t\t\tph = np.zeros(config.batch_size, dtype = np.int32)\n\t\t\tpt = np.zeros(config.batch_size, dtype = np.int32)\n\t\t\tpr = np.zeros(config.batch_size, dtype = np.int32)\n\t\t\tnh = np.zeros(config.batch_size, dtype = np.int32)\n\t\t\tnt = np.zeros(config.batch_size, dtype = np.int32)\n\t\t\tnr = np.zeros(config.batch_size, dtype = np.int32)\n\t\t\tph_addr = ph.__array_interface__['data'][0]\n\t\t\tpt_addr = pt.__array_interface__['data'][0]\n\t\t\tpr_addr = pr.__array_interface__['data'][0]\n\t\t\tnh_addr = nh.__array_interface__['data'][0]\n\t\t\tnt_addr = nt.__array_interface__['data'][0]\n\t\t\tnr_addr = nr.__array_interface__['data'][0]\n\t\t\tlib_kg.getBatch.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int]\t\t\n\t\t\ttimes_kg = 0\n\n\t\t\tdef train_kg(coord):\n\t\t\t\tdef train_step_kg(pos_h_batch, pos_t_batch, pos_r_batch, neg_h_batch, neg_t_batch, neg_r_batch):\n\t\t\t\t\tfeed_dict = {\n\t\t\t\t\t\tm.pos_h: pos_h_batch,\n\t\t\t\t\t\tm.pos_t: pos_t_batch,\n\t\t\t\t\t\tm.pos_r: pos_r_batch,\n\t\t\t\t\t\tm.neg_h: neg_h_batch,\n\t\t\t\t\t\tm.neg_t: neg_t_batch,\n\t\t\t\t\t\tm.neg_r: neg_r_batch\n\t\t\t\t\t}\n\t\t\t\t\t_, step, loss, = sess.run(\n\t\t\t\t\t\t[train_op_kg, global_step_kg, m.loss_kg], feed_dict)\n\t\t\t\t\treturn loss\n\t\t\t\tglobal times_kg\n\t\t\t\twhile not coord.should_stop():\n\t\t\t\t\ttimes_kg += 1\n\t\t\t\t\tres = 0.0\n\t\t\t\t\tfor batch in range(config.nbatches):\n\t\t\t\t\t\tlib_kg.getBatch(ph_addr, pt_addr, pr_addr, nh_addr, nt_addr, nr_addr, config.batch_size)\n\t\t\t\t\t\tres += train_step_kg(ph, pt, pr, nh, nt, nr)\n\n\t\t\tcoord = tf.train.Coordinator()\n\t\t\tthreads = []\n\t\t\tthreads.append(threading.Thread(target=train_kg, args=(coord,)))\n\t\t\tthreads.append(threading.Thread(target=train_cnn, args=(coord,)))\n\t\t\tfor t in threads: t.start()\n\t\t\tcoord.join(threads)\n\n\n\n"
  },
  {
    "path": "original/baselines/train/JointE+ATT.py",
    "content": "#coding:utf-8\nimport numpy as np\nimport tensorflow as tf\nimport os\nimport time\nimport datetime\nimport ctypes\nimport threading\nimport json\n\nll1 = ctypes.cdll.LoadLibrary   \nlib_cnn = ll1(\"./init_cnn.so\")\nll2 = ctypes.cdll.LoadLibrary   \nlib_kg = ll2(\"./init_know.so\")\n\nclass Config(object):\n\tdef __init__(self):\n\t\tself.instanceTot = lib_cnn.getInstanceTot()\n\t\tself.sequence_size = lib_cnn.getLenLimit()\n\t\tself.num_classes = lib_cnn.getRelationTotal()\n\t\tself.num_words = lib_cnn.getWordTotal()\n\t\tself.num_positions = 2 * lib_cnn.getPositionLimit() + 1\n\t\tself.word_size = lib_cnn.getWordDimension()\n\t\tself.position_size = 5\n\t\tself.embedding_size = self.word_size + self.position_size * 2\n\t\tself.filter_size = 3\n\t\tself.num_filters = 230\n\t\tself.relation_size = self.word_size\n\t\tself.dropout_keep_prob = 0.5\n\t\tself.l2_lambda = 0.0001\n\t\tself.NA = 51\n\t\tlib_cnn.setNA(self.NA)\n\t\tlib_cnn.setRate(3)\n\t\tself.margin = 1.0\n\t\tself.nbatches = 100\n\t\tself.trainTimes = 15\n\t\tself.entityTotal = 0\n\t\tself.relationTotal = 0\n\nclass Model(object):\n\n\tdef __init__(self, config):\n\t\tsequence_size = config.sequence_size\n\t\tnum_classes = config.num_classes\n\t\tnum_words = config.num_words\n\t\tnum_positions = config.num_positions\n\n\t\tembedding_size = config.embedding_size\n\t\tword_size = config.word_size\n\t\tposition_size = config.position_size\n\t\trelation_size = config.relation_size\n\t\tfilter_size = config.filter_size\n\t\tnum_filters = config.num_filters\n\t\tdropout_keep_prob = config.dropout_keep_prob\n\n\t\tmargin = config.margin\n\t\tl2_lambda = config.l2_lambda\n\n\t\tself.input_x = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_x\")\n\t\tself.input_p_h = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_p_h\")\n\t\tself.input_p_t = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_p_t\")\n\t\tself.input_r = tf.placeholder(tf.int32, [1, 1], name = \"input_r\")\n\t\tself.input_r_n = tf.placeholder(tf.float32, [1, 1], name = \"input_r_n\")\n\t\tself.input_h = tf.placeholder(tf.int32, [1, 1], name = \"input_h\")\n\t\tself.input_t = tf.placeholder(tf.int32, [1, 1], name = \"input_t\")\n\t\tself.input_y = tf.placeholder(tf.float32, [1, num_classes], name = \"input_y\")\n\n\t\tself.pos_h = tf.placeholder(tf.int32, [None])\n\t\tself.pos_t = tf.placeholder(tf.int32, [None])\n\t\tself.pos_r = tf.placeholder(tf.int32, [None])\n\t\tself.neg_h = tf.placeholder(tf.int32, [None])\n\t\tself.neg_t = tf.placeholder(tf.int32, [None])\n\t\tself.neg_r = tf.placeholder(tf.int32, [None])\n\n\t\tl2_loss = tf.constant(0.0)\n\t\twith tf.name_scope(\"embedding-lookup\"):\n\t\t\tself.word_embeddings = tf.Variable(word_embeddings, name=\"word_embeddings\")\n\t\t\tself.relation_embeddings = tf.get_variable(\"relation_embeddings\", [config.relationTotal, word_size])\n\t\t\tself.position_embeddings = tf.get_variable(\"position_embeddings\", [num_positions, position_size])\n\t\t\tself.relation_attention = tf.get_variable(\"relation_attention\", [num_classes, relation_size])\n\t\t\tself.NAattention = tf.get_variable(\"NAattention\", [relation_size, 1])\n\t\t\tself.attention = tf.get_variable(\"attention\", [num_filters, relation_size])\n\t\t\tself.r = tf.nn.embedding_lookup(self.attention, self.input_r)\n\n\t\t\t#know\n\t\t\tpos_h_e = tf.nn.embedding_lookup(self.word_embeddings, self.pos_h)\n\t\t\tpos_t_e = tf.nn.embedding_lookup(self.word_embeddings, self.pos_t)\n\t\t\tpos_r_e = tf.nn.embedding_lookup(self.relation_embeddings, self.pos_r)\n\t\t\tneg_h_e = tf.nn.embedding_lookup(self.word_embeddings, self.neg_h)\n\t\t\tneg_t_e = tf.nn.embedding_lookup(self.word_embeddings, self.neg_t)\n\t\t\tneg_r_e = tf.nn.embedding_lookup(self.relation_embeddings, self.neg_r)\n\n\t\t\t#cnn\n\t\t\tself.x_initial = tf.nn.embedding_lookup(self.word_embeddings, self.input_x)\n\t\t\tself.x_p_h = tf.nn.embedding_lookup(self.position_embeddings, self.input_p_h)\n\t\t\tself.x_p_t = tf.nn.embedding_lookup(self.position_embeddings, self.input_p_t)\n\t\t\tself.x = tf.expand_dims(tf.concat(2, [self.x_initial, self.x_p_h, self.x_p_t]), -1)\n\t\t\tself.head = tf.nn.embedding_lookup(self.word_embeddings, self.input_h)\n\t\t\tself.tail = tf.nn.embedding_lookup(self.word_embeddings, self.input_t)\n\t\t\tl2_loss += tf.nn.l2_loss(self.attention)\n\n\t\twith tf.name_scope(\"conv-maxpool\"):\n\t\t\tself.W = tf.get_variable(\"W\", [filter_size, embedding_size, 1, num_filters])\n\t\t\tself.b = tf.get_variable(\"b\", [num_filters])\n\t\t\tconv = tf.nn.conv2d(self.x, self.W, strides=[1, 1, 1, 1], padding=\"VALID\", name=\"conv\")\n\t\t\th = tf.nn.tanh(tf.nn.bias_add(conv, self.b), name=\"tanh\")\n\t\t\tself.y = tf.nn.max_pool(h, ksize=[1, sequence_size - filter_size + 1, 1, 1], strides=[1, 1, 1, 1], padding='VALID', name=\"pool\")\n\t\t\tl2_loss += tf.nn.l2_loss(self.W)\n\t\t\tl2_loss += tf.nn.l2_loss(self.b)\n\t\t\tself.y = tf.reshape(self.y, [-1, num_filters])\n\n\t\twith tf.name_scope('attention'):\n\t\t\tself.r = tf.reshape(self.r, [relation_size, -1])\n\t\t\tself.e = tf.matmul(tf.matmul(self.y, self.attention), self.r)\n\t\t\talpha = tf.reshape(self.e, [1, -1])\n\t\t\tself.alpha_reshape = tf.nn.softmax(alpha)\n\t\t\tself.y_attention = tf.matmul(self.alpha_reshape, self.y)\n\n\t\twith tf.name_scope(\"dropout\"):\n\t\t\tself.y_attention = tf.nn.l2_normalize(self.y_attention, 1)\n\t\t\tself.h_drop = tf.nn.dropout(self.y_attention, dropout_keep_prob)\n\t\t\tself.transfer_w = tf.get_variable(\"transfer_w\", [num_filters, num_classes])\n\t\t\tself.scores = tf.matmul(self.h_drop, self.transfer_w)\n\t\t\tl2_loss += tf.nn.l2_loss(self.transfer_w)\n\n\t\twith tf.name_scope(\"loss\"):\n\t\t\tcross_entropy = tf.nn.softmax_cross_entropy_with_logits(self.scores, self.input_y)\n\t\t\tself.loss_cnn = tf.reduce_mean(cross_entropy) + l2_lambda * l2_loss\n\n\t\t\tpos = tf.reduce_sum(abs(pos_h_e + pos_r_e - pos_t_e), 1, keep_dims = True)\n\t\t\tneg = tf.reduce_sum(abs(neg_h_e + neg_r_e - neg_t_e), 1, keep_dims = True)\n\t\t\tself.loss_kg = tf.reduce_sum(tf.maximum(pos - neg + margin, 0))\n\n\t\twith tf.name_scope(\"accuracy\"):\n\t\t\tself.predictions = tf.argmax(self.scores, 1, name=\"predictions\")\n\t\t\tcorrect_predictions = tf.equal(self.predictions, tf.argmax(self.input_y, 1))\n\t\t\tself.accuracy = tf.reduce_mean(tf.cast(correct_predictions, \"float\"), name=\"accuracy\")\n\t\t\t\n\nbags_sum = 0.0\nbags_hit_NA = 0.0\nsum_NA = 0.0\nsum_fNA = 0.0\nbags_hit = 0.0\nloss_sum = 0.0\n\nif __name__ == \"__main__\":\n\t\n\tlib_cnn.readWordVec()\n\tlib_cnn.readFromFile()\n\tlib_kg.init()\n\n\tnp.random.seed(0)\n\ttf.set_random_seed(0)\n\tconfig = Config()\n\n\tword_embeddings = np.zeros(config.num_words * config.word_size, dtype = np.float32)\n\tlib_cnn.getWordVec.argtypes = [ctypes.c_void_p]\n\tlib_cnn.getWordVec(word_embeddings.__array_interface__['data'][0])\n\tword_embeddings.resize((config.num_words,config.word_size))\n\n\tconfig.batch_size = lib_kg.getTripleTotal() / config.nbatches\n\tconfig.entityTotal = lib_kg.getEntityTotal()\n\tconfig.relationTotal = lib_kg.getRelationTotal()\n\n\twith tf.Graph().as_default():\n\t\tconf = tf.ConfigProto()\n\t\tsess = tf.Session(config=conf)\n\t\twith sess.as_default():\n\t\t\tinitializer = tf.contrib.layers.xavier_initializer()\n\t\t\twith tf.variable_scope(\"model\", reuse=None, initializer = initializer):\n\t\t\t\tm = Model(config = config)\n\t\t\t\n\t\t\tglobal_step_cnn = tf.Variable(0, name=\"global_step_cnn\", trainable=False)\n\n\t\t\toptimizer_cnn = tf.train.GradientDescentOptimizer(0.01)\n\t\t\tgrads_and_vars_cnn = optimizer_cnn.compute_gradients(m.loss_cnn)\n\t\t\ttrain_op_cnn = optimizer_cnn.apply_gradients(grads_and_vars_cnn, global_step = global_step_cnn)\n\n\t\t\tglobal_step_kg = tf.Variable(0, name=\"global_step_kg\", trainable=False)\n\t\t\toptimizer_kg = tf.train.GradientDescentOptimizer(0.001)\n\t\t\tgrads_and_vars_kg = optimizer_kg.compute_gradients(m.loss_kg)\n\t\t\ttrain_op_kg = optimizer_kg.apply_gradients(grads_and_vars_kg, global_step=global_step_kg)\n\n\t\t\tsess.run(tf.initialize_all_variables())\n\n\t\t\tdef outEmbedding(str1):\n\t\t\t\tword_embeddings, relation_embeddings, position_embeddings, relation_attention, attention, W, B, transfer_w, transfer_b, softmax_w, softmax_b = sess.run([m.word_embeddings, m.relation_embeddings, m.position_embeddings, m.relation_attention, m.attention, m.W, m.b, m.transfer_w, m.transfer_b, m.softmax_w, m.softmax_b])\n\t\t\t\tlog = open(\"log\"+str1+\".txt\", \"w\")\n\t\t\t\tlog.write(json.dumps(word_embeddings.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(relation_embeddings.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(position_embeddings.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(relation_attention.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(attention.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(W.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(B.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(transfer_w.tolist())+\"\\n\")\n\t\t\t\tNAattention = sess.run(m.NAattention)\n\t\t\t\tlog.write(json.dumps(NAattention.tolist()) + \"\\n\")\n\t\t\t\tlog.close()\n\n\t\t\tx_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tp_t_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tp_h_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tr_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\ty_batch = np.zeros((1, config.num_classes), dtype = np.int32)\n\t\t\tr_n_batch = np.zeros((1, 1), dtype = np.float32)\n\t\t\th_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\tt_batch = np.zeros((1, 1), dtype = np.int32)\n\n\t\t\tx_batch_addr = x_batch.__array_interface__['data'][0]\n\t\t\tp_t_batch_addr = p_t_batch.__array_interface__['data'][0]\n\t\t\tp_h_batch_addr = p_h_batch.__array_interface__['data'][0]\n\t\t\ty_batch_addr = y_batch.__array_interface__['data'][0]\n\t\t\tr_batch_addr = r_batch.__array_interface__['data'][0]\n\t\t\tr_n_batch_addr = r_n_batch.__array_interface__['data'][0]\n\t\t\th_batch_addr = h_batch.__array_interface__['data'][0]\n\t\t\tt_batch_addr = t_batch.__array_interface__['data'][0]\n\t\t\tlib_cnn.batch_iter.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]\n\t\t\ttipTotal = lib_cnn.getTipTotal()\n\t\t\tloop = 0\n\n\t\t\tdef train_cnn(coord):\n\t\t\t\tdef train_step_cnn(x_batch, p_h_batch, p_t_batch, y_batch, r_batch, r_n_batch, h_batch, t_batch):\n\t\t\t\t\tglobal bags_sum, bags_hit, loss_sum, bags_hit_NA, bags_hit, sum_fNA, sum_NA\n\t\t\t\t\tfeed_dict = {\n\t\t\t\t\t\tm.input_x: x_batch,\n\t\t\t\t\t\tm.input_p_h: p_h_batch,\n\t\t\t\t\t\tm.input_p_t: p_t_batch,\n\t\t\t\t\t\tm.input_r: r_batch,\n\t\t\t\t\t\tm.input_r_n: r_n_batch,\n\t\t\t\t\t\tm.input_y: y_batch,\n\t\t\t\t\t\tm.input_h: h_batch,\n\t\t\t\t\t\tm.input_t: t_batch\n\t\t\t\t\t}\n\t\t\t\t\t_, step, loss, accuracy = sess.run(\n\t\t\t\t\t \t[train_op_cnn, global_step_cnn, m.loss_cnn, m.accuracy], feed_dict)\n\t\t\t\t \ttime_str = datetime.datetime.now().isoformat()\n\t\t\t\t \tloss_sum += loss\n\t\t\t\t \tbags_sum += 1\n\t\t\t\t \tif (r_batch[0]!=config.NA):\n\t\t\t\t \t\tsum_fNA += 1\n\t\t\t\t \t\tif accuracy > 0.5:\n\t\t\t\t \t\t\tbags_hit += 1.0\n\t\t\t\t \telse:\n\t\t\t\t \t\tsum_NA += 1\n\t\t\t\t \t\tif accuracy > 0.5:\n\t\t\t\t \t\t\tbags_hit_NA += 1.0\n\t\t\t\t \tif bags_sum % 1000 == 0:\n\t\t\t\t \t\tif (sum_NA == 0):\n\t\t\t\t \t\t\tsum_NA+=1\n\t\t\t\t \t\tif (sum_fNA == 0):\n\t\t\t\t \t\t\tsum_fNA+=1\n\t\t\t\t \t\tprint(\"{}: step {}, loss {:g}, acc {:g} acc {:g} {} {}\".format(time_str, step, loss_sum/bags_sum, bags_hit_NA/sum_NA, bags_hit/sum_fNA, sum_NA, sum_fNA))\n\n\n\t\t\t\tglobal loop\n\t\t\t\twhile not coord.should_stop():\n\t\t\t\t\tprint 'Looping ', loop\n\t\t\t\t\toutEmbedding(str(loop))\n\t\t\t\t\tfor i in range(tipTotal):\n\t\t\t\t\t\tlength = lib_cnn.batch_iter(x_batch_addr, p_h_batch_addr, p_t_batch_addr, y_batch_addr, r_batch_addr, r_n_batch_addr, h_batch_addr, t_batch_addr)\n\t\t\t\t\t\ttrain_step_cnn(x_batch[0:length,], p_h_batch[0:length,], p_t_batch[0:length,], y_batch, r_batch, r_n_batch, h_batch, t_batch)\n\t\t\t\t\tglobal bags_sum, bags_hit, loss_sum, bags_hit_NA, bags_hit, sum_fNA, sum_NA\n\t\t\t\t\tbags_sum = 0\n\t\t\t\t\tbags_hit = 0\n\t\t\t\t\tbags_hit_NA = 0\n\t\t\t\t\tloss_sum = 0\n\t\t\t\t\tsum_fNA = 0\n\t\t\t\t\tsum_NA = 0\t\n\t\t\t\t\tloop += 1\n\t\t\t\t\tif loop == config.trainTimes:\n\t\t\t\t\t\tcoord.request_stop()\n\n\t\t\tph = np.zeros(config.batch_size, dtype = np.int32)\n\t\t\tpt = np.zeros(config.batch_size, dtype = np.int32)\n\t\t\tpr = np.zeros(config.batch_size, dtype = np.int32)\n\t\t\tnh = np.zeros(config.batch_size, dtype = np.int32)\n\t\t\tnt = np.zeros(config.batch_size, dtype = np.int32)\n\t\t\tnr = np.zeros(config.batch_size, dtype = np.int32)\n\t\t\tph_addr = ph.__array_interface__['data'][0]\n\t\t\tpt_addr = pt.__array_interface__['data'][0]\n\t\t\tpr_addr = pr.__array_interface__['data'][0]\n\t\t\tnh_addr = nh.__array_interface__['data'][0]\n\t\t\tnt_addr = nt.__array_interface__['data'][0]\n\t\t\tnr_addr = nr.__array_interface__['data'][0]\n\t\t\tlib_kg.getBatch.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int]\t\t\n\t\t\ttimes_kg = 0\n\n\t\t\tdef train_kg(coord):\n\t\t\t\tdef train_step_kg(pos_h_batch, pos_t_batch, pos_r_batch, neg_h_batch, neg_t_batch, neg_r_batch):\n\t\t\t\t\tfeed_dict = {\n\t\t\t\t\t\tm.pos_h: pos_h_batch,\n\t\t\t\t\t\tm.pos_t: pos_t_batch,\n\t\t\t\t\t\tm.pos_r: pos_r_batch,\n\t\t\t\t\t\tm.neg_h: neg_h_batch,\n\t\t\t\t\t\tm.neg_t: neg_t_batch,\n\t\t\t\t\t\tm.neg_r: neg_r_batch\n\t\t\t\t\t}\n\t\t\t\t\t_, step, loss = sess.run(\n\t\t\t\t\t\t[train_op_kg, global_step_kg, m.loss_kg], feed_dict)\n\t\t\t\t\treturn loss\n\t\t\t\tglobal times_kg\n\t\t\t\twhile not coord.should_stop():\n\t\t\t\t\ttimes_kg += 1\n\t\t\t\t\tres = 0.0\n\t\t\t\t\tfor batch in range(config.nbatches):\n\t\t\t\t\t\tlib_kg.getBatch(ph_addr, pt_addr, pr_addr, nh_addr, nt_addr, nr_addr, config.batch_size)\n\t\t\t\t\t\tres += train_step_kg(ph, pt, pr, nh, nt, nr)\n\n\t\t\tcoord = tf.train.Coordinator()\n\t\t\tthreads = []\n\t\t\tthreads.append(threading.Thread(target=train_kg, args=(coord,)))\n\t\t\tthreads.append(threading.Thread(target=train_cnn, args=(coord,)))\n\t\t\tfor t in threads: t.start()\n\t\t\tcoord.join(threads)\n\n\n\n"
  },
  {
    "path": "original/baselines/train/JointE+ONE.py",
    "content": "#coding:utf-8\nimport numpy as np\nimport tensorflow as tf\nimport os\nimport time\nimport datetime\nimport ctypes\nimport threading\nimport json\n\nll1 = ctypes.cdll.LoadLibrary   \nlib_cnn = ll1(\"./init_cnn.so\")\nll2 = ctypes.cdll.LoadLibrary   \nlib_kg = ll2(\"./init_know.so\")\n\nclass Config(object):\n\tdef __init__(self):\n\t\tself.instanceTot = lib_cnn.getInstanceTot()\n\t\tself.sequence_size = lib_cnn.getLenLimit()\n\t\tself.num_classes = lib_cnn.getRelationTotal()\n\t\tself.num_words = lib_cnn.getWordTotal()\n\t\tself.num_positions = 2 * lib_cnn.getPositionLimit() + 1\n\t\tself.word_size = lib_cnn.getWordDimension()\n\t\tself.position_size = 5\n\t\tself.embedding_size = self.word_size + self.position_size * 2\n\t\tself.filter_size = 3\n\t\tself.num_filters = 230\n\t\tself.relation_size = self.word_size#230\n\t\tself.dropout_keep_prob = 0.5\n\t\tself.l2_lambda = 0.0001\n\t\tself.NA = 51\n\t\tlib_cnn.setNA(self.NA)\n\t\tlib_cnn.setRate(3)\n\t\tself.margin = 1.0\n\t\tself.nbatches = 100\n\t\tself.trainTimes = 15\n\t\tself.entityTotal = 0\n\t\tself.relationTotal = 0\n\nclass Model(object):\n\n\tdef __init__(self, config):\n\t\tsequence_size = config.sequence_size\n\t\tnum_classes = config.num_classes\n\t\tnum_words = config.num_words\n\t\tnum_positions = config.num_positions\n\n\t\tembedding_size = config.embedding_size\n\t\tword_size = config.word_size\n\t\tposition_size = config.position_size\n\t\trelation_size = config.relation_size\n\t\tfilter_size = config.filter_size\n\t\tnum_filters = config.num_filters\n\t\tdropout_keep_prob = config.dropout_keep_prob\n\n\t\tmargin = config.margin\n\t\tl2_lambda = config.l2_lambda\n\n\t\tself.input_x = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_x\")\n\t\tself.input_p_h = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_p_h\")\n\t\tself.input_p_t = tf.placeholder(tf.int32, [None, sequence_size], name = \"input_p_t\")\n\t\tself.input_r = tf.placeholder(tf.float32, [1, 1], name = \"input_r\")\n\t\tself.input_r_n = tf.placeholder(tf.float32, [1, 1], name = \"input_r_n\")\n\t\tself.input_h = tf.placeholder(tf.int32, [1, 1], name = \"input_h\")\n\t\tself.input_t = tf.placeholder(tf.int32, [1, 1], name = \"input_t\")\n\t\tself.input_y = tf.placeholder(tf.float32, [1, num_classes], name = \"input_y\")\n\n\t\tself.pos_h = tf.placeholder(tf.int32, [None])\n\t\tself.pos_t = tf.placeholder(tf.int32, [None])\n\t\tself.pos_r = tf.placeholder(tf.int32, [None])\n\t\tself.neg_h = tf.placeholder(tf.int32, [None])\n\t\tself.neg_t = tf.placeholder(tf.int32, [None])\n\t\tself.neg_r = tf.placeholder(tf.int32, [None])\n\n\t\tl2_loss = tf.constant(0.0)\n\t\twith tf.name_scope(\"embedding-lookup\"):\n\t\t\tself.word_embeddings = tf.Variable(word_embeddings, name=\"word_embeddings\")\n\t\t\tself.relation_embeddings = tf.get_variable(\"relation_embeddings\", [config.relationTotal, word_size])\n\t\t\tself.position_embeddings = tf.get_variable(\"position_embeddings\", [num_positions, position_size])\n\t\t\tself.relation_attention = tf.get_variable(\"relation_attention\", [num_classes, relation_size])\n\t\t\tself.NAattention = tf.get_variable(\"NAattention\", [relation_size, 1])\n\t\t\tself.attention = tf.get_variable(\"attention\", [num_filters, relation_size])\n\n\t\t\t#know\n\t\t\tpos_h_e = tf.nn.embedding_lookup(self.word_embeddings, self.pos_h)\n\t\t\tpos_t_e = tf.nn.embedding_lookup(self.word_embeddings, self.pos_t)\n\t\t\tpos_r_e = tf.nn.embedding_lookup(self.relation_embeddings, self.pos_r)\n\t\t\tneg_h_e = tf.nn.embedding_lookup(self.word_embeddings, self.neg_h)\n\t\t\tneg_t_e = tf.nn.embedding_lookup(self.word_embeddings, self.neg_t)\n\t\t\tneg_r_e = tf.nn.embedding_lookup(self.relation_embeddings, self.neg_r)\n\n\t\t\t#cnn\n\t\t\tself.x_initial = tf.nn.embedding_lookup(self.word_embeddings, self.input_x)\n\t\t\tself.x_p_h = tf.nn.embedding_lookup(self.position_embeddings, self.input_p_h)\n\t\t\tself.x_p_t = tf.nn.embedding_lookup(self.position_embeddings, self.input_p_t)\n\t\t\tself.x = tf.expand_dims(tf.concat(2, [self.x_initial, self.x_p_h, self.x_p_t]), -1)\n\t\t\tself.head = tf.nn.embedding_lookup(self.word_embeddings, self.input_h)\n\t\t\tself.tail = tf.nn.embedding_lookup(self.word_embeddings, self.input_t)\n\t\t\tl2_loss += tf.nn.l2_loss(self.attention)\n\n\t\twith tf.name_scope(\"conv-maxpool\"):\n\t\t\tself.W = tf.get_variable(\"W\", [filter_size, embedding_size, 1, num_filters])\n\t\t\tself.b = tf.get_variable(\"b\", [num_filters])\n\t\t\tconv = tf.nn.conv2d(self.x, self.W, strides=[1, 1, 1, 1], padding=\"VALID\", name=\"conv\")\n\t\t\th = tf.nn.tanh(tf.nn.bias_add(conv, self.b), name=\"tanh\")\n\t\t\tself.y = tf.nn.max_pool(h, ksize=[1, sequence_size - filter_size + 1, 1, 1], strides=[1, 1, 1, 1], padding='VALID', name=\"pool\")\n\t\t\tl2_loss += tf.nn.l2_loss(self.W)\n\t\t\tl2_loss += tf.nn.l2_loss(self.b)\n\t\t\tself.y = tf.reshape(self.y, [-1, num_filters])\n\n\t\twith tf.name_scope('attention'):\n\t\t\tself.y_attention = tf.reduce_max(self.y, 0 , keep_dims = True)\n\n\t\twith tf.name_scope(\"dropout\"):\n\t\t\tself.y_attention = tf.nn.l2_normalize(self.y_attention, 1)\n\t\t\tself.h_drop = tf.nn.dropout(self.y_attention, dropout_keep_prob)\n\t\t\tself.transfer_w = tf.get_variable(\"transfer_w\", [num_filters, num_classes])\n\t\t\tself.scores = tf.matmul(self.h_drop, self.transfer_w)\n\t\t\tl2_loss += tf.nn.l2_loss(self.transfer_w)\n\n\t\twith tf.name_scope(\"loss\"):\n\t\t\tcross_entropy = tf.nn.softmax_cross_entropy_with_logits(self.scores, self.input_y)\n\t\t\tself.loss_cnn = tf.reduce_mean(cross_entropy) + l2_lambda * l2_loss\n\n\t\t\tpos = tf.reduce_sum(abs(pos_h_e + pos_r_e - pos_t_e), 1, keep_dims = True)\n\t\t\tneg = tf.reduce_sum(abs(neg_h_e + neg_r_e - neg_t_e), 1, keep_dims = True)\n\t\t\tself.loss_kg = tf.reduce_sum(tf.maximum(pos - neg + margin, 0))\n\n\t\twith tf.name_scope(\"accuracy\"):\n\t\t\tself.predictions = tf.argmax(self.scores, 1, name=\"predictions\")\n\t\t\tcorrect_predictions = tf.equal(self.predictions, tf.argmax(self.input_y, 1))\n\t\t\tself.accuracy = tf.reduce_mean(tf.cast(correct_predictions, \"float\"), name=\"accuracy\")\n\t\t\t\n\nbags_sum = 0.0\nbags_hit_NA = 0.0\nsum_NA = 0.0\nsum_fNA = 0.0\nbags_hit = 0.0\nloss_sum = 0.0\n\nif __name__ == \"__main__\":\n\t\n\tlib_cnn.readWordVec()\n\tlib_cnn.readFromFile()\n\tlib_kg.init()\n\n\tnp.random.seed(0)\n\ttf.set_random_seed(0)\n\tconfig = Config()\n\n\tword_embeddings = np.zeros(config.num_words * config.word_size, dtype = np.float32)\n\tlib_cnn.getWordVec.argtypes = [ctypes.c_void_p]\n\tlib_cnn.getWordVec(word_embeddings.__array_interface__['data'][0])\n\tword_embeddings.resize((config.num_words,config.word_size))\n\n\tconfig.batch_size = lib_kg.getTripleTotal() / config.nbatches\n\tconfig.entityTotal = lib_kg.getEntityTotal()\n\tconfig.relationTotal = lib_kg.getRelationTotal()\n\n\twith tf.Graph().as_default():\n\t\tconf = tf.ConfigProto()\n\t\tsess = tf.Session(config=conf)\n\t\twith sess.as_default():\n\t\t\tinitializer = tf.contrib.layers.xavier_initializer()\n\t\t\twith tf.variable_scope(\"model\", reuse=None, initializer = initializer):\n\t\t\t\tm = Model(config = config)\n\t\t\t\n\t\t\tglobal_step_cnn = tf.Variable(0, name=\"global_step_cnn\", trainable=False)\n\n\t\t\toptimizer_cnn = tf.train.GradientDescentOptimizer(0.01)\n\t\t\tgrads_and_vars_cnn = optimizer_cnn.compute_gradients(m.loss_cnn)\n\t\t\ttrain_op_cnn = optimizer_cnn.apply_gradients(grads_and_vars_cnn, global_step = global_step_cnn)\n\n\t\t\tglobal_step_kg = tf.Variable(0, name=\"global_step_kg\", trainable=False)\n\t\t\toptimizer_kg = tf.train.GradientDescentOptimizer(0.001)\n\t\t\tgrads_and_vars_kg = optimizer_kg.compute_gradients(m.loss_kg)\n\t\t\ttrain_op_kg = optimizer_kg.apply_gradients(grads_and_vars_kg, global_step=global_step_kg)\n\n\t\t\tsess.run(tf.initialize_all_variables())\n\n\t\t\tdef outEmbedding(str1):\n\t\t\t\tword_embeddings, relation_embeddings, position_embeddings, relation_attention, attention, W, B, transfer_w, transfer_b, softmax_w, softmax_b = sess.run([m.word_embeddings, m.relation_embeddings, m.position_embeddings, m.relation_attention, m.attention, m.W, m.b, m.transfer_w, m.transfer_b, m.softmax_w, m.softmax_b])\n\t\t\t\tlog = open(\"log\"+str1+\".txt\", \"w\")\n\t\t\t\tlog.write(json.dumps(word_embeddings.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(relation_embeddings.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(position_embeddings.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(relation_attention.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(attention.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(W.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(B.tolist())+\"\\n\")\n\t\t\t\tlog.write(json.dumps(transfer_w.tolist())+\"\\n\")\n\t\t\t\tNAattention = sess.run(m.NAattention)\n\t\t\t\tlog.write(json.dumps(NAattention.tolist()) + \"\\n\")\n\t\t\t\tlog.close()\n\n\t\t\tx_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tp_t_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tp_h_batch = np.zeros((config.instanceTot,config.sequence_size), dtype = np.int32)\n\t\t\tr_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\ty_batch = np.zeros((1, config.num_classes), dtype = np.int32)\n\t\t\tr_n_batch = np.zeros((1, 1), dtype = np.float32)\n\t\t\th_batch = np.zeros((1, 1), dtype = np.int32)\n\t\t\tt_batch = np.zeros((1, 1), dtype = np.int32)\n\n\t\t\tx_batch_addr = x_batch.__array_interface__['data'][0]\n\t\t\tp_t_batch_addr = p_t_batch.__array_interface__['data'][0]\n\t\t\tp_h_batch_addr = p_h_batch.__array_interface__['data'][0]\n\t\t\ty_batch_addr = y_batch.__array_interface__['data'][0]\n\t\t\tr_batch_addr = r_batch.__array_interface__['data'][0]\n\t\t\tr_n_batch_addr = r_n_batch.__array_interface__['data'][0]\n\t\t\th_batch_addr = h_batch.__array_interface__['data'][0]\n\t\t\tt_batch_addr = t_batch.__array_interface__['data'][0]\n\t\t\tlib_cnn.batch_iter.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]\n\t\t\ttipTotal = lib_cnn.getTipTotal()\n\t\t\tloop = 0\n\n\t\t\tdef train_cnn(coord):\n\t\t\t\tdef train_step_cnn(x_batch, p_h_batch, p_t_batch, y_batch, r_batch, r_n_batch, h_batch, t_batch):\n\t\t\t\t\tglobal bags_sum, bags_hit, loss_sum, bags_hit_NA, bags_hit, sum_fNA, sum_NA\n\t\t\t\t\tfeed_dict = {\n\t\t\t\t\t\tm.input_x: x_batch,\n\t\t\t\t\t\tm.input_p_h: p_h_batch,\n\t\t\t\t\t\tm.input_p_t: p_t_batch,\n\t\t\t\t\t\tm.input_r: r_batch,\n\t\t\t\t\t\tm.input_r_n: r_n_batch,\n\t\t\t\t\t\tm.input_y: y_batch,\n\t\t\t\t\t\tm.input_h: h_batch,\n\t\t\t\t\t\tm.input_t: t_batch\n\t\t\t\t\t}\n\t\t\t\t\t_, step, loss, accuracy = sess.run(\n\t\t\t\t\t \t[train_op_cnn, global_step_cnn, m.loss_cnn, m.accuracy], feed_dict)\n\t\t\t\t \ttime_str = datetime.datetime.now().isoformat()\n\t\t\t\t \tloss_sum += loss\n\t\t\t\t \tbags_sum += 1\n\t\t\t\t \tif (r_batch[0]!=config.NA):\n\t\t\t\t \t\tsum_fNA += 1\n\t\t\t\t \t\tif accuracy > 0.5:\n\t\t\t\t \t\t\tbags_hit += 1.0\n\t\t\t\t \telse:\n\t\t\t\t \t\tsum_NA += 1\n\t\t\t\t \t\tif accuracy > 0.5:\n\t\t\t\t \t\t\tbags_hit_NA += 1.0\n\t\t\t\t \tif bags_sum % 1000 == 0:\n\t\t\t\t \t\tif (sum_NA == 0):\n\t\t\t\t \t\t\tsum_NA+=1\n\t\t\t\t \t\tif (sum_fNA == 0):\n\t\t\t\t \t\t\tsum_fNA+=1\n\t\t\t\t \t\tprint(\"{}: step {}, loss {:g}, acc {:g} acc {:g} {} {}\".format(time_str, step, loss_sum/bags_sum, bags_hit_NA/sum_NA, bags_hit/sum_fNA, sum_NA, sum_fNA))\n\n\n\t\t\t\tglobal loop\n\t\t\t\twhile not coord.should_stop():\n\t\t\t\t\tprint 'Looping ', loop\n\t\t\t\t\toutEmbedding(str(loop))\n\t\t\t\t\tfor i in range(tipTotal):\n\t\t\t\t\t\tlength = lib_cnn.batch_iter(x_batch_addr, p_h_batch_addr, p_t_batch_addr, y_batch_addr, r_batch_addr, r_n_batch_addr, h_batch_addr, t_batch_addr)\n\t\t\t\t\t\ttrain_step_cnn(x_batch[0:length,], p_h_batch[0:length,], p_t_batch[0:length,], y_batch, r_batch, r_n_batch, h_batch, t_batch)\n\t\t\t\t\tglobal bags_sum, bags_hit, loss_sum, bags_hit_NA, bags_hit, sum_fNA, sum_NA\n\t\t\t\t\tbags_sum = 0\n\t\t\t\t\tbags_hit = 0\n\t\t\t\t\tbags_hit_NA = 0\n\t\t\t\t\tloss_sum = 0\n\t\t\t\t\tsum_fNA = 0\n\t\t\t\t\tsum_NA = 0\t\n\t\t\t\t\tloop += 1\n\t\t\t\t\tif loop == config.trainTimes:\n\t\t\t\t\t\tcoord.request_stop()\n\n\t\t\tph = np.zeros(config.batch_size * 2, dtype = np.int32)\n\t\t\tpt = np.zeros(config.batch_size * 2, dtype = np.int32)\n\t\t\tpr = np.zeros(config.batch_size * 2, dtype = np.int32)\n\t\t\tnh = np.zeros(config.batch_size * 2, dtype = np.int32)\n\t\t\tnt = np.zeros(config.batch_size * 2, dtype = np.int32)\n\t\t\tnr = np.zeros(config.batch_size * 2, dtype = np.int32)\n\t\t\tph_addr = ph.__array_interface__['data'][0]\n\t\t\tpt_addr = pt.__array_interface__['data'][0]\n\t\t\tpr_addr = pr.__array_interface__['data'][0]\n\t\t\tnh_addr = nh.__array_interface__['data'][0]\n\t\t\tnt_addr = nt.__array_interface__['data'][0]\n\t\t\tnr_addr = nr.__array_interface__['data'][0]\n\t\t\tlib_kg.getBatch.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int]\t\t\n\t\t\ttimes_kg = 0\n\n\t\t\tdef train_kg(coord):\n\t\t\t\tdef train_step_kg(pos_h_batch, pos_t_batch, pos_r_batch, neg_h_batch, neg_t_batch, neg_r_batch):\n\t\t\t\t\tfeed_dict = {\n\t\t\t\t\t\tm.pos_h: pos_h_batch,\n\t\t\t\t\t\tm.pos_t: pos_t_batch,\n\t\t\t\t\t\tm.pos_r: pos_r_batch,\n\t\t\t\t\t\tm.neg_h: neg_h_batch,\n\t\t\t\t\t\tm.neg_t: neg_t_batch,\n\t\t\t\t\t\tm.neg_r: neg_r_batch\n\t\t\t\t\t}\n\t\t\t\t\t_, step, loss = sess.run(\n\t\t\t\t\t\t[train_op_kg, global_step_kg, m.loss_kg], feed_dict)\n\t\t\t\t\treturn loss\n\t\t\t\tglobal times_kg\n\t\t\t\twhile not coord.should_stop():\n\t\t\t\t\ttimes_kg += 1\n\t\t\t\t\tres = 0.0\n\t\t\t\t\tfor batch in range(config.nbatches):\n\t\t\t\t\t\tlib_kg.getBatch(ph_addr, pt_addr, pr_addr, nh_addr, nt_addr, nr_addr, config.batch_size)\n\t\t\t\t\t\tres += train_step_kg(ph, pt, pr, nh, nt, nr)\n\n\t\t\tcoord = tf.train.Coordinator()\n\t\t\tthreads = []\n\t\t\tthreads.append(threading.Thread(target=train_kg, args=(coord,)))\n\t\t\tthreads.append(threading.Thread(target=train_cnn, args=(coord,)))\n\t\t\tfor t in threads: t.start()\n\t\t\tcoord.join(threads)\n\n\n\n"
  }
]