การประมวลผลภาษาธรรมชาติด้วย spaCy
Azadeh Mobasher
Principal Data Scientist
import spacynlp = spacy.load("en_core_web_sm")doc = nlp("Here's my spaCy pipeline.")
spaCyspacy.load() เพื่อคืนค่า nlp ซึ่งเป็นคลาส LanguageLanguage คือ pipeline ประมวลผลข้อความnlp() กับข้อความใดก็ได้ เพื่อรับคอนเทนเนอร์ Doc
spaCy ดำเนินขั้นตอนการประมวลผลข้อความผ่านคลาส Language:
spaCy มีโครงสร้างข้อมูลหลายแบบสำหรับแทนข้อความ:
| ชื่อ | คำอธิบาย |
|---|---|
Doc |
คอนเทนเนอร์สำหรับเข้าถึง annotation ทางภาษาของข้อความ |
Span |
ส่วนย่อยที่ตัดมาจากออบเจ็กต์ Doc |
Token |
token แต่ละตัว เช่น คำ เครื่องหมายวรรคตอน ช่องว่าง เป็นต้น |
spaCy ขึ้นอยู่กับโมเดลที่โหลดและความสามารถของโมเดลนั้น
| Component | ชื่อ | คำอธิบาย |
|---|---|---|
| Tokenizer | Tokenizer | แบ่งข้อความเป็น token และสร้างออบเจ็กต์ Doc |
| Tagger | Tagger | กำหนด part-of-speech tag |
| Lemmatizer | Lemmatizer | ลดคำให้เป็นรูปฐาน |
| EntityRecognizer | NER | ตรวจจับและติดป้ายกำกับ named entity |
แต่ละ component มีฟีเจอร์เฉพาะสำหรับประมวลผลข้อความ
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', '.']
DependencyParserimport 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.
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'), ('.', '.')]
การประมวลผลภาษาธรรมชาติด้วย spaCy