تشخیص شباهت متون (Text Similarity) با استفاده از الگوریتم Jaccard

شباهت معنایی

شباهت معنایی یا شباهت معنایی نوشتاری یکی از مسائل حوزه‌ی پردازش زبان طبیعی یا NLP است. در این نوع مسائل، با استفاده از یک معیار مشخص ارتباط بین متون یا اسناد اندازه‌گیری می‌شود. شباهت معنایی در موارد گوناگون از جمله بازیابی اطلاعات ، خلاصه‌سازی متون ، و تجزیه و تحلیل عواطف ، کاربرد دارد.
رویکردهای زیادی برای محاسبه‌ی شباهت معنایی وجود دارند. ساده‌ترین و کارآمدترین آن‌ها روشی است که از یک مدل قدرتمند مبدل برای رمزگذاری جملات و ثبت تعبیه‌های آن‌ها استفاده می‌کند و سپس برمبنای یک معیار شباهت (شباهت کسینوسی ) مقدار شباهت بین دو متن را محاسبه می‌کند. شباهت یا تفاوت بین دو متن برمبنای این مقدار شباهت مشخص می‌شود. در این نوشتار قصد داریم به کاربرد مبدل‌ها در محاسبه‌ی شباهت معنایی بپردازیم. مبدل‌ها از معماری‌های قدرتمند حوزه‌ی NLP هستند که امکان دستیابی به عملکردی عالی و بی‌سابقه در بسیاری از مسائل NLP را فراهم کرده‌اند.

نصب وابستگی‌ها

کتابخانه‌ی اصلی که اینجا برای محاسبه‌ی شباهت معنایی به کار می‌بریم، SentenceTransformers (لینک Github) است. این کتابخانه‌ی ساده، برای محاسبه‌ی بازنمایی بردارهای متراکم (تعبیه‌ها) در متون، روشی آسان ارائه می‌دهد. این کتابخانه مدل‌های جدیدی دارد که برای کاربردهای مختلف به صورت دقیق تنظیم شده‌اند. یکی از مسائل مهمی که این کتابخانه پشتیبانی می‌کند، شباهت معنایی نوشتاری است.

برای نصب SentenceTransformers باید ابتدا وابستگی‌های Pytorch و Transformers را نصب کنید.

نصب Pytorch

وارد وبسایت رسمی Pytorch شوید و دستورالعمل‌های مربوط به نصب را دنبال کنید.

نصب Transformers

برای نصب Transformers، این دستور را اجرا کنید:

اسکرول به بالا