مقدمهای در خصوص متنکاوی و تکنیکهای آن
در علم متنکاوی برای انجام محاسبه بر روی متن لازم بود تا اجزای متن بهصورت عددی نمایش داده شوند. بهطور مثال بهجای اینکه کلمه Mine با چهار حرف M، i، n و e نمایش داده شود، با عدد 13 نمایش داده شود. حرف M یا کلمه Mine، هیچ معنای خاصی برای پردازنده ندارد البته در این مثال دادن یک کد مثل 13 به کلمه Mine هم مشکل خاصی را حل نمیکند و شاید فقط کمی محاسبات آماری را سادهتر کند. اما اگر بهجای عدد 13، یک عدد معادار به کلمه Mine نسبت داده میشد، ارزش پردازشی بیشتر بوجود میآمد. بهطور نمونه اگر این عدد میزان اهمیت این واژه در یک متن را نمایش میداد، به راحتی همه کلمات یک کتاب بر حسب عدد میزان اهمیت مرتب شده و ده واژه مهمتر کتاب استخراج میشد. ده واژه مهم یک متن، بلافاصله درک معنیداری از آن متن فراهم میکنند. اما از این بیشتر، امکان نمایش عددی یک عبارت به نحوی بود که معنا و مفهوم عبارت هم در آن نهفته باشد، چیزی که شاید دو دهه قبل یک رویا به حساب میآمد. اما امروزه این رویا به حقیقت پیوسته است.
در حدود سال های 2000 تا 2010، از روشهای آماری برای محاسباتی متنی استفاده میشد که به الگوریتمهای زیر میتوان به عنوان الگوریتمهای معروف در این حوزه اشاره نمود:
این روشهای آماری در دادههای یکدست عملکرد قابل قبولی داشتند و برای کارهای سادهای همانند محاسبه میزان اهمیت یک واژه در متن، مناسب بودند؛ هر چند که هنوز در مواردی از دقت لازم برخوردار نبودند و در مواقعی بر روی دادههای متنوع متنی در دنیای واقعی عملکرد مناسبی نداشتند. بهطور قطع، یک عدد ساده مثل 13 نمیتوانست تمامی ویژگیهای معنایی و مفهومی یک واژه را بیان کند. از دهه دوم قرن بیستم، این ایده مطرح شد که برای نمایش هر یک از اجزای متن (مثلا کلمات) از بردار استفاده شود. اما منظور از بردار و اجزای متن چیست؟
منظور از اجزای متن تقریبا همان کلمات است اما در متن یک حرف مستقل نیز واحد متنی حساب شده و عبارتهای متشکل از چند کلمه نیز یک واحد (Token) محسوب میشوند.
به طور نمونه جمله فوق از نه واحد تشکیل یافته است که برخی یک حرفی و برخی دو کلمهای هستند.
مجموعهای از چندین عدد است که هر یک از این اعداد، یک بُعد از بردار محسوب میشوند. یک بردار 10 بعدی میتواند به این صورت باشد:
[0.12, 0.23, 0.13, 0.82, 0.02, 0.74, 0.55, 0.84, 0.72, 0.17]
برای انجام محاسبات بر روی متن، لازم بود تا هر واحد متنی بهصورت یک بردار نمایش داده شود. در ابتدا روشهایی همچون مدل فضای بردار یا (VSM) Vector Space Model برای ساخت بردار از واحدهای متنی ابداع شدند. مشکل اصلی این روشهای این بود که با افزایش حجم متن، اندازه بردارها نیز افزایش پیدا میکرد و ممکن بود به بیش از یک میلیون بعد برسد. در این زمان روشهای ریاضی مختلفی برای کاهش ابعاد بردار ابداع شدند که روش Random indexing یکی از معروفترین آنهاست.
یکی از مفاهیم اصلی حوزه متن کاوی، Word embedding است که در فارسی به آن جاسازی کلمه گفته میشود. جاسازی کلمه همان مفهوم نمایش یک واحد متنی در قالب بردار است. در سال 2013 شرکت گوگل روش word2vec را معرفی نمود که در آن از شبکههای عصبی و نوعی هوش مصنوعی برای ساخت بردارهای متنی استفاده میشد. روش word2vec را میتوان یک ربات هوش مصنوعی فرض کرد که با خواندن متن و یادگیری آن، ذهنیت و درک خود را در قالب بردار بیان میکند. بدیهی است که یادگیری و اظهار نظر دقیق در مورد کلیه موضوعات یک رشته تخصصی با خواندن چند صفحه متن تخصصی، ممکن نیست. به همین دلیل ربات هوش مصنوعی نیز برای یادگیری صحیح و ساخت بردارهای دقیق به متنی در حدود چند میلیون کلمه نیاز دارد. بردارهای word2vec در اندازههای مختلفی قابل ساخت هستند اما اندازههایی بین 50 تا 300 بعد، رایجتر هستند.
word2vec مجموعهای از الگوریتمها است که معرفترین آنها Skip-gram و CBoW هستند.
دقت بالای بردارهای ساخته شده توسط روش Word2vec در مقالات مختلفی مورد بحث قرار گرفته است که به طور نمونه به دو مورد از آنها در انتهای این متن اشاره شده است. بردار ساخت شده برای هر واحد متنی، حاوی اطلاعات معنایی و مفهومی از آن واحد متنی است. در یک آزمایش واقعی برای چهار کلمه King، Man، Women و Queen با استفاده از word2vec بردارهای لازم ساخته شد. اگر هر بردار را با نام کلمه متناظر آن نشان دهیم، از بردار King، بردار Man کم شده و بردار Woman با آن جمع شد. نتیجه بسیار نزدیک به بردار Queen بود:
King-Man+Woman ≈ Queen
بنابراین یکی از مهمترین ابزارهای مورد استفاده در متن کاوی، استفاده از مشابهت بردارها، برای یافتن ارتباط بین واحدهای متنی است. به این مفهوم که اگر دو بردار شبیه هم باشند، میتوان نتیجه گرفت که واحدهای متنی متناظر آنها به یک مفهوم مشابه اشاره دارند. روش شباهت کسینوسی، یکی از روشهای رایج برای محاسبه شباهت دو بردار است. اگر برای مجموعهای از عبارتهای فناوری، بردارهای لازم ساخته شود، برداری مشابه، فناوریهای مرتبط را نشان میدهد.
[1] D. C. Elton et al., “Using natural language processing techniques to extract information on the properties and functionalities of energetic materials from large text corpora,” arXiv Prepr. arXiv1903.00415, Mar. 2019.
[2] T. Mikolov, I. Sutskever, K. Chen, G. S. Corrado, and J. Dean, “Distributed representations of words and phrases and their compositionality,” in Advances in neural information processing systems, 2013, pp. 3111–3119.