নিকটতম ম্যাচের জন্য এমবেডিংগুলি কীভাবে অনুসন্ধান করবেন

Nikatatama Myacera Jan Ya Emabedinguli Kibhabe Anusandhana Karabena



নিকটতম মিলের জন্য এমবেডিংগুলি অনুসন্ধান করার অর্থ হল সেই এমবেডিংগুলি খুঁজে পাওয়া যা একে অপরের নিকটতম অর্থ রয়েছে৷ এমবেডিংগুলি হল একটি বাক্যের ভেক্টরিয়াল উপস্থাপনা যা নির্দিষ্ট কাজের জন্য ইনপুট হিসাবে ভাষার মডেলগুলিতে খাওয়ানো হয়। আমরা এখানে পদ্ধতি এবং কৌশলগুলি নিয়ে আলোচনা করব যা অনুরূপ এমবেডিংগুলি খুঁজে পেতে ব্যবহার করা যেতে পারে।

বাক্য গঠন

অনেক কৌশল এবং সরঞ্জাম রয়েছে যা আমরা এমবেডিংয়ের মধ্যে পার্থক্য খুঁজে পেতে তাদের মিলের ক্ষেত্রে তাদের পার্থক্যের ভিত্তিতে ব্যবহার করতে পারি। নিম্নলিখিত পদ্ধতি এবং তাদের জড়িত সিনট্যাক্স যা আমরা এমবেডিং মিল খুঁজে বের করার জন্য ব্যবহার করব।







উল্লিখিত পয়েন্টগুলি থেকে, আমরা এমন মডেলগুলি জানি যা আমরা এমবেডিংয়ের জন্য মিল খুঁজে পেতে ব্যবহার করতে পারি। এখন, আমরা এই মডেলগুলির প্রতিটি ব্যবহার করতে শিখব এবং এই মডেলগুলির প্রতিটিতে পৃথক উদাহরণগুলি বাস্তবায়ন করতে শিখব।



উদাহরণ 1: ওয়ার্ড এমবেডিংয়ের মাধ্যমে নিকটতম মিল এম্বেড করা

সাদৃশ্য মিলের জন্য আমরা শব্দ এমবেডিং প্রয়োগ করার আগে, আমাদের এম্বেডিং শব্দটি সম্পর্কে জানতে হবে। ওয়ার্ড এমবেডিং হল পাঠ্যকে ভেক্টর (সংখ্যাসূচক মান) আকারে রূপান্তর করার প্রক্রিয়া যেহেতু আমাদের সিস্টেমগুলি কেবলমাত্র সংখ্যাসূচক অঙ্কের আকারে ইনপুট বোঝে।



এই কাজটি করার আরও বেশ কয়েকটি উপায় রয়েছে যার মধ্যে এক-হট এনকোডিং অন্তর্ভুক্ত রয়েছে, তবে আমরা এম্বেডিং শব্দটি ব্যবহার করব। এইভাবে, পাঠ্য থেকে নিউরাল নেটওয়ার্কের মডেল (যেমন word2vec বা Glove) দ্বারা এমবেডিং শেখা হচ্ছে। শব্দ উচ্চ-মাত্রিক ভেক্টর স্থান ম্যাপ করা হয়. প্রেক্ষাপটে অনুরূপ সেই সমস্ত শব্দগুলি নিকটতম পয়েন্টগুলিতে ম্যাপ করা হয়েছে। এইভাবে, এমবেডিংগুলি পাঠ্যের বিভিন্ন শব্দের মধ্যে সম্পর্ক এবং সাদৃশ্যগুলি ক্যাপচার করতে পারে।





আসুন একটি বাক্যের জন্য একটি শব্দ এমবেডিং তৈরি করি। শব্দ এমবেডিং তৈরি করতে, পাইথন 'জেনসিম' ফ্রেমওয়ার্ক প্রদান করে। জেনসিম একটি লাইব্রেরি প্যাকেজ যা 'word2vec' মডেল ব্যবহারের অনুমতি দেয় যা এমবেডিং তৈরি করতে সহায়তা করে। এমবেডিং বাস্তবায়ন করতে, আমরা প্রথমে আমাদের পাইথন কম্পাইলারগুলিতে জেনসিম ইনস্টল করার বিষয়টি নিশ্চিত করি। তারপর, জেনসিম থেকে, আমরা 'word2vec' মডেলটি আমদানি করি।

'word2vec' মডেলটি হল এক ধরনের অ্যালগরিদম যা শুধুমাত্র দুটি ইনপুট আর্গুমেন্ট ব্যবহার করে যেখানে প্রথম আর্গুমেন্টের জন্য পাঠ্য বা বাক্য প্রয়োজন যার এমবেডিং আমরা তৈরি করতে চাই, এবং দ্বিতীয় আর্গুমেন্টটি সর্বনিম্ন গণনা নির্দিষ্ট করে যা সর্বনিম্ন কতবার নির্দিষ্ট করে শব্দ উপস্থিত বা দেখা প্রয়োজন.



