├── .gitignore ├── 1170300418.csv ├── README.md ├── __pycache__ ├── load_data.cpython-36.pyc └── sentiment_analysis.cpython-36.pyc ├── cut.txt ├── label_data.pt ├── load_data.py ├── readme-情感分类系统说明.txt ├── sentiment_analysis.py ├── test.py ├── test_data └── test.txt └── train_data ├── sample.negative.txt └── sample.positive.txt /.gitignore: -------------------------------------------------------------------------------- 1 | sgns.zhihu.bigram 2 | test_data.pt 3 | train_data.pt 4 | label.pt 5 | readme-情感分类系统说明.txt -------------------------------------------------------------------------------- /1170300418.csv: -------------------------------------------------------------------------------- 1 | 0, 1 2 | 1, 1 3 | 2, 1 4 | 3, 1 5 | 4, 0 6 | 5, 1 7 | 6, 0 8 | 7, 0 9 | 8, 1 10 | 9, 1 11 | 10, 0 12 | 11, 1 13 | 12, 1 14 | 13, 1 15 | 14, 0 16 | 15, 0 17 | 16, 1 18 | 17, 1 19 | 18, 1 20 | 19, 1 21 | 20, 0 22 | 21, 0 23 | 22, 0 24 | 23, 0 25 | 24, 0 26 | 25, 1 27 | 26, 1 28 | 27, 1 29 | 28, 0 30 | 29, 0 31 | 30, 1 32 | 31, 0 33 | 32, 1 34 | 33, 1 35 | 34, 1 36 | 35, 1 37 | 36, 1 38 | 37, 1 39 | 38, 0 40 | 39, 0 41 | 40, 1 42 | 41, 1 43 | 42, 1 44 | 43, 1 45 | 44, 1 46 | 45, 1 47 | 46, 1 48 | 47, 0 49 | 48, 1 50 | 49, 1 51 | 50, 1 52 | 51, 1 53 | 52, 0 54 | 53, 1 55 | 54, 0 56 | 55, 0 57 | 56, 0 58 | 57, 1 59 | 58, 1 60 | 59, 0 61 | 60, 1 62 | 61, 1 63 | 62, 0 64 | 63, 0 65 | 64, 0 66 | 65, 0 67 | 66, 0 68 | 67, 1 69 | 68, 1 70 | 69, 0 71 | 70, 0 72 | 71, 1 73 | 72, 0 74 | 73, 1 75 | 74, 1 76 | 75, 1 77 | 76, 1 78 | 77, 0 79 | 78, 1 80 | 79, 1 81 | 80, 0 82 | 81, 0 83 | 82, 0 84 | 83, 1 85 | 84, 0 86 | 85, 0 87 | 86, 0 88 | 87, 0 89 | 88, 1 90 | 89, 1 91 | 90, 1 92 | 91, 0 93 | 92, 0 94 | 93, 0 95 | 94, 1 96 | 95, 0 97 | 96, 1 98 | 97, 1 99 | 98, 0 100 | 99, 1 101 | 100, 0 102 | 101, 1 103 | 102, 0 104 | 103, 1 105 | 104, 0 106 | 105, 0 107 | 106, 1 108 | 107, 0 109 | 108, 1 110 | 109, 0 111 | 110, 0 112 | 111, 0 113 | 112, 1 114 | 113, 1 115 | 114, 0 116 | 115, 1 117 | 116, 1 118 | 117, 1 119 | 118, 0 120 | 119, 0 121 | 120, 1 122 | 121, 1 123 | 122, 1 124 | 123, 1 125 | 124, 0 126 | 125, 0 127 | 126, 0 128 | 127, 1 129 | 128, 0 130 | 129, 1 131 | 130, 0 132 | 131, 0 133 | 132, 1 134 | 133, 0 135 | 134, 0 136 | 135, 0 137 | 136, 1 138 | 137, 1 139 | 138, 0 140 | 139, 1 141 | 140, 1 142 | 141, 0 143 | 142, 1 144 | 143, 0 145 | 144, 1 146 | 145, 1 147 | 146, 1 148 | 147, 0 149 | 148, 0 150 | 149, 0 151 | 150, 1 152 | 151, 0 153 | 152, 1 154 | 153, 1 155 | 154, 0 156 | 155, 0 157 | 156, 1 158 | 157, 1 159 | 158, 1 160 | 159, 1 161 | 160, 1 162 | 161, 0 163 | 162, 0 164 | 163, 1 165 | 164, 1 166 | 165, 1 167 | 166, 1 168 | 167, 1 169 | 168, 1 170 | 169, 0 171 | 170, 0 172 | 171, 0 173 | 172, 0 174 | 173, 0 175 | 174, 0 176 | 175, 1 177 | 176, 1 178 | 177, 1 179 | 178, 0 180 | 179, 1 181 | 180, 0 182 | 181, 0 183 | 182, 1 184 | 183, 1 185 | 184, 0 186 | 185, 1 187 | 186, 0 188 | 187, 0 189 | 188, 1 190 | 189, 1 191 | 190, 0 192 | 191, 0 193 | 192, 0 194 | 193, 1 195 | 194, 1 196 | 195, 0 197 | 196, 0 198 | 197, 0 199 | 198, 0 200 | 199, 0 201 | 200, 1 202 | 201, 1 203 | 202, 1 204 | 203, 0 205 | 204, 1 206 | 205, 1 207 | 206, 1 208 | 207, 1 209 | 208, 0 210 | 209, 1 211 | 210, 1 212 | 211, 0 213 | 212, 0 214 | 213, 0 215 | 214, 1 216 | 215, 1 217 | 216, 1 218 | 217, 1 219 | 218, 1 220 | 219, 0 221 | 220, 1 222 | 221, 0 223 | 222, 0 224 | 223, 1 225 | 224, 1 226 | 225, 1 227 | 226, 1 228 | 227, 1 229 | 228, 1 230 | 229, 0 231 | 230, 1 232 | 231, 1 233 | 232, 1 234 | 233, 0 235 | 234, 1 236 | 235, 1 237 | 236, 1 238 | 237, 1 239 | 238, 1 240 | 239, 1 241 | 240, 0 242 | 241, 0 243 | 242, 1 244 | 243, 1 245 | 244, 0 246 | 245, 0 247 | 246, 0 248 | 247, 1 249 | 248, 0 250 | 249, 1 251 | 250, 1 252 | 251, 0 253 | 252, 1 254 | 253, 1 255 | 254, 1 256 | 255, 1 257 | 256, 1 258 | 257, 0 259 | 258, 1 260 | 259, 1 261 | 260, 1 262 | 261, 1 263 | 262, 0 264 | 263, 1 265 | 264, 1 266 | 265, 1 267 | 266, 0 268 | 267, 1 269 | 268, 0 270 | 269, 1 271 | 270, 1 272 | 271, 1 273 | 272, 0 274 | 273, 1 275 | 274, 1 276 | 275, 0 277 | 276, 1 278 | 277, 1 279 | 278, 1 280 | 279, 1 281 | 280, 1 282 | 281, 1 283 | 282, 1 284 | 283, 1 285 | 284, 0 286 | 285, 1 287 | 286, 0 288 | 287, 1 289 | 288, 1 290 | 289, 1 291 | 290, 1 292 | 291, 1 293 | 292, 1 294 | 293, 0 295 | 294, 1 296 | 295, 0 297 | 296, 1 298 | 297, 0 299 | 298, 1 300 | 299, 0 301 | 300, 0 302 | 301, 1 303 | 302, 1 304 | 303, 1 305 | 304, 1 306 | 305, 1 307 | 306, 1 308 | 307, 1 309 | 308, 1 310 | 309, 0 311 | 310, 1 312 | 311, 1 313 | 312, 1 314 | 313, 1 315 | 314, 0 316 | 315, 0 317 | 316, 0 318 | 317, 1 319 | 318, 1 320 | 319, 1 321 | 320, 0 322 | 321, 1 323 | 322, 0 324 | 323, 1 325 | 324, 0 326 | 325, 0 327 | 326, 0 328 | 327, 1 329 | 328, 1 330 | 329, 0 331 | 330, 0 332 | 331, 1 333 | 332, 1 334 | 333, 0 335 | 334, 0 336 | 335, 0 337 | 336, 1 338 | 337, 1 339 | 338, 1 340 | 339, 1 341 | 340, 1 342 | 341, 1 343 | 342, 1 344 | 343, 1 345 | 344, 1 346 | 345, 1 347 | 346, 1 348 | 347, 0 349 | 348, 1 350 | 349, 0 351 | 350, 1 352 | 351, 1 353 | 352, 1 354 | 353, 1 355 | 354, 1 356 | 355, 1 357 | 356, 0 358 | 357, 0 359 | 358, 0 360 | 359, 1 361 | 360, 0 362 | 361, 1 363 | 362, 1 364 | 363, 1 365 | 364, 0 366 | 365, 0 367 | 366, 0 368 | 367, 1 369 | 368, 0 370 | 369, 0 371 | 370, 1 372 | 371, 0 373 | 372, 1 374 | 373, 0 375 | 374, 0 376 | 375, 1 377 | 376, 0 378 | 377, 0 379 | 378, 1 380 | 379, 1 381 | 380, 1 382 | 381, 1 383 | 382, 0 384 | 383, 1 385 | 384, 1 386 | 385, 1 387 | 386, 1 388 | 387, 1 389 | 388, 1 390 | 389, 1 391 | 390, 1 392 | 391, 1 393 | 392, 0 394 | 393, 0 395 | 394, 0 396 | 395, 0 397 | 396, 1 398 | 397, 1 399 | 398, 1 400 | 399, 1 401 | 400, 0 402 | 401, 0 403 | 402, 1 404 | 403, 0 405 | 404, 1 406 | 405, 1 407 | 406, 1 408 | 407, 1 409 | 408, 1 410 | 409, 1 411 | 410, 0 412 | 411, 1 413 | 412, 1 414 | 413, 1 415 | 414, 0 416 | 415, 1 417 | 416, 1 418 | 417, 0 419 | 418, 1 420 | 419, 0 421 | 420, 0 422 | 421, 1 423 | 422, 1 424 | 423, 0 425 | 424, 1 426 | 425, 0 427 | 426, 1 428 | 427, 1 429 | 428, 0 430 | 429, 1 431 | 430, 1 432 | 431, 1 433 | 432, 0 434 | 433, 1 435 | 434, 1 436 | 435, 1 437 | 436, 1 438 | 437, 0 439 | 438, 1 440 | 439, 0 441 | 440, 1 442 | 441, 1 443 | 442, 1 444 | 443, 0 445 | 444, 0 446 | 445, 1 447 | 446, 1 448 | 447, 1 449 | 448, 1 450 | 449, 1 451 | 450, 1 452 | 451, 1 453 | 452, 0 454 | 453, 0 455 | 454, 0 456 | 455, 1 457 | 456, 1 458 | 457, 0 459 | 458, 1 460 | 459, 1 461 | 460, 0 462 | 461, 1 463 | 462, 1 464 | 463, 0 465 | 464, 0 466 | 465, 1 467 | 466, 0 468 | 467, 1 469 | 468, 1 470 | 469, 1 471 | 470, 0 472 | 471, 1 473 | 472, 0 474 | 473, 1 475 | 474, 0 476 | 475, 0 477 | 476, 0 478 | 477, 0 479 | 478, 1 480 | 479, 1 481 | 480, 0 482 | 481, 0 483 | 482, 1 484 | 483, 1 485 | 484, 0 486 | 485, 0 487 | 486, 0 488 | 487, 0 489 | 488, 1 490 | 489, 0 491 | 490, 1 492 | 491, 1 493 | 492, 0 494 | 493, 0 495 | 494, 0 496 | 495, 1 497 | 496, 1 498 | 497, 1 499 | 498, 0 500 | 499, 1 501 | 500, 1 502 | 501, 1 503 | 502, 1 504 | 503, 1 505 | 504, 1 506 | 505, 0 507 | 506, 0 508 | 507, 0 509 | 508, 1 510 | 509, 1 511 | 510, 0 512 | 511, 1 513 | 512, 1 514 | 513, 0 515 | 514, 1 516 | 515, 1 517 | 516, 1 518 | 517, 1 519 | 518, 1 520 | 519, 0 521 | 520, 0 522 | 521, 1 523 | 522, 0 524 | 523, 1 525 | 524, 1 526 | 525, 1 527 | 526, 1 528 | 527, 1 529 | 528, 0 530 | 529, 1 531 | 530, 0 532 | 531, 1 533 | 532, 1 534 | 533, 0 535 | 534, 0 536 | 535, 0 537 | 536, 1 538 | 537, 1 539 | 538, 1 540 | 539, 1 541 | 540, 0 542 | 541, 1 543 | 542, 1 544 | 543, 0 545 | 544, 1 546 | 545, 1 547 | 546, 1 548 | 547, 1 549 | 548, 0 550 | 549, 1 551 | 550, 1 552 | 551, 1 553 | 552, 1 554 | 553, 0 555 | 554, 0 556 | 555, 0 557 | 556, 1 558 | 557, 1 559 | 558, 1 560 | 559, 0 561 | 560, 0 562 | 561, 0 563 | 562, 1 564 | 563, 1 565 | 564, 0 566 | 565, 0 567 | 566, 0 568 | 567, 0 569 | 568, 1 570 | 569, 0 571 | 570, 1 572 | 571, 1 573 | 572, 1 574 | 573, 1 575 | 574, 1 576 | 575, 1 577 | 576, 1 578 | 577, 0 579 | 578, 0 580 | 579, 1 581 | 580, 1 582 | 581, 1 583 | 582, 0 584 | 583, 1 585 | 584, 1 586 | 585, 1 587 | 586, 1 588 | 587, 0 589 | 588, 1 590 | 589, 1 591 | 590, 0 592 | 591, 1 593 | 592, 0 594 | 593, 1 595 | 594, 1 596 | 595, 0 597 | 596, 1 598 | 597, 1 599 | 598, 1 600 | 599, 1 601 | 600, 1 602 | 601, 1 603 | 602, 1 604 | 603, 1 605 | 604, 1 606 | 605, 0 607 | 606, 1 608 | 607, 0 609 | 608, 0 610 | 609, 0 611 | 610, 1 612 | 611, 0 613 | 612, 1 614 | 613, 0 615 | 614, 0 616 | 615, 0 617 | 616, 1 618 | 617, 1 619 | 618, 1 620 | 619, 1 621 | 620, 0 622 | 621, 0 623 | 622, 1 624 | 623, 1 625 | 624, 0 626 | 625, 0 627 | 626, 1 628 | 627, 1 629 | 628, 0 630 | 629, 1 631 | 630, 0 632 | 631, 1 633 | 632, 0 634 | 633, 1 635 | 634, 1 636 | 635, 1 637 | 636, 1 638 | 637, 1 639 | 638, 0 640 | 639, 1 641 | 640, 1 642 | 641, 0 643 | 642, 1 644 | 643, 0 645 | 644, 1 646 | 645, 1 647 | 646, 1 648 | 647, 1 649 | 648, 1 650 | 649, 0 651 | 650, 1 652 | 651, 1 653 | 652, 1 654 | 653, 1 655 | 654, 0 656 | 655, 0 657 | 656, 1 658 | 657, 1 659 | 658, 1 660 | 659, 0 661 | 660, 1 662 | 661, 0 663 | 662, 1 664 | 663, 1 665 | 664, 0 666 | 665, 1 667 | 666, 1 668 | 667, 1 669 | 668, 1 670 | 669, 1 671 | 670, 1 672 | 671, 1 673 | 672, 0 674 | 673, 1 675 | 674, 1 676 | 675, 1 677 | 676, 1 678 | 677, 1 679 | 678, 1 680 | 679, 0 681 | 680, 1 682 | 681, 0 683 | 682, 1 684 | 683, 1 685 | 684, 1 686 | 685, 0 687 | 686, 1 688 | 687, 1 689 | 688, 1 690 | 689, 0 691 | 690, 1 692 | 691, 0 693 | 692, 0 694 | 693, 0 695 | 694, 1 696 | 695, 1 697 | 696, 1 698 | 697, 1 699 | 698, 1 700 | 699, 1 701 | 700, 0 702 | 701, 1 703 | 702, 0 704 | 703, 1 705 | 704, 1 706 | 705, 1 707 | 706, 0 708 | 707, 1 709 | 708, 1 710 | 709, 0 711 | 710, 0 712 | 711, 1 713 | 712, 0 714 | 713, 1 715 | 714, 0 716 | 715, 0 717 | 716, 1 718 | 717, 0 719 | 718, 1 720 | 719, 1 721 | 720, 0 722 | 721, 0 723 | 722, 1 724 | 723, 1 725 | 724, 0 726 | 725, 1 727 | 726, 0 728 | 727, 1 729 | 728, 1 730 | 729, 1 731 | 730, 0 732 | 731, 0 733 | 732, 1 734 | 733, 1 735 | 734, 0 736 | 735, 1 737 | 736, 0 738 | 737, 1 739 | 738, 0 740 | 739, 1 741 | 740, 1 742 | 741, 1 743 | 742, 1 744 | 743, 0 745 | 744, 0 746 | 745, 0 747 | 746, 1 748 | 747, 0 749 | 748, 1 750 | 749, 0 751 | 750, 1 752 | 751, 0 753 | 752, 0 754 | 753, 0 755 | 754, 0 756 | 755, 1 757 | 756, 1 758 | 757, 0 759 | 758, 1 760 | 759, 1 761 | 760, 1 762 | 761, 1 763 | 762, 0 764 | 763, 1 765 | 764, 1 766 | 765, 0 767 | 766, 0 768 | 767, 0 769 | 768, 1 770 | 769, 0 771 | 770, 0 772 | 771, 1 773 | 772, 1 774 | 773, 1 775 | 774, 1 776 | 775, 1 777 | 776, 1 778 | 777, 1 779 | 778, 0 780 | 779, 1 781 | 780, 0 782 | 781, 1 783 | 782, 1 784 | 783, 1 785 | 784, 1 786 | 785, 0 787 | 786, 1 788 | 787, 1 789 | 788, 1 790 | 789, 1 791 | 790, 1 792 | 791, 1 793 | 792, 0 794 | 793, 1 795 | 794, 1 796 | 795, 1 797 | 796, 0 798 | 797, 0 799 | 798, 1 800 | 799, 1 801 | 800, 1 802 | 801, 0 803 | 802, 1 804 | 803, 1 805 | 804, 0 806 | 805, 1 807 | 806, 1 808 | 807, 1 809 | 808, 1 810 | 809, 1 811 | 810, 1 812 | 811, 1 813 | 812, 1 814 | 813, 1 815 | 814, 0 816 | 815, 0 817 | 816, 1 818 | 817, 1 819 | 818, 1 820 | 819, 1 821 | 820, 1 822 | 821, 0 823 | 822, 0 824 | 823, 1 825 | 824, 1 826 | 825, 0 827 | 826, 0 828 | 827, 1 829 | 828, 1 830 | 829, 1 831 | 830, 1 832 | 831, 1 833 | 832, 1 834 | 833, 1 835 | 834, 1 836 | 835, 1 837 | 836, 1 838 | 837, 1 839 | 838, 0 840 | 839, 1 841 | 840, 0 842 | 841, 1 843 | 842, 1 844 | 843, 1 845 | 844, 1 846 | 845, 1 847 | 846, 1 848 | 847, 1 849 | 848, 1 850 | 849, 1 851 | 850, 1 852 | 851, 1 853 | 852, 1 854 | 853, 1 855 | 854, 1 856 | 855, 1 857 | 856, 0 858 | 857, 1 859 | 858, 1 860 | 859, 1 861 | 860, 1 862 | 861, 0 863 | 862, 1 864 | 863, 1 865 | 864, 0 866 | 865, 1 867 | 866, 0 868 | 867, 1 869 | 868, 1 870 | 869, 1 871 | 870, 0 872 | 871, 1 873 | 872, 1 874 | 873, 1 875 | 874, 1 876 | 875, 0 877 | 876, 1 878 | 877, 0 879 | 878, 1 880 | 879, 1 881 | 880, 1 882 | 881, 1 883 | 882, 1 884 | 883, 1 885 | 884, 0 886 | 885, 1 887 | 886, 0 888 | 887, 1 889 | 888, 1 890 | 889, 1 891 | 890, 1 892 | 891, 1 893 | 892, 0 894 | 893, 0 895 | 894, 0 896 | 895, 0 897 | 896, 0 898 | 897, 0 899 | 898, 1 900 | 899, 0 901 | 900, 1 902 | 901, 1 903 | 902, 1 904 | 903, 1 905 | 904, 1 906 | 905, 1 907 | 906, 1 908 | 907, 0 909 | 908, 0 910 | 909, 0 911 | 910, 1 912 | 911, 0 913 | 912, 0 914 | 913, 1 915 | 914, 1 916 | 915, 1 917 | 916, 1 918 | 917, 1 919 | 918, 0 920 | 919, 0 921 | 920, 1 922 | 921, 1 923 | 922, 1 924 | 923, 1 925 | 924, 1 926 | 925, 1 927 | 926, 1 928 | 927, 1 929 | 928, 0 930 | 929, 0 931 | 930, 1 932 | 931, 1 933 | 932, 0 934 | 933, 1 935 | 934, 1 936 | 935, 1 937 | 936, 1 938 | 937, 1 939 | 938, 1 940 | 939, 0 941 | 940, 1 942 | 941, 0 943 | 942, 1 944 | 943, 1 945 | 944, 0 946 | 945, 1 947 | 946, 0 948 | 947, 1 949 | 948, 1 950 | 949, 1 951 | 950, 1 952 | 951, 1 953 | 952, 1 954 | 953, 0 955 | 954, 0 956 | 955, 1 957 | 956, 1 958 | 957, 0 959 | 958, 0 960 | 959, 0 961 | 960, 0 962 | 961, 1 963 | 962, 1 964 | 963, 1 965 | 964, 0 966 | 965, 0 967 | 966, 1 968 | 967, 1 969 | 968, 1 970 | 969, 1 971 | 970, 1 972 | 971, 1 973 | 972, 1 974 | 973, 0 975 | 974, 0 976 | 975, 1 977 | 976, 0 978 | 977, 0 979 | 978, 1 980 | 979, 0 981 | 980, 1 982 | 981, 1 983 | 982, 1 984 | 983, 0 985 | 984, 1 986 | 985, 1 987 | 986, 1 988 | 987, 0 989 | 988, 1 990 | 989, 1 991 | 990, 0 992 | 991, 1 993 | 992, 1 994 | 993, 1 995 | 994, 0 996 | 995, 1 997 | 996, 0 998 | 997, 1 999 | 998, 0 1000 | 999, 1 1001 | 1000, 1 1002 | 1001, 1 1003 | 1002, 0 1004 | 1003, 1 1005 | 1004, 0 1006 | 1005, 1 1007 | 1006, 0 1008 | 1007, 1 1009 | 1008, 1 1010 | 1009, 0 1011 | 1010, 1 1012 | 1011, 1 1013 | 1012, 0 1014 | 1013, 1 1015 | 1014, 0 1016 | 1015, 1 1017 | 1016, 1 1018 | 1017, 0 1019 | 1018, 1 1020 | 1019, 1 1021 | 1020, 1 1022 | 1021, 1 1023 | 1022, 1 1024 | 1023, 0 1025 | 1024, 1 1026 | 1025, 0 1027 | 1026, 1 1028 | 1027, 1 1029 | 1028, 0 1030 | 1029, 1 1031 | 1030, 0 1032 | 1031, 1 1033 | 1032, 1 1034 | 1033, 1 1035 | 1034, 1 1036 | 1035, 0 1037 | 1036, 0 1038 | 1037, 1 1039 | 1038, 0 1040 | 1039, 1 1041 | 1040, 1 1042 | 1041, 0 1043 | 1042, 1 1044 | 1043, 1 1045 | 1044, 1 1046 | 1045, 1 1047 | 1046, 1 1048 | 1047, 1 1049 | 1048, 0 1050 | 1049, 0 1051 | 1050, 0 1052 | 1051, 0 1053 | 1052, 1 1054 | 1053, 1 1055 | 1054, 1 1056 | 1055, 1 1057 | 1056, 1 1058 | 1057, 0 1059 | 1058, 0 1060 | 1059, 1 1061 | 1060, 1 1062 | 1061, 0 1063 | 1062, 1 1064 | 1063, 1 1065 | 1064, 1 1066 | 1065, 0 1067 | 1066, 1 1068 | 1067, 0 1069 | 1068, 1 1070 | 1069, 0 1071 | 1070, 0 1072 | 1071, 0 1073 | 1072, 1 1074 | 1073, 1 1075 | 1074, 1 1076 | 1075, 0 1077 | 1076, 1 1078 | 1077, 1 1079 | 1078, 1 1080 | 1079, 1 1081 | 1080, 1 1082 | 1081, 0 1083 | 1082, 1 1084 | 1083, 1 1085 | 1084, 0 1086 | 1085, 0 1087 | 1086, 1 1088 | 1087, 1 1089 | 1088, 1 1090 | 1089, 1 1091 | 1090, 0 1092 | 1091, 1 1093 | 1092, 0 1094 | 1093, 0 1095 | 1094, 1 1096 | 1095, 1 1097 | 1096, 0 1098 | 1097, 1 1099 | 1098, 1 1100 | 1099, 0 1101 | 1100, 1 1102 | 1101, 1 1103 | 1102, 1 1104 | 1103, 1 1105 | 1104, 1 1106 | 1105, 1 1107 | 1106, 1 1108 | 1107, 1 1109 | 1108, 1 1110 | 1109, 1 1111 | 1110, 1 1112 | 1111, 1 1113 | 1112, 1 1114 | 1113, 0 1115 | 1114, 1 1116 | 1115, 1 1117 | 1116, 1 1118 | 1117, 0 1119 | 1118, 0 1120 | 1119, 0 1121 | 1120, 0 1122 | 1121, 0 1123 | 1122, 1 1124 | 1123, 0 1125 | 1124, 0 1126 | 1125, 1 1127 | 1126, 1 1128 | 1127, 1 1129 | 1128, 1 1130 | 1129, 0 1131 | 1130, 1 1132 | 1131, 1 1133 | 1132, 1 1134 | 1133, 1 1135 | 1134, 1 1136 | 1135, 0 1137 | 1136, 1 1138 | 1137, 1 1139 | 1138, 1 1140 | 1139, 1 1141 | 1140, 0 1142 | 1141, 1 1143 | 1142, 0 1144 | 1143, 1 1145 | 1144, 0 1146 | 1145, 0 1147 | 1146, 1 1148 | 1147, 0 1149 | 1148, 1 1150 | 1149, 1 1151 | 1150, 1 1152 | 1151, 1 1153 | 1152, 1 1154 | 1153, 1 1155 | 1154, 0 1156 | 1155, 1 1157 | 1156, 1 1158 | 1157, 1 1159 | 1158, 1 1160 | 1159, 1 1161 | 1160, 1 1162 | 1161, 0 1163 | 1162, 0 1164 | 1163, 1 1165 | 1164, 1 1166 | 1165, 1 1167 | 1166, 0 1168 | 1167, 1 1169 | 1168, 1 1170 | 1169, 0 1171 | 1170, 0 1172 | 1171, 1 1173 | 1172, 0 1174 | 1173, 0 1175 | 1174, 1 1176 | 1175, 1 1177 | 1176, 0 1178 | 1177, 1 1179 | 1178, 1 1180 | 1179, 1 1181 | 1180, 1 1182 | 1181, 1 1183 | 1182, 1 1184 | 1183, 0 1185 | 1184, 1 1186 | 1185, 1 1187 | 1186, 0 1188 | 1187, 1 1189 | 1188, 0 1190 | 1189, 0 1191 | 1190, 0 1192 | 1191, 1 1193 | 1192, 1 1194 | 1193, 1 1195 | 1194, 0 1196 | 1195, 1 1197 | 1196, 1 1198 | 1197, 1 1199 | 1198, 1 1200 | 1199, 0 1201 | 1200, 0 1202 | 1201, 1 1203 | 1202, 0 1204 | 1203, 1 1205 | 1204, 1 1206 | 1205, 0 1207 | 1206, 1 1208 | 1207, 1 1209 | 1208, 1 1210 | 1209, 1 1211 | 1210, 0 1212 | 1211, 1 1213 | 1212, 0 1214 | 1213, 0 1215 | 1214, 1 1216 | 1215, 1 1217 | 1216, 0 1218 | 1217, 1 1219 | 1218, 1 1220 | 1219, 1 1221 | 1220, 1 1222 | 1221, 1 1223 | 1222, 0 1224 | 1223, 1 1225 | 1224, 1 1226 | 1225, 0 1227 | 1226, 1 1228 | 1227, 0 1229 | 1228, 1 1230 | 1229, 1 1231 | 1230, 0 1232 | 1231, 1 1233 | 1232, 1 1234 | 1233, 1 1235 | 1234, 1 1236 | 1235, 0 1237 | 1236, 1 1238 | 1237, 0 1239 | 1238, 0 1240 | 1239, 0 1241 | 1240, 0 1242 | 1241, 0 1243 | 1242, 1 1244 | 1243, 0 1245 | 1244, 1 1246 | 1245, 1 1247 | 1246, 1 1248 | 1247, 0 1249 | 1248, 1 1250 | 1249, 0 1251 | 1250, 1 1252 | 1251, 1 1253 | 1252, 1 1254 | 1253, 0 1255 | 1254, 0 1256 | 1255, 1 1257 | 1256, 0 1258 | 1257, 0 1259 | 1258, 1 1260 | 1259, 1 1261 | 1260, 1 1262 | 1261, 1 1263 | 1262, 1 1264 | 1263, 0 1265 | 1264, 1 1266 | 1265, 1 1267 | 1266, 1 1268 | 1267, 1 1269 | 1268, 1 1270 | 1269, 0 1271 | 1270, 1 1272 | 1271, 1 1273 | 1272, 0 1274 | 1273, 1 1275 | 1274, 0 1276 | 1275, 1 1277 | 1276, 0 1278 | 1277, 0 1279 | 1278, 1 1280 | 1279, 0 1281 | 1280, 0 1282 | 1281, 0 1283 | 1282, 1 1284 | 1283, 1 1285 | 1284, 1 1286 | 1285, 1 1287 | 1286, 0 1288 | 1287, 0 1289 | 1288, 0 1290 | 1289, 1 1291 | 1290, 0 1292 | 1291, 1 1293 | 1292, 0 1294 | 1293, 1 1295 | 1294, 1 1296 | 1295, 1 1297 | 1296, 0 1298 | 1297, 0 1299 | 1298, 0 1300 | 1299, 1 1301 | 1300, 1 1302 | 1301, 1 1303 | 1302, 1 1304 | 1303, 1 1305 | 1304, 0 1306 | 1305, 1 1307 | 1306, 0 1308 | 1307, 0 1309 | 1308, 1 1310 | 1309, 1 1311 | 1310, 1 1312 | 1311, 1 1313 | 1312, 1 1314 | 1313, 0 1315 | 1314, 0 1316 | 1315, 0 1317 | 1316, 1 1318 | 1317, 0 1319 | 1318, 0 1320 | 1319, 1 1321 | 1320, 1 1322 | 1321, 1 1323 | 1322, 0 1324 | 1323, 0 1325 | 1324, 1 1326 | 1325, 1 1327 | 1326, 1 1328 | 1327, 1 1329 | 1328, 1 1330 | 1329, 1 1331 | 1330, 0 1332 | 1331, 1 1333 | 1332, 1 1334 | 1333, 1 1335 | 1334, 1 1336 | 1335, 1 1337 | 1336, 0 1338 | 1337, 1 1339 | 1338, 1 1340 | 1339, 1 1341 | 1340, 1 1342 | 1341, 0 1343 | 1342, 1 1344 | 1343, 1 1345 | 1344, 0 1346 | 1345, 1 1347 | 1346, 1 1348 | 1347, 0 1349 | 1348, 0 1350 | 1349, 0 1351 | 1350, 1 1352 | 1351, 0 1353 | 1352, 0 1354 | 1353, 1 1355 | 1354, 1 1356 | 1355, 1 1357 | 1356, 0 1358 | 1357, 0 1359 | 1358, 1 1360 | 1359, 0 1361 | 1360, 1 1362 | 1361, 0 1363 | 1362, 1 1364 | 1363, 1 1365 | 1364, 1 1366 | 1365, 1 1367 | 1366, 1 1368 | 1367, 1 1369 | 1368, 1 1370 | 1369, 1 1371 | 1370, 1 1372 | 1371, 1 1373 | 1372, 1 1374 | 1373, 1 1375 | 1374, 1 1376 | 1375, 1 1377 | 1376, 1 1378 | 1377, 1 1379 | 1378, 1 1380 | 1379, 1 1381 | 1380, 1 1382 | 1381, 1 1383 | 1382, 1 1384 | 1383, 0 1385 | 1384, 0 1386 | 1385, 0 1387 | 1386, 1 1388 | 1387, 1 1389 | 1388, 0 1390 | 1389, 1 1391 | 1390, 0 1392 | 1391, 1 1393 | 1392, 1 1394 | 1393, 0 1395 | 1394, 1 1396 | 1395, 1 1397 | 1396, 1 1398 | 1397, 1 1399 | 1398, 1 1400 | 1399, 1 1401 | 1400, 0 1402 | 1401, 0 1403 | 1402, 1 1404 | 1403, 1 1405 | 1404, 1 1406 | 1405, 1 1407 | 1406, 1 1408 | 1407, 1 1409 | 1408, 0 1410 | 1409, 0 1411 | 1410, 1 1412 | 1411, 0 1413 | 1412, 0 1414 | 1413, 1 1415 | 1414, 1 1416 | 1415, 1 1417 | 1416, 0 1418 | 1417, 0 1419 | 1418, 1 1420 | 1419, 0 1421 | 1420, 0 1422 | 1421, 0 1423 | 1422, 1 1424 | 1423, 0 1425 | 1424, 0 1426 | 1425, 1 1427 | 1426, 1 1428 | 1427, 1 1429 | 1428, 0 1430 | 1429, 1 1431 | 1430, 0 1432 | 1431, 1 1433 | 1432, 0 1434 | 1433, 1 1435 | 1434, 1 1436 | 1435, 1 1437 | 1436, 1 1438 | 1437, 1 1439 | 1438, 0 1440 | 1439, 0 1441 | 1440, 1 1442 | 1441, 0 1443 | 1442, 1 1444 | 1443, 1 1445 | 1444, 0 1446 | 1445, 0 1447 | 1446, 1 1448 | 1447, 0 1449 | 1448, 0 1450 | 1449, 0 1451 | 1450, 0 1452 | 1451, 0 1453 | 1452, 1 1454 | 1453, 1 1455 | 1454, 0 1456 | 1455, 0 1457 | 1456, 1 1458 | 1457, 0 1459 | 1458, 1 1460 | 1459, 1 1461 | 1460, 0 1462 | 1461, 1 1463 | 1462, 1 1464 | 1463, 0 1465 | 1464, 0 1466 | 1465, 1 1467 | 1466, 0 1468 | 1467, 1 1469 | 1468, 1 1470 | 1469, 1 1471 | 1470, 1 1472 | 1471, 0 1473 | 1472, 1 1474 | 1473, 0 1475 | 1474, 1 1476 | 1475, 0 1477 | 1476, 1 1478 | 1477, 1 1479 | 1478, 0 1480 | 1479, 1 1481 | 1480, 0 1482 | 1481, 1 1483 | 1482, 1 1484 | 1483, 1 1485 | 1484, 0 1486 | 1485, 0 1487 | 1486, 0 1488 | 1487, 1 1489 | 1488, 0 1490 | 1489, 1 1491 | 1490, 1 1492 | 1491, 1 1493 | 1492, 1 1494 | 1493, 1 1495 | 1494, 1 1496 | 1495, 1 1497 | 1496, 0 1498 | 1497, 0 1499 | 1498, 0 1500 | 1499, 0 1501 | 1500, 1 1502 | 1501, 1 1503 | 1502, 1 1504 | 1503, 1 1505 | 1504, 0 1506 | 1505, 1 1507 | 1506, 1 1508 | 1507, 1 1509 | 1508, 1 1510 | 1509, 1 1511 | 1510, 0 1512 | 1511, 1 1513 | 1512, 1 1514 | 1513, 1 1515 | 1514, 1 1516 | 1515, 1 1517 | 1516, 1 1518 | 1517, 1 1519 | 1518, 0 1520 | 1519, 0 1521 | 1520, 1 1522 | 1521, 1 1523 | 1522, 1 1524 | 1523, 0 1525 | 1524, 1 1526 | 1525, 0 1527 | 1526, 1 1528 | 1527, 1 1529 | 1528, 1 1530 | 1529, 0 1531 | 1530, 1 1532 | 1531, 0 1533 | 1532, 1 1534 | 1533, 1 1535 | 1534, 0 1536 | 1535, 1 1537 | 1536, 1 1538 | 1537, 0 1539 | 1538, 1 1540 | 1539, 1 1541 | 1540, 0 1542 | 1541, 0 1543 | 1542, 0 1544 | 1543, 1 1545 | 1544, 1 1546 | 1545, 1 1547 | 1546, 1 1548 | 1547, 1 1549 | 1548, 1 1550 | 1549, 1 1551 | 1550, 1 1552 | 1551, 1 1553 | 1552, 0 1554 | 1553, 0 1555 | 1554, 0 1556 | 1555, 1 1557 | 1556, 1 1558 | 1557, 1 1559 | 1558, 1 1560 | 1559, 0 1561 | 1560, 1 1562 | 1561, 0 1563 | 1562, 1 1564 | 1563, 0 1565 | 1564, 0 1566 | 1565, 0 1567 | 1566, 1 1568 | 1567, 1 1569 | 1568, 1 1570 | 1569, 1 1571 | 1570, 0 1572 | 1571, 1 1573 | 1572, 1 1574 | 1573, 1 1575 | 1574, 0 1576 | 1575, 1 1577 | 1576, 1 1578 | 1577, 1 1579 | 1578, 1 1580 | 1579, 1 1581 | 1580, 1 1582 | 1581, 1 1583 | 1582, 0 1584 | 1583, 0 1585 | 1584, 0 1586 | 1585, 1 1587 | 1586, 1 1588 | 1587, 0 1589 | 1588, 1 1590 | 1589, 1 1591 | 1590, 1 1592 | 1591, 0 1593 | 1592, 0 1594 | 1593, 1 1595 | 1594, 0 1596 | 1595, 1 1597 | 1596, 1 1598 | 1597, 1 1599 | 1598, 0 1600 | 1599, 0 1601 | 1600, 1 1602 | 1601, 1 1603 | 1602, 1 1604 | 1603, 1 1605 | 1604, 0 1606 | 1605, 0 1607 | 1606, 1 1608 | 1607, 1 1609 | 1608, 1 1610 | 1609, 1 1611 | 1610, 1 1612 | 1611, 1 1613 | 1612, 1 1614 | 1613, 0 1615 | 1614, 1 1616 | 1615, 0 1617 | 1616, 1 1618 | 1617, 1 1619 | 1618, 1 1620 | 1619, 1 1621 | 1620, 0 1622 | 1621, 1 1623 | 1622, 0 1624 | 1623, 1 1625 | 1624, 1 1626 | 1625, 1 1627 | 1626, 1 1628 | 1627, 1 1629 | 1628, 1 1630 | 1629, 1 1631 | 1630, 1 1632 | 1631, 0 1633 | 1632, 0 1634 | 1633, 1 1635 | 1634, 1 1636 | 1635, 1 1637 | 1636, 0 1638 | 1637, 1 1639 | 1638, 0 1640 | 1639, 1 1641 | 1640, 1 1642 | 1641, 1 1643 | 1642, 0 1644 | 1643, 0 1645 | 1644, 1 1646 | 1645, 1 1647 | 1646, 1 1648 | 1647, 1 1649 | 1648, 1 1650 | 1649, 0 1651 | 1650, 0 1652 | 1651, 1 1653 | 1652, 1 1654 | 1653, 0 1655 | 1654, 0 1656 | 1655, 1 1657 | 1656, 1 1658 | 1657, 1 1659 | 1658, 1 1660 | 1659, 1 1661 | 1660, 0 1662 | 1661, 0 1663 | 1662, 1 1664 | 1663, 1 1665 | 1664, 0 1666 | 1665, 1 1667 | 1666, 0 1668 | 1667, 0 1669 | 1668, 0 1670 | 1669, 1 1671 | 1670, 1 1672 | 1671, 1 1673 | 1672, 1 1674 | 1673, 1 1675 | 1674, 0 1676 | 1675, 1 1677 | 1676, 1 1678 | 1677, 1 1679 | 1678, 0 1680 | 1679, 0 1681 | 1680, 1 1682 | 1681, 1 1683 | 1682, 0 1684 | 1683, 1 1685 | 1684, 0 1686 | 1685, 1 1687 | 1686, 0 1688 | 1687, 0 1689 | 1688, 0 1690 | 1689, 1 1691 | 1690, 0 1692 | 1691, 1 1693 | 1692, 0 1694 | 1693, 1 1695 | 1694, 1 1696 | 1695, 0 1697 | 1696, 1 1698 | 1697, 1 1699 | 1698, 1 1700 | 1699, 1 1701 | 1700, 1 1702 | 1701, 0 1703 | 1702, 0 1704 | 1703, 1 1705 | 1704, 1 1706 | 1705, 1 1707 | 1706, 1 1708 | 1707, 0 1709 | 1708, 1 1710 | 1709, 0 1711 | 1710, 1 1712 | 1711, 0 1713 | 1712, 0 1714 | 1713, 1 1715 | 1714, 1 1716 | 1715, 1 1717 | 1716, 1 1718 | 1717, 1 1719 | 1718, 1 1720 | 1719, 0 1721 | 1720, 1 1722 | 1721, 0 1723 | 1722, 1 1724 | 1723, 1 1725 | 1724, 0 1726 | 1725, 1 1727 | 1726, 1 1728 | 1727, 0 1729 | 1728, 0 1730 | 1729, 0 1731 | 1730, 1 1732 | 1731, 1 1733 | 1732, 0 1734 | 1733, 1 1735 | 1734, 1 1736 | 1735, 1 1737 | 1736, 0 1738 | 1737, 1 1739 | 1738, 0 1740 | 1739, 1 1741 | 1740, 1 1742 | 1741, 1 1743 | 1742, 1 1744 | 1743, 1 1745 | 1744, 0 1746 | 1745, 1 1747 | 1746, 1 1748 | 1747, 0 1749 | 1748, 1 1750 | 1749, 1 1751 | 1750, 0 1752 | 1751, 1 1753 | 1752, 1 1754 | 1753, 1 1755 | 1754, 1 1756 | 1755, 1 1757 | 1756, 1 1758 | 1757, 1 1759 | 1758, 0 1760 | 1759, 1 1761 | 1760, 0 1762 | 1761, 0 1763 | 1762, 1 1764 | 1763, 1 1765 | 1764, 1 1766 | 1765, 1 1767 | 1766, 0 1768 | 1767, 1 1769 | 1768, 0 1770 | 1769, 1 1771 | 1770, 1 1772 | 1771, 1 1773 | 1772, 0 1774 | 1773, 0 1775 | 1774, 1 1776 | 1775, 1 1777 | 1776, 0 1778 | 1777, 1 1779 | 1778, 1 1780 | 1779, 0 1781 | 1780, 0 1782 | 1781, 1 1783 | 1782, 1 1784 | 1783, 1 1785 | 1784, 1 1786 | 1785, 1 1787 | 1786, 1 1788 | 1787, 0 1789 | 1788, 0 1790 | 1789, 0 1791 | 1790, 0 1792 | 1791, 1 1793 | 1792, 1 1794 | 1793, 1 1795 | 1794, 1 1796 | 1795, 1 1797 | 1796, 1 1798 | 1797, 0 1799 | 1798, 1 1800 | 1799, 1 1801 | 1800, 1 1802 | 1801, 1 1803 | 1802, 0 1804 | 1803, 1 1805 | 1804, 1 1806 | 1805, 0 1807 | 1806, 1 1808 | 1807, 1 1809 | 1808, 1 1810 | 1809, 0 1811 | 1810, 0 1812 | 1811, 0 1813 | 1812, 0 1814 | 1813, 0 1815 | 1814, 1 1816 | 1815, 1 1817 | 1816, 1 1818 | 1817, 1 1819 | 1818, 0 1820 | 1819, 1 1821 | 1820, 0 1822 | 1821, 0 1823 | 1822, 0 1824 | 1823, 1 1825 | 1824, 1 1826 | 1825, 0 1827 | 1826, 0 1828 | 1827, 1 1829 | 1828, 1 1830 | 1829, 0 1831 | 1830, 1 1832 | 1831, 0 1833 | 1832, 1 1834 | 1833, 1 1835 | 1834, 1 1836 | 1835, 1 1837 | 1836, 1 1838 | 1837, 1 1839 | 1838, 0 1840 | 1839, 1 1841 | 1840, 0 1842 | 1841, 1 1843 | 1842, 1 1844 | 1843, 1 1845 | 1844, 1 1846 | 1845, 1 1847 | 1846, 1 1848 | 1847, 0 1849 | 1848, 1 1850 | 1849, 1 1851 | 1850, 0 1852 | 1851, 1 1853 | 1852, 1 1854 | 1853, 1 1855 | 1854, 0 1856 | 1855, 1 1857 | 1856, 0 1858 | 1857, 0 1859 | 1858, 1 1860 | 1859, 1 1861 | 1860, 0 1862 | 1861, 1 1863 | 1862, 0 1864 | 1863, 0 1865 | 1864, 1 1866 | 1865, 1 1867 | 1866, 0 1868 | 1867, 1 1869 | 1868, 1 1870 | 1869, 1 1871 | 1870, 1 1872 | 1871, 0 1873 | 1872, 1 1874 | 1873, 0 1875 | 1874, 0 1876 | 1875, 1 1877 | 1876, 1 1878 | 1877, 1 1879 | 1878, 1 1880 | 1879, 0 1881 | 1880, 1 1882 | 1881, 1 1883 | 1882, 0 1884 | 1883, 0 1885 | 1884, 1 1886 | 1885, 0 1887 | 1886, 1 1888 | 1887, 1 1889 | 1888, 1 1890 | 1889, 1 1891 | 1890, 1 1892 | 1891, 1 1893 | 1892, 0 1894 | 1893, 1 1895 | 1894, 1 1896 | 1895, 1 1897 | 1896, 1 1898 | 1897, 1 1899 | 1898, 0 1900 | 1899, 1 1901 | 1900, 1 1902 | 1901, 1 1903 | 1902, 1 1904 | 1903, 0 1905 | 1904, 1 1906 | 1905, 1 1907 | 1906, 1 1908 | 1907, 1 1909 | 1908, 1 1910 | 1909, 0 1911 | 1910, 1 1912 | 1911, 0 1913 | 1912, 0 1914 | 1913, 1 1915 | 1914, 1 1916 | 1915, 1 1917 | 1916, 1 1918 | 1917, 0 1919 | 1918, 1 1920 | 1919, 1 1921 | 1920, 1 1922 | 1921, 1 1923 | 1922, 0 1924 | 1923, 1 1925 | 1924, 1 1926 | 1925, 0 1927 | 1926, 1 1928 | 1927, 1 1929 | 1928, 0 1930 | 1929, 0 1931 | 1930, 1 1932 | 1931, 1 1933 | 1932, 1 1934 | 1933, 0 1935 | 1934, 1 1936 | 1935, 0 1937 | 1936, 1 1938 | 1937, 1 1939 | 1938, 1 1940 | 1939, 1 1941 | 1940, 1 1942 | 1941, 1 1943 | 1942, 0 1944 | 1943, 0 1945 | 1944, 0 1946 | 1945, 1 1947 | 1946, 1 1948 | 1947, 1 1949 | 1948, 1 1950 | 1949, 0 1951 | 1950, 0 1952 | 1951, 1 1953 | 1952, 1 1954 | 1953, 0 1955 | 1954, 1 1956 | 1955, 1 1957 | 1956, 0 1958 | 1957, 0 1959 | 1958, 0 1960 | 1959, 1 1961 | 1960, 0 1962 | 1961, 1 1963 | 1962, 1 1964 | 1963, 1 1965 | 1964, 1 1966 | 1965, 0 1967 | 1966, 0 1968 | 1967, 0 1969 | 1968, 0 1970 | 1969, 1 1971 | 1970, 1 1972 | 1971, 0 1973 | 1972, 0 1974 | 1973, 1 1975 | 1974, 1 1976 | 1975, 1 1977 | 1976, 0 1978 | 1977, 1 1979 | 1978, 1 1980 | 1979, 1 1981 | 1980, 0 1982 | 1981, 0 1983 | 1982, 1 1984 | 1983, 0 1985 | 1984, 0 1986 | 1985, 1 1987 | 1986, 1 1988 | 1987, 0 1989 | 1988, 1 1990 | 1989, 1 1991 | 1990, 1 1992 | 1991, 1 1993 | 1992, 1 1994 | 1993, 0 1995 | 1994, 1 1996 | 1995, 0 1997 | 1996, 1 1998 | 1997, 1 1999 | 1998, 1 2000 | 1999, 1 2001 | 2000, 0 2002 | 2001, 1 2003 | 2002, 0 2004 | 2003, 0 2005 | 2004, 1 2006 | 2005, 1 2007 | 2006, 0 2008 | 2007, 1 2009 | 2008, 0 2010 | 2009, 1 2011 | 2010, 0 2012 | 2011, 0 2013 | 2012, 0 2014 | 2013, 0 2015 | 2014, 0 2016 | 2015, 0 2017 | 2016, 1 2018 | 2017, 1 2019 | 2018, 0 2020 | 2019, 1 2021 | 2020, 1 2022 | 2021, 1 2023 | 2022, 1 2024 | 2023, 0 2025 | 2024, 1 2026 | 2025, 1 2027 | 2026, 1 2028 | 2027, 0 2029 | 2028, 1 2030 | 2029, 0 2031 | 2030, 1 2032 | 2031, 0 2033 | 2032, 1 2034 | 2033, 0 2035 | 2034, 0 2036 | 2035, 1 2037 | 2036, 1 2038 | 2037, 0 2039 | 2038, 1 2040 | 2039, 1 2041 | 2040, 1 2042 | 2041, 1 2043 | 2042, 0 2044 | 2043, 0 2045 | 2044, 1 2046 | 2045, 1 2047 | 2046, 0 2048 | 2047, 1 2049 | 2048, 1 2050 | 2049, 0 2051 | 2050, 1 2052 | 2051, 1 2053 | 2052, 0 2054 | 2053, 0 2055 | 2054, 1 2056 | 2055, 1 2057 | 2056, 1 2058 | 2057, 1 2059 | 2058, 1 2060 | 2059, 1 2061 | 2060, 0 2062 | 2061, 1 2063 | 2062, 1 2064 | 2063, 1 2065 | 2064, 0 2066 | 2065, 1 2067 | 2066, 1 2068 | 2067, 1 2069 | 2068, 1 2070 | 2069, 1 2071 | 2070, 1 2072 | 2071, 0 2073 | 2072, 0 2074 | 2073, 1 2075 | 2074, 0 2076 | 2075, 1 2077 | 2076, 0 2078 | 2077, 1 2079 | 2078, 1 2080 | 2079, 1 2081 | 2080, 0 2082 | 2081, 1 2083 | 2082, 0 2084 | 2083, 1 2085 | 2084, 1 2086 | 2085, 1 2087 | 2086, 0 2088 | 2087, 1 2089 | 2088, 0 2090 | 2089, 1 2091 | 2090, 0 2092 | 2091, 0 2093 | 2092, 0 2094 | 2093, 1 2095 | 2094, 1 2096 | 2095, 1 2097 | 2096, 1 2098 | 2097, 1 2099 | 2098, 0 2100 | 2099, 1 2101 | 2100, 1 2102 | 2101, 1 2103 | 2102, 1 2104 | 2103, 0 2105 | 2104, 1 2106 | 2105, 1 2107 | 2106, 1 2108 | 2107, 0 2109 | 2108, 1 2110 | 2109, 1 2111 | 2110, 1 2112 | 2111, 1 2113 | 2112, 1 2114 | 2113, 0 2115 | 2114, 1 2116 | 2115, 1 2117 | 2116, 0 2118 | 2117, 1 2119 | 2118, 0 2120 | 2119, 1 2121 | 2120, 0 2122 | 2121, 1 2123 | 2122, 0 2124 | 2123, 0 2125 | 2124, 1 2126 | 2125, 1 2127 | 2126, 0 2128 | 2127, 0 2129 | 2128, 1 2130 | 2129, 1 2131 | 2130, 1 2132 | 2131, 1 2133 | 2132, 1 2134 | 2133, 1 2135 | 2134, 1 2136 | 2135, 1 2137 | 2136, 0 2138 | 2137, 1 2139 | 2138, 1 2140 | 2139, 1 2141 | 2140, 1 2142 | 2141, 1 2143 | 2142, 1 2144 | 2143, 1 2145 | 2144, 1 2146 | 2145, 0 2147 | 2146, 1 2148 | 2147, 1 2149 | 2148, 1 2150 | 2149, 0 2151 | 2150, 0 2152 | 2151, 0 2153 | 2152, 1 2154 | 2153, 0 2155 | 2154, 1 2156 | 2155, 1 2157 | 2156, 1 2158 | 2157, 0 2159 | 2158, 0 2160 | 2159, 1 2161 | 2160, 0 2162 | 2161, 1 2163 | 2162, 1 2164 | 2163, 0 2165 | 2164, 1 2166 | 2165, 1 2167 | 2166, 1 2168 | 2167, 0 2169 | 2168, 1 2170 | 2169, 1 2171 | 2170, 1 2172 | 2171, 1 2173 | 2172, 0 2174 | 2173, 1 2175 | 2174, 1 2176 | 2175, 1 2177 | 2176, 1 2178 | 2177, 0 2179 | 2178, 1 2180 | 2179, 0 2181 | 2180, 0 2182 | 2181, 1 2183 | 2182, 0 2184 | 2183, 1 2185 | 2184, 0 2186 | 2185, 1 2187 | 2186, 1 2188 | 2187, 1 2189 | 2188, 1 2190 | 2189, 1 2191 | 2190, 1 2192 | 2191, 0 2193 | 2192, 1 2194 | 2193, 1 2195 | 2194, 1 2196 | 2195, 1 2197 | 2196, 1 2198 | 2197, 1 2199 | 2198, 0 2200 | 2199, 0 2201 | 2200, 1 2202 | 2201, 0 2203 | 2202, 0 2204 | 2203, 1 2205 | 2204, 1 2206 | 2205, 0 2207 | 2206, 1 2208 | 2207, 1 2209 | 2208, 1 2210 | 2209, 0 2211 | 2210, 0 2212 | 2211, 1 2213 | 2212, 1 2214 | 2213, 1 2215 | 2214, 1 2216 | 2215, 0 2217 | 2216, 0 2218 | 2217, 1 2219 | 2218, 1 2220 | 2219, 1 2221 | 2220, 1 2222 | 2221, 0 2223 | 2222, 1 2224 | 2223, 1 2225 | 2224, 1 2226 | 2225, 1 2227 | 2226, 0 2228 | 2227, 1 2229 | 2228, 1 2230 | 2229, 0 2231 | 2230, 1 2232 | 2231, 1 2233 | 2232, 0 2234 | 2233, 1 2235 | 2234, 0 2236 | 2235, 1 2237 | 2236, 0 2238 | 2237, 1 2239 | 2238, 0 2240 | 2239, 0 2241 | 2240, 0 2242 | 2241, 1 2243 | 2242, 1 2244 | 2243, 0 2245 | 2244, 0 2246 | 2245, 1 2247 | 2246, 1 2248 | 2247, 0 2249 | 2248, 1 2250 | 2249, 1 2251 | 2250, 1 2252 | 2251, 1 2253 | 2252, 1 2254 | 2253, 1 2255 | 2254, 0 2256 | 2255, 1 2257 | 2256, 1 2258 | 2257, 1 2259 | 2258, 1 2260 | 2259, 0 2261 | 2260, 0 2262 | 2261, 1 2263 | 2262, 0 2264 | 2263, 1 2265 | 2264, 1 2266 | 2265, 1 2267 | 2266, 0 2268 | 2267, 0 2269 | 2268, 1 2270 | 2269, 1 2271 | 2270, 0 2272 | 2271, 0 2273 | 2272, 1 2274 | 2273, 0 2275 | 2274, 1 2276 | 2275, 0 2277 | 2276, 0 2278 | 2277, 0 2279 | 2278, 1 2280 | 2279, 1 2281 | 2280, 0 2282 | 2281, 1 2283 | 2282, 0 2284 | 2283, 1 2285 | 2284, 0 2286 | 2285, 1 2287 | 2286, 1 2288 | 2287, 0 2289 | 2288, 0 2290 | 2289, 0 2291 | 2290, 1 2292 | 2291, 0 2293 | 2292, 1 2294 | 2293, 1 2295 | 2294, 0 2296 | 2295, 1 2297 | 2296, 0 2298 | 2297, 1 2299 | 2298, 1 2300 | 2299, 1 2301 | 2300, 1 2302 | 2301, 0 2303 | 2302, 1 2304 | 2303, 1 2305 | 2304, 0 2306 | 2305, 1 2307 | 2306, 1 2308 | 2307, 1 2309 | 2308, 1 2310 | 2309, 0 2311 | 2310, 1 2312 | 2311, 1 2313 | 2312, 0 2314 | 2313, 1 2315 | 2314, 0 2316 | 2315, 1 2317 | 2316, 1 2318 | 2317, 0 2319 | 2318, 0 2320 | 2319, 0 2321 | 2320, 0 2322 | 2321, 1 2323 | 2322, 1 2324 | 2323, 1 2325 | 2324, 0 2326 | 2325, 1 2327 | 2326, 1 2328 | 2327, 1 2329 | 2328, 1 2330 | 2329, 1 2331 | 2330, 0 2332 | 2331, 1 2333 | 2332, 1 2334 | 2333, 0 2335 | 2334, 1 2336 | 2335, 1 2337 | 2336, 0 2338 | 2337, 1 2339 | 2338, 1 2340 | 2339, 1 2341 | 2340, 1 2342 | 2341, 0 2343 | 2342, 1 2344 | 2343, 1 2345 | 2344, 1 2346 | 2345, 1 2347 | 2346, 1 2348 | 2347, 1 2349 | 2348, 0 2350 | 2349, 0 2351 | 2350, 1 2352 | 2351, 1 2353 | 2352, 0 2354 | 2353, 0 2355 | 2354, 0 2356 | 2355, 1 2357 | 2356, 0 2358 | 2357, 1 2359 | 2358, 0 2360 | 2359, 1 2361 | 2360, 1 2362 | 2361, 0 2363 | 2362, 1 2364 | 2363, 1 2365 | 2364, 0 2366 | 2365, 1 2367 | 2366, 1 2368 | 2367, 0 2369 | 2368, 1 2370 | 2369, 1 2371 | 2370, 0 2372 | 2371, 0 2373 | 2372, 1 2374 | 2373, 1 2375 | 2374, 1 2376 | 2375, 1 2377 | 2376, 1 2378 | 2377, 1 2379 | 2378, 1 2380 | 2379, 1 2381 | 2380, 1 2382 | 2381, 1 2383 | 2382, 1 2384 | 2383, 0 2385 | 2384, 1 2386 | 2385, 1 2387 | 2386, 1 2388 | 2387, 1 2389 | 2388, 1 2390 | 2389, 0 2391 | 2390, 0 2392 | 2391, 0 2393 | 2392, 0 2394 | 2393, 0 2395 | 2394, 1 2396 | 2395, 1 2397 | 2396, 1 2398 | 2397, 0 2399 | 2398, 0 2400 | 2399, 1 2401 | 2400, 1 2402 | 2401, 0 2403 | 2402, 1 2404 | 2403, 0 2405 | 2404, 1 2406 | 2405, 0 2407 | 2406, 0 2408 | 2407, 1 2409 | 2408, 1 2410 | 2409, 1 2411 | 2410, 1 2412 | 2411, 1 2413 | 2412, 0 2414 | 2413, 1 2415 | 2414, 1 2416 | 2415, 1 2417 | 2416, 1 2418 | 2417, 1 2419 | 2418, 1 2420 | 2419, 1 2421 | 2420, 1 2422 | 2421, 1 2423 | 2422, 1 2424 | 2423, 0 2425 | 2424, 1 2426 | 2425, 1 2427 | 2426, 1 2428 | 2427, 0 2429 | 2428, 1 2430 | 2429, 0 2431 | 2430, 1 2432 | 2431, 1 2433 | 2432, 1 2434 | 2433, 0 2435 | 2434, 1 2436 | 2435, 1 2437 | 2436, 1 2438 | 2437, 0 2439 | 2438, 0 2440 | 2439, 1 2441 | 2440, 0 2442 | 2441, 1 2443 | 2442, 0 2444 | 2443, 1 2445 | 2444, 1 2446 | 2445, 0 2447 | 2446, 1 2448 | 2447, 0 2449 | 2448, 0 2450 | 2449, 1 2451 | 2450, 1 2452 | 2451, 1 2453 | 2452, 1 2454 | 2453, 0 2455 | 2454, 1 2456 | 2455, 0 2457 | 2456, 1 2458 | 2457, 1 2459 | 2458, 0 2460 | 2459, 0 2461 | 2460, 1 2462 | 2461, 0 2463 | 2462, 1 2464 | 2463, 0 2465 | 2464, 0 2466 | 2465, 0 2467 | 2466, 1 2468 | 2467, 0 2469 | 2468, 1 2470 | 2469, 1 2471 | 2470, 0 2472 | 2471, 1 2473 | 2472, 1 2474 | 2473, 1 2475 | 2474, 0 2476 | 2475, 1 2477 | 2476, 1 2478 | 2477, 1 2479 | 2478, 1 2480 | 2479, 1 2481 | 2480, 0 2482 | 2481, 1 2483 | 2482, 0 2484 | 2483, 1 2485 | 2484, 1 2486 | 2485, 1 2487 | 2486, 1 2488 | 2487, 1 2489 | 2488, 0 2490 | 2489, 0 2491 | 2490, 1 2492 | 2491, 0 2493 | 2492, 1 2494 | 2493, 0 2495 | 2494, 0 2496 | 2495, 1 2497 | 2496, 0 2498 | 2497, 1 2499 | 2498, 1 2500 | 2499, 1 2501 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### 中文词向量模型 2 | 3 | 4 | 5 | sgns.zhihu.bigram 6 | 7 | ### 运行环境 8 | 9 | pytorch1.0.1 10 | 11 | ### 训练模型 12 | 13 | ``` 14 | python sentiment_analysis.py 15 | ``` 16 | 17 | ### 测试模型 18 | 19 | ``` 20 | python test.py 21 | ``` 22 | 23 | ### 说明 24 | 25 | “train_data”目录下提供10000条训练数据,包括5000条积极情感文本(sample.positive.txt)和5000条消极情感文本(sample.negative.txt); 26 | 27 | 文件为“UTF-8”编码,数据以xml格式存储,格式如下: 28 | 29 | ``` 30 | 31 | xxx 32 | 33 | ``` 34 | 35 | 每个“review”标签是一条训练数据,“id”是训练数据编号(0到9999),标签内容“xxx”为文本内容。 36 | “test_data”目录下是文件“test.txt”,包含2500条未知类别(积极或消极)的测试数据,使用学习的系统对其进行预测。 37 | 文件为“UTF-8”编码,数据以xml格式存储,格式如下: 38 | 39 | ``` 40 | 41 | xxx 42 | 43 | ``` 44 | 45 | 每个“review”标签是一条测试数据,“id”是测试数据编号(0到2499),标签内容“xxx”为文本内容。 46 | 对测试数据进行预测,积极用“1”表示;消极用“0”表示。 -------------------------------------------------------------------------------- /__pycache__/load_data.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stuyxr/Sentiment-Analysis/c38ce4748903c7a9d5ce843ee778140d088edc9e/__pycache__/load_data.cpython-36.pyc -------------------------------------------------------------------------------- /__pycache__/sentiment_analysis.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stuyxr/Sentiment-Analysis/c38ce4748903c7a9d5ce843ee778140d088edc9e/__pycache__/sentiment_analysis.cpython-36.pyc -------------------------------------------------------------------------------- /label_data.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stuyxr/Sentiment-Analysis/c38ce4748903c7a9d5ce843ee778140d088edc9e/label_data.pt -------------------------------------------------------------------------------- /load_data.py: -------------------------------------------------------------------------------- 1 | import jieba 2 | import numpy as np 3 | import torch 4 | from gensim.models import KeyedVectors 5 | 6 | pos_data_path = './train_data/sample.positive.txt' 7 | neg_data_path = './train_data/sample.negative.txt' 8 | test_data_path = './test_data/test.txt' 9 | cut_data_path = './cut.txt' 10 | vec_data_path = './vec.bin' 11 | train_data_path = './train_data.pt' 12 | label_data_path = './label_data.pt' 13 | test_path = './test_data.pt' 14 | dic = {} 15 | 16 | 17 | def read_data(path): 18 | ret = [] 19 | with open(path, 'r', encoding='UTF-8') as f: 20 | new_line_comments = str() 21 | for line in f: 22 | line = line.strip() 23 | if '= 100: 39 | break 40 | if word in dic.keys(): 41 | vec.append(dic[word].tolist()) 42 | i += 1 43 | while i < 100: 44 | vec.insert(0, zeros) 45 | i += 1 46 | return vec 47 | 48 | def get_test_data(): 49 | test_raw_data = read_data(test_data_path) 50 | test_cut_data = [] 51 | for sentence in test_raw_data: 52 | test_cut_data.append(' '.join(list(jieba.cut(sentence)))) 53 | test_vec_data = [] 54 | for sentence in test_cut_data: 55 | test_vec_data.append(get_vec(sentence)) 56 | test_vec_data = torch.Tensor(np.array(test_vec_data)) 57 | torch.save(test_vec_data, test_path) 58 | return test_vec_data 59 | 60 | def get_data(load_from_file=True): 61 | if not load_from_file: 62 | raw_data = read_data(pos_data_path) + read_data(neg_data_path) 63 | cut_data = [] 64 | with open(cut_data_path, 'w', encoding='UTF-8') as f: 65 | f.write('') 66 | with open(cut_data_path, 'a', encoding='UTF-8') as f: 67 | for sentence in raw_data: 68 | cut_data.append(' '.join(list(jieba.cut(sentence)))) 69 | for cut_sentence in cut_data: 70 | f.write(cut_sentence) 71 | model = KeyedVectors.load_word2vec_format('sgns.zhihu.bigram', binary=False) 72 | for word, vector in zip(model.vocab, model.vectors): 73 | dic[word] = vector 74 | vec_data = [] 75 | for sentence in cut_data: 76 | vec = get_vec(sentence) 77 | vec_data.append(vec) 78 | vec_data = torch.Tensor(np.array(vec_data)) 79 | label = torch.Tensor(np.array([1 for i in range(5000)] + [0 for i in range(5000)])) 80 | vec_data, label = change_order(vec_data, label) 81 | torch.save(vec_data, train_data_path) 82 | torch.save(label, label_data_path) 83 | test_data = get_test_data() 84 | vec_data = torch.load(train_data_path) 85 | label = torch.load(label_data_path) 86 | test_data = torch.load(test_path) 87 | return vec_data.permute(1, 0, 2), label, test_data.permute(1, 0, 2) 88 | 89 | def change_order(set, target): 90 | permutation = np.random.permutation(target.shape[0]) 91 | return set[permutation, :, :], target[permutation] 92 | 93 | 94 | 95 | 96 | 97 | 98 | # get_data(False) 99 | 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /readme-情感分类系统说明.txt: -------------------------------------------------------------------------------- 1 | ### 此目录内容公开 ### 2 | 3 | 这是一个说明文件,包含三部分内容(任务描述、提交说明、报告说明) 4 | 5 | 一、任务描述 6 | (1)设计和实现分类系统,完成对短文本的情感极性(积极、消极)二分类任务。 7 | 程序语言、框架、学习方法不限,可使用外部语料,不可使用已有的情感分析或文本分类库。 8 | (2)“train_data”目录下提供10000条训练数据,包括5000条积极情感文本(sample.positive.txt)和5000条消极情感文本(sample.negative.txt); 9 | 文件为“UTF-8”编码,数据以xml格式存储,格式如下: 10 | 11 | xxx 12 | 13 | 每个“review”标签是一条训练数据,“id”是训练数据编号(0到9999),标签内容“xxx”为文本内容。 14 | (3)“test_data”目录下是文件“test.txt”,包含2500条未知类别(积极或消极)的测试数据,使用学习的系统对其进行预测。 15 | 文件为“UTF-8”编码,数据以xml格式存储,格式如下: 16 | 17 | xxx 18 | 19 | 每个“review”标签是一条测试数据,“id”是测试数据编号(0到2499),标签内容“xxx”为文本内容。 20 | 对测试数据进行预测,积极用“1”表示;消极用“0”表示。 21 | 22 | 二、提交说明 23 | (1)每人提交一份结果,结果是一个“.csv”格式的数据文件(以逗号“,”为分隔符),以学号命名。(即:学号.csv) 24 | (2)“.csv”文件应为2500行2列,每一行是一条测试数据的预测结果。 25 | 第一列是测试数据id(0到2499,得分判断以id为准,与其顺序无关),第二列是情感极性预测结果(0-消极,1-积极)。 26 | (注:以0、1表示预测结果,切勿用“积极消极”、“+-”、“正负”等其它字符) 27 | (3)提交的“学号.csv”文件一定是一个2500行2列,并以逗号“,”为分隔符的数据文件,不符合要求的提交得分记0。 28 | (4)评分标准:以宏平均F1(macro-averaged F1-score)作为评分标准。 29 | 30 | 三、报告说明 31 | 报告包括部分: 32 | (1)摘要:概括说明研究问题、研究方法及实验结果 33 | (2)对情感分类已有方法简要综述 34 | (3)系统方法:任务描述,详细叙述系统采用的方法。 35 | (4)实验设置:系统所使用的训练数据,包括除本任务提供的额外数据说明,所采用方法的参数设置。 36 | (5)实验结果与分析:说明实验获得的结果,并分析其原因,可与其它方法作对比。 37 | (6)结论:总结本次任务,及下一步工作。 38 | -------------------------------------------------------------------------------- /sentiment_analysis.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import torch.nn as nn 3 | from torch.autograd import Variable 4 | from load_data import get_data 5 | 6 | class SentimentAnalysisModule(nn.Module): 7 | def __init__(self, input_size, hidden_size, output_size): 8 | super(SentimentAnalysisModule, self).__init__() 9 | self.layer1 = nn.LSTM(input_size, hidden_size, bidirectional=True) 10 | self.layer2 = nn.Sequential( 11 | nn.Linear(hidden_size * 2, 500), 12 | nn.LeakyReLU(), 13 | nn.Dropout(0.5) 14 | ) 15 | self.layer3 = nn.Sequential( 16 | nn.Linear(500, 100), 17 | nn.LeakyReLU(), 18 | nn.Dropout(0.5) 19 | ) 20 | self.layer4 = nn.Sequential( 21 | nn.Linear(100, 2), 22 | nn.Dropout(0.5) 23 | ) 24 | 25 | def forward(self, x): 26 | x, _ = self.layer1(x) 27 | seq_len, batch_size, hidden_size = x.size() 28 | x = x.view(seq_len * batch_size, hidden_size) 29 | x = self.layer2(x) 30 | x = self.layer3(x) 31 | x = self.layer4(x) 32 | x = x.view(seq_len, batch_size, -1) 33 | return x 34 | 35 | device = torch.device(0) if torch.cuda.is_available() else torch.device('cpu') 36 | 37 | def calc_accuracy(net, test_set, test_target, epoch): 38 | correct = 0 39 | total = 0 40 | batch = 32 41 | with torch.no_grad(): 42 | for i in range(0, test_set.size()[1], batch): 43 | input_data = torch.autograd.Variable(test_set[:, i:i+batch, :]).to(device) 44 | labels = Variable(test_target[i:i+batch].long()) 45 | input_data, labels = input_data, labels 46 | outputs = net(input_data).cpu() 47 | _, predicted = torch.max(outputs[-1, :, :], 1) 48 | total += labels.size(0) 49 | correct += (predicted == labels).sum().item() 50 | 51 | if correct > 700: 52 | torch.save(net.state_dict(), f'./checkpoints/sentiment_{epoch}.pt') 53 | print(f'accuracy: {correct}/{total}') 54 | 55 | 56 | def main(): 57 | train_dataset, train_label, test_dataset = get_data(True) 58 | print(train_dataset[:, 1, :]) 59 | print(train_dataset[:, 1000, :]) 60 | validation_dataset, validation_label = train_dataset[:, :1000, :], train_label[:1000] 61 | train_dataset, train_label = train_dataset[:, 1000:, :], train_label[1000:] 62 | net = SentimentAnalysisModule(300, 1000, 2).to(device) 63 | criterion = torch.nn.CrossEntropyLoss() 64 | optimizer = torch.optim.Adam(net.parameters(), lr=0.001) 65 | batch = 32 66 | for epoch in range(1000): 67 | avg_loss = 0 68 | cnt = 0 69 | net.train() 70 | for i in range(0, train_dataset.size()[1], batch): 71 | cnt += 1 72 | input_data = Variable(train_dataset[:, i:i+batch, :]).to(device) 73 | label = Variable(train_label[i:i+batch].long()).to(device) 74 | output = net(input_data)[-1, :, :] 75 | optimizer.zero_grad() 76 | loss = criterion(output, label) 77 | loss.backward() 78 | optimizer.step() 79 | avg_loss += loss.item() 80 | avg_loss /= cnt 81 | print(f'epoch {epoch}: loss = {avg_loss}') 82 | net.eval() 83 | calc_accuracy(net, validation_dataset, validation_label, epoch) 84 | if epoch % 5 == 0 and epoch > 0: 85 | torch.save(net.state_dict(), f'./checkpoints/sentiment_{epoch}.pt') 86 | 87 | if __name__ == '__main__': 88 | main() 89 | -------------------------------------------------------------------------------- /test.py: -------------------------------------------------------------------------------- 1 | import torch 2 | from load_data import get_data 3 | from sentiment_analysis import SentimentAnalysisModule 4 | 5 | device = torch.device(0) if torch.cuda.is_available() else torch.device('cpu') 6 | 7 | net = SentimentAnalysisModule(300, 1000, 2).to(device) 8 | net.load_state_dict(torch.load('./checkpoints/sentiment_2.pt')) 9 | 10 | batch = 32 11 | 12 | _, _, test_dataset = get_data() 13 | input_data = torch.autograd.Variable(test_dataset).to(device) 14 | output = net(input_data).cpu() 15 | 16 | _, predicted = torch.max(output[-1, :, :], 1) 17 | with open('1170300418.csv', 'a') as f: 18 | for i in range(len(predicted)): 19 | f.write(f'{i}, {predicted[i]}\r\n') 20 | --------------------------------------------------------------------------------