10 کتابخانه برتر پردازش زبان طبیعی (NLP)
پردازش زبان طبیعی (NLP) یکی از زیرشاخههای حوزه هوش مصنوعی است؛ در این روش به منظور برقراری ارتباط با سیستم از زبان طبیعی استفاده میشود. پایتون یکی از زبانهای پرکاربرد NLP است و تقریباً در تمامی رشتهها و حوزهها مورد استفاده قرار میگیرد. در مقاله پیشرو به معرفی 10 کتابخانه برتر پردازش زبان طبیعی (NLP) به زبان پایتون خواهیم پرداخت.
Natural Language Toolkit (NLTK)
NLTK یکی از محبوبترین پلتفرمهای NLP است و برای ساخت برنامههای کامپیوتری با پایتون مورد استفاده قرار میگیرد و علاوه بر آن میتواند با دادههایی که به زبان طبیعی انسان هستند کار کند. NLTK دارای تعداد زیادی کتابخانه پردازش متن برای تشخیص جمله Sentence detection، توکنسازی Tokenizatio، ریشهیابی معنایی Lemmatization، ریشهیابی لغوی Stemming، تجزیهParsing، تقطیع جمله Chunking، تگگذاری اجزای جمله POS tagging است.
پلتفرم NLTK رابطهایی که استفاده از آنها آسان است را در اختیار بیش از 50 منبع لغوی و واژگانی قرار میدهد. این کتابخانه برتر پردازش زبان طبیعی قابلیتهای لازم برای انجام تقریباً تمامی مسائل پردازش زبان طبیعی با پایتون را دارا میباشد.
Gensim
Gensim یکی دیگر از کتابخانههای پایتون است که با هدف «مدلسازی موضوعی Topic modelling، شاخصگذاری اسناد Document indexing و تشخیص شباهتهای میان متون» طراحی شده است. تمامی الگوریتمهای موجود در این کتابخانه با توجه به اندازه بدنه متن Corpus مستقل از حافظه هستند و لذا این کتابخانه میتواند ورودیای بیشتر از RAM را پردازش کند. به دلیل پویایی رابطهای کاربری Gensim ، این کتابخانه میتواند امکان اجرای چندهستهای الگوریتمهای محبوب از جمله تحلیل پنهان مفهومی به صورت آنلاین Online Latent Semantic Analysis (LSA/ LSI/ SVD)، تخصیص پنهان دیریکلت Latent Dirichlet allocation (LDA)، تصویر تصادفی Random projections (RPs)، فرایند دیریکلت تصادفی Hierarchical Dirichlet process (HDP) یا یادگیری عمیق word2vec را فراهم میکند. کتابخانه Gensim شامل اسناد گسترده و برنامههای خودآموز Jupyter Notebook است. این کتابخانه برای انجام محاسبات علمی تا حد زیاد به NumPy و SciPy متکی است. لذا پیش از نصب Gensim باید این دو پکیج پایتون را نصب کنید.
CoreNLP
CoreNLP که توسط دانشگاه stanford طراحی شده و شامل مجموعهای از ابزارهای فنی زبان طبیعی است. این کتابخانه برتر پردازش زبان طبیعی با هدف استفاده و اعمال آسان و کارآمد ابزارهای تحلیل زبانی بر روی بخشی از متن طراحی شده است. کاربران با استفاده از این کتابخانه و با چندین خط کد میتوانند انواع مختلف ویژگیهای متن (از قبیل تشخیص موجودیتهای اسمی Named-entity recognition، تگگذاری اجزای جمله و غیره) را استخراج کنند.
CoreNLP به زبان جاوا نوشته شده است، به همین دلیل برای استفاده از این کتابخانه باید جاوا را بر روی سیستم خود نصب کنید. با این وجود APIهای آن برای بسیاری از زبانهای برنامهنویسی از جمله پایتون موجود است. تعداد زیادی از ابزارهای پردازش زبان طبیعی Stanford از جمله تجزیهکننده Parser، تحلیل احساسات Sentiment analysis، یادگیری الگوهای بوتاسترپ Bootstrapped pattern learning، تگگذار اجزای جمله، تشخیصدهنده موجودیتهای اسمی، سیستم وضوح همارجاعی Coreference resolution system در این کتابخانه وجود دارد. CoreNLP علاوه بر زبان انگلیسی از زبانهای عربی، چینی، آلمانی، فرانسه و اسپانیایی پشتیبانی میکند.
spaCy
spaCy یک کتابخانه NLP متن باز به زبان پایتون است. از این کتابخانه صرفاً در تولید نرمافزارهای کاربردی استفاده میشود. برنامهنویسها با استفاده از این کتابخانه میتوانند نرمافزارهای کاربردیای توسعه دهند که میتوانند حجم بالایی از متون را پردازش کنند و درک کنند.
spaCy میتواند متن را برای یادگیری عمیق پیش پردازش کند. به منظور ساخت سیستمهای درک زبان طبیعی یا سیستمهای استخراج اطلاعات میتوان از این کتابخانه استفاده کرد. spaCy به مدلهای آماری از پیش آموزشداده شده و بردارهای کلمه مجهز است. این کتابخانه میتواند فرایند توکنسازی را برای بیش از 49 زبان انجام دهد. spaCy کتابخانه بسیار سریعی است و از فرایند تجزیه، تشخیص موجودیتهای اسمی، مدلهای شبکههای عصبی پیچشی برای تگگذاری و یکپارچهسازی یادگیری عمیق پشتیبانی میکند.
TextBlob
TextBlob یک کتابخانه پایتون است که با هدف پردازش دادههای متنی طراحی شده است. این کتابخانه از طریق APIها امکان اجرای عملیاتهای معمول پردازش متن را فراهم میکند. اشیای Textblob را به نوعی میتوان نوعی داده رشته ای در پایتون تلقی کرد که در حوزه پردازش زبان طبیعی آموزش دیدهاند.
TextBlob دارای یک API است که از آن برای اجرای مسائل رایج NLP از قبیل تگگذاری اجزای جمله، استخراج عبارات اسمی، تحلیل احساسات، دستهبندی، ترجمه، صرف واژه Word inflection، تجزیه، n-grams و اتصال به WordNet استفاده میشود.
Pattern
Pattern ابزاری برای پردازش متن، وب کاوی Web mining ، پردازش زبان طبیعی، یادگیری ماشین، تحلیل شبکه به زبان پایتون است. این کتابخانه شامل مجموعهای از ابزارهای دادهکاوی ( گوگل، توییتر، Wikipedia API، جستجوگر (خزشگر) وب و تجزیهکننده HTML DOM)، پردازش زبان طبیعی ( تگگذار اجزای جمله، جستوجوی n-gram، تحلیل احساسات، WordNet)، یادگیری ماشین ( مدل فضای برداری، خوشهبندی ، SVM)، تحلیل شبکه و مرکزیت گراف و مصورسازی است.
Pattern میتواند ابزاری سودمند برای تمامی کاربران فعال در حوزههای علمی و همچنین غیرعلمی باشد. ساختار نحوی این کتابخانه آسان و واضح است و نام توابع و پارامترها به نحوی انتخاب شده است که نیازی به توضیح فرمانها نیست. Pattern محیط یادگیری ارزشمندی برای دانشآموزان است و علاوه بر آن چارچوبی سریع برای توسعه برنامهها برای توسعهدهندگان وب است.
PyNLPl
PyNLPI کتابخانهای به زبان پایتون برای پردازش زبان طبیعی است. این کتابخانه شامل مجموعهای از ماژولهای پایتون است که به صورت سفارشی ساخته شدهاند و از آنها برای اجرای مسائل NLP استفاده میشود. یکی از برجستهترین ویژگیهای PyNLPI این است که دارای یک کتابخانه گسترده برای کار کردن با FoiA XML (Format for linguistic Annotation) است.
PyNLPI به چهار ماژول و بسته تقسیم میشود که تمامی آنها برای اجرای مسائل NLP استاندارد و پیشرفته مناسب هستند. کاربران میتوانند از PyNLPI برای اجرای مسائل ابتدایی NLP از جمله استخراج n-gramها و فهرستهای فرکانس و ساخت یک مدل زبانی ساده استفاده کنند. علاوه بر این کتابخانه دارای انواع پیچیدهای از دادهها و الگوریتمها برای اجرای مسائل NLP پیچیده است.
Vocabulary
Vocabulary کتابخانهای به زبان پایتون برای پردازش زبان طبیعی است؛ در واقع این کتابخانه، واژهنامهای در قالب یک مدل پایتون است. برای مثال اگر یک کلمه مشخص را در این کتابخانه جستوجو کنید، میتوانید به معانی، کلمات مترادف، کلمات متضاد، نقش دستوری، ترجمهها و اطلاعاتی از این قبلی را به دست بیاورید. نصب این کتابخانه آسان است و جایگزین مناسبی برای WordNet است.
Quepy
Quepy چارچوبی به زبان پایتون است که سؤالات زبان طبیعی را به دستورات query در زبان دستوری دیتابیس تبدیل میکند. در واقع Quepy را میتوان مطابق انواع مختلف پرسشها به زبان طبیعی و پرسمانهای دیتابیس سفارشیسازی کرد. Quepy از یک معناشناسی انتزاعی Abstract semantics به عنوان یک نمایش مستقل از زبان استفاده میکند که سپس این نمایش به زبان پرسمان نگاشت میشود. در نتیجه سؤالات شما به نحوی شیوا به زبانهای مختلف پرسمان نگاشت میشوند.
MontyLingua
هدف از طراحی MontyLingua این است که ورودیها را تا حد ممکن ساده کند. برای مثال کاربران یک متن خام را به عنوان ورودی این ابزار تغذیه میکنند و در مقابل تفسیرهای معنایی متفاوتی از متن به عنوان خروجی دریافت میکنند. این ابزار به جای اتکا به روشهای پیچیده یادگیری به دانش عقل سلیم مجهز است؛ منظور از دانش عقل سلیم قوانین و دانش راجع به متون روزمره است که باعث غنیسازی تفاسیری میشود که سیستم به عنوان خروجی ارائه میدهد . جالب است بدانید این قوانین بر مبنای Open Mind Common Sense Project است که تا حد زیادی به هوش مصنوعی متکی است.
MontyLingua به زبان پایتون نوشته شده اما نسخه جاوا آن نیز موجود است. MontyLingua شامل 6 ماژول است که امکان توکنسازی، تگگذاری، تقطیع جمله، استخراج عبارات، ریشهیابی معنایی و تولید زبان را فراهم میکنند.