<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های محمدرضا</title>
        <link>https://virgool.io/feed/@Mohamadre3a</link>
        <description>shahsahebi.ir</description>
        <language>fa</language>
        <pubDate>2026-06-07 06:33:31</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1851/avatar/vAXVXy.png?height=120&amp;width=120</url>
            <title>محمدرضا</title>
            <link>https://virgool.io/@Mohamadre3a</link>
        </image>

                    <item>
                <title>ویرگول چگونه به صورت اتوماتیک مطالب را دسته بندی می‌کند؟</title>
                <link>https://virgool.io/dataio/%D9%88%DB%8C%D8%B1%DA%AF%D9%88%D9%84-%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A8%D9%87-%D8%B5%D9%88%D8%B1%D8%AA-%D8%A7%D8%AA%D9%88%D9%85%D8%A7%D8%AA%DB%8C%DA%A9-%D9%85%D8%B7%D8%A7%D9%84%D8%A8-%D8%B1%D8%A7-%D8%AF%D8%B3%D8%AA%D9%87-%D8%A8%D9%86%D8%AF%DB%8C-%D9%85%DB%8C%DA%A9%D9%86%D8%AF-x5xsfui4cfmz</link>
                <description>شاید تا به حال به این توجه نکرده باشید که برای تعیین موضوع مقاله‌ای که در ویرگول می‌نویسید ویرگول از شما دسته مطلبتان را نمی‌پرسد و شما انتخاب نمی‌کنید که این مطلب در قسمت روانشناسی منتشر شود یا در خودشناسی یا...این خود ویرگول است که با استفاده از topic modeling موضوع مطلب شما را حدس می‌زند و آن را به صورت اتوماتیک دسته‌بندی می‌کند. این کار با استفاده از recommender انجام می‌شود که یک شرکت است که در ضمینه ماشین لرنینگ فعالیت دارد. من نمی‌دانم که این شرکت از کدام الگوریتم برای دسته‌بندی موضوعات استفاده کرده‌اند و چگونه این کار را انجام دادند. ( آقای امیر صدیقی اگر می‌توانند توضیح دهند :) ) اما من با استفاده از الگوریتم LDA  که مخفف عبارت Latent Dirichlet allocation است استفاده کردم. دلیل نامگذاری این الگوریتم استفاده از توزیع Dirichlet است که یک ریاضی دان بوده است.برای پیاده سازی این الگوریتم ما ابتدا تعداد تاپیک‌ها را باید به الگوریتم بدهیم و خروجی آن این است که برای هر تاپیک به کلماتی که احتمال استفاده شدن آن‌ها در تاپیک زیاد است را به ما می‌دهد.حالا این به ما بستگی دارد که اسم این تاپیک را چه بگذاریم اگر کلمه سگ و گربه بیشتر در این تاپیک استفاده شده است می‌توان گفت که این تاپیک مثلا درباره حیوانات خانگی است.حال اگر ما به این الگوریتم یک مطلب بدهیم او احتمال ( یا درصد ) وجود هر تاپیک در آن مطلب را به ما می‌دهد.حال این مطلب به احتمال زیاد مربوط به تاپیک دو است.این که این الگوریتم چگونه کار می‌کند را بیشتر از این در این مطلب توضیح نمی‌دهم ( در آینده در یک مطلب جدا منتشرش خواهم کرد.)نکته‌ای که وجود دارد این است که این الگوریتم unsupervised است به این معنی که نیازی به برچسب برای پیشبینی ندارد و لازم نیست یک دیتا تمرینی به آن بدهیم تا یاد بگیرد اما من وقتی با استفاده از web scraping داده‌های چهار تاپیک در ویرگول را استخراج کردم برچسب بر روی آن زدم تا ببینم چقدر نتیجه من با نیتجه ویرگول یکی است ( که نتیجه خیلی هم دلچسب نبود ) .در ادامه اگر کدها را می‌خواهید ببینید می‌توانید به این لینک سر بزنید و کد‌هایی که زدم را مشاهده کنید.بعد از پاک‌سازی داده ها از علامت های نگارشی ابتدا با استفاده از CountVectorizer مقدار تکرار هر کلمه در تمام مطالب سایت برای چهار تاپیک مذهبی، تحصیل، اقتصاد و روانشناسی را بررسی کردم. نتیجه به این صورت شد.[(&#039;می&#039;, 5984.0),
 (&#039;است&#039;, 3783.0),
 (&#039;های&#039;, 3040.0),
 (&#039;برای&#039;, 2450.0),
 (&#039;ها&#039;, 2129.0),
 (&#039;آن&#039;, 1957.0),
 (&#039;یک&#039;, 1946.0),
 (&#039;هم&#039;, 1389.0),
 (&#039;شود&#039;, 1247.0),
 (&#039;یا&#039;, 1231.0),
 (&#039;تا&#039;, 1193.0),
 (&#039;رو&#039;, 1134.0),
 (&#039;خود&#039;, 1126.0),
 (&#039;شده&#039;, 1092.0),
 (&#039;هر&#039;, 1027.0),
 (&#039;کند&#039;, 935.0),
 (&#039;بود&#039;, 905.0),
 (&#039;ما&#039;, 876.0),
 (&#039;من&#039;, 876.0),
 (&#039;اما&#039;, 844.0)]که بدیهی است این کلمات تکرار زیادی داشته باشند اما باید اکثر این کلمات را ابتدا حذف می‌کردم چون stop words هستند. بعد از حذف stop words و دوباره استفاده از CountVectorizer حروف استفاده شده را محاسبه کردم که نتیجه بهتر شد. [(&#039;می&#039;, 2178.0),
 (&#039;های&#039;, 1364.0),
 (&#039;ها&#039;, 1015.0),
 (&#039;سال&#039;, 656.0),
 (&#039;کار&#039;, 613.0),
 (&#039;نویسنده&#039;, 440.0),
 (&#039;زندگی&#039;, 431.0),
 (&#039;نظر&#039;, 414.0),
 (&#039;قرار&#039;, 404.0),
 (&#039;دست&#039;, 402.0),
 (&#039;افراد&#039;, 381.0),
 (&#039;ای&#039;, 361.0),
 (&#039;زبان&#039;, 357.0),
 (&#039;کتاب&#039;, 351.0),
 (&#039;یه&#039;, 348.0),
 (&#039;قیمت&#039;, 339.0),
 (&#039;ایران&#039;, 338.0),
 (&#039;دانشگاه&#039;, 333.0),
 (&#039;سرمایه&#039;, 333.0),
 (&#039;برنامه&#039;, 325.0)]
 با توجه به تاپیک‌های انتخاب شده تکرار این کلمات منطقی است.حالا نوبت استفاده از الگوریتم LDA می‌رسد. با توجه به این‌که من چهار موضوع را انتخاب کردم، مقدار component ها را ۴ در نظر گرفتم و الگوریتم به ازای هر تاپیک این کلمات که ۲۰ کلمه بیشتر استفاده شده در هر تاپیک است را پیشنهاد داد.top 20 words for topic  0
[&#039;جامعه&#039;, &#039;الشعر&#039;, &#039;کریم&#039;, &#039;می&#039;, &#039;عزیز&#039;, &#039;زندگی&#039;, &#039;ماه&#039;, &#039;ال&#039;, &#039;قرار&#039;, &#039;نماز&#039;, &#039;امام&#039;, &#039;الله&#039;, &#039;قرآن&#039;, &#039;کتاب&#039;, &#039;روزه&#039;, &#039;خداوند&#039;, &#039;نویسنده&#039;, &#039;دین&#039;, &#039;انسان&#039;, &#039;خدا&#039;]
top 20 words for topic  1
[&#039;قرار&#039;, &#039;الله&#039;, &#039;اضطراب&#039;, &#039;کار&#039;, &#039;نویسنده&#039;, &#039;وسواس&#039;, &#039;اختلال&#039;, &#039;افسردگی&#039;, &#039;جنسی&#039;, &#039;باعث&#039;, &#039;درمان&#039;, &#039;مي&#039;, &#039;فرد&#039;, &#039;های&#039;, &#039;دست&#039;, &#039;ها&#039;, &#039;احساس&#039;, &#039;زندگی&#039;, &#039;افراد&#039;, &#039;می&#039;]
top 20 words for topic  2
[&#039;دانشگاه&#039;, &#039;سازی&#039;, &#039;بررسی&#039;, &#039;حل&#039;, &#039;توان&#039;, &#039;قیمت&#039;, &#039;مدل&#039;, &#039;افزایش&#039;, &#039;هوش&#039;, &#039;دلار&#039;, &#039;تولید&#039;, &#039;کشور&#039;, &#039;نظر&#039;, &#039;ایران&#039;, &#039;ماشین&#039;, &#039;یادگیری&#039;, &#039;الگوریتم&#039;, &#039;برنامه&#039;, &#039;کار&#039;, &#039;سال&#039;]
top 20 words for topic  3
[&#039;نظر&#039;, &#039;بانک&#039;, &#039;شرکت&#039;, &#039;آموزش&#039;, &#039;بازار&#039;, &#039;گذاری&#039;, &#039;دانشگاه&#039;, &#039;به&#039;, &#039;کند&#039;, &#039;قیمت&#039;, &#039;شبکه&#039;, &#039;یه&#039;, &#039;زبان&#039;, &#039;ای&#039;, &#039;سال&#039;, &#039;کار&#039;, &#039;سرمایه&#039;, &#039;ها&#039;, &#039;های&#039;, &#039;می&#039;]تاپیک اول که مشخص است تاپیک مذهبی است. تاپیک دوم هم مشخص است که روانشناسی است. اما تاپیک سوم و چهارم ترکیبی از اقتصاد و تحصیل است. اما به تاپیک سوم بیشتر می‌خورد که تحصیلی باشد و تاپیک چهارم اقتصادی باشد.همانطور که گفته بودم این الگوریتم unsupervised است و لازم نیست به آن برچسب بدهیم اما من برای بررسی شباهت الگوریتم خودم را با الگوریتم ویرگول چک کردم و مقدار درصد شباهت به این صورت شد:تاپیک اول : ۳۲ درصدتاپیک دوم : ۵۶ درصدتاپیک سوم : ۵۰ درصدتاپیک چهارم : ۲۵ درصداین اعداد مقدار دقت مدل نیستند، مقدار شباهت به الگوریتم مورد استفاده از ویرگول است. چون ما مبنایی برای درستی نداشتیم. یعنی ممکن است ویرگول اشتباه هم بکند و بعضی جاها مطلب را اشتباه دسته‌بندی کند.</description>
                <category>محمدرضا</category>
                <author>محمدرضا</author>
                <pubDate>Sat, 29 Jun 2019 20:31:53 +0430</pubDate>
            </item>
                    <item>
                <title>تحلیل احساسات مردم نسبت به کیانو ریوز در توییتر</title>
                <link>https://virgool.io/dataio/%D8%AA%D8%AD%D9%84%DB%8C%D9%84-%D8%A7%D8%AD%D8%B3%D8%A7%D8%B3%D8%A7%D8%AA-%D9%85%D8%B1%D8%AF%D9%85-%D9%86%D8%B3%D8%A8%D8%AA-%D8%A8%D9%87-%DA%A9%DB%8C%D8%A7%D9%86%D9%88-%D8%B1%DB%8C%D9%88%D8%B2-%D8%AF%D8%B1-%D8%AA%D9%88%DB%8C%DB%8C%D8%AA%D8%B1-ovbywr6rqqw8</link>
                <description>کیانو ریوزکیانو ریوز بازیگر مشهور آمریکایی اخیرا در اخبار صدای زیادی کرده و تقریبا تمام اینترنت در حال ستایش او هستند. برای همین برای انجام پروژه تفریحی تحلیل متنم سراغ این بازیگر رفتم تا نظرات مردم در توییتر را درباره این شخص محبوب تحلیل کنم. در این راه و مخصوصا در آخر به کمی و کاستی‌های آنالیز متن و ابتدایی بودن آن می‌رسم. از تحلیل احساسات شروع می‌کنم که یعنی چه. تحلیل احساسات یا به انگلیسی sentiment analysis به معنی بررسی و استخراج حس شخص از نوشته او است. به این ترتیب که آیا شخص نظر مثبت، نظر خنثی و یا نظر منفی نسبت به چیزی که می‌نویسد دارد.به عنوان مثال وقتی شخص می‌گوید &quot;وای چه فیلم خوبی بود حتما پیشنهاد می‌کنم&quot; این جمله امتیاز کلی نزدیک به یک را می‌گیرد یعنی نظر شخص کاملا مثبت است. و وقتی شخص بگوید &quot;وقتم رو تلف کردم اصلا فیلم خوبی نبود&quot; این نظر امتیاز نزدیک به منفی یک را می‌گیرد به این معنی که نظر او کاملا منفی است و هر نظری بین بازه منفی یک و مثبت یک، یک امتیاز می‌گیرد. این امتیاز که همان compound است برای الگوریتم vader sentiment analysis است که در ادامه از آن استفاده می‌کنم.دریافت اطلاعات:حالا در ادامه قصد دارم با استفاده از نظرات مردم در توییتر حس مردم را نسبت به کیانو ریوز تحلیل کنم. برای اینکار از api توییتر استفاده می‌کنم که تقریبا برای گرفتن اکانت دولوپر توییتر باید هفت خوان رستم را رد کنید. البته در گذشته به مراتب راحت‌تر بود این کار اما اخیرا از فیلترهای زیادی باید رد شوید. بعد از گرفتن api key و دیگر مشخصات api و ساختن یک instance با استفاده از این کد توییت‌های مردم را در روز اخیر گرفتم. دلیل محدود کردن زمان توییت‌ها به یک روز اخیر این بود که اطلاعات واقعا زیاد بودند و وقت نداشتم منتظر بمانم و از طرفی ذوق پیاده سازی چیزی که یاد گرفتم را داشتم پس به یک روز بسنده کردم.q=tweepy.Cursor(api.search,q=&quot;keanu reeves&quot;,count=100,lang=&quot;en&quot;,since=&quot;2019-06-28&quot;,type=&#039;recent&#039;).items()در اینجا با دادن زمان توییت که امروز هست و کلمه کلیدی برای سرچ توییت‌های امروز درباره کیانو ریوز را دریافت کردم. ( مقدار ۱۰۰ تعداد بچ‌های سرچ هست که صدتا صدتا توییت‌ها را دریافت می‌کند).سپس این توییت‌ها را در یک فایل csv ذخیره کردم و به فاز دوم رفتم.پاکسازی داده‌ها:در این مرحله که وقت‌گیرترین مرحله تحلیل متن است باید متن را به شکل خام تبدیل کنیم که این کار شامل مراحل پاک‌سازی منشن‌ها و ریتوییت‌ها، پاک‌سازی علائم نگارشی مانند .!؟ ، پاک سازی لینک و پاک سازی اموجی است. برای این کار باید از regex استفاده کنیم که برای من یکی از سخت‌ترین کارهاست :) خلاصه کار به این صورت است : def clean_tweet(tweet):
        tweet = emoji.demojize(tweet) # translate emojis
        tweet = re.sub(&#039;http\S+\s*&#039;, &#039;&#039;, tweet)  # remove URLs
        tweet = re.sub(&#039;RT|cc&#039;, &#039;&#039;, tweet)  # remove RT and cc
        tweet = re.sub(&#039;#\S+&#039;, &#039;&#039;, tweet)  # remove hashtags
        tweet = re.sub(&#039;@\S+&#039;, &#039;&#039;, tweet)  # remove mentions
        tweet = re.sub(&#039;[%s]&#039; % re.escape(&quot;&quot;&quot;!&quot;#$%&amp;&#039;()*+,-./:;&lt;=&gt;?@[\]^_`{|}~&quot;&quot;&quot;), &#039;&#039;, tweet)  # remove punctuations
        tweet = re.sub(&#039;\s+&#039;, &#039; &#039;, tweet)  # remove extra whitespace
        return tweet
    data.text = data.text.apply(lambda x : clean_tweet(x))بعد از پاک‌سازی باید هر متن را tokenize کنیم.این به معنی این است که یک متن را به قسمت‌های کوچک تقسیم کنیم به عنوان مثال جمله زیر به این طریق tokenize می‌شود.&quot;it&#039;s sentence that shows how tokenization works&quot;[&#039;it&#039;, &quot;&#039;s&quot;, &#039;sentence&#039;, &#039;that&#039;, &#039;shows&#039;, &#039;how&#039;, &#039;tokenization&#039;, &#039;works&#039;]بعد از پاک‌سازی و تبدیل متن به بخش‌های کوچک باید هر بخش را  stemming و lemmatization کنیم که stemming یعنی به حالت ساده برگرداندن متن و lemmatization یعنی تبدیل کردن کلمه به ریشه:تفاوت این دو به صورت خلاصهتمام اینکارها برای یک‌دست کردن متن و استخراج حداکثر معنی از آن است. هرچند در آخر به این نتیجه می‌رسیم که عدم انجام مرحله آخر یعنی  stemming و lemmatization کمک بیشتری به تحلیل احساسات می‌کند چون vader به مدل تایپ هم حساس است اگر شخصی کلمه loved را LOVED بنویسد مقدار نمره آن را بیشتر در نظر می‌گیرد.تحلیل احساسات:همان طور که قبلا گفتم برای تحلیل احساسات از الگوریتم vader که مخفف Valence Aware Dictionary and sEntiment Reasoner است استفاده می‌کنم. این الگوریتم یک دیکشنری از پیش ساخته دارد که به عنوان مثال کلمه nice در آن نمره 1.9 را دارد و کلمه tragdy نمره منفی 3.4 را دارد این روش در جمله به دنبال این کلمات می‌گردد و یک برآورد کلی از مقدار مثبت بودن یا منفی بودن متن به ما می‌دهد برای اطلاعات بیشتر می‌توانید این لینک را مطالعه کنید.با استفاده از این سه خط کد می‌توان این الگوریتم را اجرا کرد.from nltk.sentiment.vader import SentimentIntensityAnalyzer
sid = SentimentIntensityAnalyzer()
data[&#039;score&#039;] = data.text.apply(lambda x : sid.polarity_scores(x)[&#039;compound&#039;])نتیجه هم در این هیستگرام قابل مشاهده است. دلیل زیاد بودن نظرات خنثی می‌تواند این باشد که این شخص ترند است و افراد اخبار این شخص را منتشر می‌کنند که هیچ بار مثبت یا منفی‌ای ندارد و یا از اسم این شخص برای دیده‌شدن توییت خود استفاده می‌کنند که لینکی را تبلیغ کنند و یا واقعا نظر خنثی‌ای دارند. اما همانطور که می‌بینید بار نظرات سمت عداد مثبت بیشتر است که محبوبیت این بازیگر را نشان می‌دهد.نتیجه‌گیری و حرف آخر: همانطور که دیدید vader نیازی به داده train ندارد که این از ویژگی‌های مثبت آن است و ما توانستیم از این روش برای استفاده از داده‌هایی که تا قبل از این ندیدیم استفاده کنیم. از طرفی نمی‌توانیم ببینیم مدل ما چقدر اشکال دارد چون داده test نداریم. تحلیل متن بسیار سخت است زیرا کامپیوتر نمی‌تواند sarcasm یا همان طعنه را متوجه شود یعنی وقتی شما بگوید &quot; با دیدن این فیلم می‌توانید به بهترین شکل ممکن وقت خود را درون سطل آشغال بریزید&quot; شاید کامپیوتر این نظر را مثبت ارزیابی کند.تحلیل متن فارسی یکی از بکرترین ضمینه‌های یادگیری ماشین است. دوستانی که دستی در کار دارید بشتابید :) برای تحلیل متن فارسی می‌توانید از هضم استفاده کنید.در آخر از شمایی که تا اینجا این مطلب را خواندید به خاطر وقتی که گذاشتید تشکر می‌کنم اگر حرفی و انتقادی نسبت به این مطلب داشتید می‌توانید از طریق بخش تماس با من وبسایتم استفاده کنید که در این لینک می‌توانید به آن دسترسی پیدا کنید.من از طریق نوشتن یاد می‌گیرم و برای یادگیری ابتدایی تحلیل متن این پست را نوشتم پس قطعا اشکالاتی دارد و کاملا ابتدایی است از طرفی به خاطر کم بودن وقت به خاطر پروژه‌های دانشگاهم نتوانستم وقت زیادی برای این کار بگذارم پس از نقد‌های شما استقبال می‌کنم. :)</description>
                <category>محمدرضا</category>
                <author>محمدرضا</author>
                <pubDate>Fri, 28 Jun 2019 18:03:55 +0430</pubDate>
            </item>
                    <item>
                <title>پیشبینی قیمت کتاب‌های فیدیبو با کمک علم داده‌کاوی</title>
                <link>https://virgool.io/dataio/%D9%BE%DB%8C%D8%B4%D8%A8%DB%8C%D9%86%DB%8C-%D9%82%DB%8C%D9%85%D8%AA-%DA%A9%D8%AA%D8%A7%D8%A8%D9%87%D8%A7%DB%8C-%D9%81%DB%8C%D8%AF%DB%8C%D8%A8%D9%88-%D8%A8%D8%A7-%DA%A9%D9%85%DA%A9-%D8%B9%D9%84%D9%85-%D8%AF%D8%A7%D8%AF%D9%87%DA%A9%D8%A7%D9%88%DB%8C-kucvem2ejg3a</link>
                <description> در حال حاظر من دانشجوی ارشد صنایع هستم و در حال یادگیری علم تحلیل داده‌‌ها یا همون data analysis و در ادامه‌ش data science هستم (برای اینکه بیشتر با این علم با سرعت زیاد در حال توسعه آشنا بشید می‌تونید این لینک رو ببینید). در راه یادگیری این علم وقتی از پروژه‌های coursera و datacamp خسته شدم تصمیم گرفتم یک پروژه برای خودم تعریف کنم اول مقایسه کتاب‌های طاقچه و فیدیبو دو سرویس فروش کتاب دیجیتال رو خواستم با داده کاوی انجام بدم اما طی یک سریع اتفاقات به این نتیجه رسیدم که صرفا کتاب‌های فیدیبو رو تحلیل کنم.جمع‌آوری دیتابرای جمع‌آوری دیتا از فیدیبو ابتدا خواستم از خودشون درخواست داده بکنم اما به این پروسه طول می‌کشید (امیدوارم این شرکت که زیرمجموعه دیجیکالا هست مثل خود دیجیکالا داده‌هاش رو به اشتراک بگذاره) برای همین از web scraping کمک گرفتم برای داده کاوی که شاید روش این کار رو بعدا تو بلاگم بنویسم.به صورت خلاصه به جمع کردن داده‌ها از وبسایت‌ها وب اسکرپینگ می‌گن. با نوشتن یک spider توی لایبرری (بیشتر فریم‌ورک) scrapy اطلاعات قسمت سرچ فیدیبو با کلید واژه کتاب ( که کل کتاب‌های سایت رو لیست می‌کرد) اطلاعات دویست صفحه سرچ این سایت رو دراوردم و بعد از اجازه گرفتن از خودشون توی گیت‌هاب شیرکردم که این فایل csv رو توی این لینک می‌تونید ببینید. این اطلاعات شامل این ستون‌هاست:اسم کتابقیمت کتاب چاپیقیمت کتاب در فیدیبوشابکامتیاز کتاب در فیدیبوشماره صفحاتناشراز مرحله بررسی داده‌ها به بعد کد‌هایی که زدم رو توی یک jupyter notebook نوشتم که این رو هم توی گیت‌هاب شیر کردم که از این لینک می‌تونید ببینید.بررسی داده‌هاابتدا بعد از اضافه کردن داده‌ها یک ستون اضافه کردم به عنوان تفاوت قیمت که تفاوت قیمت کتاب چاپی با کتاب توی سایت فیدیبو بود. سپس هیستوگرام چهار ستون این داده ها رو رسم کردم تا داده ها رو بررسی کنم.اکثر ستون ها داده‌های بیرون از رنج معمول دارند اما این داده ها outlier به خاطر خطا نیستند چون اشتباه جمع‌اوری داده نداشتند. مثلا یک کتاب واقعا هشتاد هزار تومن بود.اما ریتینگ کمی عجیب بود که انقدر ۵ داره برای همین هیستوگرام این ستون رو دوباره رسم کردم تا دقیق‌تر بشه دیدش. تعداد زیادی کتاب امتیاز پنج دارند که این عجیب بود برای همین داده‌ها رو فیلتر کردم و دیدم هفتصد کتاب امتیاز پنج دارند. بعد از بررسی تصادفی چندتا از این کتاب ها معلوم شد که واقعا کاربران به این کتاب‌ها امتیاز پنج دادند و فیدیبو مقدار پیشفرض امتیازش پنج نیست و فیلد امتیاز خالی است اگر کسی رای نداده باشد. اما نکته‌ای که وجود داره اینه که این امتیاز ملاک مناسبی برای ارزشیابی کتاب نیست چون شاید یک کتاب یک امتیاز پنج داشته باشد و مجموع امتیازش پنج باشد و یک کتاب هزار تا امتیاز داشته باشد که میانگین امتیازش چهارونیم باشه قطعا کتاب دوم با ارزش تر است برای همین باید عملکرد کلی رو در نظر بگیریم ولی از اونجایی که فیدیبو تعداد رای ها رو توی سایتش نمی‌زنه نتونستم عملکرد کلی کتاب‌ها رو برآورد کنم پس با همون امتیاز ساده ادامه دادم.کورلیشن بین ستون‌هااز اونجایی که برای پیشبینی قیمت داده‌ها نیاز داشتم از رگرسیون کمک بگیرم باید همبستگی بین ستون‌ها رو بررسی می‌کردم. ستون‌های قیمت کتاب چاپی با قیمت فیدیبو همبستگی زیادی داشت که طبیعی بود. نکته جالب جدول همبستگی این بود که ستون تفاوت قیمت با قیمت چاپی همبستگی بیشتری داشت تا با قیمت فیدیبو. این نشون می‌ده که فیدیبو سعی می‌کنه قیمت‌های کتاب رو جوری بالانس که تقریبا تمام کتاب‌ها توی یک رنج قیمت باشند.همبستگی بالا تفاوت قیمت با قیمت چاپیرگرسیون و تمرین مدلاز اینجا به بعد بهتره jupiter notebook رو باز کنید چون اکثرش کد هست.از اونجایی که یک سری ستون‌های ما همبستگی بالایی دارند از رگرسیون معمولی نمی‌توانیم استفاده کنیم برای همین من دو کار انجام دادم یک اینکه با lasso regression رفتم و دو اینکه با PCA اول داده‌هام رو پروژکت کردم بعد رگرسیون رفتم. سپس دقت هر کدوم رو اندازه گرفتم.من در ابتدا سه مولفه رو در نظر گرفتم قیمت کتاب چاپی، امتیاز و تعداد صفحات رو درنظر گرفتم که اشکالاتی داره که بهش می‌رسم.با روش lasso که رفتم دقت مدل ۶۶ درصد شد که بدون درنظر گرفتن ناشر‌ها مقدار خوبی هست.سپس با روش pca دو کامپوننت رفتم ولی دیدم که اگر یک کامپوننت در نظر بگیرم ۷۰ درصد مدل رو پوشش می‌ده پس می‌شد از یک کامپوننت نیز استفاده کرد. بعد از انجام این کار دقت مدل شد ۵۹ درصد که از روش lasso کمتر بود.سپس ناشر‌ها رو اضافه کردم و آنها رو به متغیرهای باینری صفر و یک تبدیل کردم که بشه از اونها توی رگرسیون استفاده کرد نتیجه این شده که دقت lasso که قبلا ۶۶ درصد بود ۷۷ درصد شد و حدود ۱۰ درصد افزایش یافت و مدل که از روش pca رفتم به دقت ۷۶ درصد رسید ولی کامپونت‌هاش خیلی زیاد شد که باعث شد در آخر pca خیلی بدرد نخوره پس روش lasso بهتر بود.اما نکته‌ای که وجود داره اینه که ما وقتی می‌خوایم یک کتاب به مدلمون اضافه کنیم امتیاز اون رو نمی‌دونیم پس نمی شه این مولفه رو توی مدل اضافه کرد پس باید این ستون رو حذف کنم یا باید از امتیاز سایت‌های دیگه مثل طاقچه یا goodreads استفاده کنم. نکته جالب این هست که با حذف این ستون خیلی دقت lasso پایین نیومد و همون ۷۷ درصد موند و مقدار کمی‌ نیز بهتر شد :)در نتیجه می‌شه از این مدل برای اضافه کردن یک کتاب که قیمت چاپی‌اش رو داریم و تعداد صفحات و ناشرش معلومه قیمت حدودی اون رو برآورد کنیم که با احتمال ۷۷ درصد نزدیک قیمت واقعی برآورد می‌شود. این تحلیل خیلی خام هست و تقریبا اولین تلاش من برای داده کاوی هست پس به علم بالای خودتون کم و کاستی‌هاش رو ببخشید و اگر جایی اشکالی دیدید خوشحال می‌شم که با من به اشتراک بگذارید. اگه دوست‌داشتید می‌تونید از قسمت تماس با من بلاگم استفاده کنید.</description>
                <category>محمدرضا</category>
                <author>محمدرضا</author>
                <pubDate>Sun, 17 Mar 2019 12:16:03 +0330</pubDate>
            </item>
                    <item>
                <title>بهینه سازی فایل‌های pdf برای کتاب‌خوان کیندل</title>
                <link>https://virgool.io/@Mohamadre3a/%D8%A8%D9%87%DB%8C%D9%86%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-%D9%81%D8%A7%DB%8C%D9%84%D9%87%D8%A7%DB%8C-pdf-%D8%A8%D8%B1%D8%A7%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D9%88%D8%A7%D9%86-%DA%A9%DB%8C%D9%86%D8%AF%D9%84-qb7gmocwm5oe</link>
                <description> اکثر کتاب‌هایی که به زبان فارسی موجود در اینترنت فرمت pdf هستند که تقریبا ۹۰ درصد این کتاب‌ها در صفحه ۶ انیجی کیندل قابل خوندن نیستند و فونت کتاب به قدری ریز می‌شود که دیگرکتاب ارزش خواندن ندارد.این متن قسمتی از پست بلاگم با نام کتاب‌خوان کیندل برای فارسی زبانان است که درباره مشکلات استفاده از کیندل و راه‌حل‌های آن برای فارسی زبانان نوشتم. برای خوندن پست کامل روی اینجا کلیک کنیدبرای حل این مشکل دو کار می‌شود کرد: راه حل اول این است که با استفاده از این سایت قسمت‌های سفید دور یک فایل پی دی اف را حذف کنید که با این کار می‌توان تا حد کمی از کتاب‌ها را در کتاب‌خوان کیندل خواند زیرا در اکثر کتاب‌ها نیز بعد از حذف حاشیه سفید باز هم فونت به اندازه کافی در کیندل بزرگ نیست و همچنان این فایل‌ها قابل خواندن نیستند.قبل از حذف حاشیه سفیدبعد از حذف حاشیه سفیدبرای خواندن فایل‌های پی دی اف در کیندل می‌توان از برنامه K2pdfopt استفاده کرد که از اینجا قابل دانلود است. این برنامه می‌تواند تمامی فایل‌های پی دی اف چه فارسی و چه انگلیسی را به فایلی تبدیل کند که قابل مطالعه در کتاب‌خوان‌های ۶ اینچی کیندل باشند. این برنامه در سیستم عامل‌های ویندوز مک و لینوکس قابل استفاده است.برای استفاده از آن در ویندوز می‌توانید برنامه را دانلود کنید و برخلاف نسخه مک برنامه نسخه ویندوز آن دارای یک رابط کاربر گرافیکی است که می‌توان از آن به راحتی استفاده کرد. برای اضافه کردن کتاب باید گزینه add file را بزنید و اگر کتاب‌ شما فارسی است تیک گزینه right to left text را فعال کنید و در آخر convert را بزنید و کتاب تبدیل شده خود را تحویل بگیرید.اما برای استفاده از آن در مک باید ابتدا آن را دانلود کنید و با استفاده از iTerm و یا هر ترمینال دیگری permission فایل دانلودی برنامه را عوض کنید برای این کار از این کد استفاده کنید:chmod 755 k2pdfoptبعد از آن برنامه را باز کنید و بعد از drag and drop کردن فایل خود در آن enter را بزنید و در صورتی که کتاب شما فارسی است باید حرف r را تایپ کنید و دوباره enter بزنید و برای انجام تبدیل یک بار دیگر enter را بزنید بعد از تبدیل فایل تبدیل شده در همان پوشه کتاب ذخیره می‌شود.نتیجه این کار برای این کتاب دایی‌جان‌ناپلئون را مشاهده کنید: پی دی اف بهینه سازی نشدهk2pdfopt دی اف بهینه شده توسط برنامه  </description>
                <category>محمدرضا</category>
                <author>محمدرضا</author>
                <pubDate>Sat, 16 Feb 2019 11:32:49 +0330</pubDate>
            </item>
                    <item>
                <title>به بهانه کارآموزی</title>
                <link>https://virgool.io/@Mohamadre3a/%D8%A8%D9%87-%D8%A8%D9%87%D8%A7%D9%86%D9%87-%DA%A9%D8%A7%D8%B1%D8%A2%D9%85%D9%88%D8%B2%DB%8C-vwxy5osxbgfq</link>
                <description> شما با توجه به رشته‌ای که می‌خونید ممکنه لازم باشه برای تکمیل فرآیند آموزشتون و به قولی لمس کاری که قراره در آینده بکنید به صورت عملی حدود دویست و هشتاد ساعت به عنوان کارآموز در یک شرکت یا کارخانه مشغول به کار شید. البته شکل و ساعت کارآموزی شما کاملا به رشته‌ای که می‌خونید بستگی داره. مثلا یک مهندس صنایع باید دویست و چهل ساعت و یک بار کارآموز شه، ولی یک مهندس مکانیک دو کارآموزی دویست و چهل ساعته رو باید تجربه کنه.قبل از اینکه کارآموزیم شروع بشه از خیلی‌ها که تجربه داشتند درباره کارآموزی پرسیدم. یکی از نکاتی که بین خیلیاشون مشترک بود این بود که شما وقتی به عنوان یک کارآموز وارد شرکتی می‌شی کسی شما رو خیلی مهم نمی‌بینه و حوصله توضیح دادن به شما رو نداره و خودتون باید فعال باشید و به جاهای مختلف سر بزنید و اطلاعات کسب کنید. من مخالف این حرف نیستم ولی حس می‌کنم اینکه شکل کارآموزی شما به چه شکلی باشه پنجاه پنجاهه، ۵۰٪ به شما بستگی داره و ۵۰٪ هم به مسئول کارآموزیتون. یعنی ممکنه مسئول کارآموزیتون وقتی شما رو یه دانشجوی مستعد و علاقه‌مند ببینه به وجد بیاد و با میل بیشتری به آموزش بده. و ممکنه خود اون شخص دلش برای شما بسوزه و بخواد به شما چیزی یاد بده اما وقتی ببینه شما خیلی مشتاق نیستید و فقط می‌خواید امضای نامه کارآموزی رو بگیرید سرد بشه و با شما کاری نداشته باشه. توصیه من به شما اینه که بدون توجه به مسئول کارآموزیتون خودتون رو یک دانشجوی علاقه‌مند نشون بدید؛ چون اگه بخوایم منطقی نگاه کنیم، شما باید دویست ساعتتون رو پر کنید (حالا شاید کمتر شاید بیشتر) از طرفی آینده شغلی شما اگه بخواید در رشته تحصیلیتون فعالیت کنید تقریبا همین شغلی هست که الان به صورت کارآموز مشغولش هستید. پس این کارآموزی علاوه بر جنبه یادگیریش، یک جور سنگ محک نهایی‌ای هست که آیا شما به این نوع کار علاقه دارید یا نه. البته توی بعضی از رشته‌ها ممکنه برای پرسیدن این سوال یه کم دیر باشه، مخصوصا رشته‌هایی که تنوع کاری زیادی ندارند. اما برای رشته خودم که صنایع است، حداقل می‌شه نتیجه گرفت که کار در کارخانه لذت بخش هست یا نه.قانون کارآموزی در دانشگاه ما اینه که اگر از یه حد مجازی بیشتر واحد پاس کرده باشی می‌تونی کارآموز شی. معمولا هم آخر ترم ۶ همه دانشجوها به این شرایط می‌رسند و من هم از این قضیه مستثنا نبودم. وقتی ترم ۶ تموم شد کلاس‌های کنکور ارشدم که توی تابستون برگذار می‌شد شروع شده بودند و من وقت کارآموزی رفتن رو نداشتم. خیلی‌ها به همین دلیل از یک کارخانه که آشناشون بود امضای الکی می‌گرفتند و بدون گذروندن کارآموزی نمرش رو می‌گرفتند. منم به طبع همچین تصمیمی گرفتم. البته علاوه بر این من دلایل دیگه‌ای هم داشتم. من علاقه به داده‌کاوی دارم که خیلی مربوط به کارخانه و ... نیست و آینده شغلیم رو توی صنعت نمی‌دیدم، حتی زمانی که با یکی از استادهام صحبت می‌کردم با صراحت گفتم که حس می‌کنم این کارآموزی برای من وقت تلف‌کردن محض است اما بعدا به این نتیجه رسیدم که اشتباه می‌کردم. پدر من در گذشته بازرس فرآیند شرکت‌های قطعات خودرو بوده و دوستان زیادی در کارخانه‌های تولید قطعات خودرو داره. حتی کارخونه‌ای که راضی شده بود نامه بده رو هم پیدا کرده بود اما قبلش به من گفت که نظر من اینه که یک ماه کار در کارخونه رو تجربه کنی و محیط کار اینجوری رو ببینی. می‌دونم دوست نداری در آینده مهندس کارخونه بشی، مخصوصا با این وضع خراب اقتصادی (که در حال حاظر بدتر هم شده). به همین دلیل تصمیم گرفتم کارآموزیم رو برم اما تابستون بعدش که الان می‌شه.دوتا کارخانه پیدا کردم یکی کوچک و یکی بزرگ، تصمیم گرفتم کارخانه بزرگتر رو برم چون اون موقع به این نتیجه رسیده بودم که کار در کارخانه بزرگتر بهتر است. چون کارخانه‌های کوچک خیلی روی اصول کار نمی‌کنند و اکثرا کارها رو سرسری انجام می‌دهند و این کارخانه‌ها مناسب کارآموزی نیستند. پس کارخانه بزرگتر را انتخاب کردم.در روز اول که رفتم کارخانه اولین چیزی که توجه‌م را جلب کرد تفاوت کارگرها و مهندس‌ها بود. وقتی ساعت دوازده رفتم سلف برای خوردن غذا دیدم فقط کارگرها هستند. بعدا فهمیدم که قانون نانوشته‌ای که این کارخانه داشت این بود که اول کارگرهای خدماتی غذا بخورند (به دلایل فنی)،‌ بعد از آن‌ها کارگر‌های خط و بعد از آنها مهندس‌ها. البته ساعت یک که مرز بین ساعت غذای کارگران و مهندس‌ها بود هم مهندس‌ها هم کراگرها توی سلف بودند اما با هم نمی‌نشتند. بعدها فهمیدم که این تفاوت بین کارگرها و مهندس‌ها فراتر از یک ساعت غذا خوردن بود. یک روز که برای پرسه توی خط رفته بودم یک مسئول خط داشت برایم توضیح می‌داد خطش چجوری کار می‌کنه. آخرش پرسیدم شما توی خط چیکار می‌کنید. گفت من مسئول کنترل کیفیت هستم مسئول منابع انسانی هستم مسئول تضمین هستم. از همه بیشتر کار می‌کنم، از همه کمتر حقوق می‌گیرم. دقیقا مهم‌ترین تفاوت بین مهندس‌ها و کارگرها همین هست. کارگرها فکر می‌کنند چون کار یدی بیشتری می‌کنند باید حقوق بیشتر را آنان بگیرند و مهندسی که با یک چک لیست داخل خط میاید نباید دو یا سه یا ده برابر آنان حقوق بگیرد. از طرفی مهندس‌ها فکر می‌کنند چون کلی درس خواندند باید بیشتر حقوق بگیرند. من تا آخر تابستان مهندس می‌شوم پس استدلال من هم سمت مهندس هاست. بگذریم...تفاوت دیگر مهندس‌ها با کارگر‌ها در تفاوت پوششان بود. وقتی در کارخانه می‌گشتم اگر روپوش تن کسی بود و کفش کار پایش بود یعنی کارگر بود. اگر روپوش تنش بود ولی کفشش معمولی بود یعنی مهندس بود و اگر روپوش تنش نبود جز معاون‌ها و مدیران بود.من در بخش مدیریت استراتژیک آن کارخانه کار می‌کردم. زیاد از اتاق بیرون نمی‌آمدم و کارم این بود که شاخص‌های کارخانه را بررسی کنم و ببینم که هرکدام از بخش‌های کارخانه مانند کنترل کیفیت،‌ تامین داخل، بازرگانی و... چگونه کار می‌کنند و وضعیت فعلی آنها چگونه است. این شاخص‌ها از جلساتی که مدیران آن بخش با معاون مدیریت استراتژیک گذاشته بودند و با توجه به اهداف کارخانه و استراتژی‌های هر بخش بدست آمده بود.هر کدام از این شاخص‌ها با توجه به هدفی که داشتند و مقدار فعلی‌شان مقایسه می‌شدند و درصد تحققشان بدست می‌آید. این درصد تحقق در پاداش دهی موثر بود.این بخش با تمامی بخش‌های کارخانه در ارتباط بود، یکی از بخش‌هایی که برایم خیلی جالب بود بخش خودکفایی بود. وظیفه این بخش بومی سازی قطعاتی بود که به آن کارخانه می‌آمد. این بخش سعی می‌کرد قطعاتی که در خارج تولید می‌شد مخصوصا قطعات تک سورس (قطعاتی که فقط یک تامین کننده داشتند) را بررسی کند و اگر این قطعات پتانسیل تولید داخل داشتند، نقشه آن‌ها را تهیه می‌کردند و به تامین کنندگان داخلی می‌سپردند. این بخش قبل از تحریم‌های اولیه آمریکا تاسیس شده بود (یعنی قبل از سال ۹۰) پس فقط دلیل تاسیسش مقاوم سازی در مقابل تحریم نبود. البته بعد از تحریم‌ها اهمیت ویژه‌ای پیدا کرد و جز بخش‌های مهم کارخانه شد.در این چند وقتی که در کارخانه بودم تمام افرادی که می‌دیدم درک درستی از کاری که می‌کردند نداشتند. نه اینکه مشکل از آنها باشد اکثرا کاری که می‌کردند جز کوچکی از یک پروسه بزرگ بود و آن‌ها نتیجه کاری که می‌کردند را نمی‌دیدند و نمی‌توانستند با در نظر گرفتن نتیجه کار نهایی در کاری که می‌کنند خلاقیت نشان بدهند. از طرفی این خلاقیت‌ها با توجه به مدیران سنتی کارخانه‌ّها ممکن نبود خیلی به نتیجه برسد. البته آن کارخانه مشکل دوم را نداشت و مدیران سنتی‌ای نداشت ( به دلیل بزرگ بودن کارخانه به قولی مدیران حاجی بازاری نبودند! ).این ندیدن نتیجه کار خیلی دلچسب نبود، حداقل برای من. چون من جز کسانی هستم که دوست دارم نتیجه کارهایی که می‌کنم را ببینم و اگر نتیجه آن را نبینم نسبت به آن کار سرد می‌شوم. پس با این تفاسیر به این نتیجه رسیدم که کار در کارخانه‌های بزرگ رو دوست ندارم.شاید یکی از مهم ترین ثمراتی که این کارآموزی برایم داشت این بود که به این نتیجه رسیدم که کار در کارخانه رو دوست ندارم و کار در سازمان‌های بزرگ را هم دوست ندارم. پس با توجه به این دو اصل نصف کارها و گرایشاتی که در ارشد می‌توانستم دنبالشان بروم خط خوردند و به این نتیجه رسیدم که این کارآموزی برایم کاملا بی فایده نبوده و توانستم بهتر مسیر شغلی‌ام را انتخاب کنم</description>
                <category>محمدرضا</category>
                <author>محمدرضا</author>
                <pubDate>Thu, 30 Aug 2018 08:41:31 +0430</pubDate>
            </item>
                    <item>
                <title>کلام به حق کرت کوبین</title>
                <link>https://virgool.io/@Mohamadre3a/%DA%A9%D9%84%D8%A7%D9%85-%D8%A8%D9%87-%D8%AD%D9%82-%DA%A9%D8%B1%D8%AA-%DA%A9%D9%88%D8%A8%DB%8C%D9%86-v3wlxg59pyqh</link>
                <description> شاید شما هم این جمله معروف کرت کوبین که می‌گه “ترجیح می‌دم به خاطر چیزی که هستم دوستم نداشته باشی تا به خاطر چیزی که وانمود می‌کنم دوستم داشته باشی .“ این جمله هرچند خیلی قشنگ و تاثیرگذار جلوه می‌کنه ولی اولین باری که شنیدمش گفتم اینم یکی از اون جملات ویترینی برای اینستاگرامه که وقتی یه جای خوش‌آب و هوا می‌ریم و جوجه سیخ می‌کنیم از خودمون عکس می‌گیریم و این رو کپشن می‌کنیم.التبه آخر سر هم نه خودمون یادمون می‌مونه می‌مونه و نه فالوورامون. ولی خود این شرطی که اگر من می‌رم یه جای خوش آب و هوا و جوجه می‌خورم، حتما باید عکسش رو بذارم اینستاگرام تا بقیه هم ببینن، نقض همون کپشنه!خیلی وقتا خودمون کارهایی می‌کنیم که خیلی بش اعتقاد نداریم؛ اصلا شاید دلیلی هم برای این کار نداریم ولی باید اون کار رو انجام بدیم تا تو یه جامعه‌ای پذیرفته بشیم!البته این اصل رو که همه انسان‌ها نیاز دارن تا دیده بشن و توسط یه سری پذیرفته بشن رو اصلا زیر سوال نمی‌برم. حرف من اینه که ما داریم سعی می‌کنیم تو یه جامعه‌ای که بش تعلق نداریم خومون رو جا کنیم. و وقتی این کار رو می‌کنیم داریم خود واقعی‌مون و علایق و احساساتمون رو پنهان می‌کنیم تا توسط اون جامعه طرد نشیم؛ در آخر همین تغییر به زور باعث می‌شه از خودمون راضی نباشیم و احساس گناه کنیم و در مواردی افسرده شیم.مشکل از اینجاست که ما اولویت به یک جامعه تعلق داشتن رو قبل از داشتن یه سری ویژگی‌ها می‌ذاریم، یعنی قبل از اینکه به این فکر کنیم به چی علاقه داریم دنبال اونایی می‌گردیم که مردم بیشتر دوستشون دارن و سعی می‌کنیم خودمون رو شبیه به اونا بکنیم. یکی از راه‌های درستی که من بش رسیدم اینه که بذاریم با توجه به ویژگی‌هایی که داریم خود یک جامعه ما رو بپذیرن و خودبه‌خود عضو اونا بشیم. مثلا شما وقتی درباره یه بازی فوتبال توییت می‌کنید، چندتا فوتبالی هم توییت شما رو ریتوییت می‌کنند و یه جورایی شما عضو جامعه فوتبال دوست توییتر می‌شید!راه درست‌تر اینه که سعی کنی کسایی که شبیه به خودت هستن رو پیدا کنی، مثلا اگر شما به عکاسی خیابانی علاقه داری باید توی مییتنگ‌های عکاسی خیابانی و یا گالری‌های عکاس‌های دیگه شرکت کنی تا توی جامعه‌ای هم ارزش با خودت قرار بگیری.تمام این چند پاراگراف حاصل تفکرات خودمه و نظرات شخصیه، اصلا دلیل استفاده از نثر گفتاری هم برای این بود که به یک متن علمی تبدیل نشه و فقط نظرات خودم باشه. پس خوشحال می‌شم اگر نظرتون مخالف نظر منه تو کامنت بیان کنید.</description>
                <category>محمدرضا</category>
                <author>محمدرضا</author>
                <pubDate>Sun, 29 Apr 2018 11:20:52 +0430</pubDate>
            </item>
            </channel>
</rss>