Word embeddings হল একটি টেকনিক যা শব্দের মানে এবং প্রাসঙ্গিকতাকে একটি ঘনিষ্ট (dense) ভেক্টর আকারে উপস্থাপন করার জন্য ব্যবহৃত হয়। এই পদ্ধতিগুলি শব্দের গাণিতিক উপস্থাপনা তৈরি করে, যা শব্দগুলির মধ্যে সম্পর্ক এবং তাদের ব্যবহার সম্বন্ধে অন্তর্দৃষ্টি দেয়। সাধারণত Word2Vec এবং GloVe দুটি জনপ্রিয় word embedding পদ্ধতি।
১. Word2Vec (Word to Vector)
Word2Vec হল একটি নিউরাল নেটওয়ার্ক ভিত্তিক মডেল যা শব্দের গাণিতিক প্রতিনিধিত্ব তৈরি করে এবং শব্দগুলির মধ্যে সম্পর্ক শেখায়। এটি ২০১৩ সালে Tomas Mikolov এবং তার সহকর্মীদের দ্বারা উন্নত করা হয়। Word2Vec দুটি পদ্ধতির মাধ্যমে কাজ করতে পারে:
- Continuous Bag of Words (CBOW): এই পদ্ধতিতে একটি শব্দের আশেপাশের কনটেক্সট থেকে লক্ষ্য শব্দের ভেক্টর অনুমান করা হয়। অর্থাৎ, কনটেক্সটের শব্দগুলি ব্যবহার করে একটি নির্দিষ্ট লক্ষ্য শব্দের প্রেডিকশন করা হয়।
- Skip-gram: এখানে একটি শব্দের কাছ থেকে তার আশেপাশের কনটেক্সট শব্দগুলো অনুমান করা হয়। এটি বিশেষভাবে বড় ডেটাসেটের জন্য কার্যকরী।
কিভাবে কাজ করে:
Word2Vec শব্দগুলির মাঝে সেমান্টিক সম্পর্ক ও কনটেক্সট সম্পর্ক বুঝতে পারে এবং প্রতিটি শব্দের জন্য একটি ঘন ভেক্টর তৈরি করে। এই ভেক্টরগুলি গণনা করা হয় এমনভাবে যাতে সম্বন্ধিত শব্দগুলো একই ভেক্টরের কাছাকাছি থাকে। উদাহরণস্বরূপ, "king" এবং "queen" এর ভেক্টরগুলো একে অপরের কাছে অবস্থান করবে, কারণ তাদের অর্থ এবং ব্যবহারের মধ্যে সম্পর্ক রয়েছে।
উদাহরণ:
from gensim.models import Word2Vec
# Example text data
sentences = [["I", "love", "machine", "learning"],
["I", "love", "deep", "learning"],
["I", "enjoy", "coding"]]
# Word2Vec model training
model = Word2Vec(sentences, min_count=1)
# 'love' শব্দের ভেক্টর প্রাপ্তি
vector = model.wv['love']
print(vector)
Word2Vec এর সুবিধা:
- খুব বড় ডেটাসেটের জন্য কার্যকর।
- শব্দগুলির সেমান্টিক সম্পর্ক ভালভাবে বুঝতে পারে।
- শব্দের সান্নিধ্য ও কনটেক্সট এর উপর ভিত্তি করে এটি সম্পর্ক তৈরি করতে সক্ষম।
২. GloVe (Global Vectors for Word Representation)
GloVe একটি count-based word embedding মডেল যা শব্দের গাণিতিক প্রতিনিধিত্ব তৈরি করার জন্য co-occurrence matrix ব্যবহার করে। এটি ২০১৪ সালে Stanford University তে Pennington, Socher, and Manning দ্বারা তৈরি করা হয়।
কিভাবে কাজ করে:
GloVe শব্দগুলির co-occurrence matrix (কোন দুটি শব্দ একে অপরের সাথে কতবার আসে) তৈরি করে এবং তারপর একটি গাণিতিক ফর্মুলার মাধ্যমে এই শব্দগুলির ভেক্টর তৈরি করে। এটি বিশ্বব্যাপী শব্দের সম্পর্ক এবং কনটেক্সট এর উপর ভিত্তি করে কাজ করে, এবং এর লক্ষ্য হল একটি global context তৈরি করা যা পুরো ডেটাসেটের তথ্য ধারণ করে।
GloVe মডেল শব্দের মাঝে সম্পর্ক বোঝার জন্য word co-occurrence statistics ব্যবহার করে। এর মাধ্যমে দুটি শব্দের ভেক্টর দূরত্ব পরিমাপ করা হয়, এবং সেই অনুযায়ী তাদের সম্পর্ক নির্ধারণ করা হয়।
GloVe এর বৈশিষ্ট্য:
- GloVe বিশ্বব্যাপী (global) শব্দ সম্পর্ক ব্যবহারের জন্য কার্যকরী, যা গাণিতিক ফর্মুলায় বাস্তবায়িত হয়।
- এটি মেমরি দক্ষ এবং দ্রুত কাজ করে।
উদাহরণ:
from glove import Glove
from glove import Corpus
# Example corpus
corpus = Corpus()
corpus.fit([["I", "love", "machine", "learning"],
["I", "love", "deep", "learning"],
["I", "enjoy", "coding"]], window=5)
# GloVe model training
glove = Glove(no_components=10, learning_rate=0.05)
glove.fit(corpus.matrix, epochs=30, no_threads=4, verbose=True)
# 'love' শব্দের ভেক্টর প্রাপ্তি
vector = glove.word_vectors[glove.dictionary['love']]
print(vector)
GloVe এর সুবিধা:
- এটি একটি global model, যা পুরো ডেটাসেটের প্যাটার্ন এবং সম্পর্কের উপর ভিত্তি করে কাজ করে।
- বড় ডেটাসেটের জন্য যথাযথ এবং দ্রুত কাজ করতে সক্ষম।
Word2Vec এবং GloVe এর মধ্যে পার্থক্য
| ফিচার | Word2Vec | GloVe |
|---|---|---|
| Approach | Prediction-based (Context-based) | Count-based (Co-occurrence Matrix) |
| Model Type | Local context representation | Global context representation |
| Computation | Fast computation on large datasets | Efficient when memory is a concern |
| Use Case | Best for capturing local, syntactic relationships | Better for capturing global semantic relationships |
| Training | Uses sliding windows over text to predict context | Factorizes word co-occurrence matrix |
সারাংশ
Word2Vec এবং GloVe হল দুটি জনপ্রিয় word embedding মডেল, যা শব্দের গাণিতিক ভেক্টর তৈরি করতে ব্যবহৃত হয়। Word2Vec কনটেক্সট এবং স্থানীয় সম্পর্ক বুঝতে সহায়ক, যেখানে GloVe গ্লোবাল সম্পর্ক এবং co-occurrence তথ্য ব্যবহার করে। এই দুটি মডেলই ভাষা মডেলিং এবং অন্যান্য ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং (NLP) অ্যাপ্লিকেশনগুলিতে ব্যাপকভাবে ব্যবহৃত হয়।
Read more