درک زبان طبیعی در موتورهای جستجو — راهنمای جامع

۲۸۷ بازدید
آخرین به‌روزرسانی: ۲۱ تیر ۱۴۰۲
زمان مطالعه: ۱۹ دقیقه
درک زبان طبیعی در موتورهای جستجو — راهنمای جامع

«درک زبان طبیعی» (Natural-language understanding)، یکی از زیرحوزه‌های «پردازش زبان طبیعی» (Natural Language Processing) و «هوش مصنوعی» (Artificial Intelligence) محسوب می‌شود. مدل‌های درک زبان طبیعی انسانی، ارتباط تنگاتنگی با مفهوم «درک مطلب ماشینی» (Machine Reading Comprehension) دارند. درک زبان طبیعی و مدل‌سازی آن، یکی از مسائل با درجه پیچیدگی (AI-hard) در حوزه هوش مصنوعی محسوب می‌شود. پیاده‌سازی سیستم‌های درک زبان طبیعی برای کاربردهای مدیریت منابع اطلاعاتی، توجه و سرمایه‌گذاری سازمان‌ها و شرکت‌های تجاری زیادی را به خود معطوف کرده است. دلیل سرمایه‌گذاری شرکت‌های مختلف روی پیاده‌سازی سیستم‌های درک زبان طبیعی و توجه زیاد به آن‌ها، کاربرد گسترده این سیستم‌ها در توسعه مدل‌های «استدلال خودکار» (Automated Reasoning)، «ترجمه ماشینی» (Machine Translation)، سیستم‌های «پرسش و پاسخ» (Question Answering)، «جمع‌آوری اخبار» (News Gathering) و «تحلیل محتوا در مقیاس وسیع» (Large-Scale Content Analysis) است.

مدل‌های درک زبان طبیعی انسانی، مدل‌های «پس‌پردازش» (Post-Processing) داده‌های متنی غیر ساخت یافته (Unstructured Text Data) هستند؛ یعنی، پس از استخراج ویژگی‌های معنادار و واحدهای زبانی توسط الگوریتم‌های پردازش زبان طبیعی، مدل‌های درک زبان طبیعی وظیفه دارند تا معنا و مفهوم موجود در واسط‌های حاوی زبان طبیعی (نظیر صدا، متن و سایر موارد) را تشخیص و بر اساس اطلاعات به دست آمده، وظایف خاصی را انجام دهند. به عبارت دیگر، به فرایند درک و فهم ساختار و معانی موجود در زبان طبیعی توسط کامپیوترها، درک زبان طبیعی گفته می‌شود. فرایند درک زبان طبیعی به کاربران انسانی اجازه می‌دهد که از طریق جملات زبان طبیعی با کامپیوترها تعامل داشته باشند.

درک زبان طبیعی (Natural Language Understanding)

یکی از ویژگی‌های مهم کلیه زبان‌های طبیعی انسانی، «ابهام ذاتی» (Inherent Ambiguity) موجود در منابع حاوی زبان طبیعی است. این ویژگی در زبان‌های طبیعی سبب می‌شود که یک کلمه، معانی متفاوتی به خود بگیرد. به این پدیده در زبان‌شناسی، «تعدد معنایی» (Polysemy) گفته می‌شود. از طرف دیگر، حالاتی در زبان‌های طبیعی وجود دارند که در آن‌ها، از چندین کلمه متفاوت برای نمایش یا بیان یک مفهوم خاص استفاده می‌شود. به این پدیده در مطالعات زبان‌شناسی، «هم‌معنایی» (Synonymy) گفته می‌شود. تشخیص تعدد معنایی و هم‌معنایی برای انسان‌ها، کاری ساده و بعضا بدیهی قلمداد می‌شود، اما یکی از پیچیده‌ترین وظایف تعریف شده برای یک سیستم کامپیوتری محسوب می‌شود. همچنین، ابهام ذاتی زبان‌های طبیعی سبب می‌شود تا درک زبان طبیعی توسط سیستم‌های کامپیوتری با مشکل مواجه شود.

به عنوان نمونه، به جمله مقابل دقت کنید: (Rose is a rose is a rose is a rose). این جمله، یکی از جملات معروف در ادبیات انگلیسی است که توسط نویسنده معروف آمریکایی، گرترود استاین (Gertrude Stein) نقل شده است. جمله معروف خانم استاین، به سادگی می‌تواند پیچیدگی موجود در زبان‌های طبیعی و منابع حاوی زبان طبیعی را نشان دهد. درک زبان طبیعی این جمله برای کامپیوتر فوق‌العاده سخت خواهد بود. این عبارت بسیار مبهم است و مخاطبان مختلف می‌توانند تفاسیر متفاوتی از این جمله داشته باشند. سؤالی که ممکن است در این لحظه به ذهن مخاطبان خطور کند این است که آیا می‌توان یک الگوریتم کامپیوتری هوشمندی تعریف کرد که قادر به درک زبان طبیعی و تشخیص معنی و مفهوم در زبان‌های طبیعی انسانی باشد؟؛ مدلی کامپیوتری برای درک زبان طبیعی که بتواند تعدد معنایی، هم‌معنایی، ایهام و دیگر پدیده‌های زبان‌‌شناسی را که سبب ابهام می‌شوند شناسایی کند.

درک زبان طبیعی (Natural Language Understanding)

در این مطلب، سعی شده است تا روش‌هایی مورد بررسی قرار گیرند که از طریق آن‌ها، «موتورهای جستجو» (Search Engines) می‌توانند اسناد مرتبط با «پرس و جوی» (Query) کاربران را پیدا کنند؛ روش‌هایی که می‌توانند برای درک زبان طبیعی و مدل‌سازی پرس و جوهای کاربری و داده‌های متنی مورد استفاده قرار بگیرند. همچنین، برخی از روش‌های مرسوم و شناخته شده برای استخراج معنا و مفهوم از «گزاره‌ها» (Proposition) بررسی می‌شوند.

