Budowanie modeli n-gramów

Inżynieria cech dla NLP w Pythonie

Rounak Banik

Data Scientist

Ograniczenia BoW

recenzja etykieta
'The movie was good and not boring' pozytywna
'The movie was not good and boring' negatywna

 

  • Identyczna reprezentacja BoW!
  • Kontekst słów zostaje utracony.
  • Wydźwięk zależy od pozycji słowa 'not'.
Inżynieria cech dla NLP w Pythonie

N-gramy

  • Ciągły ciąg n elementów (lub słów) w danym dokumencie.
  • n = 1 → bag-of-words
    'for you a thousand times over'
    
  • n = 2, n-gramy:
    [
    'for you',
    'you a',
    'a thousand',
    'thousand times',
    'times over'
    ]
    
Inżynieria cech dla NLP w Pythonie

N-gramy

'for you a thousand times over'
  • n = 3, n-gramy:
    [
    'for you a',
    'you a thousand',
    'a thousand times',
    'thousand times over'
    ]
    
  • Uwzględnia szerszy kontekst.
Inżynieria cech dla NLP w Pythonie

Zastosowania

  • Uzupełnianie zdań
  • Korekta pisowni
  • Korekta tłumaczenia maszynowego
Inżynieria cech dla NLP w Pythonie

Budowanie modeli n-gramów w scikit-learn

Generuje tylko bigramy.

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

Generuje unigramy, bigramy i trigramy.

ngrams = CountVectorizer(ngram_range=(1,3))
Inżynieria cech dla NLP w Pythonie

Ograniczenia

  • Przekleństwo wymiarowości
  • N-gramy wyższego rzędu są rzadkie
  • Należy utrzymywać n małe
Inżynieria cech dla NLP w Pythonie

Czas na ćwiczenia!

Inżynieria cech dla NLP w Pythonie

Preparing Video For Download...