'word2vec' মডেলটি আমদানি করার পরে, আমরা 'টেক্সট' নির্দিষ্ট করি। একবার আমরা টেক্সট নির্দিষ্ট করে দিলে, তারপর আমরা এই 'word2vec' মডেলটিকে টেক্সটের সাথে পাস করে এবং ন্যূনতম গণনা '1' এর সমান সেট করে প্রশিক্ষণ দিই। এখন, আমরা এই প্রশিক্ষিত 'word2vec.wv.most_similar('consume')' মডেলটিকে বলি এবং শব্দটিকে ফিড করি যার নিকটতম এম্বেডিংগুলি আমরা পরীক্ষা করতে চাই যে এই উদাহরণে 'consume'। এমবেডিং ফলাফল পরীক্ষা করতে, আমরা মডেল থেকে আউটপুট মুদ্রণ করি:

থেকে একটি জাতি হিসাবে মডেল আমদানি Word2Vec
পাঠ্য = [ [ 'খরগোশ' , ' আছে' , 'দাঁত' ] ]
মডেল = Word2Vec ( পাঠ্য , min_count = 1 )
অনুরূপ_এম্বেডিং = মডেল. wv . most_smilar ( 'খরগোশ' )
ছাপা ( অনুরূপ_এম্বেডিং )

এই উদাহরণে, আমরা 'word2vec' মডেল ব্যবহার করে একটি পাঠ্যের জন্য শব্দ এমবেডিং তৈরি করি প্রেক্ষাপটের পরিপ্রেক্ষিতে তাদের মিল পরীক্ষা করতে এবং এটি পূর্বে-সংযুক্ত স্নিপেটে দেখা যেতে পারে যা কোডের আউটপুট যা অনুরূপ এমবেডিংয়ের জন্য পরীক্ষা করে। 'ভোগ' শব্দের।

উদাহরণ 2: BERT মডেলের মাধ্যমে নিকটতম অনুসন্ধান এম্বেড করা

প্রাক-প্রশিক্ষিত প্রাকৃতিক ভাষা প্রক্রিয়াকরণ মডেল রয়েছে যা পাঠ্যগুলির মধ্যে সাদৃশ্য গণনা করতে ব্যবহার করা যেতে পারে কারণ তারা শব্দগুলির মধ্যে প্রাসঙ্গিক সম্পর্ক বুঝতে এবং শিখতে পারে। BERT হল 'বাক্য_ট্রান্সফরমার' থেকে প্রাক-প্রশিক্ষিত ভাষার মডেলগুলির মধ্যে একটি এবং এটি পাঠ্যগুলির মধ্যে মিলগুলি শিখতে পারে৷ পাঠ্যের মধ্যে মিল খুঁজে পেতে, আমাদের প্রথমে এই মডেলটিকে পাঠ্য বা বাক্যগুলির সাথে সূক্ষ্ম সুর করতে হবে।

এটি হয়ে গেলে, আমরা এমবেডিং শিখতে এই মডেলটি ব্যবহার করতে পারি। তারপর, আমরা 'কোসাইন সাদৃশ্য' ফাংশন ব্যবহার করে পাঠ্যগুলির মধ্যে সাদৃশ্য গণনা করতে পারি। আমরা এই উদাহরণটি অনলাইন পাইথন প্ল্যাটফর্মে প্রয়োগ করি যা 'google colab'। মডেলটি সূক্ষ্ম সুর করতে, আমরা (BERT) মডেলটি লোড করি। সেই উদ্দেশ্যে, আমরা প্রথমে 'SentenceTransformers' ইনস্টল এবং আমদানি করি। তারপর, আমরা SentenceTransformer ব্যবহার করে এর পূর্ব-প্রশিক্ষিত মডেল থেকে মডেলটি লোড করি। মডেলটি লোড করার জন্য, আমরা SentenceTransformer এবং BERT মডেলটিকে একত্রে '$SentenceTransformer('bert-base-nli-mean-tokens')' বলে ডাকি যেখানে আমরা ইনপুট প্যারামিটারে BERT-এর প্রাক-প্রশিক্ষিত মডেলের নাম উল্লেখ করি এবং তারপর আমরা এটি 'BERTmodel' ভেরিয়েবলে সংরক্ষণ করি।

