Những điều cơ bản về spaCy

Xử lý ngôn ngữ tự nhiên với spaCy

Azadeh Mobasher

Principal Data Scientist

Pipeline NLP của spaCy

import spacy

nlp = spacy.load("en_core_web_sm")
doc = nlp("Here's my spaCy pipeline.")
  • Import spaCy
  • Dùng spacy.load() để trả về nlp, một lớp Language
    • Đối tượng Language là pipeline xử lý văn bản
  • Áp dụng nlp() lên văn bản để nhận Doc
Xử lý ngôn ngữ tự nhiên với spaCy

Pipeline NLP của spaCy

 

spaCy áp dụng một số bước xử lý bằng lớp Language:

Pipeline Language của spaCy

Xử lý ngôn ngữ tự nhiên với spaCy

Đối tượng chứa trong spaCy

  • Có nhiều cấu trúc dữ liệu để biểu diễn văn bản trong spaCy:

 

Tên Mô tả
Doc Bộ chứa truy cập chú giải ngôn ngữ của văn bản
Span Một lát cắt từ đối tượng Doc
Token Một token riêng lẻ: từ, dấu câu, khoảng trắng, v.v.
Xử lý ngôn ngữ tự nhiên với spaCy

Thành phần pipeline

  • Pipeline xử lý ngôn ngữ của spaCy luôn phụ thuộc vào mô hình đã tải và khả năng của nó.

 

Thành phần Tên Mô tả
Tokenizer Tokenizer Chia văn bản thành token và tạo Doc
Tagger Tagger Gán nhãn từ loại (POS)
Lemmatizer Lemmatizer Đưa từ về dạng gốc
EntityRecognizer NER Phát hiện và gán nhãn thực thể tên riêng
Xử lý ngôn ngữ tự nhiên với spaCy

Thành phần pipeline

 

  • Mỗi thành phần có tính năng riêng để xử lý văn bản

    • Language
    • DependencyParser
    • Sentencizer
Xử lý ngôn ngữ tự nhiên với spaCy

Tách từ (Tokenization)

  • Luôn là bước đầu tiên
  • Các bước khác cần token
  • Token có thể là từ, số, dấu câu
import spacy
nlp = spacy.load("en_core_web_sm")

doc = nlp("Tokenization splits a sentence into its tokens.")

print([token.text for token in doc])
['Tokenization', 'splits', 'a', 'sentence', 'into', 'its', 'tokens', '.']
Xử lý ngôn ngữ tự nhiên với spaCy

Tách câu

  • Phức tạp hơn tách từ
  • Là một phần của thành phần DependencyParser
import spacy
nlp = spacy.load("en_core_web_sm")

text = "We are learning NLP. This course introduces spaCy."
doc = nlp(text)

for sent in doc.sents: print(sent.text)
We are learning NLP.
This course introduces spaCy.
Xử lý ngôn ngữ tự nhiên với spaCy

Lemmatization

  • Lemma là dạng gốc của một token
  • Lemma của eatsateeat
  • Cải thiện độ chính xác của mô hình ngôn ngữ
import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp("We are seeing her after one year.")

print([(token.text, token.lemma_) for token in doc])
[('We', 'we'), ('are', 'be'), ('seeing', 'see'), ('her', 'she'), 
('after', 'after'), ('one', 'one'), ('year', 'year'), ('.', '.')]
Xử lý ngôn ngữ tự nhiên với spaCy

Ayo berlatih!

Xử lý ngôn ngữ tự nhiên với spaCy

Preparing Video For Download...