Construirea modelelor n-gram

Ingineria caracteristicilor pentru NLP în Python

Rounak Banik

Data Scientist

Limitări BoW

recenzie etichetă
'The movie was good and not boring' pozitiv
'The movie was not good and boring' negativ

 

  • Reprezentare BoW identică!
  • Contextul cuvintelor se pierde.
  • Sentimentul depinde de poziția lui 'not'.
Ingineria caracteristicilor pentru NLP în Python

n-grame

  • Secvență de n elemente (sau cuvinte) consecutive dintr-un document.
  • n = 1 → bag-of-words
    'for you a thousand times over'
    
  • n = 2, n-grame:
    [
    'for you',
    'you a',
    'a thousand',
    'thousand times',
    'times over'
    ]
    
Ingineria caracteristicilor pentru NLP în Python

n-grame

'for you a thousand times over'
  • n = 3, n-grame:
    [
    'for you a',
    'you a thousand',
    'a thousand times',
    'thousand times over'
    ]
    
  • Capturează mai mult context.
Ingineria caracteristicilor pentru NLP în Python

Aplicații

  • Completarea propozițiilor
  • Corectarea ortografiei
  • Corectarea traducerii automate
Ingineria caracteristicilor pentru NLP în Python

Construirea modelelor n-gram cu scikit-learn

Generează doar bigramme.

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

Generează unigramme, bigramme și trigramme.

ngrams = CountVectorizer(ngram_range=(1,3))
Ingineria caracteristicilor pentru NLP în Python

Limitări

  • Blestemul dimensionalității
  • N-gramele de ordin superior sunt rare
  • Mențineți n mic
Ingineria caracteristicilor pentru NLP în Python

Să exersăm!

Ingineria caracteristicilor pentru NLP în Python

Preparing Video For Download...