আমরা এই মডেলটি লোড করার পরে, আমরা এখন চারটি পাঠ্য নির্দিষ্ট করি, তাদের মধ্যে মিল পরীক্ষা করার জন্য প্রতিটিতে একটি বাক্য থাকে। একবার আমরা উদাহরণ স্বরূপ টেক্সট নির্দিষ্ট করে দিলে, আমরা এখন এই টেক্সটের জন্য এমবেডিং তৈরি করি। আমরা 'এনকোড' ফাংশন ব্যবহার করে প্রতিটি পাঠ্যের জন্য পৃথকভাবে এমবেডিং তৈরি করি।

আমরা BERT মডেলের উপসর্গ সহ এনকোডিং ফাংশনকে 'BERTmodel.encoding ()' বলে থাকি। তারপরে আমরা 'টেক্সট' এবং 'সর্বোচ্চ দৈর্ঘ্য' পাস করি যা আমরা এই ফাংশনের প্যারামিটারে '512' এর সমান নির্ধারণ করেছি। আমরা প্রতিটি পাঠ্যে এই এনকোডিং ফাংশনকে কল করি এবং এটি পাঠকে এমবেডিংয়ে রূপান্তর করে।

এখন, আমরা এই এমবেডিংগুলির প্রতিটি ব্যবহার করি এবং এই এমবেডিংয়ের মধ্যে মিল খুঁজে পেতে কোসাইন সাদৃশ্য ফাংশনে তাদের প্রতিস্থাপন করি। কোসাইন সাদৃশ্য ফাংশনটি পাঠ্য/নথিপত্রের শ্রেণিবিন্যাস এবং ক্লাস্টারিংয়ের জন্য সমস্ত প্রাকৃতিক ভাষা প্রক্রিয়াকরণ কাজে ব্যাপকভাবে ব্যবহৃত হয়।

এই এমবেডিংয়ের মধ্যে মিল খুঁজে বের করতে, আমরা কোসাইন সাদৃশ্য ফাংশন ব্যবহার করি এবং এম্বেড করা বাক্যের মান সূচক '0' দিয়ে এবং অন্য এমবেড করা বাক্যটিকে '1 থেকে 3' সূচক দিয়ে প্রতিস্থাপন করি যাতে অন্য 3টির সাথে বাক্যের 0-এর মিল পরীক্ষা করা যায়। বাক্য কোসাইন সাদৃশ্য ফাংশন আউটপুট মান -1 থেকে 1 পর্যন্ত পরিসীমা। এখানে, 1 বলে যে দুটি এম্বেডিং একই রকম এবং -1 বলছে যে দুটি এম্বেডিং একই রকম নয়। আমরা কোড স্নিপেট সংযুক্ত করেছি যা চারটি বাক্য এমবেডিং ব্যবহার করে কোসাইন সাদৃশ্য ফাংশন বাস্তবায়নের পদ্ধতি দেখায় যা আমরা পূর্বপ্রশিক্ষিত BERT মডেল ব্যবহার করে উদাহরণগুলিতে তৈরি করেছি।

!pip বাক্য_ট্রান্সফরমার ইনস্টল করুন
বাক্য = [
'চার বছর আগে, বোতলটি এমনকি পূর্ণ ছিল।',
'কুকুরটি খাঁচা থেকে পালানোর স্বপ্ন দেখে এবং রাস্তায় যেখানে সে তার বন্ধুকে যেতে দেখেছিল।',
'লোকটি অনেক মাস ধরে জেলিফিশের সাথে খেলছিল।',
'তিনি তার পোশাকে একটি শামুক খুঁজে পেয়েছেন।']
sentence_transformers থেকে SentenceTransformer আমদানি করুন
বার্টমডেল = সেন্টেন্স ট্রান্সফরমার ('বার্ট-বেস-এনলি-মিন-টোকেন')
sentence_embeddings = Bertmodel.encode(বাক্য)
sentence_embeddings.shape
sklearn.metrics.pairwise থেকে cosine_similarity আমদানি করুন
# 0 বাক্যটির জন্য কোসাইন সাদৃশ্য = গণনা করুন:
কোসাইন_সাদৃশ্য(
[বাক্য_এম্বেডিং[0]],
বাক্য_এম্বেডিং[1:])

আউটপুটে থাকা অ্যারে অন্য তিনটি বাক্যের সাথে 'বাক্য 0' এর সাদৃশ্য মান প্রদর্শন করে, যেমন 1, 2, এবং 3।

উপসংহার

আমরা এম্বেডিংয়ের মধ্যে মিল খুঁজে বের করার পদ্ধতিগুলি নিয়ে আলোচনা করেছি। আমরা 'word2vec' জেনসিম মডেল এবং পূর্বপ্রশিক্ষিত BERT মডেল ব্যবহার করে এমবেডিংয়ের সবচেয়ে কাছের মিল অনুসন্ধান করার জন্য দুটি ভিন্ন উদাহরণ দেখিয়েছি।