«بهینه‌سازی موتور جستجو» (Search Engine Optimization)، به فرایند افزایش «کیفیت» (Quality) و «کمیت» (Quantity) ترافیک وب‌سایت‌ها گفته می‌شود. در این فرایند، از طریق افزایش «پدیداری» (Visibility) یک وب‌سایت یا صفحه وب برای کاربران یک موتور جستجو، ترافیک این وب‌سایت یا صفحه وب افزایش می‌یابد. پس از معرفی ابزارهایی نظیر RankBrain، «جستجوی معنایی» (Semantic Search) و الگوریتم‌های مبتنی بر «یادگیری ماشین» (Machine Learning) توسط گوگل (جهت ارتقاء عملکرد موتور جستجو در شناسایی اسناد مرتبط با پرس و جوی کاربران)، انتخاب اصطلاحات و لغات زبان طبیعی مناسب جهت ارتقاء امتیاز «سئو» (SEO) یک وب‌سایت، امری بسیار ضروری محسوب می‌شود.

درک زبان طبیعی (Natural Language Understanding)

شاید سؤالی که ذهن خوانندگان و مخاطبان را به خود درگیر کند این است که موتور جستجوی گوگل، چگونه می‌تواند کیفیت محتوای موجود در وب‌سایت‌ها را تشخیص و متعاقبا، امتیاز سئوی بالاتری به آن‌ها اختصاص دهد. جواب این سؤال، «سیستم‌های هوشمند اطلاعاتی» (Intelligent Information Systems) است. در حوزه هوش مصنوعی و «علوم کامپیوتر» (Computer Science)، دو زیرشاخه مهم به نام‌های پردازش زبان طبیعی و «بازیابی اطلاعات» (Information Retrieval) وجود دارند که هدف آن‌‌ها، پیاده‌سازی راهکارهای هوشمند برای «پردازش و مدیریت اطلاعات» (Information Processing and Management) است. در این زیرشاخه‌ها، الگوریتم‌های مهم و شناخته‌شده‌ای نظیر «دسته‌بندی متن» (Text Classification) وجود دارند که برای شناسایی و بازیابی اسناد مرتبط با پرس و جوی کاربری استفاده می‌شوند. این دسته الگوریتم‌ها، نقش مهمی در پیاده‌سازی مدل‌های درک زبان طبیعی دارند.

در این مطلب، هدف، معرفی مفاهیمی نظیر نحوه درک زبان طبیعی انسانی، جستجوی معنایی، مطالعه «کلمات کلیدی» (Keywords) و «بهینه‌سازی محتوا» (Content Optimization) است؛ مفاهیمی که موتورهای جستجو با تکیه بر آن‌ها، وب‌سایت‌ها و صفحات وب را رتبه‌بندی می‌کنند و از این طریق، اسناد مرتبط با  پرس و جوی کاربری شناسایی و بازیابی می‌شوند.

تعریف مفهوم کلمه جهت مدل‌سازی درک زبان طبیعی

کلمه، کوچک‌ترین واحد سازنده معنا در یک سیستم پردازش و درک زبان طبیعی محسوب می‌شود. در ادامه، روش‌های مختلف نمایش کلمات در برنامه‌های کامپیوتری معرفی خواهند شد. همچنین، نقاط قوت و ضعف هر کدام از این روش‌ها شرح داده خواهند شد.

در ساده‌ترین حالت، یک برنامه کامپیوتری، متن را در قالب دنباله‌ای از «حروف الفبایی» (Alphanumeric Characters) و «علائم نقطه‌گذاری» (Punctuation) تفسیر می‌کند. در کاربردهای درک زبان طبیعی و مدل‌سازی واحدهای زبانی، به این نوع نمایش ابتدایی از متون حاوی زبان طبیعی، «نمایش خام» (Raw Representation) گفته می‌شود.

"The programmer's programs had been programmed."

در متون حاوی زبان طبیعی، کلمات متمایز از یکدیگر، از طریق «فاصله» (Space) یا علائم نشانه‌گذاری از هم جدا می‌شوند. با جداسازی کلمات، لیستی از واحدهای زبانی، که به هر کدام از آن‌ها «توکن» (Token) نیز گفته می‌شود، حاصل می‌شود. نکته مهم در چنین نمایشی، در نظر گرفتن کاراکترهای نقطه‌گذاری به عنوان یک توکن متمایز است.

اولین معضل در مسیر پردازش و درک زبان طبیعی موجود در داده‌های متنی، در همان کلمه اول متن بالا خودنمایی می‌کند. سؤالی که در این جا پیش می‌آید این است که یک سیستم پردازش زبان طبیعی، و به طور ویژه، یک سیستم درک زبان طبیعی و مدل‌سازی واحدهای زبانی، چگونه باید با کلمات نوشته شده به حروف بزرگ (Capitalized) برخورد کند؟ آیا تمامی کاراکترهای ظاهر شده در یک متن زبان طبیعی باید به حروف کوچک (Lowercase) تبدیل شوند؟. در این حالت، منطقی‌ترین راه، کوچک کردن تمامی کاراکترهای یک متن به نظر می‌آید؛ زیرا، معمولا کلمات با حروف کوچک و بزرگ، مفهوم یکسانی را منتقل می‌کنند (نظیر The و the). با این حال، کلمات دیگری (نظیر smith و Smith) در زبان طبیعی وجود دارند که حالت بزرگ و کوچک آن‌‎ها، معانی متفاوتی را منتقل می‌کنند. به عنوان نمونه، کلمه smith یک واحد «اسمی» (Noun) به معنای «آهنگر» است. در حالی که کلمه Smith، یک اسم خاص محسوب می‌شود.

