Language models परिचय

Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

David Cecchini

Data Scientist

Sentence probability

कई उपलब्ध मॉडल

  • "I loved this movie" की probability.
  • Unigram
    • $$P(\text{sentence}) = P(\text{I})P(\text{loved})P(\text{this})P(\text{movie})$$
  • N-gram
    • N = 2 (bigram): $$P(\text{sentence}) = P(\text{I})P(\text{loved} | \text{I})P(\text{this} | \text{loved})P(\text{movie} | \text{this})$$
    • N = 3 (trigram): $$P(\text{sentence}) = P(\text{I})P(\text{loved} | \text{I})P(\text{this} | \text{I loved})P(\text{movie} | \text{loved this})$$
Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

Sentence probability (जारी)

  • Skip gram
    • $$P(\text{sentence}) = P(\text{context of I} | \text{I})P(\text{context of loved} | \text{loved}) \ $$ $$P(\text{context of this} | \text{this})P(\text{context of movie} | \text{movie})$$
  • Neural Networks
    • वाक्य की probability नेटवर्क की आउटपुट लेयर पर softmax फंक्शन से मिलती है
Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

RNNs से लिंक

RNNs में language models हर जगह हैं!

  • खुद नेटवर्क

RNN मॉडल्स को language model की तरह देखा जा सकता है, क्योंकि यह अगला शब्द predict कर सकता है.

Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

RNN से लिंक (जारी)

  • Embedding लेयर

मॉडल की लेयर्स का एक मैक्रो दृश्य दिखाता है. Embedding लेयर इनपुट लेयर के बाद पहली होनी चाहिए और शब्दों का dense प्रतिनिधित्व बनाती है.

Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

वोकैबुलरी डिक्शनरी बनाना

# Get unique words
unique_words = list(set(text.split(' ')))
# Create dictionary: word is key, index is value
word_to_index = {k:v for (v,k) in enumerate(unique_words)}
# Create dictionary: index is key, word is value
index_to_word = {k:v for (k,v) in enumerate(unique_words)}
Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

इनपुट का प्रीप्रोसेसिंग

# Initialize variables X and y
X = []
y = []

# Loop over the text: length `sentence_size` per time with step equal to `step` for i in range(0, len(text) - sentence_size, step):
X.append(text[i:i + sentence_size]) y.append(text[i + sentence_size])
# Example (numbers are numerical indexes of vocabulary):
# Sentence is: "i loved this movie" -> (["i", "loved", "this"], "movie")
X[0],y[0] = ([10, 444, 11], 17)
Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

नए टेक्स्ट ट्रांसफॉर्म करना

# Create list to keep the sentences of indexes
new_text_split = []

# Loop and get the indexes from dictionary for sentence in new_text:
sent_split = []
for wd in sentence.split(' '):
ix = wd_to_index[wd]
sent_split.append(ix)
new_text_split.append(sent_split)
Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

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

Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

Preparing Video For Download...