<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های زهره کریمی</title>
        <link>https://virgool.io/feed/@zohrehkarimiii2020</link>
        <description>کارشناسی ارشد علوم کامپیوتر- (محقق حوزه سیستم های توصیه گر)</description>
        <language>fa</language>
        <pubDate>2026-04-15 04:00:52</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/748232/avatar/61zZnQ.jpeg?height=120&amp;width=120</url>
            <title>زهره کریمی</title>
            <link>https://virgool.io/@zohrehkarimiii2020</link>
        </image>

                    <item>
                <title>Statistics&lt;p1&gt; [Types of Data]&gt;</title>
                <link>https://virgool.io/@zohrehkarimiii2020/statisticsp1-types-of-data-lc66k7zsdksb</link>
                <description>درود به همه دوستانحدود دو سال در اینجا فعالیتی نداشتم ولی از امروز 3 مهر 1404 سعی می کنم مطالبی رو که ریویو می کنم و یا جدید هست رو با برچسب (مثلا Statistics....) براتون به صورت خلاصه میزارم. من جایی ندیدم که بشه مطالب رو دسته بندی کرد که پست های هر موضوع در دسته بندی خودش مشخص بشه (مثل یوتیوب) اگر شخصی از شما بلد هست ممنون میشم من رو راهنمایی کنه.داده ها از دو دیدگاه دسته بندی می شن:📢📢📢🟥 1- از نظر ماهیت داده (Quantitive vs Qualitive)داده های کیفی (qualitive/categorical): بیان گر ویژگی و یا صفت هستند. به دو دسته تقسیم می شوند:            **** اسمی (Nominal): جنسیت (زن/مرد)، رنگ(قرمز/سبز...)           **** ترتیبی (Ordinal): علاوه بر دسته بندی یک ترتیب منطقی هم دارند: سطح رضایت (خیلی خوب/خوب/ متوسط/ بد/ خیلی ضعیف)داده های کمی (Quantitive/Numerical): ذاتا عددی هستند و می توان روی آن ها محاسبات ریاضی انجام داد.          **** گسسته (Discrete): تعداد دانشجویان یک کلاس، تعداد شرکت کنندگان یک مسابقه         **** پیوسته (Continous): قد افراد، وزن کالا🟥2- از نظر  مقیاس اندازه گیری (Levels of Measurement-Scale of Data)اسمی (Nominal) : فقط دسته بندی مثل نوع شغل (معلم/پزشک/ مهندس...)ترتیبی (Ordinal): دسته بندی + ترتیب مثل سطح تحصیلات (دیپلم/ کاردانی/ کارشناسی / ارشد / دکترا)فاصله ای (Interval): داده های عددی با فاصله مساوی بین مقادیر  مثل دما برحسب سانتیگرادنسبی (Ratio): داده های عددی با فاصله مساوی و قابلیت نسبت گیری مثل قد، وزن🟥 3- از نظر منبع دادهداده های اولیه (Primary Data): مستقیم از منبع اصلی جمع آوری شده است (پرسشنامه، مصاحبه، سنسور....)داده های ثانویه (Secondary Data): از منابع دیگر گرفته شده است (دیتابیس، گزارش گیری ....)🟥 4- از نظر ساختار دادهداده های مقطعی (cross-sectional): داده هایی که در یک لحظه یا بازه کوتاه جمع آوری می شوند مثل نتایج یک نظرسنجیداده های سری زمانی (Time Series): داده هایی که به مرور زمان جمع آوری می شوند مثل قیمت دلار روزانه🔑 خلاصهکیفی (Categorical): اسمی ↔ ترتیبیکمی (Numerical): گسسته ↔ پیوستهمقیاس‌ها: اسمی ↔ ترتیبی ↔ فاصله‌ای ↔ نسبیساختار: مقطعی ↔ سری زمانی🟢🟢🟢مثال🟢🟢🟢📌 ارتباط با Data Analyst / Recommender Systems:وقتی می‌گی &quot;کاربر فیلم رو Like کرده یا نه&quot;، داده کیفی اسمی هست.وقتی می‌گی &quot;کاربر فیلم رو از 1 تا 5 امتیاز داده&quot;، داده کمی ترتیبی هست.وقتی می‌گی &quot;کاربر 12 بار خرید کرده&quot;، داده کمی گسسته هست.وقتی می‌گی &quot;کاربر در سایت 3.25 ساعت فعال بوده&quot;، داده کمی پیوسته هست.</description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Thu, 25 Sep 2025 09:40:05 +0330</pubDate>
            </item>
                    <item>
                <title>مروری بر نسخه های SQL Server</title>
                <link>https://virgool.io/@zohrehkarimiii2020/%D9%85%D8%B1%D9%88%D8%B1%DB%8C-%D8%A8%D8%B1-%D9%86%D8%B3%D8%AE%D9%87-%D9%87%D8%A7%DB%8C-sql-server-yipfyoh1c2uw</link>
                <description>درود به همه روز بارونی 13 آبان سال 1403 شمسی همگی تون به خیر و شادی باشه: حضرات تحلیل گر داده، دیتابیس کار، هوش تجاری ساز و الی بقیه ، یه متن خیلی کوتاه برای اینکه با نسخه های sql server آشنا بشین»1- نسخه Enterpriseکاملترینه، یعنی همه ویژگی های sql server تو این نسخه هست و  از همه شون هم گرونتره.2- نسخه Standardاین نسخه محدودیت پشتیبانی از پردازنده، رم رو داره. و خب بعضی از ویژگی های نسخه enterprise رو هم نداره.3- نسخه Developerهمه ویژگی های نسخه enterprise رو داره، اما محدودیت مجوز داره یعنی فقط برای تست و دولوپ می تونید ازش استفاده کنید. خودمونیش میشه اینکه تو محیط واقعی یا همون پروداکشن قابلیت استفاده نداره.4- نسخه Webخب این هم که اسمش روش هست بیشترین کاربرد رو برای web site hostingها داره. محدودیت هسته پردازنده و رم هم داره. ویژگیهایی هم که داره قطعا از نسخه enterprise خیلی کمتر هست.5- نسخه Expressیه نسخه بسیار سبک، رایگان ولی پر از محدودیت. نهایتا هم تا 4 هسته پردازنده رو پشتیبانی می کنه، امکان بک آپ گیری خودکار هم نداره. بعد یه خلاقیتی که به خرج دادن این همه محدودیت داره ولی تو محیط واقعی قابلیت استفاده رو داره))) . میشه برای جاهایی که تا 10 گیگابایت میخان رشد کنند مورد استفاده قرار بگیره (رشد داده تا 10 گیگابایت)6- نسخه Business Intelligenceاین نسخه برای تجزیه و تحلیل داده ها و ابزار هوش تجاری طراحی شده . و شامل امکاناتی برای گزارش گیری  و تجزیه و تحلیل پیشرفته هست.7- نسخه Azureاین نسخه بر روی پلتفرم ابری Azure ایجاد می شود و امکاناتی برای ذخیره سازی و مدیریت داده ها در فضای ابری ایجاد می کند.فال حافظ امروزم براتون میزارم&gt;&gt; شاد باشین &gt;&gt;*********دردِ عشق ار چه دل از خلق نهان می‌دارد                 حافظ این دیدهٔ گریانِ تو، بی چیزی نیست*****</description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Sun, 03 Nov 2024 14:32:15 +0330</pubDate>
            </item>
                    <item>
                <title>پایگاه داده (بخش اول)</title>
                <link>https://virgool.io/@zohrehkarimiii2020/%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-b44lbuemwohk</link>
                <description>به عنوان کسی که می خاد تحلیلگر داده باشه، پایگاه داده از نون شب براش واجب تره، پس اینجا یه جزوه از پایگاه داده تهیه می کنم که همه مخصوصا دوستان تحلیل گر داده بتونن استفاده کنن. امیدوارم براتون مفید باشه.تو اشتراک دانسته هامون به دیگران بخشنده باشیم، اول باعث قویتر شدن خودمون توی اون دانش می شه و هم سهم (هرچند جزئی) توی پیشرفت دیگران و بهتر شدن دنیا داریم.انواع نسخه های Sql Serverهر ورژن از sql server دوستان 5 تا edition داره:-نسخه Enterpriseکاملترینه، یعنی همه ویژگی های sql server تو این نسخه هست و در نتیجه از همه شون هم گرونتره.-نسخه Standardاین نسخه محدودیت پشتیبانی از پردازنده، رم رو داره. و خب بعضی از ویژگی های نسخه enterprise رو هم نداره.-نسخه Developerهمه ویژگی های نسخه enterprise رو داره، اما محدودیت مجوز داره یعنی فقط برای تست و دولوپ می تونید ازش استفاده کنید. خودمونیش میشه اینکه تو محیط واقعی یا همون پروداکشن قابلیت استفاده نداره.-نسخه Webخب این هم که اسمش روش هست بیشترین کاربرد رو برای web site hostingها داره. محدودیت هسته پردازنده و رم هم داره. ویژگیهایی هم که داره قطعا از نسخه enterprise خیلی کمتر هست.-نسخه Expressیه نسخه بسیار سبک، رایگان ولی پر از محدودیت. نهایتا هم تا 4 هسته پردازنده رو پشتیبانی می کنه، امکان بک آپ گیری خودکار هم نداره. بعد یه خلاقیتی که به خرج دادن این همه محدودیت داره ولی تو محیط واقعی قابلیت استفاده رو داره))) . میشه برای جاهایی که تا 10 گیگابایت میخان رشد کنند مورد استفاده قرار بگیره (رشد داده تا 10 گیگابایت)</description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Mon, 29 Apr 2024 17:12:53 +0330</pubDate>
            </item>
                    <item>
                <title>24 اصطلاح مهم در دنیای ارز دیجیتال</title>
                <link>https://virgool.io/@zohrehkarimiii2020/24-%D8%A7%D8%B5%D8%B7%D9%84%D8%A7%D8%AD-%D9%85%D9%87%D9%85-%D8%AF%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A7%D8%B1%D8%B2-%D8%AF%DB%8C%D8%AC%DB%8C%D8%AA%D8%A7%D9%84-xsjlvb7q313g</link>
                <description>1- صرافی (Exchange): صرافی بستری است که از طریق آن می توان به خرید و فروش رمزارزها پرداخت.2- کریپتوکارنسی(cryptocurrency): نوعی ارز دیجیتالی رمزگذاری شده است و مستقل از هر بانک یا مرجع مرکزی عمل می کند.3- صرافی غیرمتمرکز (Decentralization): به صرافی هایی که احراز هویت در اونها اجباری نیست صرافی غیرمتمرکز گفته میشه.4- دفتر کل (Central Ledger):به سازمانی که داده های مربوط به تراکنش ها و سایر موارد مشابه را به صورت سازماندهی شده نگهداری می کند دفتر کل گفته می شود.5- بیت کوین (BitCoin): اولین و مشهورترین کریپتوکارنسی بیت کوین است که به صورت غیرمتمرکز عمل کرده و کسی قادر به کنترل آن نیست.6- ساتوشی (Satoshi): کوچک ترین واحد بیت کوین ساتوشی نام دارد. هر بیت کوین را می توان به صد میلیون واحد تقسیم کرد و هر ساتوشی یک صد میلیونم بیت کوین است.7- کوین (Coin): کوین ها رمزارزهایی هستند که به صورت مستقل عمل می کنند و بلاک چین اختصاصی دارند، مثل بیت کوین و اتریوم.8- آلت کوین (AltCoin): آلت کوین ها رمزارزهایی هستند که بعد از بیت کوین ایجاد شده اند.9- توکن (Token): توکن ها رمز ارزهایی هستند که بلاک چین اختصاصی ندارند و بر بستر سایر رمزارزها کار می کنند مثل تتر.10- کوین با قیمت ثابت (Stable Coin): به کوین هایی که ارزش آنها با یک دارایی ثابت مثل دلار برابر است گفته می شود. مثل تتر11- وایت پیپر (white paper): گزارش عملکرد، گزارشی است که در آن توسعه دهندگان به بیان جزئیات طرح یا سیستمی که ایجاد کرده اند می پردازند. مثلاً در سال 2008، ساتوشی ناکاموتو وایت پیپری از بیت کوین منتشر کرد.12- بلاک (Block): هر بلاک در بلاک چین یک پایگاه داده از کلیه معاملات انجام شده را تا زمان پر شدن بلاک نگهداری می کند.13- ارتفاع بلاک (Block Hight): به تعداد بلاک ها، قبل از بلاک مورد نظر در بلاک چین، ارتفاع بلاک گفته می شود.14- همتا به همتا (Peer to Peer): در شبکه همتا به همتا، دو یا چند کامپیوتر بدون ارتباط واسطه با یکدیگر در ارتباط هستند.15- ماینر (Miner): کامپیوتر یا تجهیزاتی که وابسته به توان محاسباتی اش، بیت کوین یا ارز خاصی را استخراج می کند.16- نهنگ (Whale): به کسانی که تراکنش هایی با حجم های بسیار بالا انجام می دهند و دارایی زیادی در بازار دارند گفته می شود. استراتژی هایی که توسط افراد وال انجام می شود تاثیر بسیار زیادی بر وضعیت بازار ارز دیجیتال دارد.17- خرس (Bear):کاربرانی هستند که همیشه حس بدبینی نسبت به قیمت رمزارزها دارند و روند بازار را رو به پایین پیش بینی می کنند.18- ارزش بازار (Market Cap): ارزش بازار از ضرب قیمت فعلی ارز دیجیتال مورد نظر در تعداد کل ارزهای در گردش بدست می آید.19- هارد فورک (Hard Fork): در دنیای رمز ارزها یک سری قوانین وجود دارند به عنوان پروتکل های رمز ارز. وقتی که در این پروتکل ها تغییرات اساسی صورت بگیرد از این اصطلاح استفاده می شود. توی هاردفورک ها نسخه جدید با نسخه قبلی سازگاری ندارد.20- سافت فورک (Soft Fork):در سافت فورک، یک تغییر جزئی در پروتکل رمزارز مورد نظر ایجاد می شود که با نسخه های قبلی سازگار است.21- هشینگ (Hashing): به فرایند تولید خروجی با تولید ثابت، از ورودی ها با اندازه متغیر گفته می شود.22- نرخ هش (Hash Rate):نرخ هش که یکی از مهمترین عاملها در انتخاب ماینر هست، نشان می دهد کامپیوتر شما تا چه اندازه ای  توان تولید (سرعت انجام عملیات استخراج)  دارد و عملکرد آن چقدر است.23- حمله 51 درصد (Attack 51%):اگر بیشتر از نصف شبکه بلاک چین توسط فرد یا گروهی از افراد کنترل شود، امکان ایجاد اختلال در شبکه را به وجود می آورد. و حمله 51 درصد اتفاق می افتد.24- آربیتراژ (Arbitrage): به سودی که از اختلاف قیمت بین دو یا چند تا بازار بر روی یک دارایی بدست میاد گفته می شود.</description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Tue, 08 Nov 2022 12:59:54 +0330</pubDate>
            </item>
                    <item>
                <title>ایندکس در اکسل</title>
                <link>https://virgool.io/@zohrehkarimiii2020/%D8%A7%DB%8C%D9%86%D8%AF%DA%A9%D8%B3-%D8%AF%D8%B1-%D8%A7%DA%A9%D8%B3%D9%84-tsoiyvxffllb</link>
                <description>اکسل یکی از خدایان حوزه کار با داده هاست. و کمتر کسی هست که تو حوزه  هر چی مربوط به داده کار کرده باشه و گذرش به اکسل نیفتاده باشه.سعی می کنم تو هر قسمت یکی از پرکاربردترین فرمولها رو براتون توضیح بدم (باشد که مورد پسندتون بشه:)INDEX:این تابع مقدار موجود توی یک محدوده مشخص رو برمی گردونه. این تابع جزو دسته توابع جستجو و مرجع (Lookup &amp; Reference) هست. برای این تابع دو تا قالب داریم:قالب آرایه (Array Format)قالب مرجع (Reference Format)قالب آرایه: این قالب وقتی استفاده می شه که بخوایم مقدار یه سلول رو تو یه محدوده مشخص شده پیدا کنیم. ساختار تابع INDEX با قالب آرایه به صورت زیر هست:قالب مرجع: از قالب مرجع وقتی استفاده می کنیم که بخوایم مقدار یه سلول رو با انتخاب چند تا محدوده مشخص شده پیدا کنیم. ساختار تابع INDEX اینجا به این صورت می شه:مثال برای INDEX in array:مثال برای INDEX in Reference:https://www.ablebits.com/office-addins-blog/2015/02/18/excel-index-function/</description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Mon, 05 Sep 2022 18:12:45 +0430</pubDate>
            </item>
                    <item>
                <title>تفاوت UNION  و UNION ALL در SQL</title>
                <link>https://virgool.io/@zohrehkarimiii2020/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-union-%D9%88-union-all-%D8%AF%D8%B1-sql-ir0jxvlg9h0i</link>
                <description>بدون حرف تفاوت این دو تا رو یاد بگیرین: https://www.softwaretestingclass.com/sql-union/https://www.wikitechy.com/tutorials/sql/union-all-in-sqlپ.ن: خب من دوست داشتم بدون اینکه توضیحات اضافه ای اینجا بزارم خیلی سریع تفاوت UNION و UNION ALL رو براتون تصویری توضیح بدم. ولی ویرگول عزیز اجازه انتشار پست زیر 300 کلمه رو نمیده. مسئولین ویرگول پیگیری کنن لطفاً. امیدوارم به 300 تا کلمه رسیده باشم تا الان برای انتشار پست:)پ.ن: به نظرم 300 تا نشد ولی پست منتشر شد، متوجه منظور ویرگول نشدم از 300 تا ؟!!!</description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Mon, 01 Aug 2022 11:46:21 +0430</pubDate>
            </item>
                    <item>
                <title>مختصری از Clarity</title>
                <link>https://virgool.io/@zohrehkarimiii2020/%D9%85%D8%AE%D8%AA%D8%B5%D8%B1%DB%8C-%D8%A7%D8%B2-clarity-ycacuprxuhlp</link>
                <description>خب دوستان دیتاساینسی بدونید و آگاه باشین که Microsoft Clarity یه ابزار تجزیه و تحلیل هست و می تونه اطلاعاتی رو درباره نحوه تعامل کاربرها با سایت ارائه بده. (البته مثل Analytics کامل نیست ولی برای اینکه روی خود صفحه وب اطلاعات دقیقی از رفتار کاربرا توی اون صفحه بدست بیاریم خیلی جوابه)از این بابت که روی سرعت سایت تاثیر منفی می زاره هم خیالتون راحت باشه که این نرم افزار بهینه شده ست و هیچ مشکلی روی سرعت سایت شما نمی زاره.کلاریتی سه تا ویژگی خیلی اساسی داره که در ادامه براتون توضیح میدم:Heatmap:هیت مپ نشون میده که کدوم بخش از وب سایت شما بیشتر مورد استقبال کاربرا بوده. دو نوع هیت مپ وجود داره: Scrollmap که مربوط به اسکرول های کاربرا میشه و Clickmap که مربوط به کلیک های کاربراست. اگه بخوایم بدونیم چه محتوایی از سایت باعث جذب بیشتر مخاطبا شده از Clickmap استفاده می کنیم. اگه هم بازدیدکننده ها فقط وارد سایت بشن و اسکرول کنن که با استفاده از Scrollmap ازش مطلع میشیم.Session Playback:با این ویژگی سشن ها رو به صورت زنده می تونیم ببینیم. اینکه کاربر دقیقاً کجا کلیک کرده، چه جاهایی اسکرول کرده و کلیک بعدیش روی کدوم صفحه ها بوده.Insights Dashboard:داشبورد هم اطلاعات آماری، نمای کلی از رفتار کاربرا و بازدیدکننده های سایت رو به ما نشون میده. این صفحه اطلاعات خیلی کلی در اختیار ما قرار میده: مثلاً می تونید تعداد کاربرایی که روی لینک ها کلیک می کنن رو ببینید، تعداد خطاهایی که توی سایت شما اتفاق افتاده ، متوسط زمانی که کاربر توی سایت شما حضور داره و کلی موردهای دیگه.بعد از اینکه کلاریتی رو به سایت خودتون متصل کردین، حدود 2 ساعت طول می کشه تا تغییرات روی کلاریتی اعمال بشه و بتونید اتفاقاتی که توی سایت افتاده رو سمت کلاریتی ببینید. (یکی از تفاوتهای کلاریتی با آنالیتیکس)</description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Thu, 23 Jun 2022 23:43:23 +0430</pubDate>
            </item>
                    <item>
                <title>ورود به دنیای رمزارزها (بخش پنجم)</title>
                <link>https://virgool.io/@zohrehkarimiii2020/%D9%88%D8%B1%D9%88%D8%AF-%D8%A8%D9%87-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%B1%D9%85%D8%B2%D8%A7%D8%B1%D8%B2%D9%87%D8%A7-%D8%A8%D8%AE%D8%B4-%D9%BE%D9%86%D8%AC%D9%85-ttk4pzwfnyxp</link>
                <description>منبع: khanesarmaye.comتو بخش اول درباره رمزارز، جنبش سایفرپانک، بیت کوین، بلاک چین و سه تا از شبکه های مهم رمز ارز توضیح دادم. بخش دوم مفاهیم هش، بلاک، الگوریتم اجماع، عدد نانس، ماین، ماینینگ،ماینر رو بررسی کردیم. تو بخش سوم هم انواع شبکه ها آورده شدن، تو بخش چهارم درباره دفتر کل توزیع شده، انواع مختلف این دفتر و مثلث مقیاس پذیری صحبت کردیم. ادامه بحث رو پیش ببریم:))سختی شبکه:یه متغیری هست که هدفش ثابت نگه داشتن میانگین زمانی ایجاد یه بلاک توی شبکه ست. اجازه بدین این طوری براتون توضیح بدم: گفتیم که اساس کار ارزای دیجیتالی که از سازوکار استخراج استفاده می کنن حل مساله هش هست تا وقتی جواب رو پیدا کردن، توسط اون جواب تراکنش هایی که توی یه بلاک قرار گرفته تایید بشن. که گفتیم ماینرها این کار رو با حدس و خطا انجام میدن و میانگین زمانی هم برای انجام این کار 10 دقیقه هست. حالا در نظر بگیرین که تعداد ماینرا زیاد بشه در نتیجه تعداد حدس ها هم بالا میره و ماینرا زودتر به جواب می رسن. سختی شبکه اینجا به کار میاد که نزاره این اتفاق بیفته و با زیاد شدن تعداد ماینرا سختی شبکه هم بالا می ره. سختی شبکه توی بیت کوین هر دو هفته یه بار تغییر پیدا می کنه. پس سختی شبکه این رو هم نشون می ده که استخراج بیت کوین نسبت به دفعه قبل چقدر سخت تر شده.هش ریت:متغیر هش ریت براساس سختی شبکه تعریف میشه و مفهومش تعداد تلاش ها توی هر ثانیه تو شبکه بیت کوین برای کامل کردن محاسبات به کار برده میشه. واحد هش ریت هم میشه هش بر ثانیه. یه تعریف دیگه اینکه هش ریت تقریبا تعداد همه هش هایی هست که ماینرا برای رسیدن به عدد نانس تولید می کنن.یا ایهاالناس بدانید که سختی شبکه و هش ریت با همدیگه ارتباط مستقیم دارن.هاوینگ (Halving):هاوینگ به فرایند نصف شدن پاداش استخراج توی هر بلوک گفته میشه. از اونجایی که گفتیم هر 10 دقیقه یبار یه بلاک استخراج میشه پس تو هر ساعت 6 تا بلاک استخراج میشه (در تاریخی که الان هستیم 4 آوریل 2021) و هاوینگ هم بعد از هر 210 هزار تا بلاک اتفاق میفته، در نتیجه روند هاوینگ هر چهار سال یکبار اتفاق میفته.یه سری اتفاقایی که برای بیت کوین افتاده از اولین روز پیدایشش هم خیلی جالب هست براتون می زارم:وقایع بیت کوین?))در سال 2008 وایت پیپر بیت کوین منتشر شد.در 3 ژانویه 2009 اولین بلاک بیت کوین با تیتری از روزنامه تایمز لندن ایجاد شد.در 12 ژانویه 2009 اولین تراکنش بیت کوین انجام شد.در 22 مای می 2010 شخصی با 10000 بیت کوین دو تا پیتزا خرید و اولین معامله واقعی با بیت کوین انجام شد. این روز رو به عنوان روز پیتزا نام گذاری کردند.در سال 2010،  MT.Gox اولین صرافی بود که بیت کوین را در فهرست ارزهایش لیست کرد .</description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Fri, 13 May 2022 23:43:57 +0430</pubDate>
            </item>
                    <item>
                <title>ورود به دنیای رمز ارزها (بخش چهارم)</title>
                <link>https://virgool.io/Solidity/%D9%88%D8%B1%D9%88%D8%AF-%D8%A8%D9%87-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%B1%D9%85%D8%B2-%D8%A7%D8%B1%D8%B2%D9%87%D8%A7-%D8%A8%D8%AE%D8%B4-%DA%86%D9%87%D8%A7%D8%B1%D9%85-rlhaa4vodouh</link>
                <description>تو بخش اول درباره رمزارز، جنبش سایفرپانک، بیت کوین، بلاک چین و سه تا از شبکه های مهم رمز ارز توضیح دادم. بخش دوم مفاهیم هش، بلاک، الگوریتم اجماع، عدد نانس، ماین، ماینینگ،ماینر رو بررسی کردیم. تو بخش سوم هم انواع شبکه ها آورده شدن، بریم سراغ ادامه دنیای رمزارزها ببینیم چه خبره :)))منبع: تسنیم نیوزدفتر کل توزیع شده (Distributed Ledger Technology)همون طور که گفتیم بلاک چین یه نوع دفتر کل توزیع شده هست. دفتر کل یه نوع پایگاه داده توزیع شده س که بین کامپیوترای مختلف تو کل دنیا به اشتراک گذاشته شده و باعث شده یه فضای غیرمتمرکز به وجود بیاد.انواع مختلفی از این دفاتر وجود دارن که از جمله مهمترینا میشه به موردای زیر اشاره داشت:بلاک چینکلی درباره ش صحبت کردیم و در ادامه هم بیشتر درباره ش حرف میزنیم.هش گرافیه نوع دیگه از دفتر کل توزیع شده هست که یه سری ویژگی های متفاوتی با بلاک چین داره و سعی کرده محدودیت هایی که توی شبکه بلاک چین هست رو کمتر کنه از جمله:در حالی که بیت کوین در هر ثانیه از 6 تراکنش و اتریوم از 15 تراکنش پشتیبانی می کند، الگوریتم های هش گراف تا هزاران تراکنش در ثانیه را انجام می دهند. یعنی مقیاس پذیری و سرعت بالاتر، ساختار هش گراف به صورت درختی است. در این الگوریتم از روشی به نام گاسیپ استفاده می شود که در آن، هر گره به شکل تصادفی گره بعدی رو انتخاب می کنه و این ساختار تا زمانی که همه گره ها از تمامی اطلاعات آگاهی پیدا کنن ادامه داده میشه.تنگل:هدف تنگل گسترش اکوسیستم اینترنت اشیا هست و برای همینم از شبکه آیوتا (IOTA) استفاده می کنه. هدفشم اینه که بتونه یه شبکه مقیاس پذیر و بدون کارمزد برای انجام تراکنش ها بین دستگاه های اینترنت اشیا ایجاد کنه. تفاوتی هم که با بلاک چین داره اینه که تنگل یه نوع بلاک چین بدون بلاک هست و تراکنشا توسط کاربرا و به شکل رشته ای از تراکنشای متصل به یکدیگه ایجاد میشه و از هیچ ماینری برای کاووش و تایید تراکنشا استفاده نمیشه.مثلث مقیاس پذیری در DLT:غیرمتمرکز بودن: یعنی هیچ فرد یا گروهی توانایی هک، سرقت، سانسور و یا ایجاد تغییر در بلاک چین را نداشته باشد. امن بودن: بایستی در مقابل حملاتی مثل حمله 51 درصد، حمله سیبل و یا حملات داس مقادم باشد. سریع و مقیاس پذیر باشد و توانایی انجام هزاران تراکنش در ثانیه را داشته باشد.btlix.com :منبع </description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Tue, 19 Apr 2022 08:29:34 +0430</pubDate>
            </item>
                    <item>
                <title>ورود به دنیای رمزارزها (بخش سوم)</title>
                <link>https://virgool.io/@zohrehkarimiii2020/%D9%88%D8%B1%D9%88%D8%AF-%D8%A8%D9%87-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%B1%D9%85%D8%B2%D8%A7%D8%B1%D8%B2%D9%87%D8%A7-%D8%A8%D8%AE%D8%B4-%D8%B3%D9%88%D9%85-nz31fp606ika</link>
                <description>https://virgool.io/@HShahمنبع: بلاک چین عمومی و بلاک چین خصوصی چیست؟تو بخش اول درباره رمزارز، جنبش سایفرپانک، بیت کوین، بلاک چین و سه تا از شبکه های مهم رمز ارز توضیح دادم. بخش دوم مفاهیم هش، بلاک، الگوریتم اجماع، عدد نانس، ماین، ماینینگ،ماینر رو بررسی کردیم. بریم سراغ ادامه دنیای رمزارزها ببینیم چه خبره :)))شبکه های بلاک چین می توانند در دسته های زیر قرار بگیرند:1-عمومی : همه افراد در سرتاسر دنیا می تونن به این نوع شبکه دسترسی داشته باشن، مثل اینترنت. این نوع شبکه ها غیر متمرکز هستن و کسی روشون نظارتی نداره. ویژگی های شبکه های عمومی:خواندن و نوشتن باز هست.سرعت کندتر به دلیل عمومی بودن و ترافیک بالاامنیت بالای شبکه به علت استفاده از الگوریتم های اجماع مثل اثبات کار، اثبات سهمهویت افراد در شبکه ناشناس، و یا نیمه شناس هست.دارایی عمومی است.2-خصوصی: تو این شبکه ها برای ورود نیاز به مجوز وجود داره. این نوع شبکه ها برای افرادی که عضو شبکه هستن محدودیت ایجاد می کنن با مجوزهایی که برای هر شخص تعریف میشه. پلتفرمایی مثل هایپرلجر و کوردا از این دسته هستن. طبیعتا برای ورود به این شبکه ها دعوتنامه ای از سمت مدیر شبکه به اعضا ارسال میشه.ویژگی های شبکه های خصوصی:خوندن و نوشتن با مجوز انجام میشه.سرعت بیشتر مشارکت کنندگان در این نوع از شبکه از پیش تایید شده اند.هویت افراد در شبکه مشخص است.نوع دارایی بر اساس مبنای سازمان متفاوت می باشد.3-هیبریدی: همونطور که از اسمشم مشخصه ترکیبی از عمومی و خصوصی هست و از هر نوع شبکه یه سری ویژگی ها رو داره. Dragonchain از انواع این شبکه هست.4-کنسرسیومی/فدرالی: این نوع شبکه ها توسط بیشتر از یه سازمان مدیریت میشه و تبادل اطلاعات و یا استخراج بینشون در حال انجام هست. این نوع شبکه ها معمولاً توسط بانکا، سازمانای دولتی مورد استفاده هستند.خوبه که بدونین بیت کوین و اتریوم، لایت کوین نوعی شبکه بلاک چین عمومی هست. یعنی هر کسی می تونه داده ها رو توی بلاک چین بنویسه و هر شخص دیگه ای هم می تونه بیاد این داده ها رو بهش دسترسی پیدا کنه و بخونه.اگه بخوایم با یه دید دیگه هم این شبکه ها رو تقسیم بندی کنیم به دو تا دسته شبکه های با مجوز و شبکه های بدون مجوز تقسیم میشن:ویژگی های شبکه های با مجوز:سرعت بالامدیریت محفوظاعضاء خصوصیاعضا هویت سنجی شده و قابل اعتمادشبکه دارای قانون خاص خودش می باشد.ویژگی های شبکه های بدون مجوز:سرعت پایینشبکه باز و شفاف است.اعضاء عمومی عدم نیاز به هویت سنجی اعضاءعدم نیاز به قانون خاصبراساس این چهار دسته بندی عمومی یا خصوصی بودن و با مجوز و یا بدون مجوز بودن شبکه ماتریسی ایجاد شده که به شکل زیر هست:https://way2pay.ir/ :منبع</description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Mon, 11 Apr 2022 08:27:04 +0430</pubDate>
            </item>
                    <item>
                <title>ورود به دنیای رمزارزها(بخش دوم)</title>
                <link>https://virgool.io/Solidity/%D9%88%D8%B1%D9%88%D8%AF-%D8%A8%D9%87-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%B1%D9%85%D8%B2%D8%A7%D8%B1%D8%B2%D9%87%D8%A7%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85-shtkccsl1ds3</link>
                <description>https://www.excoino.com/: منبع: تو بخش اول درباره رمزارز، جنبش سایفرپانک، بیت کوین، بلاک چین و سه تا از شبکه های مهم رمز ارز توضیح دادم. بریم تو بخش دوم یه کم بلاک چین رو دقیق تر نگاه کنیم:خب اول ببینیم هش و بلاک چیه؟؟؟توابع فشرده ساز (Hash Function): هش فرایندی هست که اطلاعات ورودی بلاک چین رو به حروف و اعداد رمزنگاری شده که طول ثابتی (هگزادسیمال) هم دارند تبدیل می کنه. برای این کارم از الگوریتم های پیچیده ریاضی استفاده می کنه. توابع هش انواع مختلفی دارند، که بلاک چین بیت کوین از نوع SHA256 Hash استفاده می کنه. از جمله ویژگی هایی که توابع هش دارند این هست که:هر ورودی خاص، خروجی مختص خودش رو داره (اصطلاحا عدم تصادم)برگرداندن تابع هش یعنی از خروجی به ورودی رسیدن تقریبا غیر ممکن هست (یک طرفه بودن)با داشتن ورودی و خروجی مشخص، امکان اینکه بتونیم یه ورودی پیدا کنیم که همون خروجی قبلی رو بهمون بده وجود نداره ( عدم پیش بینی خروجی یکسان)اگه تغییری توی ورودی به وجود بیاد، مقدار خروجی هش هم تغییر پیدا می کنه.کاربرد هش هم برای استخراج بیت کوین هست، تو مراحل مختلف استخراج مثل پیوند دادن ورودی و خروجی تراکنش ها، بررسی مانده و .... کسایی که کار استخراج رو انجام میدن که بهشون ماینر گفته میشه برای اینکه بتونن یه هش معتبر برای بلاک بعدی پیدا کنن تعداد بی شمار باری این تابع هش رو اجرا می کنن.بلاک (Block): بلاک مجموعه ای از تراکنش ها هست که به یک بلاک چین اضافه میشه. عناصر اصلی بلاک شامل : شماره بلاک، عدد نانس (براتون میگم در ادامه خیلی مهمه این عدد)، بخش دیتا مربوط به تراکنش ها یا عبارات  هش  هست. جزئیات تراکنش هایی که اضافه میشه مثل آدرس عمومی فرستنده، آدرس عمومی گیرنده، هش بلاک قبلی، هش اختصاصی و زمان انجام تراکنش و... تو شکل دموی یه بلاک رو ببینین:https://demoblockchain.org/block: منبععدد نانس (Nonce)  مخفف number only used once یا عددی که فقط یک بار استفاده شده هست تو سیستم رمزارزها یه عدد کاملا تصادفی و یه فیلد 32 بیتی (4 بایتی) هست، این عدد نانس شماره ای هست که به بلاک هش شده توی بلاک چین اضافه میشه. این عدد با زمان تغییر می کنه تا از عدم استفاده دوباره از مقادیر خاص مطمئن باشیم. ماینرها توی فرایند استخراج کردن به دنبال پیدا کردن این عدد هستن. اونا باید یه نانس رو حدس بزنن (پیدا کنن) و اون رو به هش اصلی فعلی اضافه کنن، و با هش هدف مقایسه ش کنن. اگه مقدار مطابقت داشت راه حل پیدا شده (تایید یا رد بلاک ایجادشده توسط الگوریتم اجماع هست که براتون میگم تو قسمت بعدی) و بعد از اضافه شدن بلاک به زنجیره بلاک ها بهشون پاداش (بیت کوین) تعلق میگیره.  فرایند ماینینگ هم به طور میانگین 10 دقیقه هست.یه نمونه از زنجیره بلاک ها هم به این صورت هست،(نصفه عکس نیست این بلاک ها ادامه دارن )https://demoblockchain.org/blockchain: منبع ماین: به معنی استخراج رمز ارزها می باشد.ماینینگ: به تمام فرایندهایی که برای استخراج در سیستم بلاک چین صورت می پذیرد، ماینینگ گفته می شود. عملیات ماینینگ توسط یک کاربر و سیستم کامپیوتری انجام می شود.ماینر: به کسی که عملیات ماینینگ را انجام می دهد ماینر گفته می شود. ماینرها در امن سازی شبکه و پردازش تراکنش های بیت کوین نقش مهمی دارند.الگوریتم اجماع (Consensus Algorithm): همونطور که گفتم بلاک چین یه دفتر کل هست که دست تمامی افرادی که تو شبکه هستن می تونه باشه و این همون مفهوم توزیع شده بودن شبکه رو می رسونه. مزیت این روش هم جلوگیری از هک شدن، هر نوع کلاهبرداری هست. گفتیم که بلاک چین غیرمتمرکز هم هست، یعنی هیچ دولت یا سازمانی وجود نداره که نظارت داشته باشه و اعتبار یک بلاک ایجادشده رو تایید یا رد کنه. این تایید یا رد با استفاده از الگوریتم اجماع صورت می گیره.مجموعه ای از تراکنش ها یک بلاک را تشکیل می دهد، چنانچه بیش از 51 % نودها، اضافه شدن این بلاک را با بلاک چین تایید کنند. الگوریتم اجماع روشی هست که با استفاده از اون تمامی افرادی که تو شبکه بلاک چین فعال هستن، به یه توافق مشترک درباره وضعیت موجود دفتر کل برسن. پس میتونیم بگیم این الگوریتم اعتبار (Realibility) رو تو شبکه بلاک چین و بین نودها (گره ها) توی محیط توزیع شده برقرار می کنه. [نود یا گره هم به تک تک اعضایی که تو شبکه هستن گفته میشه]، این پروتکل تضمین می کنه هر بلاک جدیدی که به شبکه بلاک چین اضافه میشه، تنها نسخه واقعی هست و توسط تمام گره ها(نودها) تاییده شده. الگوریتم اجماع سه تا کاربرد خیلی مهم توی شبکه بلاک چین داره:بررسی و تصمیم گیری درباره صحت یه تراکنش و ذخیره بر روی دفتر کل توزیع شدهیکپارچه سازی اطلاعات روی سیستم اعضای شبکهمدیریت شبکه با انتخاب برخی از اعضاء به عنوان رهبراین الگوریتم انواع مختلفی داره از جمله مهمتریناش الگوریتم اجماع اثبات سهام (POS) و الگوریتم اجماع اثبات کار (POW) که تو بخش های بعدی درباره ش مفصل حرف می زنیم.</description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Mon, 04 Apr 2022 10:52:25 +0430</pubDate>
            </item>
                    <item>
                <title>ورود به دنیای رمزارزها (بخش اول)</title>
                <link>https://virgool.io/Solidity/%D9%88%D8%B1%D9%88%D8%AF-%D8%A8%D9%87-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%B1%D9%85%D8%B2%D8%A7%D8%B1%D8%B2%D9%87%D8%A7-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-n8txc8cwsq6k</link>
                <description>منبع: سرپوشچه تو دنیای تکنولوژی باشین و یا نباشین، بلاک چین و بیت کوین و خانواده ش حتمن به گوشتون خورده، تو این روزا سهم خیلی بزرگی تو صنعت اقتصاد، بازی و خلاصه که بیت کوین اومده که نقش پول کاغذی رو کم رنگ یا به مرور بی رنگ کنه. تو این مقاله سعی می کنم به طور ریز و خلاصه مهمترین مفاهیم این دنیا رو براتون بگم. تو هر دورانی از زندگی آدما از همون ابتدا یه وسیله ای به عنوان واسطه برای تبادل کالا و ذخیره ارزش مورد استفاده بوده که بهش پول گفته میشه. مثلا جالبه بدونین 1300 سال قبل میلاد مسیح از صدف و نمک به عنوان پول استفاده میشده، بعد پول فلزی، سکه منقوش، پول کاغذی، پول طلا، پول الکترونیکی، رمز ارز. هر کدوم از این پولها تو هر دورانی به علت مشکلاتی که داشتن کنار گذاشته می شدن و یه جایگزین براشون انتخاب میشد.رمز ارز (کریپتوکارنسی) به دسته ای از پول و ارزهای دیجیتال گفته میشود که  در آن برای تراکنش های مالی از رمزگذاری استفاده میشه. رمزارزها هیچ ماهیت فیزیکی ندارن و فقط توی کامپیوتر تعریف میشن، و یا هیچ بانک مرکزی نداریم که رمز ارز تولید کنه و بهمون سکه بده. جنبش سایفرپانک مانی فست: تو این جنبش یه سری افراد دور هم جمع شدند تلاش کردند که مرجع مرکزی رو حذف کنند، و نظرشون هم این بود که محرمانگی و حریم خصوصی حق انسانهاست، و رمزنگاری راه حلی برای آزادی انسانهاست. شعار این جنبش : بایستی از اطلاعات شخصی در مقابل دولت ها محافظت شود. تلاشهای این جنبش و یک سری افراد دیگه باعث به وجود اومدن بیت کوین تو سال 2009 توسط ساتوشی ناکوموتو شد.بیت کوین: بیت کوین نوعی از پول هست که غیرمتمرکز، بدون بانک مرکزی و یا یه مدیریت واحد هست و می تونه بدون نیاز به واسطه از کاربری به کاربر دیگه ارسال بشه. بیت کوین اولین ارز دیجیتال هست. پس بیت کوین هم نوعی پول هست و هم یه شبکه پرداخت. از ویژگی های بیت کوین که تو وایت پیپر این ارز هم اشاره شده حذف مرجع مرکزی، عدم نیاز به ایجاد سیستم اعتمادسازی، حل مشکل دوبار خرج شدن پول با استفاده از شبکه های نظیر به نظیر و روش سند اثبات کار، تایید تراکنش ها با استفاده از محاسبات کامپیوتری رو شامل میشه.بلاک چین: بلاک چین از دو بخش زنجیره (block)  و چین (chain) تشکیل شده (زنجیره ای از بلاک هایی که به هم متصل هستند و اطلاعات داخل این بلاک ها ذخیره میشن). بلاک چین یه دفتر کل (ledger) اشتراک گذاری شده و غیرقابل تغییر هست که تراکنش ها رو ثبت می کنه و اجازه ردیابی دارایی ها رو فراهم می کنه و دارای ساختار قابل اعتماد هست. خلاصش این میشه که بلاک چین یه سیستم ثبت اطلاعات و گزارش هست. فرقی هم که با بقیه سیستما داره این هست که همه اطلاعاتی که روی این سیستم ثبت شده با اعضای شبکه به اشتراک گذاشته میشه و همین طور با کمک رمزنگاری و توزیع داده امکان دستکاری کردن داده ها و یا هک و حذف اطلاعات ثبت شده از بین میره.اگه علاقه دارین که با ساختار بلاک چین بیشتر آشنا بشین یه سر به سایت demoblockchain.org بزنید.انواع شبکه: شبکه های خیلی زیادی تو این تکنولوژی استفاده میشه ولی سه تا شبکه هستن که خیلی معروفتر از بقیه هستن:شبکه متمرکز (centralized): در این نوع شبکه همه گره ها به سرور مرکزی متصل می شوند وکلاینت ها فقط سرویس گیرنده هستند. ارتباط گره ها (نودها) بین یکدیگر تنها از طریق سرور مرکزی امکان پذیر است.شبکه غیرمتمرکز (decentralized): در این نوع شبکه ها، چند سرور وجود دارد و بنابراین برای ارتباط نودها (گره ها) داخل شبکه بیش از یک راه وجود دارد.شبکه توزیع شده (distributed): شبکه های مش نام دیگری برای این نوع از شبکه ها می باشد. در این شبکه همه گره ها (نودها) به یکدیگر متصل هستند، هیچ سروری وجود ندارد و ارتباط بین نودها به طور مستقیم می باشد. شبکه موجود در بلاک چین از این نوع می باشد.</description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Sun, 27 Mar 2022 11:10:54 +0430</pubDate>
            </item>
                    <item>
                <title>Web Scraping(Part-2)</title>
                <link>https://virgool.io/@zohrehkarimiii2020/web-scrapingpart-2-pfoe0qzzyufl</link>
                <description>درود به همگی: تو بخش اول درباره اینکه وب اسکرپینگ چی هست، چه کتابخونه هایی برای کار باهاش نیاز هست و همین طور درباره کتابخونه Requests براتون توضیح دادم. امروز می خوام راجع به یکی دیگه از کتابخونه های مهم که تو وب اسکرپینگ استفاده میشه بنویسم، به اسم Beautiful Soup.کتابخونه beautiful soup برای استخراج و تجزیه داده ها از فایل های xml و html  به کمک زبان پایتون استفاده می شه. یعنی این کتابخونه می تونه صفحات وب رو به شکل یه درخت تجزیه کنه (بهش پارس کردن هم میگن). فایده ش چیه؟ می تونیم با سرعت خیلی بالایی به اطلاعات اون صفحه دسترسی پیدا کنیم. تو شکل می بینید که یه فایل html چطوری به کمک این کتابخونه تجزیه شده.خب حالا یه بار دیگه کد جلسه قبلی رو اجرا می گیرم ببینید نتیجه چه درهم برهم و شلوغه!!!خب اینجا میایم از کتابخونه beautiful soup استفاده می کنیم تا بتونیم اینا رو مرتب داشته باشیم:from bs4 import BeautifulSoupحالا یه متغیر می سازیم و به کمک اون کتابخونه رو صدا می زنیم (باکلاسش میشه کال می کنیم؛)soup=BeautifulSoup(response.text,&#x27;html.parser&#x27;)این کتابخونه دو تا مقدار می گیره، اولی همون درخواستی هست که فرستادیم به سایتی که میخایم داده ها رو ازش استخراج کنیم و مقدار دوم تجزیه کننده یا paerser هست (تو این آموزش من از پارسر html استفاده می کنم، موردای دیگه ای هم هستن مثل lxml)، کار این تجزیه کننده هم که دیگه خیلی واضح هست تجزیه می کند))) . حالا یه پرینت می گیرم نتیجه رو ببینید و مقایسه کنید با قبلی: می بینید که همه چی خیلی با نظم و ترتیب یه جا نشسته.خب خب خب همین دیگه) حالا براتون چند تا از متدهایی که به کمک این کتابخونه استفاده میشه رو توضیح میدم:متد ()find: خروجی این متد اولین مقداری هست که ازش می خوایم. مثلا! می خوایم اولین تگ a رو بهمون برگردونه.متد ()findAll()/find_all: خروجی این متد همه مقادیری هست که بهش درخواست میدیم. مثلا! تو مثال قبلی همه تگ های a رو می تونیم برگردونیم با کد زیر:print(soup.findall(&#x27;a&#x27;)print(soup.find_all(&#x27;a&#x27;)مثلا! می خوایم همه لینکایی که توی سایت هست رو بهمون نشون بده از این کد می تونیم استفاده کنیم:out=soup.find_all(&#x27;a&#x27;)for item in out:        print(item[&#x27;href&#x27;])یعنی اینکه اومدیم ویژگی href مربوط به تگ a رو تو کل سات پیدا کردیم و لینکا رو تو خروجی بهمون نشون میده (یه سری ها هم لینک نیت خب دیگه طبیعتاً چون هرچی بعد href هست رو می بینیم):متد ()select_one: مثل متد ()find هست که اولین مقدار درخواستی رو بر می گردونه.متد ()select: مثل متد ()findAll هست و تمامی مقادیری که خواستیم رو بر می گردونه.مثال:اگر بخوایم از یه دکمه موجود توی سایت فقط قسمت متنیش رو داشته باشیم، مثلاً تو همین سایت متن مربوط به دکمه GO رو بدست بیاریم. اول که به کمک inspect element (F12) و با استفاده از نشانه گر روی دکمه نگه می داریم و می بینیم که توی چه تگی قرار گرفته ویژگی های مختلفی هم داره مثل  id, class...خب به کمک این ویژگیها می تونیم متن رو بدست بیاریم. (اینجا . به معنی کلاس و # یعنی id دقت کنید که اینا برای select و select_one هست)out=soup.select_one(&#x27;button.search-button&#x27;)print(out.text)توی خروجی GO رو نشون میده.همین دستور رو با find براتون می نویسم:out=soup.find(&#x27;button&#x27;,{&#x27;id&#x27;:&#x27;submit&#x27;})print(out.text)و آخر این بخش هم یه مثال دیگه براتون میارم. فرض کنید وارد سایت chess-Result شدیم و می خایم اطلاعات یه جدول رو به دست بیاریم. اول کپی می کنیم آدرس سایت رو:import requestsfrom bs4 import BeautifulSoupurl=&#x27;https://chess-results.com/tnr589226.aspx?lan=1&amp;art=4&#x27;response=requests.get(url)soup=BeautifulSoup(response.text,&#x27;html.parser&#x27;)حالا باید ببینیم جدول توی چه تگی قرار داره (با همون روش F12) .  می بینیم که توی تگ table بعد tr و بعدم td اطلاعات مربوط به این جدول قرار گرفته. حالا به شکلی که توی کد براتون توضیح میدم می تونید اطلاعات رو استخراج کنید:table=soup.find(&#x27;table&#x27;)rows=table.findAll(&#x27;tr&#x27;)for item in rows:    data=[]    for body in item.find_all(&#x27;td&#x27;):        items=body.text.replace(&#x27;\n&#x27;,&#x27; &#x27;)        data.append(items)    print(data)نکته آخر اینکه توی کد .replace(&#x27;\n&#x27;,&#x27; &#x27;) یعنی n\ ها رو با یه فضای خالی جایگزین کن.امیدوارم که این بخش هم براتون مفید بوده باشه. تا جلسه بعدی ...</description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Sat, 06 Nov 2021 15:40:41 +0330</pubDate>
            </item>
                    <item>
                <title>web scraping (part-1)</title>
                <link>https://virgool.io/@zohrehkarimiii2020/web-scraping-part-1-nddwlvyi6ocb</link>
                <description>درود دوستان؛ امروز میخام درباره یه مقوله خیلی مهم برای اینکه بتونید داده ها رو جمع آوری کنید و تحلیل و توصیه روی اونا انجام بدین براتون بگم. web scraping کارش همینه یعنی داده هایی که از طریق بازدید از یه وب سایت در دسترس هستند رو می تونیم بدون بازدید جمع آوری کنیم. پس وب اسکرپینگ یعنی فرایند جمع آوری و یا استخراج داده ها از وب))مرحله اول: نصب کتابخانه هابهتون پیشنهاد می کنم از یه محیط مجازی (virtual env) برای نصب کتابخونه ها استفاده کنید. چرا؟ زیرا که شما می خواید یه سری کتابخونه استفاده کنید مخصوص به همین کاری که الان می خواید انجامش بدین پس دیگه نیازی به این که کل پایتون رو خبردار کنید و فضای حافظه رو پر کنید نیست که! خیلی آروم و بی سر  و صدا یه فضای مجازی ایجاد کنید. خب حالا برای ایجاد محیط مجازی اگه از قبل این کتابخونه رو نصب دارید که برید 4 خط بعدی. ( از کجا بفهمیم نصب داریمش از قبل ؟ وارد محیط cmd بشین تو ویندوز و تایپ کنید pip list و enter رو بزنید. هر چی کتابخونه نصب دارید رو بهتون نشون میده اگر virtualenv رو دیدین که خب نصب کردید از قبل) اگر هم نصب ندارید که برای نصبش می تونید وارد cmd بشین و تایپ کنید:pip install virtualenvحالا برای اینکه بتونیم یه فضای مجازی بسازیم تو مسیر دلخواهمون cmd رو باز می کنیم و یه فضای مجازی با اسم دلخواهمون ایجاد می کنیم:virtualenv nameتبریک میگم، یه فضای مجازی ایجاد کردی.پس من یه پوشه ایجاد کردم مثلا به اسم webscraping، داخل پوشه یه فضای مجازی به اسم new ساختم. بعد از ایجاد فضای مجازی اگه وارد پوشه webscraping بشم، یه پوشه new ساخته شده که توی این پوشه هم کلی فایل دیده میشه. حالا برای اینکه بتونم کتابخونه های لازم رو نصب کنم همه رو باید ببرم تو پوشه Scripts که تو پوشه new ساخته شده برای همین وارد همین مسیر Scripts میشم . اول باید محیط مجازی م رو اکتیو کنم برای این کار هم تو محیط cmd بعد اینکه دقیقا تو مسیر Scripts قرار گرفتیم(مثلا: C:\Users\webscraping\new\Scripts) به صورت زیر تایپ می کنیم:activateحالا اگر دیدین تو خط بعدی به این صورت اسم فضای مجازی قبل کدها قرار گرفته یعنی فضای مجازی که ایجاد کردین فعال شده:(new) C:\Users\webscraping\new\Scriptsالان میتونیم کتابخونه های لازم برای وب اسکرپینگ رو نصب کنیم که دو تا کتابخونه requests و bs4 رو به صورت زیر تو فضای مجازی نصب می کنیم:pip install requestspip install bs4خب برای محیط کدنویسی من از ژوپیتر استفاده می کنم. شما هم می تونید از هر محیط دیگه ای مثل pycharm, vscode , ... استفاده کنید.کتابخانه Requestsهمون طور که از اسمش هم مشخصه به کمک این کتابخونه می تونیم درخواست ارسال کنیم به وب سایت های مختلف. یا این طوری بگم همونطور که ما وارد مرورگر میشیم و یه آدرسی رو درخواست می دیم و پاسخ دریافت می کنیم . این فرایند درخواست و دریافت جواب از طریق پروتکل http انجام میشه. http بین مرورگر و سرور ارتباط برقرار می کنه و این یعنی مرورگر ما یک سرویس گیرنده http هست. http درخواست ما رو برای سرور می فرسته، (نه تا روش برای ارسال درخواستای http داریم مهمترینیش هم get و post هست) وقتی که آدرسی رو تو مرروگر مینویسیم و ارسال می کنیم در واقع از متد get استفاده می کنیم. و وقتی که داریم یه فرم ثبت نام پر می کنیم و یا داده ای رو داریم وارد می کنیم این نوع درخواست از طریق متد post  انجام میشه. خیلی خب برای کار با کتابخونه requests  اول باید اون رو توی برنامه ایمپورت کنیم:import requestsیه متغیر به اسم url تعریف می کنیم و مشخص می کنیم که به چه وب سایتی قراره درخواست بفرستیم و درخواستمون رو هم به صورت زیر ارسال می کنیم:url=&#x27;https://www.aparat.com/&#x27;response=requests.get(url)و اگر response رو پرینت کنیم پاسخ 200 هست یعنی درخواست ما درست بوده، که اگر درخواستمون اشتباه باشه تو خروجی 404 رو می بینیم.متدهای کتابخونه requests رو براتون معرفی می کنم در ادامه :متد requst: این متد نوع درخواست رو برامون مشخص میکنه (که درخواست از نوع get بوده یا از نوع post)print(response.request)متد headers: به کمک این متد می تونیم اطلاعاتی درمورد درخواستی که فرستادیم به دست بیاریم.print(response.request.headers)متد status_code: وضعیت درخواست رو مشخص می کنه ، مثلاً اگر درخواست درست باشه عدد 200 و اگه هم اشتباه باشه که 404 رو برمیگردونه.print(response.status_code)متد reason: این متد هم مثل متد قبلی وضعیت درخواست رو مشخص می کنه ولی به شکل نوشتاری یعنی به جای عدد ، Ok  و یا Not found رو نشون میده.print(response.reason)متد text: کل سورس کد از صفحه درخواستی رو بهمون برمیگردونه.print(response.text)خب اینا متدهای پرکاربرد تو کتابخونه requests هستند البته کامل نیست و خودتون می تونین این کتابخونه رو جداگونه بررسی کنید.یه مثال عملی هم اینجا می زنم. فرض کنید که تو یه سایتی هستیم و می خوایم یه عکس رو دانلود کنیم با کمک requests. اول میایم عکس رو تو یه صفحه جدید باز می کنیم لینکش رو کپی و تو محیط کد این دستورا رو می نویسیم:import requestsurl=&#x27;http://www.araas.ir/wp-content/uploads/2018/02/www.araas_.ir-18-17.jpg?v=1621338029&#x27;response=requests.get(url)with open(&#x27;pic.jpg&#x27;,&#x27;wb&#x27;)as file:        file.write(response.content)و حالا تو مسیر ذخیره محیطی که کد می زنید رو ببینید عکسی که می خواستین دانلود شده.بقیه مباحث باشه برای جلسه های بعدی...</description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Mon, 01 Nov 2021 08:28:23 +0330</pubDate>
            </item>
                    <item>
                <title>Principal Component Analysis</title>
                <link>https://virgool.io/@zohrehkarimiii2020/principal-component-analysis-c4bbiodekfak</link>
                <description>درود دوستان؛چند ماه پیش یه مطلب درباره کاهش ابعاد گذاشتم خیلی مختصر و مفید بود. امروز می خوام با جزییات بیشتری براتون درمورد کاهش ابعاد و PCA توضیح بدم.خب اونایی که تو حوزه تحلیل داده و یا یادگیری ماشین کار می کنند بعضی وقتا با حجم خیلی بزرگی از داده ها روبرو می شن و برای اینکه بتونن یه نمایش گرافیکی از داده ها داشته باشن به مشکل برمیخورن. یا اینکه کلی ویژگی دارن و این حجم بزرگ ویژگی ها و تکراری بودن داده ها باعث میشه که نتونن ویژگی های موثر رو برای آموزش مدل به کار ببرن . تو این مواقع کاهش ابعاد معجزه می کنه، چه برای نمایش داده ها و چه برای استفاده از ویژگی ها. برای مفهوم دومی که همون فشرده سازی داده ها میشه مزیتهایی مثل کاهش مصرف حافظه، استفاده راحت تر از مجموعه داده، کاهش هزینه محاسباتی خیلی از الگوریتم ها، حذف شدن نویزها و در نتیجه بالا رفتن دقت یادگیری و راحت تر شدگن درک نتایج رو داریم .خب حالا ممکنه بعضیا که رگرسیون هم کار می کنن  به این فکر کنند که پس فرق PCA با رگرسیون چیه این که همون شد!!! در جواب باید بگم که رگرسیون برای داده های لیبل دار استفاده می شه ولی وقتی از PCA استفاده می کنیم لیبلی نداریم (اگه هم مساله نظارت شده باشه و لیبل هم داشته باشه اهمیتی نداره) . و مورد دوم اینکه تو رگرسیون هدف کمینه کردن خطای تخمین هستولی تو PCA هدف کمینه کردن خطای تابش هست.حالا می خام براتون الگوریتم PCA رو کامل توضیح بدم: یک سری داده آموزشی داریم بدون لیبل (توجه کنید که ممکنه اصلا لیبل هم داشته باشه ولی اهمیتی برای ما ندارد چون فقط با داده های x یا آموزشی کار داریم) پس m تا داده داریم که هر داده خودش یه بردار n بعدی می تونه باشهمرحله اول (الزامی): پیش پردازش روی داده ها : این مرحله خیلی مهمه و باید میانگین داده ها رو بدست بیاریم و اونو از همه داده ها تو همه n تا بعد کم کنیم. j ها همون فیچرها یا بعدها میشن.مرحله دوم (اختیاری): حالا اگه داده هایی که از مرحله قبل به دست اومده بازه های مختلفی دارن باید نرمال سازی انجام بدیم تا بازه ویژگی های مختلف با هم برابر بشه. s اینجا همون پراکندگی یا واریانس هست، بعد از اینکه داده ها رو از میانگینشون کم کردیم تقسیم به واریانس می کنیم تا داده ها نرمال بشه.مرحله سوم (الزامی) : محاسبه ماتریس کواریانسمرحله چهارم (الزامی): محاسبه بردارهای ویژه ماتریس کوواریانسخب اول به کمک تجزیه svd (تو یه جلسه دیگه براتون این نوع تجزیه رو توضیح میدم) ماتریس کوواریانس رو به سه تا ماتریس تجزیه می کنیم. [U,S,V]=svd(∑)مرحله پنجم (الزامی): حالا این ماتریسا مشخصات خاصی دارن که ما دنبال جهت های مهم تر و تبدیل از فضای n بعدی به فضای k بعدی هستیم. از خاصیت تجزیه svd این هست که بردارهای خروجی رو به ترتیب اهمیتشون نمایش میده پس از U که شامل n تا بردار هست k تای مهمتر رو از اول انتخاب می کنیم.پ ماتریس S یه ماتریس قطریه که اهمیت این بردارها رو نشون می ده و به این صورته که اولین عنصر تو ماتریس S متناظر میشه با بردار U1. و چون گفتیم که تو SVD به ترتیب اهمیتشون نشون میده اینجا هم عددا از بزرگ به کوچیک می شن. پس حالا با توجه به S میشه این ماتریس U  رو برش بزنیم به k تا بردار. تو PCA با V دیگه کاری نداریممرحله ششم (الزامی): محاسبه داده های جدید با ابعاد kیعنی اینجا تنها کاری که می کنیم ماتریس ترانهاده U رو در X ضرب می کنیم و تامام.پس خلاصه ش می شه :1- پیش پردازش 2- نرمال سازی در صورت نیاز3- محاسبه ماتریس کواریانس4- محاسبه تجزیه مقادیر منفرد (SVD)5- انتخاب k مؤلفه اول6- محاسبه داده های جدید با k بعد</description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Sun, 24 Oct 2021 19:59:06 +0330</pubDate>
            </item>
                    <item>
                <title>Data Analysis Expression (DAX) -Part1</title>
                <link>https://virgool.io/@zohrehkarimiii2020/data-analysis-expression-dax-part1-yxd6yx4sjna5</link>
                <description>حتمن این روزا اسم Power BI رو خیلی جاها شنیدین که یکی از ابزارهای خیلی مهم برای مدیریت کسب و کار تو هر سازمانی هست. این نرم افزار داده های هر سازمان رو جمع آوری می کنه، بعد میشه تحلیل روی داده ها انجام بدیم و همین طور اونا رو به نمایش بزاریم. کاربردش هم این هست که وقتی حجم داده های یه سازمان خیلی بزرگ باشه با این نرم افزار میشه این داده های خسته کننده رو خیلی ساده و در قالب نمودار برای اعضای اون سازمان نمایش داد تا بتونن در تصمیم گیری ها خیلی دقیقتر عمل کنن.یکی از مفاهیم خیلی مهم تو این نرم افزار کار با DAX  یا همون Data Analysis Expression هست. DAX زبانی هست که مایکروسافت برای تعامل با داده ها تو سیستم هایی مثل Power BI, SSAS توسعه داده. تو این مقاله می خوایم بدونیم که چطور می تونیم با استفاده از DAX محاسبات رو سریعتر انجام بدیم. زبان DAX مخصوص تحلیل و ساخت گزارشات تحلیلی هست. اینطوری بگم که با یه دانش ابتدایی می تونید از Power BI استفاده کنید ولی اگر بخواید حرفه ای کار کنید بدون DAX امکانپذیر نیست.فرمول های DAX مجموعه ای از توابع، اپراتورها و محدودیت ها هستند که برای تحلیل داده ها به کار می رن. نتیجه این فرمول ها می تونه یه مقدار یا یه جدول باشه.سه تا از کاربردهای DAX، ایجاد Measure، Calculated columns, Calculated tables هست که تو اولین مقاله مربوط به پاور بی آی اینها رو بررسی می کنیم.ستون های محاسباتی (Calculated columns):ستون محاسباتی، ستونی با استفاده از زبان DAX در جدول شما ایجاد می کند. برای ایجاد این ستون از تب Modeling گزینه New column رو انتخاب کنید. همین طور اگه روی جدول کلیک راست کنید گزینه New Column رو می بینید. دقت کنید که ستون محاسباتی حتما باید توی جدول مورد نظرتون ایجاد بشه چرا که این ستون به جدولتون اضافه میشه.بعد از انتخاب New Column، یه باکس به این شکل ایجاد میشه:خب حالا قبل از علامت مساوی اسمی که برای ستون در نظر دارین رو تایپ کنین، و بعد علامت مساوی هم فرمول رو باید بنویسین. </description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Sat, 07 Aug 2021 19:12:19 +0430</pubDate>
            </item>
                    <item>
                <title>ساخت کوله کلمات (Bag-of-Word) در پیش پردازش متون</title>
                <link>https://virgool.io/@zohrehkarimiii2020/%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D9%88%D9%84%D9%87-%DA%A9%D9%84%D9%85%D8%A7%D8%AA-bag-of-word-%D8%AF%D8%B1-%D9%BE%DB%8C%D8%B4-%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B4-%D9%85%D8%AA%D9%88%D9%86-ttcs3fhmmyyy</link>
                <description>در بحث تحلیل متون و داده کاوی قبل از انجام عملیات مختلف مثل طبقه بندی بر روی متن و یا خوشه بندی، نیاز هست تا متون به یک فرمت قابل فهم برای کامپیوتر جهت محاسبات بعدی تبدیل شوند.متون و اسناد از نوع داده های غیرساختاریافته هستند و به همین دلیل نیاز است تا این نوع داده ها با عملیات مختلف به داده های ساختاریافته و قابل محاسبه برای کامپیوتر تبدیل شوند. روش Bag of Words  یکی از این روش ها می باشد.با یک مثال ساده این روش را برایتان توضیح می دهم: فرض کنید 3 جمله داریم که می خواهیم مدل BoW را برای آن ایجاد کنیم:جمله اول: من از این فیلم خوشم آمدجمله دوم: من این فیلم را به خاطر لیلی رشیدی دوست دارمجمله سوم: من از این فیلم خوشم نیامدبه مجموعه جملات Corpus گفته می شود. برای ایجاد مدل BoW این جملات، ابتدا برای هر کدام از کلمات یک عدد یکتا نسبت دهیم:من(1)، از (2)، این (3)، فیلم (4)، خوشم (5)، آمد (6)، را (7)، به (8)، خاطر (9)، لیلی (10)، رشیدی (11)، دوست (12)، دارم(13)، نیامد(14)دقت داشته باشید که به هر کلمه یک عدد یکتا نسبت دادیم. مثلا برای کلمه (من فقط یک بار عدد 1 انتساب داده شده است.)خب حالا در مرحله بعد بایستی ویژگی ها را ایجاد کنیم. 3 جمله داریم و 14 کلمه. پس یک ماتریس نیاز داریم که سه سطر و 14 ستون داشته باشد:همان طور که می بینید بعضی خانه های ماتریس با 1 پر شده اند و بقیه 0 هستند. هر سطر یک جمله و هر ستون یک کلمه است. اگر یک کلمه خاص در یک جمله وجود داشته باشد آن خانه عدد 1 و در غیر این صورت عدد 0 می گیرد.به این صورت کوله ای از کلمات در ماتریس ساخته می شود که این ماتریس می تواند به الگوریتم های بعدی برای عملیاتی مثل طبقه بندی یا خوشه بندی اعمال شود. در نهایت یک سری داده های غیر ساختار یافته را به یک داده های عددی به صورت ماتریس تبدیل کردیم.</description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Tue, 18 May 2021 12:00:53 +0430</pubDate>
            </item>
                    <item>
                <title>ModelBasedCollaborativeFilteringRecommenderSytem</title>
                <link>https://virgool.io/@zohrehkarimiii2020/modelbasedcollaborativefilteringrecommendersytem-noxomjcvzwyq</link>
                <description>خب سیستم های توصیه گر مدل بیس ، یه مدل براساس رای کاربرا می سازن و براساس اون مدل به کاربرا پیشنهاد فیلم، لباس و... می دن. تو این سیستم ها دو تا مفهوم خیلی مهم SVD و Utility matrix داریم. الان بهتون میگم اینا چیه؛اولاً SVD یه روش جبر خطی هست که به کمک اون می تونیم ماتریس رو تجزیه کنیم تا اطلاعات رو تفکیک شده بدست بیاریم به طور کلی بگم که به اطلاعات مخفی می تونید دسترسی پیدا کنید. به این شکل نگاه کنید: خب utility matrices هم یه نوع ماتریسه که تو این مثال شامل کاربرا، فیلم ها  و رای هایی هست که اون کاربرا به فیلمهایی که دیدن اختصاص دادن. این ماتریس تقریباً شبیه ماتریس اسپارسه ، چون که خب یه کاربر قطعاً به هزار تا فیلم رای نداده (یعنی همه رو ندیده).دیتاستی هم که استفاده می کنیم برای این مثال 100kMovielense هست که می تونید از این لینک دانلودش کنید: https://grouplens.org/datasets/movielens/100k/ حالا ما می خوایم یه مدل از رای این کاربرا بسازیم و براساس اون مدل، به کاربرا فیلم پیشنهاد بدیم. اول که باید کتابخونه های لازمو نصب کنیم:import pandas as pdimport numpy as npimport sklearnfrom sklearn.decomposition import TruncatedSVDداده هامون رو هم وارد می کنیم:columns=[&#x27;user_id&#x27;,&#x27;item_id&#x27;,&#x27;rating&#x27;,&#x27;timestamp&#x27;]data=pd.read_csv(&#x27;u.data&#x27;,sep=&#x27;\t&#x27;,names=columns)columns=[&#x27;item_id&#x27;, &#x27;movie title&#x27;, &#x27;release date&#x27;, &#x27;video release date&#x27;, &#x27;IMDb URL&#x27;, &#x27;unknown&#x27;, &#x27;Action&#x27;, &#x27;Adventure&#x27;,&#x27;Animation&#x27;,&#x27;Childrens&#x27;,&#x27;Comedy&#x27;,&#x27;Crime&#x27;,&#x27;Documentary&#x27;, &#x27;Drama&#x27;, &#x27;Fantasy&#x27;, &#x27;Film-Noir&#x27;, &#x27;Horror&#x27;,&#x27;Musical&#x27;, &#x27;Mystery&#x27;, &#x27;Romance&#x27;, &#x27;Sci-Fi&#x27;, &#x27;Thriller&#x27;, &#x27;War&#x27;, &#x27;Western&#x27;]movies=pd.read_csv(&#x27;F:/Learning/machine learning/Recommandation/ml-100k/ml-100k/u.item&#x27;,sep=&#x27;|&#x27;,names=columns, encoding=&#x27;latin-1&#x27;)movie_names=pd.DataFrame(movies, columns=[&#x27;item_id&#x27;,&#x27;movie title&#x27;])combined_movie_data=pd.merge(data,movie_names,on=&#x27;item_id&#x27;)rating=pd.DataFrame(combined_movie_data.groupby(&#x27;item_id&#x27;)[&#x27;rating&#x27;].count().sort_values(ascending=False))Filter= combined_movie_data[&#x27;item_id&#x27;]==50print(combined_movie_data[Filter][&#x27;movie title&#x27;].unique())حالا میخوایم utility matrix رو بسازیم که شامل کاربرا، فیلما و رایی هست که کاربر به اون فیلم داده: مثلا کاربر به فیلم ایکس رای 3 داده برای بقیه فیلمها رای نداده پس مقدار بقیه 0 در نظر گرفته میشه.rating_crosstab_mat=combined_movie_data.pivot_table(index=&#x27;user_id&#x27;,values=&#x27;rating&#x27;,columns=&#x27;movie title&#x27;,fill_value=0)خب الان می خایم مدل رو بسازیم. مدل ما براساس شباهت کاربرا تو رای دادن به فیلم انتخاب میشه. برای همین به کمک TruncatedSVD میایم این کار رو انجام میدیم، با transpose جای سطر و ستون در خروجی بالایی عوض میشه، سطرها اسم فیلمهاست و ستون ها هم کاربرا و رای که به هر فیلم دادن رو نشون میده.X=rating_crosstab_mat.values.TSVD=TruncatedSVD(n_components=10,random_state=18)result_mat=SVD.fit_transform(X)در نهایت با استفاده از Pearson r correlation matrix میزان ارتباط فیلم ها به همدیگه رو براساس شباهتی که بین رای کاربرا هست پیدا می کنیم:corr_mat=np.corrcoef(result)