درک زبان طبیعی (Natural Language Understanding)

نکته مهم در مورد روش‌های پردازش و درک زبان طبیعی این است که توکن‌های پردازش‌نشده، تمامی اطلاعات زبانی موجود در واحدهای زبانی را حفظ می‌کنند ولی سبب ایجاد نویز در داده‌های متنی ورودی می‌شوند. در پردازش و درک زبان طبیعی، می‌توان از روش‌های مختلفی برای حذف اطلاعات غیر ضروری در داده‌های متنی استفاده کرد.

the programmer 's programs had been programmed.

کلمات ممکن است اشکال متفاوتی داشته باشند. به عنوان نمونه، توکن programs از مثال بالا، شکل جمع کلمه program محسوب می‌شوند. کلمه Programmed، شکل «گذشته ساده» (Past Simple) فعل program است. به شکل اولیه کلمات یا شکلی که مترادف نمایش کلمات در «دایره لغات» (Dictionary) باشد، «لم» (Lemma) گفته می‌شود. بنابراین، قدم منطقی بعدی در مسیر پردازش و درک زبان طبیعی موجود در داده‌های متنی، نمایش کلمات به‌وسیله لم (Lemma) متناظر آن‌هاست.

the programmer 's program have be program.

شاید تابه‌حال به این موضوع برخورد کرده باشید که موتورهای جستجو، برای «پیش‌پردازش» (Pre-process) داده‌های متنی ورودی از «کلمات بی‌اثر» (Stopwords) استفاده می‌کنند. کلمات بی‌اثر، مجموعه‌ای از توکن‌هایی هستند که بار معنایی خاصی را منتقل نمی‌کنند و بهتر است که برای کاهش نویز داده‌های متنی ورودی، حذف شوند. کلمات بی‌اثر ممکن است شامل «کلمات تابعی» (Functional Words) یا علائم نشانه‌گذاری باشند. در زبان انگلیسی، کلمات تابعی کلماتی هستند که یک رابطه «ساختاری» (structural) یا «گرامری» (grammatical) با کلمات دیگر را در یک جمله بیان می‌کنند. این دسته از کلمات، معمولا یا فاقد محتوای معنادار هستند و یا محتوای معنادار بسیار کمی دارند (نظیر افعال کمکی و ضمایر).

در نتیجه، گام بعدی برای پردازش و درک زبان طبیعی موجود در اسناد متنی، حذف کلمات تابعی از جملات است. در نتیجه چنین فرآیندی، جملات زبان طبیعی تنها «کلمات محتوایی» (Content Words) را شامل خواهند شد. کلمات محتوایی، کلماتی هستند که بار معنایی منتقل می‌کنند.

programmer program program

همچنین، یک کلمه زبان طبیعی می‌تواند از طریق فرم «ریشه‌ای» (Stem) آن نمایش داده شود. ریشه، به قسمتی از یک کلمه گفته می‌شود که «ضمیمه‌ها» (Affixes) به آن ملحق می‌شوند. به عنوان نمونه، می‌توان ضمیمه (er-) را به کلمه ریشه‌ای program الحاق کرد تا کلمه محتوایی programmer تولید شود. در مثال قبل، اگر لم کلمات را با شکل ریشه‌ای آن‌ها جایگزین کنیم، خروجی حاصل از سیستم پردازش و درک زبان طبیعی به این شکل نمایش داده خواهد شد.

program program program

بنابراین، تا اینجا و با استفاده از روش‌های پردازشی معرفی شده، متن ورودی داده شده به دنباله‌ای متشکل از کلمات یا واحدهای زبانی حاوی اطلاعات نه چندان مفید (!!!) تبدیل شده است. هدف از چنین کاری، آشنایی مخاطبان با روش‌های مختلف نمایش کلمات است:

  • نمایش کلمات با استفاده از فرم پردازش‌نشده (Token) آن‌ها.
  • نمایش کلمات با استفاده از فرم لم (Lemma) آن‌ها.
  • نمایش کلمات با استفاده از فرم ریشه‌ای (Stem) آن‌ها.
  • نمایش کلمات از طریق حذف کلمات بی‌اثر موجود در داده متنی.

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

نکته مهم دیگری که باید به آن توجه شود این است که روش‌های متفاوتی برای «بخش‌بندی» (Segmenting) یک جمله وجود دارد. کاربران می‌توانند جملات را به واحدهای زبانی دیگری نظیر (N-grams) ،(constituents) ،(chunks) و سایر موارد بخش‌بندی کنند. این مفاهیم خارج از حوزه مفاهیم بیان شده در این مطلب هستند. با این حال، دانستن این نکته مفید است که واحدهای زبانی دیگری هم وجود دارند که بزرگتر از یک کلمه ولی کوچک‌تر از یک جمله هستند. واحدهای زبانی تشریح شده، اجزای سازنده برای ساختارهای نمایشی بزرگتر را تشکیل خواهند داد که در بخش‌های بعدی شرح داده خواهند شد.

