{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "code",
      "execution_count": 1,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Mu6B0Rgsd1XM",
        "outputId": "d011c076-74a6-4217-9ce8-31c11542088a"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Requirement already satisfied: nltk in /usr/local/lib/python3.12/dist-packages (3.9.1)\n",
            "Requirement already satisfied: click in /usr/local/lib/python3.12/dist-packages (from nltk) (8.3.1)\n",
            "Requirement already satisfied: joblib in /usr/local/lib/python3.12/dist-packages (from nltk) (1.5.3)\n",
            "Requirement already satisfied: regex>=2021.8.3 in /usr/local/lib/python3.12/dist-packages (from nltk) (2025.11.3)\n",
            "Requirement already satisfied: tqdm in /usr/local/lib/python3.12/dist-packages (from nltk) (4.67.1)\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[nltk_data] Downloading package wordnet to /root/nltk_data...\n",
            "[nltk_data] Downloading package omw-1.4 to /root/nltk_data...\n"
          ]
        }
      ],
      "source": [
        "!pip install nltk\n",
        "import nltk\n",
        "nltk.download('wordnet')\n",
        "nltk.download('omw-1.4')\n",
        "from nltk.corpus import wordnet\n"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "syns = wordnet.synsets(\"program\")\n",
        "print(syns[0].name())\n",
        "print(syns[0].lemmas()[0].name())\n",
        "print(syns[0].definition())\n",
        "print(syns[0].examples())\n",
        "\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "1rK2NcStd6A_",
        "outputId": "e6dc4464-61c8-4fe2-ba16-3dee4fe69b32"
      },
      "execution_count": 2,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "plan.n.01\n",
            "plan\n",
            "a series of steps to be carried out or goals to be accomplished\n",
            "['they drew up a six-step plan', 'they discussed plans for a new bond issue']\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "synonyms = []\n",
        "\n",
        "for syn in wordnet.synsets(\"good\"):\n",
        "    for lemma in syn.lemmas():\n",
        "        synonyms.append(lemma.name())\n",
        "\n",
        "print(set(synonyms))\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "2GXqUrN1d6F-",
        "outputId": "be79d25d-0931-44c8-ed7e-5c9e8902c511"
      },
      "execution_count": 3,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "{'right', 'secure', 'adept', 'sound', 'in_force', 'respectable', 'thoroughly', 'upright', 'unspoiled', 'undecomposed', 'goodness', 'well', 'commodity', 'trade_good', 'ripe', 'dependable', 'near', 'expert', 'honorable', 'effective', 'good', 'salutary', 'practiced', 'beneficial', 'safe', 'proficient', 'dear', 'full', 'soundly', 'skilful', 'honest', 'unspoilt', 'serious', 'estimable', 'skillful', 'in_effect', 'just'}\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "antonyms = []\n",
        "\n",
        "for syn in wordnet.synsets(\"good\"):\n",
        "    for lemma in syn.lemmas():\n",
        "        if lemma.antonyms():\n",
        "            antonyms.append(lemma.antonyms()[0].name())\n",
        "\n",
        "print(set(antonyms))\n"
      ],
      "metadata": {
        "id": "7khIS8aJd6Ig",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "3476c18d-50fa-44f8-b8d8-0f5b9673e886"
      },
      "execution_count": 4,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "{'bad', 'badness', 'evil', 'ill', 'evilness'}\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "def get_synonyms_antonyms(word):\n",
        "    synonyms = set()\n",
        "    antonyms = set()\n",
        "\n",
        "    for syn in wordnet.synsets(word):\n",
        "        for lemma in syn.lemmas():\n",
        "            synonyms.add(lemma.name())\n",
        "            if lemma.antonyms():\n",
        "                antonyms.add(lemma.antonyms()[0].name())\n",
        "\n",
        "    return synonyms, antonyms\n",
        "\n",
        "syns, ants = get_synonyms_antonyms(\"happy\")\n",
        "print(\"Synonyms:\", syns)\n",
        "print(\"Antonyms:\", ants)\n"
      ],
      "metadata": {
        "id": "wYJNfNSWeUxf",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "2d8a09f6-fa0d-4d76-9232-85b5da797ae6"
      },
      "execution_count": 5,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Synonyms: {'felicitous', 'well-chosen', 'happy', 'glad'}\n",
            "Antonyms: {'unhappy'}\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "\n",
        "w1 = wordnet.synset('run.v.01')\n",
        "w2 = wordnet.synset('sprint.v.01')\n",
        "print(\"Verb similarity:\", w1.wup_similarity(w2))\n",
        "\n",
        "\n",
        "w1 = wordnet.synset('ship.n.01')\n",
        "w2 = wordnet.synset('boat.n.01')\n",
        "print(\"Noun similarity:\", w1.wup_similarity(w2))\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "LqQsu0BBv49D",
        "outputId": "d3360f01-6b75-4fd0-ef77-2cd7f5a1884a"
      },
      "execution_count": 6,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Verb similarity: 0.8571428571428571\n",
            "Noun similarity: 0.9090909090909091\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "from nltk.corpus import wordnet\n",
        "\n",
        "syn = wordnet.synset('dog.n.01')\n",
        "print(syn.hypernyms())\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "FU7Z-smEv4_q",
        "outputId": "e50eebaa-5be4-4f57-b763-084214ce21c8"
      },
      "execution_count": 7,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "[Synset('domestic_animal.n.01'), Synset('canine.n.02')]\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "syn = wordnet.synset('dog.n.01')\n",
        "print(syn.hyponyms())\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "RTeQIgE3wqKm",
        "outputId": "1f672596-0111-48b3-b6c4-6b44d2f115db"
      },
      "execution_count": 8,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "[Synset('pug.n.01'), Synset('leonberg.n.01'), Synset('griffon.n.02'), Synset('spitz.n.01'), Synset('toy_dog.n.01'), Synset('basenji.n.01'), Synset('great_pyrenees.n.01'), Synset('working_dog.n.01'), Synset('hunting_dog.n.01'), Synset('poodle.n.01'), Synset('mexican_hairless.n.01'), Synset('puppy.n.01'), Synset('pooch.n.01'), Synset('newfoundland.n.01'), Synset('corgi.n.01'), Synset('dalmatian.n.02'), Synset('cur.n.01'), Synset('lapdog.n.01')]\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "syn = wordnet.synset('tree.n.01')\n",
        "print(syn.part_meronyms())\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "hAHbyFVYwqNH",
        "outputId": "8373e854-e1ce-492f-cbdd-b11a908e6c06"
      },
      "execution_count": 10,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "[Synset('stump.n.01'), Synset('crown.n.07'), Synset('burl.n.02'), Synset('trunk.n.01'), Synset('limb.n.02')]\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "\n"
      ],
      "metadata": {
        "id": "CRAqAQ0mwqPk"
      },
      "execution_count": 11,
      "outputs": []
    }
  ]
}