movie_name=rating_crosstab_mat.columns
movie_list=list(movie_name)
star_wars=movie_list.index(&#039;Star Wars (1977)&#039;)
corr_star_wars=corr_mat[star_wars]
print(list(movie_name[(corr_star_wars&lt;1)&amp;(corr_star_wars&gt;0.8)]))</description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Thu, 06 May 2021 15:40:33 +0430</pubDate>
            </item>
                    <item>
                <title>کاهش ابعاد (Dimensity Reduction)</title>
                <link>https://virgool.io/@zohrehkarimiii2020/%DA%A9%D8%A7%D9%87%D8%B4-%D8%A7%D8%A8%D8%B9%D8%A7%D8%AF-dimensity-reduction-hit2dzqhht89</link>
                <description>یکی از روشهای پرکاربرد تو کار با داده ها تو حوزه سیستم های توصیه گر یا کلی تر بگم برای کار با داده ها و هوش مصنوعی روش کاهش بعد هست. با یه مثال براتون بگم که فرض کنید داده های مربوط به فیلم ها رو براساس برچسب هاش (برچسبها همون ویژگی ها هستند) جمع آوری کردیم. برچسب ها شامل اسم فیلم، رای کاربرا به فیلم، سال انتشار، کارگردان، تعداد سینماهای اکران فیلم، بازیگرها، ژانر، تاریخ اکران و ... هست. بنظر میاد ویژگی تاریخ اکران زیاد موثر نباشه برای استفاده تو سیستم توصیه فیلم. کاربرد کاهش ابعاد هم برای همین هست. یعنی در کاهش ابعاد ما اطلاعات را با ویژگی هایی که بهترن بیان می کنیم. بهترین ویژگی ها، ویژگی هایی هستن که بیشترین واریانس رو داشته باشن. یکی از این الگوریتم ها که برای کاهش بعد استفاده می شه آنالیز مولفه اساسی (PCA) هست که روشی برای شناسایی بهترین ویژگی های دیتایی هست که داریم استفاده می کنیم.روش PCA به دو قسمت تقسیم میشه:بخش اول: Decorrelation تو این بخش وابستگی بین داده هایی که داریم رو از بین می بریم و اطلاعات رو بر محورها منطبق می کنیم. با این کار می تونیم اطلاعات رو بهتر توصیف می کنیم.بخش دوم: Reduce Dimension که این قسمت هم ابعاد داده ها رو کاهش می ده.خب در ادامه این روش رو روی دیتاست آیریس(مجموعه داده گل زنبق) براتون پیاده سازی می کنم:import pandas as pdimport numpy as npfrom scipy.stats import pearsonrfrom sklearn.decomposition import PCAfrom sklearn import datasetsimport matplotlib.pyplot as pltiris=datasets.load_iris()label=iris.targetdim_r=PCA(n_components=2)dim_r.fit(iris.data)dim_r_transformed=dim_r.transform(iris.data)plt.scatter(dim_r_transformed[:,0],dim_r_transformed[:,1],c=label)plt.show()PCA in Iris_dataset</description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Tue, 20 Apr 2021 16:06:42 +0430</pubDate>
            </item>
                    <item>
                <title>Recommender System(3)</title>
                <link>https://virgool.io/@zohrehkarimiii2020/recommender-system3-bhzi20ubt6px</link>
                <description>در قسمت اول توضیح دادم که سیستم های توصیه گر چی هست و به چند دسته اصلی تقسیم میشن. قسمت دوم سیستم های توصیه گر پالایش مشارکتی (Collaborative Filtering) و انواع زیربخش ها رو براتون به صورت خیلی خلاصه آوردم. تو بخش سوم درباره سیستم های توصیه گر مبتنی بر محتوا (Content Based) میگم براتون:سیستم های توصیه گر مبتنی بر محتوا آیتم ها رو براساس شباهت بین ویژگی هاشون پیشنهاد می دن. بزارید این حرف رو براتون توی عکس توضیح بدم.برای مثال همونطور که تو تصویر زیر می بینید اگه یه کاربر شهر Miami رو دوست داشته باشه، احتمالاً شهر Austin رو هم دوست داره، حالا چرااااااا؟؟؟؟؟ بخاطر شباهتی که این دو تا شهر توی دمای هوا، هزینه زندگی و سرعت Wi-Fi دارن .))))</description>
                <category>زهره کریمی</category>
                <author>زهره کریمی</author>
                <pubDate>Thu, 08 Apr 2021 19:17:37 +0430</pubDate>
            </item>
            </channel>
</rss>