نکاتی مفید در مورد سئو

  • درک چرایی و چگونگی جداسازی جملات به مجموعه‌ای از واحدهای زبانی، بسیار مهم است. زیرا، این واحدهای زبانی بخشی از معیاری هستند که تمامی سیستم‌های سئو از آن بهره می‌گیرند. به این معیار، «چگالی کلمه کلیدی» (Keyword Density) گفته می‌شود. البته بسیاری از سیستم‌های معروف و معتبر سئو، استفاده از معیار چگالی کلمه کلیدی را جهت رتبه‌بندی وب‌سایت‌ها و صفحات وب مناسب نمی‌دانند. این سیستم‌ها، استفاده از معیار Term Frequency–Inverse Document Frequency یا TD-IDF را برای رتبه‌بندی وب‌سایت‌ها و صفحات وب پیشنهاد می‌کنند؛ زیرا همبستگی بیشتری با سیستم‌های جستجوی معنایی استفاده شده در موتورهای جستجو نظیر گوگل دارد.
  • معیار چگالی کلمه کلیدی، معیار ساده و مفیدی برای رتبه‌بندی وب‌سایت‌ها و صفحات وب است؛ با این‌حال، نباید بیش از حد روی آن متمرکز شد.
  • همچنین، شایان توجه است که شکل‌های گرامری مختلف از کلمات، توسط موتورهای جستجو، به عنوان یک نوع کلمه‌ای یکسان در نظر گرفته می‌شوند. بنابراین بهینه‌سازی یک صفحه وب، برای شکل‌های گرامری مختلف از کلمات (به عنوان نمونه، شکل «جمع» (Plural) یا «مفرد» (Singular) یک کلمه) فایده چندانی ندارد.

مدل نمایشی Bag of Words از کلمات

مدل نمایشی Bag of Words، که به آن به اختصار BoW نیز گفته می‌شود، مدلی است که در کاربردهای پردازش و درک زبان طبیعی برای نمایش اسناد متنی (نظیر یک پرس و جو یا یک کتاب کامل) از آن استفاده می‌شود.

اگرچه مفهوم مدل نمایشی BoW به دهه 1950 میلادی بازمی‌گردد، اما کماکان برای کاربردهای مرتبط با دسته‌بندی متن و بازیابی اطلاعات نظیر موتورهای جستجو مورد استفاده قرار می‌گیرد.

درک زبان طبیعی (Natural Language Understanding)

در این بخش، روش BoW شرح داده می‌شود تا برای کاربران مشخص شود که موتورهای جستجو چگونه اسناد مرتبط با پرس و جوی کاربری را از میان مجموعه‌ای از اسناد پیدا می‌کنند. برای نمایش اسناد متنی با استفاده از مدل BoW، کافی است تا تعداد دفعاتی را که یک کلمه یکتا در داده متنی ظاهر می‌شود، شمارش و آن‌ها در یک «بردار» (Vector) لیست کنیم. پیش از نمایش اسناد متنی توسط مدل BoW، بهتر است که از روش‌های پیش‌پردازشی بخش قبل استفاده کنیم تا مهم‌ترین واحدهای زبانی موجود در متن شناسایی شوند. پس از نمایش داده‌های متنی توسط مدل BoW، تمامی اطلاعات مرتبط با «زمینه محتوایی» (Context)، ساختار متن، نحو و گرامر موجود در داده‌های متنی از بین می‌روند. مدل نمایشی BoW تولید شده برای مثال بالا به شکل زیر خواهد بود:

the programmer ‘s programs had been programmed 
{the: 1, programmer: 1, ‘s: 1, programs: 1, had: 1, been: 1, programmed: 1 } or
[1, 1, 1, 1, 1, 1, 1]
programmer program program
{programmer: 1, program: 2} or
[1, 2]

شاید در ادامه این سؤال در ذهن مخاطب شکل بگیرد که فایده استفاده از مدل BoW و نمایش اسناد متنی در قالب برداری از اعداد چیست؛ به ویژه، وقتی استفاده از این مدل نمایشی، سبب از بین رفتن اطلاعات محتوایی موجود در متن می‌شود. در صورتی که مجموعه‌ای از اسناد متنی (به عنوان نمونه، تمامی صفحات وبی که توسط یک موتور جستجوی خاص «شاخص‌گذاری» (Index) شده‌اند) در دسترس باشند، با استفاده از مدل‌هایی مشابه مدل BoW و نمایش برداری اسناد متنی، می‌توان مدلی به نام «مدل فضای برداری» (Vector Space Model) از اسناد متنی تولید کرد.

درک زبان طبیعی (Natural Language Understanding)

در نگاه اول، اصطلاح مدل فضای برداری ممکن است کمی ترسناک باشد، ولی ایده پیاده‌سازی آن بسیار ساده است. یک «ماتریس» (Matrix) را تصور کنید که در آن، هر ستون، مدل BoW متناظر با یک داده متنی (به عبارت دیگر، بردار عددی تشکیل شده از داده متنی) و هر سطر، یک کلمه کلمه یکتای ظاهر شده در مجموعه اسناد متنی را نمایش می‌دهد. تعداد ستون‌های این ماتریس، برابر با تعداد اسناد موجود در مجموعه اسناد متنی و تعداد سطرهای ماتریس، برابر  با تعداد کلمات یکتای ظاهر شده در تمامی اسناد موجود در مجموعه اسناد متنی است.

مقادیری که در تقاطع سطرها و ستون‌های ماتریس ظاهر می‌شوند، برابر با تعداد دفعاتی است که کلمه متناظر با سطر، در سند متنی متناظر با ستون، ظاهر شده است. شکل زیر، نمایی از یک مدل فضای برداری تولید شده برای مجموعه‌ای از چهار سند متنی را نمایش می‌دهد. ماتریس زیر، نمایش مدل فضای برداری برای برخی از نمایش‌نامه‌های تألیف شده توسط «شکسپیر» (Shakespeare) را نمایش می‌دهد. در مثال زیر، جهت سادگی، تنها 4 کلمه از میان تمامی کلمات موجود در نمایش‌نامه‌های شکسپیر انتخاب شده‌اند. در این ماتریس، هر کدام از ستون‌ها، نمایش BoW متناظر با یک نمایش‌نامه شکسپیر را نشان می‌دهند.

درک زبان طبیعی (Natural Language Understanding)

