<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های سهیل تهرانی پور</title>
        <link>https://virgool.io/feed/@soheiltp</link>
        <description>Ph.D. in A.I. and Machine learning| Founder Of http://iran-machinelearning.ir | CEO of Saean Ertebat</description>
        <language>fa</language>
        <pubDate>2026-06-07 04:41:33</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/21222/avatar/wP8v7V.png?height=120&amp;width=120</url>
            <title>سهیل تهرانی پور</title>
            <link>https://virgool.io/@soheiltp</link>
        </image>

                    <item>
                <title>هوش مصنوعی در مخابرات</title>
                <link>https://virgool.io/dataio/%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-%D8%AF%D8%B1-%D9%85%D8%AE%D8%A7%D8%A8%D8%B1%D8%A7%D8%AA-zlpg6rxpbs2g</link>
                <description>امروزه سرنوشت صنعت ارتباطات و مخابرات ایران و جهان، با تکامل فن آوری و پدیده های نوظهوری مانند نسل پنجم شبکه تلفن همراه (5G) و اینترنت اشیا (IoT) به استفاده از ابزارهای بسیار متفاوتی از روش های سنتی گره خورده است؛ ابزارهای هوشمندی که از نظر سرعت و کارآمدی عملکردی، روز به روز گوی سبقت را روش های سنتی دزدیده و خود را برای برداشتن گام های جدیدتری آماده نموده است.افزایش یکپارچگی صنعت مخابرات با تکنولوژی هوش مصنوعی می تواند منجر به جریان های مختلف درآمدی جدید شود. هوش مصنوعی کاربردهای گسترده ای در این بخش از صنعت دارد؛ که از مهمترین آن ها می توان به طبقه بندی داده های موجود در شبکه های مخابراتی اعم از متن و ویدیو، تشخیص آنومالی و بهینه سازی شبکه و بهره برداری از آن اشاره نمود که در ادامه به توضیح هر کدام خواهیم پرداخت.متخصاصان صنعت مخابرات و ارتباطات پیش بینی می کنند که تا سال 2020 میلادی، حداقل 31.5 درصد از سازمان های مخابراتی عمدتاً تمرکز خود را بر استفاده از زیرساخت های جاری و 63.5 درصد سرمایه گذاری در سیستم های هوش مصنوعی انجام خواهند داد.براساس برآوردها، فقط تبلیغات موبایلی(تبلیغات ارایه شده بر اساس داده های انتقالی توسط موبایل ها) در سال 2019 به 87.9 میلیارد دلار خواهد رسید و قاعدتاً شرکت های مخابراتی و اپراتورها بخش بزرگی از آن خواهند بود.هوش مصنوعی مجموعه‌ای از روش‌ها و الگوریتم ها می باشد که جهت شبیه‌سازی رفتار موجودات هوشمند توسط ماشین‌ها به کار می‌رود. یادگیری ماشین که یکی از این روش‌هاست. در واقع یادگیری ماشین، مبتنی بر روش‌هایی‌ست که به ماشین ها و کامپیوترها امکان آموختن الگوهای پنهان در داده‌های خام را می‌دهد. در واقع با استفاده از Machine learning نیازی به برنامه نویسی صریح (Explicit Programming) وجود نخواهد داشت و این پترن موجود در داده ها توسط الگوریتم های مربوطه استخراج خواهند شد.مزیت اصلی تحلیل های صورت گرفته توسط نرم‌افزار هوش مصنوعی این است که سیستم در نهایت قادر خواهد بود الگوها را در کمترین زمان ممکن شناسایی نماید؛ در حالی که تشخیص این الگوها توسط روش‌های سنتی هفته‌ها و ماه‌ها به طول می انجامید (البته لزوماً تشخیص درستی هم نبود).هوش مصنوعی در مخابراتبه عنوان مثال، تکنولوژی هوش مصنوعی، در پردازش سریع داده ها کمک خواهد کرد و این امر سبب بهبود چگونگی انجام خدمات شرکت های روابط عمومی در مقام یک سیستم توصیه گر خواهد شد. با بهبود نگرش در این که مصرف کنندگان چه می خواهند، پیام ها به شکل مستقیم و هدف دار ارسال خواهند شد. این موضوع آن جایی ارزش واقعی خود را نشان خواهد داد که اپراتورهای فعلی کشورمان مدل فعلی‌شان را متوقف کرده و الگوریتم‌های یادگیری ماشین را برای داده‌هایی به‌کار ببرند که امروزه در شبکه‌های مخابراتی جریان دارند. این کار به آنها اجازه می‌دهد تا از ترکیب پیچیده الگوریتم های هوش مصنوعی و یادگیری ماشین، الگوهای ترافیک داده‌ها و تعاملات موبایل‌های هوشمند برای ایجاد گروه‌های مختلف و رفتارهایی رمزگشایی کنند که هر مشتری را متمایز و مشخص می‌کند. داده‌های خام که از طریق یک شبکه موبایل در جریان هستند، می‌توانند به اطلاعات رفتاری کاربر تبدیل شوند تا اطلاعات قابل استنادی را برای واکنش‌های در لحظه به نیازها و علایق مشتریان تولید کنند.با درک بهتر از ماهیت سیستم های دیجیتال، شرکت های این حوزه خواهند توانست پیام های به خوبی تنظیم شده ای برای مخاطبان خود ایجاد کنند. بنابراین، تبلیغات و پیشنهادات را می توان به طور خاص برای یک مصرف کننده خاص در زمان واقعی بهینه سازی نمود، که این امر به واسطه متناسب بودن پیام ها با مصرف کننده سبب تولید نتایج بهتری خواهد شد. متخصصان روابط عمومی و صنایع رسانه ای، با داده های زمان واقعی قابل استفاده به عنوان یک دارایی، قادر به ارائه محتوایی خواهند بود که مخاطبان آن ها می خواهند، به جای محتوایی که برای آن ها آزار دهنده باشد. این امر کمک می کند تا آن ها از هدر رفتن زمان بر روی محتوایی که مخاطبان شان به خوبی آن را دریافت نمی کنند، جلوگیری شود.کاربرد چت بات و هوش مصنوعی در مخابراتموضوع جذاب دیگری که هوش مصنوعی و یادگیری ماشین برای صنعت مخابرات و ارتباطات به ارمغان آورده است، امکان ارتباط سیستم های هوش مصنوعی با انسان از طریق ارتباطات متنی، صوتی و ویدیویی در مقام یک سیستم کاملاً هوشمند خواهد بود. الگوریتم های پردازش زبان طبیعی (Natural Language Proceessing) به دنبال درک ارتباطات انسان ها، نوشته ها یا سخنان است که در مقابل با استفاده از زبان طبیعی، با ما ارتباط برقرار کند. یادگیری ماشین به درک تفاوت های ظریف میان زبان های بومی و یادگیری شیوه پاسخ دادن به گونه ای که مخاطبان خاص آن را درک کنند کمک می کند و با تلفیق سیستم های مبتنی بر پردازش گفتار قادر خواهند بود به سیستم یکپارچه ای جهت ارتباط با انسان تبدیل شوند. به این صورت که با حذف اپراتورهای انسانی و جایگزینی آن ها با اپراتورهای هوشمند کامپیوتری (Chatbot و Voicebot) عملاً بخش اعظمی از مشکلات مراکز تماس حل خواهد شد؛ این مشکلات عبارتند از:کاهش قابل توجه هزینه های مرکز تماس (فضا و تجهیزات ویژه جهت تجهیز مراکز تماس)گرد آوری و ثبت داده‌های مشتریان و الگوی رفتاری آنها به صورت یکپارچهامکان پاسخگویی 24 ساعته بدون خستگی و حواس پرتی اپراتورعدم کاهش تمرکز اپراتور هوش مصنوعیامکان افزایش دایره اطلاعات اپراتور هوشمند در طول زماندر نهایت بهبود پاسخگویی و در نتیجه رضایت بالاتر مشتریاناین موضوع امروز نمونه های کاملاً عملیاتی و گسترده تری نیز به خود گرفته است و می توان به دستیار هوشمند Alexa تولیدی شرکت آمازون، Google Assistant شرکت گوگل و یا Siri شرکت اپل اشاره نمود.همچنین سرویس های ارزش افزوده (VAS) که امروزه پس از توییت جنجالی وزیر محترم، بیشتر از پیش روی نوک پیکان انتقادات قرار گرفته اند، شامل تبادل اطلاعات الکترونیکی، پردازش داده ها، پست صوتی (Voicemail)، ذخیره سازی پایگاه داده آنلاین و خدمات مخابراتی پایه ای از جمله انتقال داده ها، سرویس های فکس، سرویس های صوتی و دیگر موارد همگی تحت تاثیر استفاده از هوش مصنوعی و یادگیری ماشین خواهند بود.یکی از چندین کاربرد قابل اشاره جهت استفاده هوش مصنوعی و یادگیری ماشین در صنعت مخابرات و ارتباطات بهره گیری از این تکنولوژی های در کنار موضوع محبوب همگان، یعنی اینترنت اشیا می باشد. جایی که تعداد بسیار زیادی از دستگاه های IoT مانند سنسورهای مختلف و دوربین هایی متصل به شبکه به صورت مداوم در حال تولید داده هستند و قطعاً جهت پردازش و استفاده از این داده ها نیاز به سیستم های مبتنی بر Machine learning  و به ویژه Deep Learning یا یادگیری ژرف می باشد. در واقع هنگامی که سرعت تولید داده ها بسیار بیشتر از زمان لازم جهت پردازش داده ها می باشد با مقوله کلان داده ها (Big Data) سر و کار خواهید داشت و عملاً این حوزه بدون حضور هوش مصنوعی کاری از پیش نخواهد برد.یادگیری ماشین در مخابراتدر نهایت، هوش مصنوعی با ضریب سرعت باور نکردنی در حال تکامل است. چه بخواهیم چه نخواهیم، دیر یا زود، این تکنولوژی جای خود را در زندگی ما پیدا خواهد کرد و اگر می خواهیم هوش مصنوعی طوری تکامل یابد که به ما و کشور عزیزمان ایران کمک کند، لازم است تا با مهیا نمودن میدان برای جوانان و به ویژه شرکت های نوپا، اهداف و استراتژی های درخور این مرز و بوم را درست تعریف نماییم تا راه را برای ورود این تکنولوژی به صنایع مختلف هموارتر کنیم؛ به گونه ای که در خور نیاز ما انسان ها، فرهنگ و نیز شرایط زندگیمان باشد.</description>
                <category>سهیل تهرانی پور</category>
                <author>سهیل تهرانی پور</author>
                <pubDate>Thu, 03 Oct 2019 09:42:39 +0330</pubDate>
            </item>
                    <item>
                <title>پردازش زبان های طبیعی (NLP) [5]</title>
                <link>https://virgool.io/@soheiltp/%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%B7%D8%A8%DB%8C%D8%B9%DB%8C-nlp-5100-lyi5pf1nfody</link>
                <description>در این مطلب از بررسی NLP، به بررسی موضوع زیر خواهیم پرداخت: Text Classification and Naive BayesText Classification and Naive Bayesیکی از کاربردهای معروف دسته بندی متون (Text Classification)، دسته بندی ایمیل ها به دو دسته اسپم و غیر اسپم (Spam , Ham) می باشد. خوب همونطوری که قطعاً با اسپم آشنایی دارند، اسپم (Spam)، به معنای ایمیل است که بدون درخواست گیرنده و معمولاً به صورت Bulk و همگانی برای افراد بی شمار فرستاده می شود. ایمیل های Spam بیشتر با هدف تبلیغاتی یا سوء استفاده های دیگر از سیستم دریافت پیام ارسال می شوند. امروز گوگل و سایر ارایه دهندگان سرویس های ایمیل، از روش های بسیار متنوعی جهت تشخیص اسپم از غیر اسپم استفاده می نمایند که شامل بررسی وضعیت Mail server و آدرس IP ارسال کننده و ... می باشد اما یکی از روش های اصولی، ممیزی محتوای ایمیل توسط روش های مبتنی بر NLP می باشد که یکی از این الگوریتم های ساده و معروف Naive Bayes Classifier می باشد که امروز طبق مطالب ارایه شده در کورس NLP دانشگاه Stanford به آن خواهیم پرداخت.دسته بندی ایمیل ها بر اساس روش های Text Classificaitonتئوری بیز (Naive Bayes)سنگ بنای یادگیری بیزی را  تئوری بیز تشکیل می دهد. این تئوری امکان محاسبه احتمال ثانویه را بر مبنای احتمالات اولیه می دهد. قطعاً رابطه بیزین (Naive Bayes) که در شکل زیر آورده شده است بارها در هر کدام از دروس ریاضیاتی و به ویژه آمار و احتمالات آورده شده است اما امروز یک مثال عددی و کاربردی از آن را در تشخیص کلاس یک متن بررسی می کنیم.رابطه تئوری بیز - Naive Bayesبرای شروع بهتر است در مورد مفهومی صحبت کنیم به نام Bag of Words یا BoW. کیف کلمات (BoW) یک مدل در پردازش زبان های طبیعی است که با هدف دسته بندی مستندات و متون استفاده می شود. ایده اصلی آن، به این صورت هست که به هر کدام از کلمات یک عدد Unique نسبت می دهیم و Feature بدست آمده بر اساس فرکانس تکرار هر کدام از کلمات به دست خواهد آمد. نحوه محاسبه Bag of Words (BOW) توضیحات تکمیلی از طریق وب سایت دوست عزیزم، جناب آقای دکتر کاویانی، در لینک زیر آورده شده است. ساخت کوله‌ی کلمات(Bag of Words) در پیش‌پردازش متونحال پس از بررسی مقدمات، نوبت به ریاضیات مساله می رسد. همانطور که در شکل زیر مشاهده می فرمایید، جهت به دست آوردن میزان احتمال اینکه یک داکیومنت یا رشته (متن) به یک کلاس (مثلاً کلاس مثبت یا کلاس منفی) از تئوری بیز استفاده می کنیم. داکیومنت با d و کلاس با c نمایش داده شده است.دسته بندی متون با Naive Bayes Classifierجهت یافتن بیشترین میزان احتمال تعلق به هر کلاس از کلاس های در نظر گرفته شده، طبق روابط بالا می بایست Maximum a Posteriori را محاسبه نمود. در ادامه طبق Notation ارایه شده، میزان احتمال توالی کلمات و میزان احتمال تعلق به هر کلاس آورده شده است. البته شایان ذکر است که جهت جلوگیری از صفر شدن کل احتمال، میزان احتمال را با یک جمع می کنیم که در نهایت به شکل زیر خواهد شد.فرمول محاسبه نهایی که ما با آن سر و کار خواهیم داشت.به عنوان بخش پایانی یک مثال عددی را مورد بررسی قرار خواهیم داد. در این مثال، داده های Training و Test به صورت جدولی نشان داده شده است که جهت محاسبه، به این صورت عمل خواهیم کرد:محاسبه P(c) و P(j) به ترتیب مربوط به Chinese و Japanese می شود.برای محاسبه احتمالات شرطی به این صورت می باشد که مثلاً P(Chinese|c) برابر خواهد بود با 6/14 .  تعداد کلمه Chinese در کلاس C برابر با 5 می باشد (Count(w,c) = 5).تعداد کل کلمات (حتی تکراری) در کلاس C برابر با 8 می باشد (Count(c) = 5)تعداد کلمات Unique در کلاس C برابر با 6 می باشد (V = 6)مثال عددی Naive Bayes جهت Text Classification در نهایت با توجه به این که احتمال کلاس (c|d5)P بیشتر می باشد، داده تست که به صورت Chinese Chinese Chinese Tokyo Japan می باشد به کلاس C (که همان Chinese می باشد) متعلق خواهد بود.یکی دیگر از اصلی ترین کاربردهای Text Classification، تشخیص احساسات یا Sentiment Analysis می باشد که در روزهای آتی به صورت مفصل در مورد آن بحث خواهیم نمود.من، سهیل تهرانی پور، قصد دارم تا از طریق ویرگول برای شما بیشتر از NLP بگم تا بتونیم در کنار هم زبان قشنگ فارسی رو جهانی تر کنیم.بیاین با هم یادگیری ماشین، یاد بگیریم. (Keep Calm and Learn Machine Learning) </description>
                <category>سهیل تهرانی پور</category>
                <author>سهیل تهرانی پور</author>
                <pubDate>Sat, 20 Apr 2019 20:32:20 +0430</pubDate>
            </item>
                    <item>
                <title>پردازش زبان های طبیعی (NLP) [4]</title>
                <link>https://virgool.io/@soheiltp/%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%B7%D8%A8%DB%8C%D8%B9%DB%8C-nlp-4100-jce4xijqaohy</link>
                <description>این مطلب، به بررسی دو مورد اختصاص دارد:چالش  پردازش زبان طبیعی : بررسی N-Gram مفهومی به نام Edit Distance و Minimum Edit Distance در پردازش زبان های طبیعی (NLP).مفهوم N-Gram و کاربرد آن در پردازش زبان های طبیعی (NLP).بررسی Minimum Edit Distance در پردازش زبان های طبیعی (NLP).در علوم کامپیوتر و زبان محاسباتی، Edit Distance جهت محاسبه و کمیت سازی میزان تفاوت دو کلمه یا رشته تعیین می شود. روش های متعددی جهت این امر وجود دارد که Levenshtein یکی از روش های معروف این حوزه به شمار می رود که در شکل زیر الگوریتم محاسبه آن آورده شده است. از این روش در بررسی صحت نوشتار و Spelling کلمات نیز استفاده می شود.یکی از قواعد اصلی جهت به دست آوردن Minimum Edit Distance با نام Levenshteinفاصله Levenshtein با 3 اپراتور درگیر است که با آن ها فاصله نهایی را محاسبه می نماید:حذف یا Deletionافزودن یا Insertionجایگزینی یا Substitutionاپراتورهای Levenshteinدر این روش، قاعده محاسبه به این صورت است که بین دو کلمه مورد نظر، جدولی تشکیل می گردد که یکی در ستون و یکی در سطر (کاراکتر به کاراکتر) می نشینند. سپس همانطور که در شکل زیر به عنوان مثال آورده شده است، هر اپراتور &quot;هزینه ای برابر با یک&quot; خواهد داشت.مثال روش Levenshtein* نمونه ای دیگر از نحوه محاسبه و تشکیل جدول به روش Levenshtein در این لینک آورده شده است که علاقمندان می توانند جهت مطالعه بیشتر به آن مراجعه نمایند. *بررسی N-Gram و کاربرد آن در پردازش زبان های طبیعی (NLP).به عنوان مقدمه جهت ورود به مدل های موجود برای زبان های طبیعی، ابتدا باید گفت که در هر شبیه سازی و حل مسئله، یک مدل سازی اولیه لازم است. بسیاری از این مدل ها، از یک پس زمینه ریاضی برخوردار هستند؛ مانند گراف، احتمالات و ... . مدل N-Gram یکی از این مدل هاست. در این مدل، از آمار کلاسیک و احتمال بهره گرفته شده است. فرض کنید هر کدام از Nodeها را به صورت یک رأس در گراف هستند که می تواند به رأس دیگری یال جهت دار داشته باشد. این یال جهت دار، نشان دهنده یک نوع رابطه است که با توجه به مورد دلخواه ما می تواند معانی متفاوتی داشته باشد. مثلاً می تواند توالی دو کلمه باشد (اگر کلمه ای بعد از کلمه دیگری بیاید، یک یال از اولی به دومی وجود دارد). به یک توالی n تایی از این رأس ها، N-Gram می گوییم (توالی های 3gram، 2gram و ... نیز از مدل های دیگر پیشنهادی می باشند).مدل N-Gram در سطح کلماتدر این مدل، یک مجموعه داده های آماری بسیار بزرگ نیاز داریم که هر کدام مجموعه ای از این نشانه ها به همراه روابط بین آن ها است. برای مثال، در مورد یک زبان خاص، یک سری متن به آن زبان می باشد. حال روابطی در این مدل تعریف می شود که می توان با استفاده از آن، درستی یک توالی خواص از این نشانه ها را بررسی کرد.مدل N-Gram در سطح کاراکتر فرض کنید می خواهیم درستی عبارت a1→a2→a3→a4 را مورد ارزیابی قرار دهیم. در این مدل، احتمال درستی به صورت یک عدد تعیین می شود که هرچه داده های آماری ما بیشتر باشد، نتیجه مطلوب تر است. عبارت بالا را به اجزای زیر تقسیم می کنیم و تعداد تکرار هر کدام را در داده های آماری پیدا می کنیم.همانطور که در شکل زیر مشاهده می نمایید، یک مثال از نحوه محاسبه Maximum Likelihood که بر اساس Chain Rule می آید، آورده شده است.در انتها، یک مساله باز می ماند که اگر تنها یکی از این احتمال ها صفر باشد، کل رابطه فوق و در نتیجه احتمال کل صفر خواهد شد؛ یکی از روش های روبرویی با این چالش، افزودن مقداری ثابت در احتمال کل می باشد که در روش های ریاضیاتی و محاسباتی بیشتر به آن اشاره می شود. اما در این جا، طبق سیلابس ارایه شده در دوره NLP دانشگاه Stanford، جهت افزایش سرعت محاسبه (جمع سریعتر از ضرب می باشد) و نیز جلوگیری از Underflow در فضای لگاریتمی با مقادیر احتمالات برخورد می کنیم. منظور از Underflow این است که در صورت ضرب چندین عدد کمتر از یک، عدد نهایی بسیار کوچک خواهد شد و در گام های بعدی کار ما را سخت خواهد کرد.در مدل زبانی N-Gram در فضای لگاریتمی با احتمالات برخورد می کنیم. من، سهیل تهرانی پور، قصد دارم تا از طریق ویرگول برای شما بیشتر از NLP بگم تا بتونیم در کنار هم زبان قشنگ فارسی رو جهانی تر کنیم.بیاین با هم یادگیری ماشین، یاد بگیریم. (Keep Calm and Learn Machine Learning) </description>
                <category>سهیل تهرانی پور</category>
                <author>سهیل تهرانی پور</author>
                <pubDate>Sat, 20 Apr 2019 01:26:40 +0430</pubDate>
            </item>
                    <item>
                <title>پردازش زبان های طبیعی (NLP) [3]</title>
                <link>https://virgool.io/apieco/%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%B7%D8%A8%DB%8C%D8%B9%DB%8C-nlp-3100-bqvxpnheqrdg</link>
                <description>منظور از Regular (عبارت قاعده مند)، عبارتی است که با آن بتوانیم به یک دسته کلی از متون ، و یا رشته ها دسترسی داشته باشیم؛ در واقع به عنوان مثال، وقتی بخواهیم به تمامی عبارات که با حرف &quot; آ &quot; شروع شده و با حرف &quot; م &quot; پایان می یابند، می بایست از Regex یا Regular Expression استفاده نماییم.ما با یک عبارت قاعده مند، می توانیم تمامی زیررشته های (Sub-string) موجود در یک رشته (String) را که در آن صدق می کنند، شناسایی کنیم.Regex چیست؟ به عنوان شروع موارد زیر را به خاطر داشته باشیم:کاراکتر “.” : یعنی هر کاراکتری بجز انتهای خطکاراکتر “*” : یعنی به تعداد 0 یا بیشتر کاراکترکاراکتر “+” : یعنی به تعداد 1 یا بیشتر کاراکترکاراکتر”؟” : یعنی مهم نیست در ادامه کاراکتری وجود داشته باشد یا نهکاراکتر “d/” : یعنی اگر عدد بودکاراکتر “w/” : یعنی اگر حروف, عدد یا کاراکتر “_” بودکاراکتر “$” : یعنی پایان رشته ی خطکاراکتر”^” : یعنی آغاز رشته ی خطعبارت [XYZ] : یعنی یک تک کاراکتر از کلاس کاراکترهاعبارت [XYZ]+ : یعنی یک یا بیشتر کاراکتر از کلاس کاراکترها یک کامند خیلی معروفه وجود دارد که قطعاً به گوش شما خورده است (Grep)، که به عنوان ابزاری برای جستجو در متنب هم نظور یافتن الگویی خاص در فایل‌های مختلف مورد استفاده قرار می‌گیرد که به راحتی می‌توان این ابزار را با دستور Regex مورد استفاده قرار داد. وبسایت ReGexr جهت تست آنلاین قواعد Regexخوب نوبت این هست که مقداری دست به کد بشویم. پایتون به صورت پیش فرض و Built-in پکیج کار با Regular Expression دارد که به صورت زیر می توانیم آن را بارگذاری کنیم:import reتوابع مهم قابل استفاده در Regex عبارتند از :Findall()Search()Split()Sub()به عنوان اولین مثال میخواهیم ببینیم که آیا در کل متن موجود (فرض کنید یک جمله و یا یک متن طولانی از یک وب سایت خبری) جمله ای وجود دارد که با کلمه &quot;من&quot; شروع شده است یا خیر؟ تمامی توابع بر روی این جمله تست و اجرا شده است:من، سهیل تهرانی پور ،از آکادمی یادگیری ماشین ایران ، در حال نوشتن مقاله پردازش زبان طبیعی ، در ویرگول هستم(شایان ذکر است می توانید قطعات کد زیر را در یک فایل با پسوند &quot;py.&quot; و یا در Jupyter Notebook عیناً Copy-paste کنید و خروجی را مشاهده نمایید.) در ابتدا به بررسی تابع Findall خواهیم پرداخت:import re
