एम्बेडिंग्स

Python में Natural Language Processing (NLP)

Fouad Trad

Machine Learning Engineer

BoW और TF-IDF की सीमाएँ

  • मिलते-जुलते शब्दों को पूरी तरह असंबंधित मानना
  • टेक्स्ट का अर्थ न पकड़ पाना

 

इमेज दिखा रही है कि BoW/TF-IDF कैसे कई टेक्स्ट वाले डेटासेट को ऐसे स्ट्रक्चर्ड डेटासेट में बदलते हैं जहाँ यूनिक शब्द फीचर्स होते हैं.

Python में Natural Language Processing (NLP)

एम्बेडिंग्स

इमेज दिखा रही है कि एम्बेडिंग एक शब्द को वेक्टर में बदलती है.

  • शब्द को ऐसे वेक्टर से दर्शाएँ जो उसका अर्थ पकड़ता है
Python में Natural Language Processing (NLP)

एम्बेडिंग्स

चार अलग-अलग शब्दों: car, movie, film, और king के एम्बेडिंग वेक्टर दिखाती इमेज.

  • शब्द को ऐसे वेक्टर से दर्शाएँ जो उसका अर्थ पकड़ता है
    • हर शब्द को शुरुआती रैंडम मान दें
Python में Natural Language Processing (NLP)

एम्बेडिंग्स

वाक्य-पूर्ति टास्क दिखाती इमेज जहाँ लक्ष्य है "I enjoyed watching the" जैसे वाक्य को सही शब्द से पूरा करना.

  • शब्द को ऐसे वेक्टर से दर्शाएँ जो उसका अर्थ पकड़ता है
    • हर शब्द को शुरुआती रैंडम मान दें
    • वाक्यों में मिसिंग शब्दों की भविष्यवाणी कर मानों को परिष्कृत करें
Python में Natural Language Processing (NLP)

एम्बेडिंग्स

इमेज दिखाती है कि हम वाक्य को दो समानार्थी शब्दों: movie और film से पूरा कर सकते हैं.

  • शब्द को ऐसे वेक्टर से दर्शाएँ जो उसका अर्थ पकड़ता है
    • हर शब्द को शुरुआती रैंडम मान दें
    • वाक्यों में मिसिंग शब्दों की भविष्यवाणी कर मानों को परिष्कृत करें
    • जो शब्द समान संदर्भों में आते हैं, उनकी अभिव्यक्तियाँ भी मिलती-जुलती होती हैं
Python में Natural Language Processing (NLP)

शब्दों के लिए GPS कोऑर्डिनेट्स के रूप में एम्बेडिंग्स

मानचित्र पर GPS लोकेशंस दिखाती इमेज.

Python में Natural Language Processing (NLP)

Gensim

  • लोकप्रिय एम्बेडिंग मॉडल उपलब्ध कराता है
    • Word2Vec
    • GloVe
word2vec-ruscorpora-300
word2vec-google-news-300
glove-wiki-gigaword-50
glove-wiki-gigaword-100
glove-wiki-gigaword-200
glove-wiki-gigaword-300
...

 

  Gensim लोगो.

Python में Natural Language Processing (NLP)

एम्बेडिंग मॉडल लोड करना

import gensim.downloader as api

model = api.load('glove-wiki-gigaword-50')
print(type(model))
print(model['movie'])
<class 'gensim.models.keyedvectors.KeyedVectors'>

[ 0.30824 0.17223 -0.23339 0.023105 0.28522 0.23076 -0.41048 -1.0035 -0.2072 1.4327 -0.80684 0.68954 -0.43648 1.1069 1.6107 -0.31966 0.47744 0.79395 -0.84374 0.064509 0.90251 0.78609 0.29699 0.76057 0.433 -1.5032 -1.6423 0.30256 0.30771 -0.87057 2.4782 -0.025852 0.5013 -0.38593 -0.15633 0.45522 0.04901 -0.42599 -0.86402 -1.3076 -0.29576 1.209 -0.3127 -0.72462 -0.80801 0.082667 0.26738 -0.98177 -0.32147 0.99823 ]
Python में Natural Language Processing (NLP)

समानता निकालना

similarity = model.similarity("film", "movie")

print(similarity)
0.9310100078582764
Python में Natural Language Processing (NLP)

सबसे मिलते-जुलते शब्द ढूँढना

similar_to_movie = model.most_similar('movie', topn=3)

print(similar_to_movie)
[('movies', 0.9322481155395508), 
 ('film', 0.9310100078582764), 
 ('films', 0.8937394618988037)]
Python में Natural Language Processing (NLP)

एम्बेडिंग्स को विज़ुअलाइज़ करना

  • Principal Component Analysis (PCA):
    • हाई-डायमेंशनल वेक्टर → 2D या 3D वेक्टर

3D मैप को 2D में फ्लैटन होते दिखाती इमेज.

1 Image generated by DALL-E
Python में Natural Language Processing (NLP)

PCA से एम्बेडिंग्स का विज़ुअलाइज़ेशन

from sklearn.decomposition import PCA

words = ["film", "movie", "dog", "cat", "car", "bus"]
word_vectors = [model[word] for word in words]
pca = PCA(n_components=2)
word_vectors_2d = pca.fit_transform(word_vectors)
plt.scatter(word_vectors_2d[:, 0], word_vectors_2d[:, 1])
for word, (x, y) in zip(words, word_vectors_2d): plt.annotate(word, (x, y))
plt.show()

इमेज दिखाती है कि एम्बेडिंग स्पेस में समान/संबंधित शब्द पास-पास होते हैं.

Python में Natural Language Processing (NLP)

एम्बेडिंग्स की तुलना

इमेज दिखाती है कि Word2Vec मॉडल में समान/संबंधित शब्द एम्बेडिंग स्पेस में पास-पास हैं, पर उनकी पोजिशन GloVe मॉडल से अलग है.

word2vec-google-news-300

इमेज दिखाती है कि GloVe मॉडल में समान/संबंधित शब्द एम्बेडिंग स्पेस में पास-पास हैं.

glove-wiki-gigaword-50
Python में Natural Language Processing (NLP)

अभ्यास करते हैं!

Python में Natural Language Processing (NLP)

Preparing Video For Download...