Xây dựng mô hình n-gram

Khai thác đặc trưng cho NLP bằng Python

Rounak Banik

Data Scientist

Hạn chế của BoW

review label
'The movie was good and not boring' positive
'The movie was not good and boring' negative

 

  • Biểu diễn BoW hoàn toàn giống nhau!
  • Mất ngữ cảnh của từ.
  • Cảm xúc phụ thuộc vị trí của 'not'.
Khai thác đặc trưng cho NLP bằng Python

n-gram

  • Chuỗi liên tiếp gồm n phần tử (hoặc từ) trong một văn bản.
  • n = 1 → bag-of-words
    'for you a thousand times over'
    
  • n = 2, n-gram:
    [
    'for you',
    'you a',
    'a thousand',
    'thousand times',
    'times over'
    ]
    
Khai thác đặc trưng cho NLP bằng Python

n-gram

'for you a thousand times over'
  • n = 3, n-gram:
    [
    'for you a',
    'you a thousand',
    'a thousand times',
    'thousand times over'
    ]
    
  • Bắt được nhiều ngữ cảnh hơn.
Khai thác đặc trưng cho NLP bằng Python

Ứng dụng

  • Hoàn thành câu
  • Sửa chính tả
  • Hiệu chỉnh dịch máy
Khai thác đặc trưng cho NLP bằng Python

Xây dựng mô hình n-gram với scikit-learn

Chỉ tạo bigram.

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

Tạo unigram, bigram và trigram.

ngrams = CountVectorizer(ngram_range=(1,3))
Khai thác đặc trưng cho NLP bằng Python

Hạn chế

  • Lời nguyền chiều cao
  • n-gram bậc cao hiếm gặp
  • Giữ n nhỏ
Khai thác đặc trưng cho NLP bằng Python

Vamos praticar!

Khai thác đặc trưng cho NLP bằng Python

Preparing Video For Download...