diff --git a/Harmony_example_walkthrough.ipynb b/Harmony_example_walkthrough.ipynb index 8d36feb..9b59b29 100644 --- a/Harmony_example_walkthrough.ipynb +++ b/Harmony_example_walkthrough.ipynb @@ -44,7 +44,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -77,7 +77,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -110,7 +110,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -434,7 +434,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 13, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -450,7 +450,7 @@ "'1.0.3'" ] }, - "execution_count": 4, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -461,7 +461,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 14, "metadata": { "id": "s36pur0v6InB" }, @@ -476,7 +476,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 15, "metadata": { "id": "mujvuUjrxV1G" }, @@ -489,7 +489,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 16, "metadata": { "id": "FOHRcHrl6K7I" }, @@ -498,7 +498,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "c:\\Users\\alexn\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\sklearn\\cluster\\_affinity_propagation.py:140: ConvergenceWarning: Affinity propagation did not converge, this model may return degenerate cluster centers and labels.\n", + "c:\\Users\\alexn\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site-packages\\sklearn\\cluster\\_affinity_propagation.py:140: ConvergenceWarning: Affinity propagation did not converge, this model may return degenerate cluster centers and labels.\n", " warnings.warn(\n" ] } @@ -507,7 +507,8 @@ "match_response = harmony.match_instruments(instruments)\n", "\n", "questions = match_response.questions\n", - "similarity = match_response.similarity_with_polarity" + "similarity = match_response.similarity_with_polarity\n", + "response_options_similarity = match_response.response_options_similarity" ] }, { @@ -521,7 +522,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 17, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -582,7 +583,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 18, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -594,183 +595,183 @@ { "data": { "text/plain": [ - "array([[ 1. , 0.31365007, 0.34323061, -0.26082837, 0.42788809,\n", - " 0.34054835, -0.30748924, -0.18449387, -0.25914565, 0.31232797,\n", - " 0.28057172, -0.28101036, 0.48577067, 0.27214033, -0.28000387,\n", - " -0.19890615, 0.28694497, 0.31094241, 0.37545976, 0.28829135,\n", - " 0.33788022, 0.44290318, 0.43870805, -0.26580207, 0.38783192,\n", - " 0.5300114 , 0.2584586 , 0.34834393, 0.47597813],\n", - " [ 0.31365007, 1. , 0.32531255, -0.38449676, -0.393828 ,\n", - " -0.43607546, -0.44434251, -0.237018 , -0.46996554, -0.36608211,\n", - " -0.34493566, -0.29561761, 0.36299873, 0.38550646, -0.20762307,\n", - " -0.30174487, -0.41118515, -0.42717943, -0.33941364, 0.37951913,\n", - " -0.31706221, 0.11435859, -0.11078683, -0.19496467, -0.25027669,\n", - " -0.14382349, -0.24803379, -0.29994102, -0.12476515],\n", - " [ 0.34323061, 0.32531255, 1. , -0.45727837, 0.3600378 ,\n", - " 0.44618628, -0.4240063 , -0.30709129, -0.40909884, 0.34075563,\n", - " -0.22367299, -0.39270992, -0.22370189, 0.32984177, -0.22401788,\n", - " -0.27902946, -0.40553114, 0.39803216, 0.33332513, 0.50227257,\n", - " -0.24738981, 0.36895734, -0.22465808, -0.30274121, 0.29955807,\n", - " -0.24200872, -0.31366694, -0.26206915, 0.30112576],\n", - " [-0.26082837, -0.38449676, -0.45727837, 1. , -0.4569577 ,\n", - " -0.4227796 , 0.38703217, 0.30366159, -0.52268363, -0.39910971,\n", - " -0.23776194, 0.51633236, -0.34108029, -0.37672046, -0.36340262,\n", - " 0.43201054, -0.35038494, -0.41867626, -0.48912951, -0.33474511,\n", - " -0.23707138, -0.11974317, -0.18702063, -0.08848843, -0.20039015,\n", - " -0.184017 , -0.29761399, -0.21455041, -0.15025354],\n", - " [ 0.42788809, -0.393828 , 0.3600378 , -0.4569577 , 1. ,\n", - " 0.46612981, 0.42157176, -0.38353862, 0.43456733, 0.48017412,\n", - " 0.41496813, -0.42821847, 0.39957157, 0.31182424, 0.18711664,\n", - " -0.33026819, 0.38767804, 0.40536655, 0.3504264 , 0.55361802,\n", - " 0.32335711, 0.35847937, 0.39130567, -0.28819368, 0.38578536,\n", - " 0.23091102, 0.31127448, 0.32661315, 0.40517135],\n", - " [ 0.34054835, -0.43607546, 0.44618628, -0.4227796 , 0.46612981,\n", - " 1. , 0.3766691 , 0.37785867, 0.61059278, 0.623488 ,\n", - " 0.38905809, -0.50561315, 0.30229994, 0.63457709, 0.14138985,\n", - " -0.30534825, 0.72113606, 0.84969057, 0.48665366, 0.40313186,\n", - " 0.59024598, 0.19599923, 0.37991677, 0.34379201, 0.56529061,\n", - " 0.3365582 , 0.58247692, 0.57359589, 0.33994815],\n", - " [-0.30748924, -0.44434251, -0.4240063 , 0.38703217, 0.42157176,\n", - " 0.3766691 , 1. , 0.26738393, -0.44457974, -0.28049177,\n", - " 0.17394518, 0.2679215 , -0.20775765, -0.34379539, -0.06809768,\n", - " 0.30817036, 0.32916061, 0.31908601, 0.23190952, -0.40522165,\n", - " -0.23172467, -0.19044654, 0.16490006, -0.1984548 , -0.24296777,\n", - " -0.21705451, -0.19064054, -0.2244991 , -0.20121201],\n", - " [-0.18449387, -0.237018 , -0.30709129, 0.30366159, -0.38353862,\n", - " 0.37785867, 0.26738393, 1. , -0.44976475, 0.35844382,\n", - " -0.23884817, 0.512804 , -0.16569631, -0.27657549, -0.15691071,\n", - " 0.45722311, 0.17416226, 0.31848781, -0.13633844, -0.42640812,\n", - " 0.3281538 , -0.15540062, 0.26603864, 0.2193717 , -0.15742557,\n", - " 0.18717633, 0.32212822, 0.2892295 , 0.2618935 ],\n", - " [-0.25914565, -0.46996554, -0.40909884, -0.52268363, 0.43456733,\n", - " 0.61059278, -0.44457974, -0.44976475, 1. , 0.41072865,\n", - " 0.29550896, -0.49753083, 0.29700784, 0.5135982 , 0.25589221,\n", - " -0.55140644, 0.5398524 , 0.61248379, 0.56026084, 0.35783944,\n", - " 0.19603639, -0.15471616, 0.19667968, -0.22919046, 0.28453989,\n", - " 0.15559267, 0.4384632 , 0.17708491, -0.22263676],\n", - " [ 0.31232797, -0.36608211, 0.34075563, -0.39910971, 0.48017412,\n", - " 0.623488 , -0.28049177, 0.35844382, 0.41072865, 1. ,\n", - " 0.48508783, -0.45344676, 0.32909686, 0.50117061, 0.25206481,\n", - " -0.27815296, 0.55329166, 0.63532122, 0.49855952, 0.50229375,\n", - " 0.50900464, 0.39954054, 0.48933755, -0.20231457, 0.40028247,\n", - " 0.1903936 , 0.8114454 , 0.52537459, 0.44275866],\n", - " [ 0.28057172, -0.34493566, -0.22367299, -0.23776194, 0.41496813,\n", - " 0.38905809, 0.17394518, -0.23884817, 0.29550896, 0.48508783,\n", - " 1. , -0.30506055, 0.2776318 , 0.34661317, 0.1533362 ,\n", - " -0.26047368, 0.40100563, 0.36290108, 0.22699767, 0.39342808,\n", - " 0.32684849, -0.17940379, 0.25595517, -0.36469058, 0.39686928,\n", - " 0.26681691, 0.35875136, 0.29157867, -0.22916289],\n", - " [-0.28101036, -0.29561761, -0.39270992, 0.51633236, -0.42821847,\n", - " -0.50561315, 0.2679215 , 0.512804 , -0.49753083, -0.45344676,\n", - " -0.30506055, 1. , -0.31097607, -0.34956918, -0.29933197,\n", - " 0.72797882, -0.5035294 , -0.56461122, -0.37712273, -0.46562899,\n", - " -0.34389001, -0.13187433, -0.22374916, 0.25037219, -0.32636529,\n", - " -0.31785723, -0.37945635, -0.31133888, -0.18273999],\n", - " [ 0.48577067, 0.36299873, -0.22370189, -0.34108029, 0.39957157,\n", - " 0.30229994, -0.20775765, -0.16569631, 0.29700784, 0.32909686,\n", - " 0.2776318 , -0.31097607, 1. , 0.37878666, 0.41018302,\n", - " -0.187819 , 0.29321227, 0.36460291, 0.39526681, 0.36901566,\n", - " 0.21580742, 0.07026056, 0.11393018, 0.14035783, 0.19217956,\n", - " 0.28559484, 0.16641534, 0.16334556, -0.12259965],\n", - " [ 0.27214033, 0.38550646, 0.32984177, -0.37672046, 0.31182424,\n", - " 0.63457709, -0.34379539, -0.27657549, 0.5135982 , 0.50117061,\n", - " 0.34661317, -0.34956918, 0.37878666, 1. , 0.30862479,\n", - " -0.30521096, 0.48134513, 0.66418496, 0.44118954, 0.41113259,\n", - " 0.40972162, 0.04911552, 0.17100075, 0.25634494, 0.41587135,\n", - " 0.3145226 , 0.41761609, 0.35414574, 0.12544572],\n", - " [-0.28000387, -0.20762307, -0.22401788, -0.36340262, 0.18711664,\n", - " 0.14138985, -0.06809768, -0.15691071, 0.25589221, 0.25206481,\n", - " 0.1533362 , -0.29933197, 0.41018302, 0.30862479, 1. ,\n", - " -0.25251202, 0.16722663, 0.23000678, 0.45887037, 0.19634961,\n", - " 0.09936222, -0.20750686, 0.11516747, -0.14587801, 0.13228056,\n", - " 0.22911295, 0.23759169, 0.06459388, -0.16103359],\n", - " [-0.19890615, -0.30174487, -0.27902946, 0.43201054, -0.33026819,\n", - " -0.30534825, 0.30817036, 0.45722311, -0.55140644, -0.27815296,\n", - " -0.26047368, 0.72797882, -0.187819 , -0.30521096, -0.25251202,\n", - " 1. , -0.28640547, -0.3298168 , -0.27587004, -0.32003302,\n", - " -0.17854408, -0.04999809, -0.10206754, 0.3029987 , -0.20539614,\n", - " -0.19172719, -0.22622935, -0.152549 , 0.12608318],\n", - " [ 0.28694497, -0.41118515, -0.40553114, -0.35038494, 0.38767804,\n", - " 0.72113606, 0.32916061, 0.17416226, 0.5398524 , 0.55329166,\n", - " 0.40100563, -0.5035294 , 0.29321227, 0.48134513, 0.16722663,\n", - " -0.28640547, 1. , 0.76820665, 0.4884992 , 0.38953476,\n", - " 0.36905342, -0.17136337, 0.3342196 , 0.27911946, 0.46396524,\n", - " 0.22439439, 0.54269409, 0.37736881, 0.25686844],\n", - " [ 0.31094241, -0.42717943, 0.39803216, -0.41867626, 0.40536655,\n", - " 0.84969057, 0.31908601, 0.31848781, 0.61248379, 0.63532122,\n", - " 0.36290108, -0.56461122, 0.36460291, 0.66418496, 0.23000678,\n", - " -0.3298168 , 0.76820665, 1. , 0.56325474, 0.42075442,\n", - " 0.49493348, 0.11707945, 0.32410956, 0.25369592, 0.50664523,\n", - " 0.31677533, 0.62125051, 0.44607269, 0.23771373],\n", - " [ 0.37545976, -0.33941364, 0.33332513, -0.48912951, 0.3504264 ,\n", - " 0.48665366, 0.23190952, -0.13633844, 0.56026084, 0.49855952,\n", - " 0.22699767, -0.37712273, 0.39526681, 0.44118954, 0.45887037,\n", - " -0.27587004, 0.4884992 , 0.56325474, 1. , 0.31459643,\n", - " 0.20998919, 0.14102602, 0.26335406, -0.00327037, 0.24867786,\n", - " 0.24362494, 0.41831109, 0.18925067, 0.15339248],\n", - " [ 0.28829135, 0.37951913, 0.50227257, -0.33474511, 0.55361802,\n", - " 0.40313186, -0.40522165, -0.42640812, 0.35783944, 0.50229375,\n", - " 0.39342808, -0.46562899, 0.36901566, 0.41113259, 0.19634961,\n", - " -0.32003302, 0.38953476, 0.42075442, 0.31459643, 1. ,\n", - " -0.27130781, 0.33279806, -0.20272215, -0.30629042, 0.38392489,\n", - " -0.29537468, 0.3446533 , -0.24045797, -0.24517568],\n", - " [ 0.33788022, -0.31706221, -0.24738981, -0.23707138, 0.32335711,\n", - " 0.59024598, -0.23172467, 0.3281538 , 0.19603639, 0.50900464,\n", - " 0.32684849, -0.34389001, 0.21580742, 0.40972162, 0.09936222,\n", - " -0.17854408, 0.36905342, 0.49493348, 0.20998919, -0.27130781,\n", - " 1. , 0.42197264, 0.52886247, 0.45592589, 0.61878445,\n", - " 0.6217209 , 0.52241409, 0.92610976, 0.56801211],\n", - " [ 0.44290318, 0.11435859, 0.36895734, -0.11974317, 0.35847937,\n", - " 0.19599923, -0.19044654, -0.15540062, -0.15471616, 0.39954054,\n", - " -0.17940379, -0.13187433, 0.07026056, 0.04911552, -0.20750686,\n", - " -0.04999809, -0.17136337, 0.11707945, 0.14102602, 0.33279806,\n", - " 0.42197264, 1. , 0.62181951, -0.45255878, -0.498226 ,\n", - " -0.42426886, -0.41434009, 0.54056906, 0.8807538 ],\n", - " [ 0.43870805, -0.11078683, -0.22465808, -0.18702063, 0.39130567,\n", - " 0.37991677, 0.16490006, 0.26603864, 0.19667968, 0.48933755,\n", - " 0.25595517, -0.22374916, 0.11393018, 0.17100075, 0.11516747,\n", - " -0.10206754, 0.3342196 , 0.32410956, 0.26335406, -0.20272215,\n", - " 0.52886247, 0.62181951, 1. , 0.38445383, 0.54563726,\n", - " 0.40793595, 0.57269343, 0.63231111, 0.71673503],\n", - " [-0.26580207, -0.19496467, -0.30274121, -0.08848843, -0.28819368,\n", - " 0.34379201, -0.1984548 , 0.2193717 , -0.22919046, -0.20231457,\n", - " -0.36469058, 0.25037219, 0.14035783, 0.25634494, -0.14587801,\n", - " 0.3029987 , 0.27911946, 0.25369592, -0.00327037, -0.30629042,\n", - " 0.45592589, -0.45255878, 0.38445383, 1. , 0.59924512,\n", - " -0.48413559, -0.29542486, 0.51433259, 0.51573891],\n", - " [ 0.38783192, -0.25027669, 0.29955807, -0.20039015, 0.38578536,\n", - " 0.56529061, -0.24296777, -0.15742557, 0.28453989, 0.40028247,\n", - " 0.39686928, -0.32636529, 0.19217956, 0.41587135, 0.13228056,\n", - " -0.20539614, 0.46396524, 0.50664523, 0.24867786, 0.38392489,\n", - " 0.61878445, -0.498226 , 0.54563726, 0.59924512, 1. ,\n", - " 0.56679728, 0.45918206, 0.68737891, -0.55792381],\n", - " [ 0.5300114 , -0.14382349, -0.24200872, -0.184017 , 0.23091102,\n", - " 0.3365582 , -0.21705451, 0.18717633, 0.15559267, 0.1903936 ,\n", - " 0.26681691, -0.31785723, 0.28559484, 0.3145226 , 0.22911295,\n", - " -0.19172719, 0.22439439, 0.31677533, 0.24362494, -0.29537468,\n", - " 0.6217209 , -0.42426886, 0.40793595, -0.48413559, 0.56679728,\n", - " 1. , 0.26171551, 0.55825638, -0.47733383],\n", - " [ 0.2584586 , -0.24803379, -0.31366694, -0.29761399, 0.31127448,\n", - " 0.58247692, -0.19064054, 0.32212822, 0.4384632 , 0.8114454 ,\n", - " 0.35875136, -0.37945635, 0.16641534, 0.41761609, 0.23759169,\n", - " -0.22622935, 0.54269409, 0.62125051, 0.41831109, 0.3446533 ,\n", - " 0.52241409, -0.41434009, 0.57269343, -0.29542486, 0.45918206,\n", - " 0.26171551, 1. , 0.56236219, -0.48545732],\n", - " [ 0.34834393, -0.29994102, -0.26206915, -0.21455041, 0.32661315,\n", - " 0.57359589, -0.2244991 , 0.2892295 , 0.17708491, 0.52537459,\n", - " 0.29157867, -0.31133888, 0.16334556, 0.35414574, 0.06459388,\n", - " -0.152549 , 0.37736881, 0.44607269, 0.18925067, -0.24045797,\n", - " 0.92610976, 0.54056906, 0.63231111, 0.51433259, 0.68737891,\n", - " 0.55825638, 0.56236219, 1. , 0.68338131],\n", - " [ 0.47597813, -0.12476515, 0.30112576, -0.15025354, 0.40517135,\n", - " 0.33994815, -0.20121201, 0.2618935 , -0.22263676, 0.44275866,\n", - " -0.22916289, -0.18273999, -0.12259965, 0.12544572, -0.16103359,\n", - " 0.12608318, 0.25686844, 0.23771373, 0.15339248, -0.24517568,\n", - " 0.56801211, 0.8807538 , 0.71673503, 0.51573891, -0.55792381,\n", - " -0.47733383, -0.48545732, 0.68338131, 1. ]])" + "array([[ 1. , 0.3136501 , 0.3432307 , -0.26082839, 0.42788808,\n", + " 0.34054828, -0.30748932, -0.18449382, -0.25914561, 0.312328 ,\n", + " 0.28057172, -0.2810104 , 0.4857707 , 0.27214033, -0.2800039 ,\n", + " -0.19890615, 0.28694491, 0.31094231, 0.37545971, 0.28829143,\n", + " 0.33788021, 0.44290323, 0.43870799, -0.26580207, 0.38783197,\n", + " 0.53001137, 0.25845858, 0.34834391, 0.47597807],\n", + " [ 0.3136501 , 1. , 0.3253128 , -0.38449691, -0.39382809,\n", + " -0.43607549, -0.44434265, -0.23701808, -0.46996565, -0.3660822 ,\n", + " -0.34493573, -0.29561764, 0.36299873, 0.38550647, -0.20762314,\n", + " -0.30174492, -0.41118515, -0.42717948, -0.33941368, 0.3795192 ,\n", + " -0.31706221, 0.11435867, -0.11078682, -0.19496466, -0.25027668,\n", + " -0.14382351, -0.24803394, -0.29994106, -0.12476516],\n", + " [ 0.3432307 , 0.3253128 , 1. , -0.45727843, 0.36003788,\n", + " 0.44618647, -0.42400639, -0.30709133, -0.409099 , 0.34075582,\n", + " -0.22367308, -0.39271002, -0.22370193, 0.32984189, -0.22401793,\n", + " -0.27902952, -0.40553124, 0.39803232, 0.33332526, 0.50227274,\n", + " -0.24738988, 0.36895737, -0.22465808, -0.30274132, 0.29955817,\n", + " -0.24200861, -0.31366712, -0.26206925, 0.30112573],\n", + " [-0.26082839, -0.38449691, -0.45727843, 1. , -0.4569577 ,\n", + " -0.42277964, 0.38703231, 0.30366168, -0.52268368, -0.39910976,\n", + " -0.23776195, 0.51633244, -0.34108037, -0.37672051, -0.36340257,\n", + " 0.43201059, -0.35038491, -0.41867628, -0.48912953, -0.33474512,\n", + " -0.23707136, -0.11974314, -0.18702054, -0.08848843, -0.2003901 ,\n", + " -0.18401696, -0.29761406, -0.21455045, -0.15025349],\n", + " [ 0.42788808, -0.39382809, 0.36003788, -0.4569577 , 1. ,\n", + " 0.46612982, 0.42157184, -0.38353858, 0.43456744, 0.48017415,\n", + " 0.41496811, -0.42821848, 0.39957153, 0.31182424, 0.18711676,\n", + " -0.3302681 , 0.38767804, 0.40536665, 0.35042643, 0.55361807,\n", + " 0.32335717, 0.35847932, 0.39130564, -0.28819368, 0.38578531,\n", + " 0.23091104, 0.31127458, 0.32661315, 0.4051713 ],\n", + " [ 0.34054828, -0.43607549, 0.44618647, -0.42277964, 0.46612982,\n", + " 1. , 0.37666925, 0.37785869, 0.61059277, 0.62348791,\n", + " 0.38905802, -0.50561312, 0.30229987, 0.63457704, 0.14138982,\n", + " -0.30534824, 0.72113593, 0.84969048, 0.48665365, 0.40313185,\n", + " 0.59024591, 0.1959993 , 0.37991665, 0.34379196, 0.56529064,\n", + " 0.33655816, 0.58247677, 0.57359593, 0.33994808],\n", + " [-0.30748932, -0.44434265, -0.42400639, 0.38703231, 0.42157184,\n", + " 0.37666925, 1. , 0.26738396, -0.4445798 , -0.2804919 ,\n", + " 0.17394521, 0.26792154, -0.20775774, -0.34379545, -0.06809762,\n", + " 0.30817031, 0.32916072, 0.31908619, 0.23190969, -0.40522169,\n", + " -0.23172468, -0.19044647, 0.16489995, -0.1984548 , -0.2429678 ,\n", + " -0.21705443, -0.1906407 , -0.22449912, -0.20121198],\n", + " [-0.18449382, -0.23701808, -0.30709133, 0.30366168, -0.38353858,\n", + " 0.37785869, 0.26738396, 1. , -0.44976479, 0.35844388,\n", + " -0.23884817, 0.51280409, -0.16569632, -0.27657548, -0.1569107 ,\n", + " 0.45722325, 0.17416226, 0.31848785, -0.13633847, -0.4264082 ,\n", + " 0.3281538 , -0.15540053, 0.26603855, 0.21937171, -0.15742548,\n", + " 0.18717636, 0.32212825, 0.28922957, 0.26189338],\n", + " [-0.25914561, -0.46996565, -0.409099 , -0.52268368, 0.43456744,\n", + " 0.61059277, -0.4445798 , -0.44976479, 1. , 0.41072868,\n", + " 0.29550895, -0.49753083, 0.29700788, 0.51359823, 0.25589222,\n", + " -0.55140637, 0.53985236, 0.61248382, 0.56026085, 0.35783956,\n", + " 0.19603634, -0.15471618, 0.19667959, -0.22919049, 0.28453987,\n", + " 0.15559262, 0.43846318, 0.17708495, -0.22263674],\n", + " [ 0.312328 , -0.3660822 , 0.34075582, -0.39910976, 0.48017415,\n", + " 0.62348791, -0.2804919 , 0.35844388, 0.41072868, 1. ,\n", + " 0.48508782, -0.4534468 , 0.32909683, 0.50117065, 0.25206487,\n", + " -0.27815293, 0.55329169, 0.63532127, 0.49855956, 0.50229375,\n", + " 0.50900472, 0.39954066, 0.48933751, -0.20231459, 0.40028248,\n", + " 0.19039362, 0.81144534, 0.52537476, 0.44275865],\n", + " [ 0.28057172, -0.34493573, -0.22367308, -0.23776195, 0.41496811,\n", + " 0.38905802, 0.17394521, -0.23884817, 0.29550895, 0.48508782,\n", + " 1. , -0.30506052, 0.27763183, 0.34661317, 0.15333624,\n", + " -0.26047364, 0.40100565, 0.36290108, 0.22699758, 0.39342811,\n", + " 0.32684845, -0.17940385, 0.25595509, -0.36469054, 0.39686928,\n", + " 0.26681693, 0.35875134, 0.29157866, -0.22916283],\n", + " [-0.2810104 , -0.29561764, -0.39271002, 0.51633244, -0.42821848,\n", + " -0.50561312, 0.26792154, 0.51280409, -0.49753083, -0.4534468 ,\n", + " -0.30506052, 1. , -0.31097614, -0.34956913, -0.29933193,\n", + " 0.72797878, -0.50352936, -0.56461116, -0.37712279, -0.46562903,\n", + " -0.34388996, -0.13187437, -0.22374913, 0.25037226, -0.32636526,\n", + " -0.31785725, -0.37945634, -0.31133886, -0.18273995],\n", + " [ 0.4857707 , 0.36299873, -0.22370193, -0.34108037, 0.39957153,\n", + " 0.30229987, -0.20775774, -0.16569632, 0.29700788, 0.32909683,\n", + " 0.27763183, -0.31097614, 1. , 0.37878658, 0.410183 ,\n", + " -0.18781902, 0.29321216, 0.36460289, 0.39526675, 0.36901566,\n", + " 0.21580743, 0.07026058, 0.11393014, 0.14035779, 0.19217956,\n", + " 0.28559488, 0.16641529, 0.16334556, -0.12259956],\n", + " [ 0.27214033, 0.38550647, 0.32984189, -0.37672051, 0.31182424,\n", + " 0.63457704, -0.34379545, -0.27657548, 0.51359823, 0.50117065,\n", + " 0.34661317, -0.34956913, 0.37878658, 1. , 0.30862481,\n", + " -0.30521093, 0.48134505, 0.66418496, 0.44118962, 0.41113254,\n", + " 0.40972155, 0.04911559, 0.17100068, 0.2563449 , 0.41587131,\n", + " 0.31452256, 0.41761598, 0.35414578, 0.1254457 ],\n", + " [-0.2800039 , -0.20762314, -0.22401793, -0.36340257, 0.18711676,\n", + " 0.14138982, -0.06809762, -0.1569107 , 0.25589222, 0.25206487,\n", + " 0.15333624, -0.29933193, 0.410183 , 0.30862481, 1. ,\n", + " -0.25251198, 0.16722668, 0.23000687, 0.45887046, 0.19634968,\n", + " 0.09936227, -0.20750686, 0.1151676 , -0.14587799, 0.13228071,\n", + " 0.22911311, 0.23759176, 0.06459398, -0.16103356],\n", + " [-0.19890615, -0.30174492, -0.27902952, 0.43201059, -0.3302681 ,\n", + " -0.30534824, 0.30817031, 0.45722325, -0.55140637, -0.27815293,\n", + " -0.26047364, 0.72797878, -0.18781902, -0.30521093, -0.25251198,\n", + " 1. , -0.28640541, -0.32981674, -0.27587003, -0.32003303,\n", + " -0.17854405, -0.04999808, -0.10206749, 0.30299893, -0.20539612,\n", + " -0.19172721, -0.22622936, -0.15254903, 0.12608317],\n", + " [ 0.28694491, -0.41118515, -0.40553124, -0.35038491, 0.38767804,\n", + " 0.72113593, 0.32916072, 0.17416226, 0.53985236, 0.55329169,\n", + " 0.40100565, -0.50352936, 0.29321216, 0.48134505, 0.16722668,\n", + " -0.28640541, 1. , 0.7682066 , 0.48849922, 0.38953473,\n", + " 0.36905334, -0.17136344, 0.33421958, 0.27911946, 0.46396529,\n", + " 0.22439434, 0.54269408, 0.37736886, 0.25686844],\n", + " [ 0.31094231, -0.42717948, 0.39803232, -0.41867628, 0.40536665,\n", + " 0.84969048, 0.31908619, 0.31848785, 0.61248382, 0.63532127,\n", + " 0.36290108, -0.56461116, 0.36460289, 0.66418496, 0.23000687,\n", + " -0.32981674, 0.7682066 , 1. , 0.56325477, 0.42075443,\n", + " 0.49493345, 0.11707951, 0.32410947, 0.25369587, 0.50664522,\n", + " 0.31677538, 0.62125049, 0.44607275, 0.23771363],\n", + " [ 0.37545971, -0.33941368, 0.33332526, -0.48912953, 0.35042643,\n", + " 0.48665365, 0.23190969, -0.13633847, 0.56026085, 0.49855956,\n", + " 0.22699758, -0.37712279, 0.39526675, 0.44118962, 0.45887046,\n", + " -0.27587003, 0.48849922, 0.56325477, 1. , 0.31459648,\n", + " 0.20998918, 0.14102603, 0.26335402, -0.00327036, 0.24867793,\n", + " 0.24362494, 0.41831113, 0.18925079, 0.15339244],\n", + " [ 0.28829143, 0.3795192 , 0.50227274, -0.33474512, 0.55361807,\n", + " 0.40313185, -0.40522169, -0.4264082 , 0.35783956, 0.50229375,\n", + " 0.39342811, -0.46562903, 0.36901566, 0.41113254, 0.19634968,\n", + " -0.32003303, 0.38953473, 0.42075443, 0.31459648, 1. ,\n", + " -0.2713078 , 0.33279814, -0.20272216, -0.30629046, 0.38392486,\n", + " -0.29537458, 0.34465329, -0.24045795, -0.24517569],\n", + " [ 0.33788021, -0.31706221, -0.24738988, -0.23707136, 0.32335717,\n", + " 0.59024591, -0.23172468, 0.3281538 , 0.19603634, 0.50900472,\n", + " 0.32684845, -0.34388996, 0.21580743, 0.40972155, 0.09936227,\n", + " -0.17854405, 0.36905334, 0.49493345, 0.20998918, -0.2713078 ,\n", + " 1. , 0.42197278, 0.52886249, 0.45592585, 0.61878456,\n", + " 0.62172093, 0.52241406, 0.92610985, 0.56801218],\n", + " [ 0.44290323, 0.11435867, 0.36895737, -0.11974314, 0.35847932,\n", + " 0.1959993 , -0.19044647, -0.15540053, -0.15471618, 0.39954066,\n", + " -0.17940385, -0.13187437, 0.07026058, 0.04911559, -0.20750686,\n", + " -0.04999808, -0.17136344, 0.11707951, 0.14102603, 0.33279814,\n", + " 0.42197278, 1. , 0.62181963, -0.45255874, -0.49822605,\n", + " -0.42426876, -0.4143401 , 0.54056919, 0.88075394],\n", + " [ 0.43870799, -0.11078682, -0.22465808, -0.18702054, 0.39130564,\n", + " 0.37991665, 0.16489995, 0.26603855, 0.19667959, 0.48933751,\n", + " 0.25595509, -0.22374913, 0.11393014, 0.17100068, 0.1151676 ,\n", + " -0.10206749, 0.33421958, 0.32410947, 0.26335402, -0.20272216,\n", + " 0.52886249, 0.62181963, 1. , 0.38445374, 0.54563728,\n", + " 0.40793589, 0.57269342, 0.63231114, 0.71673506],\n", + " [-0.26580207, -0.19496466, -0.30274132, -0.08848843, -0.28819368,\n", + " 0.34379196, -0.1984548 , 0.21937171, -0.22919049, -0.20231459,\n", + " -0.36469054, 0.25037226, 0.14035779, 0.2563449 , -0.14587799,\n", + " 0.30299893, 0.27911946, 0.25369587, -0.00327036, -0.30629046,\n", + " 0.45592585, -0.45255874, 0.38445374, 1. , 0.59924508,\n", + " -0.48413557, -0.29542479, 0.51433248, 0.51573878],\n", + " [ 0.38783197, -0.25027668, 0.29955817, -0.2003901 , 0.38578531,\n", + " 0.56529064, -0.2429678 , -0.15742548, 0.28453987, 0.40028248,\n", + " 0.39686928, -0.32636526, 0.19217956, 0.41587131, 0.13228071,\n", + " -0.20539612, 0.46396529, 0.50664522, 0.24867793, 0.38392486,\n", + " 0.61878456, -0.49822605, 0.54563728, 0.59924508, 1. ,\n", + " 0.56679731, 0.45918202, 0.68737895, -0.55792379],\n", + " [ 0.53001137, -0.14382351, -0.24200861, -0.18401696, 0.23091104,\n", + " 0.33655816, -0.21705443, 0.18717636, 0.15559262, 0.19039362,\n", + " 0.26681693, -0.31785725, 0.28559488, 0.31452256, 0.22911311,\n", + " -0.19172721, 0.22439434, 0.31677538, 0.24362494, -0.29537458,\n", + " 0.62172093, -0.42426876, 0.40793589, -0.48413557, 0.56679731,\n", + " 1. , 0.26171543, 0.55825626, -0.47733367],\n", + " [ 0.25845858, -0.24803394, -0.31366712, -0.29761406, 0.31127458,\n", + " 0.58247677, -0.1906407 , 0.32212825, 0.43846318, 0.81144534,\n", + " 0.35875134, -0.37945634, 0.16641529, 0.41761598, 0.23759176,\n", + " -0.22622936, 0.54269408, 0.62125049, 0.41831113, 0.34465329,\n", + " 0.52241406, -0.4143401 , 0.57269342, -0.29542479, 0.45918202,\n", + " 0.26171543, 1. , 0.56236223, -0.48545724],\n", + " [ 0.34834391, -0.29994106, -0.26206925, -0.21455045, 0.32661315,\n", + " 0.57359593, -0.22449912, 0.28922957, 0.17708495, 0.52537476,\n", + " 0.29157866, -0.31133886, 0.16334556, 0.35414578, 0.06459398,\n", + " -0.15254903, 0.37736886, 0.44607275, 0.18925079, -0.24045795,\n", + " 0.92610985, 0.54056919, 0.63231114, 0.51433248, 0.68737895,\n", + " 0.55825626, 0.56236223, 1. , 0.68338137],\n", + " [ 0.47597807, -0.12476516, 0.30112573, -0.15025349, 0.4051713 ,\n", + " 0.33994808, -0.20121198, 0.26189338, -0.22263674, 0.44275865,\n", + " -0.22916283, -0.18273995, -0.12259956, 0.1254457 , -0.16103356,\n", + " 0.12608317, 0.25686844, 0.23771363, 0.15339244, -0.24517569,\n", + " 0.56801218, 0.88075394, 0.71673506, 0.51573878, -0.55792379,\n", + " -0.47733367, -0.48545724, 0.68338137, 1. ]])" ] }, - "execution_count": 9, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -779,6 +780,206 @@ "similarity" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "See the response options similarity matrix" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 1. , 1. , 1. , 1. , 1. ,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.13192245, 0.13192245],\n", + " [0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.9999999 , 0.9999999 , 0.9999999 , 0.9999999 , 0.9999999 ,\n", + " 0.9999999 , 0.9999999 , 0.30146965, 0.30146965],\n", + " [0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.9999999 , 0.9999999 , 0.9999999 , 0.9999999 , 0.9999999 ,\n", + " 0.9999999 , 0.9999999 , 0.30146965, 0.30146965],\n", + " [0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.9999999 , 0.9999999 , 0.9999999 , 0.9999999 , 0.9999999 ,\n", + " 0.9999999 , 0.9999999 , 0.30146965, 0.30146965],\n", + " [0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.9999999 , 0.9999999 , 0.9999999 , 0.9999999 , 0.9999999 ,\n", + " 0.9999999 , 0.9999999 , 0.30146965, 0.30146965],\n", + " [0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.9999999 , 0.9999999 , 0.9999999 , 0.9999999 , 0.9999999 ,\n", + " 0.9999999 , 0.9999999 , 0.30146965, 0.30146965],\n", + " [0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.9999999 , 0.9999999 , 0.9999999 , 0.9999999 , 0.9999999 ,\n", + " 0.9999999 , 0.9999999 , 0.30146965, 0.30146965],\n", + " [0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.80901885, 0.80901885, 0.80901885, 0.80901885, 0.80901885,\n", + " 0.9999999 , 0.9999999 , 0.9999999 , 0.9999999 , 0.9999999 ,\n", + " 0.9999999 , 0.9999999 , 0.30146965, 0.30146965],\n", + " [0.13192245, 0.13192245, 0.13192245, 0.13192245, 0.13192245,\n", + " 0.13192245, 0.13192245, 0.13192245, 0.13192245, 0.13192245,\n", + " 0.13192245, 0.13192245, 0.13192245, 0.13192245, 0.13192245,\n", + " 0.13192245, 0.13192245, 0.13192245, 0.13192245, 0.13192245,\n", + " 0.30146965, 0.30146965, 0.30146965, 0.30146965, 0.30146965,\n", + " 0.30146965, 0.30146965, 1. , 1. ],\n", + " [0.13192245, 0.13192245, 0.13192245, 0.13192245, 0.13192245,\n", + " 0.13192245, 0.13192245, 0.13192245, 0.13192245, 0.13192245,\n", + " 0.13192245, 0.13192245, 0.13192245, 0.13192245, 0.13192245,\n", + " 0.13192245, 0.13192245, 0.13192245, 0.13192245, 0.13192245,\n", + " 0.30146965, 0.30146965, 0.30146965, 0.30146965, 0.30146965,\n", + " 0.30146965, 0.30146965, 1. , 1. ]], dtype=float32)" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "response_options_similarity" + ] + }, { "cell_type": "markdown", "metadata": { @@ -790,7 +991,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 20, "metadata": { "id": "gysE0NeEVjm6" }, @@ -801,7 +1002,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 21, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -814,16 +1015,16 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 11, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAGdCAYAAABU0qcqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAJFpJREFUeJzt3Qtw1GWW9/ETEMItaQy3JBDuCINcZkUERBQECViL3MYB8UWwLBhuymUQzQhCZGaj+I4iDhfX1yHiCiK1giulOFzDOhIdQAZ5HSmCKGEhoPgmDUECC/+3nj+bQCRIzmM6T9L9/VR1Ycg5nm660790979PR3me5wkAAOWsSnkPBADAIIAAAE4QQAAAJwggAIATBBAAwAkCCADgBAEEAHCCAAIAOHGDVDAXL16Uo0ePSkxMjERFRbk+OwAAJbPf4NSpU5KYmChVqlSpPAFkwicpKcn12QAA/EzZ2dnSpEmTyhNA5pFP4RmPjY0tfeOCgMUwXfmiJ/UjHntb3yNf6VvmKc/bLfoR8rVFz2NPWTSd0pUvWKQfMWubvkdW61sWLNXVN9ePkF9Pt2iqZdGToKw/aDGjvkVPewm5F4fqe6a/YjGop0XPS8r61hYzbtWVB/NFku67fH9e7gG0ePFief755yUnJ0c6d+4sL7/8stx2223X7St82s2EjyqAalicSWWPzYhYmx90i0HRyvpyOlsSa9N0rhzOVx0J/T+yxXmzuV5iLc6X1T9aTWV9eZ2v2hJyVrcx7b+XxS/FvurKepvzZfPzcsX9ebkehLB69WqZMWOGzJ07V3bv3u0HUHJyspw4cSIU4wAAlVBIAuiFF16QcePGycMPPyzt27eXZcuWSa1ateTPf/5zKMYBACqhMg+gc+fOya5du6Rfv36Xh1Sp4n+9Y8eOq+oLCgokGAwWOwEAwl+ZB9B3330nFy5ckEaNGhX7e/O1eT3ox9LS0iQQCBSdOAIOACKD8zeipqSkSF5eXtHJHP0GAAh/ZX4UXP369aVq1apy/PjxYn9vvo6Pj7+qPjo62j8BACJLmT8Cql69unTp0kU2b95cbLuB+bpHjx5lPQ4AUEmF5H1A5hDsMWPGyK233uq/92fhwoWSn5/vHxUHAEDIAmjEiBHy7bffytNPP+0fePDLX/5SNmzYcNWBCQCAyBXlma1xFYg5DNscDZf3lPJd9LMtLsZzumWnIyxW8ZzXt0iuhH7OAxYz/o9FT8dyeNf51a8sXl+qckWO7Tvu33hIV79fP0L+btFz1qKnjbJ+yXL9jJkWT5L87876nl3Kf7Qs/Qi5+pjf0Py8fK6s/9ZixkBlfb6IJIv4B5b91EYb50fBAQAiEwEEAHCCAAIAOEEAAQCcIIAAAE4QQAAAJwggAIATBBAAwAkCCADgBAEEAHCCAAIAhM8y0jIRo1wKptzr5ntCtz/umyf1MzKXlsPSLbN36fInoJeKzcf+NbboeX2hvufVabr6v+hHyKsT9T3jFoR+55p2D57tb5EbV1k0aW80XfUjrD4PebK+Zfd4Xf1X+hGSNkff86f5+p6jyvoG+hHSU3lZggUiUoqfFx4BAQCcIIAAAE4QQAAAJwggAIATBBAAwAkCCADgBAEEAHCCAAIAOEEAAQCcIIAAAE4QQAAAJwggAIATUZ7n6TZyhlgwGJRAICDzlYsZ/2Yx6xtlfabFP1X3KP0C04C6Q+TDFRLy7YqN5+l7uulbRLlXVSbt18+Y1Fbfk6tvkWrK+tc/0M/4zUB9z9f6FjmirO9jMaO9Rc8t5bBX1eZ8/d2ip4ZFz+7Q7zqWRGV9vogMFZG8vDyJjY29Zh2PgAAAThBAAAAnCCAAgBMEEADACQIIAOAEAQQAcIIAAgA4QQABAJwggAAAThBAAAAnCCAAgBMEEADAiRukgnrsbZHYWqWvH/bP+hmZS0O/WNRmgan8VT9HvteVj7BYLPpfFosyJc6i56iu/B6LxaIbV+l7JMuiJ1NXPtVisegr2kW0tlsvc5T1IyxmLLfosdje2/3a+zFLlPqgfsZcm+tli75lWKsQb8g1WurKg2dEZOz163gEBABwggACADhBAAEAnCCAAABOEEAAACcIIACAEwQQAMAJAggA4AQBBABwggACADhBAAEAnCCAAABOVNhlpPKVbmFirs2MNiHfeWi3WLSnxQLTdN2c1TZLHwdUL5+tlyuD6puK2hcWPc801PfcfkJVrti/e9noQRZNw/Ute0qxXfJKGfoRMt2iZ6RFz3268rkLLWZYLEiWby16JirrL1jMeE1Zf7Z0ZTwCAgA4QQABAMIjgObNmydRUVHFTu3atSvrMQCASi4krwHdfPPNsmnTpstDbqi4LzUBANwISTKYwImPjw/F/xoAECZC8hrQgQMHJDExUVq2bCkPPvigHD58+Jq1BQUFEgwGi50AAOGvzAOoW7dukp6eLhs2bJClS5fKoUOHpFevXnLq1KkS69PS0iQQCBSdkpKSyvosAQAiIYAGDhwo999/v3Tq1EmSk5Pl/fffl9zcXHn77bdLrE9JSZG8vLyiU3Z2dlmfJQBABRTyowPq1q0rN910k2RlZZX4/ejoaP8EAIgsIX8f0OnTp+XgwYOSkJAQ6lEAgEgOoJkzZ0pGRoZ8/fXX8vHHH8vQoUOlatWq8sADD5T1KABAJVbmT8EdOXLED5uTJ09KgwYN5I477pDMzEz/vwEAKBTleZ7F5svQMYdhm6PhzE5CzStDH1nM0i5+/HCFxZC6Fj0nLXrGKq/G6folqb0sFjIm61tkdn9lQ3v9jDcsLssOfYvMUtY3n2cxxGaD6XmLngO68sHp+hH36lskzqLn/n66+pWX31dfat+X01UZo6y3WdxcW1l/RkTGifgHlsXGxl6zjl1wAAAnCCAAgBMEEADACQIIAOAEAQQAcIIAAgA4QQABAJwggAAAThBAAAAnCCAAgBMEEAAgPD8PyNYtyr1INp+jqv7ou6/0M0ZY7PZavVzfo97t9qJ+BeCFhfr9cbOXqltkyURd/aSX9TPqWeyCa6JvkS+V9c37WAz5g0XPXfqW/0zX7wPT+s0Cfc8G7cI9i/2BoxrpR2x4U98z4D59j9xeDsvglFdmsEBk3CvXr+MREADACQIIAOAEAQQAcIIAAgA4QQABAJwggAAAThBAAAAnCCAAgBMEEADACQIIAOAEAQQAcIIAAgA4UWGXkX4tIjUU9SstZjTW1lssFv2vD/Q9MqC6uqVX1LmQLxb92NMvMJV/18+Z9JSuvk1b9Qg5oJxh3PuQvkcW6crrWiwJzT2i75HGFrexibrb2MZV6hEim/QtVSX0m4hfWasf8ZvH9T3yieXmZo0X9SNeVd6P/VDKOh4BAQCcIIAAAE4QQAAAJwggAIATBBAAwAkCCADgBAEEAHCCAAIAOEEAAQCcIIAAAE4QQAAAJwggAIATFXYZ6WNPicQqtpF+Pkc/4/WFuvph0/QzJM6iR7WG9ZJk0S2KnL1UymWxqAy3WGDaXDenwR/0IyRg0XPeoueCrnymxQipZtNUV9+SfUJXb7FYVfroW+75tcWcdrrymLXlsCTU2C969zyrq2/9pHrEuCxdfTBfZOrQ69fxCAgA4AQBBABwggACADhBAAEAnCCAAABOEEAAACcIIACAEwQQAMAJAggA4AQBBABwggACADhBAAEAnKiwy0jllIhmv6Z+fafIq8rlov0sZshRi56VQXXL7P66+iUT1SNk0lMS8sWivi66BaZ3icWM4/oW2WLR84Wu3OZ2bHW+cpWLRY0dyvpk/QjJ1res0+/WlCGTdfUf6kfIKIseaWnRs0z5D3BEP+IV5cLfH0pZxyMgAIAT6gDavn27DBo0SBITEyUqKkrWrVtX7Pue58nTTz8tCQkJUrNmTenXr58cOHCgLM8zACASAyg/P186d+4sixcvLvH7CxYskEWLFsmyZcvkk08+kdq1a0tycrKcPXu2LM4vACBSXwMaOHCgfyqJefSzcOFCmT17tgwePNj/uxUrVkijRo38R0ojR478+ecYABAWyvQ1oEOHDklOTo7/tFuhQCAg3bp1kx07Sn4Fs6CgQILBYLETACD8lWkAmfAxzCOeK5mvC7/3Y2lpaX5IFZ6SkpLK8iwBACoo50fBpaSkSF5eXtEpO9viOEwAQGQHUHx8vP/n8ePF32Rhvi783o9FR0dLbGxssRMAIPyVaQC1aNHCD5rNmzcX/Z15TcccDdejR4+yHAUAiLSj4E6fPi1ZWVnFDjzYs2ePxMXFSdOmTWXatGny+9//Xtq0aeMH0pw5c/z3DA0ZMqSszzsAIJICaOfOndKnT5+ir2fMmOH/OWbMGElPT5dZs2b57xUaP3685Obmyh133CEbNmyQGjWslowAAMJUlGfevFOBmKfszNFwZu2YJrLOh35Nl6zZr59xT1t9z1f6Fjmo3GsnFrvg2lhclgb6FrlLWZ9mcRN+Ikq/Py5XQn/5f+8NVc9oFbVW3VPyMak/7dI7+0rPZv9JV4ueByx6vlTWj5ugnzF1mb6nWjmsm7Q5zribsv6MiIwW8Q8s+6nX9Z0fBQcAiEwEEADACQIIAOAEAQQAcIIAAgA4QQABAJwggAAAThBAAAAnCCAAgBMEEADACQIIAOAEAQQAcKLCLiPN2yYSW0fR+Df9rFeVCzk/04+QJavKYUuqiLwxX1dfTz9C7jUbYrUCFj3FP8/wup74o37EczY3+3T9AlOJ0ZWv+ZV+xP0210szCfllkVMWM7Za9GSUw5bYWuUww2gvejsl5DI36erzRaQfy0gBABUVAQQAcIIAAgA4QQABAJwggAAAThBAAAAnCCAAgBMEEADACQIIAOAEAQQAcIIAAgA4QQABAJy4QSqq1SISrai/RT9i3AJd/ahZ+hmSZdHzTEN1y475J1T1TdQTRO59yKLpvEXPFl15rsUIq8WiYy0WmKbq5uzWT5D7h1o0dbHYerlRuSW3mn6EDLfo+dCip5Gyvo3FDLONU2ufRc9kZf1R/YjuJ3X1wQsisvf6dTwCAgA4QQABAJwggAAAThBAAAAnCCAAgBMEEADACQIIAOAEAQQAcIIAAgA4QQABAJwggAAAThBAAAAnKuwy0gVLRWoo6ptZzDgrod+tKJkWPbfrFosa2j2pX6oniMgiix6zlFBLufOygcUIiZGQLxb1zdUtMI2fZzHjSX2LNFH+IxsPK+vfDP11b7zxvb5n9HFd/Za/6Gfc/Td9j7Sz6PlaWb9eP2KD8t8rv5R1PAICADhBAAEAnCCAAABOEEAAACcIIACAEwQQAMAJAggA4AQBBABwggACADhBAAEAnCCAAABORHmep1tWFWLBYFACgYC8KiK1QrtCSrVrzpj9gX7G1IH6Hs3lLpQ2T9nQRz+j7l36npnlcL3M9IaqZ6yJWqvu2a3uEIlX1k+1+HFMjdLvj7NYnyaNymHGHRY93S16cpT1v5yjn/HG/NDf9o1c0WkuevfcqqsPXhAJfCaSl5cnsbGx16zjERAAwAkCCABQOQJo+/btMmjQIElMTJSoqChZt25dse+PHTvW//srTwMGDCjL8wwAiMQAys/Pl86dO8vixYuvWWMC59ixY0WnVatW/dzzCQCI9A+kGzhwoH/6KdHR0RIfr335FQAQSULyGtC2bdukYcOG0rZtW5k4caKcPHnymrUFBQX+kW9XngAA4a/MA8g8/bZixQrZvHmzPPfcc5KRkeE/YrpwoeTPZk5LS/MPuy48JSUllfVZAgCEw1Nw1zNy5Mii/+7YsaN06tRJWrVq5T8q6tu371X1KSkpMmPGjKKvzSMgQggAwl/ID8Nu2bKl1K9fX7Kysq75epF5o9KVJwBA+At5AB05csR/DSghISHUowAA4fwU3OnTp4s9mjl06JDs2bNH4uLi/FNqaqoMHz7cPwru4MGDMmvWLGndurUkJyeX9XkHAERSAO3cuVP69Lm8SKzw9ZsxY8bI0qVLZe/evfL6669Lbm6u/2bV/v37y/z58/2n2gAAqPDLSPOmi8QqMmvQs6F//tHmnU2vrLBoGj1I3/P8e7r6TfoR8meLnmoWPVt05a0e0I84+JS+R/Q7T0We1JWnWlwvc61+hB/Tt+x5WVdvsyE4X9/y3nh9z6A/hnh7qTHYoudfLXq0930fWszYqSsPnhMJvMoyUgBABUUAAQCcIIAAAE4QQAAAJwggAIATBBAAwAkCCADgBAEEAHCCAAIAOEEAAQCcIIAAAE4QQACA8PhE1DJTS0RqlL78rMWIjat09ckWSy81l+Gy4fqW88plpHfpR0jj6hZNdfUtuSdCvidSmln0dGmv72mi28j5vX6C3WJRWaRvaaZcRpqtHyEd9C2DOlvMOa+sP2UxI86ip61FT4LyQzyTgvoZHynrz5WujEdAAAAnCCAAgBMEEADACQIIAOAEAQQAcIIAAgA4QQABAJwggAAAThBAAAAnCCAAgBMEEADACQIIAOBExV1GmiAiNUtf3sZmhnJZ4hGbGTabMveM1fcc0JX/Z7p+RK+JpdwweKVs3WJR3w5d+WD9BJEYi56NusWivod15Y0srhfZo1wSarNY1LjR09X/PUo/498sFxdrHdWVn1umH2GzulcuWvSsUy4XXW4xI1dZ/9+lK+MREADACQIIAOAEAQQAcIIAAgA4QQABAJwggAAAThBAAAAnCCAAgBMEEADACQIIAOAEAQQAcKLi7oI7KCLRpS9fYrPfqKuuvM8sixkjLHoy9C2DlTvEzuhHyMZVFk13WfQk68oPrLCYccqip5pFz5u68u8tRsgXod+DaLXbbbZyd5yI/EuUfn/c7xaoW2Sl8mf5c/0ISbtd3zP3IX1Pantd/ZL/CP2Kuh9KWccjIACAEwQQAMAJAggA4AQBBABwggACADhBAAEAnCCAAABOEEAAACcIIACAEwQQAMAJAggA4AQBBABwouIuI60vIjVKXz7zYf2IJGW9cuffJTZLUqfrW+5V1v/GYoGjbLLo6RP6RZnKnbKXbLXoGR76RaF3WIyQfIueDhY9/1YOi0U9/QJTeU8/Z9RXyoZv1CNEetdSt6SOtrhLPhhUlU+a+pl+RvCfdOVBkVmluIPlERAAwAkCCABQ8QMoLS1NunbtKjExMdKwYUMZMmSI7N+/v1jN2bNnZfLkyVKvXj2pU6eODB8+XI4fP17W5xsAEEkBlJGR4YdLZmambNy4Uc6fPy/9+/eX/PzLT0JPnz5d3nvvPVmzZo1ff/ToURk2bFgozjsAoBJTveK1YcOGYl+np6f7j4R27dold955p+Tl5clrr70mK1eulLvvvtuvWb58ufziF7/wQ6t79+5le+4BAJH5GpAJHCMuLs7/0wSReVTUr1+/opp27dpJ06ZNZceOHSX+PwoKCiQYDBY7AQDCn3UAXbx4UaZNmyY9e/aUDh0uHdOZk5Mj1atXl7p16xarbdSokf+9a72uFAgEik5JSdqDowEAERVA5rWgffv2yVtvvfWzzkBKSor/SKrwlJ2tfBMIACBy3og6ZcoUWb9+vWzfvl2aNGlS9Pfx8fFy7tw5yc3NLfYoyBwFZ75XkujoaP8EAIgsqkdAnuf54bN27VrZsmWLtGjRotj3u3TpItWqVZPNmzcX/Z05TPvw4cPSo0ePsjvXAIDIegRknnYzR7i9++67/nuBCl/XMa/d1KxZ0//zkUcekRkzZvgHJsTGxsqjjz7qhw9HwAEArANo6dKl/p+9e/cu9vfmUOuxY8f6//3iiy9KlSpV/DegmiPckpOTZcmSJZoxAIAIEOWZ59UqEHMYtnkklbdWJLa2ovFxi2GTdeWZ4/Ujul/KbJ2/6FvWrNXVx+hHSFWLnntW6XvWPaCrr6cfIb0SLZrO6lve+F5Xf49+hPzNomdQZ4sm7W7NoRYz2ln0DLK5Cwuoqm+P0r895Ft1h0hzi55qyvr3j1gMabxeVR4MnpFA4Nf+gWXmmbBrYRccAMAJAggA4AQBBABwggACADhBAAEAnCCAAABOEEAAACcIIACAEwQQAMAJAggA4AQBBABwggACAFSeD6SriHb9Xd+zW7lctPgHjZdO92vv4bu2+/Qt959SNrTXz5Ds8lkuOUS5JPbVxfoZvRroe6SRvmX0cV39Hovb8aA/6nvkvEXPUV35yln6EaO+kpAvFr0kT1X98Yoo/Yh++hb52KInWVlfJ85iyOKQ3MB4BAQAcIIAAgA4QQABAJwggAAAThBAAAAnCCAAgBMEEADACQIIAOAEAQQAcIIAAgA4QQABAJyosLvgXhwqUkNR39xihnbt1P+ymJH6oL5n7kJ9z8pNuvpRFnvNXlmr74mx6PlQWf/6BP0Msdi5Jm30LVv+oqu/e45+huRY9Gh3B4rIuWW6+s/1I0S+0bfc3jKo7lHvdhvtqWeIp98f1/FX+jHDlPWp+7/XD5EPdOWnS1fGIyAAgBMEEADACQIIAOAEAQQAcIIAAgA4QQABAJwggAAAThBAAAAnCCAAgBMEEADACQIIAOAEAQQAcCLK8zyLLXuhEwwGJRAISN4rIrE1S9/30kP6WVOVix9XztfPGLVC3yP/rG/5U5yuvrV+hAx43KLpFgm5qQ/oe166z2LQwxY9abryNz7Vjxj9kb5HlLcX3yJl/e0WM0bXUre0iTqj7jlwVNkQb3Xvqu8J6heYyh5l/Z23qUfERulumN7/7CPNy8uT2NjYa9bxCAgA4AQBBABwggACADhBAAEAnCCAAABOEEAAACcIIACAEwQQAMAJAggA4AQBBABwggACADhBAAEAnLhBKqqeIhJT+vKOFiP+pFwummgxQ7ZY9Hyrb9GucBxgs4zzE4ue/RY9LXXl1SxGSHuLnn0WPe105TUslpHKv1r0tLXouagrn2uxIDh1tP4uqbl+jMjHuvKOv9KP+DzPYrForMUC039Xzmn/aah/JOVCKX9ceAQEAHBCFUBpaWnStWtXiYmJkYYNG8qQIUNk//7iv+L27t1boqKiip0mTJhQ1ucbABBJAZSRkSGTJ0+WzMxM2bhxo5w/f1769+8v+fn5xerGjRsnx44dKzotWLCgrM83AKCSUz3humHDhmJfp6en+4+Edu3aJXfeeWfR39eqVUvi420+wQkAECl+1mtA5tPujLi44h+v+Oabb0r9+vWlQ4cOkpKSImfO6D+xEAAQ3qyPgrt48aJMmzZNevbs6QdNoVGjRkmzZs0kMTFR9u7dK0888YT/OtE777xT4v+noKDAP135kdwAgPBnHUDmtaB9+/bJRx8V/0D68ePHF/13x44dJSEhQfr27SsHDx6UVq1alXhgQ2pqqu3ZAABE0lNwU6ZMkfXr18vWrVulSZMmP1nbrVs3/8+srKwSv2+eojNP5RWesrOzbc4SACCcHwF5niePPvqorF27VrZt2yYtWrS4bs+ePXv8P80joZJER0f7JwBAZLlB+7TbypUr5d133/XfC5STk+P/fSAQkJo1a/pPs5nv33vvvVKvXj3/NaDp06f7R8h16tQpVJcBABDuAbR06dKiN5teafny5TJ27FipXr26bNq0SRYuXOi/NygpKUmGDx8us2fPLttzDQCIvKfgfooJHPNmVQAAKu8y0pdEpHrpyz+3GHFUWX/pCUedYVcf+Hd9E/UtMb9VNtyunyG3WPTc86y+Z9mTIb0efTsteiZb9HytK8+1GCEW/8SSEKvvWad7i0SqzcLXg/q3YVgto03WlQ+zmXHp5e/QLhY1XlIuMP1/+hnnLZaRlgbLSAEAThBAAAAnCCAAgBMEEADACQIIAOAEAQQAcIIAAgA4QQABAJwggAAAThBAAAAnCCAAgBMVdxdcaxGpWfryby1GNAhxvfWiqtIuUvo5O8Rslo69aNHTWrfXzXdEV54k5cRm6dx6XXlzixHyoUVPkn7nmizXlS/5D/2ISVM/U/e8f+Sf9IPqxKnKU/d/r59x0236nvaf6nu0u91uVO6OE5H/6136YNHSCgYvSCCw67p1PAICADhBAAEAnCCAAABOEEAAACcIIACAEwQQAMAJAggA4AQBBABwggACADhBAAEAnCCAAABOEEAAACcq7jLSW83CwNKXD7QY0XOOrn7jfIshLS16XtO31NY2nNHPePUDfc+4LH3PK3/Q1evWJF6SuUnf0/2kvmfDcV39AHO719pp0fORRY9yge1FixEStFgs2li58dW3WFmvv/HHRn1aLncX50O8WPSST5T1Ztlt4LpVPAICADhBAAEAnCCAAABOEEAAACcIIACAEwQQAMAJAggA4AQBBABwggACADhBAAEAnCCAAABOVLhdcJ7n+X8G83V9yvJLMwrKYYbFzjU5q285E+LLbvygb1FfjzZzbP6Jra7LC6GfYzNDzpVTz3+Xw+3FrBBTOxP6DWqn9RMu3ZPpXCiHnqDVjUx3xQT/54osvD+/lijvehXl7MiRI5KUlOT6bAAAfqbs7Gxp0qRJ5QmgixcvytGjRyUmJkaioqKuSlUTTuZCxcbGSiSJ5MtucPm5/JF6+YOV8LKbWDl16pQkJiZKlSpVKs9TcObM/lRiGuZKqCxXRFmL5MtucPm5/JF6+WMr2WUPBPg4BgBABUUAAQCcqFQBFB0dLXPnzvX/jDSRfNkNLj+XP1Ivf3QYX/YKdxACACAyVKpHQACA8EEAAQCcIIAAAE4QQAAAJypNAC1evFiaN28uNWrUkG7dusmnn34qkWDevHn+RogrT+3atZNwtX37dhk0aJD/DmpzWdetW1fs++aYmaeffloSEhKkZs2a0q9fPzlw4IBEyuUfO3bsVbeHAQMGSDhIS0uTrl27+ltQGjZsKEOGDJH9+/cXqzl79qxMnjxZ6tWrJ3Xq1JHhw4fL8ePHJVIuf+/eva+6/idMmCCVVaUIoNWrV8uMGTP8QxF3794tnTt3luTkZDlx4oREgptvvlmOHTtWdProo48kXOXn5/vXr/mFoyQLFiyQRYsWybJly+STTz6R2rVr+7cFc8cUCZffMIFz5e1h1apVEg4yMjL8cMnMzJSNGzfK+fPnpX///v6/SaHp06fLe++9J2vWrPHrzdquYcOGSaRcfmPcuHHFrn/zM1FpeZXAbbfd5k2ePLno6wsXLniJiYleWlqaF+7mzp3rde7c2YtE5ua5du3aoq8vXrzoxcfHe88//3zR3+Xm5nrR0dHeqlWrvHC//MaYMWO8wYMHe5HgxIkT/r9BRkZG0XVdrVo1b82aNUU1//jHP/yaHTt2eOF++Y277rrLmzp1qhcuKvwjoHPnzsmuXbv8p1qu3Bdnvt6xY4dEAvMUk3lKpmXLlvLggw/K4cOHJRIdOnRIcnJyit0WzL4p85RspNwWjG3btvlP0bRt21YmTpwoJ0+elHCUl5fn/xkXF+f/ae4HzKOCK69/83R006ZNw/L6z/vR5S/05ptvSv369aVDhw6SkpIiZ87YfBxFxVDhlpH+2HfffScXLlyQRo0aFft78/WXX34p4c7cuaanp/t3NubhdmpqqvTq1Uv27dvnP1ccSUz4GCXdFgq/F+7M02/mKacWLVrIwYMH5Xe/+50MHDjQvwOuWrWqhAuzFX/atGnSs2dP/47WMNdx9erVpW7dumF//V8s4fIbo0aNkmbNmvm/kO7du1eeeOIJ/3Wid955RyqjCh9Akc7cuRTq1KmTH0jmBvj222/LI4884vS8ofyNHDmy6L87duzo3yZatWrlPyrq27evhAvzWoj5JSucX++0ufzjx48vdv2bg3HM9W5+GTG3g8qmwj8FZx5qmt/sfnyki/k6Pj5eIo357e+mm26SrKwsiTSF1ze3hcvM07LmZyScbg9TpkyR9evXy9atW4t9NIu5js1T8rm5uWF9/U+5xuUvifmF1Kis13+FDyDzkLtLly6yefPmYg9Pzdc9evSQSHP69Gn/tx3zm0+kMU87mTuaK28L5sO6zNFwkXhbKPwEYfMaUDjcHsxxF+bOd+3atbJlyxb/+r6SuR+oVq1asevfPP1kXhMNh+vfu87lL8mePXv8Pyvt9e9VAm+99ZZ/pFN6err3xRdfeOPHj/fq1q3r5eTkeOHut7/9rbdt2zbv0KFD3l//+levX79+Xv369f0jZMLRqVOnvM8++8w/mZvnCy+84P/3N99843//2Wef9a/7d99919u7d69/RFiLFi28H374wQv3y2++N3PmTP+IL3N72LRpk3fLLbd4bdq08c6ePetVdhMnTvQCgYB/ez927FjR6cyZM0U1EyZM8Jo2bept2bLF27lzp9ejRw//FA4mXufyZ2Vlec8884x/uc31b34GWrZs6d15551eZVUpAsh4+eWX/Rte9erV/cOyMzMzvUgwYsQILyEhwb/cjRs39r82N8RwtXXrVv+O98cnc/hx4aHYc+bM8Ro1auT/UtK3b19v//79XiRcfnNH1L9/f69Bgwb+4cjNmjXzxo0bFza/iJV0uc1p+fLlRTXmF41JkyZ5N954o1erVi1v6NCh/p10JFz+w4cP+2ETFxfn3/Zbt27tPf74415eXp5XWfFxDAAAJyr8a0AAgPBEAAEAnCCAAABOEEAAACcIIACAEwQQAMAJAggA4AQBBABwggACADhBAAEAnCCAAABOEEAAAHHh/wOScK/0rv/XgwAAAABJRU5ErkJggg==", + "image/png": "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xRdfeOPHj/fq1q3r5eTkeOHut7/9rbdt2zbv0KFD3l//+levX79+Xv369f0jZMLRqVOnvM8++8w/mZvnCy+84P/3N99843//2Wef9a/7d99919u7d69/RFiLFi28H374wQv3y2++N3PmTP+IL3N72LRpk3fLLbd4bdq08c6ePetVdhMnTvQCgYB/ez927FjR6cyZM0U1EyZM8Jo2bept2bLF27lzp9ejRw//FA4mXufyZ2Vlec8884x/uc31b34GWrZs6d15551eZVUpAsh4+eWX/Rte9erV/cOyMzMzvUgwYsQILyEhwb/cjRs39r82N8RwtXXrVv+O98cnc/hx4aHYc+bM8Ro1auT/UtK3b19v//79XiRcfnNH1L9/f69Bgwb+4cjNmjXzxo0bFza/iJV0uc1p+fLlRTXmF41JkyZ5N954o1erVi1v6NCh/p10JFz+w4cP+2ETFxfn3/Zbt27tPf74415eXp5XWfFxDAAAJyr8a0AAgPBEAAEAnCCAAABOEEAAACcIIACAEwQQAMAJAggA4AQBBABwggACADhBAAEAnCCAAABOEEAAAHHh/wOScK/0rv/XgwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -847,7 +1048,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 22, "metadata": { "id": "vt_tZj9CVjm6" }, @@ -858,7 +1059,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 23, "metadata": { "id": "l1nHu6OdVjm6" }, @@ -869,7 +1070,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 24, "metadata": { "id": "YMDJuv-q7wq9" }, @@ -880,7 +1081,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 25, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -946,7 +1147,7 @@ " I felt depressed.\n", " CES_D English_18\n", " I felt sad.\n", - " 0.849691\n", + " 0.849690\n", " \n", " \n", " 3\n", @@ -988,12 +1189,12 @@ " question2_text match_score \n", "0 Følt deg nervøs, engstelig eller veldig stresset 0.926110 \n", "1 Ikke klart å slutte å bekymre deg eller kontro... 0.880754 \n", - "2 I felt sad. 0.849691 \n", + "2 I felt sad. 0.849690 \n", "3 Sentir medo como se algo horrível fosse acontecer 0.811445 \n", "4 I enjoyed life. 0.727979 " ] }, - "execution_count": 15, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -1013,7 +1214,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -1021,7 +1222,7 @@ "output_type": "stream", "text": [ "Cluster #0: I was happy.\n", - "Keywords: ['happy', 'enjoyed', 'future', 'hopeful']\n", + "Keywords: ['happy', 'enjoyed', 'hopeful']\n", "\t I felt I was just as good as other people.\n", "\t I felt hopeful about the future.\n", "\t I was happy.\n", @@ -1029,14 +1230,14 @@ "\n", "\n", "Cluster #1: I talked less than usual.\n", - "Keywords: ['unfriendly', 'less', 'usual']\n", + "Keywords: ['unfriendly', 'usual', 'less']\n", "\t I was bothered by things that usually don’t bother me.\n", "\t I talked less than usual.\n", "\t People were unfriendly.\n", "\n", "\n", "Cluster #2: I felt sad.\n", - "Keywords: ['sad', 'depressed', 'fearful', 'lonely', 'felt']\n", + "Keywords: ['depressed', 'fearful', 'sad', 'lonely', 'felt']\n", "\t I did not feel like eating; my appetite was poor.\n", "\t I felt depressed.\n", "\t I thought my life had been a failure.\n", @@ -1049,7 +1250,7 @@ "\n", "\n", "Cluster #3: I could not get “going.”\n", - "Keywords: ['could', 'sleep', 'restless', 'going', 'get']\n", + "Keywords: ['could', 'restless', 'sleep', 'going', 'get']\n", "\t I felt that I could not shake off the blues even with help from my family or friends.\n", "\t I had trouble keeping my mind on what I was doing.\n", "\t I felt that everything I did was an effort.\n", @@ -1058,7 +1259,7 @@ "\n", "\n", "Cluster #4: Følt deg nervøs, engstelig eller veldig stresset\n", - "Keywords: ['ficar', 'facilmente', 'irritado', 'aborrecido']\n", + "Keywords: ['ficar', 'facilmente', 'aborrecido', 'irritado']\n", "\t Sentir-se nervoso/a, ansioso/a ou muito tenso/a\n", "\t Ficar tão agitado/a que se torna difícil permanecer sentado/a\n", "\t Ficar facilmente aborrecido/a ou irritado/a\n", @@ -1066,7 +1267,7 @@ "\n", "\n", "Cluster #5: Ikke klart å slutte å bekymre deg eller kontrolleren bekymringene dine\n", - "Keywords: ['relaxar', 'dificuldade']\n", + "Keywords: ['dificuldade', 'relaxar', 'diversas']\n", "\t Não ser capaz de impedir ou de controlar as preocupações\n", "\t Preocupar-se muito com diversas coisas\n", "\t Dificuldade para relaxar\n", @@ -1094,12 +1295,51 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 27, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\alexn\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site-packages\\joblib\\externals\\loky\\backend\\context.py:136: UserWarning: Could not find the number of physical cores for the following reason:\n", + "[WinError 2] The system cannot find the file specified\n", + "Returning the number of logical cores instead. You can silence this warning by setting LOKY_MAX_CPU_COUNT to the number of cores you want to use.\n", + " warnings.warn(\n", + " File \"c:\\Users\\alexn\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site-packages\\joblib\\externals\\loky\\backend\\context.py\", line 257, in _count_physical_cores\n", + " cpu_info = subprocess.run(\n", + " \"wmic CPU Get NumberOfCores /Format:csv\".split(),\n", + " capture_output=True,\n", + " text=True,\n", + " )\n", + " File \"c:\\Users\\alexn\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\subprocess.py\", line 556, in run\n", + " with Popen(*popenargs, **kwargs) as process:\n", + " ~~~~~^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\alexn\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\subprocess.py\", line 1038, in __init__\n", + " self._execute_child(args, executable, preexec_fn, close_fds,\n", + " ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " pass_fds, cwd, env,\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " ...<5 lines>...\n", + " gid, gids, uid, umask,\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " start_new_session, process_group)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\alexn\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\subprocess.py\", line 1550, in _execute_child\n", + " hp, ht, pid, tid = _winapi.CreateProcess(executable, args,\n", + " ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^\n", + " # no special security\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " ...<4 lines>...\n", + " cwd,\n", + " ^^^^\n", + " startupinfo)\n", + " ^^^^^^^^^^^^\n" + ] + }, { "data": { - "image/png": "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgoAAAGzCAYAAABO7D91AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAX/RJREFUeJzt3Qd4FNXaB/D/bnonIYFACBAIhN5CCyBFmoAUEUQsdClSL3gR/BRURPTaQOFSRAELFxSliHSQXqR3QgtJKCGUkAZpu/M954TEtE2y2STb/j+fI9nZmZ2zu4F555T3qBRFUUBERESUB3VeG4mIiIgEBgpERESkEwMFIiIi0omBAhEREenEQIGIiIh0YqBAREREOjFQICIiIp0YKBAREZFODBSIiIhIJwYKRCVk+fLlUKlUuHHjBkyZudSTiIyDgQKZtPPnz+O1116Dn58fHBwcULFiRfn4woULMBUff/wx1q1bB1Oj0WiwbNkytG/fHl5eXvLzq1q1KoYOHYpjx46VWj02bdqE999/v9TOR0TFS8W1HshU/f777xg4cKC8yA0fPhwBAQHyrve7777Dw4cPsXr1avTu3dvY1YSrqyv69esn78xzXqhTU1PlBVrcsZemJ0+eoG/fvtiyZQvatm2Lnj17ys9RfH6//PILLl++jIiICFSqVEnWWwQPYWFhMpAobuPGjcOCBQvAf2qIzJOtsStAlJdr167h9ddfR7Vq1bB37174+PhkPjdx4kQ888wzsmXhzJkzMoAwRTY2NrIYw7///W8ZJHz11VeYNGlStudmzpwpt5szEXQkJSXBycnJ2FUhsnyiRYHI1IwaNUrcfip79+7N8/k9e/bI58eMGZO5bfDgwUqVKlVy7Ttz5ky5b04//vij0qRJE8XR0VHx9PRUBgwYoERERGTb5/Lly0rfvn2V8uXLKw4ODoqfn5/c79GjR/J58bo5i6iHsGzZMvk4LCws22suWLBAqVOnjmJvb69UqFBBefPNN5WYmJhs+7Rr106pW7eucv78eaV9+/aKk5OTUrFiReXTTz8t8LOLjIxUbG1tlc6dOxe4r656isfic8tJfL4Z709ISUlR3n//fSUwMFB+Pl5eXkrr1q2Vbdu2yefFvnl9Rhk0Go3y1Vdfyc9DHF+uXDll5MiRysOHD3Odt0ePHsqWLVuU4OBgua84ThDnEuf08PBQXFxclJo1ayrTp08v1HsnooKxRYFM0h9//CGbwUXLQV5Ec7p4Xuz33//+V+/Xnz17Nt577z289NJLGDFiBO7du4dvvvlGvu7JkydRpkwZpKSkoGvXrkhOTsb48ePh6+uLW7duYePGjXj06BE8PDzw448/yuObN2+OkSNHyteuXr26zvOKvvoPPvgAnTp1wpgxYxAaGoqFCxfi6NGjOHDgAOzs7DL3jYmJwXPPPSe7EEQ916xZg7fffhv169dHt27ddJ5j8+bNSEtLky0yJU28nzlz5mR+BnFxcXL8w4kTJ9C5c2eMGjUKt2/fxvbt2+VnlZN4PqPrY8KECbL7Y/78+fI7yPl5iM9KdEWJY9544w0EBQXJMSzPP/88GjRogA8//FB281y9elUeS0TFpBDBBFGpEnfr4lezd+/e+e7Xq1cvuV9cXJxeLQo3btxQbGxslNmzZ2fb7+zZs/JOPGP7yZMn5XG//vprvvUQd7FZ77J13alHR0fLVoQuXbrIO+kM8+fPl/t9//332VoUxLYffvghc1tycrLi6+urvPjii/nW51//+pc8VtS/pFsUGjZsKO/08zN27Ng8W3T27dsnt//888/ZtotWg5zbxXnFNvFcVqJVQWy/d+9eod4rEemPsx7I5MTHx8s/3dzc8t0v4/mM/fUZJKnVauVd+v379zOLaDGoUaMG/vrrL7mfaDEQtm7disePH8NQO3bskK0UYsyAWv3PXz1xd+zu7o4///wz1yBJMQ4jg729vbxrv379er7nEXf1hfn8ioNoeRF39VeuXNH72F9//VV+xqLlIev3EBwcLN97xveQQYxFES08Oc8vrF+/Xn6nRFT8GCiQySlsACCeF7MJvL299Xp9cVETN80iKBCDJLOWixcvIjo6OvPCNHnyZCxdulSeQ1ykxOj92NjYIr2v8PBw+adoMs9KBABi0GbG8xnEjIScsyU8PT1ll0R+RNBRlACqKERzv+iGqVmzpuwSEYMoxQDTwn4P4rMsV65cru8hISEh83vIkNeg1QEDBqB169ay66N8+fJ4+eWX5awOBg1ExYdjFMjkiLtMkS+hoAuOeF5cTMWFVtA1BVFMU8xKXETEvqIvP69ZCeJuNsMXX3yBIUOGyDvWbdu2yX500Sd/+PBhee6SpGvGREHTDGvVqiX/PHv2LBo1alSsdcr5WYoxHWKGSsbnI4IqMaNi0aJF8uKdH/E9iCDh559/zvP5rDNdhLxmOIhtYlaMaH0QLTJipoeYNvvss8/K+hhr1gmRJWGLApkkMe9fDGzbv39/ns/v27dP5gTo379/trttcXebU847dTHYUFxsxR2qGFSYs7Rs2TLb/uJO+d1335UXJHFeMaBRXAgzFDZHQpUqVTIH5WUluiPEe8143lBioKO4QP70009Ffo28PktRzzt37uTaV+RnEIMR//e//yEyMlIOLMyaYEnX5yO+hwcPHsgWgby+h4YNGxaqrqIbp2PHjvjyyy9lIi4xUHXXrl25ui6IqGgYKJBJeuutt+Ds7CxHuIuLSVYi2dLo0aNlE7tI5pP1wiOasrO2RIgL29q1a7MdL2YRiAupmH2Q8+5cPM44n+jrF7MHcgYN4sIkZkJkcHFxyTNAyUlc/ETrx9dff53tvCKBlKh3jx49UBz8/f3luAdxRy1mcuR1Jy9aSm7evKnzNcRnKQKjrJYsWZKrRSHndyNaYwIDA3N9PkLOz0iMERGvN2vWrFznF597YT5T8buQU0YrStY6EFHRseuBTJK42Pzwww9yOpy4OOfMzCj66VetWpWt31r0T4vpgy+88ILsIhADEMXUQ9F/LqbrZb0IfvTRR5g+fbp8vT59+shxEeKuXgQVYpqjCFTEXakIRESrhXgNcfESU/xEkPHiiy9mvp4YfCcGKoo7WtFlIurUokWLPJvSxTlFgCKmPfbq1Uu2Lojpnc2aNcs2cNFQIhAQXQLicxCDN8UUQtFKILIxikGEly5dkp+XLqLbQARj4n2KwYanT5+WgzpzjgepU6eOTBEtPgPRsiCmRoppnFkDOPGcIOoixnmIz0+cu127djIQFF05p06dQpcuXeR0SDF2QdRx3rx5MuNlQWMkREAjgizRIiPGNYjPU3QLtWnTxuDPkYg4PZJMnJiy+Morr8hpgWq1Wk6FEwmSRCKivIjkO/Xq1ZPTEIOCgpSffvpJZ8Kl3377TWnTpo2c3ihKrVq15FS+0NBQ+fz169eVYcOGKdWrV5fnFMmEOnTooOzYsSPb61y6dElp27atTIpUmIRLYjqkOJednZ1M5CSSRulKuJSTrimgeUlLS1OWLl2qPPPMMzIZkTifOHbo0KHZpk7mVU8xffPtt99WvL29FWdnZ6Vr167K1atXc02P/Oijj5TmzZsrZcqUke9fvC8xvVQkYspaj/Hjxys+Pj6KSqXK9V0sWbJEJlESx7u5uSn169dXpk6dqty+fTtXwqWcdu7cKafRimRU4jsXfw4cOFAmyiKi4sG1HsisiFYGMbhQ3H2Ln4mIqGSx64HMyqBBg+S4g2nTpsnmZbFyIxERlRy2KBAREZFOnPVAREREOjFQICIiMjOffPKJzFGScxn5nMQMIpGEzdHRUc4g27Rpk97nYqBARERkRo4ePYrFixfL5Gb5OXjwoJxiLqaXixVZxVRwUc6dO6fX+ThGgYiIyEwkJCSgSZMmMl+IyAcjEozNnTs3z33FWiiJiYnYuHFj5jaReVYckzW7rFnPehAZ5MRa9iIZTmHT5BIRkXUS971iMTSR+CzrCq3FLSkpSaY0L4765ry2OTg4yKLL2LFjZYIxkelVBAr5OXTokFzYLiuR9GzdunV61dOkAwURJIh0tERERIUl1hwpqUXbkpKSEFDFFVHR2dOZF4VIeS5aCLKaOXNmtrVSshLZaEWWWdH1UBhRUVFyVdWsxGOx3WIChYzlhsWXnrF0LhERUV7E+izi5jLj2lESUlJSZJAQdrwK3N2K3moRF69FQHB4ruubrtYEsd/EiROxfft2OTCxNJVooCDy7Isi8ukLdevWxYwZM+TqdoWR0SQjPkQGCkREVBil0VXt7qY2KFDIfJ1CXt+OHz8u1zIR4xMyiEXVxFon8+fPl4ug5VxW3dfXF3fv3s22TTwW201m1oNo+hFTOMQbFIvFiDXie/fujfPnz5fkaYmIiEqURtEaXPQhllI/e/asXEAtozRt2hSvvvqq/DlnkCCEhIRg586d2baJFgmx3WRaFHr27JntsVgnXrQwHD58WLYuEBERmSMtFFkMOV4fojulXr162baJJdzLli2buV2kuPfz85Mrsgqiq0Ks0ipWkxUDIMUYB3HTLpaMN8kxCqKJRCR+EFM1dEUzoukk6xryor+JiIjI1Gjlf4YdX9zEMvJZZ3u0atUKK1euxLvvvot33nkHNWrUkDMecgYcRs+jIJpKRGAgRoqKEZ6i0t27d89zXzHS84MPPsi1PTY2lmMUiIgoX+Lm0sPDo0SvGXFPz3E7tJLBgxkrBt00i+tbiWdmDAoKkv0nR44cwZgxYzB48GBcuHAhz32nT58uP7SMIkZ5EhERmRqNohhczEWJdz3Y29sjMDBQ/hwcHCznf86bN0+mn8ypoEQTRERE1jhGwZjUxsi2mHUcAhUf0b0j8njXrFkTDRs2ROfOnXH16lX53Mcffyxbd0T/lb5ZuYiIyHqVaKAguhLEHE+RR0GMVRCPd+/eLadzUMkYOXIkQkNDcfr0afTq1QtDBg3B/dsP0aF9B2zevBlt27Y1dhWJiMyeFgo0BhRzalEo0a4HkRxCTNe4c+eOHPwhVrraunWrvNOl4ieydYmBokmPk7FhwRb8+eVuHI86iYGVRsHNyxXPj+qMtNQ0Y1eTiMjsaa2o66FEA4XvvvuuJF+e8pAYm4h/d/wQV0+F4azmGHxQUW6Pf5iA1f9Zj8s21xET/cjY1SQiIjNR6mMUqGR98cYiXDt9A9c1F/AECQjEP/NltRot0lLSsHL273LVMiIiKhqNFc16YKBgQe6G38P+344gLO0ionEbjdAGNqrsjUYiQIiOuI/Tu5lGm4ioqLTFUMwFAwULsu+3wwhXLiMKkWiCZ2Cnss9zP7WNGrtXHyz1+hERkfkx6WWmST/hN8JxWTkNJ7jgOPZAjJVRQ43mqo64rlzELVxHCpJxXnMUM384h1dnvQAfHx9jV5uIyOxons5eMOR4c8FAwYIEVA9AZ5v+ULS5fwGrqWqjGmrLn21sbdB9SEcGCURERaRR0oshx5sLdj1YkLb9WhZqP02aBh0Gtinx+hARWSotxyiQOfL2K4tnB7aRYxB0sbFVo0aTANRrU6tU60ZEROaJgYKFmbjwDdRuWQMqFWTJSqVWoXwVH3y4/m2ocj5JRESFpoUKGgOKON5cMFCwME6uTvjPjpkYP38E/Gv5ZW4v6+eFYR8NxIKjn8qWByIiKjqtYngxFxzMaIHsHezQc0xXWZ4kPIFWq8DZzalIrQhioamXX35ZLg3u5OSEcuXKYeHChXJF0L///hsTJkyQi3yJ/YYOHYqpU6eWyHsiIiLjYIuCFbQwuLg7G9TVkLHQ1P7dB1DFrTo6tuiCt559Hy90fxGDXxqKkydP4sCBA/j8889lQEFEZOk0BnY9iGIu2KJAhVpo6q9VB/D5sAW4nxSNaOWuzOwYryRg/pTvELU/Fq990hf29vbw8vIydpWJiEqcxsCLvTkFCmxRoAId2XQCc16dh5TkVEQoVzIXmqqDpriO8/jP2g9Qp3ZtzJ49G76+vsauLhERFSO2KFC+xNoQS/79g/w5THtRLjRVG23l4xu4JBed8lVVxmNtAt6eOg3NmjVDnTp1jFxrIqKSpVVUshhyvLlgiwLl6+KRK4i4eAs3tJeyLTSVoiTLxyJIENzs3OHj6CvHKhARWTqNFY1RYKBA+Yq8dCvPhabsYA8b2OChEi0fP0l9ght3rqFevX+WtSYiIvPHrgfK18O4B7iCM3kuNFVfaSmfE90TCrRoVKEZQkJCjF1lIqISp4FalqIfbz4YKFC+OvRqi07/6icDhJzKqsqjLMrLn0Xa6Jde6VX6FSQiMgLFwDEK4nhzwa4Hypdv1XJo3r1JvutHCKJV4fnRXUqtXkRExqThGAWif4z7ehjcPF2gttX96zLyP6/LdSSIiMiyMFCgAlUIKI9vDs9Bg7ZPpz2qALU6PRr29C2DKUvHoN/knsatJBFRKdIoaoOLueAYBSqUCtXK47MdMxEZegundp1DanIaKgb6otlzjWBja2Ps6hERlSqtXAGy6Bd7bV4Dv0wUAwXSi3+QnyxERGQdGCgQERHpSWNFaz0wUCAiItKTxsBxBhrFfLoezGc0BREREZU6tigQEREVaTCjyqDjzQUDBSIiIj1pDUzhbE6zHtj1QERERDoxUCAiIjLxhEsLFy5EgwYN4O7uLotYgG/z5s0691++fDlUKlW24ujoWKT3yq4HIiKiInQ9aEux66FSpUr45JNPUKNGDbm2zooVK9C7d2+cPHkSdevWzfMYEVCEhoZmPhbBQlEwUCAiItKTRlHJYsjx+ujZM3ua/NmzZ8tWhsOHD+sMFERg4OvrC0Ox64GIiMhI4uLispXk5OQCj9FoNFi1ahUSExNlF4QuCQkJqFKlCvz9/WXrw/nz54tURwYKREREetI8nfVgSBHERdzDwyOzzJkzR+c5z549C1dXVzg4OGD06NFYu3Yt6tR5ulhfDkFBQfj++++xfv16/PTTT9BqtWjVqhVu3ryp93tl1wMREZGetIpalqIfnz5GITIyUo4lyCCCAF3Exf/UqVOIjY3FmjVrMHjwYOzZsyfPYEG0NGRtbRBBQu3atbF48WLMmjVLr7oyUCAiIjIS96ezGArD3t4egYGB8ufg4GAcPXoU8+bNkxf/gtjZ2aFx48a4evWq3nVk1wMREZGRuh4MIboTCjOmIWNcg+i6qFChgt7nYYsCERGRnrRFmLmQ83h9TJ8+Hd26dUPlypURHx+PlStXYvfu3di6dat8ftCgQfDz88sc4/Dhhx+iZcuWsgXi0aNH+OyzzxAeHo4RI0boXVcGCkRERCYuOjpaBgN37tyRgx5F8iURJHTu3Fk+HxERAbX6n1aKmJgYvPHGG4iKioKnp6fsqjh48KDOwY/5USkic4OJElNFxAciBm4Utg+HiIisU2lcM+KenmPhiWZwci36vfaThDSMaXLULK5vbFEgIiLSk6YIaZhzHm8uzKemREREVOrYokBERKQnLVSyGHK8uWCgQEREpCeNFXU9MFAgIiLSk8bAXAjFkUehtJhPTYmIiKjUsUWBiIhIT1pFJYshx5sLtiiYmKSkJPTp0wc1a9ZEw4YNZTKNjNzcQ4cOzdzeunVrmeebiIhKn9bA9M3ieHNhPjW1IiNHjkRoaChOnz4t1xDPSLn5wgsv4MKFC3K7SOfZv39/Y1eViIgsHLseTIyjoyO6d+8ufw6/eBMR+6Jx7MAJvFJ5NPxrVUSZFB+06t1M5vC+desW0tLSYGvLr5GIyLyWmVbDXPAKY6JW/2c9lk77CedxFF5Kedy7+QAP7sTgxI6zCGwSANd2igwoCgoSRFfGyy+/LFsinJycUK5cOSxcuFAuFNKiRYvMlcdEwHH+/HnZWiFyiBMRkW4aqGQx5HhzwUDBBG1bsVsGCWHKRTxGPJqgrdyu1aSvN7b/5F7cPH8FF66fK3RXhlh1TKVS4aMZs/F8p14Y1WUChj0zFq1faI66rYLw22+/4YMPPmCQQERE2TBQMDFizfDlM1YhXAlFNG6jCZ6BjeqfrylKicQ15TyCk9oi8lRUgWuLZ3RlPEl4gv8MWYBNv+1COMKxdflu+fyaL/9AtYZVcMX9BIYPH17i74+IyBJorajrwXxqaiXO7LmAYxGHEIVIGSTYqewzn7srggScl9td7FyxeemOQr1mWmoa/q/HHBxcfxQRuAofVIQmTSOLcOlcKPbu3YtunXqU2PsiIrIkmizdD0Ur5oOBgok5d+ICruAM0pCK49iDw8p2/K3sTH8Of0MLDU7jIA6kbsU3mz7DgwcPCnzNPb8cwtl9F3Et7TyeIAGBqJft+Ztp1+GtqoBti/aU2PsiIiLzVKJdD3PmzMHvv/+OS5cuyYF0rVq1wqeffoqgoKCSPK1Zq1SpEjqp+uX5XEfVi9ke1wkOQtmyZQt8zfXzNyMCl/PsylAUBXcQjlpKY9kdMeKTV+Hk6lQM74SIyHJp2fVQPPbs2YOxY8fi8OHD2L59O1JTU9GlSxckJiaW5GnNWqNn68HGtuCvRaVWIeT54EK95vZjm3FHicjVlSHEIBpaaOGF8kh+nIxbV6OKXHciImtbFEpjQDEXJdqisGXLlmyPly9fLqfnHT9+HG3bpo/kz0pM1cuYrifExcXB2niW80C7l1ph9+qDmbMcclEBNrY26Drs2QJf7+bNm7iUdgpOcJFdGVBEdKhGc1VH+fwt3EBFVJUzIoiIqHAUA5eZFsebi1Kd9RAbGyv/9PLy0tlVIaboWbs35w5F6NFruHP9bq5gQbQkiIv92yvGyaCiMF0ZE1q9g0tHrkCrVXI9X1/VIvNnRxcH+NXIfxYFERFZl1Jr+9BqtZg0aZJco6BeveyD6TKItMQimMgokZGRsEYe3u74+uBsdBv2LOwc7bI9F9S0Oj7Z+i7aD2hd6NfrPa5bnkFCVqK7o+uQDnBycSxyvYmIrIWGXQ/FT4xVOHfuHPbv369zHwcHB1kIcC/rhkmLR2HEp6/h4uHLSE1OQ8VAX1St66/3a7XrH4LNS3fKqZciYMsrSChTzgOv/F/fYqo9EZFl03L1yOI1btw4bNy4EX/99ZdsCqfCcy3jgmbPNZbrOxQlSBDEeIYPN7yNdgNC5PgGtY0atnY2mYMmAxsHYN6B2fDy9Szm2hMRkbkr0RYFMfVu/PjxWLt2LXbv3o2AgICSPB3lQ3QpvPPzJAyb/Qp2/rwPD27HwMXDGW1eaI6gZoHGrh4RkVnRPF0u2pDjzYVtSXc3rFy5EuvXr4ebmxuiotKn3nl4eMi8ClT6fKuWw6v/lz0fg7XIb4GsoUOHytk4arUadnZ2+OSTT9CxY/rMECKinNj1UEzEP8JiUGL79u3lmgQZZfXq1SV5WjLCBbhPnz6oWbMmGjZsiM6dO+Pq1avyOfHdi5akRo0ayfLVV18Zta5igazQ0FAcOfQ3girWlQtkrfz4d4x6ZaxcOfPUqVNYsmQJ+vfvn+d4DiIia1PiXQ9kHbKuUDl//nyMGDFCdjcJIjgQgYSxiQWyRB3XztuEFe+vRlTsLblA1oqZq+U01GoNquDtH8ZnTuMlItJFC7UsRWXIsaWNq0eSwTJWqBRiomMRe/EJThw6hRH1JyPsTgQuHrmCns9r5KBKY/tp1hr88P4v8ueMBbIyclVsO/Mnfmq0GHZuNli7bq3shiAiyotGUclSVIYcW9r4LyEVm32/HcarVcZgwcL5KJPig/DzkYh/kICPPpkFH7fy6NPrBVy/ft1o9RMJrH74ID1ICFMu5logS/zcxqY7OlXtialTpyIlJcVodSUiMhUMFKxQfmMKoqOj8dxzz6FGjRoyMZZYfrowTu85j1kDvsTl5DN4rPxzAa6LZmil6opmac/i7tFH6NHDeEtZb1y0TbYShCuhcoGsRmiTbYEsQbQuxJ5NQsyDGJw9e9ZodSUi8xjMqDWgmAsGClYqY1Dfwb0HEVCmBjq26IIpHWbi+Ta9Ua1iIC5fvoxly5bhlVdekYt5FWTFjNUI14YiWsl+AXZUOcs/tRoFrne9ce3a9UItjV0Szu6/hLC0S4hCZLYFsrSKVgY3GWKVh7gbHY1q1aoZpZ5EZPqUp6tHFrWI480FxyhY8ZiCQ38cw8cD5yL68R1EK3dl5sYTyjE4XvHG25GzMHPNFFSsWFGuAtqpUyedr3fr6h1s3LseURArVLbNdgFORQocVOlpoe+pbsFR7ViopbFLQtyTGFzBmVwLZAWjHc7jKNKUVKiggg1s8c7oGfD0ZAIqIsqbBipZisqQY0sbAwUrdWbvBbzf9zMoWi0ilPRBfSlKslxyWlzYT+8+j/d6fYoqVaogIiIi39c6efiMzgvwKRyAVhF/JVSwU+zR3LkDjKVh84boev4laNJyT3tshuz16jvA+LM0iIhMAQMFK/Xd9J9F2xmua9MH9dVGW2igydZXf3bfRSitHxX4Wv6VKqGTql+ez7VA9qRFPm7GaU0Qnh/VGZu+3ZHvPmJ1TpEqu2bT6qVWLyIyP1rFsKRJBazTZ1LMp5OEik34xZu4cOgywjSXsg3qs1c5yDv/ZCVJ7ifWhLhw9hIqV66c7+vVbFYdjq4Frzop1pZo/lxjGEuNJtXQ6bW2MtdDXsRm8dzoL4fo3IeISDBkfEJGMRfmU1MqNpGXbiFcuZxrUJ9QHpVwE9fkzzFp9/EoIQbt2rUrcB0JsSS2CCzyI5r8e77ZFcY05bsxeG74s5mLY4kWhIx6O7s74/3f/40mHesbtY5ERKaEgYIVehj7QI4pSEOqHFNwWNmOv5Wd8rlA1EcsHuCAsgUXcAzPVOgs1z4oyOAPB6Bybb98g4Uhs15G9YZVYUy2draYvGQ0Vlz+Bi/9uzfa9G2BDi+3xpSlY7Dq1hKE9Gxq1PoRkXnQQmVw0XdJhAYNGsDd3V2WkJAQbN68Od9jfv31V9SqVUsOYK9fvz42bdpUpPfKMQpWqN3zbdDVbgA0af+MScggBjKKmQsZXQXde+qe7ZCVi7sz5u6bhcVv/YDtP+5FWkpa5nM+/mUxaOZLeG7YszAVFav7YvjHrxi7GkRkpjSlnJmxUqVKcrE6keNGLI+wYsUK9O7dGydPnkTdunVz7X/w4EEMHDgQc+bMwfPPPy8XaBT5c06cOCFz5OhDpZjwggxxcXFypUmRe19EUFR8Phn0NXavOpDnDICslpz5AgH18h+jkFPcw3ic2nUOSYnJKFfZGw3a1WE6ZCKyiGtG3NNzvLLrFdi7/tNtq6+UhBSsfHalQXX18vLCZ599huHDh+d6bsCAAUhMTMTGjRszt7Vs2VIuzrdo0SK9zsMWBSv1xqev4/TuC4iJitEZLLz2Xj+9gwTB3csNbfuFFEMtiYhMk9bAAYkZx4rAIysHBwdZ8qPRaGS3gggERBdEXg4dOoTJkydn29a1a1esW7dO77ryNs9Kla3giW8OzUZw10ZyYJ8gBvYJ7t5uGPv1MAx6/yXjVpKIyERpYWAK56f/8Pr7+8sWiowiugp0EWnlXV1dZSAxevRorF27FnXq1Mlz36ioKJQvXz7bNvFYbNcXWxSsmLdfWcz+YzqibkTj+LbTSH6cAt+AcmjWrRHs7AsewEhERIaJjIzM1vWQX2tCUFAQTp06Jbsr1qxZg8GDB8vMubqCheLCQIHgW7UceozsbOxqEBGZDaUIMxdyHi9kzGIoDHt7ewQGBsqfg4ODcfToUcybNw+LFy/Ota+vry/u3r2bbZt4LLbri10PREREZrh6pFarRXJycp7PibELO3emT3vPsH37dp1jGvLDFgUiIiIjDWYsrOnTp6Nbt24yU258fLyc7rh7925s3bpVPj9o0CD4+flljnGYOHGiTJb3xRdfoEePHli1ahWOHTuGJUuWQF8MFIiIiExcdHS0DAbu3LkjBz2K5EsiSOjcOb3bWCzel3UaeqtWrWQw8e677+Kdd96R+RfEjAd9cygIDBSIiIj0pDWw+0DfY7/77rt8nxetCzn1799fFkMxUCAiItKT1sDBjIYcW9o4mLGUJSUlyTSaNWvWRMOGDWWz0dWrV7Pts2vXLtjY2GDu3LlGqycREZHAQMEIRo4cidDQUJw+fVrm6h4xYkTmc2J+7LRp09C9e3ej1pGIiHQzhVkPpYVdD6VMrOIlggCxxMb5g6G4tOkGju0/joGVR6FGk2o4Fr9PDjwpSppNIiKyzDEKxsRAwQhEnu6v31yKTd/uwHkchZfii/s3H+LC7bO4p7mNvx0vQOOVe2VHIiKi0sauByNYMWM1Ni3dgTDlIh4r8QhEPSQrSbiuuYCaaIhjW0/h/P5QY1eTiIh0YNcDlZiER4lY8+UfCNeGIhq30QTPwEZlixjlHlKQhCPYAWiA1BvJeP/9y7h37x5mz55t7GoTEVEW7HqgErN79UFcS76IKESiCdrCTpW+nrm3qgLaomfmfhdwDM80bcMggYiIjIqBQim7ePYSLiun4QQXHMcesTII1FCjuapjjj0VxD9MMFItiYgoP4qBuRDE8eaCgUIpq+hbEV1sX4JWo813v/q2LfBs43alVi8iIio8rRV1PXAwYylr3r1xgUGCoEnTonn3JqVSJyIi0o/WigYzMlAoZSJXQlCzQNjY6v7o1TZqePmWQUivpqVaNyIiopwYKBjB9J8nwMXDJc9gQQQJtva2mPnbW7C1Y88QEZEp0rJFgUqSX2AFLDj6Cdq82BLqrMGCCgju0hBfH5yNOiFBxqwiERHlQ2tFgQJvWY3Et2o5vPu/fyHm7iNcOREGRatF1XqVUb6Kj7GrRkRElImBgpF5li+D5t0aG7saRESkB0VRyWLI8eaCgQIREZGetFAZlEfBkGNLG8coEBERkU5sUSAiItKT1ooSLjFQICIi0pNiRWMU2PVAREREOrFFgYiISE9aK+p6YIuClbhy5QpatWqFmjVrolmzZjh//ryxq0REZPZdD4oBxVywRcHCKYqC0KNX0XfAC2gWFIKpA/sizuUehgwZgqNHjxq7ekREZkkxsEWBgQKZhJuXb2P2wLm4cOIiLiMU/rfq4L87lkGtVuGy3WWEXgpFUC2miiYiIt3Y9WChom5EY2Lrd3H9TDiS8AQOcIQ2TYGiVeQS1nhsg8/HfyNbHIiISD+KbBUwoMB8MFCwUN+98zMSYxOh1Wh17nNix1mc2XuhVOtFRGRJmRm1BhRzwUDBAsVEx2LfmsPpLQcAHOGEZCRBq6Q/Fq0ISXgMZ1sXbFiwxci1JSIiU8ZAwQJdP30jM0gQ7FWOcEMZRCFCPo7GLTjAGY4aF5w/eNmINSUiMk8KZz2QOdNqc/d+1UYwLuAobiiXYAM71EXT9Cc4RoGISG9aRQWVleRRYKBggQLq+UOlEhHrP0GAi8oNzfBstv1sbNUIDK5mhBoSEZG5YNeDBfL2K4uWPYOhtsn/6xXdE73f7Fpq9SIishSKYngxFwwULNTwj1+BvaOdzmBBpVaheffGCO7SsNTrRkRk7hQrGqPAQMFCVanjjy92fwBvPy/52MbWRgYNGYFDh5dbY8avU6BW81eAiIiMNEZh7969+Oyzz3D8+HHcuXMHa9euRZ8+fUrylJRFzeDq+OHafBzdfApH/jyOpMfJKF/ZB50Ht4NfYAVjV4+IyGwpXGa6eCQmJqJhw4ZYsGBBSZ6G8mFjY4OWzwdj4sKReHvFeAyZ9TKDBCKiYlo9UmtA0cecOXPkgn5ubm4oV66cvOkODQ3N95jly5fLge1Zi6Ojo2m1KHTr1k0WIiIiS6IYOCBR32P37NmDsWPHymAhLS0N77zzDrp06YILFy7AxcVF53Hu7u7ZAgoRLJj19Mjk5GRZMsTFxRm1PkRERKZgy5YtuVoLRMuC6Npv27atzuNEYODr62vQuU1qJJtoWvHw8Mgs/v7+xq4SERGRjhYFQ2Y9/HNDnLVkvVnOT2xsrPzTyyt9wLouCQkJqFKlirye9u7dG+fPn4dZBwrTp0+Xbz6jREZGGrtKREREJTY9UlzAs94gixvmgmi1WkyaNAmtW7dGvXr1dO4XFBSE77//HuvXr8dPP/0kj2vVqhVu3rwJs+16cHBwkIWIiMgaREZGynEEGQpzDRRjFc6dO4f9+/fnu19ISIgsGUSQULt2bSxevBizZs0yz0CBiIjIHChPiyHHCyJIyBooFGTcuHHYuHGjTD9QqVIlvc5pZ2eHxo0b4+rVq3odV6KBgugbyVqhsLAwnDp1SvapVK5cuSRPTUREZDF5FBRFwfjx42U+ot27dyMgIEDvc2o0Gpw9exbdu3c3nUDh2LFj6NChQ+bjyZMnyz8HDx4sR2wSERERCtXdsHLlSjneQORSiIqKktvFuAYnJyf586BBg+Dn55c5zuHDDz9Ey5YtERgYiEePHskEiOHh4RgxYgRMJlBo3759thUMiYiILIJSTH0PhbRw4cLM62pWy5Ytw5AhQ+TPERER2dLyx8TE4I033pBBhaenJ4KDg3Hw4EHUqVNHr3NzjAIREZG+FAMXdipC10NBRJdEVl999ZUshmKgQEREZOKZGY3JpPIoEBERkWlhiwIREZGeFCtaPZKBAhERkb4Uld7jDHIdbybY9UBEREQ6sUWBiIhIT4oVDWZkoEBERGTieRSMiV0PREREpBNbFIiIiPSkcNYDERERWUr3gSHY9UBEREQ6sUWBiIhITwq7HoiIiEgnK5r1wECBiIhIb6qnxZDjzQPHKBAREZFObFEgIiLSl8KuByIiItLFigIFdj0QERGRTmxRICIi0pdiPctMM1AgIiLSk2JFq0ey64GIiIh0YosCERGRvhTrGczIQIGIiEhfivWMUWDXAxEREenEFgUiIiI9qZT0Ysjx5oKBAhERkb4UjlEgIiIiXThGgYiIiIgtCkRERPpT2PVAREREulhRoMCuByIiItKJLQpERET6UqynRYGBAhERkb4UznogIiIiYosCERGRvlTMzEhEREQ6WdEYBXY9EBERmbg5c+agWbNmcHNzQ7ly5dCnTx+EhoYWeNyvv/6KWrVqwdHREfXr18emTZv0PjcDBSIiIhO3Z88ejB07FocPH8b27duRmpqKLl26IDExUecxBw8exMCBAzF8+HCcPHlSBheinDt3Tq9zqxRFMdkGkLi4OHh4eCA2Nhbu7u7Grg4REZmw0rhmxD09R5VPP4La0bHIr6NNSkL42+8iMjIyW10dHBxkKci9e/dky4IIINq2bZvnPgMGDJCBxMaNGzO3tWzZEo0aNcKiRYsKXVe2KBARERV1eqRiQAHg7+8vA4+MIroYCkMEQ4KXl5fOfQ4dOoROnTpl29a1a1e5XR8czEhERGQkkXm0KBREq9Vi0qRJaN26NerVq6dzv6ioKJQvXz7bNvFYbNcHAwUiIiIjzXpwd3fXu5tEjFUQ4wz279+P0sBAgYiIyEymR44bN06OOdi7dy8qVaqU776+vr64e/dutm3isdiuD45RICKT8eDBAznQKqPUrFkTtra2ePjwobGrRmRUYt6BCBLWrl2LXbt2ISAgoMBjQkJCsHPnzmzbxIwJsV0fbFEgIpOhdVUwa9NsxKbGwtnGGcd/OIYzh07nO2CLyBoyM44dOxYrV67E+vXrZS6FjHEGYgCkk5OT/HnQoEHw8/PLHBA5ceJEtGvXDl988QV69OiBVatW4dixY1iyZIle52agACApKQkvv/wyLly4ID9wMeVk4cKFCAwMlFHcBx98IL8gMcjE29sbf/31l7GrTGRRkjRJ+D5sOY48PAo11FCpVPLv3tpvf0WPyT0RkxIDT3tPY1eTyGhdD+KaJLRv3z7b9mXLlmHIkCHy54iICKjV/3QUtGrVSl673n33XbzzzjuoUaMG1q1bl+8AyLwwUHhq5MiR6Natm/wH6sPZn6JHr/4YNOZjHDuwEY/uXcOZM2fh6Oig92hRIspfmjYNX4TOxZWEq/KxFlr5j2j0mbtIjkuBbbA9PrrwCT6o+x5c7VyNXV0ioyhMyqPdu3fn2ta/f39ZDMExCoBMbdm9e3ckJafi3c824LedtxEeHo5tey9i04afEWfTEEP//RPCIu/rPQiEiPJ36MFhXE64AiXHLdbVDZdRvXugvJ15mPIQf0ZtNlodiXS2KBhSzAQDhafSNFq8PWct9v59BXeu7odXhbpITn6M1KR4PLhzHn/+/AEaN2mKhYu/N3ZViSzK9ru7oEJ68pkMqY9TcWNnGAJ71shsZdgdvQep2lQj1ZIo7zEKhhRzwUDhqb1HruDEuUiEX9iBpMT7qFK3GxRFK4tWk4oGHSYgqNmreHvqv3H69GljV5fIYppTIx5H5GpNuLEjDJ6BXvCoWiZz22PNE9xLvm+EWhJZNwYKT/2++SRuX9mDB7fPoU6rEbCxtYedvTPUtg4oV7mJ3MfOyRMO7pWwd98BY1eXyCLkDBCydjvU6FWz1OtDVNopnM0BA4Wntm9ajejIk6jX5g3Y2qdPNRF8KjVCTFT6Up6pKY8R/yACZctVNmJNiSyHWqWGn5Nfrq6HbkufR2DP7IGCo9oR3g5lS7mGRDpY0RgFznoAcPPmTVw+sQ6OLl44ty99RS2V2hYNO0yQXRBXjv+CqLCDcrtfzQ5o0DC9hYGIDNe5/LNYduOHfPcRUybb+TwDe7V9qdWLyJTyKBgTAwVApsGc9MEvOH42Alpt9m/PzsEFdVoNzXxsb2eDqpV4V0NUXFp5t8Lue3sRnhiRPjUyjyDB3c4d3St0M0r9iKxdqXQ9LFiwAFWrVpXTEFu0aIG///4bpubFbo1zBQk52ahV6NquLlxd8l7da8KECfJ9ilwMp06dytx+5coVmfhCpKNt1qwZzp8/X+z1JzJX9mo7/DtoCup71M0MDDL+Eyo5++HdOtNRxt7DyDUlyoJdD8Vn9erVmDx5MhYtWiSDhLlz58r1sENDQ2UGRFPRKrg62jSrjgPHrueZ2EIECR7uzhg+oJXO1+jXrx+mTp2KNm3aQKPR4sjJMETcjsGH/zcar7/+OqZOGY81a9bILFpHjx4t4XdEZD5cbJ0xOWgSbj25jYP3D2WmcG7m1RSBrtVl8E1kUhQDuw/MKFBQKYVJ92QAERyIu+j58+dnrqPt7++P8ePHY9q0afkeGxcXJ/NYx8bG6r0MZ1GkpKZh7tJd2LjrrPwS1er0NLIarYLagb74cEpPVChX8F2NbwU/1G41BKnwRGpyAo5v/QQtnv8ADetUxtTRndGyWT25PKhIEU1ERMWjNK4ZcU/PUe29j2Hj6Fjk19EkJeH6rHdK7fpmsi0KKSkpOH78OKZPn565TeSh7tSpEw4dOpRr/+TkZFmyfiGlyd7OFlPHdMGwAa2wbd9F3H+YAGdHO7RpFohagYXLyLhh+xk8inuCmEeP4VrGE8mPH8HO0R0qtQ3OXb6NUe+shK9vRZmT25QCBZEvfNiwYXJlsj59+hi7OkREpk0xzjLTFhco3L9/HxqNBuXLl8+2XTy+dOlSrv3FildiASZj8/ZyxSu9m+l9XExsIr74dofO58UYiKSkVNy5V7oBkC6iteTysWs4uOMw/vPd52jcoLGxq0REZB4UBgpGIVoexHiGrC0KopvCXGzceS7XgEh7pzJITYqDotXIVgWRKjrmwV2ojLy4zZm9F/Dfid/j6qkbOIl9CER9XMZpfPv2T6jjXx81g6sbtX5ERGQFsx7Eksw2Nja4e/dutu3icV6LK4llnEVfTdZiTk6ci8g1ENLe0RUuZfwQHXlCPn5w+6wMHmIfG28++PHtpzG10we4fjYCEbgMD5SFuyp9Cd/bV6Mw6Zn3cPHIFaPVj4jI1Km41kPxsLe3R3BwMHbu3Jm5TQxmFI9DQkJQ2nRNX8zaTy+eE+t1F8X29YtxdNNHSH4SiwsHlspBjEL1xi/ibthhHN/2KW6G/oWaTV+SLQvGkJqSijmvzpMtH/GaR4jGLQSgdrbvR5OqebqPcepIRERW1PUguhIGDx6Mpk2bonnz5nJ6ZGJiIoYO/SeJUWnJOn1RUVKhPNkEJfWsfC78tje+/XYpWrZsWeTXHzp6GjZsOy1nSWTl7FYODdqPz7atip8XjOHA2r8Rez9e/vwI9/EEj3EQW2R/WQqScBEnkJKWBO11LU7tOocmnRoYpZ5ERGQlgcKAAQNw7949zJgxA1FRUWjUqBG2bNmSa4BjaWjbtm36D8oTKA+HQolNkR+BuLt+Y2Q45r1fFf/+yKbIr9+rUwOs3ZK7pSKn8t5uCK5fBcYgLv42tjbQpGlQSVUdlfDPWIRjym5URg2UU/nJfU4yUCAigrUPZiyVzIzjxo1DeHi4nPp45MgRmVvBWEQrArQPASX9rhpIw1eL76NVMycEN0gD0q5BSS5a5sgaAeXQqU2tApPDvDmonczRYAypqWmF+g0VbyEtRexLRETWPEbBpGY9lDRFSYESNzPbtnOXkvH7nwnYvbbSP/s9WQVFmQGVSv9kGu+Me07+uWP/JZnNMaMbQlx4bdRqTBnZCR1b14KxVKpREYqOVNVNVe0zf04TLQ41K5RizYiIzIwCq2BVgQKStgJKbLZN+448wY3IVAS1uiEfR93T4MJbEYiKnYA3Jy4pUtKm9//1PF59oblMvhQe+QC2djZoXNcfz3esD08PZxhTlyHtsXzGqgJ/wx0c7dH+5dalVi8iIjJNVhUoKKlncr3lMYPLyJLh2b43MeGNsujzYkWDzlWjajlMeaMTTE3ZCp7oO7EH1nz1R76xwqvv9oOLu3GDGiIik6VwjIJFGj1xHSo3uYKbd9LQbeAt1AxJb0Uw9y9RXyM+fRW9xnSVP9vY/vMroLZJ/3ng9Bfw8jSmcSYi0oVjFCzU4gXTocTlvxDVrt/Txyqo7Iw3jqCkiSRY4+ePQM8xXfHn4u24fPyaHIBZJ6QmeozqDL9Ajk0gIiIrDBTg1A2InwUoiQXtCDj2hKWrWtcfY78eZuxqEBGZH4VdDxZJpXKCyu2dgvdzfxsqtUup1ImIiMyPil0Plkvl3F8kKoYSN1tMg3j6EYhvTKQrtofKfRpUzq8Yu5pEREQmweoCBUHlPABw7AEk/ZGZwlllVxdw7A2V2rirOhIRkRmwoq4HqwwUBBkQOA+ECgONXRUiIjI3ivUEClY1RoGIiIxL1yq+Ba3uS8bDQIGIiEp1Fd/9+/ejSpUqSNOm4ejDY1gT+Tu82/rgvxsXyu3mQMXBjERERCW3im+KNgWfhX4FxzRH2KhsgCrAtcc38DAlBhfjLqERGsGkKex6IDJ7SUlJ6NOnD2rWrImGDRuic+fOuHr1qrGrRWT1jjz4G3Fp8XisSc9po1E0sghaaLEyYhWOPTwBswgUFAOKmWCgQBZt5MiRCA0NxenTp9G7d2+MGDHC2FUismqiJWHZjR8K3G/ZjRWya4KMj10PZJE0Wi32376J1SmPMXPpIqhVgH9aMkKvXYOiKHLAFBGVvr8fHsMTzZMC90tIS8DxmJNoUbYZTJHKwHEG5jRGgS0KZHEep6Zi6PrfMHLjehyMjMCDJ49x7/FjbPv5f3hcrSre2r4FaVqRYIuIStu1hGvpYxIKIPYR+5oshV0PRGbrrW2bcfBmpPxZo6T/bXy0bSdS7t+HZ8/uWHfpAj47uM/ItSSyTsve+R6re6zE4+hE7JiwFWtf/FVuPzTnANY8vypz+5q+q6GY09W0FOzduxc9e/ZExYoVZavounXr8t1/9+7dcr+cJSoqSq/zsuuBLMrVhw+w5dqVbNtid+1G4pmz8H1zFNT29vKfnuWnTuDNpi3g4ehotLoSWaP3vpqBH8J/yrU9ZHrrXNv8nf1hqlRG6HpITEyUA7OHDRuGvn37Fvo4MU7L3d0983G5cuX0Oi8DBbIoay6eh41KldmSEPvXHiQcPwnfsaNg4+yUuZ/oevjj8iW81sDEp2ARWZhW3i3xv4jVSFVS893PUe2IFl6mOT7BWNMju3XrJou+RGBQpkwZFBW7Hsii3ImPz/z7l/boER6u+wPaJ0mImr8It/7zJW5/OU8+Z6NW43Z8vFHrSmSNnGycMMBfLM6Xv5crvwQHGwdYuri4uGwlOTm52M/RqFEjVKhQQU4RP3DggN7Hs0WBLIqznR3UUIn1QWFbpgwC5n2e535i5oPYl4hKX2ffjjJfwi+Ra2T+BBXSZyEp0MJWZYeBlQegQ7l2MGlK8bQo+Ptn716ZOXMm3n//fRQHERwsWrQITZs2lQHI0qVL0b59exw5cgRNmjQp9OswUKB8ifzrGzZsQHh4OE6ePCkjU2HLli149913kZKSAmdnZyxevFj2nRlbh6oBWH0+fUXQ/IiuiWcDqpVKnYgot66+ndHaOwQH7h/CjcRwuS3ApSpae7eCi60zTJ3qaTHkeCEyMjLb+AEHh+JrRQkKCpIlQ6tWrXDt2jV89dVX+PHHHwv9OgwUqMC87FOnTkWbNm2QmqrBsTPhuH3nLga9PFCOwG3QoD727duHV199FefOnTN2dfFsQHX4urgi+nEitE/HKeQkxjA0KO+LOj76DeghouLlausqAwZr5u7uni1QKGnNmzeXa23og4ECFZiXPU2jRcLjZEye9SsUO2/Ex0QiWWOLGV/vxyt9UtC/RxtERETgxIkTejVnlQRbtRqLnu+NV377BcmatMxBjVmDhDKOTpjbtYfR6khEFkAxz7UexMqcoktCHxzMaMbyWpa1uNc30Gi0mPnFH0hITEZ8YvogGydXb6SlPMb1q+fx9bK/MGzcLMTHx+PGjRswBaK1YO2AV9ExoDrUWTIwiiCiV1BtrH/5Vfh7eBi1jkRk3lRGWD0yISFB/luf8e99WFiY/FncqAnTp0/HoEGDMvefO3cu1q9fL68BosV30qRJ2LVrF8aOHavXedmikIWp9rsXpltAULQPoaSG4Y1hPdDt+V+hVtth/vz5cn0DkXijKDb9dQ57jmTPS2Br54SgFq8j/PxmaNKScc2rCqoGBMLW1nR+nWqULStbFu4mJODKwwcyYKjt7QNPp3+mSBIRmVOLwrFjx9ChQ4fMx5MnT5Z/Dh48GMuXL8edO3cygwZBXMumTJmCW7duyWtagwYNsGPHjmyvURim8y+7kcXExMh+dtHvXrduXZPqdy9ouVYgFdq4OVCiT8MBWnRrDuD+MijOr6NFiyb4/PO8R/4XRMwMWP3HceS1LEIZn0BZ0nfU4NjmWahTpw5MTXlXV1mIiMxd+/bt5b/LuohgIStxIymKoRgoAEhOScNPv2yHonLAlytOwNP9Ejq1qWUy/e75UZIPAJp7QMrfALJM99Peh5IwD/M+S0KvXkXrj3/wKBE3bj7I87mUJ3Gwd0ofgBN+YTtcvQJQlbMIyER06dJFpqlVq9Vwc3PD119/jcaNGxu7WmRpFFgFqw8UroXfw5RZvyEq+h7i42Nx9O8jKOMdgD//3Cj73Q8fPW2ygYKijYXyaOzT39bcixzNmXcf164nYtHXZYv0+snJabh6Yg1ioi4hJTkeFw4shY2tA4K7TkPExa2Iux8GRdHCzasKApu8hNTUNNja2BfDOyMyzC+//AJ3D3c5P1/kwx8yZIhcapyouKisaPVIqw4U7j2Ix/gZq+WI/qz97tfTkuXFz9m9PL5bfViOBShX1g0m58laQMl7udYvFsZg7aYEbPvFD85YB0U7FSq1fk3wXmWcUbv5S0hNyx2EBDbJnlnNzdURjg5MYETG9TAlBrvu/oU99/YiLi0etipbJF9+ghQlxdhVIzJbVh0o/PrnCRkkaLVKrn53rSYNf2/6EGoHL/y68TjGDm4PU6Mkbcmz7eurRTFYtTZeBgllPMRyrklAykHAsYter+/kaI/Oz9TG1j0XoHn6GeVFrVahd+cGcvYFkbFcS7iOz0K/RLImWWb92//+HkQdT18lr+NXnbHh9kb0qvi8satJlkIxz+mRRWG10yPFtL8N289kBgkZ/e4ZIi/tQBmf6nBwLosNO87IXAKmZvTkg6jcJAw376Sh28BbqBlyAzdvp+KtD+7jUZwWHfvdRJNO4QjpHgEoCUU6xyt9msPG1kZnECCCBGcne7zYjf2/ZDxxqfH4PPRLJGmSZJAgtHm/Hfr9MQCNRzfBifnH8NvNtTjyQIzloYKmWQtim8jqJ7KxirJ69Wqj1tPUqIwwPdJYrLZFIS4hSbYmZJVXv7uQ+DgF8QlP4OnhAlOy6KtO6S0FOcYnaO7UyL2zumhZCKtWKovP3+mLtz9Zi6TkVGQMuJVxgwK4uTjiyxn94GOKXTNkNURXwxNNEpQ8btOq96iBw58eRHJsMjbc/hPNvZqx9SufadYp2hTZKiOI4CAjbTtZL6sNFOxsRZN8/v3uWdnmsb+xqZz6QkkpRCpOtTdg37LI52lSvzLWLBopcyps33cRsfFJ8PJwRrcOddG1bR24OFv+Cm9k2vbdP5AZJKTEJyMtSQNnn/T1AiL2hMPB3QH27va4+eQmbj25jUrOfkauselNs07RpmJ52A+ISYmVjx+kPMC6WxtQLqgcKjpVNHItTZBiPV0PVhsouLo4oHoVH1yPuJd5l5wXceNRzd9b3jmbHDHmIKGSaEIQ7Qg6d1O5jIJKZdhX7eHmhIG9mslCxiVWgRNJVLZu3QpHR0eZFOynn36CNYtL/afbMCUhFXve2QVNskb+/XXwdMSzX3bObEWITY1FJTBQyOrXyN8QlxaH64k34AlPuU38s/j1pLn4WpmLdiHtseTLxfDx8TF2VU2GirMerEP/Hk3wyX+35ruPCCL69wiGKVKp7AHP5VAevg5oo3KEqaIFRAM4DwGc/0npSeZNJFsZNXkUYpIeYcHehajmFgCXeNNfaa+kOdk44YkmfQaQawVX9FjWS+e+zmawMmFpOnT/MDbe2ZS5zHOGrou6w9XXFdo0LU4vOomBrw/Eji07jFhTMharHcwodGtfF62bVssz86AgtrcKrobnOtSFqVLZVobK+w+o3KYBNpXTYz+VE+DQASrP5VC5TWd/rIU4H3sBk49MxcrlK+HyqjtWRq7CrAsfY/79Rbgcnz3NtrVp6dUc6kL8c+Zl74UqzuLvCWUEniJIEPkmchJBgqC2VaP2y3VxYP8BI9TQDLoeFAOKmbDqFgUbGzVm/7s3vv3fAfy2+aQcrJdB5ATo260RRg5sA1sb046nVGp3wGUoVC5DjV0VKiGnH53F3Mtf48G1B7D3cMCZFacQ9fdt2DjYotEbTXAn6Q6mBk1BLfd/1p63Jh3KtcfWu9sL/Mf3Od8uUKtM++9zaYpKuoubT27l2p76JBVKmhb2bunjj65vuwqvmkVL3GaxFI5RsBpikOKY19ticL+WOHIqDLFxT+Dh7oQWjQLktD8iY0vTpmHJ9aVysJ5Wo0HinQSUCSiD4LHN8CD0AXaM34Le/3sRi+2W4ouGn1rlhbCcow9GV38DC68ukY8zpkhm1dKrBTqX72iE2pmu+LR4HJpzALcOROLJwyfYMWEr7Fzs0Onrrtg9bRcUMX1cAVwruqHNzHbGrq5JUXGMgvURQUGHEOu8GyPTdizmOBLS0vNguPi6QqVWIaBrdfm4bFBZ+Y/4w2sP4FjWEWdiz6JRGdNd8bQkiWmPXnW8sPH2Jpx6dDpzFkQFR1909e2Cdj7PWGUQlR9XW1eETG+d53M9f+yT7bGHHZdmt1YMFIhM3KX4y7BRqaFRtHAs4wjfphVw+/AtVGrtj/jb8Ui4HY8yVcvABjYIjbtstYGCEOhaHZNqjkdCagIepT6Cg40jvO3LcpyODiKIquhYUXZd5ZWDIoMY/9G6bEip1s3kKex6ICIToVE02abwtpzWCgc/2o8TC47JAbctp7WGczkXiPFoYl8CXO1cZaH8iQCqR8Vu+Pb6d/nuJ1pini1vemnsjUmlKLIYcry5YKBAZOIqOlbIdrfn5ueOrgu759pPBAkVnCqUcu3I3ImWgsjHkdgStU22HGQd3yEei2BibOAY+Dgwh4K1YocdkYlr7d0K6kI0ndur7dCybPNSqRNZDhEIvOz/EibUGIuabv+kf7dR2SCkbEu8X/c9NPFkGudcOD2SiEyFu50belToLlc/zM8Lfn1k4iGiogQLwZ5NZBGJq8TiWi62rjL4pLxx1gMRmZQX/HojTUnDpjtbsjUPi59Ft0Qfv17o5tvV2NUkCyCCTQaclBUDBSIzIAaTDfDvjw4+7bH73h7cSAyXufSquVZDe592KOvgZewqElkXhbMeiIxiwoQJ2LBhA8LDw3Hy5EkucZtHYqGX/PsZuxpEVk9lRV0PHMxIJqVfv37Yu28fqlSpYuyqEBERWxTIVCSnpWHtpQtYERmGy6eO4lZ8HMZt2oDxtmr0qVUHDrb8VSUiE6Kw64Go1MQnJ2PwujU4dTdK9rtn/P258egRpu/ajtUXzmFF7xfh5pC+QA0RkbGp2PVAVHqmbNuMM9F35c9Z/+5k/HzmbhTe2r7ZKHUjIrL2PAoMFMiorsc8xI6wa9Dmk85UPLf9+jWEPYop1boREREDBTKyDaGXYFOIrINin/WXLpZKnYiI9Ol+UBWhmJMSG6Mwe/Zs/Pnnnzh16hTs7e3x6NGjkjoVmbF7jxPTV/Z72qJwf/UaPD5/EZr4eEQt/BZqRwf4vzdd7nP/yWNjV5eIKJ34N8uQhZ24KBSQkpKC/v37IyQkBN99l//KZGS93B0coGT5C+M9IO8cAWIfd3sOZiQisphA4YMPPpB/Ll++vKROQRagW2BNLD5+tMD9NIqCbjVqlkqdiIgKorKiWQ8mNT0yOTlZlgxxcXFGrQ+VvAblfdHItwLO3o2SwYCu8Qliv/rlypd6/YiIrD2PgkkNZpwzZw48PDwyi7+/v7GrRKVgfrfnUd7VNc9BjWKbeG5+t55GqRsRkbXTK1CYNm2aHFSWX7l06VKRKzN9+nTExsZmlsjIyCK/FpmPim7uWD/gNQxvHAw3e/vM7W72DhjepCk2vPwaKri5GbWORERZqbSGF4vsepgyZQqGDBmS7z7VqlUrcmUcHBxkIetT1tkZ09q0w79atpbpmwU/N3embiYi06RYT9eDXv8K+/j4yEJUUkRgUM2TSyYTEVn8GIWIiAiZQ0H8qdFo5M+iJCQklNQpiYiITD7ZkqqIMyb27t2Lnj17omLFirKrf926dQUes3v3bjRp0kS21gcGBhZpJmKJBQozZsxA48aNMXPmTBkciJ9FOXbsWEmdkoiIqHQTLikGFD0lJiaiYcOGWLBgQaH2DwsLQ48ePdChQwd5oz5p0iSMGDECW7du1eu8JdYBLKIW5lAgIiJLpDJCHoVu3brJUliLFi1CQEAAvvjiC/m4du3a2L9/P7766it07drVPKdHEhERWZO4uLhsJWsuIUMdOnQInTp1yrZNBAhiuz4YKBARERlpmWl/f/9s+YNEPqHiEhUVhfLlsyeqE49FQPLkyZNCvw7nnhERERmp6yEyMhLu7u6Z200xRQADBSIiIiNxd3fPFigUJ19fX9y9ezfbNvFYnM/JyanQr8NAgYiIyAKXmQ4JCcGmTZuybdu+fbvcrg+OUSAiIjKDPAoJCQmZOYkypj9m5CvKWAZh0KBBmfuPHj0a169fx9SpU+XyCv/973/xyy+/4F//+pde52WgQEREZAaOHTuWmZNImDx5svxZ5C0S7ty5kxk0CGJq5J9//ilbEUT+BTFNcunSpXpNjRTY9UBERGQGaz20b98eSj5dFnnlLhLHnDx5EoZgoEBERGQGCZeMhV0PREREpBNbFIiIiPSlVdKLIcebCQYKREREZjBGwVgYKBAREelJZeA4A3G8ueAYBSIiItKJLQpEREQWmJmxuDBQICIi0pOK0yOJiIiI2KJARESkP4WzHoiIiEgHlaLIUlSGHFva2PVAREREOrFFgYiISF/ap8WQ480EAwULUbVqVTg4OMDJySlzXfIBAwYYu1pERBZJZUVdDwwULMjq1avRqFEjY1eDiIgsCAMFMxcZG4ufzp7CnYR49Fn9M3yPH0afWnXwWv2GqOTuYezqERFZJoWzHsgM7Lx+DW9u2gCtoshye8XPuA0FF6pUxtLePbFkwCt4NqCasatJRGR5FGZmJBN36f49jNm0ARqtVgamFca/CVsvTygaDWL+3IzbP/yMMa4u+GPg66hZ1tvY1SUisigqZmYkU/fdyeNQFCWz9UoECYLKxgbu7doi6XqYbGX4/uRxo9aTiIjMGwMFM5ScloYNoRehedp0pU1Ohubxk8znE0+chH2livL5daEXkaLRGLG2REQW3PWgGFDMBLsezFBschJStf9MwtXEJyD6+xVQtOmja+zKloXPqwPlcyJIiEtOhrezsxFrTERkWVTa9GLI8eaCgYIZcrazz/bYzrss/KZO1rm/i51dKdSKiIgsEbsezJCrvT1a+vlDrVLlu5+NSoU2/pXhxECBiKh4KdbT9cBAwUwNa9xEDlbMjxijMKRRcKnViYjI6vIoKAYUM8FAwUx1qhaIkcHN5M852xUyHo9p2px5FIiIyCAco2DG3m71DGqV9cai40dx+cH9zO0ib8Lops3RO6i2UetHRGSpVFzrgcyBSqWS6ZpFQBD2KAYxSU/g6eiEgDKe8jkiIiohCjMzkhkRQUE1Ty9jV4OIiCwQAwUiIiJ9KSLbnYHHmwkGCkRERHpSWdEYBc56KKIJEyagatWqstn/1KlTmduTk5Mxbtw41KhRA/Xr18drr71m1HoSEVEJUAzNpQCzwRaFIurXrx+mTp2KNm3ayMf3Hz/G2egozP9wFtxt7XD58mUZRERFRRm7qkREREWmtpY7/U2bNqFJkyZo1KgR6tWrhxUrVhh0nrZt26JSpUoyqdF/DuxFyHeLMPTXVVi78n/4K7AKBq1bg7PRd+Hr61sM74qIiEyKwsyMZn2nv3//flSpUgWKkgrlyR/QxLyF117ti+8XtMPJY79h48aNGDVqFOLj4w06V2RsLKITE7A/IlwGDGn3H8DGxRmPtu3ErxMno0WrECxYvarY3hsREZkIbTEUM2FxXQ/iTl9SkqE8HAolNgVQ1FCpUvEo6nco9//Eo5vNUbasFxwcHAw615Rtm2QaZREkiA9S0WqR9jAGdr7l4dWrB1Jv3sLE4SPQs80zqOznVzxvkIiIqBRZXIuCoKScBrQPACVBPlaptPjfogroN/wmApqGoW23/2HZ/CawM2CxpEv37+HYndvZttl6eoqTwbVpE/nYrpIfbLw8sXzbFgPfERERmeKsB5UBpSgWLFggu9cdHR3RokUL/P333zr3Xb58ueyGz1rEcfqyzEAh/j/ZVt1IS1Pw8dyHWPNdRYQdC8D2X/0wePQW3L+9tcjn2BMelmv1RhtXFzjWrIEnF0Pl49QHD5D28CEi7bl6IxGRRVFKf4zC6tWrMXnyZMycORMnTpxAw4YN0bVrV0RHR+s8xt3dHXfu3Mks4eHhep/X4gIFJe06kHo027ZT55Jx+24a2oY4ycfNGjmiUgU7nDiyqMjnWfHRxwif8SHSHsUiauG3iJw1R273fulFxO7ajZuffI7opcvh/VI/2JTxMPBdERGRtfvyyy/xxhtvYOjQoahTpw4WLVoEZ2dnfP/99zqPEa0IYlB9Rilfvrze57W4MQpIu5Jrk7+fLe7cTcPFyymoXdMeV8NScC08BUEB/yykpK/Jsz/C1B25WyTsvMuiwvgxmY9tVCpUcmOgQERkUZTiWeshLi4u22Yxdi6v8XMpKSk4fvw4pk+fnrlNrVajU6dOOHTokM7TJCQkyMH9Wq1Wzvz7+OOPUbduXetuURg17mtUbhKGm3fS0G3gLdQMuYHyPrZY9Fl5vDzqDhp3DMeLw+7g69k+qFzJucjneS6wJpxsC46zxEDH/nXrFfk8RERkuV0P/v7+8PDwyCxz5qS3Tud0//59aDSaXC0C4rGufD1BQUGytWH9+vX46aefZLDQqlUr3Lx507pbFBYv/g7Kvfa55p4MfMFNln/YAPbNi3weV3t7jApujrlHDurcR4xh6BRQHUFlvYt8HiIislyRkZFyHEEGQ2fjZRUSEiJLBhEk1K5dG4sXL8asWbOsN1BQ2fhCcXgWSP5L3M/ns6cGKudXDDrXuOYt8eDJY/x45pTsYhCtB0LGz639K+PLrt0NOgcREZkgrbjgGHj808GGWQMFXby9vWFjY4O7d+9m2y4eFzaxn5jp17hxY1y9etW6ux4Eldt08b/0VgNdnIdAZVfHoPOIFoMP2nfE2pdeQZ9adeDn5o4Krm5oXzUAy3r1xbLeL8LZgCmYRERkmlSlPD3S3t4ewcHB2LlzZ+Y20ZUgHmdtNciP6Lo4e/YsKlSooNe5La5FQVDZ+gNlf4ES+xaQeuZpwCBCvzQAjlC5jgZc/hlwaKiGvhVkISIiK6EUz2BGfYipkYMHD0bTpk3RvHlzzJ07F4mJiXIWhDBo0CD4+flljnP48MMP0bJlSwQGBuLRo0f47LPP5PTIESNG6HVeiwwUBJVtVajKroGSegFI3gtFSYbKphLg+BxUahdjV4+IiEgvAwYMwL179zBjxgw5gFGsXbRly5bMAY4RERFyJkSGmJgYOZ1S7Ovp6SlbJA4ePCinVupDpSimuzKFmDYiRoHGxsYWqg+HiIisV2lcM+KenqNT9UmwtSn6wMM0TTJ2XJtrFte3EhujcOPGDQwfPhwBAQFwcnJC9erVZTYpMReUiIjIrCnWs3pkiXU9XLp0SQ60ENMwRP/IuXPnZBOI6E/5/PPPS+q0REREZA6BwnPPPSdLhmrVqiE0NBQLFy5koEBERGZOMbBVgC0KeRJ9MV5eXjqfT05OliVDztSWRERE1jrrwVhKLY+CSPDwzTffYNSoUTr3EVM6sqayFKktiYiIyIwChWnTpuVa3zpnEeMTsrp165bshujfv78cp6CLWOxCtDpkFJHakoiIyORoFcOLpXY9TJkyBUOGDMl3HzEeIcPt27fRoUMHmWN6yZIl+R6na9UsczRhwgRs2LBBJrc4efKknO8qdOnSRc5pFXNd3dzc8PXXX8uUmkREZEYUbXox5HhLDRR8fHxkKQzRkiCCBJHkYdmyZdkSQVi6fv36YerUqWjTpo18HJ+cjCsPH2D6vLloVDUAnk5OWLt2rQy6Tp8+bezqEhERle5gRhEktG/fXq6DLWY5iGxSGQq7gIU5a9u2rfxTqyiY//dhHDiwG8ma9EWqbNVq9KgRBL87t2VXDRERmRnFegYzlligsH37djmAUZRKlSple86Ek0Ea3L3w4MEDdOzYUT6fqtUi8uZNfDf6TVSe/QFsXJzl9js//Iz5V67KIOHXdeuM/C6IiEhvWnEdM+BaZkZjFEqsL0A0qYuAIK9iSd0L+/fvl60mQlRCPI48fIAPV/8P/9u+DXXfmw61GHdRrWpmkCD4vDYQ/h+8B8/uz2HouHGy1YGIiMyIwsyMpEf3gkZRMHvfXzi5b1eui742ORnO9evlebxL86a48csa/HHqJHo3blIqdSYiItKH9YwuLCGRsbGITkzAkZs3cwUJSWE3ZNToWD19Fojm8ROkxcZmPp945hzUzi448vB+qdebiIgMoBjaqgCzwRYFA03fuVUGCKJVIeuHeX/1GiQcPS5/Ie4u/g5qRwf4jh2F6GU/QklNleMT1K6uqDBqOB6npRrxHRARkd4UDmakQrge8xAHb+adFMqrT08kHD8Jv3emwr58ucztflMmZtvPRqWCr4trideViIioKNj1YID9EeHQNbkx8cQp2FeskC1IyItoiehbuy5K0qZNm9CkSRM5K6NevXpYsWJFiZ6PiMjiabWGFzPBFgUDLP1wFsJ37oImPh5RC7+V3Qv+702Xz8Uf/htuIS3yPV6tUqFD1WqoWda7xOooZpm89tprWLd5M2rUqYO4u3fRsF499O3bV2aGJCKiIlDY9UCF8H//+RRj/tyQ53MV/zU+22PR8qBkCRDEuIbgChXxVdfuJVY/jVaLX86fRUJqCgb8vAJOgdWhuhsNezdXRCclMVAgIqICMVAwgGgNKOPoiEdJSQXu29i3gkzhLHJs1PHxwaAGjdGleiDsbGxKpG6pGg3e3LQBO8Ouo+ygVxH9/Qqo7O2hffwEFUYMwQu/rcKPL/RHw/KWnyWTiKjYKWxRoEKwt7HBpBat8P6eXQV0LwTg254vlGrd5h05hF1h16FoNHi0bQfKDRssWxSSwyNwd+ky2E97C8PW/4Z9Q0fC2c6uVOtGRGT2tMzMSIX0eoNG+FfLVpkzGDJk/NzGvwrmPfd8qdbpSWoqVpw+IX+FU27dRlpsnAwSBIcqlWHj4YGkyFuISUrChtCLpVo3IiIyL2xRMJDIhzC+eYhc5Omns6dxKDJCrvEQVNYbr9ZviJBK/qW+8NOByHAkpqbnZrAtUwaauHikRN2FvW95pN67j7QHD2BXzkeOm9gQegkv12tQqvUjIjJ3iqKVxZDjzQUDhWJSzdMLM9p2gCnIOmbCxt0N3gP6IXr5jzJgEbMgyr74Amy9PGWLw4Mnj41aVyIis6QohnUfcIwCGZOnk1O2x67BjWXJSQUVfJz/WayKiIj0udArBh5vHjhGwQKJcRFu9g4F7qdAQZ9adUqlTkREZJ4YKFggB1tbDG8cnO8+YrClt7Mznq8ZVGr1IiKyGFrryczIQMFCjW3WAs/XCMqcopkzSHBzcMCKPv3gaMupkUREelMMWTnSwBwMpYxjFCyUjVqNuc/1QKdq1bH89Emcirojt7s7OOCVeg0xuGFjlHflYlRERJQ/BgoWTLQk9AqqLUtSWipSNBq42jvkamEgIiL9KFotFBWnR5IFEV0M7GYgIiomCmc9EBEREbFFgYiISG9aBVBZR4sCAwUiIqIiXei1Bh5vHtj1QERERDqxRYGIiEhPilaBYkDXg1h3x1ywRYGIiEhfitbwUgQLFixA1apV4ejoiBYtWuDvv//Od/9ff/0VtWrVkvvXr18fmzZt0vucDBSIiIiK0qKgNazoa/Xq1Zg8eTJmzpyJEydOoGHDhujatSuio6Pz3P/gwYMYOHAghg8fjpMnT6JPnz6ynDt3Tq/zqhQTbv+Ii4uDh4cHYmNj4e7ubuzqEBGRCSuNa0bc03O0V70AW1XRc9OkKanYrazVq66iBaFZs2aYP3++fKzVauHv74/x48dj2rRpufYfMGAAEhMTsXHjxsxtLVu2RKNGjbBo0SLLGKOQEcOIL4aIiCg/GdeK0rj/TVOSi9x9II9Hap7XNwcHB1lySklJwfHjxzF9+vTMbWq1Gp06dcKhQ4fyPIfYLlogshItEOvWrdOrriYdKMTHx8s/RcRERERU2GuHuOsvCfb29vD19cX+KP37+nNydXXNdX0T3Qrvv/9+rn3v378PjUaD8uXLZ9suHl+6dCnP14+Kispzf7HdYgKFihUrIjIyEm5ublBZyPoEInoUvxjifVlDd4q1vV9rfM/W9n6t8T2by/sVLQkiSBDXjpLi6OiIsLAweYdfHPXNeW3LqzXB2Ew6UBDNKpUqVYIlEn/ZTPkvXHGztvdrje/Z2t6vNb5nc3i/JdWSkDNYEKU0eXt7w8bGBnfv3s22XTwWLRx5Edv12V8XznogIiIycfb29ggODsbOnTszt4nBjOJxSEhInseI7Vn3F7Zv365zf7NsUSAiIqJ0YmDi4MGD0bRpUzRv3hxz586VsxqGDh0qnx80aBD8/PwwZ84c+XjixIlo164dvvjiC/To0QOrVq3CsWPHsGTJEuiDgUIpE/1PYrCKKfZDlQRre7/W+J6t7f1a43u2tvdrqgYMGIB79+5hxowZckCimOa4ZcuWzAGLERERsss+Q6tWrbBy5Uq8++67eOedd1CjRg0546FevXqWk0eBiIiIjItjFIiIiEgnBgpERESkEwMFIiIi0omBAhEREenEQIGIiIh0YqBgRLNnz5bTV5ydnVGmTBlYIn3XTjdne/fuRc+ePWX6WJGWVd+FV8yNmKstVrITKdbLlSsnl68NDQ2FpVq4cCEaNGiQmZ1QJK3ZvHkzrMUnn3wif68nTZpk7KpQKWOgYEQiV3j//v0xZswYWCJ91043dyLxiXiPIjiyBnv27MHYsWNx+PBhme0tNTUVXbp0kZ+DJRLp5MXFUqzgJ5LWPPvss+jduzfOnz8PS3f06FEsXrxYBkpkhUQeBTKuZcuWKR4eHoqlad68uTJ27NjMxxqNRqlYsaIyZ84cxdKJv1pr165VrEl0dLR833v27FGshaenp7J06VLFksXHxys1atRQtm/frrRr106ZOHGisatEpYwtClQiMtZOF2ulF3btdDJvsbGx8k8vLy9YOrHcr0iHK1pP9M2bb25Eq5FI/5v17zJZF6ZwphJRlLXTyXyJxWlE33Xr1q31Tg9rTs6ePSsDg6SkJLi6umLt2rWoU6cOLJUIhkS3oeh6IOvFFoViNm3aNDngJ7/CCyVZ4l3nuXPn5IXFkgUFBeHUqVM4cuSIHFskFui5cOECLFFkZKRcVOjnn38u9SWVybSwRaGYTZkyBUOGDMl3n2rVqsHSFWXtdDJP48aNw8aNG+WsDzHgz9KX+g0MDJQ/iyV/xZ32vHnz5EA/SyO6DsXA4yZNmmRuE62E4nueP38+kpOT5d9xsnwMFIqZj4+PLNYu69rpYtpc1rXTxYWFzJ8Yszl+/HjZ/L57924EBATA2ojfaXHBtEQdO3aUXS1ZieWMa9WqhbfffptBghVhoGBEYknQhw8fyj9FpC6aNAVxxyL6Py197XRLk5CQgKtXr2Y+DgsLk9+pGNxXuXJlWGJ3g1jCdv369TKXglj2VvDw8ICTkxMszfTp09GtWzf5XcbHx8v3LgKkrVu3whKJ7zTneBMXFxeULVvWosehUB5Ke5oF/WPw4MFyOlnO8tdffymW4ptvvlEqV66s2Nvby+mShw8fViyV+N7y+j7F92yJ8nqvoojpvpZo2LBhSpUqVeTvso+Pj9KxY0dl27ZtijXh9EjrpBL/yyuAICIiIuKsByIiItKJgQIRERHpxECBiIiIdGKgQERERDoxUCAiIiKdGCgQERGRTgwUiIiISCcGCkRERKQTAwUiIiLSiYECERER6cRAgYiIiKDL/wNAcNNpgI9pSAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -1111,7 +1351,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Score = 0.07945166528224945\n" + "Score = 0.11562995612621307\n" ] }, { @@ -1143,7 +1383,7 @@ " \n", " 0\n", " I was bothered by things that usually don’t bo...\n", - " 3\n", + " 0\n", " \n", " \n", " 1\n", @@ -1153,7 +1393,7 @@ " \n", " 2\n", " I felt that I could not shake off the blues ev...\n", - " 3\n", + " 2\n", " \n", " \n", " 3\n", @@ -1163,7 +1403,7 @@ " \n", " 4\n", " I had trouble keeping my mind on what I was do...\n", - " 4\n", + " 0\n", " \n", " \n", " 5\n", @@ -1173,7 +1413,7 @@ " \n", " 6\n", " I felt that everything I did was an effort.\n", - " 4\n", + " 3\n", " \n", " \n", " 7\n", @@ -1203,7 +1443,7 @@ " \n", " 12\n", " I talked less than usual.\n", - " 0\n", + " 4\n", " \n", " \n", " 13\n", @@ -1213,7 +1453,7 @@ " \n", " 14\n", " People were unfriendly.\n", - " 0\n", + " 4\n", " \n", " \n", " 15\n", @@ -1233,42 +1473,42 @@ " \n", " 18\n", " I felt that people dislike me.\n", - " 2\n", + " 4\n", " \n", " \n", " 19\n", " I could not get “going.”\n", - " 4\n", + " 1\n", " \n", " \n", " 20\n", " Sentir-se nervoso/a, ansioso/a ou muito tenso/a\n", - " 3\n", + " 0\n", " \n", " \n", " 21\n", " Não ser capaz de impedir ou de controlar as pr...\n", - " 3\n", + " 0\n", " \n", " \n", " 22\n", " Preocupar-se muito com diversas coisas\n", - " 3\n", + " 0\n", " \n", " \n", " 23\n", " Dificuldade para relaxar\n", - " 3\n", + " 0\n", " \n", " \n", " 24\n", " Ficar tão agitado/a que se torna difícil perma...\n", - " 3\n", + " 0\n", " \n", " \n", " 25\n", " Ficar facilmente aborrecido/a ou irritado/a\n", - " 3\n", + " 0\n", " \n", " \n", " 26\n", @@ -1278,12 +1518,12 @@ " \n", " 27\n", " Følt deg nervøs, engstelig eller veldig stresset\n", - " 3\n", + " 0\n", " \n", " \n", " 28\n", " Ikke klart å slutte å bekymre deg eller kontro...\n", - " 3\n", + " 0\n", " \n", " \n", "\n", @@ -1291,38 +1531,38 @@ ], "text/plain": [ " question_text cluster_number\n", - "0 I was bothered by things that usually don’t bo... 3\n", + "0 I was bothered by things that usually don’t bo... 0\n", "1 I did not feel like eating; my appetite was poor. 2\n", - "2 I felt that I could not shake off the blues ev... 3\n", + "2 I felt that I could not shake off the blues ev... 2\n", "3 I felt I was just as good as other people. 3\n", - "4 I had trouble keeping my mind on what I was do... 4\n", + "4 I had trouble keeping my mind on what I was do... 0\n", "5 I felt depressed. 2\n", - "6 I felt that everything I did was an effort. 4\n", + "6 I felt that everything I did was an effort. 3\n", "7 I felt hopeful about the future. 3\n", "8 I thought my life had been a failure. 2\n", "9 I felt fearful. 1\n", "10 My sleep was restless. 1\n", "11 I was happy. 3\n", - "12 I talked less than usual. 0\n", + "12 I talked less than usual. 4\n", "13 I felt lonely. 2\n", - "14 People were unfriendly. 0\n", + "14 People were unfriendly. 4\n", "15 I enjoyed life. 3\n", "16 I had crying spells. 2\n", "17 I felt sad. 2\n", - "18 I felt that people dislike me. 2\n", - "19 I could not get “going.” 4\n", - "20 Sentir-se nervoso/a, ansioso/a ou muito tenso/a 3\n", - "21 Não ser capaz de impedir ou de controlar as pr... 3\n", - "22 Preocupar-se muito com diversas coisas 3\n", - "23 Dificuldade para relaxar 3\n", - "24 Ficar tão agitado/a que se torna difícil perma... 3\n", - "25 Ficar facilmente aborrecido/a ou irritado/a 3\n", + "18 I felt that people dislike me. 4\n", + "19 I could not get “going.” 1\n", + "20 Sentir-se nervoso/a, ansioso/a ou muito tenso/a 0\n", + "21 Não ser capaz de impedir ou de controlar as pr... 0\n", + "22 Preocupar-se muito com diversas coisas 0\n", + "23 Dificuldade para relaxar 0\n", + "24 Ficar tão agitado/a que se torna difícil perma... 0\n", + "25 Ficar facilmente aborrecido/a ou irritado/a 0\n", "26 Sentir medo como se algo horrível fosse acontecer 1\n", - "27 Følt deg nervøs, engstelig eller veldig stresset 3\n", - "28 Ikke klart å slutte å bekymre deg eller kontro... 3" + "27 Følt deg nervøs, engstelig eller veldig stresset 0\n", + "28 Ikke klart å slutte å bekymre deg eller kontro... 0" ] }, - "execution_count": 17, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -1345,7 +1585,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 28, "metadata": {}, "outputs": [ { @@ -1383,7 +1623,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.2" + "version": "3.13.2" }, "widgets": { "application/vnd.jupyter.widget-state+json": { diff --git a/src/harmony/matching/matcher.py b/src/harmony/matching/matcher.py index 59c93b5..6f467aa 100644 --- a/src/harmony/matching/matcher.py +++ b/src/harmony/matching/matcher.py @@ -711,10 +711,17 @@ def match_instruments_with_function( vectors_pos ) else: - raise Exception("Invalid clustering function, must be in {\"affinity_propagation\", \"deterministic\" , \"kmeans\", \"hdbscan\"}") + raise Exception( + "Invalid clustering function, must be in {\"affinity_propagation\", \"deterministic\" , \"kmeans\", \"hdbscan\"}") + + # Work out response options similarity + options = ["; ".join(q.options) for q in all_questions] + options_vectors = vectorisation_function(options) + response_options_similarity = cosine_similarity(options_vectors, options_vectors).clip(0, 1) return MatchResult(questions=all_questions, similarity_with_polarity=similarity_with_polarity, + response_options_similarity=response_options_similarity, query_similarity=query_similarity, new_vectors_dict=new_vectors_dict, instrument_to_instrument_similarities=instrument_to_instrument_similarities, diff --git a/src/harmony/schemas/responses/text.py b/src/harmony/schemas/responses/text.py index b09b998..a63d7a5 100644 --- a/src/harmony/schemas/responses/text.py +++ b/src/harmony/schemas/responses/text.py @@ -86,7 +86,7 @@ class MatchResponse(BaseModel): questions: List[Question] = Field( description="The questions which were matched, in an order matching the order of the matrix" ) - matches: List[List] = Field(description="Matrix of cosine similarity matches") + matches: List[List] = Field(description="Matrix of cosine similarity matches for the questions") query_similarity: List = Field( None, description="Similarity metric between query string and items" ) @@ -99,6 +99,7 @@ class MatchResponse(BaseModel): None, description="A list of similarity values (precision, recall, F1) between instruments" ) clusters: List[HarmonyCluster] = Field(description="The clusters in the set of questions") + response_options_similarity: List[List] = Field(description="Matrix of cosine similarity matches for the response options") class MatchResult(BaseModel): @@ -109,7 +110,8 @@ class MatchResult(BaseModel): questions: List[Question] = Field( description="The questions which were matched, in an order matching the order of the matrix" ) - similarity_with_polarity: Any = Field(description="Matrix of cosine similarity matches") + similarity_with_polarity: Any = Field(description="Matrix of cosine similarity matches for the questions") + response_options_similarity: Any = Field(description="Matrix of cosine similarity matches for the response options") query_similarity: Any = Field( None, description="Similarity metric between query string and items" ) diff --git a/tests/test_response_options.py b/tests/test_response_options.py new file mode 100644 index 0000000..ade7635 --- /dev/null +++ b/tests/test_response_options.py @@ -0,0 +1,115 @@ +''' +MIT License + +Copyright (c) 2023 Ulster University (https://www.ulster.ac.uk). +Project: Harmony (https://harmonydata.ac.uk) +Maintainer: Thomas Wood (https://fastdatascience.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +''' + +import sys +import unittest +import numpy as np + +from harmony.util.instrument_helper import create_instrument_from_list + +sys.path.append("../src") + +from harmony import match_instruments, example_instruments + + +class ResponseOptionsSimilarity(unittest.TestCase): + def setUp(self): + self.ces_d_english = example_instruments["CES_D English"] + self.gad_7_english = example_instruments["GAD-7 English"] + + def test_responses_ces_d(self): + match = match_instruments([self.ces_d_english]) + sim = match.response_options_similarity + + # check dimensions + n, m = sim.shape + self.assertEqual(n, m) + self.assertEqual(n, (len(self.ces_d_english.questions))) + self.assertEqual(m, (len(self.ces_d_english.questions))) + + # check between 0 and 1 + self.assertTrue(np.all(0 <= sim)) + self.assertTrue(np.all(sim <= 1)) + + # assert that the similarity matrix has 1s on its diagonals + self.assertTrue(np.allclose(np.diag(sim), 1.)) + # assert that the similarity matrix is symmetric + self.assertTrue(np.allclose(sim, sim.T)) + # assert that the similarity matrix is not empty + self.assertTrue(sim.size > 0) + + def test_responses_gad_7(self): + match = match_instruments([self.gad_7_english]) + sim = match.response_options_similarity + + # check dimensions + n, m = sim.shape + self.assertEqual(n, m) + self.assertEqual(n, (len(self.gad_7_english.questions))) + self.assertEqual(m, (len(self.gad_7_english.questions))) + + # check between 0 and 1 + self.assertTrue(np.all(0 <= sim)) + self.assertTrue(np.all(sim <= 1)) + + # assert that the similarity matrix has 1s on its diagonals + self.assertTrue(np.allclose(np.diag(sim), 1.)) + # assert that the similarity matrix is symmetric + self.assertTrue(np.allclose(sim, sim.T)) + # assert that the similarity matrix is not empty + self.assertTrue(sim.size > 0) + + def test_responses_both(self): + match = match_instruments([self.ces_d_english, self.gad_7_english]) + sim = match.response_options_similarity + + # check dimensions + n, m = sim.shape + self.assertEqual(n, m) + self.assertEqual(n, (len(self.ces_d_english.questions)) + len(self.gad_7_english.questions)) + self.assertEqual(m, (len(self.ces_d_english.questions)) + len(self.gad_7_english.questions)) + + # check between 0 and 1 + self.assertTrue(np.all(0 <= sim)) + self.assertTrue(np.all(sim <= 1)) + + # assert that the similarity matrix has 1s on its diagonals + self.assertTrue(np.allclose(np.diag(sim), 1.)) + # assert that the similarity matrix is symmetric + self.assertTrue(np.allclose(sim, sim.T)) + # assert that the similarity matrix is not empty + self.assertTrue(sim.size > 0) + + def test_empty_responses(self): + # when the responses are empty, match_instruments returns all 1s + match = match_instruments([create_instrument_from_list(["potato", "tomato", "radish"], instrument_name="veg")]) + sim = match.response_options_similarity + self.assertTrue(np.all(sim == 1)) + + +if __name__ == '__main__': + unittest.main()