همان طور که پیش از این نیز اشاره شد، مدل BoW یک مدل برداری است؛ یعنی، اسناد متنی توسط بردار عددی نمایش داده می‌شوند. نکته جالب در مورد بردارها این است که می‌توان فاصله یا زاویه میان آن‌ها را محاسبه کرد. هر چقدر که فاصله یا زاویه میان دو بردار کوچک‌تر باشد، دو بردار شباهت بیشتری به یکدیگر دارند و در نتیجه، دو سند متنی متناظر با این بردارها شباهت بیشتری به یکدیگر دارند. برای محاسبه شباهت میان دو بردار (که معکوس مفهوم میزان فاصله یا زاویه میان دو بردار است)، می‌توان از معیار «شباهت کسینوسی» (Cosine Similarity) استفاده کرد. این معیار، میزان شباهت را با مقداری عددی بین 0 و 1 نمایش می‌دهد. هر چقدر این عدد بزرگتر باشد، شباهت میان دو سند بیشتر است.

$$similarity=cos(A, B)=\frac{A\cdot B}{\parallel A \parallel \; \parallel B \parallel}=\frac{\sum_{i=1}^n A_{i} B_{i}}{\sqrt{\sum_{i=1}^n A_i^2} \sqrt{\sum_{i=1}^n B_i^2}}$$

نحوه پیدا کردن سند مرتبط با پرس‌ و جوی کاربر

پس از اینکه توضیحات کافی در مورد روش‌های نمایش کلمات در اسناد متنی، مدل نمایشی BoW، مدل‌های فضای برداری و روش محاسبه شباهت میان بردارهای متناظر با داده‌های متنی ارائه شد، وقت آن فرا رسیده است که سازوکارهای لازم را برای پیدا کردن یک سند متنی مرتبط با پرس‌ و جوی کاربری، در میان مجموعه‌ای از اسناد متنی معرفی کنیم. فرض کنید که یک کاربر خاص، از طریق جستجوی عبارت (battle of Agincourt) به دنبال پیدا کردن منابع مرتبط با این پرس و جو است. پرس و جوی انجام شده توسط کاربر، بسیار کوتاه است و به راحتی، از طریق مدل برداری BoW (مانند مثال‌های بالا) قابل نمایش است. اگر هدف، تولید نمایش برداری این پرس و جو در قالب مثال نمایش‌نامه‌های شکسپیر باشد، نمایشی برداری به شکل [0، 0، 0، 1] تولید خواهد شد. در این نمایش برداری، کلمات (good)، (fool) و (wit) تعداد دفعات تکرار برابر با صفر در پرس و جوی کاربری دارند.

همچنین، کاربران قادر خواهند بود شباهت میان پرس و جو و هر کدام از اسناد موجود در مجموعه اسناد متنی را محاسبه کنند. نتایج حاصل از محاسبه شباهت میان پرس و جو و اسناد متنی در شکل زیر آمده است. با توجه به نتایج حاصل شده، می‌توان نتیجه گرفت که نمایش‌نامه (Henry V) بیشترین شباهت را به پرس و جوی کاربری دارد. از آنجایی که از میان چهار کلمه موجود در مجموعه نمایش‌نامه‌های شکسپیر، تنها کلمه (battle) در پرس و جوی کاربری ظاهر شده است، بنابراین، هر چقدر که تعداد دفعات این کلمه در یک سند متنی (نمایش‌نامه‌های شکسپیر) بیشتر باشد، میزان شباهت این سند به پرس و جوی کاربری بیشتر خواهد بود. نکته مهم دیگر این است که لازم نیست تمامی کلمات موجود در یک پرس و جو، در اسناد متنی نیز ظاهر شوند.

درک زبان طبیعی (Natural Language Understanding)

روش معرفی شده برای مشخص کردن شبیه‌ترین اسناد متنی به پرس و جوی کاربری، بسیار ساده است. چنین روش‌های ساده بازیابی اطلاعات، از نقاط ضعف بسیاری رنج می‌برند. مهم‌ترین نقاط ضعف چنین روش‌هایی عبارتند از:

  • چنین روش‌هایی به راحتی در دام پدیده‌ای به نام «انباشتن کلمات کلیدی» (Keyword Stuffing) قرار می‌گیرند. در این پدیده، کاربر می‌تواند با تکرار زیاد کلمات کلیدی در اسناد متنی، در رقابت با دیگر اسناد موجود در مجموعه اسناد متنی، امتیاز بالاتری را کسب کنند و از این طریق، میزان شباهت خود به یک پرس و جوی کاربری را به شدت افزایش دهد.
  • به مثال زیر دقت کنید. در این مثال، اگرچه دو سند متنی، معنا و مفهوم متفاوت از یکدیگر دارند، اما نمایش BoW آن‌ها کاملا یکسان خواهد بود. دقت داشته باشید که مدل‌های فضای برداری نظیر BoW، تمامی ساختارهای (معنایی و لغوی) موجود در اسناد متنی را از بین می‌برند.

$$I\; was\; not\; impressed,\; this\; was\; bad!$$
$$I\; was\; impressed,\; this\; was\; not\; bad!$$

  • استفاده از مدل نمایشی BoW به همراه تناوب کلمات، استراتژی خوبی برای پیدا کردن اسناد مرتبط با پرس و جوی کاربری نیست. این روش‌ها، تمایل زیادی به بازیابی اسنادی دارند که کلمات کلیدی پرس و جوی کاربر در آن‌ها به تناوب ظاهر شده است. مدل‌های BoW، «مدل‌های متمایزگر» (Discriminative Models) خوبی نیستند. در بخش بعدی، دلیل نامناسب بودن مدل‌های BoW توضیح داده خواهد شد.

