Natural Language Processing with Python and spaCy
امروزه، به طور فزاینده ای وقتی با بانک یا ارائه دهنده اینترنت خود تماس میگیرید، ممکن است چیزی مانند این را در انتهای دیگر خط بشنوید: «سلام، من دستیار دیجیتالی شما هستم. لطفا سوال خود را بپرسید.» امروزه، رباتها میتوانند با استفاده از زبان طبیعی با انسانها صحبت کنند و روز به روز هوشمندتر میشوند. حتی در این صورت هم افراد بسیار کمی میدانند که این رباتها چگونه کار میکنند یا اینکه چگونه ممکن است از این فناوریها در پروژههای خودشان استفاده کنند.
پردازش زبان طبیعی (NLP)، شاخه ای از هوش مصنوعی است که به ماشینها کمک میکند تا زبان انسان را درک کرده و به آن پاسخ دهند. NLP فناوری کلیدی است که در قلب هر محصول دستیار دیجیتالی نهفته است. این کتاب شما را با مهارت هایی که برای شروع کردن به ایجاد برنامههای NLP خود نیاز دارید، مجهز میکند. در پایان این کتاب، شما نحوهی بکارگیری رویکردهای NLP را برای مسائل دنیای واقعی همچون تحلیل جملات، درک معنای متن، نوشتن متن اصلی و حتی ساخت Chatbot خودتان را یاد خواهید گرفت.
کتاب Natural Language Processing with Python and spaCy (پردازش زبان طبیعی با پایتون و اسپیسی)، نحوهی ایجاد سریع و راحت برنامههای NLP مانند chatbot ها، اسکریپتهای متراکم سازی متن و ابزارهای پردازش ترتیب را به شما نشان میدهد. شما میآموزید که چگونه از کتابخانه spaCy استفاده کنید تا هوشمندانه معنی را از متن استخراج کنید؛ چگونه روابط بین کلمات در یک جمله (تجزیه وابستگی نحوی) را تعیین کنید؛ اسامی، افعال و سایر قسمتهای گفتار (برچسب گذاری بخشی از گفتار) را شناسایی کنید؛ و اسامی خاص گروه هایی مانند افراد، سازمانها و مکانها (شناسایی موجودیت نامیده شده) را مرتب سازی کنید. شما حتی خواهید آموخت که چگونه عبارات را به سوالات تبدیل کنید تا مکالمه را ادامه دهید.
استفاده از پایتون برای پردازش زبان طبیعی
اگر میخواهید یک برنامه NLP ایجاد کنید، میتوانید از بین طیف وسیعی از ابزارها و فناوریها یکی را انتخاب کنید. تمامی مثالهای این کتاب با کدهای پایتونی که از کتابخانه پردازش زبان طبیعی NLP برای پایتون استفاده میکنند پیاده سازی شده اند. در اینجا چند دلیل قانع کننده وجود دارد که چرا شما ممکن است بخواهید Python و spaCy را برای توسعه NLP خود انتخاب کنید.
پایتون یک زبان برنامه نویسی سطح بالا است که با ویژگیهای زیر شناخته میشود:
- سادگی: اگر در برنامه نویسی تازه کار هستید، پایتون زبان خوبی است که میتوان با آن شروع کنید، زیرا یادگیری آن بسیار آسان است. به دلیل سادگی اش، پایتون به شما امکان میدهد تا کدهایی بنویسید که دیگران به راحتی درک کنند. به عنوان مثال، سادگی پایتون به توسعه دهندگان chatbot کمک میکند تا با زبان شناسانی که تجربه برنامه نویسی زیادی ندارند، همکاری کنند.
- فراگیری: پایتون یکی از محبوبترین زبان هاست. اکثریت قریب به اتفاق APIهای پرکاربرد دارای wrapperهای Python هستند که میتوانید با استفاده از ابزار نصب pip، به راحتی آنها را نصب کنید. امکان نصب wrapperهای پایتون از طریق pip، روند دستیابی به ابزارهای شخص ثالثی را که ممکن است بخواهید در برنامههای NLP خود استفاده کنید ساده میکند.
- حضور چشمگیر در اکوسیستم هوش مصنوعی: در اکوسیستم هوش مصنوعی تعداد زیادی کتابخانه پایتون موجود است. این در دسترس بودن، توسعه برنامههای NLP شما را ساده میکند و به شما امکان میدهد تا برای حل بهتر یک کار خاص از بین مجموعه ای از کتابخانهها یکی را انتخاب کنید.
کتابخانه spaCy
این کتاب از spaCy استفاده میکند که یک کتابخانه محبوب پایتون است و شامل دادههای زبانی و الگوریتم هایی است که برای پردازش متون زبان طبیعی به آن نیاز دارید. همانطور که در این کتاب خواهید آموخت، استفاده از spaCy آسان است زیرا اشیای container را ارائه میدهد که عناصر متون زبان طبیعی را مانند جملات و کلمات نشان میدهند. این اشیا، به نوبهی خود، دارای ویژگی هایی هستند که ویژگیهای زبانی را نشان میدهند، مانند بخش هایی از گفتار. در زمان نوشتن این کتاب، spaCy مدلهای پیش آموزش دیده ای را برای انگلیسی، آلمانی، یونانی، اسپانیایی، فرانسوی، ایتالیایی، لیتوانیایی، نروژی بوکمولی، هلندی، پرتغالی و چندین زبان را به صورت تلفیقی ارائه میدهد. علاوه بر این، spaCy تجسم سازهای توکاری ارائه میدهد که میتوانید به صورت برنامه نویسی فراخوانی کنید تا گرافیکی از ساختار نحوی جمله یا موجودیتهای نامگذاری شده در یک سند را ایجاد کنید.
کتابخانه spaCy همچنین بطور طبیعی از ویژگیهای پیشرفته NLP پشتیبانی میکند که سایر کتابخانههای معروف NLP برای پایتون از آنها پشتیبانی نمیکنند. به عنوان مثال، spaCy برخلاف Natural Language Toolkit (NLTK)، بطور بومی از بردارهای کلمه پشتیبانی میکند (که در فصل 5 به طور مفصل بحث شده است). هنگام استفاده از مورد دوم، لازم است از یک ابزار شخص ثالث مانند Gensim، که یک پیاده سازی الگوریتم word2vec با پایتون است استفاده کنید.
با spaCy، میتوانید مدلهای موجود یا کامپوننتهای مدل جداگانه را سفارشی کنید و مدلهای خودتان را از صفر آموزش دهید تا نیازمندیهای برنامهی شما را برطرف کنند (نحوهی انجام این کار را در فصل 10 خواهید آموخت). شما همچنین میتوانید مدلهای آماری آموزش دیده توسط سایر کتابخانههای معروف یادگیری ماشین (ML) مانند TensorFlow، Keras، scikit-learn و PyTorch را بهم متصل کنید. علاوه بر این، spaCy میتواند با سایر کتابخانهها در اکوسیستم هوش مصنوعی پایتون به طور یکپارچه کار کند و به شما این امکان را میدهد که مثلاً در برنامه chatbot خودتان از بینایی ماشین استفاده کنید، همانطور که در فصل 12 این کار را انجام خواهید داد.
چه کسانی باید این کتاب را مطالعه کنند؟
این کتاب برای کسانی است که علاقه مند به یادگیری نحوهی استفاده از NLP در عمل هستند. به ویژه، ممکن است این کتاب برای افرادی که میخواهند رباتهای چت را برای مشاغل یا فقط برای سرگرمی توسعه دهند جالب باشد. صرف نظر از سابقه یا تجربه خود با NLP یا برنامه نویسی، میتوانید مثالهای کدی ارائه شده در این کتاب را دنبال کنید، زیرا همه آنها شامل توضیحات مفصلی در مورد روند کار هستند.
کمی دانش کار با پایتون مفید خواهد بود، زیرا این کتاب اصول نحو پایتون را پوشش نمیدهد. همچنین، این مثالها درک درستی از دستور زبان و نحو انگلیسی را در سطح دانش مدرسه ای فرض میکنند. همچنین ضمیمه کتاب، مرجعی برای برخی از مفاهیم زبان شناسی کمتر شناخته شده است. اگر درک خوبی از مفاهیم NLP و برنامه نویسی داشته باشید، پیگیری مثالها حتی راحتتر خواهد بود.
مطالبی که در کتاب Natural Language Processing with Python and spaCy: A Practical Introduction یاد خواهید گرفت:
- کار با بردارهای کلمه برای پیدا کردن معنیهای مشابه از نظر ریاضی
- پیدا کردن الگوها در دادهها با استفاده از تصویر ساز displayCy تو کار spaCy
- استخراج خودکار کلمات کلیدی از ورودی کاربر و ذخیره سازی آنها در یک پایگاه داده رابطه ای
- استقرار یک برنامه چت بات برای تعامل با کاربران از طریق اینترنت