n-gram modelleri oluşturma

Python ile NLP için Özellik Mühendisliği

Rounak Banik

Data Scientist

BoW eksikleri

inceleme etiket
'The movie was good and not boring' olumlu
'The movie was not good and boring' olumsuz

 

  • Tamamen aynı BoW gösterimi!
  • Sözcük bağlamı kaybolur.
  • Duygu, 'not' konumuna bağlıdır.
Python ile NLP için Özellik Mühendisliği

n-gramlar

  • Bir belgedeki bitişik n öğe (veya kelime) dizisi.
  • n = 1 → bag-of-words
    'for you a thousand times over'
    
  • n = 2, n-gramlar:
    [
    'for you',
    'you a',
    'a thousand',
    'thousand times',
    'times over'
    ]
    
Python ile NLP için Özellik Mühendisliği

n-gramlar

'for you a thousand times over'
  • n = 3, n-gramlar:
    [
    'for you a',
    'you a thousand',
    'a thousand times',
    'thousand times over'
    ]
    
  • Daha fazla bağlam yakalar.
Python ile NLP için Özellik Mühendisliği

Uygulamalar

  • Cümle tamamlama
  • Yazım düzeltme
  • Makine çevirisi düzeltme
Python ile NLP için Özellik Mühendisliği

scikit-learn ile n-gram modelleri oluşturma

Yalnızca bigram üretir.

bigrams = CountVectorizer(ngram_range=(2,2))

Unigram, bigram ve trigram üretir.

ngrams = CountVectorizer(ngram_range=(1,3))
Python ile NLP için Özellik Mühendisliği

Eksiklikler

  • Boyutsallık laneti
  • Daha yüksek mertebe n-gramlar nadirdir
  • n küçük tutulmalı
Python ile NLP için Özellik Mühendisliği

Ayo berlatih!

Python ile NLP için Özellik Mühendisliği

Preparing Video For Download...