n-grams से आगे: word embeddings

Python में NLP के लिए Feature Engineering

Rounak Banik

Data Scientist

BoW और tf-idf की दिक्कत

'I am happy'
'I am joyous'
'I am sad'
Python में NLP के लिए Feature Engineering

Word embeddings

  • शब्दों को n-आयामी वेक्टर स्पेस में मैप करना
  • डीप लर्निंग और बहुत बड़े डेटा से तैयार
  • दो शब्दों की समानता मापें
  • समानार्थी और विलोम पहचानने में उपयोगी
  • जटिल संबंध पकड़ता है
    • King-QueenMan-Woman
    • France-ParisRussia-Moscow
  • spaCy मॉडल पर निर्भर; आपके डेटासेट से स्वतंत्र
Python में NLP के लिए Feature Engineering

spaCy के साथ word embeddings

import spacy

# मॉडल लोड करें और Doc ऑब्जेक्ट बनाएँ
nlp = spacy.load('en_core_web_lg')
doc = nlp('I am happy')
# हर टोकन के लिए वर्ड वेक्टर जनरेट करें
for token in doc:
  print(token.vector)
[-1.0747459e+00  4.8677087e-02  5.6630421e+00  1.6680446e+00
 -1.3194644e+00 -1.5142369e+00  1.1940931e+00 -3.0168812e+00
 ...
Python में NLP के लिए Feature Engineering

शब्द समानताएँ

doc = nlp("happy joyous sad")
for token1 in doc:
  for token2 in doc:
    print(token1.text, token2.text, token1.similarity(token2))
happy happy 1.0
happy joyous 0.63244456
happy sad 0.37338886
joyous happy 0.63244456
joyous joyous 1.0
joyous sad 0.5340932
...
Python में NLP के लिए Feature Engineering

डॉक्यूमेंट समानताएँ

# Doc ऑब्जेक्ट बनाएँ
sent1 = nlp("I am happy")
sent2 = nlp("I am sad")
sent3 = nlp("I am joyous")
# sent1 और sent2 के बीच similarity निकालें
sent1.similarity(sent2)
0.9273363837282105
# sent1 और sent3 के बीच similarity निकालें
sent1.similarity(sent3)
0.9403554938594568
Python में NLP के लिए Feature Engineering

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

Python में NLP के लिए Feature Engineering

Preparing Video For Download...