روش TF-IDF و قانون Zipf

قانون Zipf بیان می‌کند که با در اختیار داشتن حجم عظیمی از اسناد متنی و کلمات استفاده شده در آن‌ها، «تناوب» (Frequency) هر کلمه، تناسب معکوسی با رتبه این کلمه در «جدول تناوب» (Frequency Table) کلمات خواهد داشت. به عبارت دیگر، کلمه شماره Nاُم، مقدار تناوبِ متناسب با $$\frac{1}{N}$$ خواهد داشت. در نتیجه چنین قانونی، الگوی بسیار جالبی در زبان‌های طبیعی نمود پیدا می‌کند. تقریبا 18 درصد از کلمات، که متناظر با متناوب‌ترین کلمات موجود در زبان هستند، 80 درصد از تناوب کلمه‌ای موجود در اسناد متنی را شامل می‌شوند؛ یعنی، تنها تعداد کمی از کلمات به تناوب استفاده می‌شوند و تعداد زیادی از کلمات، به ندرت مورد استفاده قرار می‌گیرند.

کلمات متناوب، در اسناد متنی زیادی (مجموعه کل اسناد متنی) ظاهر می‌شوند. در نتیجه، چنین کلماتی فرایند تمایز قائل شدن میان داده‌های متنی نمایش داده شده به وسیله مدل BoW را بسیار سخت می‌کنند. علاوه بر این، بیشتر کلمات متناوب در زبان‌های طبیعی، کلمات تابعی هستند که بار معنایی منتقل نمی‌کنند؛ یعنی، قادر نیستند زمینه محتوایی و موضوع اسناد متنی را توصیف کنند. ده کلمه زیر، متناوب‌ترین کلمات موجود در زبان انگلیسی هستند:

  • the
  • be
  • to
  • of
  • and
  • a
  • in
  • that
  • have
  • I

برای رفع چنین نقیضه‌ای در زبان طبیعی، از یک روش «وزن‌دهی» (Weighting) کلمات به نام TF-IDF استفاده می‌شود. با استفاده از روش TF-IDF، وزن کلمات متناوب ظاهر شده در مجموعه اسناد متنی کاهش می‌یابد. امتیاز (وزن) TF-IDF، از طریق رابطه زیر محاسبه می‌شود:

$$w_ {i , j } = tf _ {i , j} \times \log { (\frac { N } { df _ { i} }) }$$

$$tf _ {i , j} = number \; of \; occurrences \; i \; in \; j$$

$$tf _ {i , j} = number \; of \; documents \; containing \; i $$

$$N = Total \; number \; of \; documents $$

در این رابطه، مؤلفه اول «تناوب لغت» (Term Frequency) نام دارد و تناوب یک کلمه را، در سند متنی که در آن ظاهر شده است نشان می‌دهد. مؤلفه دوم، «معکوس تناوب سند» (Inverse Document Frequency) نام دارد. این مؤلفه، از طریق محاسبه تعداد اسناد متنی موجود در مجموعه اسناد متنی، تقسیم بر، مقدار «تناوب سند» (Document Frequency) حاصل می‌شود. منظور از تناوب سند، تعداد تمامی اسنادی است که کلمه مورد در آن‌ها ظاهر شده است. از مؤلفه دوم رابطه، برای اختصاص وزن بالاتر به کلماتی استفاده می‌شود که تنها در تعداد کمی از اسناد متنی ظاهر شده‌اند.

در جدول پایین، مقدار مؤلفه دوم یا Inverse Document Frequency، برای برخی از کلمات ظاهر شده در نمایش‌نامه‌های شکسپیر نشان داده شده است. در این جدول، علاوه بر کلمات متناوب، کلمات حاوی اطلاعات به شدت مفید نیز نمایش داده شده‌اند. به عنوان نمونه، کلمه Romeo، یک کلمه محتوایی و حاوی  اطلاعات به شدت مفید است و تنها در یکی از نمایش‌نامه‌های شکسپیر ظاهر شده است. در نقطه مقابل، کلماتی نظیر good و sweet، کلماتی متناوب و حاوی بار معنایی اندکی هستند که در تمامی نمایش‌نامه‌های شکسپیر ظاهر شده‌اند.

درک زبان طبیعی (Natural Language Understanding)

از آنجایی که مقدار IDF کلماتِ به شدت متناوب، برابر با صفر است، تناوب آن‌ها در مدل BoW نیز برابر با صفر خواهد شد. از طریق TF-IDF، وزن کلمات کلیدی که به ندرت در داده‌‌های متنی ظاهر می‌شوند، افزایش می‌یابد.

