{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/drbasselALKHATIB/ArabicSentimentsAnalysis/blob/master/asa.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 25,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "BuhftO7uuOan",
        "outputId": "11accc96-857b-4ee4-b841-e1ec8be52808"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Requirement already satisfied: nltk in /usr/local/lib/python3.7/dist-packages (3.2.5)\n",
            "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from nltk) (1.15.0)\n",
            "[nltk_data] Downloading package punkt to /root/nltk_data...\n",
            "[nltk_data]   Package punkt is already up-to-date!\n",
            "[nltk_data] Downloading package stopwords to /root/nltk_data...\n",
            "[nltk_data]   Package stopwords is already up-to-date!\n",
            "Requirement already satisfied: pandas in /usr/local/lib/python3.7/dist-packages (1.1.5)\n",
            "Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas) (2.8.2)\n",
            "Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.7/dist-packages (from pandas) (2018.9)\n",
            "Requirement already satisfied: numpy>=1.15.4 in /usr/local/lib/python3.7/dist-packages (from pandas) (1.19.5)\n",
            "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.7.3->pandas) (1.15.0)\n",
            "Requirement already satisfied: snowballstemmer in /usr/local/lib/python3.7/dist-packages (2.2.0)\n",
            "Requirement already satisfied: wordcloud in /usr/local/lib/python3.7/dist-packages (1.5.0)\n",
            "Requirement already satisfied: numpy>=1.6.1 in /usr/local/lib/python3.7/dist-packages (from wordcloud) (1.19.5)\n",
            "Requirement already satisfied: pillow in /usr/local/lib/python3.7/dist-packages (from wordcloud) (7.1.2)\n",
            "Requirement already satisfied: python-bidi in /usr/local/lib/python3.7/dist-packages (0.4.2)\n",
            "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from python-bidi) (1.15.0)\n",
            "Requirement already satisfied: arabic-reshaper in /usr/local/lib/python3.7/dist-packages (2.1.3)\n",
            "Requirement already satisfied: setuptools in /usr/local/lib/python3.7/dist-packages (from arabic-reshaper) (57.4.0)\n",
            "Requirement already satisfied: future in /usr/local/lib/python3.7/dist-packages (from arabic-reshaper) (0.16.0)\n",
            "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (3.2.2)\n",
            "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib) (2.8.2)\n",
            "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib) (3.0.6)\n",
            "Requirement already satisfied: numpy>=1.11 in /usr/local/lib/python3.7/dist-packages (from matplotlib) (1.19.5)\n",
            "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib) (1.3.2)\n",
            "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib) (0.11.0)\n",
            "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.1->matplotlib) (1.15.0)\n",
            "Requirement already satisfied: keras==2.6.0 in /usr/local/lib/python3.7/dist-packages (2.6.0)\n",
            "Requirement already satisfied: Keras-Preprocessing==1.1.2 in /usr/local/lib/python3.7/dist-packages (1.1.2)\n",
            "Requirement already satisfied: six>=1.9.0 in /usr/local/lib/python3.7/dist-packages (from Keras-Preprocessing==1.1.2) (1.15.0)\n",
            "Requirement already satisfied: numpy>=1.9.1 in /usr/local/lib/python3.7/dist-packages (from Keras-Preprocessing==1.1.2) (1.19.5)\n",
            "Requirement already satisfied: sklearn in /usr/local/lib/python3.7/dist-packages (0.0)\n",
            "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.7/dist-packages (from sklearn) (1.0.1)\n",
            "Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.7/dist-packages (from scikit-learn->sklearn) (3.0.0)\n",
            "Requirement already satisfied: joblib>=0.11 in /usr/local/lib/python3.7/dist-packages (from scikit-learn->sklearn) (1.1.0)\n",
            "Requirement already satisfied: numpy>=1.14.6 in /usr/local/lib/python3.7/dist-packages (from scikit-learn->sklearn) (1.19.5)\n",
            "Requirement already satisfied: scipy>=1.1.0 in /usr/local/lib/python3.7/dist-packages (from scikit-learn->sklearn) (1.4.1)\n",
            "Requirement already satisfied: seaborn in /usr/local/lib/python3.7/dist-packages (0.11.2)\n",
            "Requirement already satisfied: scipy>=1.0 in /usr/local/lib/python3.7/dist-packages (from seaborn) (1.4.1)\n",
            "Requirement already satisfied: matplotlib>=2.2 in /usr/local/lib/python3.7/dist-packages (from seaborn) (3.2.2)\n",
            "Requirement already satisfied: numpy>=1.15 in /usr/local/lib/python3.7/dist-packages (from seaborn) (1.19.5)\n",
            "Requirement already satisfied: pandas>=0.23 in /usr/local/lib/python3.7/dist-packages (from seaborn) (1.1.5)\n",
            "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=2.2->seaborn) (3.0.6)\n",
            "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=2.2->seaborn) (2.8.2)\n",
            "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=2.2->seaborn) (0.11.0)\n",
            "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=2.2->seaborn) (1.3.2)\n",
            "Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.7/dist-packages (from pandas>=0.23->seaborn) (2018.9)\n",
            "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.1->matplotlib>=2.2->seaborn) (1.15.0)\n",
            "Requirement already satisfied: tensorflow==2.6.0 in /usr/local/lib/python3.7/dist-packages (2.6.0)\n",
            "Requirement already satisfied: tensorboard~=2.6 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (2.7.0)\n",
            "Requirement already satisfied: protobuf>=3.9.2 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (3.17.3)\n",
            "Requirement already satisfied: typing-extensions~=3.7.4 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (3.7.4.3)\n",
            "Requirement already satisfied: keras-preprocessing~=1.1.2 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (1.1.2)\n",
            "Requirement already satisfied: numpy~=1.19.2 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (1.19.5)\n",
            "Requirement already satisfied: keras~=2.6 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (2.6.0)\n",
            "Requirement already satisfied: astunparse~=1.6.3 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (1.6.3)\n",
            "Requirement already satisfied: grpcio<2.0,>=1.37.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (1.42.0)\n",
            "Requirement already satisfied: six~=1.15.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (1.15.0)\n",
            "Requirement already satisfied: absl-py~=0.10 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (0.12.0)\n",
            "Requirement already satisfied: tensorflow-estimator~=2.6 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (2.7.0)\n",
            "Requirement already satisfied: gast==0.4.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (0.4.0)\n",
            "Requirement already satisfied: wrapt~=1.12.1 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (1.12.1)\n",
            "Requirement already satisfied: google-pasta~=0.2 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (0.2.0)\n",
            "Requirement already satisfied: wheel~=0.35 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (0.37.0)\n",
            "Requirement already satisfied: flatbuffers~=1.12.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (1.12)\n",
            "Requirement already satisfied: opt-einsum~=3.3.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (3.3.0)\n",
            "Requirement already satisfied: clang~=5.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (5.0)\n",
            "Requirement already satisfied: h5py~=3.1.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (3.1.0)\n",
            "Requirement already satisfied: termcolor~=1.1.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow==2.6.0) (1.1.0)\n",
            "Requirement already satisfied: cached-property in /usr/local/lib/python3.7/dist-packages (from h5py~=3.1.0->tensorflow==2.6.0) (1.5.2)\n",
            "Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.7/dist-packages (from tensorboard~=2.6->tensorflow==2.6.0) (3.3.6)\n",
            "Requirement already satisfied: google-auth<3,>=1.6.3 in /usr/local/lib/python3.7/dist-packages (from tensorboard~=2.6->tensorflow==2.6.0) (1.35.0)\n",
            "Requirement already satisfied: requests<3,>=2.21.0 in /usr/local/lib/python3.7/dist-packages (from tensorboard~=2.6->tensorflow==2.6.0) (2.23.0)\n",
            "Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in /usr/local/lib/python3.7/dist-packages (from tensorboard~=2.6->tensorflow==2.6.0) (1.8.0)\n",
            "Requirement already satisfied: werkzeug>=0.11.15 in /usr/local/lib/python3.7/dist-packages (from tensorboard~=2.6->tensorflow==2.6.0) (1.0.1)\n",
            "Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /usr/local/lib/python3.7/dist-packages (from tensorboard~=2.6->tensorflow==2.6.0) (0.4.6)\n",
            "Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in /usr/local/lib/python3.7/dist-packages (from tensorboard~=2.6->tensorflow==2.6.0) (0.6.1)\n",
            "Requirement already satisfied: setuptools>=41.0.0 in /usr/local/lib/python3.7/dist-packages (from tensorboard~=2.6->tensorflow==2.6.0) (57.4.0)\n",
            "Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.7/dist-packages (from google-auth<3,>=1.6.3->tensorboard~=2.6->tensorflow==2.6.0) (0.2.8)\n",
            "Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.7/dist-packages (from google-auth<3,>=1.6.3->tensorboard~=2.6->tensorflow==2.6.0) (4.8)\n",
            "Requirement already satisfied: cachetools<5.0,>=2.0.0 in /usr/local/lib/python3.7/dist-packages (from google-auth<3,>=1.6.3->tensorboard~=2.6->tensorflow==2.6.0) (4.2.4)\n",
            "Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.7/dist-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard~=2.6->tensorflow==2.6.0) (1.3.0)\n",
            "Requirement already satisfied: importlib-metadata>=4.4 in /usr/local/lib/python3.7/dist-packages (from markdown>=2.6.8->tensorboard~=2.6->tensorflow==2.6.0) (4.8.2)\n",
            "Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata>=4.4->markdown>=2.6.8->tensorboard~=2.6->tensorflow==2.6.0) (3.6.0)\n",
            "Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /usr/local/lib/python3.7/dist-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard~=2.6->tensorflow==2.6.0) (0.4.8)\n",
            "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests<3,>=2.21.0->tensorboard~=2.6->tensorflow==2.6.0) (3.0.4)\n",
            "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests<3,>=2.21.0->tensorboard~=2.6->tensorflow==2.6.0) (1.24.3)\n",
            "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests<3,>=2.21.0->tensorboard~=2.6->tensorflow==2.6.0) (2.10)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests<3,>=2.21.0->tensorboard~=2.6->tensorflow==2.6.0) (2021.10.8)\n",
            "Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.7/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard~=2.6->tensorflow==2.6.0) (3.1.1)\n"
          ]
        }
      ],
      "source": [
        "!pip install nltk\n",
        "import nltk \n",
        "nltk.download('punkt')\n",
        "nltk.download('stopwords')\n",
        "!pip install pandas\n",
        "!pip install snowballstemmer \n",
        "!pip install wordcloud\n",
        "!pip install python-bidi\n",
        "!pip install arabic-reshaper\n",
        "!pip install matplotlib\n",
        "!pip install keras==2.6.0\n",
        "!pip install Keras-Preprocessing==1.1.2\n",
        "!pip install sklearn\n",
        "!pip install seaborn\n",
        "!pip install tensorflow==2.6.0\n"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# نسخ الملفات\n",
        "!git clone https://github.com/drbasselALKHATIB/ArabicSentimentsAnalysis\n",
        "\n",
        "!cp /content/ArabicSentimentsAnalysis/DroidSansMono.ttf /content\n",
        "!cp /content/ArabicSentimentsAnalysis/negative.csv /content\n",
        "!cp /content/ArabicSentimentsAnalysis/positive.csv /content\n",
        "!cp /content/ArabicSentimentsAnalysis/tweets.csv /content"
      ],
      "metadata": {
        "id": "jHg2uBKGuQox",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "d5ff72c0-62d6-4cdb-8718-69a860eb1378"
      },
      "execution_count": 26,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "fatal: destination path 'ArabicSentimentsAnalysis' already exists and is not an empty directory.\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 27,
      "metadata": {
        "id": "imeh4fKBD81j",
        "scrolled": true,
        "outputId": "53437765-50eb-4dfb-d3b8-66def5885482",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "\n",
              "  <div id=\"df-fb709129-5ddb-4fe4-ad87-1b285dd7ff99\">\n",
              "    <div class=\"colab-df-container\">\n",
              "      <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>tweet</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>احد خيارات التنزهة بمدينة الرياض حديقة الحيوان...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>حديقة جميلة للاطفال وسعر دخول ممتاز  واكشاك بس...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>ممتاز جدا عندي بس بعض الملاحظات والاقتراحات\\n١...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>حديقة منظمة وبها عديد كبير من الحيوانات\\nالخدم...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>فيه تجديدات حلوة ومكان جميل وسعر مناسب، نتمنى ...</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-fb709129-5ddb-4fe4-ad87-1b285dd7ff99')\"\n",
              "              title=\"Convert this dataframe to an interactive table.\"\n",
              "              style=\"display:none;\">\n",
              "        \n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
              "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
              "  </svg>\n",
              "      </button>\n",
              "      \n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      flex-wrap:wrap;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "      <script>\n",
              "        const buttonEl =\n",
              "          document.querySelector('#df-fb709129-5ddb-4fe4-ad87-1b285dd7ff99 button.colab-df-convert');\n",
              "        buttonEl.style.display =\n",
              "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "        async function convertToInteractive(key) {\n",
              "          const element = document.querySelector('#df-fb709129-5ddb-4fe4-ad87-1b285dd7ff99');\n",
              "          const dataTable =\n",
              "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                     [key], {});\n",
              "          if (!dataTable) return;\n",
              "\n",
              "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "            + ' to learn more about interactive tables.';\n",
              "          element.innerHTML = '';\n",
              "          dataTable['output_type'] = 'display_data';\n",
              "          await google.colab.output.renderOutput(dataTable, element);\n",
              "          const docLink = document.createElement('div');\n",
              "          docLink.innerHTML = docLinkHtml;\n",
              "          element.appendChild(docLink);\n",
              "        }\n",
              "      </script>\n",
              "    </div>\n",
              "  </div>\n",
              "  "
            ],
            "text/plain": [
              "                                               tweet\n",
              "0  احد خيارات التنزهة بمدينة الرياض حديقة الحيوان...\n",
              "1  حديقة جميلة للاطفال وسعر دخول ممتاز  واكشاك بس...\n",
              "2  ممتاز جدا عندي بس بعض الملاحظات والاقتراحات\\n١...\n",
              "3  حديقة منظمة وبها عديد كبير من الحيوانات\\nالخدم...\n",
              "4  فيه تجديدات حلوة ومكان جميل وسعر مناسب، نتمنى ..."
            ]
          },
          "metadata": {},
          "execution_count": 27
        }
      ],
      "source": [
        "import pandas as pd\n",
        "# رفع الملفات اللازمة\n",
        "# Google Colab\n",
        "#from google.colab import files\n",
        "#uploaded = files.upload()\n",
        "# قراءة التغريدات وتحميلها ضمن إطار من البيانات \n",
        "tweets_data = pd.read_csv('tweets.csv',encoding = \"utf-8\")\n",
        "# الاقتصار على عمود التغردات\n",
        "tweets = tweets_data[['tweet']]\n",
        "# إظهار الجزء الأعلى من إطار البيانات\n",
        "tweets.head()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 28,
      "metadata": {
        "id": "-ox2ZgHZuOap",
        "outputId": "5a9b408c-1bab-4e31-bc3d-f23e1d75b783",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "\n",
              "  <div id=\"df-69efb38c-9b43-4f23-9045-8c5808930800\">\n",
              "    <div class=\"colab-df-container\">\n",
              "      <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>word</th>\n",
              "      <th>polarity</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>ممتاز</td>\n",
              "      <td>3</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>رائع</td>\n",
              "      <td>3</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>مبهر</td>\n",
              "      <td>3</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>جميل</td>\n",
              "      <td>3</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>ساحر</td>\n",
              "      <td>3</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-69efb38c-9b43-4f23-9045-8c5808930800')\"\n",
              "              title=\"Convert this dataframe to an interactive table.\"\n",
              "              style=\"display:none;\">\n",
              "        \n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
              "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
              "  </svg>\n",
              "      </button>\n",
              "      \n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      flex-wrap:wrap;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "      <script>\n",
              "        const buttonEl =\n",
              "          document.querySelector('#df-69efb38c-9b43-4f23-9045-8c5808930800 button.colab-df-convert');\n",
              "        buttonEl.style.display =\n",
              "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "        async function convertToInteractive(key) {\n",
              "          const element = document.querySelector('#df-69efb38c-9b43-4f23-9045-8c5808930800');\n",
              "          const dataTable =\n",
              "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                     [key], {});\n",
              "          if (!dataTable) return;\n",
              "\n",
              "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "            + ' to learn more about interactive tables.';\n",
              "          element.innerHTML = '';\n",
              "          dataTable['output_type'] = 'display_data';\n",
              "          await google.colab.output.renderOutput(dataTable, element);\n",
              "          const docLink = document.createElement('div');\n",
              "          docLink.innerHTML = docLinkHtml;\n",
              "          element.appendChild(docLink);\n",
              "        }\n",
              "      </script>\n",
              "    </div>\n",
              "  </div>\n",
              "  "
            ],
            "text/plain": [
              "     word  polarity\n",
              "0   ممتاز         3\n",
              "1    رائع         3\n",
              "2    مبهر         3\n",
              "3    جميل         3\n",
              "4    ساحر         3"
            ]
          },
          "metadata": {},
          "execution_count": 28
        }
      ],
      "source": [
        "# قراءة قاموس الكلمات الموجبة\n",
        "positive_data = pd.read_csv('positive.csv' ,encoding = \"utf-8\")\n",
        "positive = positive_data[['word', 'polarity']]\n",
        "# قراءة قاموس الكلمات السالبة\n",
        "negative_data = pd.read_csv('negative.csv' ,encoding = \"utf-8\")\n",
        "negative = negative_data[['word', 'polarity']]\n",
        "positive.head()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 29,
      "metadata": {
        "id": "6vY_GjxrD81k"
      },
      "outputs": [],
      "source": [
        "\n",
        "# مكتبة  السلاسل النصية \n",
        "import string\n",
        "# مكتبة التعابير النظامية\n",
        "import re\n",
        "# مكتبة معالجة اللغات الطبيعية\n",
        "import nltk\n",
        "#nltk.download('punkt')\n",
        "#nltk.download('stopwords')\n",
        "# مكتبة  كلمات التوقف\n",
        "from nltk.corpus import stopwords\n",
        "# مكتبة استخراج الوحدات\n",
        "from nltk.tokenize import word_tokenize\n",
        "# مكتبة المجذع العربي\n",
        "from snowballstemmer import stemmer\n",
        "ar_stemmer = stemmer(\"arabic\")\n",
        "\n",
        "# دالة حذف المحارف غير اللازمة\n",
        "def remove_chars(text, del_chars):\n",
        "    translator = str.maketrans('', '', del_chars)\n",
        "    return text.translate(translator)\n",
        "# دالة حذف المحارف المكررة\n",
        "def remove_repeating_char(text):\n",
        "    return re.sub(r'(.)\\1{2,}', r'\\1', text)\n",
        "# دالة تنظيف النصوص\n",
        "def cleaningText(text):\n",
        "    # حذف الأرقام\n",
        "    text = re.sub(r'[0-9]+', '', text)  \n",
        "    # حذف المحارف غير اللازمة\n",
        "    # علامات الترقيم العربية\n",
        "    arabic_punctuations = '''`÷×؛<>_()*&^%][ـ،/:\"؟.,'{}~¦+|!”…“–ـ'''\n",
        "    # علامات الترقيم الانكليزية\n",
        "    english_punctuations = string.punctuation\n",
        "    # دمج علامات الترقيم العربية والانكليزية\n",
        "    punctuations_list = arabic_punctuations + english_punctuations\n",
        "    text = remove_chars(text, punctuations_list)\n",
        "    # حذف المحارف المكررة  \n",
        "    text = remove_repeating_char(text)\n",
        "    # استبدال الأسطر الجديدة بفراغات  \n",
        "    text = text.replace('\\n', ' ')  \n",
        "    # حذف الفراغات الزائدة من اليمين واليسار   \n",
        "    text = text.strip(' ')  \n",
        "    return text\n",
        "# دالة تقسيم النص إلى مجموعة من الوحدات\n",
        "def tokenizingText(text): \n",
        "    tokens_list = word_tokenize(text) \n",
        "    return tokens_list\n",
        "# دالة حذف كلمات التوقف\n",
        "def filteringText(tokens_list):  \n",
        "    # قائمة كلمات التوقف العربية\n",
        "    listStopwords = set(stopwords.words('arabic'))\n",
        "    filtered = []\n",
        "    for txt in tokens_list:\n",
        "        if txt not in listStopwords:\n",
        "            filtered.append(txt)\n",
        "    tokens_list = filtered \n",
        "    return tokens_list\n",
        "# دالة التجذيع  \n",
        "def stemmingText(tokens_list): \n",
        "    tokens_list = [ar_stemmer.stemWord(word) for word in tokens_list]\n",
        "    return tokens_list\n",
        "# دالة دمج قائمة من الكلمات في جملة\n",
        "def toSentence(words_list):  \n",
        "    sentence = ' '.join(word for word in words_list)\n",
        "    return sentence"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 30,
      "metadata": {
        "id": "y9JSG9UOuOaq",
        "outputId": "7f04d3a0-f82a-46b0-f8fc-4f3e060ed7c7",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "رايع\n",
            "رايع\n",
            "رايع\n",
            "رايع\n",
            "!أنا أحب الذهاب إلى الحديقة، كل يووووم 9 صباحاً، مع رفاقي هؤلاء \n",
            "أنا أحب الذهاب إلى الحديقة كل يوم  صباحاً مع رفاقي هؤلاء\n",
            "['أنا', 'أحب', 'الذهاب', 'إلى', 'الحديقة', 'كل', 'يوم', 'صباحاً', 'مع', 'رفاقي', 'هؤلاء']\n",
            "['أحب', 'الذهاب', 'الحديقة', 'يوم', 'صباحاً', 'رفاقي']\n",
            "['احب', 'ذهاب', 'حديق', 'يوم', 'صباح', 'رفاق']\n"
          ]
        }
      ],
      "source": [
        "# مثال\n",
        "stem = ar_stemmer.stemWord(u\"رايع\")\n",
        "print (stem)\n",
        "stem = ar_stemmer.stemWord(u\"رائع\")\n",
        "print (stem)\n",
        "stem = ar_stemmer.stemWord(u\"رائعون\")\n",
        "print (stem)\n",
        "stem = ar_stemmer.stemWord(u\"رائعين\")\n",
        "print (stem)\n",
        "\n",
        "# مثال\n",
        "text= \"!أنا أحب الذهاب إلى الحديقة، كل يووووم 9 صباحاً، مع رفاقي هؤلاء \"\n",
        "print(text)\n",
        "text=cleaningText(text)\n",
        "print(text)\n",
        "tokens_list=tokenizingText(text)\n",
        "print(tokens_list)\n",
        "tokens_list=filteringText(tokens_list)\n",
        "print(tokens_list)\n",
        "tokens_list=stemmingText(tokens_list)\n",
        "print(tokens_list)\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 31,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "CCXt61iGD81m",
        "outputId": "48635cf8-67c0-452f-93f2-3aa1fe5bd55b"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:12: SettingWithCopyWarning: \n",
            "A value is trying to be set on a copy of a slice from a DataFrame.\n",
            "Try using .loc[row_indexer,col_indexer] = value instead\n",
            "\n",
            "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
            "  if sys.path[0] == '':\n",
            "/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:26: SettingWithCopyWarning: \n",
            "A value is trying to be set on a copy of a slice from a DataFrame.\n",
            "Try using .loc[row_indexer,col_indexer] = value instead\n",
            "\n",
            "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n"
          ]
        }
      ],
      "source": [
        "# المعالجة الأولية للتغريدات \n",
        "tweets['tweet_clean'] = tweets['tweet'].apply(cleaningText)\n",
        "tweets['tweet_preprocessed'] = tweets['tweet_clean'].apply(tokenizingText)\n",
        "tweets['tweet_preprocessed'] = tweets['tweet_preprocessed'].apply(filteringText)\n",
        "tweets['tweet_preprocessed'] = tweets['tweet_preprocessed'].apply(stemmingText)\n",
        "# حذف التغريدات المكررة\n",
        "tweets.drop_duplicates(subset = 'tweet_clean', inplace = True)\n",
        "# التصدير إلى ملف\n",
        "tweets.to_csv(r'tweet_clean.csv',encoding=\"utf-8\", index = False, header = True,index_label=None)\n",
        "\n",
        "# معالجة القاموس الموجب\n",
        "positive['word_clean'] = positive['word'].apply(cleaningText)\n",
        "positive.drop(['word'], axis = 1, inplace = True)\n",
        "positive['word_preprocessed'] = positive['word_clean'].apply(tokenizingText)\n",
        "positive['word_preprocessed'] = positive['word_preprocessed'].apply(filteringText)\n",
        "positive['word_preprocessed'] = positive['word_preprocessed'].apply(stemmingText)\n",
        "# حذف التكرار والخطأ\n",
        "positive.drop_duplicates(subset = 'word_clean', inplace = True)\n",
        "nan_value = float(\"NaN\")\n",
        "positive.replace(\"\", nan_value, inplace=True)\n",
        "positive.dropna(subset= ['word_clean'], inplace=True) \n",
        "# التصدير إلى ملف\n",
        "positive.to_csv(r'positive_clean.csv',encoding=\"utf-8\", index = False, header = True,index_label=None)\n",
        "\n",
        "# معالجة القاموس السالب\n",
        "negative['word_clean'] = negative['word'].apply(cleaningText)\n",
        "negative.drop(['word'], axis = 1, inplace = True)\n",
        "negative['word_preprocessed'] = negative['word_clean'].apply(tokenizingText)\n",
        "negative['word_preprocessed'] = negative['word_preprocessed'].apply(filteringText)\n",
        "negative['word_preprocessed'] = negative['word_preprocessed'].apply(stemmingText)\n",
        "\n",
        "# حذف التكرار والخطأ\n",
        "negative.drop_duplicates(subset = 'word_clean', inplace = True)\n",
        "negative.replace(\"\", nan_value, inplace=True)\n",
        "negative.dropna(subset= ['word_clean'], inplace=True) \n",
        "# التصدير إلى ملف\n",
        "negative.to_csv(r'negative_clean.csv', encoding=\"utf-8\", index = False, header = True,index_label=None)\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 32,
      "metadata": {
        "id": "4UQuSPbpD81n"
      },
      "outputs": [],
      "source": [
        "# التصريح عن قاموس للكلمات الموجية\n",
        "dict_positive = dict()\n",
        "# بناء قاموس الكلمات الموجبة\n",
        "\n",
        "myfile = 'positive_clean.csv'\n",
        "positive_data = pd.read_csv(myfile, encoding='utf-8')\n",
        "positive = positive_data[['word_clean', 'polarity']]\n",
        "for i in range(len(positive)): \n",
        "    dict_positive[positive_data['word_clean'][i].strip()] = int(positive_data['polarity'][i])\n",
        "# التصريح عن قاموس للكلمات السالبة\n",
        "dict_negative = dict()\n",
        "# بناء قاموس الكلمات السالبة\n",
        "myfile = 'negative_clean.csv'\n",
        "negative_data = pd.read_csv(myfile, encoding='utf-8')\n",
        "negative = negative_data[['word_clean', 'polarity']]\n",
        "for i in range(len(negative)):  \n",
        "    dict_negative[negative_data['word_clean'][i].strip()] = int(negative_data['polarity'][i])\n",
        "        "
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 33,
      "metadata": {
        "id": "5DMD-unPD81o"
      },
      "outputs": [],
      "source": [
        "# دالة حساب قطبية قائمة من الكلمات       \n",
        "def sentiment_analysis_dict_arabic(words_list):\n",
        "    score = 0\n",
        "    for word in words_list:\n",
        "        if (word in dict_positive):\n",
        "            score = score + dict_positive[word]\n",
        "    for word in words_list:\n",
        "        if (word in dict_negative):\n",
        "            score = score + dict_negative[word]\n",
        "    polarity=''\n",
        "    if (score > 0):\n",
        "        polarity = 'positive'\n",
        "    elif (score < 0):\n",
        "        polarity = 'negative'\n",
        "    else:\n",
        "        polarity = 'neutral'\n",
        "    return score, polarity\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 34,
      "metadata": {
        "id": "JpcaH0uuuOas"
      },
      "outputs": [],
      "source": [
        "# حساب قطبية التغريدات \n",
        "results = tweets['tweet_preprocessed'].apply(sentiment_analysis_dict_arabic)\n",
        "results = list(zip(*results))\n",
        "tweets['polarity_score'] = results[0]\n",
        "tweets['polarity'] = results[1]\n",
        "\n",
        "# كتابة النتائج في ملف\n",
        "tweets.to_csv(r'tweets_clean_polarity.csv', encoding='utf-8', index = False, header = True,index_label=None)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 35,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 389
        },
        "id": "4vqcfW8PD81o",
        "outputId": "0f0249db-469e-4fa3-d9ac-e6077e55de32"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "[encoded data, 20056 characters]\n",
            "text/plain": [
              "<Figure size 432x432 with 1 Axes>"
            ]
          },
          "metadata": {}
        }
      ],
      "source": [
        "# رسم نسب قطبية التغريدات\n",
        "import matplotlib.pyplot as plt\n",
        "fig, ax = plt.subplots(figsize = (6, 6))\n",
        "# حساب عدد التغريدات من كل قطبية\n",
        "x = [count for count in tweets['polarity'].value_counts()]\n",
        "# تسميات الرسم\n",
        "labels = list(tweets['polarity'].value_counts().index)\n",
        "explode = (0.1, 0, 0)\n",
        "# تنفيذ الرسم\n",
        "ax.pie(x = x, labels = labels, autopct = '%1.1f%%', explode = explode, textprops={'fontsize': 14})\n",
        "# عنوان الرسم\n",
        "ax.set_title('Tweets Polarities ', fontsize = 16, pad = 20)\n",
        "# الإظهار\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 36,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "id": "bg2pt2DPD81q",
        "outputId": "df33cbdc-c228-4be5-e44d-167d35fcd143"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "\n",
              "  <div id=\"df-380e68e1-6af1-4e9f-9671-b8cf3d373987\">\n",
              "    <div class=\"colab-df-container\">\n",
              "      <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>tweet_clean</th>\n",
              "      <th>polarity_score</th>\n",
              "      <th>polarity</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>عرف الموقع التاريخي بداية ب قصر جبره والذي يقال انه بني عام ه وينسب القصر للشريفه نفيسه بنت عبدالاله باشا زوجة ملك الحجاز الشريف علي باشا ويقع بمنطقة جبره في الشمال الشرقي من محافظة الطائف وثم امتلكه الوزير بن سليمان ورممه وسمي ب «قصر ابن سليمان» إذ كان يعهده الوزير عبدالله السليمان رحمه الله واكتسب أهميته بعد أن سكنه الملك سعود بن عبدالعزيز حين كان وليا للعهد ويوجد في بوابته نقش لتاريخ الانشاء او الترميم وكانت مرصودة بتاريخه م  وكتب في اعلى البوابة الآية وجعلنا من الماء كل شئ حي  والروايات تذكر أن الوزير السليمان في عهد الملك عبدالعزيز قام ببناء وترميم هذا القصر وكان الملك عبدالعزيز يقضي الصيف في الطائف بهذا القصر ويستقبل الرؤساء والمسؤولين وسمي القصر بقصر الضيافة الملكي وقد استقبل الملك عبدالعزيز رحمه الله أول لقاء مع أول رئيس لجمهورية لمصر آنذاك محمد نجيب في عام م بالقصر الملكي وليس هذا القصر بالطائف  حيث استقبل الرئيس نجيب في نفس العام  هجرية والتي صدر فيها أمر ملكي بتعيين  الامير نواف بن عبد العزيز آل سعود أميراً للقصور والحرس الملكي واستقبل الرئيس نجيب في القصر نفسه بداية ثم انتقل للقصر الملكي بالطايف للقاء الملك عبدالعزيز  كما سلم الوزير بن سليمان في قصر الضيافة هذا هدايا للرئيس نجيب  وبعدها انتقل الجميع للقصر الملكي بوسط الطايف بضيافة الملك عبدالعزيز رحمه الله وليس هنا  وبني القصر على الطراز المعماري القديم واما مايتبادر كونه لجبرة المخزومية الاموية فهذا ليس عليه دليل واضح  وقد يكون  على آثار قصر قديم والله اعلم وزار هذا المعلم أستاذ التاريخ والحضارات الإسلامية بجامعة أم القرى الدكتور فواز الدهاس  وذكر أن ما يميز هذا القصر هو وقوعه بجوار المكان الذي وقعت فيه معركة « حنين »  وما شهدته من المشروع العملاق للسيدة زبيدة  زوجة هارون الرشيد  حتى ان البركة وسط القصر تشابه لحد كبير تصاميم برك زبيدة  وحول مشروع زبيدة مياه المزارع من آبار وعيون في تلك المنطقة إلى مكة المكرمة  لسد حاجة حجاج بيت الله الحرام في الزمن الماضي  الى قناة زبيدة في مكة  ونلاحظ ان القصر بني بالحجارة  وروعي في اتخاذ موقع القصر أمران  أحدهما أن يكون في منأى عن السيول الجارفة وهو يقع في وادي إبراهيم  والآخر ليعطي منظرا خلابا للمزارع التي تحيط به من كل الجوانب  نقل وترتيب الرحالوائلالدغفق رحالالخبره</td>\n",
              "      <td>77</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>والله رهيبة بشكل مو طبيعي وحلوة جداً في الشتاء الماء صافي تحس ودك تنط لكن ماتقدر جلسات تفتح النفس لكن انتبه تجيها وقت رش العشب لأن الجزيرة كلها ب تصير طين أخذت اسمها من طائر النورس أحد الطيور البحرية المستوطنة مما يدل على بيئتها الرائعة لأنواع كثيرة من الطيور فموقعها على ساحل البحر الأحمر وما تكتنز به من مكونات وعوامل جعلها جاذبة لتكون تجمعًا رائعًا للطيور ومن أهم مناطق تجمع طيور النورس وواحدة من أهم الوجهات السياحية في المملكة تتربع جزيرة النورس بينبع الصناعية على مساحة تقدر ب  م وجرى تصميمها من قبل مهندسين سعوديين بالهيئة الملكية بينبع لتشكل أيقونة رائعة مليئة بالإبداع وتجسد جمال التصميم الشاعري والجذاب مانحه الزوار الهدوء والإلهام وإطلالة خلابة على البحر الأحمر من مختلف الجهات وفي موقع فريد قرب مشروع الواجهة البحرية الذي قامت بإنشائه الهيئة الملكية بينبع بطول  كلم ومنطقة مطاعم ومنطقة ألعاب ترفيهية مغلقة وخيارات متنوعة للزوار والمتنزهين  وبمناسبة اختيار ينبع ضمن الوجهات المعتمدة لموسم صيف السعودية تنفس الذي انطلق أخيرا ويستمر حتى  سبتمبر  تقدم جزيرة النورس وجهاً ترحيبياً ومضيافاً للزوار كأحد الوجهات السياحية للزوار حيث جهزت لاستقبال الزوار والمتنزهين وممارسي الهوايات فيما باتت مقصداً لقوارب النزهة واللنشات السياحية لشواطئها لقضاء يوماً عليها حيث تتميز بشواطئ مميزة ومياه صافية ومحبي الغوص سيستمتعون بمشاهدة الشعاب المرجانية النادرة وكذلك مناطق مفتوحة ألعاب للأطفال تم إنشائها وفق أفضل المواصفات الفنية ومتطلبات الأمان والسلامة  وتحظي الجزيرة التي افتتحت رسمياً عام ه بأهمية اقتصادية وسياحية ومعلماً مميزاً بطابع بيئي يضاهي أجمل المناطق السياحية بجمالها ورعة تخطيطها الشاملة بكل المقاييس فيما يتزايد اهتمام السائحين والزوار بزيارتها طوال العام وبالرغم من حداثة الجزيرة إلا أنها سرعان ما اشتملت على العديد من المرافق والخدمات التي تلبي كافة احتياجات المتنزهين بالإضافة إلى حرص الهيئة الملكية بينبع على نيل رضا الزوار من خلال تقديم أفضل الخدمات لزائري الجزيرة بمختلف فئاتهم العمرية</td>\n",
              "      <td>74</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>متحف حائل سياحة مشوقة عبر الزمن في شتاء السعودية  زاد تسليط الضوء على متحف حائل وذلك بعد إدراجه ضمن الفعاليات السياحية المُقدمة من القطاع الخاص السياحي في موسم شتاء السعودية المستمر حتى نهاية مارس المقبل ورُوعي في تصميمه الهوية العمرانية والتراثية لعروس الشمال يشتمل على جميع آثار المنطقة وتاريخها وفق تسلسلها التاريخي بداية من عصور ما قبل التاريخ وظهور الحضارات المبكرة في كل منطقة وانتهاء بالعصر الحديث بما فيها الحرف والصناعات التقليدية مع مراعاة الشمولية في التعريف بتاريخ المنطقة من خلال البرامج والمعروضات الموجهة لمختلف فئات وأعمار زوار المتحف تبلغ مساحة المتحف نحو  متر مربع ويحتوي على أركان متعددة من أبرزها سرد قصة جيولوجيا منطقة حائل من خلال استعراض عينات من التكوين الصخري مصحوبة بتفسير علمي يوضح التراتبية الزمنية مع الإشارة إلى التنوع الطبيعي الزاخر للمنطقة ويمتلك المتحف تجسيداً رائعاً لمفهوم تحديد الوظائف الحقيقية للمبنى قبل إنشائه وتحديد التناسق والتتالي الزمني المطلوب وجودهما في متحف يستعرض تاريخاً طبيعياً متنوعاً مع لمسة عصرية تصنع من الجولة السياحية وقتاً ممتعاً خاصة مع وجود أماكن للاستراحة تسمح للعقل باستيعاب التدفق المعلوماتي المثير للدهشة والفضول المعرفي في طرح الأسئلة يمنح متحف حائل تجربة سياحية فريدة من فئة باقة نصف يوم للعائلة و الأصدقاء والأفراد ويُشكل إضافة بالغة الأهمية للمشهد الثقافي والفني في المنطقة بما يحتويه من كنوز أثرية ومقتنيات تراثية ومخطوطات قديمة تتيح لجميع زوارها فرصة حقيقية للتجول بين الأزمنة والتعرف على التراث الحضاري للمملكة العربية السعودية يحتوي المتحف على عدد من القاعات التي يحكي كل منها واقعًا سرديًا تاريخيًا متنوًعا فهناك قاعة التاريخ الطبيعي والجيولوجي لمنطقة حائل وتُعرض فيها عينات من صخور المنطقة مع التركيز على مواقع التعدين والمناجم والتراث البيئي والنباتي والحيواني بالمنطقة ويستطيع الزائر معرفة عصور ما قبل الإسلام في القاعة المُخصصة لذلك والتي تبدأ من العصور الحجرية حتى العصر الجاهلي وفيها سيندهش الزوار من رؤية الأدوات الحجرية والقطع الفخارية ولوحات من النقوش والكتابات الصخرية وأما قاعة حائل عبر التاريخ فإنها تعرض لوحات تتضمن نصوصاً وصوراً ومخططات وتعرض قاعة تراث حائل الجانب التراثي للمنطقة من خلال الصناعات التقليدية وبعض الملابس والحلي التراثية وأواني الطهي وأدوات الزراعة وغيرها من مكونات التراث المحلي وللتعليم نصيب في هذا المتحف حيث تروي قاعة التعليم في منطقة حائل بدايات التعليم النظامي وأوائل المدارس في المنطقة إضافة إلى عرض مجموعة من الكتب والأفلام والرسائل القديمة وحددت الهيئة السعودية للسياحة الملامح الرئيسة لموسم شتاء السعودية من خلال التأكيد على أهمية وجود تنوع طبيعي بالإضافة إلى وجود تنوع مناخي وعمق تاريخي يذكر أن الهيئة السعودية للسياحة دشنت موسم الشتاء حولك في أكثر من  وجهة محلية لتقديم ما يزيد على  باقة وتجربة سياحية من خلال أكثر من  شركة من منظمي الرحلات والمشغلين السياحيين لاكتشاف ما تحويه مناطق المملكة من تنوع جغرافي ومناخي جاذب خلال فصل الشتاء يتراوح بين الأجواء المعتدلة اللطيفة والباردة إلى جانب الاستمتاع بالأنشطة السياحية</td>\n",
              "      <td>64</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>حين فتح الملك عبدالعزيز مدينة الرياض في الخامس من شهر شوال سنة ه الموافق  يناير م واستولى على قصر المصمك أقام بعدها في قصر الديرةمع أسرته ولما بدأت الرياض تتطور ويكثر سكانها أختار المنطقة الواقعة خارج السور الشمالي للرياض وتعرف آنذاك بأبو رفيع والتي عُرفت فيما بعد باسم المربع وقد بنى فيها الملك عبدالعزيز أول قصر بعام ه بعد أن هلت بشائر استخراج البترول وبالفعل تم تجهيزه لاستقبال الملك في شعبان عام ه وانتقل إليه من قصر الديرة وفي عام ه وضعت اللوحة التذكارية على مدخل القصر وبدأت حركة البناء في منطقة المربع عام ه واستمرت حوالي عشر سنوات وفي عامه تم استكمال الشكل العام للمدينة الملكية وشُيدت أسوارها وأبراجها المربعة الشكل ومنا هنا جاءت تسمية المنطقة بالمربع  أقسام القصر  الدور الأرضي الذي يحتوي على ستة عشر غرفة مخصصة لحراس الديوان الملكي والخويا الذين يقومون بخدمة الملك عبدالعزيز على سبيل المثال غرفة  لرئيس ونائب ومساعد رئيس الحرس الملكي الخاص ورجاله وغرفة رقم  لإعداد القهوة وتمتاز بكبر المساحة وتوفر موقد ووجار لحفظ القهوة ومستلزماتها وغرفة رقم  للمسؤول عن المصعد الكهربائي وغرفة رقم  خُصصت لتبريد الماء فترة الصيف عبر وضع قرب الماء المصنوعة من الجلد بسقف الغرفة  الدور العلوي يتألف من قاعتان رئيسيتان القاعة الكبرى يبلغ ارتفاعها  قدم ويتوسطها ثلاثة أعمدة ومبنية من الحجارة التي تعلوها الجص والزخارف ويرتكز عليها السقف وتعتبر القاعة الكبرى مجلس لاستقبال الزوار وللملك توجد اغراضه كالهاتف والمكتب والكرسي والطاولة وقاعة صغرى فيها مجلس مختصر في فصل الشتاء تستوعب  رجلاً  السطح يوجد فيه غرفة خاصة لتبريد الماء بواسطة قرب الماء حيث تتواجد فيها عدة فتحات ل  لتهوية من الجهة الشرقية والشمالية أما الجزء الشمالي من السطح يُستخدم كمجلس صيفي للملك عبدالعزيز  وقائع وأحداث  زخر ديوان الملك عبدالعزيز قصر المربع بعدد من الوقائع الهامة والأحداث الرئيسية في تاريخ المملكة منها استقبال الملك لعدد من ملوك ورؤساء دول العالم واحتضان أروقته بعض القرارات الملكية الخاصة بإنشاء وزارة الدفاع والإذاعة السعودية والمدارس النظامية ومؤسسة النقد وإصدار العملة السعودية إضافة إلى قرارات الدولة الإدارية المتعلقة بأنظمة البرق وجوازات السفر والطرق والمباني والتقاعد والغرف التجارية والعمل والعمال</td>\n",
              "      <td>62</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>متحف رائع ويستحق الزيارة لمعرفة تاريخ الأحساء القديم بذة تاريخية عن متحف الاحساء الوطني افتتح هذا المتحف في عام ه بأمر من صاحب السمو الملكي الأمير سعود بن نايف بن عبد العزيز ويقع المتحف على مساحة  متر مربع ويعتبر هذا المتحف من أعرق المتاحف التاريخية في المملكة العربية السعودية لما يحتويه من رصيد تاريخي مفصل يشمل تاريخ المنطقة فيحتوي المتحف على أكثر من  قطع آثرية وتراثية بالإضافة إلى العملات الإسلامية والمخطوطات والصور النادرة   متحف الاحساء للتراث  يقع متحف الاحساء في مدينة الهفوف ويتكون من عدة قاعات الهدف منها عرض تاريخ الاحساء عبر كل العصور بداية من العصر الحجري وحتى العصر الإسلامي كما يمكن مشاهدة كافة الصور التاريخية والوثائق حول انجازات العهد السعودي الزاخر وبهذا المتحف مجموعة من أهم ألوان التراث الشعبي المحلي من خلال عرض قطع آثرية نادرة جدا وتاريخية   أجزاء المتحف يتكون هذا المتحف من عدة أجزاء رئيسية هي كالتالي  قاعات العروض المتحفية  الإدارة  معامل المساحة والرسم  معامل التصوير  معامل الترميم والمختبر  قاعة العرض التليفزيوني  سكن للباحثين  المكتبة والتي تضم مجموعة من أهم الكتب المتخصصة في كافة المجالات كما تعقد في هذه المكتبة الكثير من الدوريات والندوات  أهم قاعات العروض المتحفية تتكون قاعات العروض من ثلاث أقسام رئيسية هي كالآتي  صالة المدخل وهي قاعة استقبال الزائرين والتي تحتوي على عدد كبير من اللوحات التي توضح المواقع الآثرية والمعالم الموجودة في منطقة الاحساء كما يوجد في هذه القاعة كافة المعلومات حول شبكة المتاحف في المملكة العربية السعودية مع الصور الفوتوغرافية وبعض القطع الآثرية    جناح ما قبل التاريخ تعتبر هذه القاعة من أهم القاعات الموجودة في متحف الاحساء حيث تعرض فيها مجموعة كبيرة من الصور والنصوص التي تتحدث حول بداية خلق الإنسان وتكوين الأرض عبر عصور مختلفة من عصر ما قبل التاريخ ويعرض في هذه القاعة الأدوات الحجرية لمختلف المواقع في منطقة الاحساء من أول فترة استئناس الحيوانات والحياة البحرية    جناح الفترة ما قبل الاسلام يحتوي هذا الجناح على مجموعة كبيرة من الصور والقطع الآثرية وخرائط الطرق التجارية البرية والبحرية في الفترة الدلمونية  كما تعرض في هذه القاعة أبجدية الكتاب واللغات في الجزيرة العربية قبل الاسلام    جناح الفترة الإسلامية  يضم هذا الجناح كافة المعلومات بالصور المعثورات والمخطوطات عن فترة دخول الإسلم إلى شبة الجزيرة العربية كما يعرض أيضا لفترة الحكام المحليين بالاحساء ويتناول الفترة العثمانية والدولة السعودية الأولى والثانية وفترة استرداد الاحساء على يد المغفور له الملك عبد العزيز بن عبد الرحمن آل سعود    جناح توحيد المملكة والذي يضم مجموعة من القطع التراثية الخاصة بالتراث الشعبي السعودي ويعرض فيه حياة البدو والمجتمع الريفي الزراعي وتاريخ المدن والأسواق بالاحساء كما يتم العمل على تحديث المتحف ليضم كل ما هو جديد والخاص بالعرض المتحفي   مواعيد الزيارة  من الأحد الى الخميس من  صباحاً حتى  مساءً الجمعة من  مساءً الى  مساءً السبت صباحاً حتى  ظهراً العنوان  مدينة الهفوف  المملكة العربية السعودية  الهيئة العامة للسياحة والآثار  متحف الإحساء  هاتف   فاكس</td>\n",
              "      <td>58</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>قصر المربع أحد القصور التاريخية الواقعة بمدينة الرياض ويمثل أحد أهم عناصر مركز الملك عبد العزيز التاريخي من الناحية التاريخية حيث أمر الملك عبدالعزيز في أواخر عام  ه بإنشاء مجمع من القصور خارج أسوار الرياض القديمة في أرض المربع ليكون مقراً لأسرته  يتكون قصر المربع من طابقين بُنيا على الطريقة التقليدية حيث يوجد وسط القصر فناء تفتح عليه جميع الغرف وقد بني القصر بالمواد المحلية فأقيمت جدرانه من اللبِن الطين المخلوط بالقش والمجفف في أشعة الشمس وأُسست قواعده من الأحجار المحلية وعلى أعمدة من الحجارة الدائرية المثبتة بالجص تستند سقوفه من خشب الأثل وجريد النخل وقد خلا القصر من الزخارف الفخمة المتكلفة باستثناء بعض الزخارف البسيطة التي زينت أسواره الخارجية في أشكال مثلثية جمالية كما نقشت جدران غرفه المطلية بالجص بزخارف هندسية غائرة وزينت أخشاب سقفه ونوافذه بالأشكال الهندسية البسيطة الملونة وقد أُعيد ترميم قصر المربع وأُصلحت الأجزاء المتداعية منه لإعادته إلى الوضع الذي كان عليه في أواخر عهد الملك عبدالعزيز كما تم تأثيثه بالطريقة نفسها التي كان عليها في الماضي  و زخر ديوان الملك عبدالعزيز قصر المربع بعدد من الوقائع الهامة والأحداث الرئيسية في تاريخ المملكة منها استقبال الملك لعدد من ملوك ورؤساء دول العالم واحتضان أروقته بعض القرارات الملكية الخاصة بإنشاء وزارة الدفاع والإذاعة السعودية والمدارس النظامية ومؤسسة النقد وإصدار العملة السعودية إضافة إلى قرارات الدولة الإدارية المتعلقة بأنظمة البرق وجوازات السفر والطرق والمباني والتقاعد والغرف التجارية والعمل والعمال</td>\n",
              "      <td>47</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>معرض جميل ورائع انصح الجميع بزيارته 👍🏼 كمية المعلومات الموجودة جداً رهيبة والجميل ان الاحاديث كلها موثقة فيه معلومات كانت جديدة علي ومعلومات اعرفها لكن معروضة بشكل جميل ومنظم يخليك تسمعها كانك اول مرة تعرف المعلومة في البداية كانت حجرة اسماء الله الحسنى بحيث يعرض اسم الله ويذكر الايات الواردة فيه وتفسيرات الاسم بعدها حجرة الكون ومن ثم حجرة الانبياء اللي ورد ذكرهم في القران الكريم فضائلهم مكان بعثتهم لغتهم وغيره باقي المعرض عن الرسول صلى الله عليه وسلم سيرته الشريفة مناقبه صفاته الجسدية طعامه ملابسه والكثير من المعلومات والجميل ان في قسم للنساء في زمن النبي اعمالهم فضائلهم مساهماتهم في الاسلام  تنسيق وتقسيم المعرض جميل ومستخدمين التقنية الحديثة في عرض المعلومات باستخدام الشاشات التفاعلية الكبيرة واستخدام الباركود QR للاستزادة عن المعلومات الموجودة في كل قسم غير مفعل حاليا غير الافلام المنتجة بطريقة الرسم الثلاثي الابعاد لبعض الاشياء  استمتعت بأسلوب الشباب المرشدين داخل المعرض في سرد الاحداث والقصص وعرض المعلومة بشكل مشوق ماقصرو صراحة شكرا لهم ولكل القائمين بالمعرض اخدنا المرشد كمجموعة حوالي ٢٠ شخص وشرح بعض المعلومات بشكل سريع تقريبا نصف ساعة زيارتنا كانت في فترة الافتتاح التجريبي له وكان مبهر كيف لو تم افتتاحه بشكل كامل  المميزات الدخول مجاني مناسب للكبار والصغار وذوي الاحتياجات الخاصة موقعة في المنطقة المركزية خلف المسجد النبوي وجدا قريب للفنادق  السلبيات ضيق نوعاً ما يفضل لو كان بمساحات اوسع مايكفيه زيارة واحده بسبب كمية المعلومات فيه  يفضل لو يتم عمل تطبيق على الاجهزة الذكية للاطلاع على المعلومات الموجودة داخل المعرض لان كثير من الناس يجو زيارة سريعة للمسجد النبوي وما يكون عندهم متسع من الوقت للتجول في المعرض</td>\n",
              "      <td>43</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>قصر جميل لكن مهمل من الدولة حكاية قصر الخواجة جبرة المهجور فى قنا بناه فرنسيون فى النصف الأول من القرن العشرين وعاش مالكه فتوة ومات مقتولا واحتفظ بتصميمه على الطراز الأوروبى حتى الآن ويضم أكثر من  غرفة وسلالم دائرية صور  مهندسون وعمال من فرنسا أنجزوا القصر من الجبس والطوب اللبن والطوب الأحمر    أرضيته من الرخام والأبواب والشبابيك تحتوى على زجاج مختلف الألوان والأشكال  قصر الخواجة جبرة الأسطورة المفقود تفاصيل بطولتها بمنطقة السوق القديم فى جنوب قنا بنقادة على الرغم من احتفاظه بمعالمه المصممة على الطراز الأوروبى من أشكال فنية فريدة  بني القصر في بداية القرن العشرين لرجل ثري يدعى الخواجة جبرة وكان يمتلك حينها مئات الأفدنة من الأراضي الزراعية بأيدى صناع من دول أوروبا وبالتحديد فرنسا من الطوب الأحمر وعاش فيه برفقة زوجته وأبنائه الثلاث حتى مماته زاهر نجيب من أهالى منطقة القصر يتحدث لليوم السابع لأول مرة عن الخواجة جبرة واصفًا إياه بصاحب الأملاك والأموال في وقتها والرجل الغني  بالمدينة لما كان يسمعه من حكايات أبيه وما شاهدته عيناه فى صغره حينما كان يتردد علي القصر ويدخله بستينيات القرن الماضي بعناية من الخدم المتواجدين به والذين يعطوه بعض الثمار والفاكهة المزروعة بحديقة القصر وبحسب نجيب فإن الخواجة أمتلك مئات الأفدنة من الأراضى الزراعية التي كان يعتمد على محاصيلها المؤجرة إلى المزارعين فى جنوب وشمال مركز نقادة ويعيش من خيرات عائدها السنوى والنصف سنوى حيث كان يزرع  الفول والعدس والقمح ومحاصيل أخرى ويتابع نجيب أنجب جبرة  الذي ينتمي إلي عائلة تكلا الحكيم  أبناء الكبري عايدة جبرة زوجة عدلي عبد الشهيد وزير الهجرة السابق ومارسيل الابنة الوسطي  وحبيب الابن الأصغر جميعهم قنطوا مدينة نقادة في الصغر وهاجروا إلي بلاد أوروبا عقب الزواج والإنجاب ولكن لم تنقطع زياراتهم عن البلدة مضيفًا أن تاريخ إنشاء القصر يتخطى ال  عامًا حيث عاصر جده الذي ولد في عام  القصر وأيضًا والده ولم يتردد علي زيارة القصر في تلك الحقبة أشخاص معروفة إلا  المزارعين الذين يسددون إيجار الأراضي ويقدمون الهدايا توددًا للخواجة وعن العمالة داخل القصر يقول زاهر نجيب إن الخواجة عٌين  من الخدم آخرهم عم حسين وذلك للعمل في الحديقة والإشراف عليها وتجهيز متطلبات القصر حيث كان يحتوي القصر علي حديقة كبيرة تقارب مساحتها الفدان وتزرع بها جميع الثمار والفاكهة المعروفة في وقتها وتروي من مياه الساقية التي تتوسط أراضيها بالإضافة إلي الورد مختلف الأنواع والأشكال المتفتح في أوقات الربيع وبني القصر علي الطراز الأوروبى حيث َجلب الخواجة جبرة مهندسين وعمال من فرنسا لإنجاز القصر من الجبس والطوب اللبن والطوب الأحمر وأرضيته من الرخام والأبواب والشبابيك تحتوي علي زجاج مختلف الألوان والأشكال بالإضافة إلي أن القصر يضم أكثر من  غرفة وسلالم دائرية علي طراز حديث يجلس الخواجة مرتديًا ثياب البهوات والطربوش الأحمر في فناء أمام القصر هكذا يشير نجيب إلي النشاط اليومي للخواجة وما كان يفعله حيث يجلس في مكان سمي باللبخة تظله فروع شجرة ضحمة ممسكَا بالنشاشة وواضعًا الطربوش الأحمر فوق رأسه متابعًا ما أنجزه المزارعين بالأرض وللخواجة كما يسرد الصاوي مكانة كبيرة وكلمة تجبر مستقلي الركوبة علي النزول والسير علي الأقدام احترامًا له أو البحث عن طريقًا آخر يسلكه خوفًا منه كما تجعل النساء يرتدين ملابس تستر جميع جسدهن حتي كعب أرجلهن خوفًا من تعرض أزواجهن لعقاب جبرة وهو الجلد أمام أعين الأهالي عقابًا لما تفعله الزوجات ويضيف توفي أبناء الخواجة الثلا...</td>\n",
              "      <td>41</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>جزيره النورس تقه بينبع الصناعيه رائعه بمعنا الكلمه  كل شي جميل  متوفر بيها  مسطحات واسعه خضراء  كافيهات ومطاعم  ممتازه حمامات واسعه نظيفهالعاب للاطفال نظيفه وكثيره  اضواء جميله هادىه بالاضافه الي الكونيش المرتب الذي يعرض روعه البحر بلونه التركوازي الذي يجمع بين زرقه السماء وخضره الاشجار  ليكون مشهد ساحر من هذا اللون الجميل 💖مكان بمتياز هادئ وجميل ورائع لقضاء اجازه هادئه ولقضاء شهر العسل 😊👌 انا متاكده بانها ستدهشك كما ادهشتني بروعتها من الرئع حق وجود مثل هذا الجمال والتطور  هنا ولا حاجه لناللسفر خارجآ جزيره النورس واحدمن جزر لم يسعفني الوقت  لزيارتها لكنها ستبقي من اول اقتراحاتي جزيره النورس اترك الصور تتحدث 💕😊</td>\n",
              "      <td>41</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>10</th>\n",
              "      <td>قصر المربع التاريخي قصر المربع من المتاحف التاريخية التي تتبع لدارة الملك عبدالعزيز وقد أسسه الملك عبدالعزيز خارج أسوار مدينة الرياض القديمة وكان جلالته يستخدمه لسكنه الخاص ولمباشرة الأعمال الرسمية في الفترة المسائية ويتكون القصر من دورين  الدور الأرضي  ويتكون من غرفة خاصة بالحراس الأخوية ومشب لعمل القهوة ومخازن للمواد الغذائية والحطب والمؤن الخاصة بتجهيز الطعام الدور العلوي  ويتكون من مجالس استقبال وهى مجلس رئيسي وصالة انتظار للضيوف وكذلك مجلس خالص مختصر بالإضافة إلى مكاتب الشعبة السياسية والاتصالات والبرقيات ان بيت الملك عبدالعزيز مقر الحكومة حيث شهد الديوان عددًًا من الاجتماعات المهمة وانعكس هذا على التصميم المحكم والبناء القوي للقصر الذي كان كذلك مكان نشأة عائلته أصدر الملك عبدالعزيز في عام ه م قرارًا يقضي بإنشاء قصر المربع ليكون مقر عائلته المتنامية وليصبح مقر الحكومة حيث الديوان الملكي مكان انعقاد المناسبات الرسمية واكتمل بناء القصر عام ه م وكان ديوان القصر مهمًا حيث كان مقر اجتماعات كثيرة مع شخصيات عالمية مرموقة كما شهد أحداثًا مؤثرة في التاريخ مثل إنشاء وزارة الدفاع والطيران ونظام التعليم الحكومي وشبكة البث السعودي ومؤسسة النقد السعودي وفيه تم توقيع عقد تنقيب النفط في المملكة وبداية نظام البرقيات وإنشاء العديد من الأنظمة والقوانين المتعلقة بالسفر والعمل والمشاريع العامة ويحيط القصر بحديقة داخلية في الدور الأرضي ويعرض بالدور الأعلى ملابس وحرف تقليدية والشعور العام في القصر هو أنه منيع بديوان فسيح لاستقبال الشخصيات الأجنبية والمراجعين المحليين</td>\n",
              "      <td>40</td>\n",
              "      <td>positive</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-380e68e1-6af1-4e9f-9671-b8cf3d373987')\"\n",
              "              title=\"Convert this dataframe to an interactive table.\"\n",
              "              style=\"display:none;\">\n",
              "        \n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
              "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
              "  </svg>\n",
              "      </button>\n",
              "      \n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      flex-wrap:wrap;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "      <script>\n",
              "        const buttonEl =\n",
              "          document.querySelector('#df-380e68e1-6af1-4e9f-9671-b8cf3d373987 button.colab-df-convert');\n",
              "        buttonEl.style.display =\n",
              "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "        async function convertToInteractive(key) {\n",
              "          const element = document.querySelector('#df-380e68e1-6af1-4e9f-9671-b8cf3d373987');\n",
              "          const dataTable =\n",
              "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                     [key], {});\n",
              "          if (!dataTable) return;\n",
              "\n",
              "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "            + ' to learn more about interactive tables.';\n",
              "          element.innerHTML = '';\n",
              "          dataTable['output_type'] = 'display_data';\n",
              "          await google.colab.output.renderOutput(dataTable, element);\n",
              "          const docLink = document.createElement('div');\n",
              "          docLink.innerHTML = docLinkHtml;\n",
              "          element.appendChild(docLink);\n",
              "        }\n",
              "      </script>\n",
              "    </div>\n",
              "  </div>\n",
              "  "
            ],
            "text/plain": [
              "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                tweet_clean  ...  polarity\n",
              "1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          عرف الموقع التاريخي بداية ب قصر جبره والذي يقال انه بني عام ه وينسب القصر للشريفه نفيسه بنت عبدالاله باشا زوجة ملك الحجاز الشريف علي باشا ويقع بمنطقة جبره في الشمال الشرقي من محافظة الطائف وثم امتلكه الوزير بن سليمان ورممه وسمي ب «قصر ابن سليمان» إذ كان يعهده الوزير عبدالله السليمان رحمه الله واكتسب أهميته بعد أن سكنه الملك سعود بن عبدالعزيز حين كان وليا للعهد ويوجد في بوابته نقش لتاريخ الانشاء او الترميم وكانت مرصودة بتاريخه م  وكتب في اعلى البوابة الآية وجعلنا من الماء كل شئ حي  والروايات تذكر أن الوزير السليمان في عهد الملك عبدالعزيز قام ببناء وترميم هذا القصر وكان الملك عبدالعزيز يقضي الصيف في الطائف بهذا القصر ويستقبل الرؤساء والمسؤولين وسمي القصر بقصر الضيافة الملكي وقد استقبل الملك عبدالعزيز رحمه الله أول لقاء مع أول رئيس لجمهورية لمصر آنذاك محمد نجيب في عام م بالقصر الملكي وليس هذا القصر بالطائف  حيث استقبل الرئيس نجيب في نفس العام  هجرية والتي صدر فيها أمر ملكي بتعيين  الامير نواف بن عبد العزيز آل سعود أميراً للقصور والحرس الملكي واستقبل الرئيس نجيب في القصر نفسه بداية ثم انتقل للقصر الملكي بالطايف للقاء الملك عبدالعزيز  كما سلم الوزير بن سليمان في قصر الضيافة هذا هدايا للرئيس نجيب  وبعدها انتقل الجميع للقصر الملكي بوسط الطايف بضيافة الملك عبدالعزيز رحمه الله وليس هنا  وبني القصر على الطراز المعماري القديم واما مايتبادر كونه لجبرة المخزومية الاموية فهذا ليس عليه دليل واضح  وقد يكون  على آثار قصر قديم والله اعلم وزار هذا المعلم أستاذ التاريخ والحضارات الإسلامية بجامعة أم القرى الدكتور فواز الدهاس  وذكر أن ما يميز هذا القصر هو وقوعه بجوار المكان الذي وقعت فيه معركة « حنين »  وما شهدته من المشروع العملاق للسيدة زبيدة  زوجة هارون الرشيد  حتى ان البركة وسط القصر تشابه لحد كبير تصاميم برك زبيدة  وحول مشروع زبيدة مياه المزارع من آبار وعيون في تلك المنطقة إلى مكة المكرمة  لسد حاجة حجاج بيت الله الحرام في الزمن الماضي  الى قناة زبيدة في مكة  ونلاحظ ان القصر بني بالحجارة  وروعي في اتخاذ موقع القصر أمران  أحدهما أن يكون في منأى عن السيول الجارفة وهو يقع في وادي إبراهيم  والآخر ليعطي منظرا خلابا للمزارع التي تحيط به من كل الجوانب  نقل وترتيب الرحالوائلالدغفق رحالالخبره  ...  positive\n",
              "2                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    والله رهيبة بشكل مو طبيعي وحلوة جداً في الشتاء الماء صافي تحس ودك تنط لكن ماتقدر جلسات تفتح النفس لكن انتبه تجيها وقت رش العشب لأن الجزيرة كلها ب تصير طين أخذت اسمها من طائر النورس أحد الطيور البحرية المستوطنة مما يدل على بيئتها الرائعة لأنواع كثيرة من الطيور فموقعها على ساحل البحر الأحمر وما تكتنز به من مكونات وعوامل جعلها جاذبة لتكون تجمعًا رائعًا للطيور ومن أهم مناطق تجمع طيور النورس وواحدة من أهم الوجهات السياحية في المملكة تتربع جزيرة النورس بينبع الصناعية على مساحة تقدر ب  م وجرى تصميمها من قبل مهندسين سعوديين بالهيئة الملكية بينبع لتشكل أيقونة رائعة مليئة بالإبداع وتجسد جمال التصميم الشاعري والجذاب مانحه الزوار الهدوء والإلهام وإطلالة خلابة على البحر الأحمر من مختلف الجهات وفي موقع فريد قرب مشروع الواجهة البحرية الذي قامت بإنشائه الهيئة الملكية بينبع بطول  كلم ومنطقة مطاعم ومنطقة ألعاب ترفيهية مغلقة وخيارات متنوعة للزوار والمتنزهين  وبمناسبة اختيار ينبع ضمن الوجهات المعتمدة لموسم صيف السعودية تنفس الذي انطلق أخيرا ويستمر حتى  سبتمبر  تقدم جزيرة النورس وجهاً ترحيبياً ومضيافاً للزوار كأحد الوجهات السياحية للزوار حيث جهزت لاستقبال الزوار والمتنزهين وممارسي الهوايات فيما باتت مقصداً لقوارب النزهة واللنشات السياحية لشواطئها لقضاء يوماً عليها حيث تتميز بشواطئ مميزة ومياه صافية ومحبي الغوص سيستمتعون بمشاهدة الشعاب المرجانية النادرة وكذلك مناطق مفتوحة ألعاب للأطفال تم إنشائها وفق أفضل المواصفات الفنية ومتطلبات الأمان والسلامة  وتحظي الجزيرة التي افتتحت رسمياً عام ه بأهمية اقتصادية وسياحية ومعلماً مميزاً بطابع بيئي يضاهي أجمل المناطق السياحية بجمالها ورعة تخطيطها الشاملة بكل المقاييس فيما يتزايد اهتمام السائحين والزوار بزيارتها طوال العام وبالرغم من حداثة الجزيرة إلا أنها سرعان ما اشتملت على العديد من المرافق والخدمات التي تلبي كافة احتياجات المتنزهين بالإضافة إلى حرص الهيئة الملكية بينبع على نيل رضا الزوار من خلال تقديم أفضل الخدمات لزائري الجزيرة بمختلف فئاتهم العمرية  ...  positive\n",
              "3                                                                                                                                                                                                                                                                                 متحف حائل سياحة مشوقة عبر الزمن في شتاء السعودية  زاد تسليط الضوء على متحف حائل وذلك بعد إدراجه ضمن الفعاليات السياحية المُقدمة من القطاع الخاص السياحي في موسم شتاء السعودية المستمر حتى نهاية مارس المقبل ورُوعي في تصميمه الهوية العمرانية والتراثية لعروس الشمال يشتمل على جميع آثار المنطقة وتاريخها وفق تسلسلها التاريخي بداية من عصور ما قبل التاريخ وظهور الحضارات المبكرة في كل منطقة وانتهاء بالعصر الحديث بما فيها الحرف والصناعات التقليدية مع مراعاة الشمولية في التعريف بتاريخ المنطقة من خلال البرامج والمعروضات الموجهة لمختلف فئات وأعمار زوار المتحف تبلغ مساحة المتحف نحو  متر مربع ويحتوي على أركان متعددة من أبرزها سرد قصة جيولوجيا منطقة حائل من خلال استعراض عينات من التكوين الصخري مصحوبة بتفسير علمي يوضح التراتبية الزمنية مع الإشارة إلى التنوع الطبيعي الزاخر للمنطقة ويمتلك المتحف تجسيداً رائعاً لمفهوم تحديد الوظائف الحقيقية للمبنى قبل إنشائه وتحديد التناسق والتتالي الزمني المطلوب وجودهما في متحف يستعرض تاريخاً طبيعياً متنوعاً مع لمسة عصرية تصنع من الجولة السياحية وقتاً ممتعاً خاصة مع وجود أماكن للاستراحة تسمح للعقل باستيعاب التدفق المعلوماتي المثير للدهشة والفضول المعرفي في طرح الأسئلة يمنح متحف حائل تجربة سياحية فريدة من فئة باقة نصف يوم للعائلة و الأصدقاء والأفراد ويُشكل إضافة بالغة الأهمية للمشهد الثقافي والفني في المنطقة بما يحتويه من كنوز أثرية ومقتنيات تراثية ومخطوطات قديمة تتيح لجميع زوارها فرصة حقيقية للتجول بين الأزمنة والتعرف على التراث الحضاري للمملكة العربية السعودية يحتوي المتحف على عدد من القاعات التي يحكي كل منها واقعًا سرديًا تاريخيًا متنوًعا فهناك قاعة التاريخ الطبيعي والجيولوجي لمنطقة حائل وتُعرض فيها عينات من صخور المنطقة مع التركيز على مواقع التعدين والمناجم والتراث البيئي والنباتي والحيواني بالمنطقة ويستطيع الزائر معرفة عصور ما قبل الإسلام في القاعة المُخصصة لذلك والتي تبدأ من العصور الحجرية حتى العصر الجاهلي وفيها سيندهش الزوار من رؤية الأدوات الحجرية والقطع الفخارية ولوحات من النقوش والكتابات الصخرية وأما قاعة حائل عبر التاريخ فإنها تعرض لوحات تتضمن نصوصاً وصوراً ومخططات وتعرض قاعة تراث حائل الجانب التراثي للمنطقة من خلال الصناعات التقليدية وبعض الملابس والحلي التراثية وأواني الطهي وأدوات الزراعة وغيرها من مكونات التراث المحلي وللتعليم نصيب في هذا المتحف حيث تروي قاعة التعليم في منطقة حائل بدايات التعليم النظامي وأوائل المدارس في المنطقة إضافة إلى عرض مجموعة من الكتب والأفلام والرسائل القديمة وحددت الهيئة السعودية للسياحة الملامح الرئيسة لموسم شتاء السعودية من خلال التأكيد على أهمية وجود تنوع طبيعي بالإضافة إلى وجود تنوع مناخي وعمق تاريخي يذكر أن الهيئة السعودية للسياحة دشنت موسم الشتاء حولك في أكثر من  وجهة محلية لتقديم ما يزيد على  باقة وتجربة سياحية من خلال أكثر من  شركة من منظمي الرحلات والمشغلين السياحيين لاكتشاف ما تحويه مناطق المملكة من تنوع جغرافي ومناخي جاذب خلال فصل الشتاء يتراوح بين الأجواء المعتدلة اللطيفة والباردة إلى جانب الاستمتاع بالأنشطة السياحية  ...  positive\n",
              "4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 حين فتح الملك عبدالعزيز مدينة الرياض في الخامس من شهر شوال سنة ه الموافق  يناير م واستولى على قصر المصمك أقام بعدها في قصر الديرةمع أسرته ولما بدأت الرياض تتطور ويكثر سكانها أختار المنطقة الواقعة خارج السور الشمالي للرياض وتعرف آنذاك بأبو رفيع والتي عُرفت فيما بعد باسم المربع وقد بنى فيها الملك عبدالعزيز أول قصر بعام ه بعد أن هلت بشائر استخراج البترول وبالفعل تم تجهيزه لاستقبال الملك في شعبان عام ه وانتقل إليه من قصر الديرة وفي عام ه وضعت اللوحة التذكارية على مدخل القصر وبدأت حركة البناء في منطقة المربع عام ه واستمرت حوالي عشر سنوات وفي عامه تم استكمال الشكل العام للمدينة الملكية وشُيدت أسوارها وأبراجها المربعة الشكل ومنا هنا جاءت تسمية المنطقة بالمربع  أقسام القصر  الدور الأرضي الذي يحتوي على ستة عشر غرفة مخصصة لحراس الديوان الملكي والخويا الذين يقومون بخدمة الملك عبدالعزيز على سبيل المثال غرفة  لرئيس ونائب ومساعد رئيس الحرس الملكي الخاص ورجاله وغرفة رقم  لإعداد القهوة وتمتاز بكبر المساحة وتوفر موقد ووجار لحفظ القهوة ومستلزماتها وغرفة رقم  للمسؤول عن المصعد الكهربائي وغرفة رقم  خُصصت لتبريد الماء فترة الصيف عبر وضع قرب الماء المصنوعة من الجلد بسقف الغرفة  الدور العلوي يتألف من قاعتان رئيسيتان القاعة الكبرى يبلغ ارتفاعها  قدم ويتوسطها ثلاثة أعمدة ومبنية من الحجارة التي تعلوها الجص والزخارف ويرتكز عليها السقف وتعتبر القاعة الكبرى مجلس لاستقبال الزوار وللملك توجد اغراضه كالهاتف والمكتب والكرسي والطاولة وقاعة صغرى فيها مجلس مختصر في فصل الشتاء تستوعب  رجلاً  السطح يوجد فيه غرفة خاصة لتبريد الماء بواسطة قرب الماء حيث تتواجد فيها عدة فتحات ل  لتهوية من الجهة الشرقية والشمالية أما الجزء الشمالي من السطح يُستخدم كمجلس صيفي للملك عبدالعزيز  وقائع وأحداث  زخر ديوان الملك عبدالعزيز قصر المربع بعدد من الوقائع الهامة والأحداث الرئيسية في تاريخ المملكة منها استقبال الملك لعدد من ملوك ورؤساء دول العالم واحتضان أروقته بعض القرارات الملكية الخاصة بإنشاء وزارة الدفاع والإذاعة السعودية والمدارس النظامية ومؤسسة النقد وإصدار العملة السعودية إضافة إلى قرارات الدولة الإدارية المتعلقة بأنظمة البرق وجوازات السفر والطرق والمباني والتقاعد والغرف التجارية والعمل والعمال  ...  positive\n",
              "5                                                                                                                                                                                                                                                                                          متحف رائع ويستحق الزيارة لمعرفة تاريخ الأحساء القديم بذة تاريخية عن متحف الاحساء الوطني افتتح هذا المتحف في عام ه بأمر من صاحب السمو الملكي الأمير سعود بن نايف بن عبد العزيز ويقع المتحف على مساحة  متر مربع ويعتبر هذا المتحف من أعرق المتاحف التاريخية في المملكة العربية السعودية لما يحتويه من رصيد تاريخي مفصل يشمل تاريخ المنطقة فيحتوي المتحف على أكثر من  قطع آثرية وتراثية بالإضافة إلى العملات الإسلامية والمخطوطات والصور النادرة   متحف الاحساء للتراث  يقع متحف الاحساء في مدينة الهفوف ويتكون من عدة قاعات الهدف منها عرض تاريخ الاحساء عبر كل العصور بداية من العصر الحجري وحتى العصر الإسلامي كما يمكن مشاهدة كافة الصور التاريخية والوثائق حول انجازات العهد السعودي الزاخر وبهذا المتحف مجموعة من أهم ألوان التراث الشعبي المحلي من خلال عرض قطع آثرية نادرة جدا وتاريخية   أجزاء المتحف يتكون هذا المتحف من عدة أجزاء رئيسية هي كالتالي  قاعات العروض المتحفية  الإدارة  معامل المساحة والرسم  معامل التصوير  معامل الترميم والمختبر  قاعة العرض التليفزيوني  سكن للباحثين  المكتبة والتي تضم مجموعة من أهم الكتب المتخصصة في كافة المجالات كما تعقد في هذه المكتبة الكثير من الدوريات والندوات  أهم قاعات العروض المتحفية تتكون قاعات العروض من ثلاث أقسام رئيسية هي كالآتي  صالة المدخل وهي قاعة استقبال الزائرين والتي تحتوي على عدد كبير من اللوحات التي توضح المواقع الآثرية والمعالم الموجودة في منطقة الاحساء كما يوجد في هذه القاعة كافة المعلومات حول شبكة المتاحف في المملكة العربية السعودية مع الصور الفوتوغرافية وبعض القطع الآثرية    جناح ما قبل التاريخ تعتبر هذه القاعة من أهم القاعات الموجودة في متحف الاحساء حيث تعرض فيها مجموعة كبيرة من الصور والنصوص التي تتحدث حول بداية خلق الإنسان وتكوين الأرض عبر عصور مختلفة من عصر ما قبل التاريخ ويعرض في هذه القاعة الأدوات الحجرية لمختلف المواقع في منطقة الاحساء من أول فترة استئناس الحيوانات والحياة البحرية    جناح الفترة ما قبل الاسلام يحتوي هذا الجناح على مجموعة كبيرة من الصور والقطع الآثرية وخرائط الطرق التجارية البرية والبحرية في الفترة الدلمونية  كما تعرض في هذه القاعة أبجدية الكتاب واللغات في الجزيرة العربية قبل الاسلام    جناح الفترة الإسلامية  يضم هذا الجناح كافة المعلومات بالصور المعثورات والمخطوطات عن فترة دخول الإسلم إلى شبة الجزيرة العربية كما يعرض أيضا لفترة الحكام المحليين بالاحساء ويتناول الفترة العثمانية والدولة السعودية الأولى والثانية وفترة استرداد الاحساء على يد المغفور له الملك عبد العزيز بن عبد الرحمن آل سعود    جناح توحيد المملكة والذي يضم مجموعة من القطع التراثية الخاصة بالتراث الشعبي السعودي ويعرض فيه حياة البدو والمجتمع الريفي الزراعي وتاريخ المدن والأسواق بالاحساء كما يتم العمل على تحديث المتحف ليضم كل ما هو جديد والخاص بالعرض المتحفي   مواعيد الزيارة  من الأحد الى الخميس من  صباحاً حتى  مساءً الجمعة من  مساءً الى  مساءً السبت صباحاً حتى  ظهراً العنوان  مدينة الهفوف  المملكة العربية السعودية  الهيئة العامة للسياحة والآثار  متحف الإحساء  هاتف   فاكس  ...  positive\n",
              "6                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                قصر المربع أحد القصور التاريخية الواقعة بمدينة الرياض ويمثل أحد أهم عناصر مركز الملك عبد العزيز التاريخي من الناحية التاريخية حيث أمر الملك عبدالعزيز في أواخر عام  ه بإنشاء مجمع من القصور خارج أسوار الرياض القديمة في أرض المربع ليكون مقراً لأسرته  يتكون قصر المربع من طابقين بُنيا على الطريقة التقليدية حيث يوجد وسط القصر فناء تفتح عليه جميع الغرف وقد بني القصر بالمواد المحلية فأقيمت جدرانه من اللبِن الطين المخلوط بالقش والمجفف في أشعة الشمس وأُسست قواعده من الأحجار المحلية وعلى أعمدة من الحجارة الدائرية المثبتة بالجص تستند سقوفه من خشب الأثل وجريد النخل وقد خلا القصر من الزخارف الفخمة المتكلفة باستثناء بعض الزخارف البسيطة التي زينت أسواره الخارجية في أشكال مثلثية جمالية كما نقشت جدران غرفه المطلية بالجص بزخارف هندسية غائرة وزينت أخشاب سقفه ونوافذه بالأشكال الهندسية البسيطة الملونة وقد أُعيد ترميم قصر المربع وأُصلحت الأجزاء المتداعية منه لإعادته إلى الوضع الذي كان عليه في أواخر عهد الملك عبدالعزيز كما تم تأثيثه بالطريقة نفسها التي كان عليها في الماضي  و زخر ديوان الملك عبدالعزيز قصر المربع بعدد من الوقائع الهامة والأحداث الرئيسية في تاريخ المملكة منها استقبال الملك لعدد من ملوك ورؤساء دول العالم واحتضان أروقته بعض القرارات الملكية الخاصة بإنشاء وزارة الدفاع والإذاعة السعودية والمدارس النظامية ومؤسسة النقد وإصدار العملة السعودية إضافة إلى قرارات الدولة الإدارية المتعلقة بأنظمة البرق وجوازات السفر والطرق والمباني والتقاعد والغرف التجارية والعمل والعمال  ...  positive\n",
              "7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          معرض جميل ورائع انصح الجميع بزيارته 👍🏼 كمية المعلومات الموجودة جداً رهيبة والجميل ان الاحاديث كلها موثقة فيه معلومات كانت جديدة علي ومعلومات اعرفها لكن معروضة بشكل جميل ومنظم يخليك تسمعها كانك اول مرة تعرف المعلومة في البداية كانت حجرة اسماء الله الحسنى بحيث يعرض اسم الله ويذكر الايات الواردة فيه وتفسيرات الاسم بعدها حجرة الكون ومن ثم حجرة الانبياء اللي ورد ذكرهم في القران الكريم فضائلهم مكان بعثتهم لغتهم وغيره باقي المعرض عن الرسول صلى الله عليه وسلم سيرته الشريفة مناقبه صفاته الجسدية طعامه ملابسه والكثير من المعلومات والجميل ان في قسم للنساء في زمن النبي اعمالهم فضائلهم مساهماتهم في الاسلام  تنسيق وتقسيم المعرض جميل ومستخدمين التقنية الحديثة في عرض المعلومات باستخدام الشاشات التفاعلية الكبيرة واستخدام الباركود QR للاستزادة عن المعلومات الموجودة في كل قسم غير مفعل حاليا غير الافلام المنتجة بطريقة الرسم الثلاثي الابعاد لبعض الاشياء  استمتعت بأسلوب الشباب المرشدين داخل المعرض في سرد الاحداث والقصص وعرض المعلومة بشكل مشوق ماقصرو صراحة شكرا لهم ولكل القائمين بالمعرض اخدنا المرشد كمجموعة حوالي ٢٠ شخص وشرح بعض المعلومات بشكل سريع تقريبا نصف ساعة زيارتنا كانت في فترة الافتتاح التجريبي له وكان مبهر كيف لو تم افتتاحه بشكل كامل  المميزات الدخول مجاني مناسب للكبار والصغار وذوي الاحتياجات الخاصة موقعة في المنطقة المركزية خلف المسجد النبوي وجدا قريب للفنادق  السلبيات ضيق نوعاً ما يفضل لو كان بمساحات اوسع مايكفيه زيارة واحده بسبب كمية المعلومات فيه  يفضل لو يتم عمل تطبيق على الاجهزة الذكية للاطلاع على المعلومات الموجودة داخل المعرض لان كثير من الناس يجو زيارة سريعة للمسجد النبوي وما يكون عندهم متسع من الوقت للتجول في المعرض  ...  positive\n",
              "8   قصر جميل لكن مهمل من الدولة حكاية قصر الخواجة جبرة المهجور فى قنا بناه فرنسيون فى النصف الأول من القرن العشرين وعاش مالكه فتوة ومات مقتولا واحتفظ بتصميمه على الطراز الأوروبى حتى الآن ويضم أكثر من  غرفة وسلالم دائرية صور  مهندسون وعمال من فرنسا أنجزوا القصر من الجبس والطوب اللبن والطوب الأحمر    أرضيته من الرخام والأبواب والشبابيك تحتوى على زجاج مختلف الألوان والأشكال  قصر الخواجة جبرة الأسطورة المفقود تفاصيل بطولتها بمنطقة السوق القديم فى جنوب قنا بنقادة على الرغم من احتفاظه بمعالمه المصممة على الطراز الأوروبى من أشكال فنية فريدة  بني القصر في بداية القرن العشرين لرجل ثري يدعى الخواجة جبرة وكان يمتلك حينها مئات الأفدنة من الأراضي الزراعية بأيدى صناع من دول أوروبا وبالتحديد فرنسا من الطوب الأحمر وعاش فيه برفقة زوجته وأبنائه الثلاث حتى مماته زاهر نجيب من أهالى منطقة القصر يتحدث لليوم السابع لأول مرة عن الخواجة جبرة واصفًا إياه بصاحب الأملاك والأموال في وقتها والرجل الغني  بالمدينة لما كان يسمعه من حكايات أبيه وما شاهدته عيناه فى صغره حينما كان يتردد علي القصر ويدخله بستينيات القرن الماضي بعناية من الخدم المتواجدين به والذين يعطوه بعض الثمار والفاكهة المزروعة بحديقة القصر وبحسب نجيب فإن الخواجة أمتلك مئات الأفدنة من الأراضى الزراعية التي كان يعتمد على محاصيلها المؤجرة إلى المزارعين فى جنوب وشمال مركز نقادة ويعيش من خيرات عائدها السنوى والنصف سنوى حيث كان يزرع  الفول والعدس والقمح ومحاصيل أخرى ويتابع نجيب أنجب جبرة  الذي ينتمي إلي عائلة تكلا الحكيم  أبناء الكبري عايدة جبرة زوجة عدلي عبد الشهيد وزير الهجرة السابق ومارسيل الابنة الوسطي  وحبيب الابن الأصغر جميعهم قنطوا مدينة نقادة في الصغر وهاجروا إلي بلاد أوروبا عقب الزواج والإنجاب ولكن لم تنقطع زياراتهم عن البلدة مضيفًا أن تاريخ إنشاء القصر يتخطى ال  عامًا حيث عاصر جده الذي ولد في عام  القصر وأيضًا والده ولم يتردد علي زيارة القصر في تلك الحقبة أشخاص معروفة إلا  المزارعين الذين يسددون إيجار الأراضي ويقدمون الهدايا توددًا للخواجة وعن العمالة داخل القصر يقول زاهر نجيب إن الخواجة عٌين  من الخدم آخرهم عم حسين وذلك للعمل في الحديقة والإشراف عليها وتجهيز متطلبات القصر حيث كان يحتوي القصر علي حديقة كبيرة تقارب مساحتها الفدان وتزرع بها جميع الثمار والفاكهة المعروفة في وقتها وتروي من مياه الساقية التي تتوسط أراضيها بالإضافة إلي الورد مختلف الأنواع والأشكال المتفتح في أوقات الربيع وبني القصر علي الطراز الأوروبى حيث َجلب الخواجة جبرة مهندسين وعمال من فرنسا لإنجاز القصر من الجبس والطوب اللبن والطوب الأحمر وأرضيته من الرخام والأبواب والشبابيك تحتوي علي زجاج مختلف الألوان والأشكال بالإضافة إلي أن القصر يضم أكثر من  غرفة وسلالم دائرية علي طراز حديث يجلس الخواجة مرتديًا ثياب البهوات والطربوش الأحمر في فناء أمام القصر هكذا يشير نجيب إلي النشاط اليومي للخواجة وما كان يفعله حيث يجلس في مكان سمي باللبخة تظله فروع شجرة ضحمة ممسكَا بالنشاشة وواضعًا الطربوش الأحمر فوق رأسه متابعًا ما أنجزه المزارعين بالأرض وللخواجة كما يسرد الصاوي مكانة كبيرة وكلمة تجبر مستقلي الركوبة علي النزول والسير علي الأقدام احترامًا له أو البحث عن طريقًا آخر يسلكه خوفًا منه كما تجعل النساء يرتدين ملابس تستر جميع جسدهن حتي كعب أرجلهن خوفًا من تعرض أزواجهن لعقاب جبرة وهو الجلد أمام أعين الأهالي عقابًا لما تفعله الزوجات ويضيف توفي أبناء الخواجة الثلا...  ...  positive\n",
              "9                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 جزيره النورس تقه بينبع الصناعيه رائعه بمعنا الكلمه  كل شي جميل  متوفر بيها  مسطحات واسعه خضراء  كافيهات ومطاعم  ممتازه حمامات واسعه نظيفهالعاب للاطفال نظيفه وكثيره  اضواء جميله هادىه بالاضافه الي الكونيش المرتب الذي يعرض روعه البحر بلونه التركوازي الذي يجمع بين زرقه السماء وخضره الاشجار  ليكون مشهد ساحر من هذا اللون الجميل 💖مكان بمتياز هادئ وجميل ورائع لقضاء اجازه هادئه ولقضاء شهر العسل 😊👌 انا متاكده بانها ستدهشك كما ادهشتني بروعتها من الرئع حق وجود مثل هذا الجمال والتطور  هنا ولا حاجه لناللسفر خارجآ جزيره النورس واحدمن جزر لم يسعفني الوقت  لزيارتها لكنها ستبقي من اول اقتراحاتي جزيره النورس اترك الصور تتحدث 💕😊  ...  positive\n",
              "10                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              قصر المربع التاريخي قصر المربع من المتاحف التاريخية التي تتبع لدارة الملك عبدالعزيز وقد أسسه الملك عبدالعزيز خارج أسوار مدينة الرياض القديمة وكان جلالته يستخدمه لسكنه الخاص ولمباشرة الأعمال الرسمية في الفترة المسائية ويتكون القصر من دورين  الدور الأرضي  ويتكون من غرفة خاصة بالحراس الأخوية ومشب لعمل القهوة ومخازن للمواد الغذائية والحطب والمؤن الخاصة بتجهيز الطعام الدور العلوي  ويتكون من مجالس استقبال وهى مجلس رئيسي وصالة انتظار للضيوف وكذلك مجلس خالص مختصر بالإضافة إلى مكاتب الشعبة السياسية والاتصالات والبرقيات ان بيت الملك عبدالعزيز مقر الحكومة حيث شهد الديوان عددًًا من الاجتماعات المهمة وانعكس هذا على التصميم المحكم والبناء القوي للقصر الذي كان كذلك مكان نشأة عائلته أصدر الملك عبدالعزيز في عام ه م قرارًا يقضي بإنشاء قصر المربع ليكون مقر عائلته المتنامية وليصبح مقر الحكومة حيث الديوان الملكي مكان انعقاد المناسبات الرسمية واكتمل بناء القصر عام ه م وكان ديوان القصر مهمًا حيث كان مقر اجتماعات كثيرة مع شخصيات عالمية مرموقة كما شهد أحداثًا مؤثرة في التاريخ مثل إنشاء وزارة الدفاع والطيران ونظام التعليم الحكومي وشبكة البث السعودي ومؤسسة النقد السعودي وفيه تم توقيع عقد تنقيب النفط في المملكة وبداية نظام البرقيات وإنشاء العديد من الأنظمة والقوانين المتعلقة بالسفر والعمل والمشاريع العامة ويحيط القصر بحديقة داخلية في الدور الأرضي ويعرض بالدور الأعلى ملابس وحرف تقليدية والشعور العام في القصر هو أنه منيع بديوان فسيح لاستقبال الشخصيات الأجنبية والمراجعين المحليين  ...  positive\n",
              "\n",
              "[10 rows x 3 columns]"
            ]
          },
          "metadata": {},
          "execution_count": 36
        }
      ],
      "source": [
        "# طباعة أكثر التغريدات إيجابية\n",
        "pd.set_option('display.max_colwidth', 3000)\n",
        "positive_tweets = tweets[tweets['polarity'] == 'positive']\n",
        "positive_tweets = positive_tweets[['tweet_clean', 'polarity_score', 'polarity']].sort_values(by = 'polarity_score', ascending=False).reset_index(drop = True)\n",
        "positive_tweets.index += 1\n",
        "positive_tweets[0:10]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 37,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 667
        },
        "id": "liB7WNq4D81r",
        "outputId": "a6fa4377-0df3-4c2f-a4ea-b87712e86c9f"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "\n",
              "  <div id=\"df-aefaa783-ceff-48e3-9fb2-4f71ca3fa297\">\n",
              "    <div class=\"colab-df-container\">\n",
              "      <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>tweet_clean</th>\n",
              "      <th>polarity_score</th>\n",
              "      <th>polarity</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>سيئة للغاية أسعار مبالغ فيها طريقة استخدام الباصات لدخول مدائن صالح ووقت الزيارة والجولة سيء أيضا لم يراعوا من جاء من مسافات طويلة لزيارتها حتى أسعار الشقق مبالغ فيه جدا</td>\n",
              "      <td>-15</td>\n",
              "      <td>negative</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>بحيرة الأصفر هي بحيرة تقع في العمران شرق الأحساء بالسعودية وتعتبر أكبر تجمع مائي في منطقة الخليج كانت البحيرة تسمى سابقاً ببحيرة هجر للبحيرة أهمية كبيرة فهي تستوعب المياه الزائدة من الأمطار الغزيرة وتحمي المنطقة من المستنقعات عبر المصارف المفتوحة كما أنها مصدر رزق للأهالي ومصدراً للحشائش التي تستخدم أعلافاً للمواشي وكذلك للأسماك الصغيرة وبعض النباتات التي تستخدم في عمليات التصنيع كنبات الأسل إلى جانب ذلك إنها كانت تعتبر بيئة طبيعية حاضنة لكثير من الحيوانات والطيور المقيمة والمهاجرة وتعتبر بحيرة الأصفر بواحة الأحساء البحيرة الوحيدة في المملكة التي تعيش فيها حياة فطرية متكاملة كانت تسمى البحيرة سابقاً ببحيرة هجر ثم أخذت اسمها الحالي من الأصفر الثعلبي حاكم المنطقة سابق عتمد مصدر مياه البحيرة الأساسي على مياه الصرف الزراعي تسير فيها قنوات الصرف لتتجمع في قناة واحدة رئيسة تصب في نهاية البحيرة واعتمدت على المصارف الأهلية لتغذيتها بمياه مصارف سقي النخيل والمزارع تأتي مياه البحيرة حالياً من مياه مصارف ري المزارع ومياه الصرف الصحي المعالج بشكل كامل الآتي من محطات الهفوف والمعالج بشكل جزئي بالترسيب والتعقيم بالكلور فقط وهو القادم من محطة العمران والذي كان له أثر سلبي لطبيعتها وخصائصها وعلى الحياة الفطرية والطبيعية كما تلعب البحيرة دوراً آخر في الشتاء حيث تنقل هذه المصارف مياه الأمطار إليها  تحيط بالبحيرة الكثبان الرملية ولذا يعتبر الوصول إليها أمراً شاقاً تنمو حول البحيرة العديد من النباتات الصحراوية المختلفة منها نبات الطرفاء والأرطى والشنان والسرخس الذي ينمو بكثافة حول أطرافها وعند انحسار المياه صيفاً تكون مرعى للأغنام والإبل ويخيم حولها جمع من أهل البادية تعد البحيرة محطة استراحة لهجرات الطيور المختلفة التي تعبر مرتين في العام من الشمال إلى الجنوب ومن الجنوب إلى الشمال وتتنوع هذه الطيور من كبيرها كالبط والأوز إلى صغيرها كالبلابل والعصافير كما تضم البحيرة أسماكاً بأحجام مختلفة نتيجة لعدم اصطيادها من قبل مرتادي البحيرة كما يعيش في البحيرة السلاحف وعدد من الحيوانات البرمائية والضفادع بالإضافة إلى أنواع الأعشاب المائية و الطحالب المغذية للحياة الفطرية والتي تتحمل الكثير من الملوحة مثل الكرغل والسويداء والعقربان وغيره</td>\n",
              "      <td>-14</td>\n",
              "      <td>negative</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>دورات مياة النساء قذرة جداً جداً كلمة قذرة قليلة بحقها بعض الأبواب ماتتسكر غير أن بعض النساء ترمي زبالتها وزبالة اطفالها بالأرض والزبالة مليانة والطشاش بالأرض بين الوسخ واحياناً مافي مويه الحمامات متهالكه تحتاج صيانة وتجديد  يعني مادري كيف اوصف القذارة إلي شفتها اتمنى مايتكرر المشهد  بقية المرافق جميلة جداً حقيقة</td>\n",
              "      <td>-14</td>\n",
              "      <td>negative</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>والله المكان رائع زي ماتركته من ٧ سنين لكن الاوضاع مازالت زي ماهي اماكن الحيوانات مش نضيفه وحتى المي حقتهم وسخة جدا في اماكن جديدة معتنى فيها احسن من الباقي الفيله تزعل تحسها كئيبة وبشرتها جافة ولونهم أصفر وفوق كده دخلنا متأخر جدا وكان انتظار طويل ياريت تنتبهو</td>\n",
              "      <td>-14</td>\n",
              "      <td>negative</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>للاسف البيك في المنطقه الشرقيه ادارتهم فاشله خمسين موظف في الفرع رئيسهم فاشل  عشان تشتري راح تحتاج ساعه او اكثر اذا قدامك ٢٠ شخص بس  طابور نص ساعه او اكثر والكاشير بطيئ ١٠ دقائق او اكثر اذا قدامك ٤ او ٥ اشخاص  واللي يجهز الطلب ياخذ نص</td>\n",
              "      <td>-13</td>\n",
              "      <td>negative</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>مشوار طويل لمهرجان عادي جدا  فقد هو مجمع للبيع بأغلى سعر  مع شدة الرطوبة كانت تجربة سيئة جدا  والحشمة والحجاب في المكان تبدو مستغربة جدا</td>\n",
              "      <td>-13</td>\n",
              "      <td>negative</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>كان المكان كالمعتاد مزدحم جدا جدا ووقت الانتظار يحتاج الى توسعة وموقع مناسب يوفر مقاعد اكثر ومواقف لسيارات  الاسعار مرتفعة قليلا</td>\n",
              "      <td>-12</td>\n",
              "      <td>negative</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>خايس جدا مافي شى يستاهل تدفع فلوس تلاقي ناس زباله اهمال في كل شى غيرك العينات اللي تجيب المرض أعوذ بالله</td>\n",
              "      <td>-12</td>\n",
              "      <td>negative</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>للأسف المدخل والمواقف أسوء بدايه طريق ترابي بدون اي تنظيم  كشك التذاكر بالشارع تنتظر بالشمس  بشكل عام اهم معلم سياحي بالطائف يفتقر للخدمات والجوده  عربات التلفريك جديده والمسار طويل يستحق التجربه بالاسفل منطقه الالعاب تحتاج للتطوير</td>\n",
              "      <td>-11</td>\n",
              "      <td>negative</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>10</th>\n",
              "      <td>لايعجبني ازعاج وعدم تنظيم للماره  لايوجد اماكن متوفره للماء  ولا فائده للزائر لايستطيع الشراء وحتى لاتوجد كراسي للماره ازعاج ومضايقات من شباب بلا عوائل  ليت التنظيم القادم يوم شباب ويوم عوائل  ويكثر من حراس الأمن</td>\n",
              "      <td>-11</td>\n",
              "      <td>negative</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-aefaa783-ceff-48e3-9fb2-4f71ca3fa297')\"\n",
              "              title=\"Convert this dataframe to an interactive table.\"\n",
              "              style=\"display:none;\">\n",
              "        \n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
              "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
              "  </svg>\n",
              "      </button>\n",
              "      \n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      flex-wrap:wrap;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "      <script>\n",
              "        const buttonEl =\n",
              "          document.querySelector('#df-aefaa783-ceff-48e3-9fb2-4f71ca3fa297 button.colab-df-convert');\n",
              "        buttonEl.style.display =\n",
              "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "        async function convertToInteractive(key) {\n",
              "          const element = document.querySelector('#df-aefaa783-ceff-48e3-9fb2-4f71ca3fa297');\n",
              "          const dataTable =\n",
              "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                     [key], {});\n",
              "          if (!dataTable) return;\n",
              "\n",
              "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "            + ' to learn more about interactive tables.';\n",
              "          element.innerHTML = '';\n",
              "          dataTable['output_type'] = 'display_data';\n",
              "          await google.colab.output.renderOutput(dataTable, element);\n",
              "          const docLink = document.createElement('div');\n",
              "          docLink.innerHTML = docLinkHtml;\n",
              "          element.appendChild(docLink);\n",
              "        }\n",
              "      </script>\n",
              "    </div>\n",
              "  </div>\n",
              "  "
            ],
            "text/plain": [
              "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            tweet_clean  ...  polarity\n",
              "1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             سيئة للغاية أسعار مبالغ فيها طريقة استخدام الباصات لدخول مدائن صالح ووقت الزيارة والجولة سيء أيضا لم يراعوا من جاء من مسافات طويلة لزيارتها حتى أسعار الشقق مبالغ فيه جدا  ...  negative\n",
              "2   بحيرة الأصفر هي بحيرة تقع في العمران شرق الأحساء بالسعودية وتعتبر أكبر تجمع مائي في منطقة الخليج كانت البحيرة تسمى سابقاً ببحيرة هجر للبحيرة أهمية كبيرة فهي تستوعب المياه الزائدة من الأمطار الغزيرة وتحمي المنطقة من المستنقعات عبر المصارف المفتوحة كما أنها مصدر رزق للأهالي ومصدراً للحشائش التي تستخدم أعلافاً للمواشي وكذلك للأسماك الصغيرة وبعض النباتات التي تستخدم في عمليات التصنيع كنبات الأسل إلى جانب ذلك إنها كانت تعتبر بيئة طبيعية حاضنة لكثير من الحيوانات والطيور المقيمة والمهاجرة وتعتبر بحيرة الأصفر بواحة الأحساء البحيرة الوحيدة في المملكة التي تعيش فيها حياة فطرية متكاملة كانت تسمى البحيرة سابقاً ببحيرة هجر ثم أخذت اسمها الحالي من الأصفر الثعلبي حاكم المنطقة سابق عتمد مصدر مياه البحيرة الأساسي على مياه الصرف الزراعي تسير فيها قنوات الصرف لتتجمع في قناة واحدة رئيسة تصب في نهاية البحيرة واعتمدت على المصارف الأهلية لتغذيتها بمياه مصارف سقي النخيل والمزارع تأتي مياه البحيرة حالياً من مياه مصارف ري المزارع ومياه الصرف الصحي المعالج بشكل كامل الآتي من محطات الهفوف والمعالج بشكل جزئي بالترسيب والتعقيم بالكلور فقط وهو القادم من محطة العمران والذي كان له أثر سلبي لطبيعتها وخصائصها وعلى الحياة الفطرية والطبيعية كما تلعب البحيرة دوراً آخر في الشتاء حيث تنقل هذه المصارف مياه الأمطار إليها  تحيط بالبحيرة الكثبان الرملية ولذا يعتبر الوصول إليها أمراً شاقاً تنمو حول البحيرة العديد من النباتات الصحراوية المختلفة منها نبات الطرفاء والأرطى والشنان والسرخس الذي ينمو بكثافة حول أطرافها وعند انحسار المياه صيفاً تكون مرعى للأغنام والإبل ويخيم حولها جمع من أهل البادية تعد البحيرة محطة استراحة لهجرات الطيور المختلفة التي تعبر مرتين في العام من الشمال إلى الجنوب ومن الجنوب إلى الشمال وتتنوع هذه الطيور من كبيرها كالبط والأوز إلى صغيرها كالبلابل والعصافير كما تضم البحيرة أسماكاً بأحجام مختلفة نتيجة لعدم اصطيادها من قبل مرتادي البحيرة كما يعيش في البحيرة السلاحف وعدد من الحيوانات البرمائية والضفادع بالإضافة إلى أنواع الأعشاب المائية و الطحالب المغذية للحياة الفطرية والتي تتحمل الكثير من الملوحة مثل الكرغل والسويداء والعقربان وغيره  ...  negative\n",
              "3                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            دورات مياة النساء قذرة جداً جداً كلمة قذرة قليلة بحقها بعض الأبواب ماتتسكر غير أن بعض النساء ترمي زبالتها وزبالة اطفالها بالأرض والزبالة مليانة والطشاش بالأرض بين الوسخ واحياناً مافي مويه الحمامات متهالكه تحتاج صيانة وتجديد  يعني مادري كيف اوصف القذارة إلي شفتها اتمنى مايتكرر المشهد  بقية المرافق جميلة جداً حقيقة  ...  negative\n",
              "4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  والله المكان رائع زي ماتركته من ٧ سنين لكن الاوضاع مازالت زي ماهي اماكن الحيوانات مش نضيفه وحتى المي حقتهم وسخة جدا في اماكن جديدة معتنى فيها احسن من الباقي الفيله تزعل تحسها كئيبة وبشرتها جافة ولونهم أصفر وفوق كده دخلنا متأخر جدا وكان انتظار طويل ياريت تنتبهو  ...  negative\n",
              "5                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            للاسف البيك في المنطقه الشرقيه ادارتهم فاشله خمسين موظف في الفرع رئيسهم فاشل  عشان تشتري راح تحتاج ساعه او اكثر اذا قدامك ٢٠ شخص بس  طابور نص ساعه او اكثر والكاشير بطيئ ١٠ دقائق او اكثر اذا قدامك ٤ او ٥ اشخاص  واللي يجهز الطلب ياخذ نص  ...  negative\n",
              "6                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              مشوار طويل لمهرجان عادي جدا  فقد هو مجمع للبيع بأغلى سعر  مع شدة الرطوبة كانت تجربة سيئة جدا  والحشمة والحجاب في المكان تبدو مستغربة جدا  ...  negative\n",
              "7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      كان المكان كالمعتاد مزدحم جدا جدا ووقت الانتظار يحتاج الى توسعة وموقع مناسب يوفر مقاعد اكثر ومواقف لسيارات  الاسعار مرتفعة قليلا  ...  negative\n",
              "8                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              خايس جدا مافي شى يستاهل تدفع فلوس تلاقي ناس زباله اهمال في كل شى غيرك العينات اللي تجيب المرض أعوذ بالله  ...  negative\n",
              "9                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               للأسف المدخل والمواقف أسوء بدايه طريق ترابي بدون اي تنظيم  كشك التذاكر بالشارع تنتظر بالشمس  بشكل عام اهم معلم سياحي بالطائف يفتقر للخدمات والجوده  عربات التلفريك جديده والمسار طويل يستحق التجربه بالاسفل منطقه الالعاب تحتاج للتطوير  ...  negative\n",
              "10                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 لايعجبني ازعاج وعدم تنظيم للماره  لايوجد اماكن متوفره للماء  ولا فائده للزائر لايستطيع الشراء وحتى لاتوجد كراسي للماره ازعاج ومضايقات من شباب بلا عوائل  ليت التنظيم القادم يوم شباب ويوم عوائل  ويكثر من حراس الأمن  ...  negative\n",
              "\n",
              "[10 rows x 3 columns]"
            ]
          },
          "metadata": {},
          "execution_count": 37
        }
      ],
      "source": [
        "# طباعة أكثر التغريدات سلبية\n",
        "pd.set_option('display.max_colwidth', 3000)\n",
        "negative_tweets = tweets[tweets['polarity'] == 'negative']\n",
        "negative_tweets = negative_tweets[['tweet_clean', 'polarity_score', 'polarity']].sort_values(by = 'polarity_score', ascending=True)[0:10].reset_index(drop = True)\n",
        "negative_tweets.index += 1\n",
        "negative_tweets[0:10]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 38,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 418
        },
        "id": "KWUKd9dcD81r",
        "outputId": "ff03d6bb-8005-48da-e6b1-5f087246ac71"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "[encoded data, 137560 characters]\n",
            "text/plain": [
              "<Figure size 576x432 with 1 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "source": [
        "# سحابة الكلمات\n",
        "from wordcloud import WordCloud\n",
        "# مكتبة للغة العربية\n",
        "import arabic_reshaper\n",
        "from bidi.algorithm import get_display\n",
        "# انتقاء بعض الكلمات المعالجة\n",
        "list_words=''\n",
        "i=0\n",
        "for tweet in tweets['tweet_preprocessed']:\n",
        "    for word in tweet:\n",
        "        i=i+1\n",
        "        if i>100:\n",
        "            break\n",
        "        list_words += ' '+(word)\n",
        "# ضبط اللغة العربية\n",
        "reshaped_text = arabic_reshaper.reshape(list_words)\n",
        "artext = get_display(reshaped_text)\n",
        "# إعدادات سحابة الكلمات\n",
        "wordcloud = WordCloud(font_path='DroidSansMono.ttf', width = 600, height = 400, background_color = 'black', min_font_size = 10).generate(artext)\n",
        "fig, ax = plt.subplots(figsize = (8, 6))\n",
        "# عنوان السحابة\n",
        "ax.set_title('Word Cloud of Tweets', fontsize = 18)\n",
        "ax.grid(False)\n",
        "ax.imshow((wordcloud))\n",
        "fig.tight_layout(pad=0)\n",
        "ax.axis('off')\n",
        "plt.show()\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 39,
      "metadata": {
        "id": "0rOKPG5GD81s"
      },
      "outputs": [],
      "source": [
        "# تجميع الكلمات الموجبة والكلمات السالبة\n",
        "def words_with_sentiment(list_words):\n",
        "    positive_words=[]\n",
        "    negative_words=[]\n",
        "    for word in list_words:\n",
        "        score_pos = 0\n",
        "        score_neg = 0\n",
        "        if (word in dict_positive):\n",
        "            score_pos = dict_positive[word]\n",
        "        if (word in dict_negative):\n",
        "            score_neg = dict_negative[word]\n",
        "        \n",
        "        if (score_pos + score_neg > 0):\n",
        "            positive_words.append(word)\n",
        "        elif (score_pos + score_neg < 0):\n",
        "            negative_words.append(word)\n",
        "            \n",
        "    return positive_words, negative_words"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 40,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 362
        },
        "id": "UL4--VnUD81s",
        "outputId": "97dc1051-eb6c-4a86-9e52-39dc716efd6f"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "[encoded data, 308224 characters]\n",
            "text/plain": [
              "<Figure size 864x720 with 2 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "source": [
        "# سحابة الكلمات الموجبة والسالبة\n",
        "# فرز الكلمات الموجبة والسالبة\n",
        "sentiment_words = tweets['tweet_preprocessed'].apply(words_with_sentiment)\n",
        "sentiment_words = list(zip(*sentiment_words))\n",
        "# قائمة الكلمات الموجبة\n",
        "positive_words = sentiment_words[0]\n",
        "# قائمة الكلمات السالبة\n",
        "negative_words = sentiment_words[1]\n",
        "# سحابة الكلمات الموجبة\n",
        "fig, ax = plt.subplots(1, 2,figsize = (12, 10))\n",
        "list_words_postive=''\n",
        "for row_word in positive_words:\n",
        "    for word in row_word:\n",
        "        list_words_postive += ' '+(word)\n",
        "reshaped_text = arabic_reshaper.reshape(list_words_postive)\n",
        "artext = get_display(reshaped_text)\n",
        "\n",
        "wordcloud_positive = WordCloud(font_path='DroidSansMono.ttf',width = 800, height = 600, background_color = 'black', colormap = 'Greens'\n",
        "                               , min_font_size = 10).generate(artext)\n",
        "ax[0].set_title(' Positive Words', fontsize = 14)\n",
        "ax[0].grid(False)\n",
        "ax[0].imshow((wordcloud_positive))\n",
        "fig.tight_layout(pad=0)\n",
        "ax[0].axis('off')\n",
        "# سحابة الكلمات السالبة\n",
        "list_words_negative=''\n",
        "for row_word in negative_words:\n",
        "    for word in row_word:\n",
        "        list_words_negative += ' '+(word)\n",
        "reshaped_text = arabic_reshaper.reshape(list_words_negative)\n",
        "artext = get_display(reshaped_text)\n",
        "\n",
        "wordcloud_negative = WordCloud(font_path='DroidSansMono.ttf',width = 800, height = 600, background_color = 'black', colormap = 'Reds'\n",
        "                               , min_font_size = 10).generate(artext)\n",
        "ax[1].set_title('Negative Words', fontsize = 14)\n",
        "ax[1].grid(False)\n",
        "ax[1].imshow((wordcloud_negative))\n",
        "fig.tight_layout(pad=0)\n",
        "ax[1].axis('off')\n",
        "\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 41,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "ewyOwMM-D81t",
        "outputId": "2bfdcdcc-f5b9-4763-f02d-7a97a43b2d01"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "مكان جميل انصح زيار رسوم دخول\n",
            "[246, 1401, 467, 19, 87, 17, 74, 515, 2602, 330, 218, 579, 507, 465, 270, 45, 54, 343, 587, 7, 33, 58, 434, 30, 74, 144, 233, 451, 468]\n",
            "[   0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
            "    0    0    0    0    0    0    0  246 1401  467   19   87   17   74\n",
            "  515 2602  330  218  579  507  465  270   45   54  343  587    7   33\n",
            "   58  434   30   74  144  233  451  468]\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(20535, 50)"
            ]
          },
          "metadata": {},
          "execution_count": 41
        }
      ],
      "source": [
        "# تحويل التغريدات إلى أشعة رقمية\n",
        "from keras.preprocessing.text import Tokenizer\n",
        "from keras.preprocessing.sequence import pad_sequences\n",
        "# نركيب جمل التغريدات من المفردات المعالجة\n",
        "sentences = tweets['tweet_preprocessed'].apply(toSentence)\n",
        "print(sentences.values[25]) \n",
        "max_words = 5000\n",
        "max_len = 50\n",
        "#   التصريح عن المجزئ \n",
        "#   مع تحديد عدد الكلمات التي ستبقى \n",
        "#  بالاعتماد على تواترها \n",
        "tokenizer = Tokenizer(num_words=max_words )\n",
        "# ملائمة المجزئ لنصوص التغريدات\n",
        "tokenizer.fit_on_texts(sentences.values)\n",
        "# تحويل النص إلى قائمة من الأرقام\n",
        "S = tokenizer.texts_to_sequences(sentences.values)\n",
        "print(S[0]) \n",
        "# توحيد أطوال الأشعة\n",
        "X = pad_sequences(S, maxlen=max_len)\n",
        "print(X[0]) \n",
        "X.shape"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 42,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Fn94AEU-D81t",
        "outputId": "92a3c8c6-9a09-4941-834a-26136ebee1c7"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "(16428, 50) (16428,)\n",
            "(4107, 50) (4107,)\n"
          ]
        }
      ],
      "source": [
        "# ترميز الخرج\n",
        "polarity_encode = {'negative' : 0, 'neutral' : 1, 'positive' : 2}\n",
        "# توليد شعاع الخرج\n",
        "y = tweets['polarity'].map(polarity_encode).values\n",
        "\n",
        "# مكنبة تقسيم البيانات إلى تدريب واختبار\n",
        "from sklearn.model_selection import train_test_split\n",
        "\n",
        "# تقسيم البيانات إلى تدريب واختبار\n",
        "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)\n",
        "print(X_train.shape, y_train.shape)\n",
        "print(X_test.shape, y_test.shape)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 43,
      "metadata": {
        "id": "95lbHuecD81t"
      },
      "outputs": [],
      "source": [
        "\n",
        "# تضمين النموذج التسلسلي\n",
        "from keras.models import Sequential\n",
        "# تضمين  الطبقات اللازمة\n",
        "from keras.layers import Embedding, Dense, LSTM\n",
        "# دوال التحسين\n",
        "from tensorflow.keras.optimizers import Adam, RMSprop \n",
        "\n",
        "# التصريح عن دالة إنشاء نموذج التعلم\n",
        "# مع إعطاء قيم أولية للمعاملات المترفعة\n",
        "def create_model(embed_dim = 32, hidden_unit = 16, dropout_rate = 0.2, optimizers = RMSprop, learning_rate = 0.001):\n",
        "    # التصريح عن نموذج تسلسلي\n",
        "    model = Sequential()\n",
        "    # طبقة التضمين\n",
        "    model.add(Embedding(input_dim = max_words, output_dim = embed_dim, input_length = max_len))\n",
        "    # LSTM\n",
        "    model.add(LSTM(units = hidden_unit ,dropout=dropout_rate))\n",
        "    # الطبقة الأخيرة\n",
        "    model.add(Dense(units = 3, activation = 'softmax'))\n",
        "    # يناء النموذج\n",
        "    model.compile(loss = 'sparse_categorical_crossentropy', optimizer = optimizers(learning_rate = learning_rate), metrics = ['accuracy'])\n",
        "    # طباعة ملخص النموذج\n",
        "    print(model.summary())\n",
        " \n",
        "    return model"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 44,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 139
        },
        "id": "9kpUkcafD81u",
        "outputId": "07fb6c80-8e47-4912-b837-776ee00e1244"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "string"
            },
            "text/plain": [
              "'\\nfrom sklearn.model_selection import GridSearchCV\\nfrom keras.wrappers.scikit_learn import KerasClassifier\\n# حساب القيم الأمثلية للمعاملات المترفعة\\nmodel = KerasClassifier(build_fn = create_model, epochs = 25, batch_size=128) \\n\\n# بعص القيم الممكنة للمعاملات المترفعة   \\nembed_dim = [32, 64]\\nhidden_unit = [16, 32, 64]\\ndropout_rate = [0.2]\\noptimizers = [Adam, RMSprop]\\nlearning_rate = [0.01, 0.001, 0.0001]\\nepochs = [10, 15,  25 ]\\nbatch_size = [128, 256]\\nparam_grid = dict(embed_dim = embed_dim, hidden_unit = hidden_unit, dropout_rate = dropout_rate,\\n                learning_rate = learning_rate, optimizers = optimizers, epochs = epochs, batch_size = batch_size)\\n\\n# تقويم النموذج لاختيار أفضل القيم\\ngrid = GridSearchCV(estimator = model, param_grid = param_grid, cv = 3)\\ngrid_result = grid.fit(X_train, y_train)\\n\\nresults = pd.DataFrame()\\nresults[\\'means\\'] = grid_result.cv_results_[\\'mean_test_score\\']\\nresults[\\'stds\\'] = grid_result.cv_results_[\\'std_test_score\\']\\nresults[\\'params\\'] = grid_result.cv_results_[\\'params\\']\\nprint(\"Best: %f using %s\" % (grid_result.best_score_, grid_result.best_params_))\\n# حفظ النتائج\\nresults.to_csv(r\\'gridsearchcv_results.csv\\', index = False, header = True)\\nresults.sort_values(by=\\'means\\', ascending = False).reset_index(drop=True)\\n'"
            ]
          },
          "metadata": {},
          "execution_count": 44
        }
      ],
      "source": [
        "# تحتاج وقت للتنفيذ\n",
        "'''\n",
        "from sklearn.model_selection import GridSearchCV\n",
        "from keras.wrappers.scikit_learn import KerasClassifier\n",
        "# حساب القيم الأمثلية للمعاملات المترفعة\n",
        "model = KerasClassifier(build_fn = create_model, epochs = 25, batch_size=128) \n",
        "\n",
        "# بعص القيم الممكنة للمعاملات المترفعة   \n",
        "embed_dim = [32, 64]\n",
        "hidden_unit = [16, 32, 64]\n",
        "dropout_rate = [0.2]\n",
        "optimizers = [Adam, RMSprop]\n",
        "learning_rate = [0.01, 0.001, 0.0001]\n",
        "epochs = [10, 15,  25 ]\n",
        "batch_size = [128, 256]\n",
        "param_grid = dict(embed_dim = embed_dim, hidden_unit = hidden_unit, dropout_rate = dropout_rate,\n",
        "                learning_rate = learning_rate, optimizers = optimizers, epochs = epochs, batch_size = batch_size)\n",
        "\n",
        "# تقويم النموذج لاختيار أفضل القيم\n",
        "grid = GridSearchCV(estimator = model, param_grid = param_grid, cv = 3)\n",
        "grid_result = grid.fit(X_train, y_train)\n",
        "\n",
        "results = pd.DataFrame()\n",
        "results['means'] = grid_result.cv_results_['mean_test_score']\n",
        "results['stds'] = grid_result.cv_results_['std_test_score']\n",
        "results['params'] = grid_result.cv_results_['params']\n",
        "print(\"Best: %f using %s\" % (grid_result.best_score_, grid_result.best_params_))\n",
        "# حفظ النتائج\n",
        "results.to_csv(r'gridsearchcv_results.csv', index = False, header = True)\n",
        "results.sort_values(by='means', ascending = False).reset_index(drop=True)\n",
        "'''\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 45,
      "metadata": {
        "id": "J1HxGnVCD81u",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 52
        },
        "outputId": "5dcb9e0c-800f-48fd-d9c9-a713c11e2de7"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "string"
            },
            "text/plain": [
              "\"\\n# قراءة نتائج معايرة المعاملات المترفعة\\nresults = pd.read_csv('gridsearchcv_results.csv')\\nresults.sort_values(by='means', ascending = False).reset_index(drop=True)\\nprint (results)\\n\""
            ]
          },
          "metadata": {},
          "execution_count": 45
        }
      ],
      "source": [
        "'''\n",
        "# قراءة نتائج معايرة المعاملات المترفعة\n",
        "results = pd.read_csv('gridsearchcv_results.csv')\n",
        "results.sort_values(by='means', ascending = False).reset_index(drop=True)\n",
        "print (results)\n",
        "'''"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 46,
      "metadata": {
        "id": "bXtWrCv0uOav",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "16fd7cf1-38ca-4337-ddf1-bae1c45c1018"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "2743 2733 15059\n",
            "2.4954429456799123 2.504573728503476 0.45454545454545453\n"
          ]
        }
      ],
      "source": [
        "# حساب أوزان القطبيات\n",
        "posCount=0\n",
        "negCount=0\n",
        "neuCount=0\n",
        "# حساب عدد التغريدات الموجبة والسالبة والمحايدة\n",
        "for index, row in tweets.iterrows():\n",
        "    if row['polarity']=='negative':\n",
        "        negCount=negCount+1\n",
        "    elif row['polarity']=='positive':\n",
        "        posCount=posCount+1\n",
        "    else:\n",
        "        neuCount=neuCount+1\n",
        "print(negCount,  neuCount, posCount)        \n",
        "total=posCount+ negCount+  neuCount\n",
        "# حساب النسب\n",
        "weight_for_0 = (1 / negCount) * (total / 3.0)\n",
        "weight_for_1 = (1 / neuCount) * (total / 3.0)\n",
        "weight_for_2 = (1 / posCount) * (total / 3.0)\n",
        "print(weight_for_0, weight_for_1, weight_for_2)\n",
        "\n",
        "class_weight = {0: weight_for_0, 1: weight_for_1, 2:weight_for_2}"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 47,
      "metadata": {
        "id": "nNaF_yiKD81u",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "75ac0adc-7d5c-4a74-d3a7-1a1b99825c56"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Model: \"sequential\"\n",
            "_________________________________________________________________\n",
            "Layer (type)                 Output Shape              Param #   \n",
            "=================================================================\n",
            "embedding (Embedding)        (None, 50, 32)            160000    \n",
            "_________________________________________________________________\n",
            "lstm (LSTM)                  (None, 64)                24832     \n",
            "_________________________________________________________________\n",
            "dense (Dense)                (None, 3)                 195       \n",
            "=================================================================\n",
            "Total params: 185,027\n",
            "Trainable params: 185,027\n",
            "Non-trainable params: 0\n",
            "_________________________________________________________________\n",
            "None\n",
            "Epoch 1/10\n",
            "58/58 [==============================] - 11s 157ms/step - loss: 1.0498 - accuracy: 0.4716 - val_loss: 0.8580 - val_accuracy: 0.7145\n",
            "Epoch 2/10\n",
            "58/58 [==============================] - 9s 147ms/step - loss: 0.7955 - accuracy: 0.7291 - val_loss: 0.6773 - val_accuracy: 0.7225\n",
            "Epoch 3/10\n",
            "58/58 [==============================] - 9s 149ms/step - loss: 0.5185 - accuracy: 0.8442 - val_loss: 0.4329 - val_accuracy: 0.8235\n",
            "Epoch 4/10\n",
            "58/58 [==============================] - 9s 148ms/step - loss: 0.3648 - accuracy: 0.8958 - val_loss: 0.3157 - val_accuracy: 0.8825\n",
            "Epoch 5/10\n",
            "58/58 [==============================] - 9s 150ms/step - loss: 0.2725 - accuracy: 0.9268 - val_loss: 0.3147 - val_accuracy: 0.8801\n",
            "Epoch 6/10\n",
            "58/58 [==============================] - 9s 148ms/step - loss: 0.2236 - accuracy: 0.9401 - val_loss: 0.3245 - val_accuracy: 0.8911\n",
            "Epoch 7/10\n",
            "58/58 [==============================] - 9s 149ms/step - loss: 0.1832 - accuracy: 0.9518 - val_loss: 0.3421 - val_accuracy: 0.8831\n",
            "Epoch 8/10\n",
            "58/58 [==============================] - 9s 149ms/step - loss: 0.1629 - accuracy: 0.9581 - val_loss: 0.3513 - val_accuracy: 0.8837\n",
            "Epoch 9/10\n",
            "58/58 [==============================] - 9s 148ms/step - loss: 0.1428 - accuracy: 0.9644 - val_loss: 0.3460 - val_accuracy: 0.8935\n",
            "Epoch 10/10\n",
            "58/58 [==============================] - 9s 150ms/step - loss: 0.1290 - accuracy: 0.9682 - val_loss: 0.3889 - val_accuracy: 0.8862\n"
          ]
        }
      ],
      "source": [
        "# مكتبة التصنيف\n",
        "from keras.wrappers.scikit_learn import KerasClassifier\n",
        "\n",
        "# إنشاء النموذج مع قيم المعاملات المترفعة الأمثلية\n",
        "\n",
        "model = KerasClassifier(build_fn = create_model,\n",
        "                        # معاملات النموذج\n",
        "                        dropout_rate = 0.2,\n",
        "                        embed_dim = 32,\n",
        "                        hidden_unit = 64,\n",
        "                        optimizers = Adam,\n",
        "                        learning_rate = 0.001,\n",
        "                        # معاملات التدريب\n",
        "                        epochs=10, \n",
        "                        batch_size=256,\n",
        "                        # نسبة بيانات التقييم\n",
        "                        validation_split = 0.1)\n",
        "# ملائمة النموذج مع بيانات التدريب\n",
        "# مع موازنة الصفوف الثلاثة\n",
        "model_prediction = model.fit(X_train, y_train, class_weight=class_weight)\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 48,
      "metadata": {
        "id": "i0kOJeVbD81v",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 295
        },
        "outputId": "1f1b329c-6039-4cc1-9385-721dcc5a0109"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "[encoded data, 20692 characters]\n",
            "text/plain": [
              "<Figure size 720x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "source": [
        "# معاينة دقة النموذج\n",
        "# التدريب والتقييم\n",
        "fig, ax = plt.subplots(figsize = (10, 4))\n",
        "ax.plot(model_prediction.history['accuracy'], label = 'train accuracy')\n",
        "ax.plot(model_prediction.history['val_accuracy'], label = 'val accuracy')\n",
        "ax.set_title('Model Accuracy')\n",
        "ax.set_xlabel('Epoch')\n",
        "ax.set_ylabel('Accuracy')\n",
        "ax.legend(loc = 'upper left')\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 49,
      "metadata": {
        "id": "sUqaxvRfD81v",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 930
        },
        "outputId": "5345c8c6-b12e-4067-f660-e228541ccd1f"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Model Accuracy on Test Data: 89.70051132213295\n",
            "Model Precision on Test Data: 91.02556807718665\n",
            "Model Recall on Test Data: 89.70051132213295\n",
            "Model F1 on Test Data: 90.08795908247768\n",
            "\n",
            "Accuracy: 0.90\n",
            "\n",
            "Micro Precision: 0.90\n",
            "Micro Recall: 0.90\n",
            "Micro F1-score: 0.90\n",
            "\n",
            "Macro Precision: 0.81\n",
            "Macro Recall: 0.82\n",
            "Macro F1-score: 0.81\n",
            "\n",
            "Weighted Precision: 0.91\n",
            "Weighted Recall: 0.90\n",
            "Weighted F1-score: 0.90\n",
            "\n",
            "Classification Report\n",
            "\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "     Class 1       0.83      0.71      0.77       519\n",
            "     Class 2       0.62      0.82      0.70       559\n",
            "     Class 3       0.98      0.94      0.96      3029\n",
            "\n",
            "    accuracy                           0.90      4107\n",
            "   macro avg       0.81      0.82      0.81      4107\n",
            "weighted avg       0.91      0.90      0.90      4107\n",
            "\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "[encoded data, 23644 characters]\n",
            "text/plain": [
              "<Figure size 576x432 with 2 Axes>"
            ]
          },
          "metadata": {}
        }
      ],
      "source": [
        "# مقاييس الأداء\n",
        "\n",
        "# مقياس الصحة\n",
        "from sklearn.metrics import accuracy_score \n",
        "# مقياس الدقة\n",
        "from sklearn.metrics import precision_score\n",
        "# مقياس الاستذكار\n",
        "from sklearn.metrics import recall_score\n",
        "# f1\n",
        "from sklearn.metrics import f1_score\n",
        "# مصفوفة الارتباك\n",
        "from sklearn.metrics import confusion_matrix\n",
        "# تصنيف بيانات الاختبار\n",
        "y_pred = model.predict(X_test)\n",
        "# حساب مقاييس الأداء\n",
        "accuracy = accuracy_score(y_test, y_pred)\n",
        "precision=precision_score(y_test, y_pred , average='weighted')\n",
        "recall= recall_score(y_test, y_pred, zero_division=1, average='weighted')\n",
        "f1= f1_score(y_test, y_pred, zero_division=1,  average='weighted')\n",
        "\n",
        "print('Model Accuracy on Test Data:', accuracy*100)\n",
        "print('Model Precision on Test Data:', precision*100)\n",
        "print('Model Recall on Test Data:', recall*100)\n",
        "print('Model F1 on Test Data:', f1*100)\n",
        "\n",
        "confusion_matrix(y_test, y_pred)\n",
        "\n",
        "# مقاييس الأداء في حالة أكثر من صفين\n",
        "print('\\nAccuracy: {:.2f}\\n'.format(accuracy_score(y_test, y_pred)))\n",
        "\n",
        "print('Micro Precision: {:.2f}'.format(precision_score(y_test, y_pred, average='micro')))\n",
        "print('Micro Recall: {:.2f}'.format(recall_score(y_test, y_pred, average='micro')))\n",
        "print('Micro F1-score: {:.2f}\\n'.format(f1_score(y_test, y_pred, average='micro')))\n",
        "\n",
        "print('Macro Precision: {:.2f}'.format(precision_score(y_test, y_pred, average='macro')))\n",
        "print('Macro Recall: {:.2f}'.format(recall_score(y_test, y_pred, average='macro')))\n",
        "print('Macro F1-score: {:.2f}\\n'.format(f1_score(y_test, y_pred, average='macro')))\n",
        "\n",
        "print('Weighted Precision: {:.2f}'.format(precision_score(y_test, y_pred, average='weighted')))\n",
        "print('Weighted Recall: {:.2f}'.format(recall_score(y_test, y_pred, average='weighted')))\n",
        "print('Weighted F1-score: {:.2f}'.format(f1_score(y_test, y_pred, average='weighted')))\n",
        "\n",
        "from sklearn.metrics import classification_report\n",
        "print('\\nClassification Report\\n')\n",
        "print(classification_report(y_test, y_pred, target_names=['Class 1', 'Class 2', 'Class 3']))\n",
        "\n",
        "import seaborn as sns\n",
        "sns.set(style = 'whitegrid')\n",
        "\n",
        "fig, ax = plt.subplots(figsize = (8,6))\n",
        "sns.heatmap(confusion_matrix(y_true = y_test, y_pred = y_pred), fmt = 'g', annot = True)\n",
        "ax.xaxis.set_label_position('top')\n",
        "ax.xaxis.set_ticks_position('top')\n",
        "ax.set_xlabel('Prediction', fontsize = 14)\n",
        "ax.set_xticklabels(['negative (0)', 'neutral (1)', 'positive (2)'])\n",
        "ax.set_ylabel('Actual', fontsize = 14)\n",
        "ax.set_yticklabels(['negative (0)', 'neutral (1)', 'positive (2)'])\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 50,
      "metadata": {
        "id": "u0O8WHOJD81v",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 502
        },
        "outputId": "67707410-a2f9-4d17-9834-6af089e614e7"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "\n",
              "  <div id=\"df-d0535ec8-2924-4ea2-8c5d-ab8fa7ba638b\">\n",
              "    <div class=\"colab-df-container\">\n",
              "      <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>text</th>\n",
              "      <th>polarity</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>مكان جدا جميل وانصح به لانه الوحيد من نوعه في مدينة ينبع من حيث الاشجار والبحيره والطيور المهاجره وايضا السلاحف</td>\n",
              "      <td>Positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>يقع مشروع بوليفارد الرياض في حي حطين السكني طريق الأمير تركي الأول مخرج  والذي يعتبر أحد أرقى أحياء الرياض الجديدة وعلى بعد مسافة لا تذكر من مركز الملك عبد الله المالي الذي سوف يشكل علامة فارقة في عالم المال والأعمال بالرياض عند اكتمال</td>\n",
              "      <td>Positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>المكان جميل والأكل ممتاز لكن الأسعار مبالغ فيها وهناك استغلال مثلا الغرفه بخمسين ريال وتذكرة الدخول بعشرين والمعامله سيئة</td>\n",
              "      <td>Positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>جميل جدا  التنظيم تطور كثير  ولكن أسعار الأكل والشرب مبالغ فيها غاليه</td>\n",
              "      <td>Positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>تحفة هندسية رائعة بجميع التفاصيل شكرا لكل من سعى وبذل لوجود مثل هذا الصرح المركز عبترة عن حدائق ومسرح ومكتبة ومناطق للالعاب خاصه للاطفال ومركز تعريفي بالنفط وجميع ما يتعلق به</td>\n",
              "      <td>Positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>...</th>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4102</th>\n",
              "      <td>روعه جدا جدا جدا</td>\n",
              "      <td>Neutral</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4103</th>\n",
              "      <td>في غاية الروعة الحديقة عبارة عن مسطح اخضر ووجود ملاهي اطفال وبحيرتين تحيطها أشجار متنوعة</td>\n",
              "      <td>Positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4104</th>\n",
              "      <td>جدا ممتازه وتحتاج الى اهتمام كبير</td>\n",
              "      <td>Positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4105</th>\n",
              "      <td>شي جميل ولكن نرغب في أن يكون أفضل بكثير</td>\n",
              "      <td>Positive</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4106</th>\n",
              "      <td>تعامل غير احترافي انلغى الحجز في نفس اليوم كلموني و قالو الغرفة مغلقة اذا حابين اغير حجزكم لغرفة ثانية بعدها ما ردو علي ابد و انا حاجزه قبلها باسبوع ما اظن بأعيد التجربة  تعديل تقييمي كان قبل الرد علي من قبلكم و حتى بعد الرد علي لن يتغير تقييمي من غير المعقول احجز قبل اسبوع كامل و ارتب نفسي على ...</td>\n",
              "      <td>Neutral</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "<p>4107 rows × 2 columns</p>\n",
              "</div>\n",
              "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-d0535ec8-2924-4ea2-8c5d-ab8fa7ba638b')\"\n",
              "              title=\"Convert this dataframe to an interactive table.\"\n",
              "              style=\"display:none;\">\n",
              "        \n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
              "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
              "  </svg>\n",
              "      </button>\n",
              "      \n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      flex-wrap:wrap;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "      <script>\n",
              "        const buttonEl =\n",
              "          document.querySelector('#df-d0535ec8-2924-4ea2-8c5d-ab8fa7ba638b button.colab-df-convert');\n",
              "        buttonEl.style.display =\n",
              "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "        async function convertToInteractive(key) {\n",
              "          const element = document.querySelector('#df-d0535ec8-2924-4ea2-8c5d-ab8fa7ba638b');\n",
              "          const dataTable =\n",
              "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                     [key], {});\n",
              "          if (!dataTable) return;\n",
              "\n",
              "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "            + ' to learn more about interactive tables.';\n",
              "          element.innerHTML = '';\n",
              "          dataTable['output_type'] = 'display_data';\n",
              "          await google.colab.output.renderOutput(dataTable, element);\n",
              "          const docLink = document.createElement('div');\n",
              "          docLink.innerHTML = docLinkHtml;\n",
              "          element.appendChild(docLink);\n",
              "        }\n",
              "      </script>\n",
              "    </div>\n",
              "  </div>\n",
              "  "
            ],
            "text/plain": [
              "                                                                                                                                                                                                                                                                                                             text  polarity\n",
              "0                                                                                                                                                                                                 مكان جدا جميل وانصح به لانه الوحيد من نوعه في مدينة ينبع من حيث الاشجار والبحيره والطيور المهاجره وايضا السلاحف  Positive\n",
              "1                                                                     يقع مشروع بوليفارد الرياض في حي حطين السكني طريق الأمير تركي الأول مخرج  والذي يعتبر أحد أرقى أحياء الرياض الجديدة وعلى بعد مسافة لا تذكر من مركز الملك عبد الله المالي الذي سوف يشكل علامة فارقة في عالم المال والأعمال بالرياض عند اكتمال  Positive\n",
              "2                                                                                                                                                                                       المكان جميل والأكل ممتاز لكن الأسعار مبالغ فيها وهناك استغلال مثلا الغرفه بخمسين ريال وتذكرة الدخول بعشرين والمعامله سيئة  Positive\n",
              "3                                                                                                                                                                                                                                           جميل جدا  التنظيم تطور كثير  ولكن أسعار الأكل والشرب مبالغ فيها غاليه  Positive\n",
              "4                                                                                                                                  تحفة هندسية رائعة بجميع التفاصيل شكرا لكل من سعى وبذل لوجود مثل هذا الصرح المركز عبترة عن حدائق ومسرح ومكتبة ومناطق للالعاب خاصه للاطفال ومركز تعريفي بالنفط وجميع ما يتعلق به  Positive\n",
              "...                                                                                                                                                                                                                                                                                                           ...       ...\n",
              "4102                                                                                                                                                                                                                                                                                             روعه جدا جدا جدا   Neutral\n",
              "4103                                                                                                                                                                                                                     في غاية الروعة الحديقة عبارة عن مسطح اخضر ووجود ملاهي اطفال وبحيرتين تحيطها أشجار متنوعة  Positive\n",
              "4104                                                                                                                                                                                                                                                                            جدا ممتازه وتحتاج الى اهتمام كبير  Positive\n",
              "4105                                                                                                                                                                                                                                                                      شي جميل ولكن نرغب في أن يكون أفضل بكثير  Positive\n",
              "4106  تعامل غير احترافي انلغى الحجز في نفس اليوم كلموني و قالو الغرفة مغلقة اذا حابين اغير حجزكم لغرفة ثانية بعدها ما ردو علي ابد و انا حاجزه قبلها باسبوع ما اظن بأعيد التجربة  تعديل تقييمي كان قبل الرد علي من قبلكم و حتى بعد الرد علي لن يتغير تقييمي من غير المعقول احجز قبل اسبوع كامل و ارتب نفسي على ...   Neutral\n",
              "\n",
              "[4107 rows x 2 columns]"
            ]
          },
          "metadata": {},
          "execution_count": 50
        }
      ],
      "source": [
        "# تصنيف مجموعة اختبار\n",
        "text_clean = tweets['tweet_clean']\n",
        "text_train, text_test = train_test_split(text_clean, test_size = 0.2, random_state = 0)\n",
        "result_test = pd.DataFrame(data = zip(text_test, y_pred), columns = ['text', 'polarity'])\n",
        "polarity_decode = {0 : 'Negative', 1 : 'Neutral', 2 : 'Positive'}\n",
        "result_test['polarity'] = result_test['polarity'].map(polarity_decode)\n",
        "pd.set_option('max_colwidth', 300)\n",
        "# حفظ النتائج\n",
        "result_test.to_csv(\"results.csv\")\n",
        "result_test"
      ]
    }
  ],
  "metadata": {
    "colab": {
      "collapsed_sections": [],
      "name": "asa.ipynb",
      "provenance": [],
      "include_colab_link": true
    },
    "interpreter": {
      "hash": "1baa965d5efe3ac65b79dfc60c0d706280b1da80fedb7760faf2759126c4f253"
    },
    "kernelspec": {
      "display_name": "Python 3 (ipykernel)",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.8.10"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}