{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# नोटबुक 2: संभावनाओं की सोच (Probabilistic Reasoning) और नेव बेज क्लासिफायर\n", "\n", "अध्याय 3 में हमने सीखा कि असली दुनिया में एआई अनिश्चितता (Uncertainty), अधूरे ज्ञान और शोर (Noise) के बीच काम करता है। सही फैसले लेने के लिए एआई **संभावनाओं की सोच (Probabilistic Reasoning)** का इस्तेमाल करता है और **बेज रूल (Bayes Rule)** के जरिए अपनी समझ को अपडेट करता है।\n", "\n", "इस नोटबुक में हम संभावनाओं की गणना करने और संदेशों को वर्गीकृत करने के लिए पायथन कोड चलाएंगे।" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## प्रयोग 1: बेज रूल से अपनी समझ को अपडेट करना (तूफानी बारिश का अनुमान)\n", "\n", "मान लीजिए कि आज आसमान में काले बादल (`Clouds`) घिरे हैं। हम जानना चाहते हैं कि आज *सुंतो* (`Storm` - बरसाती तूफान) आने की कितनी संभावना है?\n", "\n", "बेज रूल का फॉर्मूला:\n", "`P(Storm | Clouds) = (P(Clouds | Storm) * P(Storm)) / P(Clouds)`" ] }, { "cell_type": "code", "metadata": {}, "source": [ "# पिछले मौसमों के अनुभव के आधार पर हमारी जानी-पहचानी संभावनाएँ\n", "P_storm = 0.20 # इस मौसम के 20% दिनों में तूफान आता है\n", "P_clouds_if_storm = 0.85 # जब तूफान आता है, तो 85% बार पहले काले बादल आते हैं\n", "P_clouds = 0.35 # कुल मिलाकर 35% दिनों में बादल घिरे रहते हैं\n", "\n", "# आज बादल देखकर तूफान आने की संभावना निकालना\n", "P_storm_if_clouds = (P_clouds_if_storm * P_storm) / P_clouds\n", "\n", "print(f\"काले बादल देखकर आज तूफान आने की संभावना: {P_storm_if_clouds * 100:.1f}%\")" ], "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## प्रयोग 2: नेव बेज क्लासिफायर (संदेशों को सही श्रेणी में छाँटना)\n", "\n", "आइए एक ऐसा आसान प्रोग्राम बनाते हैं जो गाँव से आने वाले सुझावों या शिकायतों को अपने आप **'पानी व सिंचाई'** या **'बिजली व ऊर्जा'** की श्रेणी (Category) में छाँट देता है।" ] }, { "cell_type": "code", "metadata": {}, "source": [ "# हर श्रेणी के मुख्य शब्दों (Keywords) की सूची\n", "keywords = {\n", " \"Water\": [\"pipe\", \"well\", \"naka\", \"kyari\", \"water\", \"leak\", \"canal\", \"नाका\", \"पानी\", \"पाइप\", \"कुआँ\"],\n", " \"Electricity\": [\"wire\", \"pole\", \"bijli\", \"current\", \"transformer\", \"light\", \"बिजली\", \"खंभा\", \"तार\"]\n", "}\n", "\n", "def classify_message(text):\n", " words = text.lower().split()\n", " score_water = sum(1 for w in words if w in keywords[\"Water\"])\n", " score_elec = sum(1 for w in words if w in keywords[\"Electricity\"])\n", " \n", " if score_water > score_elec:\n", " return \"पानी व सिंचाई विभाग (Water & Irrigation)\"\n", " elif score_elec > score_water:\n", " return \"बिजली व ऊर्जा विभाग (Electricity & Power)\"\n", " else:\n", " return \"सामान्य / अन्य श्रेणी\"\n", "\n", "# हमारे क्लासिफायर को गाँव के संदेशों पर आज़माएँ!\n", "test_msgs = [\n", " \"the water pipe near the well has a leak\",\n", " \"the bijli wire fallen from the pole\",\n", " \"खेत के नाका और कुआँ के पास पानी का पाइप टूट गया है\"\n", "]\n", "\n", "for msg in test_msgs:\n", " print(f\"संदेश: '{msg}' -> श्रेणी: {classify_message(msg)}\")" ], "execution_count": null, "outputs": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "name": "python", "version": "3" } }, "nbformat": 4, "nbformat_minor": 5 }