str = &amp;quotمن، سهیل تهرانی پور،از آکادمی یادگیری ماشین ایران، در حال نوشتن مقاله پردازش زبان طبیعی، در ویرگول هستم&amp;quot
x = re.findall(&amp;quot\Aمن&amp;quot, str)
print(x)
if (x):
print(&amp;quotبله، موجود می باشد&amp;quot)
else:
print(&amp;quotخیر، متاسفانه موجود نیست&amp;quot)خروجی این دستور در پایتون به صورت زیر خواهد بود:[&#x27;من&#x27;]بله، موجود می باشددر ادامه برای بررسی مثال دستور Search از پکیج Regex به صورت زیر می توانیم عمل کنیم:import re
str = &amp;quotمن، سهیل تهرانی پور،از آکادمی یادگیری ماشین ایران، در حال نوشتن مقاله پردازش زبان طبیعی، در ویرگول هستم&amp;quot
x = re.search(&amp;quot[سهیل]&amp;quot, str)
print(&amp;quot :کلمه مورد نظر در موقعیت زیر می باشد &amp;quot+&amp;quot\n&amp;quot , x.start()) خروجی این دستور به صورت زیر خواهد بود: کلمه مورد نظر در موقعیت زیر می باشد : 4همانطور که در شکل زیر مشاهده می فرمایید بخشی از کدهای نوشته شده به زبان پایتون در Jupyter Notebook آورده شده است. برای دوستانی که حوصله سر و کله زدن با IDE های مختلف رو ندارند، این بهترین گزینه است. کافیه Anaconda رو از این لینک دانلود کنید و دست به کد بشوید.با Jupyter Notebook زندگی پایتونی بسیار زیبا خواهد بود.در بخش سوم، شاید یکی از مهمترین توابع در پردازش زبان طبیعی (NLP) را خواهیم داشت  «تابع Split» که هر رشته به عنوان ورودی را به بخش های کوچکتر بر اساس درخواست ما تقسیم می کند.import re
str = &amp;quotمن، سهیل تهرانی پور ،از آکادمی یادگیری ماشین ایران ، در حال نوشتن مقاله پردازش زبان طبیعی ، در ویرگول هستم&amp;quot
x = re.split(&amp;quot\s&amp;quot, str)
print(x)خروجی این کد به صورت زیر می باشد:در این جا چون تابع Split را با s\ فراخوانی کرده ایم، در جمله ورودی به ازای هر White Space که می بیند، جداسازی را انجام می دهد. [&#x27;من،&#x27;, &#x27;سهیل&#x27;, &#x27;تهرانی&#x27;, &#x27;پور&#x27;, &#x27;،از&#x27;, &#x27;آکادمی&#x27;, &#x27;یادگیری&#x27;, &#x27;ماشین&#x27;, &#x27;ایران&#x27;, &#x27;،&#x27;, &#x27;در&#x27;, &#x27;حال&#x27;, &#x27;نوشتن&#x27;, &#x27;مقاله&#x27;, &#x27;پردازش&#x27;, &#x27;زبان&#x27;, &#x27;طبیعی&#x27;, &#x27;،&#x27;, &#x27;در&#x27;, &#x27;ویرگول&#x27;, &#x27;هستم&#x27;]در ادامه تابع مهم دیگری که به ویژه در پیش پردازش متون مورد استفاده قرار می گیرد را بررسی می نماییم. تابع SUB که جهت جایگزینی یک کاراکتر یا رشته با کاراکتر یا رشته دیگر به صورت زیر خواهد بود: در مثال زیر، (فاصله ویرگول) به (ویرگول) تبدیل شده است.import re
str = &amp;quotمن، سهیل تهرانی پور ،از آکادمی یادگیری ماشین ایران ، در حال نوشتن مقاله پردازش زبان طبیعی ، در ویرگول هستم&amp;quot
x = re.sub(&amp;quot ،&amp;quot, &amp;quot،&amp;quot, str)
print(x)خروجی دستور بالا به صورت زیر خواهد بود:من، سهیل تهرانی پور،از آکادمی یادگیری ماشین ایران، در حال نوشتن مقاله پردازش زبان طبیعی، در ویرگول هستمدر مثال زیر به جای «آکادمی یادگیری ماشین ایران» کلمه «Iran Machine Learning» را جایگزین خواهیم نمود:import re
str = &amp;quotمن، سهیل تهرانی پور ،از آکادمی یادگیری ماشین ایران ، در حال نوشتن مقاله پردازش زبان طبیعی ، در ویرگول هستم&amp;quot
x = re.sub(&amp;quotیادگیری ماشین ایران&amp;quot, &amp;quotIran Machine Learning&amp;quot, str)
print(x)از تابع Sub و Split به عنوان توابع اصلی در پیش پردازش متون طبیعی یاد می شود. از آن ها در روزهای بعدی که در مورد NLTK صحبت خواهیم نمود، بیشتر می شنویم.من، سهیل تهرانی پور، قصد دارم تا از طریق ویرگول برای شما بیشتر از NLP بگم تا بتونیم در کنار هم زبان قشنگ فارسی رو جهانی تر کنیم.بیاین با هم یادگیری ماشین، یاد بگیریم. (Keep Calm and Learn Machine Learning) </description>
                <category>سهیل تهرانی پور</category>
                <author>سهیل تهرانی پور</author>
                <pubDate>Fri, 19 Apr 2019 12:38:09 +0430</pubDate>
            </item>
                    <item>
                <title>پردازش زبان های طبیعی (NLP) [2]</title>
                <link>https://virgool.io/dataio/%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%B7%D8%A8%DB%8C%D8%B9%DB%8C-nlp-2100-r8pw3ahib6xs</link>
                <description>در هر زبانی، کلمات با توجه به نقشی که در جملات ایفا می کنند، به شکل‌های ظاهری متفاوتی خواهند بود. اما با توجه به این که تمامی آن‌ها از یک ریشه (بُن) ساخته می شوند، از نظر معنا و مفهوم در گام های بعدی تشخیصی به ما کمک شایانی خواهند نمود. ازهمین رو در بسیاری از روش های مبتنی بر NLP، ابتدا می بایست ریشه کلمات را پیدا کنیم. برای ریشه‌یابی کلمات معمولاً از دو روش ریشه یابی(Stemming) و بُن واژه سازی (Lemmatization) استفاده می‌شود که هر دو روش در نهایت ریشه‌ی یک کلمه را به دست  می آورند. ریشه یابی (Stemming):الگوریتم‌های مختلفی جهت انجام عمل ریشه یابی وجود دارد که الگوریتم Porter از الگوریتم های معروف در زبان انگلیسی می باشد. این الگوریتم طبق یک سری قاعده‌ی منظم(مثلاً حذف حرف s  در آخر کلماتِ جمع) می‌تواند ریشه‌ی کلمات را با دقتِ خوبی به دست آورد. Stemming به ما کمک می‌کند که کلمات را به صورت ریشه کلمه یا حالت پایه استانداردسازی نماییم.  خروجی متن نهایی پس از ریشه یابی (Stemming) (که معمولاً روش های مشخص و از مجموعه قواعد ثابتی دارد) لزوماً کلمات با معنا و موجود در لغت نامه نخواهد بود اما پیشوندها و پسوندها حذف شده و در نهایت ساده ترین حالت کلمه و ریشه آن، به عنوان خروجی خواهد بود.ریشه یابی به همراه مثالبُن واژه سازی (Lemmatization)در فرآیند بُن واژه سازی یا Lemmatization، در نهایت به دنبال یک کلمه با معنا (موجود در لغت نامه) در واقع همان &quot;بُن&quot; یا &quot;ریشه&quot; هستیم. همان طور که در مثال ارایه شده در هفته دوم کورس Standford NLP (شکل زیر) آورده شده است، جمله the boy&#x27;s cars are different colors پس از اجرای  بُن واژه سازی، به جمله the boy car be different color تبدیل خواهد شد.بُن واژه سازی به همراه مثال در ادامه به بررسی الگوریتم Porter و نحوه پیدا کردن ریشه کلمات خواهیم پرداخت :الگوریتم Porter برای Stemmingاز این لینک برای مطالعه جزییات روش Porter می توانید استفاده کنید:الگورتیم Porter برای ریشه یابی (Stemming)من، سهیل تهرانی پور، قصد دارم تا از طریق ویرگول برای شما بیشتر از NLP بگم تا بتونیم در کنار هم زبان قشنگ فارسی رو جهانی تر کنیم.بیاین با هم یادگیری ماشین، یاد بگیریم. (Keep Calm and Learn Machine Learning) </description>
                <category>سهیل تهرانی پور</category>
                <author>سهیل تهرانی پور</author>
                <pubDate>Mon, 01 Apr 2019 20:22:16 +0430</pubDate>
            </item>
                    <item>
                <title>پردازش زبان های طبیعی (NLP) [1]</title>
                <link>https://virgool.io/dataio/%DA%86%D8%A7%D9%84%D8%B4-100-%D8%B1%D9%88%D8%B2-%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%B7%D8%A8%DB%8C%D8%B9%DB%8C-nlp-1100-plz3qdlfoa1g</link>
                <description>سال 1398 شروع شده و همیشه اوایل سال، با کلی رزولوشن و برنامه های خیلی خوب شروع میشه. اما این بار تصمیم گرفتم تا چالش NLP رو شروع کنم که  شامل مطالعه و یا کدزدن توی همین حوزه خواهد بود. البته سال 97، یک چالش 40 روزه Machine Learning رو شروع کرده بودم که از نظر خودم نتایج خوبی داشت. بخش اول مطالعات طبق سیلابس NLP دانشگاه Standford خواهد بود (آقایان Dan Jurafsky و Christopher Manning) که از طریق لینک هایی که به رنگ آبی در آمده است، در دسترس عموم قرار گرفته است.چالش 100 روز پردازش زبان های طبیعی (NLP) [1/100]خوب برای روز اول و شروع این چالش، در مورد کاربردهای NLP و پردازش متن، بعد از یک گشت و گذاری توی اینترنت و بررسی بخش اول ویدیوهای هفته اول، به موارد زیر رسیدم:نظرکاوی (Sentiment Analysis): تحلیل احساسات از روی متون و به ویژه کامنت ها و نظرات کاربرانخلاصه‌ساز خودکار متون: کاهش حجم متون با حفظ موضوع وخوانایی متن  اصلی (کابرد: خلاصه اخبار)ترجمه متون از یک زبان به زبان دیگهسامانه های Chat bot جهت ارتباط تعاملی با کاربران استخراج کلمات کلیدی: با هدف برچسب‌زنی یا تگ‌زنی موضوعی خودکار متندسته‌بندی و خوشه‌بندی متون: گروه‌بندی مجموعه متون (کاربرد: گروه‌بندی متون اخبار)تشخیص موضوع کلی متن به ویژه در سایت های خبری جهت دسته بندی متوندر واقع پردازش زبان طبیعی (NLP) به بهره‌گیری از ابزارها، تکنیک‌ها و الگوریتم‌ها جهت پردازش داده‌های طبیعی مبتنی بر زبان می باشد که معمولاً در قالب‌های ساخت‌نیافته‌ای مانند متن، سخنرانی و غیره وجود دارند. از طرفی با توجه به اینکه الان بخش اعظمی از دیتاهای موجود به صورت متن هست، کارهای زیادی هست که قطعاً این تکنولوژی با استفاده از روش های هوش مصنوعی و یادگیری ماشین می تونن حرفها برای گفتن داشته باشند.لیست روزهای آتی به صورت زیر می باشد:پردازش زبان های طبیعی (NLP) [2]پردازش زبان های طبیعی (NLP) [3]پردازش زبان های طبیعی (NLP) [4]پردازش زبان های طبیعی (NLP) [5]من، سهیل تهرانی پور، قصد دارم تا از طریق ویرگول برای شما بیشتر از NLP بگم تا بتونیم در کنار هم زبان قشنگ فارسی رو جهانی تر کنیم.بیاین با هم یادگیری ماشین، یاد بگیریم. (Keep Calm and Learn Machine Learning)</description>
                <category>سهیل تهرانی پور</category>
                <author>سهیل تهرانی پور</author>
                <pubDate>Mon, 01 Apr 2019 01:33:54 +0430</pubDate>
            </item>
            </channel>
</rss>