<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های saeed imani</title>
        <link>https://virgool.io/feed/@imanisaeed56</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-17 07:12:14</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1663141/avatar/avatar.png?height=120&amp;width=120</url>
            <title>saeed imani</title>
            <link>https://virgool.io/@imanisaeed56</link>
        </image>

                    <item>
                <title>توضیح LDA و پیاده سازی آن با استفاده از  Scikit learn</title>
                <link>https://virgool.io/moneytoo/%D8%AA%D9%88%D8%B6%DB%8C%D8%AD-lda-%D9%88-%D9%BE%DB%8C%D8%A7%D8%AF%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%A2%D9%86-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-scikit-learn-xaijqhw1dvyx</link>
                <description>این الگوریتم، یکی از الگوریتم های رایج در زمینه ی topic modeling می باشد که در سال 2002 به وجود آمد.تاپیک مدلینگ چیست ؟تاپیک مدلینگ یکی از زمینه های محبوب در ماشین لرنینگ می باشد.تاپیک مدلینگ به معنی استخراج موضوعات از مجموعه ی اسناد موجود، می باشد.یکی از کاربردهای ابتدایی NLP، دانستن این است که مردم در مورد چه موضوعاتی درون متن های بزرگ، صحبت می کنند .به عبارت بهتر، چه اطلاعاتی درون این متن ها وجود دارد و تاپیک مدلینگ برای استخراج این اطلاعات از اسناد متنی، مورد استفاده قرار میگیرد.فرض کنید شما در حال مطالعه ی مقاله ای در روزنامه هستید که از کلمه ی آب و هوا درون آن مقاله به صورت مکرر، استفاده شده است . در این حالت، برداشت شما این است که موضوع اصلی مقاله احتمالا در مورد آب و هوا و شرایط جوی می باشد .این کار مشابه کاری است که تاپیک مدلینگ انجام می دهد.در واقع تاپیک مدلینگ، موضوعات را به وسیله ی دسته بندی کلمات مشابه،تولید می کند.حال 2 اصطلاح به وجود می آید . 1- تاپیک مدلینگ 2- تاپیک کلاسیفیکیشن اگرچه این دو به هم شباهت دارند ولی دو فرایند کاملا جدا می باشند.اولی به صورت unsupervised machine learning technique  است و دومی به  صورت supervised technique می باشد.topic classification  اغلب شامل mutually-exclusive classes می شود .به این معنی که، هر سندی فقط شامل یک موضوع می شود و توسط یک موضوع label دریافت می کند.(هیچ دو کلاسی به صورت همزمان، نمیتواند اتفاق بیفتد.) در نقطه ی مقابل، تاپیک مدلینگ به این صورت نیست و یک سند ممکن است که شامل چندین موضوع احتمالی باشد.در واقع به دلیل این که تاپیک مدلینگ بر اساس توزیع احتمالی کار می کند،یک سند منتی می تواند توزیع احتمالی ای روی چندین موضوع، داشته باشد. به این معنی که یک متن برای مثال، 50% به جغرافیا 30% به گردشگری و 20% به غذا مرتبط است.برای تاپیک مدلینگ الگوریتم های متعددی وجود دارد . از قبیل Non-Negative Matrix Factorization(NMF), Latent Semantic Analysis or Latent Semantic Indexing(LSA or LSI) و Latent Dirichlet Allocation یا همان LDA .ما در این جا به بررسی LDA می پردازیم . ایده ی اصلی LDA این است که اسناد از ترکیب تصادفی چندین موضوع، به وجود آمده اند و موضوعات هم از ترکیب چندین کلمه تشکیل شده است.حال فرض کنید شما چندین هزار مقاله دارید و از موضوعات این مقاله ها هم اطلاعی ندارید. شما به مقالاتی در ارتباط با حیوانات احتیاج دارید.خواندن تمام این مقالات برای پیدا کردن مقالات مرتبط با موضوع حیوانات کار بسیار مشکلی است . حال به مثال زیر توجه کنید.فرض کنید 4 مقاله دارید. مقاله ی  اول در مورد حیوانات، مقاله ی دوم در مورد ژنتیک، مقاله ی سوم در مورد کامپوتر، مقاله ی چهارم در مورد ژنتیک و حیوانات.به عنوان یک انسان، شما به راحتی می توانید موضوعات را بر اساس کلمات درون آنها از هم تفکیک کنید . اما اگر هزار مقاله ی هزار خطی داشتید دیگر به این سادگی قادر به تفکیک نبودید. کامپیوتر ها به کمک LDA ، قادر به انجام چنین کاری می باشند . تا به حال با کاربرد LDA آشنا شده ایم . حال نوبت آن است که ببینیم LDA چگونه کار می کند .نحوه ی عملکرد LDAابتدا به شکل گرافیکی LDA نگاهی خواهیم انداخت و سپس به فرمول محاسبه ی احتمال LDA می پردازیم .در شکل بالا، 6 پارامتر مشاهده می شود . آلفا و اتا نماینده ی توزیع دریکله می باشند . هرچه آلفا بزرگ تر باشد، هر سند احتمالا موضوعات بیشتری را شامل میشود و در نقطه ی مقابل، هرچه آلفا کوچک تر باشد، هر سند احتمالا تعداد کمتری موضوع را در بر میگیرد .مشابه آلفا، هرچه مقدار اتا بزرگ تر باشد، احتمالا موضوعات کلمات بیشتری را در بر میگیرد و در نقطه ی مقابل، هرچه اتا کمتر باشد موضوعات احتمالا کلمات کمتری را در بر میگیرد.بتا و تتا نماینده ی توزیع چندجمله ای و z  نماینده ی شاخه ای از موضوعات و w نماینده ی شاخه ای از کلمات می باشد. سمت چپ فرمول بیانگر احتمال سند متنی می باشد.در سمت راست فرمول 4 عبارت وجود دارد . عبارت اول و سوم مربوط به پیدا کردن موضوعات است . عبارت دوم و چهارم مربوط به پیدا کردن کلمات در مقالات است .دو عبارت اول سمت راست فرمول مربوط به توزیع دریکله و دو عبارت باقی مانده مربوط به توزیع چند جمله ای می باشد . فرض کنید در شکل بالا و درون مثلث سمت چپ، دایره های آبی بیانگر مقالات مختلف می باشد.حال اگر ما مقالات را بر اساس موضوعات مختلف توزیع کنیم به شکل مثلث سمت راست در خواهند آمد . مقالات بسته به درصد شامل شدن موضوع، به سمت رئوس مثلث حرکت خواهند کرد.این فرایند توسط عبارت اول سمت راست فرمول بالا، انجام می شود.(اولین عبارت متعلق به توزیع دریکله). حال ما از توزیع چند جمله ای (عبارت سوم سمت راست فرمول بالا) برای تولید موضوعات بر اساس درصد بدست آمده از عبارت اول، استفاده می کنیم .حال  بعد از پیدا کردن موضوعات، خواهیم فهمید که کدام کلمات بیشترین ارتباط را با این موضوعات دارند.این کار توسط عبارت دوم سمت راست فرمول بیان شده(عبارت دوم توزیع دریکله)، انجام می شود.همان طور که در شکل زیر می بینید، موضوعات بر اساس کلمات توزیع شده اند. حال ما از توزیع چند جمله ای دیگر(عبارت چهارم) استفاده خواهیم کرد، برای پیدا کردن کلماتی که مرتبط تر با آن موضوعات هستند و با استفاده از توزیع دریکله، کلمات را با احتمال آنها تولید خواهیم کرد . این فرایند چندین بار اتفاق خواهد افتاد. بنابراین ما کلماتی را خواهیم یافت که ارتباط بیشتری با موضوعات دارند و میتوانیم مقالات را بر اساس آن موضوعات توزیع کنیم . پیاده سازی LDA با استفاده از  Scikit learnابتدا dataset مورد نظر را بارگذاری میکنیم . برای دریافت dataset از این لینک میتوانید اقدام کنید.در این مرحله ماتریس TF-IDF برای داکیومنت موردنظر را ایجاد می کنیم.همچنین فرایند توکن کردن و حذف کلمات ایست (stopwords) هم انجام شده است .حال مدل LDA را با تعداد موضوع موردنظر به وجود می آوریم و مدل را روی داده های آماده شده فیت می کنیم.بعد از فیت کردن، باید موضوعات را از component matrix استخراج کنیم.خروجی به شکل زیر خواهد بود . همانطور که می بینید، 5 موضوع از هم تفکیک شده و 7 کلمه ای که بیشترین ارتباط را با هر موضوع دارند. استخراج شده است .</description>
                <category>saeed imani</category>
                <author>saeed imani</author>
                <pubDate>Tue, 19 Jul 2022 19:15:45 +0430</pubDate>
            </item>
                    <item>
                <title>جنگو چیست ؟</title>
                <link>https://virgool.io/@imanisaeed56/%D8%AF%DB%8C%D8%AC%D9%86%DA%AF%D9%88-%DA%86%DB%8C%D8%B3%D8%AA-zzct4krx4uq0</link>
                <description>جنگو یک فرم ورک برای ایجاد وب سایت با زبان پایتون می باشد. در واقع با استفاده از این فرم ورک ، انجام کار های نسبتا دشواری نظیر ارتباط با دیتابیس و جستجو ی اطلاعات و در یافت اطلاعات از دیتابیس به راحتی قابل انجام است . همچنین این فرم ورک یک سیستم لاگین آماده را شامل میشود که از لحاظ امنیتی هم قابل قبول می باشد . عملیات CRUD  در این فرم ورک به آسانی قابل انجام است . پس استفاده از این فرم ورک کار ایجاد سایت را برای برنامه نویسان تا حدی آسان می کند و به برنامه نویس این امکان را می دهد که بیشتر تمرکز خود را روی طراحی سایت بگذارد و انجام کارهای ارتباط با دیتابیس و سیستم لاگین و پیاده سازی عملیات CRUD را برعهده ی این فرم ورک قرار دهد.جنگو چگونه کار می کند؟ جنگو از الگوی طراحی MVT یا همان (Model , View , Template)  پیروی می کند که در ادامه به توصیف هر آیتم خواهیم پرداخت.Model :در واقع مدل ، اطلاعات موجود در دیتابیس را برای ما فراهم می کند . Django  از تکنیک ORM  یا همان (Object Relational Mapping) برای دریافت اطلاعات از دیتابیس استفاده می کند و همین روش ارتباط با دیتابیس را راحت میکند . بدون استفاده از این روش ، نیاز است که ساختار دیتابیس مورد نظر را بشناسید و برای دریافت اطلاعات از دستورات دشوار دیتابیس استفاده شده ، بهره ببرید . پس ما در جنگو  مدل های خود را به صورت یک شی در فایل models.py  تعریف میکنیم که این شی شامل فیلد هایی می باشد.در واقع اگر فرض شود که از دیتابیس SQL استفاده شود، شی همان جدول و فیلد ها همان ستون های جدول هستند.View :ویو یک تابع است که یک درخواست http را به عنوان ورودی دریافت می کند.عملیات مورد نظر ،در بدنه ی این تابع نوشته می شود و زمانی که این تابع فراخوانی شود ، عملیات انجام می شود و داده ها برای نمایش به Template  فرستاده می شود .برای هر Template باید یک view درون فایل views.py نوشته شود .Template :معمولا یک فایل html  است که برای نمایش اطلاعات و خروجی تابع view  متناظر آن ، به کار گرفته می شود .برای ایجاد template  ابتدا باید یک فولدر به نام template  ایجاد کنید و فایل html  خود را درون این فولدر قرار بدهید.URL:برای جابه جا شدن بین صفحات یک سایت، نیاز به url  داریم . در واقع هر تابع تعریف شده در فایل views.py و هر template  متناظر با آن، توسط یک url جدا می شود تا مسیر اجرا شدن آنها مشخص باشد. در واقع client  از طریق url به محتویات سایت دسترسی پیدا میکند . url ها باید در فایل urls.py مشخص شوند .پس زمانی که client یک url  را وارد میکند ، ابتدا در فایل urls.py ، ویو متناظر با آن url فراخوانی می شود .(گفتیم که  view یک تابع است ) کد های درون بدنه ی این تابع اجرا شده و نتیجه ی خروجی در template متناظر با آن  view نمایش داده می شود و client این خروجی را مشاهده می کند.client url×فرم ورک×ارتباط×دیتابیس×</description>
                <category>saeed imani</category>
                <author>saeed imani</author>
                <pubDate>Wed, 29 Jun 2022 23:10:27 +0430</pubDate>
            </item>
            </channel>
</rss>