{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# **U.S. Patent Phrase to Phrase Matching**","metadata":{}},{"cell_type":"markdown","source":"### In this notebook, I will show you how would you solve this patent phrase to phrase matching using Long Short Term Memory (LSTM). \n\n### Lets dive into it.","metadata":{}},{"cell_type":"markdown","source":"## **Provided informations:**\n> ## **anchor**  : The first phrase\n\n> ## **target**  : The second phrase\n\n> ## **context** : The CPC classification (version 2021.05), which indicates the subject within which the similarity is to be scored\n\n> ## **score**   : The similarity. This is sourced from a combination of one or more manual expert ratings.","metadata":{}},{"cell_type":"markdown","source":"# **Imports**","metadata":{}},{"cell_type":"code","source":"import os\nimport re\nimport numpy as np\nimport pandas as pd\nimport tensorflow as tf\n\n# import Tokenizer and pad_sequences\nfrom tensorflow.keras.preprocessing.text import Tokenizer\nfrom tensorflow.keras.preprocessing.sequence import pad_sequences\nfrom tensorflow.keras import Sequential,Model,Input\nfrom tensorflow.keras.layers import LSTM,Concatenate,Dense,Lambda,Add\nfrom tensorflow.keras import backend as K\ntf.config.experimental_run_functions_eagerly(True)\n","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:01.247286Z","iopub.execute_input":"2022-07-26T18:30:01.248037Z","iopub.status.idle":"2022-07-26T18:30:01.258893Z","shell.execute_reply.started":"2022-07-26T18:30:01.248003Z","shell.execute_reply":"2022-07-26T18:30:01.257657Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# **Load data**","metadata":{}},{"cell_type":"code","source":"train_data = pd.read_csv(\"../input/us-patent-phrase-to-phrase-matching/train.csv\")\ntest_data = pd.read_csv(\"../input/us-patent-phrase-to-phrase-matching/test.csv\")\nsample_data = pd.read_csv(\"../input/us-patent-phrase-to-phrase-matching/sample_submission.csv\")\nprint('TRAIN SIZE : {}\\nTEST SIZE : {}\\nSAMPLE DATA : {}'.format(train_data.shape,test_data.shape,sample_data.shape))","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:01.260696Z","iopub.execute_input":"2022-07-26T18:30:01.261053Z","iopub.status.idle":"2022-07-26T18:30:01.330612Z","shell.execute_reply.started":"2022-07-26T18:30:01.261017Z","shell.execute_reply":"2022-07-26T18:30:01.329506Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_data.head()","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:01.331837Z","iopub.execute_input":"2022-07-26T18:30:01.332557Z","iopub.status.idle":"2022-07-26T18:30:01.347344Z","shell.execute_reply.started":"2022-07-26T18:30:01.332520Z","shell.execute_reply":"2022-07-26T18:30:01.346238Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# **Metrics**","metadata":{}},{"cell_type":"markdown","source":"##  Pearson correlation coefficient ","metadata":{}},{"cell_type":"markdown","source":"> ![image.png](attachment:9885d8cf-67e9-438f-817b-0bab68103bc9.png)","metadata":{},"attachments":{"9885d8cf-67e9-438f-817b-0bab68103bc9.png":{"image/png":"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ARAAARAAARAAARAAAfUgwBGJROqhKbQEARAAARAAARAAARAAARAAARAAAUkEsBtZEhXkgQAIgAAIgAAIgAAIgAAIgAAIqA8BWLbq01fQFARAAARAAARAAARAAARAAARAQBIBWLaSqCAPBEAABEAABEAABEAABEAABEBAfQjAslWfvoKmIAACIAACIAACIAACIAACIAACkgjAspVEBXkgAAIgAAIgAAIgAAIgAAIgAALqQwCWrfr0FTQFARAAARAAARAAARAAARAAARCQRACWrSQqyAMBEAABEAABEAABEAABEAABEFAfArBs1aevoCkIgAAIgAAIgAAIgAAIgAAIgIAkArBsJVFBHgiAAAiAAAiAAAiAAAiAAAiAgPoQgGWrPn0FTUEABEAABEAABEAABEAABEAABCQRgGUriQryQAAEQAAEQAAEQAAEQAAEQAAE1IcALFv16StoCgIgAAIgAAIgAAIgAAIgAAIgIIkALFtJVJAHAiAAAiAAAiAAAiAAAiAAAiCgPgRg2apPX0FTEAABEAABEAABEAABEAABEAABSQRg2UqigjwQAAEQAAEQAAEQAAEQAAEQAAH1IQDLVn36CpqCAAiAAAiAAAiAAAiAAAiAAAhIIgDLVhIV5IEACIAACIAACIAACIAACIAACKgPAVi26tNX0BQEQAAEQAAEQAAEQAAEQAAEQEASAVi2kqggDwRAAARAAARAAARAAARAAARAlBqVnAAAAjpJREFUQH0IwLJVn76CpiAAAiAAAiAAAiAAAiAAAiAAApIIwLKVRAV5IAACIAACIAACIAACIAACIAAC6kMAlq369BU0BQEQAAEQAAEQAAEQAAEQAAEQkEQAlq0kKsgDARAAARAAARAAARAAARAAARBQHwKwbNWnr6ApCIAACIAACIAACIAACIAACICAJAKwbCVRQR4IgAAIgAAIgAAIgAAIgAAIgID6EIBlqz59BU1BAARAAARAAARAAARAAARAAAQkEYBlK4kK8kAABEAABEAABEAABEAABEAABNSHACxb9ekraAoCIAACIAACIAACIAACIAACICCJACxbSVSQBwIgAAIgAAIgAAIgAAIgAAIgoD4EYNmqT19BUxAAARAAARAAARAAARAAARAAAUkEYNlKooI8EAABEAABEAABEAABEAABEAAB9SEAy1Z9+gqaggAIgAAIgAAIgAAIgAAIgAAISCIAy1YSFeSBAAiAAAiAAAiAAAiAAAiAAAioDwFYturTV9AUBEAABEAABEAABEAABEAABEBAEgFYtpKoIA8EQAAEQAAEQAAEQAAEQAAEQEB9CMCyVZ++gqYgAAIgAAIgAAIgAAIgAAIgAAKSCMCylUQFeSAAAiAAAiAAAiAAAiAAAiAAAupDAJat+vQVNAUBEAABEAABEAABEAABEAABEJBEAJatJCrIAwEQAAEQAAEQAAEQAAEQAAEQUB8CsGzVp6+gKQiAAAiAAAiAAAiAAAiAAAiAgCQC/weOb/IoZb3PVAAAAABJRU5ErkJggg=="}}},{"cell_type":"code","source":"def pearson_r(true,pred):\n    return np.corrcoef(true,pred)[0][1]","metadata":{"_kg_hide-output":true,"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-07-26T18:30:01.349012Z","iopub.execute_input":"2022-07-26T18:30:01.349440Z","iopub.status.idle":"2022-07-26T18:30:01.355345Z","shell.execute_reply.started":"2022-07-26T18:30:01.349402Z","shell.execute_reply":"2022-07-26T18:30:01.354327Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Grab context data from CPC data","metadata":{}},{"cell_type":"code","source":"# bit of code stolen from Y.NAKAMA\ndef get_cpc_texts():\n    contexts = []\n    pattern = '[A-Z]\\d+'\n    for file_name in os.listdir('../input/cpc-data/CPCSchemeXML202105'):\n        result = re.findall(pattern, file_name)\n        if result:\n            contexts.append(result)\n    contexts = sorted(set(sum(contexts, [])))\n    results = {}\n    for cpc in ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'Y']:\n        with open(f'../input/cpc-data/CPCTitleList202202/cpc-section-{cpc}_20220201.txt') as f:\n            s = f.read()\n        pattern = f'{cpc}\\t\\t.+'\n        result = re.findall(pattern, s)\n        cpc_result = result[0].lstrip(pattern)\n        for context in [c for c in contexts if c[0] == cpc]:\n            pattern = f'{context}\\t\\t.+'\n            result = re.findall(pattern, s)\n            results[context] = cpc_result + \". \" + result[0].lstrip(pattern)\n    return results\n\ncpc_texts = get_cpc_texts()\ntrain_data['context_text'] = train_data['context'].map(cpc_texts)\ntest_data['context_text'] = test_data['context'].map(cpc_texts)","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:01.357064Z","iopub.execute_input":"2022-07-26T18:30:01.357706Z","iopub.status.idle":"2022-07-26T18:30:01.766886Z","shell.execute_reply.started":"2022-07-26T18:30:01.357668Z","shell.execute_reply":"2022-07-26T18:30:01.765886Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"max_len = train_data['anchor'].str.len().max()\ntokenizer = Tokenizer(oov_token=\"<OOV>\")","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:01.773802Z","iopub.execute_input":"2022-07-26T18:30:01.774463Z","iopub.status.idle":"2022-07-26T18:30:01.804377Z","shell.execute_reply.started":"2022-07-26T18:30:01.774423Z","shell.execute_reply":"2022-07-26T18:30:01.803530Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# **Preprocessing**","metadata":{}},{"cell_type":"code","source":"tokenizer.fit_on_texts(train_data['anchor'])\n\ndef preprocessing(data,max_len):\n    anchor_sequences = tokenizer.texts_to_sequences(data['anchor'])\n    anchor_pad = pad_sequences(anchor_sequences, padding='post',maxlen = max_len)\n    anchor_pad = anchor_pad[...,tf.newaxis].astype('float')\n    context_sequences = tokenizer.texts_to_sequences(data['context_text'])\n    context_pad = pad_sequences(context_sequences, padding='post',maxlen = max_len)\n    context_pad = context_pad[...,tf.newaxis].astype('float')\n    \n    target_sequences = tokenizer.texts_to_sequences(data['target'])\n    target_pad = pad_sequences(target_sequences, padding='post',maxlen = max_len)\n    target_pad = target_pad[...,tf.newaxis].astype('float')\n    \n#     anc = tf.reshape(anchor_pad,[1,anchor_pad.shape[0],anchor_pad.shape[1]])\n#     con = tf.reshape(context_pad,[1,context_pad.shape[0],context_pad.shape[1]])\n#     tar = tf.reshape(target_pad,[1,target_pad.shape[0],target_pad.shape[1]])\n    return anchor_pad,context_pad,target_pad\n\nanchor_pad,context_pad,target_pad = preprocessing(train_data,max_len = max_len)","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:01.805910Z","iopub.execute_input":"2022-07-26T18:30:01.806259Z","iopub.status.idle":"2022-07-26T18:30:03.652226Z","shell.execute_reply.started":"2022-07-26T18:30:01.806225Z","shell.execute_reply":"2022-07-26T18:30:03.651242Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"labels = train_data['score']","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:03.653703Z","iopub.execute_input":"2022-07-26T18:30:03.654307Z","iopub.status.idle":"2022-07-26T18:30:03.659540Z","shell.execute_reply.started":"2022-07-26T18:30:03.654266Z","shell.execute_reply":"2022-07-26T18:30:03.658497Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Model 1 ","metadata":{}},{"cell_type":"code","source":"def euclideanDistance(layers):\n    dist = tf.sqrt(tf.reduce_sum(tf.square(layers[0] - layers[1]), 1))\n    return dist\n\nanchor_input = Input(shape=(38,1),name = 'anchor')\ncontext_input = Input(shape=(38,1),name = 'context')\ntarget_input = Input(shape=(38,1),name = 'target')\n\nanchor_output =LSTM(50,name = 'anchor_output_layer')(anchor_input)\ncontext_output = LSTM(50,name = 'context_output_layer')(context_input)\nsum_layer = Add(name = 'add_layer')([anchor_output,context_output])\ntarget_output = LSTM(50,name = 'target_output_layer')(target_input)\noutput = Lambda(euclideanDistance, name=\"output_layer\")([target_output,sum_layer])\n\nmodel = Model(inputs=[anchor_input, context_input,target_input], outputs=output)","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:03.661388Z","iopub.execute_input":"2022-07-26T18:30:03.662151Z","iopub.status.idle":"2022-07-26T18:30:04.242798Z","shell.execute_reply.started":"2022-07-26T18:30:03.662114Z","shell.execute_reply":"2022-07-26T18:30:04.241755Z"},"_kg_hide-output":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tf.keras.utils.plot_model(model)","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:04.244400Z","iopub.execute_input":"2022-07-26T18:30:04.244734Z","iopub.status.idle":"2022-07-26T18:30:04.364506Z","shell.execute_reply.started":"2022-07-26T18:30:04.244699Z","shell.execute_reply":"2022-07-26T18:30:04.363418Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"inputs = [anchor_pad,context_pad,target_pad]\nmodel.compile(optimizer=\"adam\", loss='mean_squared_error',metrics = pearson_r,run_eagerly=True)","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:04.366435Z","iopub.execute_input":"2022-07-26T18:30:04.367462Z","iopub.status.idle":"2022-07-26T18:30:04.380236Z","shell.execute_reply.started":"2022-07-26T18:30:04.367417Z","shell.execute_reply":"2022-07-26T18:30:04.379320Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"history =  model.fit(x=inputs,y =np.array(labels), epochs=10,verbose = 0,batch_size  =128)","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:04.381576Z","iopub.execute_input":"2022-07-26T18:30:04.382152Z","iopub.status.idle":"2022-07-26T18:30:13.933503Z","shell.execute_reply.started":"2022-07-26T18:30:04.382117Z","shell.execute_reply":"2022-07-26T18:30:13.932402Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_data.head()","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:13.934974Z","iopub.execute_input":"2022-07-26T18:30:13.935990Z","iopub.status.idle":"2022-07-26T18:30:13.951321Z","shell.execute_reply.started":"2022-07-26T18:30:13.935955Z","shell.execute_reply":"2022-07-26T18:30:13.950232Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_anchor_pad,test_context_pad,test_target_pad = preprocessing(test_data,max_len = max_len)","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:13.952726Z","iopub.execute_input":"2022-07-26T18:30:13.953442Z","iopub.status.idle":"2022-07-26T18:30:13.963195Z","shell.execute_reply.started":"2022-07-26T18:30:13.953406Z","shell.execute_reply":"2022-07-26T18:30:13.962317Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"testing = [test_anchor_pad,test_context_pad,test_target_pad]\npreds = model.predict(testing,verbose = 1)","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:13.964683Z","iopub.execute_input":"2022-07-26T18:30:13.965098Z","iopub.status.idle":"2022-07-26T18:30:14.074550Z","shell.execute_reply.started":"2022-07-26T18:30:13.965062Z","shell.execute_reply":"2022-07-26T18:30:14.073543Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"preds","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:14.147911Z","iopub.execute_input":"2022-07-26T18:30:14.148332Z","iopub.status.idle":"2022-07-26T18:30:14.162915Z","shell.execute_reply.started":"2022-07-26T18:30:14.148298Z","shell.execute_reply":"2022-07-26T18:30:14.161824Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission = pd.read_csv(\"/kaggle/input/us-patent-phrase-to-phrase-matching/sample_submission.csv\")\nprint(submission.shape)\nsubmission.head()","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:32:37.072042Z","iopub.execute_input":"2022-07-26T18:32:37.072765Z","iopub.status.idle":"2022-07-26T18:32:37.091783Z","shell.execute_reply.started":"2022-07-26T18:32:37.072718Z","shell.execute_reply":"2022-07-26T18:32:37.089871Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission = pd.read_csv(\"/kaggle/input/us-patent-phrase-to-phrase-matching/sample_submission.csv\")\nsubmission['score'] = preds\nsubmission.to_csv('submission.csv',index=False)\nsubmission.head()","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:33:44.752219Z","iopub.execute_input":"2022-07-26T18:33:44.752917Z","iopub.status.idle":"2022-07-26T18:33:44.771358Z","shell.execute_reply.started":"2022-07-26T18:33:44.752881Z","shell.execute_reply":"2022-07-26T18:33:44.770400Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Model 2","metadata":{}},{"cell_type":"code","source":"def euclideanDistance(layers):\n    dist = tf.sqrt(tf.reduce_sum(tf.square(layers[0] - layers[1]), 1))\n    return dist\n\n\nanchor_input = Input(shape=(38,1),name = 'anchor')\ncontext_input = Input(shape=(38,1),name = 'context')\ntarget_input = Input(shape=(38,1),name = 'target')\nanchor_output =LSTM(50)(anchor_input)\ncontext_output = LSTM(50)(context_input)\nconcatted =Concatenate()([anchor_output,context_output])\ndense1 = Dense(50,activation = 'sigmoid')(concatted)\ntarget_output = LSTM(50)(target_input)\ndense2 = Dense(50,activation = 'sigmoid')(target_output)\noutput = Lambda(euclideanDistance, name=\"output_layer\")([dense1,dense2])\n\nmodel1 = Model(inputs=[anchor_input, context_input,target_input], outputs=output)\nmodel1.compile(optimizer=\"adam\", loss='mean_squared_error',metrics = pearson_r)","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:14.082833Z","iopub.execute_input":"2022-07-26T18:30:14.083190Z","iopub.status.idle":"2022-07-26T18:30:14.096196Z","shell.execute_reply.started":"2022-07-26T18:30:14.083155Z","shell.execute_reply":"2022-07-26T18:30:14.094755Z"},"_kg_hide-output":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tf.keras.utils.plot_model(model1)","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:14.098040Z","iopub.execute_input":"2022-07-26T18:30:14.098421Z","iopub.status.idle":"2022-07-26T18:30:14.106296Z","shell.execute_reply.started":"2022-07-26T18:30:14.098386Z","shell.execute_reply":"2022-07-26T18:30:14.105415Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"history =  model1.fit(x=inputs,y =np.array(labels), epochs=10,verbose = 1,batch_size = 128)","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:14.108082Z","iopub.execute_input":"2022-07-26T18:30:14.108507Z","iopub.status.idle":"2022-07-26T18:30:14.115350Z","shell.execute_reply.started":"2022-07-26T18:30:14.108471Z","shell.execute_reply":"2022-07-26T18:30:14.114414Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_anchor_pad,test_context_pad,test_target_pad = preprocessing(test_data,max_len = max_len)","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:14.116671Z","iopub.execute_input":"2022-07-26T18:30:14.117293Z","iopub.status.idle":"2022-07-26T18:30:14.125291Z","shell.execute_reply.started":"2022-07-26T18:30:14.117158Z","shell.execute_reply":"2022-07-26T18:30:14.124316Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"testing = [test_anchor_pad,test_context_pad,test_target_pad]\npreds = model1.predict(testing,verbose = 1)","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:14.126824Z","iopub.execute_input":"2022-07-26T18:30:14.127247Z","iopub.status.idle":"2022-07-26T18:30:14.136343Z","shell.execute_reply.started":"2022-07-26T18:30:14.127212Z","shell.execute_reply":"2022-07-26T18:30:14.135211Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission = pd.read_csv(\"/kaggle/input/us-patent-phrase-to-phrase-matching/sample_submission.csv\")\nsubmission['score'] = preds\nsubmission['score'] = submission.score.apply(lambda x: 0 if x < 0 else x)\nsubmission['score'] = submission.score.apply(lambda x: 1 if x > 1 else x)\nsubmission.to_csv('submission.csv',index=False)\nsubmission.head()","metadata":{"execution":{"iopub.status.busy":"2022-07-26T18:30:14.139585Z","iopub.execute_input":"2022-07-26T18:30:14.139855Z","iopub.status.idle":"2022-07-26T18:30:14.146254Z","shell.execute_reply.started":"2022-07-26T18:30:14.139830Z","shell.execute_reply":"2022-07-26T18:30:14.145396Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}