نکاتی مفید در مورد سئو

  • احتمال اینکه از مدل‌های نمایشی BoW در موتورهای جستجوی امروزی استفاده شود، بسیار پایین است. مدل‌های نمایشی دیگری نیز وجود دارند که توانایی بهتری در شناسایی ساختار متنی و در نظر گرفتن ویژگی‌های زبانی دارند. با این حال، سازوکار همه این مدل‌ها یکسان است. در این مدل‌ها، اسناد و پرس و جوی کاربری به نمایش برداری تبدیل می‌شوند. سپس، فاصله یا شباهت میان این بردارها محاسبه و مرتبط‌ترین اسناد به پرس و جوهای کاربری شناسایی می‌شوند.
  • آشنا با سازوکارهای این مدل به کاربران اجازه می‌دهد تا با نحوه عملکرد سیستم‌های «جستجوی لغوی» (Lexical Search) آشنا شوند. چنین سیستم‌هایی، در نقطه مقابل سیستم‌های «جستجوی معنایی» (Semantic Search) قرار دارند. برای عملکرد بهینه سیستم‌های جستجوی لغوی، لازم است تا اسناد موجود در مجموعه اسناد متنی، کلمات کلیدی پرس و جوی کاربران را شامل شوند. در حالی که در مورد سیستم‌های جستجوی معنایی، چنین چیزی لازم نیست.
  • قانون Zipf نشان می‌دهد که نسبت مشخصی از متن‌های نوشته شده به زبان طبیعی قابل پیش‌بینی هستند و تشخیص انحراف از نسبت‌های قابل پیش‌بینی بسیار ساده است. بنابراین، تشخیص دادن و برچسب زدن «داده‌های متنی بیش از حد بهینه‌شده» (Overoptimized Text) و غیر طبیعی، کار سختی نیست. نمونه‌ای از بهینه‌سازی بیش از حد داده‌های متنی، انباشتن کلمات کلیدی در آن‌ها است.
  • با استفاده از روش وزن‌دهی TF-IDF، ویژگی‌های محتوایی و کلمات کلیدی موجود در اسناد متنی، وزن بیشتری در بردار اسناد خواهند داشت. اگر چه ممکن است تفسیر چنین فرایندی به عنوان جستجوی معنایی، منطقی به نظر بیاید ولی واقعیت این است که روش TF-IDF، مشخصه‌های لازم را برای جستجوی معنایی اسناد فراهم نمی‌کند.

روش وزن‌دهی TF-IDF، معمولا با واحد بهینه‌سازی محتوای وب‌سایت‌ها (موجود در بخش «ممیزی» (Website Auditing)) یکپارچه شده است.

معناشناسی کلمه (Word Semantics) در مدل‌های درک زبان طبیعی

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

به عبارت دیگر، برخلاف روش‌های جستجوی لغوی، درک و فهم معنای موجود در پرس و جوی کاربری و تطابق معنایی آن‌ها با محتویات، پایه و اساس روش‌های جستجوی معنایی است.

درک زبان طبیعی (Natural Language Understanding)

یادگیری معنای واقعی یک کلمه در زمینه محتوایی ظاهر شده، یکی از مشکل‌ترین مسائل قابل تعریف در حوزه پیاده‌سازی موتور‌های جستجو است. سؤال مهمی که در اینجا پدید می‌آید این است که چگونه می‌توان معنا را مدل‌سازی کرد و نمایش داد؛ به گونه‌ای که توسط کامپیوتر و برنامه‌های کامپیوتری قابل فهم و استفاده باشند؟. در دهه 195 میلادی، اولین جرقه‌های فرموله کردن «معناشناسی توزیعی» (Distributional Semantics) و «فرضیه‌های توزیعی» (Distributional Hypothesis) برای پاسخ به این سؤال زده شد. «زبان‌شناسان» (Linguists) دریافتند که کلماتی که معنای یکسانی دارند، معمولا در محیط یکسانی (منظور، زمینه محتوایی یکسان) ظاهر می‌شوند. همچنین، میزان تفاوت معنایی میان دو کلمه با معنای یکسان، تقریبا برابر با اندازه تفاوتِ زمینه محتوایی آن‌ها است.

به این مثال ساده دقت کنید. فرض کنید که شما، در حین جستجو در اینترنت، با جملات زیر روبرو می‌شوید و معنی کلمه langoustine را نمی‌دانید:

  • جمله اول:

Langoustines are considered a delicacy

  • جمله دوم:

Langoustines have white fleshy meat in the tail and body that is juicy, slightly sweet and lean

  • جمله سوم:

When choosing langoustines we pay attention to a clear orange color

همچنین، در ادامه جستجو در اینترنت، با جملاتی روبرو می‌شوید که در مورد کلمه shrimp (به معنی میگو) صحبت می‌کنند:

  • جمله اول:

Shrimps are a delicacy that matches well with white wine and butter sauce

  • جمله دوم:

Tender shrimp meat can be added to pasta

  • جمله سوم:

When boiled, shrimps change their color to red

با یک مشاهده جزئی و مقایسه سطحی میان جملات بالا، به این نتیجه می‌رسیم دو کلمه shrimp و Langoustine، در کنار کلماتی نظیر delicacy، meat و pasta ظاهر شده‌اند. از آنجایی که زمینه محتوایی دو کلمه‌ shrimp و Langoustine شباهت زیادی به یکدیگر دارند، می‌توان نتیجه گرفت که Langoustine، نوعی «سخت‌پوست خوراکی» (Edible Crustacean) با ویژگی‌هایی مشابه میگو است. بنابراین، یک کلمه را می‌توان براساس زمینه‌های محتوایی که در آن ظاهر می‌شود (نظیر کلمات همسایه)، تعریف کرد.

سؤالی که در اینجا پیش می‌آید این است که چگونه می‌توان مشاهدات انجام شده در مورد شباهت زمینه محتوایی کلمات مشابه را، توسط یک مدل قابل فهم توسط کامپیوتر و مدل‌های کامپیوتری تعریف کرد. پاسخ این است که می‌توان مدلی شبیه به BoW تولید کرد. در چنین حالتی، از زمینه‌های محتوایی مرتبط با چند کلمه‌ای که در اطراف یک کلمه مورد نظر در متن ظاهر می‌شوند، برای «مدل‌سازی معنایی» (Semantic Modelling) آن کلمه استفاده می‌شود. به کلمات همسایه‌ که در اطراف یک کلمه مورد نظر در متن قرار دارند، «پنجره محتوایی» (Context Window) گفته می‌شود.

