From 3d78363674eb8c568272c3577e847a0d176e9df9 Mon Sep 17 00:00:00 2001 From: michalzareba Date: Sat, 22 May 2021 17:46:18 +0200 Subject: [PATCH] Add final solution --- dev-0/out.tsv | 5272 ++++++++++++++++++++++++++ feed-forward-nn.py | 169 + neural-network.py | 102 - neural-network2.py | 151 - dev-0/expected.tsv => test-A/out.tsv | 1848 +++++---- 5 files changed, 6305 insertions(+), 1237 deletions(-) create mode 100644 dev-0/out.tsv create mode 100644 feed-forward-nn.py delete mode 100644 neural-network.py delete mode 100644 neural-network2.py rename dev-0/expected.tsv => test-A/out.tsv (93%) diff --git a/dev-0/out.tsv b/dev-0/out.tsv new file mode 100644 index 0000000..189fd50 --- /dev/null +++ b/dev-0/out.tsv @@ -0,0 +1,5272 @@ +0 +1 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +1 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +1 +1 +1 +0 +1 +1 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +1 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +1 +1 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +1 +1 +0 +0 +1 +0 +0 +1 +1 +1 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +1 +1 +1 +1 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +1 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +1 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +1 +0 +1 +1 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +1 +1 +1 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +1 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +1 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +1 +1 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +1 +1 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +1 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +1 +1 +1 +0 +1 +1 +0 +1 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +1 +1 +1 +0 +0 +1 +1 +1 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +1 +0 +0 +1 +1 +1 +0 +0 +1 +0 +1 +0 +0 +1 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +1 +1 +1 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +1 +1 +1 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +1 +1 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +1 +1 +1 +1 +0 +0 +1 +0 +1 +1 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +1 +1 +0 +0 +0 +1 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +1 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +1 +1 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +1 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +1 +1 +0 +1 +0 +0 +1 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +1 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +1 +1 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +1 +0 +1 +0 +1 +0 +1 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +1 +0 +1 +0 +1 +1 +1 +0 +1 +0 +0 +1 +1 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +1 +0 +1 +1 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +1 +0 +1 +1 +0 +0 +0 +1 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +1 +0 +1 +0 +1 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +1 +1 +0 +1 +0 +0 +1 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +1 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +1 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +1 +1 +1 +0 +1 +1 +1 +1 +1 +1 +1 +1 +0 +1 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +1 +1 +1 +1 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +1 +0 +0 +0 +0 +1 +0 +1 +1 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +1 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +1 +1 +1 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +0 +1 +1 +0 +1 +1 +1 +0 +1 +0 +0 +0 +1 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +1 +1 +0 +0 +1 +1 +0 +1 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +1 +1 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +1 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 \ No newline at end of file diff --git a/feed-forward-nn.py b/feed-forward-nn.py new file mode 100644 index 0000000..aea9abc --- /dev/null +++ b/feed-forward-nn.py @@ -0,0 +1,169 @@ +import csv + +import gensim.downloader +import numpy as np +import pandas as pd +import torch +import torch.nn as nn +from nltk import word_tokenize + + +# Feed forward neural network model +class FeedforwardNeuralNetModel(nn.Module): + def __init__(self, input_dim, hidden_dim, output_dim): + super(FeedforwardNeuralNetModel, self).__init__() + + # Linear function 1: vocab_size --> 500 + self.fc1 = nn.Linear(input_dim, hidden_dim) + # Non-linearity 1 + self.relu1 = nn.ReLU() + + # Linear function 2: 500 --> 500 + self.fc2 = nn.Linear(hidden_dim, hidden_dim) + # Non-linearity 2 + self.relu2 = nn.ReLU() + + # Linear function 3 (readout): 500 --> 3 + self.fc3 = nn.Linear(hidden_dim, output_dim) + + def forward(self, x): + # Linear function 1 + out = self.fc1(x) + # Non-linearity 1 + out = self.relu1(out) + + # Non-linearity 2 + out = self.relu2(out) + + # Linear function 3 (readout) + out = self.fc3(out) + + return torch.sigmoid(out) + + +col_names = ["content", "id", "label"] + +# Loading dataset +train_set_features = pd.read_table( + "train/in.tsv.xz", + error_bad_lines=False, + quoting=csv.QUOTE_NONE, + header=None, + names=col_names[:2], +) +train_set_labels = pd.read_table( + "train/expected.tsv", + error_bad_lines=False, + quoting=csv.QUOTE_NONE, + header=None, + names=col_names[2:], +) +dev_set = pd.read_table( + "dev-0/in.tsv.xz", + error_bad_lines=False, + header=None, + quoting=csv.QUOTE_NONE, + names=col_names[:2], +) +test_set = pd.read_table( + "test-A/in.tsv.xz", + error_bad_lines=False, + header=None, + quoting=csv.QUOTE_NONE, + names=col_names[:2], +) + + +# Lowercase text +X_train = train_set_features["content"].str.lower() +y_train = train_set_labels["label"] + +X_dev = dev_set["content"].str.lower() +X_test = test_set["content"].str.lower() + +# Tokenize text with nltk +X_train = [word_tokenize(content) for content in X_train] +X_dev = [word_tokenize(content) for content in X_dev] +X_test = [word_tokenize(content) for content in X_test] + +# Vectorize text +word2vec = gensim.downloader.load("word2vec-google-news-300") +X_train = [ + np.mean( + [word2vec[word] for word in content if word in word2vec] or [np.zeros(300)], + axis=0, + ) + for content in X_train +] +X_dev = [ + np.mean( + [word2vec[word] for word in content if word in word2vec] or [np.zeros(300)], + axis=0, + ) + for content in X_dev +] +X_test = [ + np.mean( + [word2vec[word] for word in content if word in word2vec] or [np.zeros(300)], + axis=0, + ) + for content in X_test +] + +# Model config +input_dim = 300 +hidden_layer = 600 +output_dim = 1 +batch_size = 10 +epochs = 10 + +# Model init +model = FeedforwardNeuralNetModel(input_dim, hidden_layer, output_dim) +optimizer = torch.optim.SGD(model.parameters(), lr=0.01) +criterion = torch.nn.BCELoss() + +# Learning model +for epoch in range(epochs): + model.train() + for i in range(0, y_train.shape[0], batch_size): + X = X_train[i : i + batch_size] + X = torch.tensor(X) + y = y_train[i : i + batch_size] + y = torch.tensor(y.astype(np.float32).to_numpy()).reshape(-1, 1) + + outputs = model(X.float()) + loss = criterion(outputs, y) + + optimizer.zero_grad() + loss.backward() + optimizer.step() + + +# Making predictions for dev-0 & and test-A +test_prediction = [] +dev_prediction = [] +model.eval() +with torch.no_grad(): + for i in range(0, len(X_test), batch_size): + X = X_test[i : i + batch_size] + X = torch.tensor(X) + + outputs = model(X.float()) + + prediction = outputs > 0.5 + test_prediction += prediction.tolist() + + for i in range(0, len(X_dev), batch_size): + X = X_dev[i : i + batch_size] + X = torch.tensor(X) + + outputs = model(X.float()) + + prediction = outputs > 0.5 + dev_prediction += prediction.tolist() + + +test_prediction = np.asarray(test_prediction, dtype=np.int32) +dev_prediction = np.asarray(dev_prediction, dtype=np.int32) +test_prediction.tofile("./test-A/out.tsv", sep="\n") +dev_prediction.tofile("./dev-0/out.tsv", sep="\n") diff --git a/neural-network.py b/neural-network.py deleted file mode 100644 index 7ec6e86..0000000 --- a/neural-network.py +++ /dev/null @@ -1,102 +0,0 @@ -import os -import pandas as pd -import tensorflow as tf -import numpy as np -import torch -import torch.nn as nn -from tensorflow.keras.layers.experimental.preprocessing import TextVectorization - -os.environ['CUDA_VISIBLE_DEVICES'] = '-1' - -print('debug 1') -train_df = pd.read_csv('train/in.tsv', header=None, sep='\t') -test_df = pd.read_csv('test-A/in.tsv', header=None, sep='\t') -dev_df = pd.read_csv('dev-0/in.tsv', header=None, sep='\t') -train_expected = pd.read_csv('train/expected.tsv', header=None, sep='\t') - -train_text = train_df[0].tolist() -test_text = test_df[0].tolist() -dev_text = test_df[0].tolist() - -text_data = train_text + test_text + dev_text - -vectorize_layer = TextVectorization(max_tokens=5, output_mode="int") -text_data = tf.data.Dataset.from_tensor_slices(text_data) -vectorize_layer.adapt(text_data.batch(64)) - -inputs = tf.keras.layers.Input(shape=(1,), dtype=tf.string, name="text") -outputs = vectorize_layer(inputs) -model = tf.keras.Model(inputs, outputs) - -print('uwaga debug') -x_train = list(map(model.predict, train_text)) -y_train = train_expected[0] -x_test = list(map(model.predict, test_text)) -loss_function = nn.CrossEntropyLoss() - -x_train = pd.DataFrame(x_train) -x_test = pd.DataFrame(x_test) -y_train = pd.DataFrame(y_train[0]) - -# (model.predict(["Murder in the forset!"])) - - -class FeedforwardNeuralNetModel(nn.Module): - def __init__(self, input_dim, hidden_dim, output_dim): - super(FeedforwardNeuralNetModel, self).__init__() - # Linear function - self.fc1 = nn.Linear(input_dim, hidden_dim) - - # Non-linearity - self.sigmoid = nn.Sigmoid() - - # Linear function (readout) - self.fc2 = nn.Linear(hidden_dim, output_dim) - - def forward(self, x): - # Linear function # LINEAR - out = self.fc1(x) - - # Non-linearity # NON-LINEAR - out = self.sigmoid(out) - - # Linear function (readout) # LINEAR - out = self.fc2(out) - return out - -num_epochs = 2 - -for epoch in range(num_epochs): - if (epoch + 1) % 25 == 0: - print("Epoch completed: " + str(epoch + 1)) - print(f"Epoch number: {epoch}") - train_loss = 0 - for index, row in x_train.iterrows(): - print(index) - - # Forward pass to get output - probs = x_train[0][index] - # Get the target label - target = y_train[0][index] - - # Calculate Loss: softmax --> cross entropy loss - loss = loss_function(probs, target) - # Accumulating the loss over time - train_loss += loss.item() - - # Getting gradients w.r.t. parameters - loss.backward() - - - - train_loss = 0 - - -bow_ff_nn_predictions = [] -original_lables_ff_bow = [] -with torch.no_grad(): - for index, row in x_test.iterrows(): - probs = x_test[0][index] - bow_ff_nn_predictions.append(torch.argmax(probs, dim=1).cpu().numpy()[0]) - -print(bow_ff_nn_predictions) diff --git a/neural-network2.py b/neural-network2.py deleted file mode 100644 index a0035aa..0000000 --- a/neural-network2.py +++ /dev/null @@ -1,151 +0,0 @@ -import pandas as pd -from gensim.utils import simple_preprocess -from gensim.parsing.porter import PorterStemmer -from gensim import corpora - -import torch.nn as nn -import torch.nn.functional as F -import torch.optim as optim -import torch - - -class FeedforwardNeuralNetModel(nn.Module): - def __init__(self, input_dim, hidden_dim, output_dim): - super(FeedforwardNeuralNetModel, self).__init__() - - # Linear function 1: vocab_size --> 500 - self.fc1 = nn.Linear(input_dim, hidden_dim) - # Non-linearity 1 - self.relu1 = nn.ReLU() - - # Linear function 2: 500 --> 500 - self.fc2 = nn.Linear(hidden_dim, hidden_dim) - # Non-linearity 2 - self.relu2 = nn.ReLU() - - # Linear function 3 (readout): 500 --> 3 - self.fc3 = nn.Linear(hidden_dim, output_dim) - - def forward(self, x): - # Linear function 1 - out = self.fc1(x) - # Non-linearity 1 - out = self.relu1(out) - - # Non-linearity 2 - out = self.relu2(out) - - # Linear function 3 (readout) - out = self.fc3(out) - - return F.softmax(out, dim=1) - - -device = torch.device("cuda" if torch.cuda.is_available() else "cpu") - -train_expected = pd.read_csv('train/expected.tsv', header=None, sep='\t') -train_df = pd.read_csv('train/in.tsv', header=None, sep='\t') -# test_df = pd.read_csv('test-A/in.tsv', header=None, sep='\t') -test_df = pd.read_csv('dev-0/in.tsv', header=None, sep='\t') -y_train = pd.DataFrame(train_expected[0]) - - -train_df[0] = [simple_preprocess(text, deacc=True) for text in train_df[0]] -porter_stemmer = PorterStemmer() -train_df['stemmed_tokens'] = [[porter_stemmer.stem(word) for word in tokens] for tokens in train_df[0]] -test_df[0] = [simple_preprocess(text, deacc=True) for text in test_df[0]] -test_df['stemmed_tokens'] = [[porter_stemmer.stem(word) for word in tokens] for tokens in test_df[0]] - -x_test = pd.DataFrame(test_df['stemmed_tokens']) -x_train = pd.DataFrame(train_df['stemmed_tokens']) - - -def make_dict(top_data_df_small, padding=True): - if padding: - print("Dictionary with padded token added") - review_dict = corpora.Dictionary([['pad']]) - review_dict.add_documents(top_data_df_small['stemmed_tokens']) - else: - print("Dictionary without padding") - review_dict = corpora.Dictionary(top_data_df_small['stemmed_tokens']) - return review_dict - - -# Make the dictionary without padding for the basic models -review_dict = make_dict(train_df, padding=False) - -VOCAB_SIZE = len(review_dict) -NUM_LABELS = 2 - - -# Function to make bow vector to be used as input to network -def make_bow_vector(review_dict, sentence): - vec = torch.zeros(VOCAB_SIZE, dtype=torch.float64, device=device) - for word in sentence: - vec[review_dict.token2id[word]] += 1 - return vec.view(1, -1).float() - - -input_dim = VOCAB_SIZE -hidden_dim = 10 -output_dim = 2 -num_epochs = 2 - -ff_nn_bow_model = FeedforwardNeuralNetModel(input_dim, hidden_dim, output_dim) -ff_nn_bow_model.to(device) - -loss_function = nn.CrossEntropyLoss() -optimizer = optim.SGD(ff_nn_bow_model.parameters(), lr=0.001) - -losses = [] -iter = 0 - -def make_target(label): - if label == 0: - return torch.tensor([0], dtype=torch.long, device=device) - elif label == 1: - return torch.tensor([1], dtype=torch.long, device=device) - - -# Start training -for epoch in range(num_epochs): - if (epoch + 1) % 25 == 0: - print("Epoch completed: " + str(epoch + 1)) - print(f"Epoch number: {epoch}") - train_loss = 0 - for index, row in x_train.iterrows(): - print(index) - # Clearing the accumulated gradients - optimizer.zero_grad() - - # Make the bag of words vector for stemmed tokens - bow_vec = make_bow_vector(review_dict, row['stemmed_tokens']) - - # Forward pass to get output - probs = ff_nn_bow_model(bow_vec) - - # Get the target label - target = make_target(y_train[0][index]) - - # Calculate Loss: softmax --> cross entropy loss - loss = loss_function(probs, target) - # Accumulating the loss over time - train_loss += loss.item() - - # Getting gradients w.r.t. parameters - loss.backward() - - # Updating parameters - optimizer.step() - - train_loss = 0 - - -bow_ff_nn_predictions = [] -original_lables_ff_bow = [] -with torch.no_grad(): - for index, row in x_test.iterrows(): - bow_vec = make_bow_vector(review_dict, row['stemmed_tokens']) - probs = ff_nn_bow_model(bow_vec) - bow_ff_nn_predictions.append(torch.argmax(probs, dim=1).cpu().numpy()[0]) - diff --git a/dev-0/expected.tsv b/test-A/out.tsv similarity index 93% rename from dev-0/expected.tsv rename to test-A/out.tsv index 51d2bb4..308db5b 100644 --- a/dev-0/expected.tsv +++ b/test-A/out.tsv @@ -1,6 +1,5 @@ 0 -1 -1 +0 0 0 0 @@ -11,85 +10,65 @@ 0 0 0 -1 0 1 0 0 -0 1 0 0 1 -0 1 0 +0 1 1 0 1 +1 +1 0 1 0 +1 0 0 0 0 0 -1 0 -1 0 0 0 0 0 -1 0 -1 -1 -1 0 -1 0 1 1 0 0 -0 -0 -1 1 0 -1 0 -1 0 -1 0 -1 0 0 0 -1 0 1 -1 0 0 -1 -1 0 -1 -1 0 0 1 -1 0 1 0 -0 +1 0 0 0 @@ -99,16 +78,21 @@ 1 0 0 -1 0 1 +1 +1 0 1 0 0 +1 0 1 +1 0 +1 +1 0 0 0 @@ -118,6 +102,8 @@ 0 0 0 +0 +0 1 1 0 @@ -125,18 +111,17 @@ 0 1 0 +1 0 0 +1 0 0 -1 -1 -1 0 1 0 0 -0 +1 0 0 0 @@ -145,26 +130,23 @@ 0 0 0 -1 0 1 0 0 0 0 +0 1 1 1 0 -0 -0 -0 1 0 1 0 0 -0 +1 0 1 1 @@ -173,14 +155,11 @@ 0 0 0 -1 -1 0 +1 0 0 -1 0 -1 0 1 0 @@ -189,50 +168,42 @@ 0 0 1 +0 +0 1 0 0 +1 0 0 0 0 1 -1 -1 -1 -1 0 0 -0 -1 1 +0 1 1 0 +1 0 1 0 0 -1 0 0 0 -1 0 -1 0 -1 0 0 0 -1 0 0 0 0 -1 -1 -1 +0 0 0 0 @@ -240,15 +211,12 @@ 0 0 0 -1 0 0 -1 -1 -1 0 0 1 +1 0 0 1 @@ -260,12 +228,9 @@ 0 0 1 -1 -0 0 1 0 -0 1 1 1 @@ -277,12 +242,12 @@ 0 0 0 +1 0 0 0 1 0 -1 0 0 1 @@ -290,24 +255,14 @@ 0 0 0 +1 0 0 0 -0 -0 -1 -1 1 -1 -1 -1 -0 0 0 -1 0 -1 -1 0 1 0 @@ -316,36 +271,22 @@ 0 0 0 -0 +1 0 0 1 1 -0 1 0 -0 -0 -0 1 0 -0 1 0 1 1 -0 -0 -0 -0 -0 -1 -0 -0 1 1 0 -0 1 0 0 @@ -360,19 +301,18 @@ 0 0 0 -0 1 0 0 -1 +0 0 0 1 +1 0 0 0 0 -1 0 0 0 @@ -380,98 +320,105 @@ 1 0 0 -1 0 0 0 1 0 -1 0 0 1 0 +1 0 0 0 0 -1 0 0 1 0 -1 +0 0 0 1 1 0 0 -1 -0 0 0 1 1 1 +0 +0 1 +0 1 +0 1 0 0 -1 +0 0 1 1 0 0 0 -1 0 -1 0 1 -1 0 0 0 -1 -1 +0 1 0 0 1 0 1 +1 0 0 +1 0 0 0 0 0 +1 0 1 0 0 -1 0 0 1 -1 0 1 0 +1 0 0 0 0 1 +0 +0 +0 1 +0 1 +0 +0 +0 +0 1 +0 1 -1 +0 1 0 0 @@ -479,6 +426,8 @@ 1 0 1 +1 +0 0 0 0 @@ -486,50 +435,40 @@ 0 1 1 -0 1 0 1 -1 0 0 0 0 0 -1 0 0 0 0 0 -1 0 0 0 -1 0 -1 0 +1 0 0 0 -1 0 1 0 0 0 -1 0 0 0 -1 -1 -1 0 0 1 -1 +0 0 0 0 @@ -537,37 +476,41 @@ 1 1 0 -1 0 1 0 0 0 0 +1 0 +1 0 1 0 +1 0 1 0 +1 0 1 0 0 0 1 +1 +1 0 0 1 -1 0 0 0 1 -1 0 0 +1 0 0 0 @@ -576,31 +519,21 @@ 0 0 1 +1 0 0 1 -1 -1 0 -1 0 -1 0 0 0 -1 0 0 0 -1 -1 0 0 -1 -1 -1 -1 -1 +0 0 0 0 @@ -609,43 +542,51 @@ 0 0 0 -1 0 0 +0 +1 1 0 0 0 0 0 +1 0 +1 0 0 1 1 -1 0 +1 0 1 0 0 +1 +0 0 1 1 0 0 0 +1 0 0 0 0 +1 +1 +1 0 0 +1 0 0 -1 0 -1 0 1 0 @@ -654,28 +595,31 @@ 0 0 1 -1 0 1 -1 -1 -1 0 1 +0 +0 1 1 0 0 -0 1 0 0 0 +1 +1 0 0 0 +1 0 0 +1 +1 +1 0 0 0 @@ -685,46 +629,44 @@ 1 0 0 -1 +0 1 0 0 0 0 -1 -1 +0 1 0 0 -1 0 -1 -1 0 0 0 0 -1 0 0 0 1 -1 0 1 -0 1 1 0 +1 +0 0 1 0 0 0 +1 0 1 0 0 +1 +1 0 0 0 @@ -732,25 +674,26 @@ 0 0 0 +1 +0 0 +1 0 1 0 0 1 0 +0 1 0 0 0 -1 0 1 0 0 0 -1 -1 0 0 1 @@ -758,8 +701,6 @@ 0 0 0 -0 -1 1 0 1 @@ -768,51 +709,40 @@ 0 0 0 -0 1 -0 +1 +1 0 1 +1 0 1 0 0 -1 0 -1 -1 -1 +0 0 1 +0 1 0 1 0 0 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 0 1 0 -1 -1 0 0 1 +0 1 0 0 0 -1 0 0 1 @@ -820,10 +750,7 @@ 0 0 0 -1 0 -1 -1 0 0 0 @@ -831,84 +758,71 @@ 0 0 0 -1 -0 -1 -1 0 0 0 1 1 +0 1 +0 +0 +0 +0 1 +0 1 +0 1 +0 1 1 0 0 0 1 +1 +1 0 +1 0 0 0 0 -1 -0 0 0 -1 0 1 1 0 0 -0 1 0 0 -1 -1 0 -1 -1 -1 -1 0 0 0 0 -1 0 -1 +0 0 1 0 0 0 -1 0 1 -1 -1 -1 -1 -1 -1 0 0 0 1 0 -1 -1 +0 1 1 0 0 -1 0 0 0 @@ -916,51 +830,52 @@ 0 0 0 -1 -0 0 +1 +1 0 0 0 0 1 0 -1 0 0 +1 0 0 +1 0 0 1 -0 +1 1 0 0 -1 0 0 -1 0 0 0 0 +0 +0 +1 1 0 0 0 -1 0 0 0 -1 0 0 -1 +0 0 1 0 1 +0 1 0 0 @@ -968,35 +883,35 @@ 1 0 0 -0 1 0 0 0 0 +0 1 0 0 0 +0 1 1 0 -1 0 1 -1 +0 1 0 0 0 0 +1 0 0 1 -0 1 0 -1 +0 0 0 0 @@ -1009,7 +924,7 @@ 0 0 0 -1 +0 0 0 0 @@ -1019,75 +934,91 @@ 0 0 0 -1 +0 1 0 0 -1 +0 0 1 0 0 1 0 -1 +0 +0 0 0 1 0 0 1 +0 1 1 0 0 0 1 -1 +0 +0 0 0 1 +0 +0 1 0 0 0 +1 +0 0 +1 0 0 0 0 0 0 +0 +1 1 0 0 0 0 -1 0 -1 0 +1 0 1 +1 0 0 -1 0 0 1 0 1 0 +0 +0 1 0 0 0 +1 +0 0 +1 +1 0 0 0 0 1 +1 0 0 1 @@ -1100,11 +1031,14 @@ 0 0 0 +1 +0 0 0 0 0 1 +1 0 1 0 @@ -1113,58 +1047,97 @@ 1 0 0 -0 1 1 0 -0 -0 -0 +1 0 1 0 0 0 0 -1 0 1 0 -1 +0 1 1 0 0 0 0 +0 1 +0 +0 1 +0 1 1 +0 +0 +0 1 1 +0 1 +0 +0 1 1 +0 +0 +0 +0 +0 +0 1 +0 1 1 +0 +0 +0 1 +0 +0 1 1 +0 +0 +0 +0 +0 1 +0 +0 1 +0 1 1 1 +0 +0 +0 +0 +0 +0 1 1 +0 +0 1 +0 +0 +0 1 1 +0 1 -1 -1 +0 +0 +0 1 1 0 @@ -1177,18 +1150,24 @@ 0 0 0 +1 0 0 0 +1 +1 0 0 +1 0 0 0 +1 0 0 0 0 +1 0 0 0 @@ -1198,17 +1177,29 @@ 0 0 0 +1 0 0 +1 0 0 0 0 +1 +1 +0 +0 +0 +1 0 0 0 0 +1 +1 +1 0 +1 0 0 0 @@ -1216,7 +1207,7 @@ 0 1 0 -1 +0 0 0 0 @@ -1226,10 +1217,12 @@ 1 0 0 +1 0 1 0 0 +1 0 1 0 @@ -1237,6 +1230,8 @@ 0 1 0 +0 +0 1 1 0 @@ -1248,18 +1243,25 @@ 0 0 0 -1 -1 0 0 -1 0 0 0 1 +0 +0 +0 +0 +0 1 1 -1 +0 +0 +0 +0 +0 +0 0 1 1 @@ -1267,10 +1269,16 @@ 0 0 0 -1 0 1 -1 +0 +0 +0 +0 +0 +0 +0 +0 0 0 1 @@ -1278,22 +1286,38 @@ 1 0 0 +0 +0 +0 +0 +0 1 0 0 +0 +0 1 0 1 1 +0 1 1 0 1 0 -1 0 +1 0 1 +0 +0 +0 +0 +0 +0 +0 +0 1 1 1 @@ -1301,17 +1325,31 @@ 1 0 1 +1 +1 0 0 +1 +1 0 0 1 +0 +0 1 0 0 0 +0 +0 +0 +0 +0 +0 +0 +0 1 -1 +0 1 0 0 @@ -1323,14 +1361,22 @@ 1 0 0 +1 0 +1 +1 0 0 +1 +0 +1 +0 0 0 0 1 0 +0 1 0 0 @@ -1338,6 +1384,7 @@ 0 0 0 +1 0 0 0 @@ -1345,47 +1392,48 @@ 0 1 0 +0 1 0 0 0 -1 0 0 0 0 0 1 +0 1 0 0 1 1 -1 0 0 0 0 0 1 +1 0 +1 0 0 1 +0 +0 1 1 0 0 +1 0 0 0 0 -1 -0 0 0 -1 -1 0 0 1 @@ -1394,13 +1442,15 @@ 0 0 0 -1 -1 0 0 +1 +1 +1 +1 +1 0 0 -1 0 0 0 @@ -1410,70 +1460,54 @@ 0 1 0 -1 +0 1 0 0 1 0 -1 -1 -1 0 0 0 -1 -1 -1 0 1 -1 -0 0 0 +1 0 0 0 1 -1 -0 0 -1 -1 0 0 1 -0 1 0 0 0 0 1 +0 1 1 -1 -0 0 +1 0 1 1 -0 -0 1 0 0 0 -1 -0 0 0 0 0 0 1 -1 -1 +0 +0 0 0 0 @@ -1483,38 +1517,35 @@ 0 0 0 +1 0 0 0 0 1 +1 +1 0 0 0 0 0 -1 -1 0 0 -1 -1 0 0 0 0 0 1 -1 -0 0 -1 0 0 0 1 0 0 +0 1 0 0 @@ -1525,23 +1556,17 @@ 0 0 0 -1 -1 -1 -1 -1 0 -1 0 1 -1 0 -1 0 1 0 1 1 +1 +0 0 1 0 @@ -1554,44 +1579,24 @@ 0 0 0 -1 -1 -0 -1 0 0 0 1 0 -1 -1 0 -1 -1 -1 -1 0 1 -1 0 0 -1 -1 0 -1 -1 0 +1 0 0 0 -1 0 -1 -1 0 -1 -1 -1 0 1 0 @@ -1601,25 +1606,23 @@ 0 0 1 -1 -0 0 0 0 -1 -1 0 -1 0 0 +1 0 0 0 +1 0 0 0 1 0 +1 0 0 0 @@ -1627,22 +1630,20 @@ 0 0 1 -0 1 0 0 0 -1 -0 -1 0 0 -1 0 0 0 0 0 +1 +1 +1 0 0 0 @@ -1650,33 +1651,29 @@ 0 1 1 +1 0 1 0 0 0 0 -1 -1 0 1 1 0 -1 0 0 -1 0 -1 -1 0 -1 0 1 0 0 0 0 +1 +0 0 0 0 @@ -1684,107 +1681,108 @@ 0 0 0 +1 0 0 0 0 1 -1 -1 0 -1 0 -1 0 +1 0 1 1 -0 1 0 0 0 +1 +0 0 0 0 0 0 +1 0 0 +1 0 0 1 1 +1 +0 +1 +0 +0 +0 0 0 0 1 1 0 -1 0 -1 0 1 0 0 0 +1 0 0 0 -1 0 0 -1 0 0 0 -1 0 0 -1 0 0 0 1 +0 +0 1 1 -1 -1 -1 -1 -1 +0 0 0 1 +0 +0 +0 +0 1 1 1 -0 1 0 -0 1 0 0 0 0 0 -0 1 0 -0 -0 1 +0 1 1 0 0 -1 0 0 0 +1 0 +1 0 1 0 @@ -1795,22 +1793,24 @@ 0 0 0 -0 +1 +1 +1 0 0 1 0 -1 0 0 0 1 +1 +0 0 0 0 0 0 -1 0 1 0 @@ -1819,10 +1819,10 @@ 0 0 0 -0 1 0 0 +1 0 1 0 @@ -1832,23 +1832,21 @@ 0 0 0 -1 0 -1 -1 0 1 1 0 +0 1 0 0 1 1 -1 -0 0 +1 0 +1 0 0 0 @@ -1856,11 +1854,8 @@ 0 0 1 -0 1 -0 1 -0 1 1 0 @@ -1869,6 +1864,7 @@ 0 0 0 +1 0 1 0 @@ -1876,6 +1872,8 @@ 0 0 0 +1 +1 0 0 0 @@ -1888,27 +1886,36 @@ 0 0 0 +0 +0 +0 +0 1 1 0 0 0 0 -1 0 0 1 1 0 0 -0 1 +0 +0 1 0 +0 1 1 +1 +0 0 0 +1 +1 0 0 0 @@ -1917,11 +1924,18 @@ 0 0 1 +1 +0 0 0 +1 +1 0 0 0 +1 +1 +1 0 0 0 @@ -1931,32 +1945,37 @@ 0 0 0 -1 -1 0 1 -1 0 1 0 0 0 +1 0 0 0 +1 +1 0 0 0 1 +0 1 1 0 0 0 +0 +1 +0 1 0 1 0 +0 1 0 0 @@ -1965,59 +1984,41 @@ 0 0 0 -1 -1 +0 +0 1 0 1 0 0 -1 0 0 -1 -1 0 0 0 0 0 1 -1 -1 -1 -1 -1 -1 -1 -1 +0 1 0 0 -1 -1 -1 0 0 -1 -1 0 0 -1 0 -1 -1 -1 0 0 -1 0 0 0 -1 +0 +0 0 1 -1 +0 +0 1 0 1 @@ -2027,12 +2028,12 @@ 1 0 0 +1 0 0 0 0 0 -1 0 0 0 @@ -2042,6 +2043,7 @@ 0 0 1 +0 1 0 0 @@ -2054,12 +2056,9 @@ 0 1 1 -1 -0 0 0 1 -0 1 0 0 @@ -2067,10 +2066,9 @@ 0 0 0 -0 1 -0 -0 +1 +1 0 0 0 @@ -2078,13 +2076,12 @@ 1 0 1 -1 +0 +0 1 0 0 0 -1 -1 0 0 1 @@ -2094,11 +2091,8 @@ 0 0 0 -1 -0 0 0 -1 0 0 0 @@ -2108,6 +2102,11 @@ 0 0 0 +1 +0 +1 +0 +1 0 0 0 @@ -2115,50 +2114,53 @@ 1 1 1 +1 +1 0 0 -1 0 0 0 0 0 0 +1 0 1 1 +1 0 0 1 +1 +1 0 0 0 1 0 0 -1 -1 -1 -1 0 0 1 +0 +0 +0 1 0 0 0 -1 0 -1 0 -1 0 0 -1 +0 +0 +0 +0 0 1 1 -1 0 0 0 @@ -2167,66 +2169,50 @@ 1 0 1 -1 0 0 -1 0 -1 0 -1 -1 0 -1 0 0 -1 0 -1 -1 +0 1 0 +1 0 0 0 +1 0 0 -1 0 0 -1 -1 -1 0 0 1 0 -1 0 0 0 0 -1 0 0 1 1 0 -1 -1 -1 +0 1 1 0 1 -1 0 0 0 0 0 1 -1 0 0 0 @@ -2239,11 +2225,9 @@ 1 1 0 -1 0 -1 0 -1 +0 0 1 1 @@ -2254,20 +2238,26 @@ 0 1 0 +0 +0 1 1 1 -0 -0 1 1 0 -0 +1 +1 +1 +1 +1 0 0 1 0 +1 0 +1 0 0 0 @@ -2275,26 +2265,17 @@ 0 0 1 -1 -0 -0 0 1 0 0 -1 0 1 0 0 0 -1 -0 0 -1 0 -1 -1 0 0 0 @@ -2303,11 +2284,9 @@ 0 0 1 -1 -1 0 0 -1 +0 0 0 0 @@ -2317,16 +2296,15 @@ 0 0 0 +0 1 0 0 0 1 0 -0 1 0 -1 0 1 0 @@ -2335,48 +2313,48 @@ 0 0 0 +0 1 0 0 1 1 0 +0 +0 1 0 0 0 1 -1 -1 -1 +0 1 0 0 +0 1 0 1 1 1 0 -0 -0 +1 1 0 +0 1 1 1 0 -0 1 1 0 0 0 +1 0 0 1 -1 -0 0 0 1 @@ -2384,22 +2362,27 @@ 0 0 1 +1 0 1 0 +0 +0 +0 1 +0 1 1 1 0 -1 -1 0 -1 +0 +0 0 0 1 0 +0 1 0 0 @@ -2411,9 +2394,7 @@ 1 0 0 -1 0 -1 0 0 0 @@ -2422,15 +2403,9 @@ 0 0 1 -1 -1 0 -1 0 1 -1 -1 -0 0 0 0 @@ -2439,24 +2414,21 @@ 0 0 0 -1 0 0 1 -1 0 0 1 1 -0 1 0 -1 -1 -1 0 0 0 +1 +0 +1 0 0 0 @@ -2468,6 +2440,7 @@ 0 0 1 +1 0 0 0 @@ -2477,64 +2450,42 @@ 0 0 0 -0 1 1 0 0 -0 -0 -0 -1 -0 1 0 1 1 -1 0 0 -1 -1 0 0 -1 0 0 0 0 -1 -1 0 0 0 -1 -1 -1 0 -1 0 1 0 -1 -1 0 -1 0 1 0 1 +1 0 0 1 -1 0 -1 0 -1 0 0 -1 0 0 0 @@ -2543,48 +2494,49 @@ 0 0 0 -0 +1 +1 +1 1 0 0 0 -1 -0 0 +1 0 1 0 0 +0 1 0 +1 +1 +1 +1 +1 0 0 0 0 0 1 -1 0 1 0 1 1 -0 1 0 1 0 -1 -1 0 0 -1 0 0 0 0 0 -1 0 0 1 @@ -2594,7 +2546,6 @@ 0 0 0 -1 0 0 0 @@ -2602,88 +2553,60 @@ 1 0 0 -1 -0 -1 0 0 0 -1 -1 -1 -1 0 1 -1 0 0 0 0 -0 -1 1 +0 1 1 0 0 0 0 -1 -1 -0 -0 0 0 0 -1 -1 -1 0 0 -1 -1 0 1 0 0 0 -0 1 -0 1 0 +0 1 0 1 1 0 -0 -0 -0 1 0 -0 1 +0 1 1 -0 1 0 0 -0 -0 1 0 0 0 -1 -0 0 0 0 1 -0 -0 +1 0 0 0 @@ -2691,30 +2614,28 @@ 0 1 1 +1 0 0 0 -1 0 0 0 1 -0 -0 1 0 1 0 0 1 -0 -0 -0 1 0 0 0 0 +1 +1 +0 0 0 0 @@ -2723,7 +2644,6 @@ 1 1 0 -1 0 0 0 @@ -2732,8 +2652,10 @@ 1 0 0 +0 1 0 +1 0 0 0 @@ -2744,16 +2666,20 @@ 0 0 0 +1 +0 0 0 -1 0 +1 0 +1 0 0 0 0 0 +1 0 0 0 @@ -2764,9 +2690,7 @@ 0 0 1 -1 -1 -1 +0 1 1 0 @@ -2774,14 +2698,11 @@ 1 0 1 -1 0 0 -1 0 0 1 -1 0 0 0 @@ -2791,14 +2712,11 @@ 0 0 0 -1 0 0 0 0 -1 0 -1 0 0 1 @@ -2807,7 +2725,9 @@ 0 1 0 +1 0 +1 0 0 0 @@ -2815,33 +2735,24 @@ 0 1 1 -0 1 0 0 0 -1 0 -1 0 0 -1 -1 0 -1 0 0 1 -0 -0 +1 1 1 0 0 -1 0 0 -1 0 0 0 @@ -2850,16 +2761,14 @@ 0 0 1 -1 -1 0 1 0 0 0 0 -1 -1 +0 +0 0 0 1 @@ -2871,44 +2780,36 @@ 0 0 0 -1 0 -1 -1 0 1 0 1 -1 +0 +0 0 1 1 0 0 0 -0 -1 1 -0 1 -0 1 1 0 0 +0 1 0 0 0 -1 0 -1 0 0 -1 0 0 -1 +0 1 0 1 @@ -2924,40 +2825,39 @@ 0 1 0 -0 +0 +0 +1 +1 +1 +0 1 0 0 0 -1 0 0 -1 0 1 1 0 +1 0 +1 0 1 1 0 -0 -0 +1 1 1 0 0 -0 -0 -1 -1 1 0 0 0 0 -1 0 0 0 @@ -2968,14 +2868,15 @@ 0 0 0 -1 0 1 -0 +1 1 0 +1 0 0 +1 0 0 0 @@ -2984,35 +2885,37 @@ 0 0 1 +1 0 0 0 0 0 0 +1 0 1 0 0 +0 1 1 0 0 0 0 +1 0 0 1 -1 0 0 -1 0 -1 0 0 1 0 +1 0 0 0 @@ -3020,74 +2923,80 @@ 1 0 0 -0 -1 -1 -1 -0 1 0 0 1 1 -1 0 -1 0 -1 0 0 -1 0 0 0 0 0 +1 +1 0 0 1 -1 +0 1 0 0 1 0 +0 1 0 0 +1 0 +1 +1 +1 0 0 0 0 1 0 -1 0 0 0 1 +1 +1 0 0 1 1 0 1 -0 1 0 0 0 +0 1 0 0 0 +0 1 1 +0 +0 +0 +0 +0 +0 +0 1 1 0 -1 0 0 0 @@ -3095,56 +3004,48 @@ 0 0 0 -1 0 0 0 -1 0 1 -1 -1 -1 0 -1 -1 0 0 -1 0 0 1 +0 +0 1 0 0 0 +1 0 0 0 1 +0 1 0 +1 0 0 0 0 0 -1 -1 0 0 0 1 -1 0 0 0 -1 0 1 -1 0 -1 +0 0 0 0 @@ -3155,51 +3056,47 @@ 0 0 0 -1 +0 +0 0 0 0 0 1 +0 1 0 1 0 0 -1 0 -1 -1 0 1 0 0 0 0 -1 0 1 1 1 -1 0 -1 0 -1 +0 0 0 0 0 0 1 -1 -1 -1 +0 0 0 1 0 0 +0 +0 1 0 0 @@ -3210,15 +3107,11 @@ 0 0 0 -1 -1 0 0 -1 -1 0 0 -1 +0 0 0 1 @@ -3229,32 +3122,23 @@ 0 0 0 -1 0 0 0 1 -1 0 0 -1 -0 0 0 1 1 -0 -1 1 0 0 0 -1 -1 0 1 0 -1 0 1 0 @@ -3263,14 +3147,20 @@ 0 1 0 +1 +1 0 +1 0 +1 0 1 0 0 0 1 +0 +1 1 0 0 @@ -3278,11 +3168,9 @@ 1 0 0 -0 1 0 0 -1 0 0 0 @@ -3293,40 +3181,45 @@ 0 1 0 -0 1 +0 1 0 0 0 -1 -1 0 0 +1 0 0 +1 0 0 0 0 0 0 -1 0 -1 0 1 0 0 1 -0 1 1 1 +0 +0 +1 +1 1 1 0 0 +0 +0 +1 +0 1 0 0 @@ -3338,11 +3231,11 @@ 0 0 0 +0 1 0 0 0 -1 0 1 0 @@ -3352,9 +3245,7 @@ 0 1 1 -1 0 -1 0 1 0 @@ -3363,35 +3254,30 @@ 1 0 0 -1 -0 0 1 -0 -0 1 +0 1 0 1 +0 1 0 +0 1 0 1 0 0 0 -1 -1 -1 0 -1 +0 1 0 0 1 0 -1 0 0 0 @@ -3402,24 +3288,29 @@ 0 1 0 -1 -1 -0 0 0 +1 +1 0 +1 0 1 +1 +1 +1 0 0 1 0 -1 +0 0 1 0 0 0 +1 +1 0 1 0 @@ -3428,8 +3319,8 @@ 0 0 0 -1 0 +1 0 0 0 @@ -3443,41 +3334,30 @@ 1 0 0 +1 0 0 0 0 -1 -1 0 0 0 0 -1 0 0 0 1 -1 -1 -1 0 0 -1 0 0 1 0 -1 0 1 0 0 -1 -1 -0 0 -1 0 0 0 @@ -3486,15 +3366,10 @@ 1 0 0 -0 -1 -0 -1 1 0 1 0 -0 1 0 0 @@ -3503,7 +3378,6 @@ 1 0 1 -0 1 1 1 @@ -3513,13 +3387,16 @@ 0 0 1 -1 +0 0 1 1 +0 1 0 0 +1 +0 0 0 0 @@ -3529,6 +3406,7 @@ 0 1 0 +1 0 0 0 @@ -3537,18 +3415,25 @@ 0 0 0 +1 +0 +1 +1 0 1 +1 0 0 1 0 0 +1 0 1 0 0 -1 +0 +0 0 0 1 @@ -3556,25 +3441,29 @@ 0 0 0 +0 1 0 0 0 +1 0 0 0 1 +0 +0 1 0 0 0 0 -1 -1 +0 0 0 1 -1 +0 +0 0 0 0 @@ -3583,17 +3472,15 @@ 0 0 1 -1 0 0 0 +1 0 0 0 0 -1 0 -1 0 0 1 @@ -3602,31 +3489,36 @@ 0 1 0 +1 +1 0 0 0 1 +1 +0 0 0 -1 -1 1 0 +0 1 +0 1 0 1 0 1 +1 0 0 0 0 1 +1 0 0 0 -1 0 0 0 @@ -3634,33 +3526,30 @@ 0 1 1 -0 -0 1 0 1 1 -1 -1 -0 -0 0 1 0 0 -1 0 0 +1 0 0 0 0 1 +1 0 1 1 +1 0 0 +1 0 0 0 @@ -3669,44 +3558,44 @@ 0 0 0 -1 -0 0 -1 0 -1 0 -1 0 1 1 0 0 -1 +0 1 0 1 0 +1 +1 +1 0 0 0 1 1 -1 +0 0 1 0 0 +1 0 1 1 0 -1 0 -1 0 0 +1 +1 0 +1 0 0 0 @@ -3715,25 +3604,24 @@ 1 0 0 -1 -0 0 1 0 0 -0 +1 0 0 1 1 -0 -0 1 0 1 0 0 0 +1 +1 +0 0 0 0 @@ -3742,34 +3630,29 @@ 0 1 0 +1 0 +1 0 0 0 1 -1 -1 0 0 0 0 0 1 -1 -1 0 -1 0 -1 -1 0 0 0 +1 +1 0 0 0 -1 -1 0 1 0 @@ -3777,22 +3660,18 @@ 0 0 0 -0 1 0 +0 1 1 0 0 -1 -1 -1 0 1 1 0 0 -1 0 0 0 @@ -3805,6 +3684,8 @@ 0 0 0 +1 +0 0 0 0 @@ -3814,30 +3695,27 @@ 1 1 0 +0 1 0 0 1 -1 0 1 -0 -0 +1 +1 0 0 1 0 0 0 +0 1 1 -1 -0 -0 0 0 0 -1 0 0 0 @@ -3847,57 +3725,47 @@ 1 0 1 -0 1 0 0 0 0 -1 -0 -1 -1 -0 0 0 0 +1 0 0 +1 0 0 0 +1 0 0 1 -0 1 0 0 0 +1 0 0 1 -1 0 -1 0 0 0 0 +1 0 0 0 -1 0 1 -1 -1 0 0 1 -1 -1 -0 0 0 0 @@ -3910,15 +3778,11 @@ 1 1 0 -1 0 1 0 -0 -1 1 0 -0 1 0 0 @@ -3927,12 +3791,9 @@ 0 1 1 -1 0 -1 0 1 -0 1 0 0 @@ -3940,14 +3801,14 @@ 1 0 0 -1 0 1 +0 +0 1 1 0 0 -1 0 0 0 @@ -3955,32 +3816,31 @@ 1 0 0 -1 0 1 -0 1 1 0 0 0 -1 0 0 0 +1 +0 +1 0 0 0 0 -1 0 -1 0 0 0 0 0 0 +1 0 0 0 @@ -3989,24 +3849,26 @@ 0 0 0 -1 0 0 -1 0 0 0 0 +1 0 +1 0 0 1 +0 1 0 0 1 0 0 +1 0 1 0 @@ -4014,14 +3876,20 @@ 0 0 0 +0 +0 +1 +0 1 0 +1 0 0 0 0 0 0 +1 0 0 1 @@ -4029,23 +3897,27 @@ 0 1 1 -1 0 +1 0 0 0 0 0 0 +1 0 0 +1 0 0 0 +1 0 0 0 1 +0 1 0 0 @@ -4053,14 +3925,23 @@ 0 1 0 +1 +1 +0 +1 +0 0 1 +1 +0 +0 0 0 0 1 0 0 +0 1 1 0 @@ -4072,28 +3953,23 @@ 0 0 0 -1 0 0 -1 0 0 0 0 1 -0 1 0 -1 -1 +0 0 0 1 +1 0 0 0 -1 -1 0 0 0 @@ -4103,69 +3979,73 @@ 0 0 1 -1 0 0 1 1 1 0 -1 +0 1 0 1 +0 1 0 0 1 0 -0 +1 +1 0 0 0 1 0 0 +0 +1 1 0 0 0 +0 1 1 -0 1 +0 1 0 0 -1 -1 +0 0 0 0 0 0 1 +0 1 0 0 0 0 0 +0 +0 +0 +0 1 1 1 0 0 -1 -1 0 0 -1 0 0 0 1 -1 0 1 0 @@ -4173,56 +4053,61 @@ 0 0 0 +1 +1 +1 +1 +0 +1 +1 0 0 0 0 1 1 +1 +1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 +0 +0 1 1 1 0 1 -1 -0 0 1 0 0 -0 -1 -1 -1 -1 1 0 0 0 +1 0 0 0 0 0 0 +1 0 0 1 +0 1 0 1 @@ -4231,17 +4116,19 @@ 0 0 0 +0 1 0 0 +0 1 0 0 0 1 -0 1 0 +1 0 0 1 @@ -4254,40 +4141,40 @@ 0 0 0 -0 -0 -0 -0 -1 1 1 +0 +0 1 0 +1 0 0 0 0 1 -1 0 +1 0 0 0 0 -1 0 0 +1 +1 0 1 0 0 0 0 +1 +0 0 0 0 0 -1 0 0 1 @@ -4296,12 +4183,12 @@ 0 1 0 -1 0 -1 0 1 1 +0 +1 1 1 0 @@ -4310,21 +4197,28 @@ 0 0 0 +1 0 +1 0 0 0 0 0 1 +1 0 0 0 1 1 +0 +0 1 +0 1 0 +1 0 0 0 @@ -4333,10 +4227,13 @@ 1 0 0 +0 1 -1 +0 1 0 +0 +1 1 1 0 @@ -4345,13 +4242,22 @@ 0 1 0 +0 1 +0 1 +0 +0 +0 1 0 0 0 0 +0 +1 +1 +1 1 0 0 @@ -4362,24 +4268,30 @@ 0 0 0 -1 -1 -1 0 0 0 1 +1 0 0 -1 0 0 0 +1 +1 +0 0 0 +1 +1 +1 +1 +1 0 0 0 +1 0 0 0 @@ -4388,53 +4300,61 @@ 0 0 0 -1 0 0 0 0 1 1 +0 +0 1 -1 +0 1 0 0 0 0 0 +1 0 0 0 0 1 1 -0 -0 -1 1 +0 1 1 0 0 0 0 -1 0 0 0 0 0 0 +1 0 0 1 +0 1 0 +0 +0 +0 +0 1 0 0 0 +0 +0 +1 1 0 1 @@ -4444,6 +4364,9 @@ 0 0 1 +0 +1 +0 1 0 0 @@ -4451,44 +4374,43 @@ 0 0 0 +1 0 0 0 -1 0 1 0 0 -1 0 0 0 0 -1 0 1 0 0 0 -0 +1 1 1 0 0 +0 1 0 0 0 0 0 +1 0 0 1 -1 -1 0 1 0 +1 0 0 0 @@ -4497,50 +4419,54 @@ 0 1 0 -0 -0 1 -0 -0 +1 +1 +1 1 1 1 0 +1 0 1 0 1 +1 0 0 +1 0 0 1 1 -1 0 0 0 0 1 -0 +1 0 1 1 1 0 +0 1 1 0 0 0 -0 1 0 0 -1 0 0 -1 +0 +0 +0 +0 +0 0 0 0 @@ -4550,62 +4476,51 @@ 0 1 1 +1 +1 0 1 1 1 0 0 -1 +0 0 1 0 0 -1 0 +1 0 1 0 0 1 -1 -0 0 1 1 1 0 -1 0 1 0 0 -0 1 -0 1 0 0 -1 -1 0 0 1 -1 0 1 -1 0 0 -1 -0 -1 0 0 1 0 1 -1 0 0 1 @@ -4615,10 +4530,7 @@ 0 0 0 -1 0 -1 -1 0 0 1 @@ -4626,12 +4538,9 @@ 0 0 0 -1 -0 0 0 0 -1 0 0 0 @@ -4641,49 +4550,48 @@ 0 0 1 -1 0 0 -1 0 +1 0 0 0 0 -1 0 0 0 1 -1 -1 0 1 -0 1 0 0 0 -1 0 0 0 0 1 0 +1 0 0 0 0 1 0 -1 0 0 +1 +1 +1 +0 0 0 0 1 +1 0 0 0 @@ -4691,7 +4599,6 @@ 1 0 1 -1 0 0 0 @@ -4699,19 +4606,14 @@ 0 0 0 +1 0 0 1 0 -1 0 -1 0 -1 -1 -1 0 -1 0 1 0 @@ -4723,19 +4625,14 @@ 0 0 1 -1 -0 -0 0 0 +1 0 0 0 1 1 -0 -0 -0 1 0 1 @@ -4743,27 +4640,29 @@ 1 0 0 -0 +1 0 0 1 0 0 +0 1 0 0 +0 +0 +0 +0 1 1 0 1 0 -0 1 0 0 0 -1 -0 0 0 0 @@ -4772,20 +4671,15 @@ 0 0 0 -1 -1 0 0 -1 0 0 -1 0 -1 -1 0 0 0 +1 0 0 0 @@ -4800,20 +4694,20 @@ 1 0 1 -1 -1 0 -1 0 +1 0 0 0 1 -0 1 0 0 +1 +1 0 +1 0 0 0 @@ -4826,86 +4720,90 @@ 0 0 0 +1 +1 0 -0 +1 +1 0 0 0 0 0 1 -0 1 0 -1 0 0 0 0 -1 -1 -1 0 0 0 1 1 -0 -0 -1 1 0 -1 +0 0 0 1 1 0 +0 1 0 1 1 0 0 -0 1 0 0 0 0 +1 0 0 -1 0 0 1 1 -0 -0 1 +0 1 0 0 +0 1 -1 +0 1 0 0 0 +1 0 0 0 1 0 +0 1 +0 1 +0 +0 1 0 0 +0 +0 1 0 1 0 +0 +1 1 1 1 @@ -4914,16 +4812,19 @@ 1 1 0 -1 0 1 0 1 0 +1 +1 0 +1 0 0 -0 +1 +1 0 0 0 @@ -4933,23 +4834,22 @@ 1 0 0 +0 1 -1 -1 +0 1 1 0 -0 +1 0 0 1 -0 1 1 0 +1 0 0 -1 0 1 0 @@ -4959,15 +4859,13 @@ 0 0 0 -1 -1 0 0 0 0 -1 0 1 +0 1 0 0 @@ -4975,24 +4873,24 @@ 0 0 0 -1 -1 0 1 0 0 -1 -1 -1 0 0 0 +1 0 1 0 1 1 1 +1 +0 +0 +1 0 1 0 @@ -5008,33 +4906,36 @@ 0 1 0 -1 -1 0 0 +1 0 +1 0 0 0 0 -1 0 1 1 +1 0 1 +0 1 0 0 0 +0 1 +0 +0 1 1 0 0 0 0 -1 0 0 0 @@ -5052,45 +4953,42 @@ 0 0 0 -1 0 1 0 -1 0 0 1 0 0 0 -0 -1 -0 1 0 1 0 0 +1 0 1 1 -0 1 0 -1 0 +1 0 0 0 0 +1 0 0 -1 0 0 1 0 0 +1 +1 0 0 0 @@ -5098,30 +4996,25 @@ 1 1 1 -0 -1 -0 -1 -0 -1 1 1 1 1 0 -1 +0 +0 +0 0 1 0 0 0 0 -1 0 0 -1 0 -1 +0 +0 0 0 0 @@ -5129,9 +5022,11 @@ 0 0 0 -1 +0 +0 0 1 +0 1 0 0 @@ -5141,16 +5036,14 @@ 0 0 1 -1 0 1 1 +1 0 0 0 0 -1 -1 0 1 0 @@ -5159,57 +5052,54 @@ 0 1 0 +1 0 0 1 -0 1 +1 +1 +1 +0 0 +1 0 0 0 1 +1 0 0 +0 +1 1 0 0 0 0 -1 0 -1 0 0 0 -1 0 -1 0 0 0 0 -1 -1 -1 0 -1 0 -1 +0 1 0 0 +0 1 0 0 -1 -1 -1 0 0 0 1 -1 0 1 0 @@ -5217,9 +5107,7 @@ 1 1 0 -0 -0 -0 +1 0 1 1 @@ -5227,23 +5115,19 @@ 0 0 0 +1 0 0 0 0 0 1 -0 -1 -1 -1 1 1 0 -1 0 0 -1 +0 1 0 0 @@ -5258,15 +5142,11 @@ 1 0 0 -1 -0 -1 0 0 0 0 0 -1 0 -1 0 +0 \ No newline at end of file