พื้นฐาน Natural Language Processing (NLP)

การประมวลผลภาษาธรรมชาติด้วย spaCy

Azadeh Mobasher

Principal Data Scientist

Natural Language Processing (NLP)

 

  • สาขาย่อยของ Artificial Intelligence (AI)
  • ช่วยให้คอมพิวเตอร์เข้าใจภาษามนุษย์
  • ช่วยดึงข้อมูลเชิงลึกจากข้อมูลไม่มีโครงสร้าง
  • ใช้ statistics, machine learning models และ deep learning models

 

NLP สาขาย่อยของ AI

การประมวลผลภาษาธรรมชาติด้วย spaCy

กรณีการใช้งาน NLP

การวิเคราะห์ความรู้สึก (Sentiment analysis)  

  • การใช้คอมพิวเตอร์เพื่อตรวจจับโทนเชิงอารมณ์ที่แฝงอยู่ในข้อความ

 

ตัวอย่าง Sentiment Analysis

การประมวลผลภาษาธรรมชาติด้วย spaCy

กรณีการใช้งาน NLP

การรู้จำชื่อเฉพาะ (Named entity recognition — NER)  

  • การระบุและจำแนกชื่อเฉพาะในข้อความไม่มีโครงสร้างออกเป็นหมวดหมู่ที่กำหนดไว้ล่วงหน้า
  • Named entities คือสิ่งของในโลกจริง เช่น บุคคลหรือสถานที่

 

ตัวอย่าง NER

การประมวลผลภาษาธรรมชาติด้วย spaCy

กรณีการใช้งาน NLP

 

  • สร้างการตอบสนองที่คล้ายมนุษย์ต่อข้อความ เช่น ChatGPT

 

Chatbots

การประมวลผลภาษาธรรมชาติด้วย spaCy

แนะนำ spaCy

spaCy คือไลบรารี NLP แบบ ฟรี และ โอเพนซอร์ส สำหรับ Python ซึ่ง:

  • ออกแบบมาเพื่อสร้างระบบ ดึงข้อมูล (information extraction)
  • มีโค้ดพร้อมใช้งานจริงสำหรับกรณีการใช้งาน NLP
  • รองรับ 64+ ภาษา
  • แข็งแกร่ง รวดเร็ว และมี ไลบรารีสำหรับแสดงผล

 

spaCy และ NLP

การประมวลผลภาษาธรรมชาติด้วย spaCy

ติดตั้งและนำเข้า spaCy

 

  • ขั้นแรก ติดตั้ง spaCy ผ่าน pip ซึ่งเป็น package manager ของ Python
  • ดาวน์โหลดโมเดลที่ผ่านการฝึกของ spaCy ได้
  • มีโมเดลที่ผ่านการฝึกหลายตัวสำหรับภาษาอังกฤษที่ spacy.io

 

$ python3 pip install spacy
python3 -m spacy download en_core_web_sm
import spacy
nlp = spacy.load("en_core_web_sm")
การประมวลผลภาษาธรรมชาติด้วย spaCy

อ่านและประมวลผลข้อความด้วย spaCy

  • โหลดโมเดล spaCy ชื่อ en_core_web_sm = ออบเจกต์ nlp
  • ออบเจกต์ nlp แปลงข้อความเป็นออบเจกต์ Doc (container) สำหรับเก็บข้อความที่ผ่านการประมวลผล

การประมวลผลข้อความด้วย spaCy

การประมวลผลภาษาธรรมชาติด้วย spaCy

spaCy ในการปฏิบัติ

  • การประมวลผลสตริงด้วย spaCy
import spacy
nlp = spacy.load("en_core_web_sm")
text = "A spaCy pipeline object is created."
doc = nlp(text)
  • การตัดคำ (Tokenization)
    • Token คือหน่วยที่เล็กที่สุดที่มีความหมายในข้อความ
    • Tokenization: กระบวนการแบ่งข้อความออกเป็น token ที่มีความหมาย
print([token.text for token in doc])
['A', 'spaCy', 'pipeline', 'object', 'is', 'created', '.']
การประมวลผลภาษาธรรมชาติด้วย spaCy

มาฝึกกันเถอะ!

การประมวลผลภาษาธรรมชาติด้วย spaCy

Preparing Video For Download...