برای نمایش «مدل معنایی» (Semantic Model) کلمات، از یک نمایش ماتریسی استفاده می‌شود. در چنین مدلی، هر کدام از «سلول‌های» (Cells) ماتریسِ متناظر با مدل معنایی، تعداد دفعاتی را نشان می‌دهد که کلمه متناظر با ستون ماتریس، در پنجره محتوایی کلمه متناظر با سطر ماتریس ظاهر شده است. معمولا، برای تعیین پنجره محتوایی هر کلمه در متن، از $$\pm N$$ کلمه همسایه استفاده می‌شود (N کلمه قبل و N کلمه بعد). به عنوان نمونه، به مثال زیر توجه کنید:

درک زبان طبیعی (Natural Language Understanding)

در این مثال، 4 کلمه به‌همراه یکی از پنجره‌های محتوایی آن‌ها در داده‌های متنی نمایش داده شده است (پنجره محتوایی $$\pm4$$). برای تولید ماتریس متناظر با مدل معنایی این 4 کلمه، ابتدا لازم است، تا تمامی بخش‌های داده‌های متنی، که این کلمات در آن‌ها ظاهر شده‌اند مشخص شوند. سپس، به ازاء تمامی دفعات ظاهر شدن این 4 کلمه در داده‌های متنی، پنجره محتوایی اطراف آن‌ها تشکیل می‌شود. در نهایت، تعداد دفعات ظاهر شدن هر کدام از کلمات موجود در پنجره‌های محتوایی، محاسبه شده و در ماتریس متناظر با مدل معنایی کلمات قرار می‌گیرند.

درک زبان طبیعی (Natural Language Understanding)

در نتیجه تولید چنین مدلی، هر کلمه و معنای آن توسط یک بردار نمایش داده می‌شود. مشحصه‌های معنایی هر کلمه، توسط کلمات همسایه آن مشخص می‌شود؛ یعنی، زمینه محتوایی که کلمه در آن ظاهر می‌شود. از این دسته از مدل‌های معنایی، برای تشخیص «هم‌معنی بودن» (Synonymy) و «مشابهت کلمه‌ای» (Word Relatedness) در داده‌های متنی استفاده می‌شود. اگر بردارهای نمایش دهنده کلمات در مدل معنایی را، در «فضای ویژگی» (Feature Space) داده‌های متنی تصور کنیم، بردارهای متناظر با دو کلمه مشابه، در کنار یکدیگر ظاهر خواهند شد. همچنین، بردارهای کلماتی که در یک حوزه موضوعی یکسان قرار دارند، «خوشه‌هایی» (Clusters) در فضای ویژگی تشکیل می‌دهند.

درک زبان طبیعی (Natural Language Understanding)

بنابراین همانطور که مشاهده شد، مدل‌سازی مبتنی بر مفاهیم «علوم کامپیوتر» (Computer Science) و «زبان‌شناسی محاسباتی» (Computational Linguistics) به کامپیوترها اجازه می‌دهد تا معنا و مفهوم کلمات را در زمینه‌های محتوایی مختلف تشخیص دهند. در جستجوی معنایی، تفاوت‌های مفهومی میان کلمات، به جای اینکه توسط واحدهای لغوی نمایش داده شوند، توسط مدل‌های معنایی مبتنی بر «تعبیه‌سازی برداری» (Vector Embedding) نمایش داده می‌‎شوند.

نکاتی مفید در مورد سئو

  • مدل‌های معنایی، عملکرد بسیار خوبی در شناسایی و تشخیص هم‌معنی‌ها، کلمات مشابه و «چارچوب‌های معنایی» (Semantic Frames) دارند. یک چارچوب‌ معنایی، مجموعه‌ای از کلمات است که «جنبه‌های فکری» (Perspectives) یا «مشارکت‌کنندگان» (Participants) در نوع خاصی از «رویداد» (Event) را مشخص می‌کنند. به عنوان نمونه، چارچوب معنایی (tea drinking time) ممکن است شامل کلماتی نظیر tradition ،tea ،cup ،kettle ،drink و سایر موارد باشد.
  • در هنگام تولید محتوای بدیع و انتشار آن در وب‌سایت، بهتر است که از «بعدِ» (Dimension) چارچوب‌های معنایی به محتوا نگاه کنیم. به عبارت دیگر، به جای توجه به کلمات کلیدی مورد نیاز برای رتبه‌بندی مطلب، چارچوب معمایی مناسب برای آن انتخاب شود.
  • استفاده از محتوای منتشر شده توسط دیگران یا محتوای از پیش منتشر شده و جابجایی کلمات موجود در آن‌ها با کلمات هم‌معنی، سبب ایجاد بردارهای نمایشی مشابه می‌شود و تاثیر اندکی در رتبه محتوای شما، در موتورهای جستجو خواهد داشت.
  • موتورهای جستجو به مرور زمان، توانایی‌های خود در استخراج اطلاعات از صفحات وب را بهبود می‌بخشند. با این حال، استفاده از «نشانه‌گذاری ساخت‌یافته داده‌ها» (Structured Data Markup) برای ارتقاء عملکرد موتورهای جستجو در استخراج اطلاعات و رتبه‌بندی صفحات وب بسیار مفید خواهد بود.

جمع‌بندی

زبان‌شناسی محاسباتی، یکی از حوزه‌های علمی جذاب و در حال تکامل است. مفاهیم ارائه شده در این مطلب، نه تنها مفاهیم بدیع و انقلابی نیستند، بلکه مفاهیمی ساده برای کمک به شناسایی بهتر مسأله هستند و به کاربران برای ایجاد دیدگاهی سطح بالا، جهت درک نحوه عملکرد موتورهای جستجو کمک می‌کنند.

به خوانندگان و مخاطبان این مطلب توصیه می‌شود برای آشنایی بیشتر با این حوزه، منابع به روز دنیا را در زمینه بازیابی اطلاعات، پردازش زبان طبیعی، درک زبان طبیعی و فهم زبان مطالعه کنند.

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

بر اساس رای ۱ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Medium
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *