diff --git "a/Komentar_Youtube_Model.ipynb" "b/Komentar_Youtube_Model.ipynb"
deleted file mode 100644--- "a/Komentar_Youtube_Model.ipynb"
+++ /dev/null
@@ -1,4765 +0,0 @@
-{
- "nbformat": 4,
- "nbformat_minor": 0,
- "metadata": {
- "colab": {
- "provenance": [],
- "gpuType": "T4"
- },
- "kernelspec": {
- "name": "python3",
- "display_name": "Python 3"
- },
- "language_info": {
- "name": "python"
- },
- "accelerator": "GPU",
- "widgets": {
- "application/vnd.jupyter.widget-state+json": {
- "45c4d37ef2674b8f86db005a2f85ca7e": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HBoxModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HBoxModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HBoxView",
- "box_style": "",
- "children": [
- "IPY_MODEL_4aedb17a879943158be08d85e0bb7a79",
- "IPY_MODEL_8f4c13a74b7e42deb2a31ce91017130f",
- "IPY_MODEL_77a581ce565a430b9277e8a1c22072a1"
- ],
- "layout": "IPY_MODEL_2ad1114ce08f48a19419116165cf703d"
- }
- },
- "4aedb17a879943158be08d85e0bb7a79": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HTMLModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HTMLModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HTMLView",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_fbdec0ee402f410099cacd733c751450",
- "placeholder": "",
- "style": "IPY_MODEL_bb35359150ac4d9fa56421ec6f9db903",
- "value": "tokenizer_config.json: 100%"
- }
- },
- "8f4c13a74b7e42deb2a31ce91017130f": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "FloatProgressModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "FloatProgressModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "ProgressView",
- "bar_style": "success",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_70f4eb88f8d1499cabd53bff6ccb3be7",
- "max": 2,
- "min": 0,
- "orientation": "horizontal",
- "style": "IPY_MODEL_31ee77f9b2144b95897ec5c7cd23639e",
- "value": 2
- }
- },
- "77a581ce565a430b9277e8a1c22072a1": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HTMLModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HTMLModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HTMLView",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_63ed3f1ceb7946b8897089154b562c65",
- "placeholder": "",
- "style": "IPY_MODEL_bdd5ce87d9e94b0da3dbf54b2fd3b68d",
- "value": " 2.00/2.00 [00:00<00:00, 112B/s]"
- }
- },
- "2ad1114ce08f48a19419116165cf703d": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "fbdec0ee402f410099cacd733c751450": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "bb35359150ac4d9fa56421ec6f9db903": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": ""
- }
- },
- "70f4eb88f8d1499cabd53bff6ccb3be7": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "31ee77f9b2144b95897ec5c7cd23639e": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "ProgressStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "ProgressStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "bar_color": null,
- "description_width": ""
- }
- },
- "63ed3f1ceb7946b8897089154b562c65": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "bdd5ce87d9e94b0da3dbf54b2fd3b68d": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": ""
- }
- },
- "4dd7fa21969f47ffbb13ed80245f935c": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HBoxModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HBoxModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HBoxView",
- "box_style": "",
- "children": [
- "IPY_MODEL_9daf02ec27f7402998beb5dc506405c4",
- "IPY_MODEL_a824045877744fa9a44da232e244ffbb",
- "IPY_MODEL_eccb0638afe041348924d24f9b332511"
- ],
- "layout": "IPY_MODEL_9b614f28b438424993dd5e16fafa8607"
- }
- },
- "9daf02ec27f7402998beb5dc506405c4": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HTMLModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HTMLModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HTMLView",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_8915abcb3108458f883c5e8c2d29677f",
- "placeholder": "",
- "style": "IPY_MODEL_ea8cf312ff51485d834ac53c6a11488f",
- "value": "config.json: "
- }
- },
- "a824045877744fa9a44da232e244ffbb": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "FloatProgressModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "FloatProgressModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "ProgressView",
- "bar_style": "success",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_3f13ed74c29c42eb9d75011fbed8d434",
- "max": 1,
- "min": 0,
- "orientation": "horizontal",
- "style": "IPY_MODEL_36aa266b712d4f998793bf9cb4c199f7",
- "value": 1
- }
- },
- "eccb0638afe041348924d24f9b332511": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HTMLModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HTMLModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HTMLView",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_b4fa27517ef14f5dad40294b3d25aa26",
- "placeholder": "",
- "style": "IPY_MODEL_d9e3146057d243478dc799698d14927e",
- "value": " 1.53k/? [00:00<00:00, 27.3kB/s]"
- }
- },
- "9b614f28b438424993dd5e16fafa8607": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "8915abcb3108458f883c5e8c2d29677f": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "ea8cf312ff51485d834ac53c6a11488f": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": ""
- }
- },
- "3f13ed74c29c42eb9d75011fbed8d434": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": "20px"
- }
- },
- "36aa266b712d4f998793bf9cb4c199f7": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "ProgressStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "ProgressStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "bar_color": null,
- "description_width": ""
- }
- },
- "b4fa27517ef14f5dad40294b3d25aa26": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "d9e3146057d243478dc799698d14927e": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": ""
- }
- },
- "b1b328e4fc8548f7b4c319abf13a5246": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HBoxModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HBoxModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HBoxView",
- "box_style": "",
- "children": [
- "IPY_MODEL_4ea6ab42fa564f128b427e52c71d1090",
- "IPY_MODEL_8100460312e04c2aa43545d7c3b55439",
- "IPY_MODEL_7be447117836452ba2bdd2fa451c678e"
- ],
- "layout": "IPY_MODEL_8e4be390ef054c7ca26cea26892530c1"
- }
- },
- "4ea6ab42fa564f128b427e52c71d1090": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HTMLModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HTMLModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HTMLView",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_a5b09d32593a4c72b7f9abdfba1c146c",
- "placeholder": "",
- "style": "IPY_MODEL_552a421562a34512aa4c9d49bfbd6228",
- "value": "vocab.txt: "
- }
- },
- "8100460312e04c2aa43545d7c3b55439": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "FloatProgressModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "FloatProgressModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "ProgressView",
- "bar_style": "success",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_31e482e34e7f4cb4a762bb2d2bfb97fa",
- "max": 1,
- "min": 0,
- "orientation": "horizontal",
- "style": "IPY_MODEL_24e0b71401d24c0aab399055f474df99",
- "value": 1
- }
- },
- "7be447117836452ba2bdd2fa451c678e": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HTMLModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HTMLModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HTMLView",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_e9af5933e05642b0a6a5691f43b38969",
- "placeholder": "",
- "style": "IPY_MODEL_ea19fa9a169b4b158a741d0997b0e45b",
- "value": " 229k/? [00:00<00:00, 8.15MB/s]"
- }
- },
- "8e4be390ef054c7ca26cea26892530c1": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "a5b09d32593a4c72b7f9abdfba1c146c": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "552a421562a34512aa4c9d49bfbd6228": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": ""
- }
- },
- "31e482e34e7f4cb4a762bb2d2bfb97fa": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": "20px"
- }
- },
- "24e0b71401d24c0aab399055f474df99": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "ProgressStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "ProgressStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "bar_color": null,
- "description_width": ""
- }
- },
- "e9af5933e05642b0a6a5691f43b38969": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "ea19fa9a169b4b158a741d0997b0e45b": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": ""
- }
- },
- "b729d13b7daa4c8dbcf9a43f0fb764df": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HBoxModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HBoxModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HBoxView",
- "box_style": "",
- "children": [
- "IPY_MODEL_4eb757cd367f43a7af4eaa72ca600d0b",
- "IPY_MODEL_8d779641af754cbba9c6564c86268f13",
- "IPY_MODEL_7aa5a568e7bb495c8cbcb35a5d9be5f0"
- ],
- "layout": "IPY_MODEL_0c9cde28085945798bb73e790c8640d3"
- }
- },
- "4eb757cd367f43a7af4eaa72ca600d0b": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HTMLModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HTMLModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HTMLView",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_4805329417194223942fa057f92470ef",
- "placeholder": "",
- "style": "IPY_MODEL_50d3e5d886dd494f9312883ee544b48c",
- "value": "special_tokens_map.json: 100%"
- }
- },
- "8d779641af754cbba9c6564c86268f13": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "FloatProgressModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "FloatProgressModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "ProgressView",
- "bar_style": "success",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_084d782616ae48debc0f4e68dc863ae5",
- "max": 112,
- "min": 0,
- "orientation": "horizontal",
- "style": "IPY_MODEL_898c010f7b00485bb48c489a048f84b9",
- "value": 112
- }
- },
- "7aa5a568e7bb495c8cbcb35a5d9be5f0": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HTMLModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HTMLModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HTMLView",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_3517c9e8ba864efe9e3ac2464983907e",
- "placeholder": "",
- "style": "IPY_MODEL_a6659765952040ec9e30de4fe4173860",
- "value": " 112/112 [00:00<00:00, 2.23kB/s]"
- }
- },
- "0c9cde28085945798bb73e790c8640d3": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "4805329417194223942fa057f92470ef": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "50d3e5d886dd494f9312883ee544b48c": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": ""
- }
- },
- "084d782616ae48debc0f4e68dc863ae5": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "898c010f7b00485bb48c489a048f84b9": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "ProgressStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "ProgressStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "bar_color": null,
- "description_width": ""
- }
- },
- "3517c9e8ba864efe9e3ac2464983907e": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "a6659765952040ec9e30de4fe4173860": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": ""
- }
- },
- "1b7ca38c4da34b97bf8d6def7e78dab0": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HBoxModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HBoxModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HBoxView",
- "box_style": "",
- "children": [
- "IPY_MODEL_6f0a6b2a7e9c410eb2a76c7c204a10f8",
- "IPY_MODEL_ce09b420f2b24816986f535e25ccaacd",
- "IPY_MODEL_fe1c91e262174bd284d15dd372ef2611"
- ],
- "layout": "IPY_MODEL_d5b1add3acbc4fd4b6a43bbc19198ee1"
- }
- },
- "6f0a6b2a7e9c410eb2a76c7c204a10f8": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HTMLModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HTMLModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HTMLView",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_a5e9c4f851ee48948b5c8c9c9a203ddf",
- "placeholder": "",
- "style": "IPY_MODEL_86bf7a26f5c24c3ca4d803ee7cf67a01",
- "value": "pytorch_model.bin: 100%"
- }
- },
- "ce09b420f2b24816986f535e25ccaacd": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "FloatProgressModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "FloatProgressModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "ProgressView",
- "bar_style": "success",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_90538b2a39f0476085e67e6bf5ee77a7",
- "max": 497810400,
- "min": 0,
- "orientation": "horizontal",
- "style": "IPY_MODEL_2fcee34600a44c7d94f4b016b0e05be8",
- "value": 497810400
- }
- },
- "fe1c91e262174bd284d15dd372ef2611": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HTMLModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HTMLModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HTMLView",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_10f9e8eab34346a78af97d7be2d395ae",
- "placeholder": "",
- "style": "IPY_MODEL_3fc30cf7d58344ff9b7bb568985e43b9",
- "value": " 498M/498M [00:01<00:00, 279MB/s]"
- }
- },
- "d5b1add3acbc4fd4b6a43bbc19198ee1": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "a5e9c4f851ee48948b5c8c9c9a203ddf": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "86bf7a26f5c24c3ca4d803ee7cf67a01": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": ""
- }
- },
- "90538b2a39f0476085e67e6bf5ee77a7": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "2fcee34600a44c7d94f4b016b0e05be8": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "ProgressStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "ProgressStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "bar_color": null,
- "description_width": ""
- }
- },
- "10f9e8eab34346a78af97d7be2d395ae": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "3fc30cf7d58344ff9b7bb568985e43b9": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": ""
- }
- }
- }
- }
- },
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 0
- },
- "id": "ObMtWb4HTIf5",
- "outputId": "892d0709-183b-4f63-87ff-6386d49d8f16"
- },
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Requirement already satisfied: nltk in /usr/local/lib/python3.11/dist-packages (3.9.1)\n",
- "Requirement already satisfied: click in /usr/local/lib/python3.11/dist-packages (from nltk) (8.2.1)\n",
- "Requirement already satisfied: joblib in /usr/local/lib/python3.11/dist-packages (from nltk) (1.5.1)\n",
- "Requirement already satisfied: regex>=2021.8.3 in /usr/local/lib/python3.11/dist-packages (from nltk) (2024.11.6)\n",
- "Requirement already satisfied: tqdm in /usr/local/lib/python3.11/dist-packages (from nltk) (4.67.1)\n",
- "Collecting Sastrawi\n",
- " Downloading Sastrawi-1.0.1-py2.py3-none-any.whl.metadata (909 bytes)\n",
- "Downloading Sastrawi-1.0.1-py2.py3-none-any.whl (209 kB)\n",
- "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m209.7/209.7 kB\u001b[0m \u001b[31m15.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
- "\u001b[?25hInstalling collected packages: Sastrawi\n",
- "Successfully installed Sastrawi-1.0.1\n",
- "Collecting swifter\n",
- " Downloading swifter-1.4.0.tar.gz (1.2 MB)\n",
- "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.2/1.2 MB\u001b[0m \u001b[31m45.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
- "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
- "Requirement already satisfied: pandas>=1.0.0 in /usr/local/lib/python3.11/dist-packages (from swifter) (2.2.2)\n",
- "Requirement already satisfied: psutil>=5.6.6 in /usr/local/lib/python3.11/dist-packages (from swifter) (5.9.5)\n",
- "Requirement already satisfied: dask>=2.10.0 in /usr/local/lib/python3.11/dist-packages (from dask[dataframe]>=2.10.0->swifter) (2025.5.0)\n",
- "Requirement already satisfied: tqdm>=4.33.0 in /usr/local/lib/python3.11/dist-packages (from swifter) (4.67.1)\n",
- "Requirement already satisfied: click>=8.1 in /usr/local/lib/python3.11/dist-packages (from dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (8.2.1)\n",
- "Requirement already satisfied: cloudpickle>=3.0.0 in /usr/local/lib/python3.11/dist-packages (from dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (3.1.1)\n",
- "Requirement already satisfied: fsspec>=2021.09.0 in /usr/local/lib/python3.11/dist-packages (from dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (2025.7.0)\n",
- "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.11/dist-packages (from dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (25.0)\n",
- "Requirement already satisfied: partd>=1.4.0 in /usr/local/lib/python3.11/dist-packages (from dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (1.4.2)\n",
- "Requirement already satisfied: pyyaml>=5.3.1 in /usr/local/lib/python3.11/dist-packages (from dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (6.0.2)\n",
- "Requirement already satisfied: toolz>=0.10.0 in /usr/local/lib/python3.11/dist-packages (from dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (0.12.1)\n",
- "Requirement already satisfied: importlib_metadata>=4.13.0 in /usr/local/lib/python3.11/dist-packages (from dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (8.7.0)\n",
- "Requirement already satisfied: pyarrow>=14.0.1 in /usr/local/lib/python3.11/dist-packages (from dask[dataframe]>=2.10.0->swifter) (18.1.0)\n",
- "Requirement already satisfied: numpy>=1.23.2 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.0.0->swifter) (2.0.2)\n",
- "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.0.0->swifter) (2.9.0.post0)\n",
- "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.0.0->swifter) (2025.2)\n",
- "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.0.0->swifter) (2025.2)\n",
- "Requirement already satisfied: zipp>=3.20 in /usr/local/lib/python3.11/dist-packages (from importlib_metadata>=4.13.0->dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (3.23.0)\n",
- "Requirement already satisfied: locket in /usr/local/lib/python3.11/dist-packages (from partd>=1.4.0->dask>=2.10.0->dask[dataframe]>=2.10.0->swifter) (1.0.0)\n",
- "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.11/dist-packages (from python-dateutil>=2.8.2->pandas>=1.0.0->swifter) (1.17.0)\n",
- "Building wheels for collected packages: swifter\n",
- " Building wheel for swifter (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
- " Created wheel for swifter: filename=swifter-1.4.0-py3-none-any.whl size=16505 sha256=87b03bcece3a83cd33454441556db7a5fc0d137a915425fd1dc845509f6eab3c\n",
- " Stored in directory: /root/.cache/pip/wheels/ef/7f/bd/9bed48f078f3ee1fa75e0b29b6e0335ce1cb03a38d3443b3a3\n",
- "Successfully built swifter\n",
- "Installing collected packages: swifter\n",
- "Successfully installed swifter-1.4.0\n"
- ]
- },
- {
- "output_type": "stream",
- "name": "stderr",
- "text": [
- "[nltk_data] Downloading package stopwords to /root/nltk_data...\n",
- "[nltk_data] Unzipping corpora/stopwords.zip.\n",
- "[nltk_data] Downloading package punkt to /root/nltk_data...\n",
- "[nltk_data] Unzipping tokenizers/punkt.zip.\n",
- "[nltk_data] Downloading package punkt_tab to /root/nltk_data...\n",
- "[nltk_data] Unzipping tokenizers/punkt_tab.zip.\n",
- "[nltk_data] Downloading package averaged_perceptron_tagger to\n",
- "[nltk_data] /root/nltk_data...\n",
- "[nltk_data] Unzipping taggers/averaged_perceptron_tagger.zip.\n",
- "[nltk_data] Downloading package wordnet to /root/nltk_data...\n"
- ]
- }
- ],
- "source": [
- "!pip install nltk\n",
- "!pip install Sastrawi\n",
- "!pip install swifter\n",
- "\n",
- "import pandas as pd\n",
- "import numpy as np\n",
- "import matplotlib.pyplot as plt\n",
- "import re, string\n",
- "from google.colab import files\n",
- "from sklearn.utils import resample\n",
- "\n",
- "import nltk\n",
- "nltk.download('stopwords')\n",
- "nltk.download('punkt')\n",
- "nltk.download('punkt_tab')\n",
- "nltk.download('averaged_perceptron_tagger')\n",
- "nltk.download('wordnet')\n",
- "\n",
- "from nltk.tokenize import word_tokenize\n",
- "from nltk.corpus import stopwords\n",
- "import swifter"
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "df = pd.read_excel('Data Komentar Youtube.xlsx')\n",
- "df"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 424
- },
- "id": "KRnEnnDuTnRv",
- "outputId": "d3b04df8-521a-455e-d7ae-fdf33965fcea"
- },
- "execution_count": 5,
- "outputs": [
- {
- "output_type": "execute_result",
- "data": {
- "text/plain": [
- " Komentar Label Manual\n",
- "0 ngomong-ngomong soal horor, cek juga video fre... Neutral\n",
- "1 aku sdah nonton semua film anabelle tpi aku cm... Neutral\n",
- "2 chucky boneka imut dan menggemaskan Positive\n",
- "3 annabelle vs chucky❌️\\nmalthus demon vs chucky... Neutral\n",
- "4 pengisi suaranya kemana njir Neutral\n",
- ".. ... ...\n",
- "495 terima kasih. Positive\n",
- "496 ngik ngik bener kalo ada bumbu selingkuh Positive\n",
- "497 dari sekilas sinopsis di awal ditambah potonga... Neutral\n",
- "498 apakah mbak anty ngakak suaminya cosplay payung? Neutral\n",
- "499 ini masuk bang logikanya kalau orang jawa, mem... Positive\n",
- "\n",
- "[500 rows x 2 columns]"
- ],
- "text/html": [
- "\n",
- "
\n",
- "
\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " Komentar | \n",
- " Label Manual | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 0 | \n",
- " ngomong-ngomong soal horor, cek juga video fre... | \n",
- " Neutral | \n",
- "
\n",
- " \n",
- " | 1 | \n",
- " aku sdah nonton semua film anabelle tpi aku cm... | \n",
- " Neutral | \n",
- "
\n",
- " \n",
- " | 2 | \n",
- " chucky boneka imut dan menggemaskan | \n",
- " Positive | \n",
- "
\n",
- " \n",
- " | 3 | \n",
- " annabelle vs chucky❌️\\nmalthus demon vs chucky... | \n",
- " Neutral | \n",
- "
\n",
- " \n",
- " | 4 | \n",
- " pengisi suaranya kemana njir | \n",
- " Neutral | \n",
- "
\n",
- " \n",
- " | ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " | 495 | \n",
- " terima kasih. | \n",
- " Positive | \n",
- "
\n",
- " \n",
- " | 496 | \n",
- " ngik ngik bener kalo ada bumbu selingkuh | \n",
- " Positive | \n",
- "
\n",
- " \n",
- " | 497 | \n",
- " dari sekilas sinopsis di awal ditambah potonga... | \n",
- " Neutral | \n",
- "
\n",
- " \n",
- " | 498 | \n",
- " apakah mbak anty ngakak suaminya cosplay payung? | \n",
- " Neutral | \n",
- "
\n",
- " \n",
- " | 499 | \n",
- " ini masuk bang logikanya kalau orang jawa, mem... | \n",
- " Positive | \n",
- "
\n",
- " \n",
- "
\n",
- "
500 rows × 2 columns
\n",
- "
\n",
- "
\n",
- "
\n"
- ],
- "application/vnd.google.colaboratory.intrinsic+json": {
- "type": "dataframe",
- "variable_name": "df",
- "summary": "{\n \"name\": \"df\",\n \"rows\": 500,\n \"fields\": [\n {\n \"column\": \"Komentar\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 500,\n \"samples\": [\n \"sampai kapanpun anis dan ganjar tidak akan pernah memimpin indonesia ,karna sekarang udah tau sifat aslinya,kalo emang dia jadi presiden suatu saat nanti\\nmasyarakat pasti demo semua\",\n \"kalian milih siapa klo aku chucky\",\n \"cocok aja ganjar sma anies tidak pantas jadi president baru calon aja ko sdh menjatuhkan ,jgn menggebu2 kita menilai ko dari komen2 anda ,saya s2 pak ganjar mau debat apa sama saya.....\\nkasian pak prabowo orang sabar itu akan slalu jadi pemenang....bapak cocok dilantik jadi ketua rt aja pak lebih pantas melayani rakyat...\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Label Manual\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"Neutral\",\n \"Positive\",\n \"Negative\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
- }
- },
- "metadata": {},
- "execution_count": 5
- }
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "# Case Folding\n",
- "df['case folding']=df['Komentar'].str.lower()"
- ],
- "metadata": {
- "id": "VTvRuWuTUh2p"
- },
- "execution_count": 37,
- "outputs": []
- },
- {
- "cell_type": "code",
- "source": [
- "df = df.filter(items=['Komentar', 'case folding','Label Manual'])\n",
- "df"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 424
- },
- "id": "72qOWMMzUrwW",
- "outputId": "4431de70-56b1-44e6-aa74-162b82536dd6"
- },
- "execution_count": 38,
- "outputs": [
- {
- "output_type": "execute_result",
- "data": {
- "text/plain": [
- " Komentar \\\n",
- "0 ngomong-ngomong soal horor, cek juga video fre... \n",
- "1 aku sdah nonton semua film anabelle tpi aku cm... \n",
- "2 chucky boneka imut dan menggemaskan \n",
- "3 annabelle vs chucky❌️\\nmalthus demon vs chucky... \n",
- "4 pengisi suaranya kemana njir \n",
- ".. ... \n",
- "495 terima kasih. \n",
- "496 ngik ngik bener kalo ada bumbu selingkuh \n",
- "497 dari sekilas sinopsis di awal ditambah potonga... \n",
- "498 apakah mbak anty ngakak suaminya cosplay payung? \n",
- "499 ini masuk bang logikanya kalau orang jawa, mem... \n",
- "\n",
- " case folding Label Manual \n",
- "0 ngomong-ngomong soal horor, cek juga video fre... Neutral \n",
- "1 aku sdah nonton semua film anabelle tpi aku cm... Neutral \n",
- "2 chucky boneka imut dan menggemaskan Positive \n",
- "3 annabelle vs chucky❌️\\nmalthus demon vs chucky... Neutral \n",
- "4 pengisi suaranya kemana njir Neutral \n",
- ".. ... ... \n",
- "495 terima kasih. Positive \n",
- "496 ngik ngik bener kalo ada bumbu selingkuh Positive \n",
- "497 dari sekilas sinopsis di awal ditambah potonga... Neutral \n",
- "498 apakah mbak anty ngakak suaminya cosplay payung? Neutral \n",
- "499 ini masuk bang logikanya kalau orang jawa, mem... Positive \n",
- "\n",
- "[500 rows x 3 columns]"
- ],
- "text/html": [
- "\n",
- " \n",
- "
\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " Komentar | \n",
- " case folding | \n",
- " Label Manual | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 0 | \n",
- " ngomong-ngomong soal horor, cek juga video fre... | \n",
- " ngomong-ngomong soal horor, cek juga video fre... | \n",
- " Neutral | \n",
- "
\n",
- " \n",
- " | 1 | \n",
- " aku sdah nonton semua film anabelle tpi aku cm... | \n",
- " aku sdah nonton semua film anabelle tpi aku cm... | \n",
- " Neutral | \n",
- "
\n",
- " \n",
- " | 2 | \n",
- " chucky boneka imut dan menggemaskan | \n",
- " chucky boneka imut dan menggemaskan | \n",
- " Positive | \n",
- "
\n",
- " \n",
- " | 3 | \n",
- " annabelle vs chucky❌️\\nmalthus demon vs chucky... | \n",
- " annabelle vs chucky❌️\\nmalthus demon vs chucky... | \n",
- " Neutral | \n",
- "
\n",
- " \n",
- " | 4 | \n",
- " pengisi suaranya kemana njir | \n",
- " pengisi suaranya kemana njir | \n",
- " Neutral | \n",
- "
\n",
- " \n",
- " | ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " | 495 | \n",
- " terima kasih. | \n",
- " terima kasih. | \n",
- " Positive | \n",
- "
\n",
- " \n",
- " | 496 | \n",
- " ngik ngik bener kalo ada bumbu selingkuh | \n",
- " ngik ngik bener kalo ada bumbu selingkuh | \n",
- " Positive | \n",
- "
\n",
- " \n",
- " | 497 | \n",
- " dari sekilas sinopsis di awal ditambah potonga... | \n",
- " dari sekilas sinopsis di awal ditambah potonga... | \n",
- " Neutral | \n",
- "
\n",
- " \n",
- " | 498 | \n",
- " apakah mbak anty ngakak suaminya cosplay payung? | \n",
- " apakah mbak anty ngakak suaminya cosplay payung? | \n",
- " Neutral | \n",
- "
\n",
- " \n",
- " | 499 | \n",
- " ini masuk bang logikanya kalau orang jawa, mem... | \n",
- " ini masuk bang logikanya kalau orang jawa, mem... | \n",
- " Positive | \n",
- "
\n",
- " \n",
- "
\n",
- "
500 rows × 3 columns
\n",
- "
\n",
- "
\n",
- "
\n"
- ],
- "application/vnd.google.colaboratory.intrinsic+json": {
- "type": "dataframe",
- "variable_name": "df",
- "summary": "{\n \"name\": \"df\",\n \"rows\": 500,\n \"fields\": [\n {\n \"column\": \"Komentar\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 500,\n \"samples\": [\n \"sampai kapanpun anis dan ganjar tidak akan pernah memimpin indonesia ,karna sekarang udah tau sifat aslinya,kalo emang dia jadi presiden suatu saat nanti\\nmasyarakat pasti demo semua\",\n \"kalian milih siapa klo aku chucky\",\n \"cocok aja ganjar sma anies tidak pantas jadi president baru calon aja ko sdh menjatuhkan ,jgn menggebu2 kita menilai ko dari komen2 anda ,saya s2 pak ganjar mau debat apa sama saya.....\\nkasian pak prabowo orang sabar itu akan slalu jadi pemenang....bapak cocok dilantik jadi ketua rt aja pak lebih pantas melayani rakyat...\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"case folding\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 500,\n \"samples\": [\n \"sampai kapanpun anis dan ganjar tidak akan pernah memimpin indonesia ,karna sekarang udah tau sifat aslinya,kalo emang dia jadi presiden suatu saat nanti\\nmasyarakat pasti demo semua\",\n \"kalian milih siapa klo aku chucky\",\n \"cocok aja ganjar sma anies tidak pantas jadi president baru calon aja ko sdh menjatuhkan ,jgn menggebu2 kita menilai ko dari komen2 anda ,saya s2 pak ganjar mau debat apa sama saya.....\\nkasian pak prabowo orang sabar itu akan slalu jadi pemenang....bapak cocok dilantik jadi ketua rt aja pak lebih pantas melayani rakyat...\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Label Manual\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"Neutral\",\n \"Positive\",\n \"Negative\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
- }
- },
- "metadata": {},
- "execution_count": 38
- }
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "# cleansing\n",
- "\n",
- "def remove_character_special(text):\n",
- " text = text.replace('\\\\t', \" \").replace('\\\\n', \"\").replace('\\\\u', \" \").replace('\\\\', \"\")\n",
- " text = re.sub(r\"http\\S+|www\\S+|@\\S+\", \"\", text)\n",
- " return text\n",
- "\n",
- "def remove_number(text):\n",
- " return re.sub(r\"\\d+\", \" \", text)\n",
- "\n",
- "def remove_punctuation(text):\n",
- " return text.translate(str.maketrans(\"\", \"\", string.punctuation))\n",
- "\n",
- "def remove_whitespace_single(text):\n",
- " return text.strip()\n",
- "\n",
- "def remove_single_char(text):\n",
- " return re.sub(r\"\\b[a-zA-Z]\\b\", \" \", text)"
- ],
- "metadata": {
- "id": "YArBXKXTUzlp"
- },
- "execution_count": 39,
- "outputs": []
- },
- {
- "cell_type": "code",
- "source": [
- "df['clean_text'] = df['case folding'].apply(remove_character_special)\\\n",
- " .apply(remove_number)\\\n",
- " .apply(remove_punctuation)\\\n",
- " .apply(remove_whitespace_single)\\\n",
- " .apply(remove_single_char)\n",
- "\n",
- "# Add display and print to verify the 'clean_text' column\n",
- "display(df.head())\n",
- "print(df.columns)"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 224
- },
- "id": "8QZjT8P_U5m3",
- "outputId": "ff2ab9c6-1d46-4237-d9a0-7295f6ca27e0"
- },
- "execution_count": 43,
- "outputs": [
- {
- "output_type": "display_data",
- "data": {
- "text/plain": [
- " Komentar \\\n",
- "0 ngomong-ngomong soal horor, cek juga video fre... \n",
- "1 aku sdah nonton semua film anabelle tpi aku cm... \n",
- "2 chucky boneka imut dan menggemaskan \n",
- "3 annabelle vs chucky❌️\\nmalthus demon vs chucky... \n",
- "4 pengisi suaranya kemana njir \n",
- "\n",
- " case folding Label Manual \\\n",
- "0 ngomong-ngomong soal horor, cek juga video fre... Neutral \n",
- "1 aku sdah nonton semua film anabelle tpi aku cm... Neutral \n",
- "2 chucky boneka imut dan menggemaskan Positive \n",
- "3 annabelle vs chucky❌️\\nmalthus demon vs chucky... Neutral \n",
- "4 pengisi suaranya kemana njir Neutral \n",
- "\n",
- " clean_text \n",
- "0 ngomongngomong soal horor cek juga video fredd... \n",
- "1 aku sdah nonton semua film anabelle tpi aku cm... \n",
- "2 chucky boneka imut dan menggemaskan \n",
- "3 annabelle vs chucky❌️\\nmalthus demon vs chucky... \n",
- "4 pengisi suaranya kemana njir "
- ],
- "text/html": [
- "\n",
- " \n",
- "
\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " Komentar | \n",
- " case folding | \n",
- " Label Manual | \n",
- " clean_text | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 0 | \n",
- " ngomong-ngomong soal horor, cek juga video fre... | \n",
- " ngomong-ngomong soal horor, cek juga video fre... | \n",
- " Neutral | \n",
- " ngomongngomong soal horor cek juga video fredd... | \n",
- "
\n",
- " \n",
- " | 1 | \n",
- " aku sdah nonton semua film anabelle tpi aku cm... | \n",
- " aku sdah nonton semua film anabelle tpi aku cm... | \n",
- " Neutral | \n",
- " aku sdah nonton semua film anabelle tpi aku cm... | \n",
- "
\n",
- " \n",
- " | 2 | \n",
- " chucky boneka imut dan menggemaskan | \n",
- " chucky boneka imut dan menggemaskan | \n",
- " Positive | \n",
- " chucky boneka imut dan menggemaskan | \n",
- "
\n",
- " \n",
- " | 3 | \n",
- " annabelle vs chucky❌️\\nmalthus demon vs chucky... | \n",
- " annabelle vs chucky❌️\\nmalthus demon vs chucky... | \n",
- " Neutral | \n",
- " annabelle vs chucky❌️\\nmalthus demon vs chucky... | \n",
- "
\n",
- " \n",
- " | 4 | \n",
- " pengisi suaranya kemana njir | \n",
- " pengisi suaranya kemana njir | \n",
- " Neutral | \n",
- " pengisi suaranya kemana njir | \n",
- "
\n",
- " \n",
- "
\n",
- "
\n",
- "
\n",
- "
\n"
- ],
- "application/vnd.google.colaboratory.intrinsic+json": {
- "type": "dataframe",
- "summary": "{\n \"name\": \"print(df\",\n \"rows\": 5,\n \"fields\": [\n {\n \"column\": \"Komentar\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 5,\n \"samples\": [\n \"aku sdah nonton semua film anabelle tpi aku cma sekali nonton film cuhky \\naku merasa seram dgn kesadisan nya.\",\n \"pengisi suaranya kemana njir\",\n \"chucky boneka imut dan menggemaskan\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"case folding\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 5,\n \"samples\": [\n \"aku sdah nonton semua film anabelle tpi aku cma sekali nonton film cuhky \\naku merasa seram dgn kesadisan nya.\",\n \"pengisi suaranya kemana njir\",\n \"chucky boneka imut dan menggemaskan\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Label Manual\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"Positive\",\n \"Neutral\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"clean_text\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 5,\n \"samples\": [\n \"aku sdah nonton semua film anabelle tpi aku cma sekali nonton film cuhky \\naku merasa seram dgn kesadisan nya\",\n \"pengisi suaranya kemana njir\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
- }
- },
- "metadata": {}
- },
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Index(['Komentar', 'case folding', 'Label Manual', 'clean_text'], dtype='object')\n"
- ]
- }
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "df"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 424
- },
- "id": "lXcLss5KVB_I",
- "outputId": "c383821e-f17d-428c-f29b-c5f168bee0f9"
- },
- "execution_count": 44,
- "outputs": [
- {
- "output_type": "execute_result",
- "data": {
- "text/plain": [
- " Komentar \\\n",
- "0 ngomong-ngomong soal horor, cek juga video fre... \n",
- "1 aku sdah nonton semua film anabelle tpi aku cm... \n",
- "2 chucky boneka imut dan menggemaskan \n",
- "3 annabelle vs chucky❌️\\nmalthus demon vs chucky... \n",
- "4 pengisi suaranya kemana njir \n",
- ".. ... \n",
- "495 terima kasih. \n",
- "496 ngik ngik bener kalo ada bumbu selingkuh \n",
- "497 dari sekilas sinopsis di awal ditambah potonga... \n",
- "498 apakah mbak anty ngakak suaminya cosplay payung? \n",
- "499 ini masuk bang logikanya kalau orang jawa, mem... \n",
- "\n",
- " case folding Label Manual \\\n",
- "0 ngomong-ngomong soal horor, cek juga video fre... Neutral \n",
- "1 aku sdah nonton semua film anabelle tpi aku cm... Neutral \n",
- "2 chucky boneka imut dan menggemaskan Positive \n",
- "3 annabelle vs chucky❌️\\nmalthus demon vs chucky... Neutral \n",
- "4 pengisi suaranya kemana njir Neutral \n",
- ".. ... ... \n",
- "495 terima kasih. Positive \n",
- "496 ngik ngik bener kalo ada bumbu selingkuh Positive \n",
- "497 dari sekilas sinopsis di awal ditambah potonga... Neutral \n",
- "498 apakah mbak anty ngakak suaminya cosplay payung? Neutral \n",
- "499 ini masuk bang logikanya kalau orang jawa, mem... Positive \n",
- "\n",
- " clean_text \n",
- "0 ngomongngomong soal horor cek juga video fredd... \n",
- "1 aku sdah nonton semua film anabelle tpi aku cm... \n",
- "2 chucky boneka imut dan menggemaskan \n",
- "3 annabelle vs chucky❌️\\nmalthus demon vs chucky... \n",
- "4 pengisi suaranya kemana njir \n",
- ".. ... \n",
- "495 terima kasih \n",
- "496 ngik ngik bener kalo ada bumbu selingkuh \n",
- "497 dari sekilas sinopsis di awal ditambah potonga... \n",
- "498 apakah mbak anty ngakak suaminya cosplay payung \n",
- "499 ini masuk bang logikanya kalau orang jawa mema... \n",
- "\n",
- "[500 rows x 4 columns]"
- ],
- "text/html": [
- "\n",
- " \n",
- "
\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " Komentar | \n",
- " case folding | \n",
- " Label Manual | \n",
- " clean_text | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 0 | \n",
- " ngomong-ngomong soal horor, cek juga video fre... | \n",
- " ngomong-ngomong soal horor, cek juga video fre... | \n",
- " Neutral | \n",
- " ngomongngomong soal horor cek juga video fredd... | \n",
- "
\n",
- " \n",
- " | 1 | \n",
- " aku sdah nonton semua film anabelle tpi aku cm... | \n",
- " aku sdah nonton semua film anabelle tpi aku cm... | \n",
- " Neutral | \n",
- " aku sdah nonton semua film anabelle tpi aku cm... | \n",
- "
\n",
- " \n",
- " | 2 | \n",
- " chucky boneka imut dan menggemaskan | \n",
- " chucky boneka imut dan menggemaskan | \n",
- " Positive | \n",
- " chucky boneka imut dan menggemaskan | \n",
- "
\n",
- " \n",
- " | 3 | \n",
- " annabelle vs chucky❌️\\nmalthus demon vs chucky... | \n",
- " annabelle vs chucky❌️\\nmalthus demon vs chucky... | \n",
- " Neutral | \n",
- " annabelle vs chucky❌️\\nmalthus demon vs chucky... | \n",
- "
\n",
- " \n",
- " | 4 | \n",
- " pengisi suaranya kemana njir | \n",
- " pengisi suaranya kemana njir | \n",
- " Neutral | \n",
- " pengisi suaranya kemana njir | \n",
- "
\n",
- " \n",
- " | ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " | 495 | \n",
- " terima kasih. | \n",
- " terima kasih. | \n",
- " Positive | \n",
- " terima kasih | \n",
- "
\n",
- " \n",
- " | 496 | \n",
- " ngik ngik bener kalo ada bumbu selingkuh | \n",
- " ngik ngik bener kalo ada bumbu selingkuh | \n",
- " Positive | \n",
- " ngik ngik bener kalo ada bumbu selingkuh | \n",
- "
\n",
- " \n",
- " | 497 | \n",
- " dari sekilas sinopsis di awal ditambah potonga... | \n",
- " dari sekilas sinopsis di awal ditambah potonga... | \n",
- " Neutral | \n",
- " dari sekilas sinopsis di awal ditambah potonga... | \n",
- "
\n",
- " \n",
- " | 498 | \n",
- " apakah mbak anty ngakak suaminya cosplay payung? | \n",
- " apakah mbak anty ngakak suaminya cosplay payung? | \n",
- " Neutral | \n",
- " apakah mbak anty ngakak suaminya cosplay payung | \n",
- "
\n",
- " \n",
- " | 499 | \n",
- " ini masuk bang logikanya kalau orang jawa, mem... | \n",
- " ini masuk bang logikanya kalau orang jawa, mem... | \n",
- " Positive | \n",
- " ini masuk bang logikanya kalau orang jawa mema... | \n",
- "
\n",
- " \n",
- "
\n",
- "
500 rows × 4 columns
\n",
- "
\n",
- "
\n",
- "
\n"
- ],
- "application/vnd.google.colaboratory.intrinsic+json": {
- "type": "dataframe",
- "variable_name": "df",
- "summary": "{\n \"name\": \"df\",\n \"rows\": 500,\n \"fields\": [\n {\n \"column\": \"Komentar\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 500,\n \"samples\": [\n \"sampai kapanpun anis dan ganjar tidak akan pernah memimpin indonesia ,karna sekarang udah tau sifat aslinya,kalo emang dia jadi presiden suatu saat nanti\\nmasyarakat pasti demo semua\",\n \"kalian milih siapa klo aku chucky\",\n \"cocok aja ganjar sma anies tidak pantas jadi president baru calon aja ko sdh menjatuhkan ,jgn menggebu2 kita menilai ko dari komen2 anda ,saya s2 pak ganjar mau debat apa sama saya.....\\nkasian pak prabowo orang sabar itu akan slalu jadi pemenang....bapak cocok dilantik jadi ketua rt aja pak lebih pantas melayani rakyat...\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"case folding\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 500,\n \"samples\": [\n \"sampai kapanpun anis dan ganjar tidak akan pernah memimpin indonesia ,karna sekarang udah tau sifat aslinya,kalo emang dia jadi presiden suatu saat nanti\\nmasyarakat pasti demo semua\",\n \"kalian milih siapa klo aku chucky\",\n \"cocok aja ganjar sma anies tidak pantas jadi president baru calon aja ko sdh menjatuhkan ,jgn menggebu2 kita menilai ko dari komen2 anda ,saya s2 pak ganjar mau debat apa sama saya.....\\nkasian pak prabowo orang sabar itu akan slalu jadi pemenang....bapak cocok dilantik jadi ketua rt aja pak lebih pantas melayani rakyat...\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Label Manual\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"Neutral\",\n \"Positive\",\n \"Negative\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"clean_text\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 499,\n \"samples\": [\n \"suka banget kalau couple ini yg review\",\n \"kalian milih siapa klo aku chucky\",\n \"setuju bg no debat\\nawalnya nonton ni film ngk ada ekspektasi apaapa eh pas ditonton pecah bgt sumpah\\nfilm indo terbaik di tahun ini\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
- }
- },
- "metadata": {},
- "execution_count": 44
- }
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "# Tokenization\n",
- "\n",
- "def tokenizer(text):\n",
- " return word_tokenize(text)"
- ],
- "metadata": {
- "id": "jiMQwSJIVDzJ"
- },
- "execution_count": 45,
- "outputs": []
- },
- {
- "cell_type": "code",
- "source": [
- "df['tokenize'] = df['clean_text'].apply(word_tokenize)"
- ],
- "metadata": {
- "id": "SjYTRledVHSx"
- },
- "execution_count": 46,
- "outputs": []
- },
- {
- "cell_type": "code",
- "source": [
- "df"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 424
- },
- "id": "ipR26rcvVH8x",
- "outputId": "f5fb2542-72be-4d5c-cac5-490b25776d80"
- },
- "execution_count": 15,
- "outputs": [
- {
- "output_type": "execute_result",
- "data": {
- "text/plain": [
- " Komentar \\\n",
- "0 ngomong-ngomong soal horor, cek juga video fre... \n",
- "1 aku sdah nonton semua film anabelle tpi aku cm... \n",
- "2 chucky boneka imut dan menggemaskan \n",
- "3 annabelle vs chucky❌️\\nmalthus demon vs chucky... \n",
- "4 pengisi suaranya kemana njir \n",
- ".. ... \n",
- "495 terima kasih. \n",
- "496 ngik ngik bener kalo ada bumbu selingkuh \n",
- "497 dari sekilas sinopsis di awal ditambah potonga... \n",
- "498 apakah mbak anty ngakak suaminya cosplay payung? \n",
- "499 ini masuk bang logikanya kalau orang jawa, mem... \n",
- "\n",
- " case folding \\\n",
- "0 ngomong-ngomong soal horor, cek juga video fre... \n",
- "1 aku sdah nonton semua film anabelle tpi aku cm... \n",
- "2 chucky boneka imut dan menggemaskan \n",
- "3 annabelle vs chucky❌️\\nmalthus demon vs chucky... \n",
- "4 pengisi suaranya kemana njir \n",
- ".. ... \n",
- "495 terima kasih. \n",
- "496 ngik ngik bener kalo ada bumbu selingkuh \n",
- "497 dari sekilas sinopsis di awal ditambah potonga... \n",
- "498 apakah mbak anty ngakak suaminya cosplay payung? \n",
- "499 ini masuk bang logikanya kalau orang jawa, mem... \n",
- "\n",
- " clean_text \\\n",
- "0 ngomongngomong soal horor cek juga video fredd... \n",
- "1 aku sdah nonton semua film anabelle tpi aku cm... \n",
- "2 chucky boneka imut dan menggemaskan \n",
- "3 annabelle vs chucky❌️\\nmalthus demon vs chucky... \n",
- "4 pengisi suaranya kemana njir \n",
- ".. ... \n",
- "495 terima kasih \n",
- "496 ngik ngik bener kalo ada bumbu selingkuh \n",
- "497 dari sekilas sinopsis di awal ditambah potonga... \n",
- "498 apakah mbak anty ngakak suaminya cosplay payung \n",
- "499 ini masuk bang logikanya kalau orang jawa mema... \n",
- "\n",
- " tokenize \n",
- "0 [ngomongngomong, soal, horor, cek, juga, video... \n",
- "1 [aku, sdah, nonton, semua, film, anabelle, tpi... \n",
- "2 [chucky, boneka, imut, dan, menggemaskan] \n",
- "3 [annabelle, vs, chucky❌️, malthus, demon, vs, ... \n",
- "4 [pengisi, suaranya, kemana, njir] \n",
- ".. ... \n",
- "495 [terima, kasih] \n",
- "496 [ngik, ngik, bener, kalo, ada, bumbu, selingkuh] \n",
- "497 [dari, sekilas, sinopsis, di, awal, ditambah, ... \n",
- "498 [apakah, mbak, anty, ngakak, suaminya, cosplay... \n",
- "499 [ini, masuk, bang, logikanya, kalau, orang, ja... \n",
- "\n",
- "[500 rows x 4 columns]"
- ],
- "text/html": [
- "\n",
- " \n",
- "
\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " Komentar | \n",
- " case folding | \n",
- " clean_text | \n",
- " tokenize | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 0 | \n",
- " ngomong-ngomong soal horor, cek juga video fre... | \n",
- " ngomong-ngomong soal horor, cek juga video fre... | \n",
- " ngomongngomong soal horor cek juga video fredd... | \n",
- " [ngomongngomong, soal, horor, cek, juga, video... | \n",
- "
\n",
- " \n",
- " | 1 | \n",
- " aku sdah nonton semua film anabelle tpi aku cm... | \n",
- " aku sdah nonton semua film anabelle tpi aku cm... | \n",
- " aku sdah nonton semua film anabelle tpi aku cm... | \n",
- " [aku, sdah, nonton, semua, film, anabelle, tpi... | \n",
- "
\n",
- " \n",
- " | 2 | \n",
- " chucky boneka imut dan menggemaskan | \n",
- " chucky boneka imut dan menggemaskan | \n",
- " chucky boneka imut dan menggemaskan | \n",
- " [chucky, boneka, imut, dan, menggemaskan] | \n",
- "
\n",
- " \n",
- " | 3 | \n",
- " annabelle vs chucky❌️\\nmalthus demon vs chucky... | \n",
- " annabelle vs chucky❌️\\nmalthus demon vs chucky... | \n",
- " annabelle vs chucky❌️\\nmalthus demon vs chucky... | \n",
- " [annabelle, vs, chucky❌️, malthus, demon, vs, ... | \n",
- "
\n",
- " \n",
- " | 4 | \n",
- " pengisi suaranya kemana njir | \n",
- " pengisi suaranya kemana njir | \n",
- " pengisi suaranya kemana njir | \n",
- " [pengisi, suaranya, kemana, njir] | \n",
- "
\n",
- " \n",
- " | ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " | 495 | \n",
- " terima kasih. | \n",
- " terima kasih. | \n",
- " terima kasih | \n",
- " [terima, kasih] | \n",
- "
\n",
- " \n",
- " | 496 | \n",
- " ngik ngik bener kalo ada bumbu selingkuh | \n",
- " ngik ngik bener kalo ada bumbu selingkuh | \n",
- " ngik ngik bener kalo ada bumbu selingkuh | \n",
- " [ngik, ngik, bener, kalo, ada, bumbu, selingkuh] | \n",
- "
\n",
- " \n",
- " | 497 | \n",
- " dari sekilas sinopsis di awal ditambah potonga... | \n",
- " dari sekilas sinopsis di awal ditambah potonga... | \n",
- " dari sekilas sinopsis di awal ditambah potonga... | \n",
- " [dari, sekilas, sinopsis, di, awal, ditambah, ... | \n",
- "
\n",
- " \n",
- " | 498 | \n",
- " apakah mbak anty ngakak suaminya cosplay payung? | \n",
- " apakah mbak anty ngakak suaminya cosplay payung? | \n",
- " apakah mbak anty ngakak suaminya cosplay payung | \n",
- " [apakah, mbak, anty, ngakak, suaminya, cosplay... | \n",
- "
\n",
- " \n",
- " | 499 | \n",
- " ini masuk bang logikanya kalau orang jawa, mem... | \n",
- " ini masuk bang logikanya kalau orang jawa, mem... | \n",
- " ini masuk bang logikanya kalau orang jawa mema... | \n",
- " [ini, masuk, bang, logikanya, kalau, orang, ja... | \n",
- "
\n",
- " \n",
- "
\n",
- "
500 rows × 4 columns
\n",
- "
\n",
- "
\n",
- "
\n"
- ],
- "application/vnd.google.colaboratory.intrinsic+json": {
- "type": "dataframe",
- "variable_name": "df",
- "summary": "{\n \"name\": \"df\",\n \"rows\": 500,\n \"fields\": [\n {\n \"column\": \"Komentar\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 500,\n \"samples\": [\n \"sampai kapanpun anis dan ganjar tidak akan pernah memimpin indonesia ,karna sekarang udah tau sifat aslinya,kalo emang dia jadi presiden suatu saat nanti\\nmasyarakat pasti demo semua\",\n \"kalian milih siapa klo aku chucky\",\n \"cocok aja ganjar sma anies tidak pantas jadi president baru calon aja ko sdh menjatuhkan ,jgn menggebu2 kita menilai ko dari komen2 anda ,saya s2 pak ganjar mau debat apa sama saya.....\\nkasian pak prabowo orang sabar itu akan slalu jadi pemenang....bapak cocok dilantik jadi ketua rt aja pak lebih pantas melayani rakyat...\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"case folding\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 500,\n \"samples\": [\n \"sampai kapanpun anis dan ganjar tidak akan pernah memimpin indonesia ,karna sekarang udah tau sifat aslinya,kalo emang dia jadi presiden suatu saat nanti\\nmasyarakat pasti demo semua\",\n \"kalian milih siapa klo aku chucky\",\n \"cocok aja ganjar sma anies tidak pantas jadi president baru calon aja ko sdh menjatuhkan ,jgn menggebu2 kita menilai ko dari komen2 anda ,saya s2 pak ganjar mau debat apa sama saya.....\\nkasian pak prabowo orang sabar itu akan slalu jadi pemenang....bapak cocok dilantik jadi ketua rt aja pak lebih pantas melayani rakyat...\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"clean_text\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 499,\n \"samples\": [\n \"suka banget kalau couple ini yg review\",\n \"kalian milih siapa klo aku chucky\",\n \"setuju bg no debat\\nawalnya nonton ni film ngk ada ekspektasi apaapa eh pas ditonton pecah bgt sumpah\\nfilm indo terbaik di tahun ini\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"tokenize\",\n \"properties\": {\n \"dtype\": \"object\",\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
- }
- },
- "metadata": {},
- "execution_count": 15
- }
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "jumlah_sentimen = df['Label Manual'].value_counts()\n",
- "print(jumlah_sentimen)"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 0
- },
- "id": "cP4dfEdcWmaZ",
- "outputId": "d370ec4f-0692-42f5-e3a6-7a6a95081e77"
- },
- "execution_count": 47,
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Label Manual\n",
- "Neutral 277\n",
- "Positive 143\n",
- "Negative 80\n",
- "Name: count, dtype: int64\n"
- ]
- }
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "from sklearn.model_selection import train_test_split\n",
- "\n",
- "# Check if 'Label Manual' column exists and has at least 2 unique values for stratification\n",
- "if 'Label Manual' in df.columns and df['Label Manual'].nunique() >= 2:\n",
- " train, test = train_test_split(df, test_size=0.2, random_state=42, stratify=df['Label Manual'])\n",
- "\n",
- " print(\"Data split successfully:\")\n",
- " print(f\"Total Data: {len(df)}\")\n",
- " print(f\"Training set shape: {train.shape}\")\n",
- " print(f\"Testing set shape: {test.shape}\")\n",
- "else:\n",
- " print(\"Cannot perform stratification. 'Label Manual' column not found or does not have enough unique values.\")"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 0
- },
- "id": "C_0WV0UYY_YJ",
- "outputId": "c4a20597-b7da-40c5-aa43-d42a7499b59b"
- },
- "execution_count": 52,
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Data split successfully:\n",
- "Total Data: 500\n",
- "Training set shape: (400, 5)\n",
- "Testing set shape: (100, 5)\n"
- ]
- }
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "import os\n",
- "import random\n",
- "import numpy as np\n",
- "import torch\n",
- "\n",
- "def set_seed(seed=42):\n",
- " random.seed(seed)\n",
- " np.random.seed(seed)\n",
- " torch.manual_seed(seed)\n",
- " torch.cuda.manual_seed(seed)\n",
- " torch.cuda.manual_seed_all(seed)\n",
- " torch.backends.cudnn.deterministic = True\n",
- " torch.backends.cudnn.benchmark = False\n",
- " os.environ[\"PYTHONHASHSEED\"] = str(seed)\n",
- "\n",
- "set_seed(42)"
- ],
- "metadata": {
- "id": "26-PVExyb1Ct"
- },
- "execution_count": 53,
- "outputs": []
- },
- {
- "cell_type": "code",
- "source": [
- "from transformers import AutoTokenizer\n",
- "import torch\n",
- "from torch.utils.data import Dataset, DataLoader\n",
- "from transformers import AutoModelForSequenceClassification, get_linear_schedule_with_warmup\n",
- "from torch.optim import AdamW # Import AdamW from torch.optim\n",
- "\n",
- "\n",
- "tokenizer = AutoTokenizer.from_pretrained(\"indobenchmark/indobert-base-p1\")\n",
- "\n",
- "class EmotionDataset(Dataset):\n",
- " def __init__(self, texts, labels, tokenizer, max_len=128):\n",
- " self.texts = texts\n",
- " self.labels = labels\n",
- " self.tokenizer = tokenizer\n",
- " self.max_len = max_len\n",
- "\n",
- " def __len__(self):\n",
- " return len(self.texts)\n",
- "\n",
- " def __getitem__(self, idx):\n",
- " text = str(self.texts[idx])\n",
- " label = int(self.labels[idx])\n",
- " encoding = self.tokenizer.encode_plus(\n",
- " text,\n",
- " add_special_tokens=True,\n",
- " max_length=self.max_len,\n",
- " return_token_type_ids=False,\n",
- " padding='max_length',\n",
- " truncation=True,\n",
- " return_attention_mask=True,\n",
- " return_tensors='pt',\n",
- " )\n",
- " return {\n",
- " 'input_ids': encoding['input_ids'].flatten(),\n",
- " 'attention_mask': encoding['attention_mask'].flatten(), # Corrected key here\n",
- " 'labels': torch.tensor(label, dtype=torch.long)\n",
- " }"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 249,
- "referenced_widgets": [
- "45c4d37ef2674b8f86db005a2f85ca7e",
- "4aedb17a879943158be08d85e0bb7a79",
- "8f4c13a74b7e42deb2a31ce91017130f",
- "77a581ce565a430b9277e8a1c22072a1",
- "2ad1114ce08f48a19419116165cf703d",
- "fbdec0ee402f410099cacd733c751450",
- "bb35359150ac4d9fa56421ec6f9db903",
- "70f4eb88f8d1499cabd53bff6ccb3be7",
- "31ee77f9b2144b95897ec5c7cd23639e",
- "63ed3f1ceb7946b8897089154b562c65",
- "bdd5ce87d9e94b0da3dbf54b2fd3b68d",
- "4dd7fa21969f47ffbb13ed80245f935c",
- "9daf02ec27f7402998beb5dc506405c4",
- "a824045877744fa9a44da232e244ffbb",
- "eccb0638afe041348924d24f9b332511",
- "9b614f28b438424993dd5e16fafa8607",
- "8915abcb3108458f883c5e8c2d29677f",
- "ea8cf312ff51485d834ac53c6a11488f",
- "3f13ed74c29c42eb9d75011fbed8d434",
- "36aa266b712d4f998793bf9cb4c199f7",
- "b4fa27517ef14f5dad40294b3d25aa26",
- "d9e3146057d243478dc799698d14927e",
- "b1b328e4fc8548f7b4c319abf13a5246",
- "4ea6ab42fa564f128b427e52c71d1090",
- "8100460312e04c2aa43545d7c3b55439",
- "7be447117836452ba2bdd2fa451c678e",
- "8e4be390ef054c7ca26cea26892530c1",
- "a5b09d32593a4c72b7f9abdfba1c146c",
- "552a421562a34512aa4c9d49bfbd6228",
- "31e482e34e7f4cb4a762bb2d2bfb97fa",
- "24e0b71401d24c0aab399055f474df99",
- "e9af5933e05642b0a6a5691f43b38969",
- "ea19fa9a169b4b158a741d0997b0e45b",
- "b729d13b7daa4c8dbcf9a43f0fb764df",
- "4eb757cd367f43a7af4eaa72ca600d0b",
- "8d779641af754cbba9c6564c86268f13",
- "7aa5a568e7bb495c8cbcb35a5d9be5f0",
- "0c9cde28085945798bb73e790c8640d3",
- "4805329417194223942fa057f92470ef",
- "50d3e5d886dd494f9312883ee544b48c",
- "084d782616ae48debc0f4e68dc863ae5",
- "898c010f7b00485bb48c489a048f84b9",
- "3517c9e8ba864efe9e3ac2464983907e",
- "a6659765952040ec9e30de4fe4173860"
- ]
- },
- "id": "MA3BAAofcAfd",
- "outputId": "50733bbb-cd1b-48f2-c99a-f88583e0a6f6"
- },
- "execution_count": 54,
- "outputs": [
- {
- "output_type": "stream",
- "name": "stderr",
- "text": [
- "/usr/local/lib/python3.11/dist-packages/huggingface_hub/utils/_auth.py:94: UserWarning: \n",
- "The secret `HF_TOKEN` does not exist in your Colab secrets.\n",
- "To authenticate with the Hugging Face Hub, create a token in your settings tab (https://huggingface.co/settings/tokens), set it as secret in your Google Colab and restart your session.\n",
- "You will be able to reuse this secret in all of your notebooks.\n",
- "Please note that authentication is recommended but still optional to access public models or datasets.\n",
- " warnings.warn(\n"
- ]
- },
- {
- "output_type": "display_data",
- "data": {
- "text/plain": [
- "tokenizer_config.json: 0%| | 0.00/2.00 [00:00, ?B/s]"
- ],
- "application/vnd.jupyter.widget-view+json": {
- "version_major": 2,
- "version_minor": 0,
- "model_id": "45c4d37ef2674b8f86db005a2f85ca7e"
- }
- },
- "metadata": {}
- },
- {
- "output_type": "display_data",
- "data": {
- "text/plain": [
- "config.json: 0.00B [00:00, ?B/s]"
- ],
- "application/vnd.jupyter.widget-view+json": {
- "version_major": 2,
- "version_minor": 0,
- "model_id": "4dd7fa21969f47ffbb13ed80245f935c"
- }
- },
- "metadata": {}
- },
- {
- "output_type": "display_data",
- "data": {
- "text/plain": [
- "vocab.txt: 0.00B [00:00, ?B/s]"
- ],
- "application/vnd.jupyter.widget-view+json": {
- "version_major": 2,
- "version_minor": 0,
- "model_id": "b1b328e4fc8548f7b4c319abf13a5246"
- }
- },
- "metadata": {}
- },
- {
- "output_type": "display_data",
- "data": {
- "text/plain": [
- "special_tokens_map.json: 0%| | 0.00/112 [00:00, ?B/s]"
- ],
- "application/vnd.jupyter.widget-view+json": {
- "version_major": 2,
- "version_minor": 0,
- "model_id": "b729d13b7daa4c8dbcf9a43f0fb764df"
- }
- },
- "metadata": {}
- }
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "# Define the emotion_label_dict\n",
- "emotion_label_dict = {'Positive': 0, 'Negative': 1, 'Neutral': 2}\n",
- "\n",
- "train_dataset = EmotionDataset(train['tokenize'].tolist(), train['Label Manual'].map(emotion_label_dict).tolist(), tokenizer)\n",
- "test_dataset = EmotionDataset(test['tokenize'].tolist(), test['Label Manual'].map(emotion_label_dict).tolist(), tokenizer)\n",
- "\n",
- "train_dataloader = DataLoader(train_dataset, batch_size=16, shuffle=True)\n",
- "test_dataloader = DataLoader(test_dataset, batch_size=16)\n",
- "\n",
- "# If you need a validation set, you would create it here from the training data\n",
- "# For example, splitting the training data further:\n",
- "# from sklearn.model_selection import train_test_split\n",
- "# train_data, val_data = train_test_split(train, test_size=0.1, random_state=42, stratify=train['Label Manual'])\n",
- "# val_dataset = EmotionDataset(val_data['tokenize'].tolist(), val_data['Label Manual'].map(emotion_label_dict).tolist(), tokenizer)\n",
- "# val_dataloader = DataLoader(val_dataset, batch_size=16)"
- ],
- "metadata": {
- "id": "Wld2em9McKQ_"
- },
- "execution_count": 56,
- "outputs": []
- },
- {
- "cell_type": "code",
- "source": [
- "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
- "\n",
- "model = AutoModelForSequenceClassification.from_pretrained(\"indobenchmark/indobert-base-p1\", num_labels=6)\n",
- "model.to(device)"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 865,
- "referenced_widgets": [
- "1b7ca38c4da34b97bf8d6def7e78dab0",
- "6f0a6b2a7e9c410eb2a76c7c204a10f8",
- "ce09b420f2b24816986f535e25ccaacd",
- "fe1c91e262174bd284d15dd372ef2611",
- "d5b1add3acbc4fd4b6a43bbc19198ee1",
- "a5e9c4f851ee48948b5c8c9c9a203ddf",
- "86bf7a26f5c24c3ca4d803ee7cf67a01",
- "90538b2a39f0476085e67e6bf5ee77a7",
- "2fcee34600a44c7d94f4b016b0e05be8",
- "10f9e8eab34346a78af97d7be2d395ae",
- "3fc30cf7d58344ff9b7bb568985e43b9"
- ]
- },
- "id": "vU43t8CQceFU",
- "outputId": "550b623a-cc50-436d-b4be-8a82044f1032"
- },
- "execution_count": 57,
- "outputs": [
- {
- "output_type": "display_data",
- "data": {
- "text/plain": [
- "pytorch_model.bin: 0%| | 0.00/498M [00:00, ?B/s]"
- ],
- "application/vnd.jupyter.widget-view+json": {
- "version_major": 2,
- "version_minor": 0,
- "model_id": "1b7ca38c4da34b97bf8d6def7e78dab0"
- }
- },
- "metadata": {}
- },
- {
- "output_type": "stream",
- "name": "stderr",
- "text": [
- "Some weights of BertForSequenceClassification were not initialized from the model checkpoint at indobenchmark/indobert-base-p1 and are newly initialized: ['classifier.bias', 'classifier.weight']\n",
- "You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n"
- ]
- },
- {
- "output_type": "execute_result",
- "data": {
- "text/plain": [
- "BertForSequenceClassification(\n",
- " (bert): BertModel(\n",
- " (embeddings): BertEmbeddings(\n",
- " (word_embeddings): Embedding(50000, 768, padding_idx=0)\n",
- " (position_embeddings): Embedding(512, 768)\n",
- " (token_type_embeddings): Embedding(2, 768)\n",
- " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
- " (dropout): Dropout(p=0.1, inplace=False)\n",
- " )\n",
- " (encoder): BertEncoder(\n",
- " (layer): ModuleList(\n",
- " (0-11): 12 x BertLayer(\n",
- " (attention): BertAttention(\n",
- " (self): BertSdpaSelfAttention(\n",
- " (query): Linear(in_features=768, out_features=768, bias=True)\n",
- " (key): Linear(in_features=768, out_features=768, bias=True)\n",
- " (value): Linear(in_features=768, out_features=768, bias=True)\n",
- " (dropout): Dropout(p=0.1, inplace=False)\n",
- " )\n",
- " (output): BertSelfOutput(\n",
- " (dense): Linear(in_features=768, out_features=768, bias=True)\n",
- " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
- " (dropout): Dropout(p=0.1, inplace=False)\n",
- " )\n",
- " )\n",
- " (intermediate): BertIntermediate(\n",
- " (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
- " (intermediate_act_fn): GELUActivation()\n",
- " )\n",
- " (output): BertOutput(\n",
- " (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
- " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
- " (dropout): Dropout(p=0.1, inplace=False)\n",
- " )\n",
- " )\n",
- " )\n",
- " )\n",
- " (pooler): BertPooler(\n",
- " (dense): Linear(in_features=768, out_features=768, bias=True)\n",
- " (activation): Tanh()\n",
- " )\n",
- " )\n",
- " (dropout): Dropout(p=0.1, inplace=False)\n",
- " (classifier): Linear(in_features=768, out_features=6, bias=True)\n",
- ")"
- ]
- },
- "metadata": {},
- "execution_count": 57
- }
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "text = \"film nya bagus tapi aktingnya jelek\"\n",
- "\n",
- "max_len = 128\n",
- "\n",
- "inputs = tokenizer(text, return_tensors=\"pt\", truncation=True, padding='max_length', max_length=max_len)\n",
- "\n",
- "inputs = {key: val.to(model.device) for key, val in inputs.items()}\n",
- "\n",
- "with torch.no_grad():\n",
- " outputs = model(**inputs)\n",
- "\n",
- "logits = outputs.logits\n",
- "\n",
- "label_id = torch.argmax(logits, dim=1).item()\n",
- "\n",
- "confidence = torch.softmax(logits, dim=1)[0][label_id].item()\n",
- "\n",
- "inv_emotion_label_dict = {v: k for k, v in emotion_label_dict.items()}\n",
- "\n",
- "print(f\"Text: {text}\")\n",
- "print(f\"Label: {inv_emotion_label_dict[label_id]}\")\n",
- "print(f\"Confidence: {confidence*100:.2f}%\")"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 0
- },
- "id": "JCPiMP4NckjC",
- "outputId": "60a3eb4e-c9e9-45ef-d1df-7d95a451d016"
- },
- "execution_count": 59,
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Text: film nya bagus tapi aktingnya jelek\n",
- "Label: Negative\n",
- "Confidence: 23.29%\n"
- ]
- }
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "optimizer = AdamW(model.parameters(), lr=2e-5, weight_decay=0.01)\n",
- "num_epochs = 3\n",
- "total_steps = len(train_dataloader) * num_epochs\n",
- "\n",
- "scheduler = get_linear_schedule_with_warmup(optimizer, num_warmup_steps=0, num_training_steps=total_steps)"
- ],
- "metadata": {
- "id": "KzZMKx3KczcS"
- },
- "execution_count": 60,
- "outputs": []
- },
- {
- "cell_type": "code",
- "source": [
- "def evaluate(model, dataloader):\n",
- " model.eval()\n",
- " correct = 0\n",
- " total = 0\n",
- " loss_total = 0\n",
- " all_preds = []\n",
- " all_labels = []\n",
- "\n",
- " for batch in dataloader:\n",
- " input_ids = batch['input_ids'].to(device)\n",
- " attention_mask = batch['attention_mask'].to(device)\n",
- " labels = batch['labels'].to(device)\n",
- "\n",
- " with torch.no_grad():\n",
- " outputs = model(input_ids=input_ids, attention_mask=attention_mask, labels=labels)\n",
- " loss = outputs.loss\n",
- " logits = outputs.logits\n",
- "\n",
- " loss_total += loss.item()\n",
- " predictions = torch.argmax(logits, dim=1)\n",
- "\n",
- " all_preds.extend(predictions.cpu().numpy())\n",
- " all_labels.extend(labels.cpu().numpy())\n",
- "\n",
- " correct += (predictions == labels).sum().item()\n",
- " total += labels.size(0)\n",
- "\n",
- " avg_loss = loss_total / len(dataloader)\n",
- " accuracy = correct / total\n",
- " return avg_loss, accuracy, all_labels, all_preds"
- ],
- "metadata": {
- "id": "z4tTQxdhc5MT"
- },
- "execution_count": 61,
- "outputs": []
- },
- {
- "cell_type": "code",
- "source": [
- "train_accuracies = []\n",
- "# val_accuracies = [] # Removed as val_dataloader is not used\n",
- "\n",
- "patience = 3\n",
- "best_val_loss = float('inf')\n",
- "early_stopping_counter = 0\n",
- "\n",
- "for epoch in range(num_epochs):\n",
- " model.train()\n",
- " total_loss = 0\n",
- " correct_train = 0\n",
- " total_train = 0\n",
- "\n",
- " for batch in train_dataloader:\n",
- " input_ids = batch['input_ids'].to(device)\n",
- " attention_mask = batch['attention_mask'].to(device) # Corrected key here\n",
- " labels = batch['labels'].to(device)\n",
- "\n",
- " optimizer.zero_grad()\n",
- " outputs = model(input_ids=input_ids, attention_mask=attention_mask, labels=labels)\n",
- " loss = outputs.loss\n",
- " loss.backward()\n",
- " optimizer.step()\n",
- " scheduler.step()\n",
- "\n",
- " total_loss += loss.item()\n",
- " preds = torch.argmax(outputs.logits, dim=1)\n",
- " correct_train += (preds == labels).sum().item()\n",
- " total_train += labels.size(0)\n",
- "\n",
- " train_accuracy = correct_train / total_train\n",
- " avg_train_loss = total_loss / len(train_dataloader)\n",
- " print(f\"Epoch {epoch+1}/{num_epochs} | Train Loss: {avg_train_loss:.4f} | Train Accuracy: {train_accuracy:.4f}\")\n",
- "\n",
- " # Save train accuracy to list\n",
- " train_accuracies.append(train_accuracy)\n",
- "\n",
- " # Removed validation evaluation as val_dataloader is not defined\n",
- " # val_loss, val_accuracy, _, _ = evaluate(model, val_dataloader)\n",
- " # print(f\"Validation Loss: {val_loss:.4f} | Validation Accuracy: {val_accuracy:.4f}\")\n",
- "\n",
- " # Removed saving validation accuracy to list\n",
- " # val_accuracies.append(val_accuracy)\n",
- "\n",
- " # Removed early stopping based on validation loss\n",
- " # if val_loss < best_val_loss:\n",
- " # best_val_loss = val_loss\n",
- " # early_stopping_counter = 0\n",
- " # torch.save(model.state_dict(), 'best_model.pt')\n",
- " # else:\n",
- " # early_stopping_counter += 1\n",
- " # if early_stopping_counter >= patience:\n",
- " # print(\"Early stopping triggered.\")\n",
- " # break\n",
- "\n",
- "# Note: You can evaluate on the test set after the training loop finishes"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 0
- },
- "id": "1ogxLKjQc6Nv",
- "outputId": "d4b774e9-9059-4744-bfbb-55dfc0959b33"
- },
- "execution_count": 63,
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Epoch 1/3 | Train Loss: 0.9901 | Train Accuracy: 0.5550\n",
- "Epoch 2/3 | Train Loss: 0.9655 | Train Accuracy: 0.5625\n",
- "Epoch 3/3 | Train Loss: 0.9371 | Train Accuracy: 0.5725\n"
- ]
- }
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "# Load model terbaik\n",
- "# model.load_state_dict(torch.load('best_model.pt')) # Removed as the file was not created\n",
- "model.to(device)\n",
- "\n",
- "# Evaluasi ke test set\n",
- "test_loss, test_accuracy, test_labels, test_preds = evaluate(model, test_dataloader)\n",
- "print(f\"Test Loss: {test_loss:.4f}, Test Accuracy: {test_accuracy:.4f}\")"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 0
- },
- "id": "3m4XCQivdPdl",
- "outputId": "5010a76c-1524-4cc2-a483-f4c172db6bfb"
- },
- "execution_count": 65,
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Test Loss: 0.9687, Test Accuracy: 0.5500\n"
- ]
- }
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "plt.plot(range(1, len(train_accuracies)+1), train_accuracies, label='Train Accuracy', color='green')\n",
- "plt.plot(range(1, len(val_accuracies)+1), val_accuracies, label='Validation Accuracy', color='orange')\n",
- "plt.xlabel(\"Epoch\")\n",
- "plt.ylabel(\"Accuracy\")\n",
- "plt.title(\"Training Accuracy History\")\n",
- "plt.legend()\n",
- "plt.grid(True)\n",
- "plt.show()"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 472
- },
- "id": "GfAMc1LcdYAQ",
- "outputId": "ef16e6b7-759c-46e7-a8a5-ed9402a4377a"
- },
- "execution_count": 66,
- "outputs": [
- {
- "output_type": "display_data",
- "data": {
- "text/plain": [
- ""
- ],
- "image/png": "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\n"
- },
- "metadata": {}
- }
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "print(\"Train Accuracies:\", train_accuracies)\n"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 0
- },
- "id": "iCeHypDmdbl6",
- "outputId": "0af15234-f695-4bc8-f2c7-4655da3cd404"
- },
- "execution_count": 68,
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Train Accuracies: [0.555, 0.5625, 0.5725]\n"
- ]
- }
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "text = \"filmnya bagus\"\n",
- "\n",
- "inputs = tokenizer(text, return_tensors=\"pt\", truncation=True, padding=True)\n",
- "\n",
- "inputs = {key: val.to(model.device) for key, val in inputs.items()}\n",
- "\n",
- "with torch.no_grad():\n",
- " outputs = model(**inputs)\n",
- "\n",
- "logits = outputs.logits\n",
- "\n",
- "label_id = torch.argmax(logits, dim=1).item()\n",
- "\n",
- "confidence = torch.softmax(logits, dim=1)[0][label_id].item()\n",
- "\n",
- "inv_emotion_label_dict = {v: k for k, v in emotion_label_dict.items()}\n",
- "\n",
- "print(f\"Text: {text}\")\n",
- "print(f\"Label: {inv_emotion_label_dict[label_id]}\")\n",
- "print(f\"Confidence: {confidence*100:.2f}%\")"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 0
- },
- "id": "Jipzn94vdkVO",
- "outputId": "00e1e41b-2ecc-4890-8c76-a5d183bea7b4"
- },
- "execution_count": 78,
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Text: filmnya bagus\n",
- "Label: Neutral\n",
- "Confidence: 30.75%\n"
- ]
- }
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "test_loss, test_acc, true_labels, predictions = evaluate(model, test_dataloader)"
- ],
- "metadata": {
- "id": "nhJVQFHHdnia"
- },
- "execution_count": 70,
- "outputs": []
- },
- {
- "cell_type": "code",
- "source": [
- "from sklearn.metrics import confusion_matrix, classification_report\n",
- "import seaborn as sns\n",
- "import matplotlib.pyplot as plt\n",
- "\n",
- "label_names = ['Positive','Negative','Neutral']\n",
- "\n",
- "cm = confusion_matrix(true_labels, predictions)\n",
- "plt.figure(figsize=(8, 6))\n",
- "sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', xticklabels=label_names, yticklabels=label_names)\n",
- "plt.xlabel('Predicted')\n",
- "plt.ylabel('Actual')\n",
- "plt.title('Confusion Matrix')\n",
- "plt.show()"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 564
- },
- "id": "uB0VNhHydqf5",
- "outputId": "7425603a-6f50-4fd1-9b7d-3a97c57f6a5b"
- },
- "execution_count": 71,
- "outputs": [
- {
- "output_type": "display_data",
- "data": {
- "text/plain": [
- ""
- ],
- "image/png": "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RQIIuCg/Pz9J0uXLl3N0/G+//SY3NzeFhobatQcHBysgIEC//fabXXv58uWz9VG0aFFduHAhjxFn17lzZzVq1EhPPvmkSpYsqS5dumjRokW3TAavxxkWFpZtX7Vq1XTu3DlduXLFrv3v11K0aFFJytW1tGrVSkWKFNFnn32mmJgY3XPPPdl+y+uysrI0ceJEValSRVarVcWLF1eJEiW0b98+Xbp0KcfnLFOmTK4e+Pjvf/+rYsWKac+ePZo8ebKCgoJy/F0A+CsSQMBF+fn5qXTp0vr5559z9b2/P4RxM+7u7jdsNwwjz+e4Pj/tOm9vb23atEnffvutHn/8ce3bt0+dO3fWgw8+mO3Y23E713Kd1WpVhw4dNG/ePC1ZsuSm1T9JGjdunIYOHaomTZro448/1urVq7V27VrVqFEjx5VO6drvkxu7d+/WmTNnJEn79+/P1XcB4K9IAAEX1qZNGx0/flxbt279x2NDQkKUlZWlo0eP2rWfPn1aFy9etD3Rmx+KFi1q98TsdX+vMkqSm5ubHnjgAb333ns6ePCg3nrrLa1fv17ffffdDfu+Hufhw4ez7fvll19UvHhx+fr63t4F3ES3bt20e/duXb58+YYPzlz3xRdfqHnz5po9e7a6dOmihx56SJGRkdl+k5wm4zlx5coV9enTR9WrV1e/fv00YcIE7dixI9/6B2AuJICAC3vxxRfl6+urJ598UqdPn862//jx43r//fclXRvClJTtSd333ntPktS6det8i6ty5cq6dOmS9u3bZ2tLSEjQkiVL7I77888/s333+oLIf1+a5rpSpUqpTp06mjdvnl1C9fPPP2vNmjW263SE5s2b64033tDUqVMVHBx80+Pc3d2zVRc///xznTx50q7teqJ6o2Q5t0aMGKG4uDjNmzdP7733nipUqKBevXrd9HcEgFthIWjAhVWuXFkLFy5U586dVa1aNbs3gWzZskWff/65evfuLUmqXbu2evXqpf/973+6ePGimjZtqh9//FHz5s1T+/btb7rESF506dJFI0aM0KOPPqrBgwcrOTlZM2bM0F133WX3EMTYsWO1adMmtW7dWiEhITpz5oymT5+usmXLqnHjxjft/5133lHLli0VERGhvn376urVq5oyZYr8/f01evTofLuOv3Nzc9Orr776j8e1adNGY8eOVZ8+fdSwYUPt379fMTExqlSpkt1xlStXVkBAgGbOnKkiRYrI19dX9913nypWrJiruNavX6/p06dr1KhRtmVp5syZo2bNmum1117ThAkTctUfALAMDPAvcOTIEeOpp54yKlSoYHh6ehpFihQxGjVqZEyZMsVISUmxHZeenm6MGTPGqFixouHh4WGUK1fOGDlypN0xhnFtGZjWrVtnO8/flx+52TIwhmEYa9asMWrWrGl4enoaYWFhxscff5xtGZh169YZ7dq1M0qXLm14enoapUuXNrp27WocOXIk2zn+vlTKt99+azRq1Mjw9vY2/Pz8jLZt2xoHDx60O+b6+f6+zMycOXMMSUZsbOxNf1PDsF8G5mZutgzMCy+8YJQqVcrw9vY2GjVqZGzduvWGy7d89dVXRvXq1Y1ChQrZXWfTpk2NGjVq3PCcf+0nMTHRCAkJMerWrWukp6fbHTdkyBDDzc3N2Lp16y2vAQD+zmIYuZglDQAAgH895gACAACYDAkgAACAyZAAAgAAmAwJIAAAgMmQAAIAAJgMCSAAAIDJkAACAACYTIF8E0hKhrMjAADX9+zin50dAmDnw841nXZu77ufdVjfV3dPdVjfeUUFEAAAwGQKZAUQAAAgVyzmqomRAAIAAFgszo7gjjJXugsAAAAqgAAAAGYbAjbX1QIAAIAKIAAAAHMAAQAAUKBRAQQAAGAOIAAAAAoyKoAAAAAmmwNIAggAAMAQMAAAAAoyKoAAAAAmGwKmAggAAGAyVAABAACYAwgAAICCjAogAAAAcwABAABQkFEBBAAAMNkcQBJAAAAAhoABAABQkFEBBAAAMNkQsLmuFgAAAFQAAQAAqAACAACgQKMCCAAA4MZTwAAAACjAqAACAACYbA4gCSAAAAALQQMAAKAgowIIAABgsiFgc10tAAAAqAACAAAwBxAAAAAFGhVAAAAA5gACAACgICMBBAAAsFgct+XC6NGjZbFY7LaqVava9qekpGjgwIEKDAxU4cKF1bFjR50+fTrXl0sCCAAAYHFz3JZLNWrUUEJCgm3bvHmzbd+QIUO0fPlyff7559q4caPi4+PVoUOHXJ+DOYAAAAAupFChQgoODs7WfunSJc2ePVsLFy5UixYtJElz5sxRtWrVtG3bNjVo0CDH56ACCAAA4MAh4NTUVCUmJtptqampNw3l6NGjKl26tCpVqqTu3bsrLi5OkrRz506lp6crMjLSdmzVqlVVvnx5bd26NVeXSwIIAADgQNHR0fL397fboqOjb3jsfffdp7lz52rVqlWaMWOGYmNjdf/99+vy5cs6deqUPD09FRAQYPedkiVL6tSpU7mKiSFgAAAABy4DM3LkSA0dOtSuzWq13vDYli1b2v5cq1Yt3XfffQoJCdGiRYvk7e2dbzFRAQQAAHAgq9UqPz8/u+1mCeDfBQQE6K677tKxY8cUHBystLQ0Xbx40e6Y06dP33DO4K2QAAIAALjIMjB/l5SUpOPHj6tUqVKqV6+ePDw8tG7dOtv+w4cPKy4uThEREbnqlyFgAAAAFzFs2DC1bdtWISEhio+P16hRo+Tu7q6uXbvK399fffv21dChQ1WsWDH5+flp0KBBioiIyNUTwBIJIAAAgMu8Cu6PP/5Q165ddf78eZUoUUKNGzfWtm3bVKJECUnSxIkT5ebmpo4dOyo1NVVRUVGaPn16rs9jMQzDyO/gnS0lw9kRAIDre3bxz84OAbDzYeeaTju3d9vcJ1E5dXX5Mw7rO69cI90FAADAHcMQMAAAwG0+rPFvQwUQAADAZKgAAgAAuMhDIHeKua4WAAAArpMAfv/99+rRo4ciIiJ08uRJSdKCBQu0efNmJ0cGAAAKPBddCNpRXCIBXLx4saKiouTt7a3du3crNTVVknTp0iWNGzfOydEBAAAULC6RAL755puaOXOmPvjgA3l4eNjaGzVqpF27djkxMgAAYAoWN8dtLsglHgI5fPiwmjRpkq3d398/2wuPAQAA8p2LDtU6ikukpcHBwTp27Fi29s2bN6tSpUpOiAgAAKDgcokE8KmnntJzzz2n7du3y2KxKD4+XjExMRo2bJgGDBjg7PAAAEABZ7FYHLa5IpcYAn7ppZeUlZWlBx54QMnJyWrSpImsVquGDRumQYMGOTs8AACAAsUlEkCLxaJXXnlFw4cP17Fjx5SUlKTq1aurcOHCzg4NAACYgKtW6hzFJYaAP/74YyUnJ8vT01PVq1fXvffeS/IHAADgIC6RAA4ZMkRBQUHq1q2bvv76a2VmZjo7JAAAYCYWB24uyCUSwISEBH366aeyWCzq1KmTSpUqpYEDB2rLli3ODg0AAKDAcYkEsFChQmrTpo1iYmJ05swZTZw4USdOnFDz5s1VuXJlZ4cHAAAKOJ4CdjIfHx9FRUXpwoUL+u2333To0CFnhwQAAAo4V03UHMUlKoCSlJycrJiYGLVq1UplypTRpEmT9Oijj+rAgQPODg0AAKBAcYkKYJcuXbRixQr5+PioU6dOeu211xQREeHssAAAgEmYrQLoEgmgu7u7Fi1apKioKLm7uzs7HAAAgALNJRLAmJgYZ4cAAABMjArgHTJ58mT169dPXl5emjx58i2PHTx48B2KCtd9ujBG8+bM1rlzZ3VXWFW99PJrCq9Vy9lhweS4L+EsLasVV92yfipVxKq0TEPHzyXri32ndPpymu2YEr6e+k+dYFUp7qNC7hb9nJCkT3bFKzGVtW3heiyGYRjOOHHFihX1008/KTAwUBUrVrzpcRaLRb/++muu+k7JuN3ozG3VN1/r1ZEv6tVRYxQeXlsxC+ZpzZpV+mrFKgUGBjo7PJgU92X+e3bxz84O4V/j+SYh+jHukk78eVVubhZ1CC+pMv5WvfbNUaVlGvJ0t2j0w1X0x8Wr+urnM5Kk9jVLKsC7kMZ9+6uc8h/af6EPO9d02rn9uy1wWN+XFj7usL7zymlPAcfGxtr+0o6Njb3pltvkD7dvwbw56vBYJ7V/tKMqh4bq1VFj5OXlpaVfLnZ2aDAx7ks406RNv2nLiYuKT0zVHxdT9NGPfyjQ11MhxbwlSaHFfVXcx0MfbT+pk5dSdfJSqj768Q+FFPNW1ZK+To4eyM4lloEZO3askpOTs7VfvXpVY8eOdUJE5pWelqZDBw+oQURDW5ubm5saNGiofXt3OzEymBn3JVyNj8e1BxavpF0b3vVwt8iQlJH1f7W+9ExDhiFVKU4C+G9gtoWgXSIBHDNmjJKSkrK1Jycna8yYMU6IyLwuXLygzMzMbENqgYGBOnfunJOigtlxX8KVWCR1vjtYR89eUfylVEnS8fPJSs3IUsfaJeXpbpGnu0X/qRMsdzeL/L1d4nlLwI5L3JWGYdwwQ967d6+KFSt2y++mpqYqNTXVvj93q6xWa77GCACAJHWvV0pl/L309rr/m6KUlJqpmVt+V4/6pfVAlUAZhvRj3CX99udVOWmqPXLJVSt1juLUBLBo0aK28uhdd91l9+NnZmYqKSlJ/fv3v2Uf0dHR2aqEr7w2Sq++PtoRIRd4RQOKyt3dXefPn7drP3/+vIoXL+6kqGB23JdwFd3qllKt0n6asP5XXbhq/8ThwdNJennlERX2dFemYehqepbefSRMZ5PSnRQtcoME8A6aNGmSDMPQE088oTFjxsjf39+2z9PTUxUqVPjHN4KMHDlSQ4cOtWsz3Kn+5ZWHp6eqVa+h7du2qsUDkZKkrKwsbd++VV269nBydDAr7ku4gm51S+nuMn5657tYnbty86Qu6f/PC6wa5KsiXoW0Jz7xToUI5JhTE8BevXpJurYkTMOGDeXh4ZHrPqzW7MO9LANzex7v1UevvTxCNWrUVM3wWvp4wTxdvXpV7R/t4OzQYGLcl3Cm7vVK6b7yAZq6+TelZGTJz+vafz6vpmcqPfPaEG+jigFKSEzV5ZRMVS7urS53l9K3R87brRUI10UF8A5JTEyUn5+fJOnuu+/W1atXdfXq1Rsee/043BkPt2ylC3/+qelTJ+vcubMKq1pN02d9qECG2uBE3Jdwpuah1x5AerFFJbv2j7b/oS0nLkqSgotY1SG8pHw93XUuOV0rD57V2iPn/94V4BKcthC0u7u7EhISFBQUJDc3txtm3tcfDsnMzN0q6lQAAeCfsRA0XI0zF4IO7PWJw/o+P6+rw/rOK6dVANevX297wve7775zVhgAAACm47QEsGnTpjf8MwAAwJ1mtjmALrEQ9KpVq7R582bb52nTpqlOnTrq1q2bLly44MTIAAAACh6XSACHDx+uxMRrj8nv379fQ4cOVatWrRQbG5ttiRcAAID8ZrZXwbnEm0BiY2NVvXp1SdLixYvVtm1bjRs3Trt27VKrVq2cHB0AACjoXDVRcxSXqAB6enoqOTlZkvTtt9/qoYcekiQVK1bMVhkEAABA/nCJCmDjxo01dOhQNWrUSD/++KM+++wzSdKRI0dUtmxZJ0cHAAAKPHMVAF2jAjh16lQVKlRIX3zxhWbMmKEyZcpIkr755hs9/PDDTo4OAACgYHGJCmD58uW1YsWKbO0TJ050QjQAAMBszDYH0CUSQEnKzMzU0qVLdejQIUlSjRo19Mgjj8jd3d3JkQEAABQsLpEAHjt2TK1atdLJkycVFhYmSYqOjla5cuW0cuVKVa5c2ckRAgCAgsxsFUCXmAM4ePBgVa5cWb///rt27dqlXbt2KS4uThUrVtTgwYOdHR4AAECB4hIVwI0bN2rbtm22dwNLUmBgoMaPH69GjRo5MTIAAGAGZqsAukQCaLVadfny5WztSUlJ8vT0dEJEAADATMyWALrEEHCbNm3Ur18/bd++XYZhyDAMbdu2Tf3799cjjzzi7PAAAAAKFJdIACdPnqzQ0FA1bNhQXl5e8vLyUqNGjRQaGqr333/f2eEBAICCzuLAzQU5dQg4KytL77zzjpYtW6a0tDS1b99evXr1ksViUbVq1RQaGurM8AAAAAokpyaAb731lkaPHq3IyEh5e3vr66+/lr+/vz766CNnhgUAAEyGOYB30Pz58zV9+nStXr1aS5cu1fLlyxUTE6OsrCxnhgUAAFCgOTUBjIuLU6tWrWyfIyMjZbFYFB8f78SoAACA2VgsFodtrsipCWBGRoa8vLzs2jw8PJSenu6kiAAAAAo+p84BNAxDvXv3ltVqtbWlpKSof//+8vX1tbV9+eWXzggPAACYhKtW6hzFqQlgr169srX16NHDCZEAAABTM1f+59wEcM6cOc48PQAAgCm5xKvgAAAAnMlsQ8Au8SYQAAAA3DlUAAEAgOlRAQQAAECBRgUQAACYHhVAAAAAFGhUAAEAgOmZrQJIAggAAGCu/I8hYAAAALOhAggAAEzPbEPAVAABAABMhgogAAAwPSqAAAAAKNCoAAIAANMzWQGQCiAAAIDZUAEEAACmxxxAAAAAk7FYHLfdjvHjx8tisej555+3taWkpGjgwIEKDAxU4cKF1bFjR50+fTpX/ZIAAgAAuKAdO3Zo1qxZqlWrll37kCFDtHz5cn3++efauHGj4uPj1aFDh1z1TQIIAABMz2KxOGzLi6SkJHXv3l0ffPCBihYtamu/dOmSZs+erffee08tWrRQvXr1NGfOHG3ZskXbtm3Lcf8kgAAAAA6UmpqqxMREuy01NfWW3xk4cKBat26tyMhIu/adO3cqPT3drr1q1aoqX768tm7dmuOYSAABAIDpOXIOYHR0tPz9/e226Ojom8by6aefateuXTc85tSpU/L09FRAQIBde8mSJXXq1KkcXy9PAQMAADjQyJEjNXToULs2q9V6w2N///13Pffcc1q7dq28vLwcFhMJIAAAMD03N8ctA2O1Wm+a8P3dzp07debMGdWtW9fWlpmZqU2bNmnq1KlavXq10tLSdPHiRbsq4OnTpxUcHJzjmEgAAQAAXMQDDzyg/fv327X16dNHVatW1YgRI1SuXDl5eHho3bp16tixoyTp8OHDiouLU0RERI7PQwIIAABMz1XWgS5SpIhq1qxp1+br66vAwEBbe9++fTV06FAVK1ZMfn5+GjRokCIiItSgQYMcn4cEEAAAmN6/6U0gEydOlJubmzp27KjU1FRFRUVp+vTpueqDBBAAAMCFbdiwwe6zl5eXpk2bpmnTpuW5TxJAAABgev+iAmC+YB1AAAAAk6ECCAAATO/fNAcwP1ABBAAAMBkqgAAAwPSoAAIAAKBAowIIAABMz2QFQBJAAAAAhoABAABQoFEBBAAApmeyAiAVQAAAALOhAggAAEyPOYAAAAAo0KgAAgAA0zNZAZAKIAAAgNlQAQQAAKbHHEAAAAAUaFQAAQCA6ZmsAEgCCAAAwBAwAAAACjQqgAAAwPRMVgAkAQQAs+pUq6SzQwDgJCSAAADA9JgDCAAAgAKNCiAAADA9kxUAqQACAACYDRVAAABgemabA0gCCAAATM9k+R9DwAAAAGZDBRAAAJie2YaAqQACAACYDBVAAABgelQAAQAAUKBRAQQAAKZnsgIgFUAAAACzoQIIAABMz2xzAEkAAQCA6Zks/2MIGAAAwGyoAAIAANMz2xAwFUAAAACToQIIAABMz2QFQCqAAAAAZkMFEAAAmJ6byUqAVAABAABMhgogAAAwPZMVAEkAAQAAWAYGAAAABRoVQAAAYHpu5ioAUgEEAAAwGyqAAADA9JgDCAAAgAKNCiAAADA9kxUAqQACAACYDRVAAABgehaZqwRIAggAAEyPZWAAAABQoFEBBAAApscyMAAAACjQqAACAADTM1kBkAogAACA2VABBAAApudmshIgFUAAAACToQIIAABMz2QFQBJAAAAAloEBAABAgUYFEAAAmJ7JCoBUAAEAAMyGCiAAADA9loEBAABAgUYFEAAAmJ656n9UAAEAAEzHZRLA77//Xj169FBERIROnjwpSVqwYIE2b97s5MgAAEBBZ7FYHLa5IpdIABcvXqyoqCh5e3tr9+7dSk1NlSRdunRJ48aNc3J0AACgoHOzOG5zRS6RAL755puaOXOmPvjgA3l4eNjaGzVqpF27djkxMgAAgDtnxowZqlWrlvz8/OTn56eIiAh98803tv0pKSkaOHCgAgMDVbhwYXXs2FGnT5/O9XlcIgE8fPiwmjRpkq3d399fFy9evPMBAQAAU3GVIeCyZctq/Pjx2rlzp3766Se1aNFC7dq104EDByRJQ4YM0fLly/X5559r48aNio+PV4cOHXJ9vS7xFHBwcLCOHTumChUq2LVv3rxZlSpVck5QAAAAd1jbtm3tPr/11luaMWOGtm3bprJly2r27NlauHChWrRoIUmaM2eOqlWrpm3btqlBgwY5Po9LVACfeuopPffcc9q+fbssFovi4+MVExOjYcOGacCAAc4ODwAAFHAWi+O21NRUJSYm2m3Xn3e4lczMTH366ae6cuWKIiIitHPnTqWnpysyMtJ2TNWqVVW+fHlt3bo1V9frEgngSy+9pG7duumBBx5QUlKSmjRpoieffFJPP/20Bg0a5OzwAAAA8iw6Olr+/v52W3R09E2P379/vwoXLiyr1ar+/ftryZIlql69uk6dOiVPT08FBATYHV+yZEmdOnUqVzG5xBCwxWLRK6+8ouHDh+vYsWNKSkpS9erVVbhwYWeHBgAATMCRy7WMHDlSQ4cOtWuzWq03PT4sLEx79uzRpUuX9MUXX6hXr17auHFjvsaUowRw2bJlOe7wkUceyXUQH3/8sTp06CAfHx9Vr149198HAABwVVar9ZYJ3995enoqNDRUklSvXj3t2LFD77//vjp37qy0tDRdvHjRrgp4+vRpBQcH5yqmHCWA7du3z1FnFotFmZmZuQpAuvZES//+/fXII4+oR48eioqKkru7e677AQAAyAtXXa9PkrKyspSamqp69erJw8ND69atU8eOHSVdW0klLi5OERERueozRwlgVlZW7qPNhYSEBK1atUqffPKJOnXqJB8fH/3nP/9R9+7d1bBhQ4eeGwAAwFXe2DFy5Ei1bNlS5cuX1+XLl7Vw4UJt2LBBq1evlr+/v/r27auhQ4eqWLFi8vPz06BBgxQREZGrJ4AlF5kDWKhQIbVp00Zt2rRRcnKylixZooULF6p58+YqW7asjh8/7uwQAQAAHO7MmTPq2bOnEhIS5O/vr1q1amn16tV68MEHJUkTJ06Um5ubOnbsqNTUVEVFRWn69Om5Pk+eEsArV65o48aNiouLU1pamt2+wYMH56VLGx8fH0VFRenChQv67bffdOjQodvqDwAA4J+4Rv1Pmj179i33e3l5adq0aZo2bdptnSfXCeDu3bvVqlUrJScn68qVKypWrJjOnTsnHx8fBQUF5TkBvF75i4mJ0bp161SuXDl17dpVX3zxRZ76AwAAwI3lOgEcMmSI2rZtq5kzZ8rf31/btm2Th4eHevTooeeeey5PQXTp0kUrVqyQj4+POnXqpNdeey3XkxkBAADyys1F5gDeKblOAPfs2aNZs2bJzc1N7u7uSk1NVaVKlTRhwgT16tUrT++jc3d316JFi3j6FwAA4A7IdQLo4eEhN7drLxAJCgpSXFycqlWrJn9/f/3+++95CiImJiZP3wMAAMgPJisA5j4BvPvuu7Vjxw5VqVJFTZs21euvv65z585pwYIFqlmzZo77mTx5svr16ycvLy9Nnjz5lsfe7oMlAAAA+D8WwzCM3Hzhp59+0uXLl9W8eXPbo8pbtmxRlSpV9NFHH6l27do56qdixYr66aefFBgYqIoVK948QItFv/76a25CVEpGrg4HAFPadPSss0MA7DxUrYTTzt3v8wMO6/t//6nhsL7zKtcVwPr169v+HBQUpFWrVuXpxLGxsTf8MwAAABzLzdkBSNLYsWOVnJycrf3q1asaO3asEyICAABmYrE4bnNFuR4Crlix4i1fl5Lb4Vrp2lPACQkJCgoKsms/f/68goKCcv1+YYaAb9+nC2M0b85snTt3VneFVdVLL7+m8Fq1nB0WTI77Mn8xBJxzxw7s0bolCxV3/LASL5zXky+NU+0GTeyOOfX7CX01f4aOHdijrMxMBZeroL4j3lSxEsFOivrfx5lDwAMWH3RY3zM6VndY33mV6yHg559/3u5zenq6du/erVWrVmn48OF5CsIwjBsmlXv37lWxYsXy1CfybtU3X+u/E6L16qgxCg+vrZgF8zTg6b76asUqBQYGOjs8mBT3JZwpNeWqylQMVYPI1vpw/CvZ9p9NOKmJLz+jiAfaqFXXvvLy9tWp32Pl4WF1QrTAP8t1AnizxZ6nTZumn376KVd9FS1aVBaLRRaLRXfddZddEpiZmamkpCT1798/tyHiNi2YN0cdHuuk9o92lCS9OmqMNm3aoKVfLlbfp/o5OTqYFfclnKlGvQjVqHfzFxSsiPmfatSNUPvez9jaSpQqcydCQz5x1aFaR8nTu4BvpGXLlho5cqTmzJmT4+9MmjRJhmHoiSee0JgxY+Tv72/b5+npqQoVKvBGkDssPS1Nhw4eUN+nnra1ubm5qUGDhtq3d7cTI4OZcV/ClWVlZenAT1sU+Wh3TRs9VH/EHlFgUCk92PHxbMPEgKvItwTwiy++yPVwba9evSRdm1fYsGFDeXh45Fc4yKMLFy8oMzMz25BaYGCgYmNzP78TyA/cl3BlSZcuKDXlqtZ++bFad39K7XoO0MHd2zT77Vc06I3JqlLzbmeHiBy41fMNBVGeFoL+649kGIZOnTqls2fPavr06XkKomnTprY/p6SkKC0tzW6/n5/fTb+bmpqq1NRUuzbD3SqrlXkXAADHu/4sZfi9jdXikc6SpLKVqij2l5+1efVSEkC4pFwngO3atbNLAN3c3FSiRAk1a9ZMVatWzVMQycnJevHFF7Vo0SKdP38+2/5bPQUcHR2tMWPG2LW98toovfr66DzFYnZFA4rK3d0927+H8+fPq3jx4k6KCmbHfQlX5lvEX27u7gouV8GuPbhsiI4f2u+coJBrLrEu3h2U6wRw9OjR+R7E8OHD9d1332nGjBl6/PHHNW3aNJ08eVKzZs3S+PHjb/ndkSNHaujQoXZthjvVv7zy8PRUteo1tH3bVrV4IFLStfkt27dvVZeuPZwcHcyK+xKurJCHh0JCq+nMyd/t2s/E/65iJUo6KSrg1nKdAOb3mn2StHz5cs2fP1/NmjVTnz59dP/99ys0NFQhISGKiYlR9+7db/pdqzX7cC/rAN6ex3v10Wsvj1CNGjVVM7yWPl4wT1evXlX7Rzs4OzSYGPclnCn1arLOJpy0fT5/JkF//HpUPkWKqFiJYD3waFfN+e8oVa5RW3eF19XBXdv1844tGvzmrd91D9fBHMB/cLN1o1NTU+Xp6ZmnIP78809VqlRJ0rX5fn/++ackqXHjxhowYECe+kTePdyylS78+aemT52sc+fOKqxqNU2f9aECGWqDE3Ffwpnijv2iya8Ntn1e8tEUSdK9zVvq8edeUe0GTdW5/zCtXfyxFn84SUGly6vviDdVuXptZ4WMXHIzV/6X8wRw8uRr/xdjsVj04YcfqnDhwrZ9mZmZ2rRpU57nAFaqVEmxsbEqX768qlatqkWLFunee+/V8uXLFRAQkKc+cXu6du+hrt0ZWoNr4b6Es1QJr6spSzff8piIyDaKiGxzhyICbk+OE8CJEydKulYBnDlzptzd3W37rq/ZN3PmzDwF0adPH+3du1dNmzbVSy+9pLZt22rq1KlKT0/Xe++9l6c+AQAAcooK4E3ExsZKkpo3b64vv/xSRYsWzbcghgwZYvtzZGSkfvnlF+3cuVOhoaGqxXs+AQAA8lWu5wB+9913jojDTkhIiEJCQhx+HgAAAImHQP5Rx44dde+992rEiBF27RMmTNCOHTv0+eef5zqI6/ML/85iscjLy0uhoaFq0qSJ3bAzAAAA8ibXCeCmTZtuuBZgy5Yt9e677+YpiIkTJ+rs2bNKTk62DS1fuHBBPj4+Kly4sM6cOaNKlSrpu+++U7ly5fJ0DgAAgJsx2xzAXC98nZSUdMPlXjw8PJSYmJinIMaNG6d77rlHR48e1fnz53X+/HkdOXJE9913n95//33FxcUpODjYbq4gAAAA8ibXCWB4eLg+++yzbO2ffvqpqlevnqcgXn31VU2cOFGVK1e2tYWGhuq///2vRo4cqbJly2rChAn64Ycf8tQ/AADArVgsjttcUa6HgF977TV16NBBx48fV4sWLSRJ69at08KFC/XFF1/kKYiEhARlZGR/fUdGRoZOnTolSSpdurQuX76cp/4BAABuxc1VMzUHyXUFsG3btlq6dKmOHTumZ555Ri+88IJOnjyp9evXKzQ0NE9BNG/eXE8//bR2795ta9u9e7cGDBhgSzL379+vihUr5ql/AAAA/J9cJ4CS1Lp1a/3www+6cuWKfv31V3Xq1EnDhg1T7dp5e+XN7NmzVaxYMdWrV8/2bt/69eurWLFimj17tiSpcOHCeX7IBAAA4FbcHLi5olwPAV+3adMmzZ49W4sXL1bp0qXVoUMHTZs2LU99BQcHa+3atfrll1905MgRSVJYWJjCwsJsxzRv3jyvoQIAAOAvcpUAnjp1SnPnztXs2bOVmJioTp06KTU1VUuXLs3zAyB/ValSJVksFlWuXFmFCuU5NwUAAMgVk00BzHllsm3btgoLC9O+ffs0adIkxcfHa8qUKfkSRHJysvr27SsfHx/VqFFDcXFxkqRBgwZp/Pjx+XIOAAAAXJPjBPCbb75R3759NWbMGLVu3Tpf38oxcuRI7d27Vxs2bJCXl5etPTIy8oZLzgAAAOQnN4vFYZsrynECuHnzZl2+fFn16tXTfffdp6lTp+rcuXP5EsTSpUs1depUNW7c2O5dfDVq1NDx48fz5RwAAAC4JscJYIMGDfTBBx8oISFBTz/9tD799FOVLl1aWVlZWrt27W2t0Xf27FkFBQVla79y5YrpXs4MAADuPLMtBJ3rp5N9fX31xBNPaPPmzdq/f79eeOEFjR8/XkFBQXrkkUfyFET9+vW1cuVK2+frSd+HH36oiIiIPPUJAACQU24Wx22u6LYetQ0LC9OECRMUHR2t5cuX66OPPspTP+PGjVPLli118OBBZWRk6P3339fBgwe1ZcsWbdy48XZCBAAAwN/ky/qE7u7uat++vZYtW5an7zdu3Fh79uxRRkaGwsPDtWbNGgUFBWnr1q2qV69efoQIAABwU2Z7CMRlFturXLmyPvjgA2eHAQAAUOA5NQF0c3P7x4c8LBaLMjIy7lBEAADAjFy0UOcwTk0AlyxZctN9W7du1eTJk5WVlXUHIwIAACj4nJoAtmvXLlvb4cOH9dJLL2n58uXq3r27xo4d64TIAACAmbjq07qOki8PgeSH+Ph4PfXUUwoPD1dGRob27NmjefPmKSQkxNmhAQAAFChOTwAvXbqkESNGKDQ0VAcOHNC6deu0fPly1axZ09mhAQAAk7A48B9X5NQh4AkTJujtt99WcHCwPvnkkxsOCQMAADia2YaALYZhGM46uZubm7y9vRUZGSl3d/ebHvfll1/mqt8UHhoGgH+06ehZZ4cA2HmoWgmnnXv8+uMO6/ulFpUd1ndeObUC2LNnT971CwAAnM5sFUCnJoBz58515ukBAABMyWXeBAIAAOAsZhuRdPpTwAAAALizqAACAADTM9scQCqAAAAAJkMFEAAAmJ7JpgCSAAIAALiZLANkCBgAAMBkqAACAADT4yEQAAAAFGhUAAEAgOmZbAogFUAAAACzoQIIAABMz03mKgFSAQQAADAZKoAAAMD0zDYHkAQQAACYHsvAAAAAoECjAggAAEyPV8EBAACgQKMCCAAATM9kBUAqgAAAAGZDBRAAAJgecwABAABQoFEBBAAApmeyAiAJIAAAgNmGRM12vQAAAKZHAggAAEzPYrE4bMuN6Oho3XPPPSpSpIiCgoLUvn17HT582O6YlJQUDRw4UIGBgSpcuLA6duyo06dP5+o8JIAAAAAuYuPGjRo4cKC2bdumtWvXKj09XQ899JCuXLliO2bIkCFavny5Pv/8c23cuFHx8fHq0KFDrs5jMQzDyO/gnS0lw9kRAIDr23T0rLNDAOw8VK2E0849/6ffHdZ3z/rl8vzds2fPKigoSBs3blSTJk106dIllShRQgsXLtRjjz0mSfrll19UrVo1bd26VQ0aNMhRv1QAAQAAHCg1NVWJiYl2W2pqao6+e+nSJUlSsWLFJEk7d+5Uenq6IiMjbcdUrVpV5cuX19atW3McEwkgAAAwPTeLxWFbdHS0/P397bbo6Oh/jCkrK0vPP/+8GjVqpJo1a0qSTp06JU9PTwUEBNgdW7JkSZ06dSrH18syMAAAAA40cuRIDR061K7NarX+4/cGDhyon3/+WZs3b873mEgAAQCA6TlyHWir1ZqjhO+vnn32Wa1YsUKbNm1S2bJlbe3BwcFKS0vTxYsX7aqAp0+fVnBwcI77ZwgYAACYnsXiuC03DMPQs88+qyVLlmj9+vWqWLGi3f569erJw8ND69ats7UdPnxYcXFxioiIyPF5qAACAAC4iIEDB2rhwoX66quvVKRIEdu8Pn9/f3l7e8vf3199+/bV0KFDVaxYMfn5+WnQoEGKiIjI8RPAEgkgAABArhdsdpQZM2ZIkpo1a2bXPmfOHPXu3VuSNHHiRLm5ualjx45KTU1VVFSUpk+fnqvzsA4gAJgU6wDC1ThzHcBPdp90WN9d7y7jsL7zigogAAAwPbM9FGG26wUAADA9KoAAAMD0XGUO4J1CBRAAAMBkqAACAADTM1f9jwogAACA6VABBAAApme2OYAkgABgUu26jXF2CICdq7unOu3cZhsSNdv1AgAAmB4VQAAAYHpmGwKmAggAAGAyVAABAIDpmav+RwUQAADAdKgAAgAA0zPZFEAqgAAAAGZDBRAAAJiem8lmAZIAAgAA02MIGAAAAAUaFUAAAGB6FpMNAVMBBAAAMBkqgAAAwPSYAwgAAIACjQogAAAwPbMtA0MFEAAAwGSoAAIAANMz2xxAEkAAAGB6ZksAGQIGAAAwGSqAAADA9FgIGgAAAAUaFUAAAGB6buYqAFIBBAAAMBsqgAAAwPSYAwgAAIACjQogAAAwPbOtA0gCCAAATI8hYAAAABRoVAABAIDpsQwMAAAACjQqgAAAwPSYAwgAAIACjQogAAAwPbMtA0MFEAAAwGSoAAIAANMzWQGQBBAAAMDNZGPADAEDAACYDBVAAABgeuaq/1EBBAAAMB0qgAAAACYrAVIBBAAAMBkqgAAAwPR4FRwAAAAKNCqAAADA9Ey2DCAJIAAAgMnyP4aAAQAAzIYKIAAAgMlKgFQAAQAATIYKIAAAMD2WgQEAAECBRgUQAACYntmWgaECCAAAYDJUAAEAgOmZrABIAggAAGC2DNBpCWBiYmKOj/Xz83NgJAAAAObitAQwICBAln+YcWkYhiwWizIzM+9QVAAAwIzMtgyM0xLA7777zlmnBgAAMDWnJYBNmzZ11qkBAADsmG0ZGJd6CCQ5OVlxcXFKS0uza69Vq5aTIgIAACh4XCIBPHv2rPr06aNvvvnmhvuZAwgAABzJZAVA11gI+vnnn9fFixe1fft2eXt7a9WqVZo3b56qVKmiZcuWOTs8AACAAsUlKoDr16/XV199pfr168vNzU0hISF68MEH5efnp+joaLVu3drZIQIAgILMZCVAl6gAXrlyRUFBQZKkokWL6uzZs5Kk8PBw7dq1y5mhAQAAE7A48B9X5BIJYFhYmA4fPixJql27tmbNmqWTJ09q5syZKlWqlJOjAwAAKFhcYgj4ueeeU0JCgiRp1KhRevjhhxUTEyNPT0/NnTvXucEBAIACz2zLwLhEBbBHjx7q3bu3JKlevXr67bfftGPHDv3+++/q3Lmzc4MDAAC4gzZt2qS2bduqdOnSslgsWrp0qd1+wzD0+uuvq1SpUvL29lZkZKSOHj2aq3M4PQFMT09X5cqVdejQIVubj4+P6tatq+LFizsxMgAAYBYWB265deXKFdWuXVvTpk274f4JEyZo8uTJmjlzprZv3y5fX19FRUUpJSUlx+dw+hCwh4dHrgIGAAAoyFq2bKmWLVvecJ9hGJo0aZJeffVVtWvXTpI0f/58lSxZUkuXLlWXLl1ydA6nVwAlaeDAgXr77beVkZHh7FAAAIAZObAEmJqaqsTERLstNTU1T2HGxsbq1KlTioyMtLX5+/vrvvvu09atW3Pcj9MrgJK0Y8cOrVu3TmvWrFF4eLh8fX3t9n/55ZdOigwAAOD2REdHa8yYMXZto0aN0ujRo3Pd16lTpyRJJUuWtGsvWbKkbV9OuEQCGBAQoI4dOzo7DPzFpwtjNG/ObJ07d1Z3hVXVSy+/pnDeyQwn476Es7zydCu92r+VXdvh2FOq0+FNSdLqD55Tk/pV7PZ/8MVmDX7r0zsWI26PI9frGzlypIYOHWrXZrVaHXa+nHCJBHDOnDnODgF/seqbr/XfCdF6ddQYhYfXVsyCeRrwdF99tWKVAgMDnR0eTIr7Es524Fi8WvefYvuckZllt3/24h/0xowVts/JKel3LDa4NqvVmm8JX3BwsCTp9OnTdmslnz59WnXq1MlxPy4xB7BFixa6ePFitvbExES1aNHizgdkcgvmzVGHxzqp/aMdVTk0VK+OGiMvLy8t/XKxs0ODiXFfwtkyMrN0+vxl23b+4hW7/VdT0uz2X77CA47/JhaL47b8VLFiRQUHB2vdunW2tsTERG3fvl0RERE57sclKoAbNmxQWlpatvaUlBR9//33TojIvNLT0nTo4AH1feppW5ubm5saNGiofXt3OzEymBn3JVxBaPkS+nXNW0pJTdf2fbF6fcoy/X7qgm1/51b11aXVPTp9PlFfb/pZ0R98o6tUAf81XGkd6KSkJB07dsz2OTY2Vnv27FGxYsVUvnx5Pf/883rzzTdVpUoVVaxYUa+99ppKly6t9u3b5/gcTk0A9+3bZ/vzwYMH7SYvZmZmatWqVSpTpowzQjOtCxcvKDMzM9uQWmBgoGJjf3VSVDA77ks4246fT6jf6x/ryG+nFVzcX6883VLffjRE9R57S0nJqfrsm58Ul/CnEs5eUniV0nrzuXa6KyRIXYZ96OzQ8S/0008/qXnz5rbP1+cP9urVS3PnztWLL76oK1euqF+/frp48aIaN26sVatWycvLK8fncGoCWKdOHVksFlkslhsO9Xp7e2vKlCk3+Ob/SU1NzfYoteGef2PtAACs+eGg7c8/H43Xjv0ndPjrser4UF3NW7pVH335g23/gWPxSjiXqFX/G6yKZYsr9o9zzggZueVCJcBmzZrJMIyb7rdYLBo7dqzGjh2b53M4dQ5gbGysjh8/LsMw9OOPPyo2Nta2nTx5UomJiXriiSdu2Ud0dLT8/f3ttnfejr5DV1DwFA0oKnd3d50/f96u/fz587yZBU7DfQlXcynpqo7FnVHlciVuuH/H/hOSdNP9gLM5tQIYEhIiScrKyvqHI2/uRo9WG+5U//LKw9NT1arX0PZtW9XigWuLTGZlZWn79q3q0rWHk6ODWXFfwtX4enuqYtniOrXyxxvurx1WVpJ06tylOxkWboMjl4FxRS7xEMj8+fNvub9nz5433XejR6tTeKHIbXm8Vx+99vII1ahRUzXDa+njBfN09epVtX+0g7NDg4lxX8KZooc8qpWb9isu/k+VDvLXq/1bKzMrS4tW7VTFssXVuWV9rd58QOcvXlH4XWU04YUO+n7nUf18NN7ZoQM35BIJ4HPPPWf3OT09XcnJyfL09JSPj88tE0Dkv4dbttKFP//U9KmTde7cWYVVrabpsz5UIENtcCLuSzhTmZIBmh/dR8X8fXTuQpK27PlVTXu+q3MXkuTlWUgt7gvTs92ay9fbU3+cvqCl6/Zo/IernR02ciG/l2txdRbjVrMMnejo0aMaMGCAhg8frqioqFx9lwogAPyzovc86+wQADtXd0912rkPn0p2WN9hwT4O6zuvXGIh6BupUqWKxo8fn606CAAAkN8sDtxckUsMAd9MoUKFFB/P/AkAAOBgrpqpOYhLJIDLli2z+2wYhhISEjR16lQ1atTISVEBAAAUTC6RAP791SUWi0UlSpRQixYt9O677zonKAAAYBosA+MEt7MOIAAAAHLHpR4CSUtL0+HDh5WRwWO8AADgzrFYHLe5IpdIAJOTk/XEE0/Ix8dHNWrUUFxcnCRp0KBBGj9+vJOjAwAAKFhcIgEcOXKk9u3bpw0bNsjLy8vWHhkZqc8++8yJkQEAADNgGRgnWLp0qT777DM1aNBAlr/USmvUqKHjx487MTIAAICCxyUSwLNnzyooKChb+5UrV+wSQgAAAIcwWbrhEkPA9evX18qVK22fryd9H374oSIiIpwVFgAAMAmLA/9xRS5RARw3bpxatmypgwcPKiMjQ++//74OHjyoLVu2aOPGjc4ODwAAoEBxiQpg48aNtWfPHmVkZCg8PFxr1qxRUFCQtm7dqnr16jk7PAAAUMCZbRkYl6gASlLlypX1wQcfODsMAACAAs+pCaCbm9s/PuRhsVhYGBoAADiUixbqHMapCeCSJUtuum/r1q2aPHkyr4kDAADIZ05NANu1a5et7fDhw3rppZe0fPlyde/eXWPHjnVCZAAAwFRMVgJ0iYdAJCk+Pl5PPfWUwsPDlZGRoT179mjevHkKCQlxdmgAAAAFitMTwEuXLmnEiBEKDQ3VgQMHtG7dOi1fvlw1a9Z0dmgAAMAkWAfwDpowYYLefvttBQcH65NPPrnhkDAAAICjuepyLY5iMQzDcNbJ3dzc5O3trcjISLm7u9/0uC+//DJX/abw0DAA/KOi9zzr7BAAO1d3T3XaueP+THVY3+WLWR3Wd145tQLYs2dP3vULAACczmzZiFMTwLlz5zrz9AAAAKbkMm8CAQAAcBazDUg6/SlgAAAA3FlUAAEAAEw2C5AKIAAAgMlQAQQAAKZntjmAJIAAAMD0TJb/MQQMAABgNlQAAQCA6ZltCJgKIAAAgMlQAQQAAKZnMdksQCqAAAAAJkMFEAAAwFwFQCqAAAAAZkMFEAAAmJ7JCoAkgAAAACwDAwAAgAKNCiAAADA9loEBAABAgUYFEAAAwFwFQCqAAAAAZkMFEAAAmJ7JCoBUAAEAAMyGCiAAADA9s60DSAIIAABMj2VgAAAAUKBRAQQAAKZntiFgKoAAAAAmQwIIAABgMiSAAAAAJsMcQAAAYHrMAQQAAECBRgUQAACYntnWASQBBAAApscQMAAAAAo0KoAAAMD0TFYApAIIAABgNlQAAQAATFYCpAIIAABgMlQAAQCA6ZltGRgqgAAAACZDBRAAAJge6wACAACgQKMCCAAATM9kBUASQAAAALNlgAwBAwAAmAwJIAAAMD2LA//Ji2nTpqlChQry8vLSfffdpx9//DFfr5cEEAAAwIV89tlnGjp0qEaNGqVdu3apdu3aioqK0pkzZ/LtHCSAAADA9CwWx2259d577+mpp55Snz59VL16dc2cOVM+Pj766KOP8u16SQABAAAcKDU1VYmJiXZbamrqDY9NS0vTzp07FRkZaWtzc3NTZGSktm7dmm8xFcingL0K5FXdeampqYqOjtbIkSNltVqdHQ7APZnPru6e6uwQCgTuy4LBkbnD6DejNWbMGLu2UaNGafTo0dmOPXfunDIzM1WyZEm79pIlS+qXX37Jt5gshmEY+dYbCpTExET5+/vr0qVL8vPzc3Y4APckXBL3Jf5Jampqtoqf1Wq94f8wxMfHq0yZMtqyZYsiIiJs7S+++KI2btyo7du350tM1MoAAAAc6GbJ3o0UL15c7u7uOn36tF376dOnFRwcnG8xMQcQAADARXh6eqpevXpat26drS0rK0vr1q2zqwjeLiqAAAAALmTo0KHq1auX6tevr3vvvVeTJk3SlStX1KdPn3w7BwkgbspqtWrUqFFMaobL4J6EK+K+RH7r3Lmzzp49q9dff12nTp1SnTp1tGrVqmwPhtwOHgIBAAAwGeYAAgAAmAwJIAAAgMmQAAIAAJgMCSCy2bBhgywWiy5evHjL4ypUqKBJkybdkZiAvOAexb9ZTv8uBvKCBPBfrHfv3rJYLLJYLPL09FRoaKjGjh2rjIyM2+q3YcOGSkhIkL+/vyRp7ty5CggIyHbcjh071K9fv9s6F/69rt9/48ePt2tfunSpLHl5+/lt4B7Frdype/XEiROyWCzas2dPvvUJOAoJ4L/cww8/rISEBB09elQvvPCCRo8erXfeeee2+vT09FRwcPA//sVYokQJ+fj43Na58O/m5eWlt99+WxcuXHB2KDfEPYrrXOleTUtLc3YIAAngv53ValVwcLBCQkI0YMAARUZGatmyZbpw4YJ69uypokWLysfHRy1bttTRo0dt3/vtt9/Utm1bFS1aVL6+vqpRo4a+/vprSfbDDhs2bFCfPn106dIlW7Xx+sur/zq81q1bN3Xu3NkutvT0dBUvXlzz58+XdG0l8+joaFWsWFHe3t6qXbu2vvjiC8f/SHCYyMhIBQcHKzo6+qbHbN68Wffff7+8vb1Vrlw5DR48WFeuXLHtT0hIUOvWreXt7a2KFStq4cKF2YZu33vvPYWHh8vX11flypXTM888o6SkJEniHkWO5Me9arFYtHTpUrvvBAQEaO7cuZKkihUrSpLuvvtuWSwWNWvWTNK1CmT79u311ltvqXTp0goLC5MkLViwQPXr11eRIkUUHBysbt266cyZM/l30cAtkAAWMN7e3kpLS1Pv3r31008/admyZdq6dasMw1CrVq2Unp4uSRo4cKBSU1O1adMm7d+/X2+//bYKFy6crb+GDRtq0qRJ8vPzU0JCghISEjRs2LBsx3Xv3l3Lly+3/UdZklavXq3k5GQ9+uijkqTo6GjNnz9fM2fO1IEDBzRkyBD16NFDGzdudNCvAUdzd3fXuHHjNGXKFP3xxx/Z9h8/flwPP/ywOnbsqH379umzzz7T5s2b9eyzz9qO6dmzp+Lj47VhwwYtXrxY//vf/7L9R9DNzU2TJ0/WgQMHNG/ePK1fv14vvviiJO5R5Ex+3Kv/5Mcff5Qkffvtt0pISNCXX35p27du3TodPnxYa9eu1YoVKyRd+x+QN954Q3v37tXSpUt14sQJ9e7d+/YuFMgpA/9avXr1Mtq1a2cYhmFkZWUZa9euNaxWq9G+fXtDkvHDDz/Yjj137pzh7e1tLFq0yDAMwwgPDzdGjx59w36/++47Q5Jx4cIFwzAMY86cOYa/v3+240JCQoyJEycahmEY6enpRvHixY358+fb9nft2tXo3LmzYRiGkZKSYvj4+Bhbtmyx66Nv375G165d83L5cLK/3n8NGjQwnnjiCcMwDGPJkiXG9b9a+vbta/Tr18/ue99//73h5uZmXL161Th06JAhydixY4dt/9GjRw1JtnvrRj7//HMjMDDQ9pl7FLeSH/eqYRiGJGPJkiV2x/j7+xtz5swxDMMwYmNjDUnG7t27s52/ZMmSRmpq6i3j3LFjhyHJuHz5smEY2f8uBvITr4L7l1uxYoUKFy6s9PR0ZWVlqVu3burQoYNWrFih++67z3ZcYGCgwsLCdOjQIUnS4MGDNWDAAK1Zs0aRkZHq2LGjatWqlec4ChUqpE6dOikmJkaPP/64rly5oq+++kqffvqpJOnYsWNKTk7Wgw8+aPe9tLQ03X333Xk+L1zD22+/rRYtWmSrvO3du1f79u1TTEyMrc0wDGVlZSk2NlZHjhxRoUKFVLduXdv+0NBQFS1a1K6fb7/9VtHR0frll1+UmJiojIwMpaSkKDk5Ocdz/LhHIeX9Xq1WrdptnTc8PFyenp52bTt37tTo0aO1d+9eXbhwQVlZWZKkuLg4Va9e/bbOB/wTEsB/uebNm2vGjBny9PRU6dKlVahQIS1btuwfv/fkk08qKipKK1eu1Jo1axQdHa13331XgwYNynMs3bt3V9OmTXXmzBmtXbtW3t7eevjhhyXJNuy2cuVKlSlTxu57vD/z369JkyaKiorSyJEj7YawkpKS9PTTT2vw4MHZvlO+fHkdOXLkH/s+ceKE2rRpowEDBuitt95SsWLFtHnzZvXt21dpaWm5esiDexR5vVela3MAjb+9PfX6tJp/4uvra/f5ypUrioqKUlRUlGJiYlSiRAnFxcUpKiqKh0RwR5AA/sv5+voqNDTUrq1atWrKyMjQ9u3b1bBhQ0nS+fPndfjwYbv/qyxXrpz69++v/v37a+TIkfrggw9umAB6enoqMzPzH2Np2LChypUrp88++0zffPON/vOf/8jDw0OSVL16dVmtVsXFxalp06a3c8lwUePHj1edOnVsE9wlqW7dujp48GC2e/S6sLAwZWRkaPfu3apXr56ka5W4vz6puXPnTmVlZendd9+Vm9u1acuLFi2y64d7FLmRl3tVuvZUeUJCgu3z0aNHlZycbPt8vcKXk3vxl19+0fnz5zV+/HiVK1dOkvTTTz/l+lqAvCIBLICqVKmidu3a6amnntKsWbNUpEgRvfTSSypTpozatWsnSXr++efVsmVL3XXXXbpw4YK+++67mw5xVKhQQUlJSVq3bp1q164tHx+fm1ZdunXrppkzZ+rIkSP67rvvbO1FihTRsGHDNGTIEGVlZalx48a6dOmSfvjhB/n5+alXr175/0PgjgoPD1f37t01efJkW9uIESPUoEEDPfvss3ryySfl6+urgwcPau3atZo6daqqVq2qyMhI9evXTzNmzJCHh4deeOEFeXt725YhCg0NVXp6uqZMmaK2bdvqhx9+0MyZM+3OzT2K3MjLvSpJLVq00NSpUxUREaHMzEyNGDHC9j8QkhQUFCRvb2+tWrVKZcuWlZeXl2091b8rX768PD09NWXKFPXv318///yz3njjDcdeOPBXTp6DiNvw14nNf/fnn38ajz/+uOHv7294e3sbUVFRxpEjR2z7n332WaNy5cqG1Wo1SpQoYTz++OPGuXPnDMO48cTj/v37G4GBgYYkY9SoUYZh2E+wv+7gwYOGJCMkJMTIysqy25eVlWVMmjTJCAsLMzw8PIwSJUoYUVFRxsaNG2/7t8Cdd6P7LzY21vD09DT++lfLjz/+aDz44ING4cKFDV9fX6NWrVrGW2+9ZdsfHx9vtGzZ0rBarUZISIixcOFCIygoyJg5c6btmPfee88oVaqU7V6eP38+9yhyLL/u1ZMnTxoPPfSQ4evra1SpUsX4+uuv7R4CMQzD+OCDD4xy5coZbm5uRtOmTW96fsMwjIULFxoVKlQwrFarERERYSxbtszuIRIeAoEjWQzjbxMaAMCJ/vjjD5UrV07ffvutHnjgAWeHAwAFEgkgAKdav369kpKSFB4eroSEBL344os6efKkjhw5Yje8BgDIP8wBBOBU6enpevnll/Xrr7+qSJEiatiwoWJiYkj+AMCBqAACAACYDK+CAwAAMBkSQAAAAJMhAQQAADAZEkAAAACTIQEEAAAwGRJAAC6rd+/eat++ve1zs2bN9Pzzz9/xODZs2CCLxaKLFy/e8XMDgCOQAALItd69e8tischiscjT01OhoaEaO3asMjIyHHreL7/8MsfvSyVpA4CbYyFoAHny8MMPa86cOUpNTdXXX3+tgQMHysPDQyNHjrQ7Li0tTZ6envlyzmLFiuVLPwBgdlQAAeSJ1WpVcHCwQkJCNGDAAEVGRmrZsmW2Ydu33npLpUuXVlhYmCTp999/V6dOnRQQEKBixYqpXbt2OnHihK2/zMxMDR06VAEBAQoMDNSLL76ov69T//ch4NTUVI0YMULlypWT1WpVaGioZs+erRMnTqh58+aSpKJFi8pisah3796SpKysLEVHR6tixYry9vZW7dq19cUXX9id5+uvv9Zdd90lb29vNW/e3C5OACgISAAB5Atvb2+lpaVJktatW6fDhw9r7dq1WrFihdLT0xUVFaUiRYro+++/1w8//KDChQvr4Ycftn3n3Xff1dy5c/XRRx9p8+bN+vPPP7VkyZJbnrNnz5765JNPNHnyZB06dEizZs1S4cKFVa5cOS1evFiSdPjwYSUkJOj999+XJEVHR2v+/PmaOXOmDhw4oCFDhqhHjx7auHGjpGuJaocOHdS2bVvt2bNHTz75pF566SVH/WwA4BQMAQO4LYZhaN26dVq9erUGDRqks2fPytfXVx9++KFt6Pfjjz9WVlaWPvzwQ1ksFknSnDlzFBAQoA0bNuihhx7SpEmTNHLkSHXo0EGSNHPmTK1evfqm5z1y5IgWLVqktWvXKjIyUpJUqVIl2/7rw8VBQUEKCAiQdK1iOG7cOH377beKiIiwfWfz5s2aNWuWmjZtqhkzZqhy5cp69913JUlhYWHav3+/3n777Xz81QDAuUgAAeTJihUrVLhwYaWnpysrK0vdunXT6NGjNXDgQIWHh9vN+9u7d6+OHTumIkWK2PWRkpKi48eP69KlS0pISNB9991n21eoUCHVr18/2zDwdXv27JG7u7uaNm2a45iPHTum5ORkPfjgg3btaWlpuvvuuyVJhw4dsotDki1ZBICCggQQQJ40b95cM2bMkKenp0qXLq1Chf7vrxNfX1+7Y5OSklSvXj3FxMRk66dEiRJ5Or+3t3euv5OUlCRJWrlypcqUKWO3z2q15ikOAPg3IgEEkCe+vr4KDQ3N0bF169bVZ599pqCgIPn5+d3wmFKlSmn79u1q0qSJJCkjI0M7d+5U3bp1b3h8eHi4srKytHHjRtsQ8F9dr0BmZmba2qpXry6r1aq4uLibVg6rVaumZcuW2bVt27btny8SAP5FeAgEgMN1795dxYsXV7t27fT9998rNjZWGzZs0ODBg/XHH39Ikp577jmNHz9eS5cu1S+//KJnnnnmlmv4VahQQb169dITTzyhpUuX2vpctGiRJCkkJEQWi0UrVqzQ2bNnlZSUpCJFimjYsGEaMmSI5s2bp+PHj2vXrl2aMmWK5s2bJ0nq37+/jh49quHDh+vw4cNauHCh5s6d6+ifCADuKBJAAA7n4+OjTZs2qXz58urQoYOqVaumvn37KiUlxVYRfOGFF/T444+rV69eioiIUJEiRfToo4/est8ZM2boscce0zPPPKOqVavqqaee0pUrVyRJZcqU0ZgxY/TSSy+pZMmSevbZZyVJb7zxhl577TVFR0erWrVqevjhh7Vy5UpVrFhRklS+fHktXrxYS5cuVe3atTVz5kyNGzfOgb8OANx5FuNmM6wBAABQIFEBBAAAMBkSQAAAAJMhAQQAADAZEkAAAACTIQEEAAAwGRJAAAAAkyEBBAAAMBkSQAAAAJMhAQQAADAZEkAAAACTIQEEAAAwmf8HMZSSTCe0A1gAAAAASUVORK5CYII=\n"
- },
- "metadata": {}
- }
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "print(classification_report(true_labels, predictions, target_names=label_names))"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 0
- },
- "id": "KKVgJM9ud5cS",
- "outputId": "7aeca629-0e24-4eb6-c391-d51e345a1a61"
- },
- "execution_count": 72,
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- " precision recall f1-score support\n",
- "\n",
- " Positive 0.00 0.00 0.00 29\n",
- " Negative 0.00 0.00 0.00 16\n",
- " Neutral 0.55 1.00 0.71 55\n",
- "\n",
- " accuracy 0.55 100\n",
- " macro avg 0.18 0.33 0.24 100\n",
- "weighted avg 0.30 0.55 0.39 100\n",
- "\n"
- ]
- },
- {
- "output_type": "stream",
- "name": "stderr",
- "text": [
- "/usr/local/lib/python3.11/dist-packages/sklearn/metrics/_classification.py:1565: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
- " _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n",
- "/usr/local/lib/python3.11/dist-packages/sklearn/metrics/_classification.py:1565: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
- " _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n",
- "/usr/local/lib/python3.11/dist-packages/sklearn/metrics/_classification.py:1565: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
- " _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n"
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file