From 12d7a869ff8bbf0c04f0150e0b100102967110fe Mon Sep 17 00:00:00 2001 From: Jan Nowak Date: Tue, 25 May 2021 20:16:00 +0200 Subject: [PATCH] Regresja logistyczna. --- dev-0/out.tsv | 562 ++++++++++++++++++++++---------------------- mlrlrozwiazanie.py | 18 ++ mrlrozwiazanie.py | 26 ++ rlrozwiazanie.py | 199 ++++++++++++++++ test-A/out.tsv | 574 ++++++++++++++++++++++----------------------- 5 files changed, 811 insertions(+), 568 deletions(-) create mode 100644 mlrlrozwiazanie.py create mode 100644 mrlrozwiazanie.py create mode 100644 rlrozwiazanie.py diff --git a/dev-0/out.tsv b/dev-0/out.tsv index 296544f..ee6c023 100644 --- a/dev-0/out.tsv +++ b/dev-0/out.tsv @@ -22,12 +22,12 @@ 1 1 1 -0 1 -0 1 0 1 +1 +1 0 1 1 @@ -54,9 +54,9 @@ 1 1 0 +0 1 -1 -1 +0 1 1 1 @@ -73,7 +73,7 @@ 0 1 0 -1 +0 1 0 1 @@ -84,14 +84,14 @@ 1 0 1 -0 +1 1 1 1 0 0 1 -1 +0 1 0 1 @@ -109,7 +109,7 @@ 0 1 1 -1 +0 1 1 0 @@ -119,7 +119,7 @@ 0 1 1 -0 +1 0 1 0 @@ -139,7 +139,7 @@ 1 1 0 -1 +0 0 0 1 @@ -147,7 +147,7 @@ 1 1 1 -0 +1 1 1 0 @@ -163,7 +163,7 @@ 0 0 1 -1 +0 0 1 0 @@ -192,7 +192,7 @@ 1 1 0 -1 +0 0 0 1 @@ -217,7 +217,7 @@ 0 1 0 -1 +0 1 1 1 @@ -225,17 +225,17 @@ 1 1 0 -1 -1 0 +1 0 +1 0 0 0 1 0 1 -1 +0 0 1 0 @@ -253,10 +253,10 @@ 1 1 1 +1 0 0 -0 -0 +1 0 0 1 @@ -265,11 +265,11 @@ 1 1 0 -0 1 1 -0 1 +0 +0 1 0 0 @@ -308,15 +308,15 @@ 1 1 1 -0 1 -0 1 0 1 +0 1 1 1 +0 1 1 1 @@ -329,7 +329,7 @@ 1 1 0 -0 +1 1 0 0 @@ -338,9 +338,9 @@ 1 0 0 -0 1 1 +0 1 1 1 @@ -430,13 +430,13 @@ 1 1 1 -0 -0 1 +0 1 1 1 1 +0 1 1 1 @@ -452,7 +452,7 @@ 1 1 1 -1 +0 1 1 1 @@ -491,7 +491,7 @@ 1 0 1 -1 +0 1 0 0 @@ -512,7 +512,7 @@ 1 1 0 -0 +1 1 1 0 @@ -524,14 +524,14 @@ 1 1 1 -1 0 -1 0 +1 0 1 1 1 +0 1 0 0 @@ -553,7 +553,7 @@ 0 0 0 -1 +0 1 0 1 @@ -580,7 +580,7 @@ 0 1 1 -0 +1 0 0 0 @@ -593,7 +593,7 @@ 0 1 1 -1 +0 1 0 0 @@ -626,15 +626,15 @@ 0 1 1 -0 +1 1 0 0 1 1 +0 1 -1 -1 +0 1 0 0 @@ -646,7 +646,7 @@ 0 0 1 -0 +1 0 1 1 @@ -654,9 +654,9 @@ 0 1 1 -1 0 -1 +0 +0 0 0 0 @@ -674,7 +674,7 @@ 1 0 0 -1 +0 1 0 0 @@ -692,7 +692,7 @@ 1 1 1 -1 +0 1 0 0 @@ -705,7 +705,7 @@ 0 1 1 -0 +1 0 0 1 @@ -719,7 +719,7 @@ 1 0 1 -1 +0 1 0 0 @@ -778,17 +778,17 @@ 1 1 0 -0 1 1 -0 1 0 +1 0 0 0 1 1 +1 0 1 1 @@ -799,7 +799,7 @@ 1 1 0 -0 +1 1 1 1 @@ -827,7 +827,7 @@ 0 1 1 -1 +0 1 1 1 @@ -886,9 +886,7 @@ 1 0 1 -0 1 -0 1 0 1 @@ -897,6 +895,8 @@ 1 1 1 +0 +1 1 1 1 @@ -921,7 +921,7 @@ 1 1 1 -1 +0 1 0 0 @@ -937,8 +937,8 @@ 0 1 0 -1 0 +1 0 0 1 @@ -948,18 +948,18 @@ 0 0 1 -0 1 1 1 0 0 +0 1 1 -0 1 1 1 +0 1 0 0 @@ -975,8 +975,8 @@ 1 0 1 -1 -1 +0 +0 1 1 1 @@ -1010,7 +1010,7 @@ 0 1 0 -0 +1 1 1 1 @@ -1030,14 +1030,14 @@ 0 0 1 -1 +0 1 1 0 0 0 0 -1 +0 1 0 0 @@ -1049,14 +1049,13 @@ 0 1 1 -1 +0 1 0 0 1 1 0 -0 1 1 1 @@ -1065,11 +1064,12 @@ 1 1 1 -0 -0 +1 1 0 1 +0 +0 1 0 1 @@ -1093,16 +1093,16 @@ 1 1 0 -1 +0 0 1 1 1 +0 1 +0 1 -1 -1 -1 +0 0 1 1 @@ -1119,14 +1119,14 @@ 1 1 1 -1 +0 1 1 0 1 0 1 -0 +1 0 1 0 @@ -1163,7 +1163,7 @@ 0 1 1 -0 +1 1 0 0 @@ -1182,7 +1182,7 @@ 0 0 0 -1 +0 1 0 1 @@ -1266,7 +1266,7 @@ 1 0 0 -0 +1 1 0 0 @@ -1281,21 +1281,21 @@ 0 0 0 -1 +0 0 1 1 1 1 +0 1 1 1 1 -0 -1 1 1 1 +0 1 0 1 @@ -1318,7 +1318,7 @@ 1 1 1 -1 +0 0 0 0 @@ -1330,7 +1330,7 @@ 0 1 1 -1 +0 0 0 1 @@ -1353,7 +1353,7 @@ 1 1 0 -0 +1 1 1 1 @@ -1369,10 +1369,10 @@ 1 1 1 -1 -1 0 1 +0 +0 1 1 1 @@ -1392,7 +1392,7 @@ 0 1 0 -1 +0 1 0 1 @@ -1414,7 +1414,7 @@ 0 1 1 -1 +0 1 0 0 @@ -1424,7 +1424,7 @@ 0 0 1 -1 +0 1 1 0 @@ -1466,7 +1466,7 @@ 1 1 0 -1 +0 0 1 1 @@ -1484,12 +1484,12 @@ 0 1 0 -0 1 -0 1 0 0 +0 +0 1 0 1 @@ -1501,7 +1501,7 @@ 1 0 0 -0 +1 0 1 1 @@ -1543,7 +1543,7 @@ 1 1 1 -0 +1 1 1 0 @@ -1552,7 +1552,7 @@ 1 0 0 -0 +1 0 1 1 @@ -1572,11 +1572,11 @@ 1 0 0 -0 -0 1 +0 1 0 +0 1 1 1 @@ -1609,7 +1609,7 @@ 1 1 0 -1 +0 1 1 0 @@ -1625,12 +1625,12 @@ 0 0 0 -0 1 1 1 1 1 +0 1 0 1 @@ -1642,7 +1642,7 @@ 0 1 0 -0 +1 1 0 0 @@ -1651,7 +1651,7 @@ 1 1 0 -0 +1 1 0 1 @@ -1659,10 +1659,10 @@ 1 1 0 -0 1 -0 1 +0 +0 1 1 0 @@ -1705,7 +1705,7 @@ 0 1 1 -1 +0 1 1 1 @@ -1753,7 +1753,7 @@ 1 0 0 -1 +0 1 0 1 @@ -1776,14 +1776,14 @@ 0 1 1 -1 +0 1 1 1 0 1 1 -1 +0 0 0 1 @@ -1791,7 +1791,7 @@ 1 0 0 -1 +0 1 1 0 @@ -1800,7 +1800,7 @@ 0 0 0 -1 +0 1 0 1 @@ -1814,7 +1814,7 @@ 1 1 1 -1 +0 0 0 1 @@ -1840,7 +1840,7 @@ 1 0 0 -1 +0 1 1 1 @@ -1855,12 +1855,12 @@ 0 1 1 -0 1 1 1 1 1 +0 1 0 1 @@ -1869,7 +1869,7 @@ 1 0 1 -1 +0 1 1 1 @@ -1881,7 +1881,7 @@ 0 0 0 -1 +0 1 0 1 @@ -1898,16 +1898,16 @@ 1 0 1 -1 0 -1 +0 +0 0 1 1 1 1 0 -1 +0 1 1 1 @@ -1917,18 +1917,18 @@ 1 0 1 -1 0 0 -1 0 1 +0 1 1 1 1 1 1 +0 1 1 0 @@ -1939,7 +1939,7 @@ 1 0 1 -1 +0 1 1 1 @@ -1961,7 +1961,7 @@ 0 0 1 -1 +0 1 1 1 @@ -1972,7 +1972,7 @@ 1 0 1 -1 +0 1 1 1 @@ -1993,7 +1993,7 @@ 1 1 1 -0 +1 0 1 1 @@ -2019,7 +2019,7 @@ 1 1 1 -1 +0 1 1 0 @@ -2043,7 +2043,7 @@ 1 0 1 -1 +0 0 1 0 @@ -2056,7 +2056,7 @@ 0 1 1 -1 +0 1 0 1 @@ -2093,8 +2093,8 @@ 0 1 1 -0 1 +0 1 0 1 @@ -2132,10 +2132,10 @@ 0 1 0 -1 0 1 1 +1 0 0 0 @@ -2155,7 +2155,7 @@ 1 1 1 -0 +1 1 0 0 @@ -2191,14 +2191,14 @@ 1 0 0 -0 +1 1 0 1 0 0 1 -1 +0 1 1 1 @@ -2208,7 +2208,7 @@ 0 1 0 -1 +0 1 1 1 @@ -2225,23 +2225,23 @@ 1 0 1 -1 +0 1 0 0 1 1 -0 1 1 1 1 1 -0 -1 1 0 +0 1 +0 +0 1 1 0 @@ -2249,15 +2249,15 @@ 0 1 0 -0 -0 1 0 +1 0 1 1 1 1 +1 0 0 0 @@ -2289,7 +2289,7 @@ 1 0 0 -0 +1 0 1 0 @@ -2301,7 +2301,7 @@ 0 0 1 -0 +1 0 1 1 @@ -2323,7 +2323,7 @@ 0 1 0 -1 +0 0 0 1 @@ -2347,7 +2347,7 @@ 0 1 1 -1 +0 1 0 0 @@ -2364,17 +2364,16 @@ 1 0 1 -1 0 -1 +0 1 1 0 0 0 0 -1 0 +1 0 1 1 @@ -2382,17 +2381,18 @@ 1 1 0 -1 0 1 0 0 -1 0 0 1 +0 +0 1 -1 +0 +0 0 1 0 @@ -2431,7 +2431,7 @@ 1 1 0 -1 +0 0 1 0 @@ -2455,13 +2455,14 @@ 1 1 0 -1 +0 1 0 0 1 1 1 +0 1 1 1 @@ -2469,7 +2470,6 @@ 1 1 1 -0 1 1 1 @@ -2488,7 +2488,7 @@ 1 0 1 -0 +1 0 1 1 @@ -2496,11 +2496,11 @@ 1 1 1 -0 +1 0 1 1 -0 +1 1 0 0 @@ -2537,7 +2537,7 @@ 1 1 1 -1 +0 1 1 0 @@ -2557,7 +2557,7 @@ 1 0 1 -0 +1 1 0 0 @@ -2573,7 +2573,7 @@ 1 1 1 -1 +0 1 1 0 @@ -2614,7 +2614,7 @@ 1 1 1 -0 +1 1 1 1 @@ -2659,7 +2659,7 @@ 1 1 1 -0 +1 1 0 1 @@ -2719,12 +2719,12 @@ 1 1 1 -1 +0 0 1 1 0 -1 +0 1 1 1 @@ -2735,7 +2735,7 @@ 1 0 1 -1 +0 0 0 1 @@ -2769,8 +2769,8 @@ 1 1 1 -1 -1 +0 +0 1 1 1 @@ -2778,7 +2778,7 @@ 1 1 0 -0 +1 1 0 0 @@ -2793,7 +2793,7 @@ 0 0 0 -0 +1 0 1 0 @@ -2873,13 +2873,13 @@ 1 1 1 -1 +0 1 1 1 0 0 -1 +0 0 0 1 @@ -2927,7 +2927,7 @@ 1 1 1 -1 +0 1 0 0 @@ -2963,7 +2963,7 @@ 1 1 1 -0 +1 1 1 1 @@ -2974,12 +2974,12 @@ 0 0 1 -1 0 0 -1 0 1 +1 +1 0 1 0 @@ -2990,14 +2990,14 @@ 1 0 1 -1 +0 1 1 0 1 1 0 -0 +1 0 1 1 @@ -3013,7 +3013,7 @@ 0 1 1 -0 +1 1 0 1 @@ -3029,7 +3029,7 @@ 1 0 1 -0 +1 1 1 1 @@ -3057,7 +3057,7 @@ 1 1 1 -1 +0 1 0 1 @@ -3096,7 +3096,7 @@ 0 1 1 -1 +0 1 0 1 @@ -3142,17 +3142,17 @@ 0 1 0 -1 +0 1 1 0 -1 +0 1 1 1 0 1 -1 +0 1 1 0 @@ -3179,7 +3179,7 @@ 1 1 1 -1 +0 1 1 0 @@ -3191,16 +3191,16 @@ 0 0 0 +1 0 0 -0 -1 -1 1 +0 1 1 1 1 +0 1 1 0 @@ -3222,7 +3222,7 @@ 1 1 0 -1 +0 0 0 1 @@ -3242,7 +3242,7 @@ 0 1 1 -1 +0 0 1 0 @@ -3262,7 +3262,7 @@ 1 0 1 -1 +0 1 0 1 @@ -3278,7 +3278,7 @@ 0 1 0 -1 +0 1 0 0 @@ -3484,15 +3484,15 @@ 1 1 1 -0 1 1 1 1 1 -0 1 +0 1 +0 1 1 1 @@ -3507,7 +3507,7 @@ 1 1 1 -0 +1 0 0 1 @@ -3541,7 +3541,7 @@ 1 0 1 -0 +1 0 0 1 @@ -3564,10 +3564,10 @@ 1 1 1 +0 1 1 1 -0 1 1 1 @@ -3576,7 +3576,7 @@ 0 1 1 -1 +0 1 1 1 @@ -3590,7 +3590,7 @@ 1 0 1 -1 +0 1 1 1 @@ -3608,13 +3608,13 @@ 1 1 1 -1 +0 0 0 1 1 1 -1 +0 0 0 1 @@ -3630,7 +3630,7 @@ 1 1 0 -1 +0 0 1 1 @@ -3683,7 +3683,7 @@ 0 1 1 -1 +0 1 1 0 @@ -3693,7 +3693,7 @@ 1 0 1 -1 +0 1 1 0 @@ -3725,7 +3725,7 @@ 1 1 1 -1 +0 1 1 1 @@ -3771,12 +3771,12 @@ 1 1 0 -0 1 +0 1 1 0 -0 +1 1 1 1 @@ -3784,7 +3784,7 @@ 0 0 1 -1 +0 1 1 1 @@ -3796,10 +3796,10 @@ 1 1 1 -1 0 1 1 +1 0 0 0 @@ -3867,7 +3867,7 @@ 1 1 0 -1 +0 0 1 0 @@ -3943,7 +3943,7 @@ 1 1 1 -0 +1 1 0 0 @@ -3977,7 +3977,7 @@ 1 1 1 -0 +1 0 1 1 @@ -3998,13 +3998,13 @@ 0 0 1 -0 -1 1 -0 1 1 +0 1 +0 +0 1 1 0 @@ -4037,15 +4037,15 @@ 1 1 1 -0 -1 1 +0 1 1 0 0 0 0 +0 1 0 1 @@ -4065,7 +4065,7 @@ 1 1 0 -0 +1 0 1 0 @@ -4089,7 +4089,7 @@ 0 1 1 -1 +0 1 1 1 @@ -4111,7 +4111,7 @@ 0 1 0 -0 +1 1 1 1 @@ -4123,7 +4123,7 @@ 0 1 1 -0 +1 1 1 1 @@ -4182,7 +4182,7 @@ 0 1 0 -0 +1 1 0 1 @@ -4196,20 +4196,20 @@ 1 0 1 -1 -1 -0 0 1 0 0 1 1 +0 +1 1 1 1 0 0 +0 1 1 1 @@ -4235,7 +4235,7 @@ 0 1 1 -0 +1 0 0 1 @@ -4244,7 +4244,7 @@ 0 1 1 -1 +0 1 1 1 @@ -4256,14 +4256,14 @@ 0 1 1 -1 +0 1 1 0 1 1 1 -1 +0 1 1 0 @@ -4283,7 +4283,7 @@ 1 0 1 -1 +0 1 1 1 @@ -4298,7 +4298,7 @@ 1 1 1 -0 +1 0 1 0 @@ -4314,7 +4314,7 @@ 1 1 1 -1 +0 0 1 0 @@ -4359,18 +4359,18 @@ 1 1 1 -0 -0 +1 0 0 1 1 1 -0 1 +0 1 1 1 +0 1 1 0 @@ -4383,21 +4383,21 @@ 0 1 0 -1 -1 +0 +0 1 1 1 0 -1 -1 0 1 -1 +0 0 1 0 1 +0 +0 1 1 1 @@ -4426,14 +4426,14 @@ 1 0 0 +0 1 1 1 1 1 1 -1 -1 +0 0 1 0 @@ -4447,7 +4447,7 @@ 0 1 1 -0 +1 1 1 1 @@ -4504,10 +4504,10 @@ 1 1 1 -1 0 0 -1 +0 +0 0 0 1 @@ -4519,7 +4519,7 @@ 0 1 1 -0 +1 1 1 0 @@ -4532,7 +4532,7 @@ 1 0 1 -1 +0 1 1 1 @@ -4601,7 +4601,7 @@ 1 0 1 -0 +1 1 1 0 @@ -4627,11 +4627,11 @@ 1 0 1 -1 0 1 1 1 +1 0 1 1 @@ -4694,7 +4694,7 @@ 1 1 0 -1 +0 1 1 1 @@ -4725,7 +4725,7 @@ 0 1 1 -0 +1 0 1 1 @@ -4778,7 +4778,7 @@ 0 0 1 -1 +0 0 1 1 @@ -4805,7 +4805,7 @@ 0 1 1 -1 +0 1 0 0 @@ -4815,12 +4815,12 @@ 1 1 1 -1 0 1 1 1 1 +1 0 1 1 @@ -4875,7 +4875,7 @@ 0 1 1 -0 +1 1 0 1 @@ -4893,7 +4893,7 @@ 1 1 0 -0 +1 1 0 1 @@ -4923,7 +4923,7 @@ 0 0 0 -1 +0 1 1 0 @@ -4946,7 +4946,7 @@ 1 1 0 -0 +1 1 0 1 @@ -4955,7 +4955,7 @@ 1 0 0 -0 +1 1 1 0 @@ -4966,7 +4966,7 @@ 1 1 0 -0 +1 1 1 0 @@ -4987,7 +4987,7 @@ 1 1 0 -1 +0 1 1 1 @@ -5002,8 +5002,8 @@ 1 1 1 -0 1 +0 1 1 0 @@ -5018,7 +5018,7 @@ 1 0 1 -1 +0 1 0 1 @@ -5052,6 +5052,7 @@ 1 1 1 +0 1 1 1 @@ -5065,7 +5066,6 @@ 0 0 0 -0 1 0 0 @@ -5086,7 +5086,7 @@ 1 1 0 -0 +1 1 1 1 @@ -5100,7 +5100,7 @@ 1 0 0 -1 +0 0 1 0 @@ -5110,7 +5110,7 @@ 1 0 1 -0 +1 1 1 0 @@ -5125,7 +5125,7 @@ 1 0 1 -1 +0 0 1 0 @@ -5137,7 +5137,7 @@ 1 1 1 -1 +0 0 0 0 @@ -5161,7 +5161,7 @@ 1 1 0 -1 +0 0 1 1 @@ -5178,12 +5178,12 @@ 1 1 0 -0 +1 1 1 0 0 -1 +0 0 1 0 @@ -5217,7 +5217,7 @@ 1 1 0 -0 +1 1 1 0 @@ -5230,7 +5230,7 @@ 1 0 1 -0 +1 1 1 1 @@ -5258,13 +5258,13 @@ 1 0 1 -1 +0 0 1 1 1 0 -1 +0 1 1 0 @@ -5273,13 +5273,13 @@ 1 0 1 -0 1 -0 1 +0 1 1 0 +0 1 0 0 @@ -5295,16 +5295,16 @@ 0 1 1 -0 1 1 -0 1 +0 1 1 1 1 1 +0 1 0 1 @@ -5329,7 +5329,7 @@ 1 1 1 -0 +1 1 1 0 @@ -5372,7 +5372,7 @@ 1 1 0 -0 +1 1 1 1 @@ -5384,17 +5384,17 @@ 1 0 1 -1 +0 0 1 1 1 -0 -0 1 0 1 +0 1 +0 1 0 0 @@ -5412,7 +5412,7 @@ 0 1 1 -1 +0 0 1 0 @@ -5431,10 +5431,10 @@ 0 1 1 -1 +0 0 1 -1 +0 0 0 1 @@ -5443,7 +5443,7 @@ 1 1 1 -0 +1 1 1 1 diff --git a/mlrlrozwiazanie.py b/mlrlrozwiazanie.py new file mode 100644 index 0000000..39562c9 --- /dev/null +++ b/mlrlrozwiazanie.py @@ -0,0 +1,18 @@ +import gzip +import gensim +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +import matplotlib.gridspec as gridspec +from sklearn.preprocessing import LabelEncoder +from sklearn.linear_model import LogisticRegression +from gensim.models import Word2Vec + +w2v = gensim.models.Word2Vec(vector_size=100) +w2v = Word2Vec.load("w2v.model") +#w2v.wv.save_word2vec_format('world.txt', binary=False) + +#w2v.wv.load_word2vec_format('../../../ncexclude/nkjp+wiki-forms-all-100-cbow-hs.txt.gz', binary=False) + +#print(w2v.wv.most_similar(['gol'])) +print(w2v.wv.index_to_key) \ No newline at end of file diff --git a/mrlrozwiazanie.py b/mrlrozwiazanie.py new file mode 100644 index 0000000..867e17e --- /dev/null +++ b/mrlrozwiazanie.py @@ -0,0 +1,26 @@ +import gzip +import gensim +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +import matplotlib.gridspec as gridspec +from sklearn.preprocessing import LabelEncoder +from sklearn.linear_model import LogisticRegression +from gensim.models import Word2Vec, KeyedVectors + +# train_X = [] +# train_y = [] +# with gzip.open('train/train.tsv.gz','r') as fin: +# for line in fin: +# sline = line.decode('UTF-8').replace("\n", "").split("\t") +# train_y.append(sline[0]) +# train_X.append(''.join(sline[1:])) + +# w2v = gensim.models.Word2Vec(list(train_X), vector_size=100, window=10, min_count=2, epochs=5, workers=2) + +#w2v = gensim.models.Word2Vec(vector_size=100) +#w2v.wv.load_word2vec_format('../../../ncexclude/nkjp+wiki-forms-all-100-cbow-hs.txt.gz', binary=False) +#w2v.wv.load_word2vec_format('../../../ncexclude/wiki-forms-all-100-skipg-ns.txt.gz', binary=False) + +w2v = KeyedVectors.load_word2vec_format('../../../ncexclude/wiki-forms-all-100-skipg-ns.txt.gz', binary=False) +w2v.save("word2vec2.wordvectors") \ No newline at end of file diff --git a/rlrozwiazanie.py b/rlrozwiazanie.py new file mode 100644 index 0000000..0b2ca02 --- /dev/null +++ b/rlrozwiazanie.py @@ -0,0 +1,199 @@ +#import numpy as np +import gzip +from sklearn.naive_bayes import MultinomialNB +from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer +from sklearn import metrics +import pandas as pd +import numpy as np + +import gensim +from gensim.models import Word2Vec, Phrases, phrases, KeyedVectors + +from sklearn.linear_model import LogisticRegression +import re +import torch +from torch.utils.data import Dataset, TensorDataset, DataLoader + +def get_str_cleaned(str_dirty): + punctuation = '!"#$%&\'()*+,-./:;<=>?@[\\\\]^_`{|}~' + new_str = str_dirty.lower() + new_str = re.sub(' +', ' ', new_str) + for char in punctuation: + new_str = new_str.replace(char,'') + return new_str + +#df = pd.read_csv('sport-text-classification-ball-ISI-public/train/train.tsv.gz', compression='gzip', header=None, sep='\t', error_bad_lines=False) +train_X = [] +train_y = [] +with gzip.open('train/train.tsv.gz','r') as fin: + for line in fin: + sline = line.decode('UTF-8').replace("\n", "").split("\t") + cleared = get_str_cleaned(''.join(sline[1:])) + + if len(cleared)>0: + train_y.append(int(sline[0])) + train_X.append(cleared) + +train_X_data = pd.DataFrame(train_X) +#w2v = gensim.models.Word2Vec(vector_size=100) +# #w2v.wv.load_word2vec_format('../../../ncexclude/nkjp+wiki-forms-all-100-cbow-hs.txt.gz', binary=False) +#w2v.wv.load_word2vec_format('../../../ncexclude/wiki-forms-all-100-skipg-ns.txt.gz', binary=False) +#w2v = Word2Vec.load("w2v.model") +#w2v.wv.init_sims() +#w2v.wv.load("word2vec.wordvectors") +#w2v = KeyedVectors.load_word2vec_format('../../../ncexclude/wiki-forms-all-100-skipg-ns.txt.gz', binary=False) +w2v = KeyedVectors.load("word2vec2.wordvectors") +#print(list(w2v.index_to_key)) +def document_vector(doc): + """Create document vectors by averaging word vectors. Remove out-of-vocabulary words.""" + #print(doc) + #doc = [word for word in doc if word in w2v.index_to_key] + try: + doc2 = [] + doc = doc.split(' ') + for word in doc: + #print(get_str_cleaned(word)) + #print(word) + #print(w2v.wv.index_to_key) + if word in w2v: + doc2.append(word) + return np.mean(w2v[doc2], axis=0) + except: + print(doc) + return np.zeros(100) + +train_X_data = train_X_data[train_X_data.columns[0]].apply(document_vector) + +dev_X = [] +with open('dev-0/in.tsv','r') as dev_in_file: + for line in dev_in_file: + dev_X.append(get_str_cleaned(line.rstrip('\n'))) + +dev_y = [] +with open('dev-0/expected.tsv','r') as dev_expected_file: + for line in dev_expected_file: + dev_y.append(int(line.rstrip('\n'))) + + +dev_X_data = pd.DataFrame(dev_X) +dev_X_data = dev_X_data[dev_X_data.columns[0]].apply(document_vector) + +# X_train_vec = list(train_X_data['doc_vector']) +# X_dev_vec = list(dev_X_data['doc_vector']) + +class LogisticRegressionModel(torch.nn.Module): + + def __init__(self): + super(LogisticRegressionModel, self).__init__() + self.fc = torch.nn.Linear(100,1) + + def forward(self, x): + x = self.fc(x) + x = torch.sigmoid(x) + return x + +lr_model = LogisticRegressionModel() + +criterion = torch.nn.BCELoss() +optimizer = torch.optim.SGD(lr_model.parameters(), lr = 0.1) + +train_x_tensor = torch.tensor(train_X_data).float() +train_y_tensor = torch.tensor(train_y).float() + +train_dataset = TensorDataset(train_x_tensor, train_y_tensor) +train_loader = DataLoader(dataset=train_dataset) + +dev_x_tensor = torch.tensor(dev_X_data).float() +dev_y_tensor = torch.tensor(dev_y).float() + +dev_dataset = TensorDataset(dev_x_tensor, dev_y_tensor) +dev_loader = DataLoader(dataset=dev_dataset) + +n_epochs = 2 + +# loss_score = 0 +# acc_score = 0 +# items_total = 0 +# for x_batch, y_batch in train_loader: +# lr_model.train() +# # Makes predictions +# yhat = lr_model(x_batch) +# # Computes loss +# loss = criterion(yhat, y_batch.unsqueeze(1)) +# # Computes gradients +# loss.backward() +# # Updates parameters and zeroes gradients +# optimizer.step() +# optimizer.zero_grad() + +# loss_score += loss.item() * yhat.shape[0] +# print(loss_score) + +def make_train_step(model, loss_fn, optimizer): + def train_step(x, y): + model.train() + yhat = model(x) + loss = loss_fn(yhat, y.unsqueeze(1)) + loss.backward() + optimizer.step() + optimizer.zero_grad() + return loss.item() + return train_step + +train_step = make_train_step(lr_model, criterion, optimizer) +training_losses = [] +validation_losses = [] + +for epoch in range(n_epochs): + y_pred = [] + losses = [] + for x_batch, y_batch in train_loader: + loss = train_step(x_batch, y_batch) + losses.append(loss) + training_loss = np.mean(losses) + training_losses.append(training_loss) + + #Evaluation + with torch.no_grad(): + val_losses = [] + for x_val, y_val in dev_loader: + lr_model.eval() + yhat = lr_model(x_val) + y_pred.append(int(yhat.item() > 0.5)) + val_loss = criterion(yhat, y_val.unsqueeze(1)) + val_losses.append(val_loss.item()) + validation_loss = np.mean(val_losses) + validation_losses.append(validation_loss) + print(f"[{epoch+1}] Training loss: {training_loss:.3f}\t Validation loss: {validation_loss:.3f}") + + +score1 = metrics.accuracy_score(dev_y, y_pred) +print("accuracy: %0.5f" % score1) + + +file = open('dev-0/out.tsv',"w") +for i in y_pred: + file.writelines("{}\n".format(i)) +file.close() + + +test_X = [] +with open('test-A/in.tsv','r') as test_in_file: + for line in test_in_file: + test_X.append(get_str_cleaned(line.rstrip('\n'))) + +test_X_data = pd.DataFrame(test_X) +test_X_data = test_X_data[test_X_data.columns[0]].apply(document_vector) +test_x_tensor = torch.tensor(test_X_data).float() + +val_y_pred = [] +with torch.no_grad(): + for x_val in test_x_tensor: + lr_model.eval() + yhat = lr_model(x_val) + val_y_pred.append(int(yhat.item() > 0.5)) + +file = open('test-A/out.tsv',"w") +for i in val_y_pred: + file.writelines("{}\n".format(i)) +file.close() \ No newline at end of file diff --git a/test-A/out.tsv b/test-A/out.tsv index e4e74be..06b314f 100644 --- a/test-A/out.tsv +++ b/test-A/out.tsv @@ -1,6 +1,6 @@ 1 1 -1 +0 0 1 1 @@ -32,7 +32,7 @@ 0 1 1 -0 +1 0 1 0 @@ -50,7 +50,7 @@ 1 0 0 -1 +0 0 1 1 @@ -64,7 +64,7 @@ 1 1 1 -0 +1 0 0 1 @@ -86,7 +86,7 @@ 0 1 1 -0 +1 1 1 0 @@ -113,7 +113,7 @@ 0 0 0 -1 +0 0 1 1 @@ -146,7 +146,7 @@ 1 1 1 -0 +1 1 1 0 @@ -167,14 +167,14 @@ 1 1 0 -1 0 -1 0 1 -1 0 1 +0 +0 +0 1 1 1 @@ -200,11 +200,11 @@ 1 0 1 -1 +0 1 0 0 -1 +0 0 1 0 @@ -212,7 +212,7 @@ 1 0 1 -1 +0 1 1 1 @@ -227,17 +227,17 @@ 1 1 0 -1 +0 0 1 -1 +0 0 1 1 0 1 0 -1 +0 1 0 1 @@ -283,13 +283,13 @@ 0 0 1 -0 1 1 1 1 1 -0 +1 +1 1 1 1 @@ -304,7 +304,7 @@ 1 0 0 -1 +0 1 1 0 @@ -323,15 +323,15 @@ 0 1 1 -0 +1 0 1 1 1 +0 1 1 0 -0 1 0 1 @@ -341,7 +341,7 @@ 1 1 0 -1 +0 1 1 1 @@ -402,7 +402,7 @@ 1 1 1 -0 +1 0 0 0 @@ -413,7 +413,7 @@ 0 1 1 -0 +1 1 0 1 @@ -507,7 +507,7 @@ 1 1 1 -0 +1 0 1 1 @@ -545,8 +545,8 @@ 0 0 0 -0 -0 +1 +1 1 1 1 @@ -653,7 +653,7 @@ 1 0 1 -1 +0 1 1 1 @@ -714,12 +714,12 @@ 0 1 1 -0 +1 0 1 1 1 -0 +1 0 1 1 @@ -752,7 +752,7 @@ 0 0 1 -1 +0 0 1 0 @@ -761,7 +761,7 @@ 0 1 1 -0 +1 1 1 1 @@ -780,7 +780,7 @@ 1 0 0 -0 +1 1 0 1 @@ -798,12 +798,12 @@ 1 1 1 -1 +0 1 1 0 1 -1 +0 0 1 1 @@ -822,7 +822,7 @@ 1 1 1 -0 +1 1 0 0 @@ -868,7 +868,7 @@ 1 1 1 -0 +1 1 0 0 @@ -899,7 +899,7 @@ 1 1 1 -1 +0 1 0 1 @@ -919,17 +919,17 @@ 1 0 0 -0 1 1 -0 1 0 +1 0 0 1 1 1 +1 0 1 0 @@ -956,7 +956,7 @@ 1 1 0 -0 +1 0 0 1 @@ -988,11 +988,11 @@ 0 1 1 +0 1 1 0 1 -1 0 1 0 @@ -1116,7 +1116,7 @@ 1 0 1 -1 +0 1 1 1 @@ -1138,7 +1138,7 @@ 1 1 0 -1 +0 1 1 0 @@ -1154,7 +1154,7 @@ 0 1 0 -0 +1 1 1 1 @@ -1170,7 +1170,7 @@ 1 1 0 -1 +0 1 0 0 @@ -1179,7 +1179,7 @@ 0 1 0 -1 +0 1 1 0 @@ -1217,7 +1217,7 @@ 1 1 1 -1 +0 1 0 0 @@ -1229,12 +1229,11 @@ 1 1 1 -1 -1 -1 -1 +0 +0 0 1 +0 1 1 1 @@ -1245,9 +1244,10 @@ 1 1 0 +0 1 1 -1 +0 1 1 1 @@ -1298,17 +1298,17 @@ 1 1 1 -0 1 1 -0 1 0 1 0 -0 1 0 +1 +1 +1 0 0 1 @@ -1323,9 +1323,9 @@ 1 1 1 +1 0 0 -1 0 1 1 @@ -1337,7 +1337,7 @@ 1 0 0 -0 +1 1 1 0 @@ -1365,14 +1365,14 @@ 1 1 1 -1 +0 1 0 0 0 0 0 -1 +0 0 1 1 @@ -1383,7 +1383,7 @@ 1 0 1 -1 +0 1 0 1 @@ -1399,7 +1399,7 @@ 1 1 1 -1 +0 0 1 0 @@ -1407,7 +1407,7 @@ 0 1 1 -0 +1 1 1 1 @@ -1430,7 +1430,7 @@ 1 1 1 -0 +1 0 1 1 @@ -1451,13 +1451,13 @@ 1 1 1 -0 +1 0 1 1 1 0 -1 +0 1 0 1 @@ -1479,13 +1479,13 @@ 0 1 0 -0 -0 1 0 1 1 1 +1 +1 0 1 1 @@ -1493,10 +1493,10 @@ 1 1 1 -0 1 -0 1 +1 +0 0 0 1 @@ -1571,18 +1571,18 @@ 1 1 1 -0 -1 -0 1 1 +0 1 1 0 +1 0 0 1 1 +1 0 1 1 @@ -1606,10 +1606,10 @@ 0 1 0 +0 +0 1 -1 -1 -1 +0 1 0 0 @@ -1682,7 +1682,7 @@ 1 1 1 -0 +1 1 0 1 @@ -1719,14 +1719,14 @@ 0 1 1 -1 -1 0 1 0 0 0 1 +0 +1 1 0 1 @@ -1740,7 +1740,7 @@ 0 1 0 -0 +1 0 1 1 @@ -1760,8 +1760,8 @@ 0 0 1 -1 0 +1 0 1 1 @@ -1777,7 +1777,7 @@ 1 1 0 -0 +1 1 0 0 @@ -1791,14 +1791,14 @@ 1 0 1 -0 1 -0 1 0 1 +0 1 0 +0 1 1 1 @@ -1807,7 +1807,7 @@ 1 0 1 -1 +0 1 1 1 @@ -1845,16 +1845,16 @@ 1 0 1 -1 0 -1 0 +1 0 1 1 1 1 1 +1 0 0 1 @@ -1881,12 +1881,12 @@ 1 0 1 -1 -1 +0 +0 0 1 1 -1 +0 1 1 1 @@ -1928,7 +1928,7 @@ 1 1 1 -0 +1 1 1 1 @@ -1939,20 +1939,20 @@ 1 0 1 -1 +0 1 1 0 1 0 0 -1 +0 1 1 0 0 1 -1 +0 0 0 1 @@ -1969,7 +1969,7 @@ 0 1 1 -0 +1 1 0 1 @@ -1990,7 +1990,7 @@ 0 0 1 -0 +1 1 1 0 @@ -2004,7 +2004,7 @@ 1 1 1 -0 +1 1 1 1 @@ -2042,14 +2042,14 @@ 0 0 1 -1 +0 1 0 0 1 1 0 -1 +0 0 1 1 @@ -2077,12 +2077,12 @@ 0 1 1 -0 1 1 1 0 0 +0 1 1 1 @@ -2096,7 +2096,7 @@ 1 0 0 -0 +1 1 0 1 @@ -2139,7 +2139,7 @@ 1 0 1 -1 +0 0 0 0 @@ -2196,13 +2196,13 @@ 1 1 1 -0 -1 1 0 +1 0 0 0 +1 0 1 1 @@ -2215,7 +2215,7 @@ 1 1 1 -1 +0 0 0 0 @@ -2231,10 +2231,10 @@ 0 1 1 +0 1 1 1 -0 1 0 0 @@ -2254,14 +2254,14 @@ 1 1 1 -1 +0 1 0 0 0 1 1 -1 +0 1 0 1 @@ -2273,12 +2273,12 @@ 0 1 0 -1 0 1 1 1 1 +1 0 0 0 @@ -2290,11 +2290,11 @@ 1 1 1 +0 1 1 1 -1 -1 +0 1 0 1 @@ -2311,11 +2311,11 @@ 0 1 1 -1 +0 0 1 1 -1 +0 1 0 0 @@ -2325,7 +2325,7 @@ 1 0 1 -1 +0 1 1 0 @@ -2341,12 +2341,12 @@ 1 0 0 -0 +1 0 1 1 1 -0 +1 1 0 1 @@ -2368,7 +2368,7 @@ 1 1 1 -1 +0 1 0 0 @@ -2391,14 +2391,14 @@ 0 1 1 -0 1 -0 +1 +1 1 1 1 0 -0 +1 1 1 1 @@ -2413,7 +2413,7 @@ 0 1 0 -1 +0 1 0 1 @@ -2432,7 +2432,7 @@ 1 1 1 -0 +1 1 1 1 @@ -2440,7 +2440,7 @@ 0 0 1 -1 +0 1 1 0 @@ -2455,9 +2455,9 @@ 0 1 1 -1 0 -1 +0 +0 0 0 1 @@ -2483,7 +2483,7 @@ 0 1 1 -0 +1 1 1 1 @@ -2518,7 +2518,7 @@ 1 1 1 -1 +0 0 1 1 @@ -2540,7 +2540,7 @@ 1 0 0 -0 +1 0 1 0 @@ -2549,10 +2549,10 @@ 1 1 1 -1 -1 +0 0 1 +1 0 0 1 @@ -2575,13 +2575,13 @@ 1 0 0 -1 0 -1 +0 +0 1 1 0 -1 +0 1 1 1 @@ -2591,7 +2591,7 @@ 0 0 1 -1 +0 1 0 1 @@ -2616,7 +2616,7 @@ 0 1 1 -1 +0 1 1 1 @@ -2662,7 +2662,7 @@ 1 1 1 -1 +0 0 0 1 @@ -2697,7 +2697,7 @@ 0 1 1 -0 +1 0 0 1 @@ -2719,7 +2719,7 @@ 1 0 0 -1 +0 0 0 1 @@ -2732,12 +2732,12 @@ 1 0 1 -1 +0 1 1 0 0 -1 +0 0 1 1 @@ -2812,7 +2812,7 @@ 1 0 1 -1 +0 0 0 1 @@ -2827,16 +2827,16 @@ 1 1 1 -1 +0 1 0 1 1 +0 1 1 1 1 -0 1 0 1 @@ -2880,7 +2880,7 @@ 1 0 1 -0 +1 1 1 0 @@ -2901,7 +2901,7 @@ 0 1 0 -1 +0 1 1 0 @@ -2926,13 +2926,11 @@ 0 0 1 -0 1 1 -0 1 1 -0 +1 1 0 1 @@ -2941,7 +2939,6 @@ 1 1 1 -0 1 1 0 @@ -2954,14 +2951,16 @@ 1 1 1 -0 1 -0 +1 1 0 1 1 1 +0 +1 +1 1 1 1 @@ -2970,6 +2969,7 @@ 1 1 1 +0 1 1 1 @@ -3004,7 +3004,7 @@ 0 0 1 -0 +1 0 1 1 @@ -3018,22 +3018,22 @@ 0 0 0 -0 1 1 1 1 1 -0 1 +0 1 1 1 +0 1 1 1 0 -1 +0 1 0 1 @@ -3151,7 +3151,7 @@ 1 1 1 -0 +1 1 0 0 @@ -3164,7 +3164,7 @@ 1 1 1 -1 +0 0 1 1 @@ -3181,7 +3181,7 @@ 1 1 1 -0 +1 0 1 1 @@ -3201,7 +3201,7 @@ 1 1 0 -1 +0 0 1 1 @@ -3212,7 +3212,7 @@ 0 1 1 -1 +0 1 1 1 @@ -3245,7 +3245,7 @@ 1 1 0 -1 +0 0 1 1 @@ -3258,7 +3258,7 @@ 1 1 0 -1 +0 0 0 0 @@ -3281,7 +3281,7 @@ 0 1 1 -1 +0 0 0 0 @@ -3291,30 +3291,30 @@ 1 0 0 -0 +1 1 0 1 1 1 0 -1 0 -1 -1 +0 1 1 1 1 0 1 +0 +0 1 1 1 -0 1 1 1 +0 1 1 1 @@ -3332,7 +3332,7 @@ 1 1 0 -0 +1 1 1 1 @@ -3344,7 +3344,7 @@ 1 1 0 -1 +0 1 0 0 @@ -3385,7 +3385,7 @@ 0 0 1 -1 +0 1 0 1 @@ -3409,7 +3409,7 @@ 1 0 1 -0 +1 1 1 0 @@ -3483,7 +3483,7 @@ 1 1 1 -0 +1 1 1 0 @@ -3492,7 +3492,7 @@ 0 1 0 -0 +1 1 1 0 @@ -3510,7 +3510,7 @@ 1 1 1 -0 +1 0 0 0 @@ -3540,7 +3540,7 @@ 0 1 1 -0 +1 1 0 0 @@ -3625,7 +3625,7 @@ 1 1 1 -0 +1 0 1 0 @@ -3638,7 +3638,7 @@ 1 0 1 -1 +0 1 1 1 @@ -3647,7 +3647,7 @@ 1 0 1 -1 +0 1 1 1 @@ -3660,7 +3660,7 @@ 1 0 1 -0 +1 1 0 1 @@ -3672,21 +3672,21 @@ 1 0 1 -0 1 1 +1 +0 0 1 1 1 1 1 -0 1 0 1 0 -1 +0 1 1 1 @@ -3718,7 +3718,7 @@ 1 0 1 -0 +1 0 1 0 @@ -3734,7 +3734,7 @@ 1 1 1 -1 +0 1 1 1 @@ -3742,19 +3742,19 @@ 1 0 1 -1 -1 -1 -1 0 1 0 0 1 +1 +0 0 1 +0 1 1 +0 1 0 1 @@ -3774,12 +3774,12 @@ 1 1 1 -0 +1 1 0 0 1 -1 +0 1 1 1 @@ -3803,7 +3803,7 @@ 0 1 0 -1 +0 1 1 1 @@ -3833,7 +3833,6 @@ 0 1 1 -0 1 1 1 @@ -3843,14 +3842,15 @@ 1 0 0 -1 +0 1 1 1 0 0 +0 1 -1 +0 1 0 1 @@ -3887,7 +3887,7 @@ 1 1 1 -1 +0 0 0 0 @@ -3897,7 +3897,7 @@ 1 1 1 -1 +0 1 1 1 @@ -3907,7 +3907,7 @@ 1 1 0 -0 +1 1 1 0 @@ -3932,11 +3932,11 @@ 1 1 0 -1 +0 1 1 0 -1 +0 1 1 0 @@ -3959,7 +3959,6 @@ 0 0 0 -0 1 1 1 @@ -3968,7 +3967,8 @@ 1 1 0 -1 +0 +0 1 1 1 @@ -3977,10 +3977,10 @@ 1 1 1 -0 1 0 0 +0 1 0 1 @@ -3990,7 +3990,7 @@ 1 1 1 -0 +1 1 1 1 @@ -4019,8 +4019,8 @@ 0 1 1 -0 -0 +1 +1 1 1 1 @@ -4048,12 +4048,12 @@ 1 1 1 -1 +0 +0 0 1 1 1 -0 1 1 0 @@ -4071,7 +4071,7 @@ 1 0 1 -1 +0 0 0 1 @@ -4079,28 +4079,28 @@ 1 1 0 -0 1 1 -0 1 0 1 0 +0 +0 1 1 0 0 0 0 -0 1 1 1 -0 1 +0 1 0 +0 1 1 0 @@ -4154,17 +4154,17 @@ 0 1 1 -0 +1 1 1 1 0 0 0 +0 1 1 -1 -1 +0 0 1 0 @@ -4174,7 +4174,7 @@ 0 1 0 -1 +0 1 1 1 @@ -4182,11 +4182,11 @@ 0 0 1 -1 0 0 -1 0 +1 +1 0 0 1 @@ -4207,7 +4207,7 @@ 0 1 1 -1 +0 1 1 0 @@ -4217,7 +4217,7 @@ 1 0 1 -0 +1 1 1 1 @@ -4248,7 +4248,7 @@ 1 0 1 -1 +0 0 1 1 @@ -4260,7 +4260,7 @@ 1 0 0 -1 +0 1 0 0 @@ -4304,7 +4304,7 @@ 1 1 1 -1 +0 1 1 1 @@ -4326,7 +4326,7 @@ 1 0 0 -0 +1 1 1 1 @@ -4357,7 +4357,7 @@ 1 1 0 -1 +0 1 1 1 @@ -4370,7 +4370,7 @@ 1 0 0 -1 +0 0 0 0 @@ -4412,7 +4412,7 @@ 1 1 0 -0 +1 1 1 1 @@ -4435,7 +4435,7 @@ 1 1 0 -1 +0 1 1 1 @@ -4444,7 +4444,7 @@ 0 0 1 -1 +0 0 1 1 @@ -4455,7 +4455,7 @@ 1 1 1 -1 +0 1 0 0 @@ -4482,10 +4482,10 @@ 1 1 1 -0 1 1 1 +0 1 0 0 @@ -4499,7 +4499,7 @@ 1 0 1 -0 +1 0 1 1 @@ -4521,11 +4521,11 @@ 1 0 1 -1 -1 0 1 -1 +0 +0 +0 1 0 1 @@ -4548,7 +4548,7 @@ 1 1 1 -1 +0 1 1 1 @@ -4566,7 +4566,7 @@ 1 0 1 -1 +0 1 1 0 @@ -4588,7 +4588,7 @@ 0 0 1 -0 +1 1 1 0 @@ -4616,7 +4616,7 @@ 1 1 0 -0 +1 1 1 0 @@ -4643,7 +4643,7 @@ 0 1 1 -1 +0 1 1 1 @@ -4660,12 +4660,12 @@ 1 1 1 +0 1 1 1 1 1 -0 1 0 0 @@ -4685,15 +4685,15 @@ 0 1 1 -0 +1 1 1 0 -0 +1 1 0 0 -1 +0 1 0 1 @@ -4709,11 +4709,11 @@ 0 1 1 -1 +0 1 0 0 -1 +0 0 1 1 @@ -4762,7 +4762,7 @@ 0 1 1 -1 +0 1 0 1 @@ -4788,7 +4788,7 @@ 1 0 1 -0 +1 1 1 1 @@ -4797,7 +4797,7 @@ 0 0 1 -1 +0 0 1 1 @@ -4805,9 +4805,9 @@ 0 1 1 -1 0 -1 +0 +0 1 1 1 @@ -4829,21 +4829,21 @@ 0 0 1 -1 -1 -0 0 1 -1 0 1 1 +1 +0 0 1 0 +1 0 1 1 +1 0 1 0 @@ -4857,7 +4857,7 @@ 0 1 0 -0 +1 1 0 0 @@ -4904,7 +4904,7 @@ 1 1 0 -1 +0 1 1 0 @@ -4920,7 +4920,6 @@ 1 1 0 -1 0 1 1 @@ -4928,11 +4927,12 @@ 1 1 1 -0 +1 0 0 1 1 +0 1 1 1 @@ -4949,7 +4949,7 @@ 0 0 0 -1 +0 0 1 0 @@ -4962,7 +4962,7 @@ 0 1 0 -1 +0 0 1 0 @@ -4998,7 +4998,7 @@ 0 1 1 -0 +1 0 0 1 @@ -5007,13 +5007,13 @@ 0 1 1 -0 -0 1 0 1 0 -1 +0 +0 +0 1 0 0 @@ -5027,7 +5027,7 @@ 0 1 0 -1 +0 0 0 1 @@ -5037,7 +5037,7 @@ 1 0 0 -0 +1 1 1 0 @@ -5050,7 +5050,7 @@ 0 0 1 -0 +1 1 0 1 @@ -5080,7 +5080,7 @@ 0 0 0 -0 +1 0 1 0 @@ -5095,10 +5095,10 @@ 0 0 1 -1 -1 +0 1 0 +0 1 1 1 @@ -5122,7 +5122,7 @@ 1 1 1 -0 +1 1 0 1 @@ -5137,7 +5137,7 @@ 1 0 0 -1 +0 1 1 0 @@ -5163,7 +5163,7 @@ 0 1 1 -1 +0 1 0 1 @@ -5173,12 +5173,12 @@ 1 1 1 -0 1 1 0 0 1 +1 0 1 1 @@ -5228,13 +5228,13 @@ 0 0 0 -1 +0 1 0 1 1 0 -0 +1 0 1 1 @@ -5263,18 +5263,18 @@ 1 0 1 -0 1 1 1 1 1 1 -0 1 0 0 0 +0 +0 1 1 0 @@ -5290,7 +5290,6 @@ 1 1 1 -0 1 1 1 @@ -5299,9 +5298,10 @@ 1 1 1 -0 +1 0 1 +1 0 0 1 @@ -5324,7 +5324,7 @@ 1 0 0 -0 +1 1 1 0 @@ -5359,7 +5359,7 @@ 0 1 1 -0 +1 1 1 1 @@ -5393,12 +5393,12 @@ 1 1 0 -0 1 1 +0 +1 1 1 -0 1 0 1 @@ -5413,7 +5413,7 @@ 1 0 0 -0 +1 1 1 1